:root{--bg: #0b1220;--bg-panel: rgba(15, 23, 42, .92);--bg-elev: rgba(30, 41, 59, .92);--text: #e2e8f0;--text-mute: #94a3b8;--accent: #38bdf8;--accent-2: #f472b6;--warn: #facc15;--bad: #ef4444;--good: #22c55e;--border: rgba(148, 163, 184, .2)}*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Pretendard,-apple-system,Segoe UI,Malgun Gothic,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}#cesiumContainer{position:absolute;inset:0;width:100%;height:100%}.cesium-viewer-bottom{display:none}.cesium-viewer-toolbar{top:56px!important;right:360px!important}#topbar{position:absolute;top:0;left:0;right:0;height:48px;display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--bg-panel);border-bottom:1px solid var(--border);backdrop-filter:blur(6px);z-index:10}.brand{font-weight:700;letter-spacing:.5px;font-size:16px}#modeTabs{display:flex;gap:4px}#modeTabs button{padding:6px 12px;background:transparent;color:var(--text-mute);border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:13px}#modeTabs button:hover{color:var(--text)}#modeTabs button.active{background:var(--accent);color:#0b1220;font-weight:600}#cameraPresets{display:flex;gap:4px;margin-left:8px;padding-left:8px;border-left:1px solid var(--border)}#cameraPresets button{padding:6px 10px;font-size:15px;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s}#cameraPresets button:hover{border-color:var(--accent);background:#38bdf826;transform:translateY(-1px)}#timeControls{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px}#timeControls button{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer}#simClock{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600;min-width:60px;text-align:right}#sidepanel{position:absolute;top:48px;right:0;bottom:0;width:360px;padding:16px;background:var(--bg-panel);border-left:1px solid var(--border);overflow-y:auto;z-index:10;backdrop-filter:blur(6px)}#sidepanel h2{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin:0 0 8px}#sidepanel h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text-mute);margin:16px 0 8px}#sidepanel .hint{font-size:12px;color:var(--text-mute);margin:0 0 12px;line-height:1.5}#sidepanel hr{border:none;border-top:1px solid var(--border);margin:12px 0}#sidepanel button{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:8px 12px;cursor:pointer;font-size:13px}#sidepanel button:hover{border-color:var(--accent)}#sidepanel button:disabled{opacity:.5;cursor:not-allowed}#sidepanel button.primary{background:var(--accent);color:#0b1220;font-weight:600;border-color:var(--accent)}.row{display:flex;gap:6px;align-items:center}.row input[type=text]{flex:1;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:12px}.candidate,.scenario-item,.facility-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:6px;font-size:12px;cursor:pointer}.candidate:hover,.scenario-item:hover,.facility-card:hover{border-color:var(--accent)}.candidate.selected,.facility-card.selected{border-color:var(--accent);background:#38bdf826}.candidate .title,.scenario-item .title,.facility-card .title{font-weight:600;display:flex;justify-content:space-between;align-items:center}.candidate .score{color:var(--accent);font-variant-numeric:tabular-nums}.candidate .meta{color:var(--text-mute);font-size:11px;margin-top:4px;line-height:1.5}.facility-card .meta{color:var(--text-mute);font-size:11px;margin-top:2px}.facility-card .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}#kpiBoard,#layoutStats,#bottleneckBoard{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:12px}.kpi{background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;padding:8px}.kpi .label{color:var(--text-mute);font-size:11px}.kpi .value{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent)}.kpi.warn .value{color:var(--warn)}.kpi.bad .value{color:var(--bad)}.kpi.good .value{color:var(--good)}.kpi.full{grid-column:1 / -1}.spark{margin-bottom:10px}#candidateDetail{margin-top:8px;font-size:11px;line-height:1.55}#candidateDetail .det-card{background:var(--bg-elev);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:10px}#candidateDetail h4{margin:0 0 4px;font-size:12px;color:var(--accent)}#candidateDetail .tag{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;margin-right:4px;margin-bottom:4px}#candidateDetail .tag.pro{background:#22c55e2e;color:#86efac}#candidateDetail .tag.con{background:#ef44442e;color:#fca5a5}#candidateDetail .meta-row{color:var(--text-mute);margin-top:6px}#candidateDetail a{color:var(--accent);text-decoration:none;word-break:break-all}.spark-head{display:flex;justify-content:space-between;font-size:11px;margin-bottom:2px}.spark-label{color:var(--text-mute)}.spark-val{font-weight:700;font-variant-numeric:tabular-nums}#toast{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:var(--bg-elev);color:var(--text);border:1px solid var(--accent);padding:10px 16px;border-radius:6px;font-size:13px;z-index:100;box-shadow:0 8px 24px #00000080}
