:root {
  color-scheme: dark;
  --bg: #07111f;
  --panel: #0c1828;
  --panel-2: #101f32;
  --line: #22354b;
  --text: #edf6ff;
  --muted: #91a5bb;
  --accent: #2dd4bf;
  --accent-2: #38bdf8;
  --danger: #fb7185;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); }
body { font-size: 16px; }
button, select, input { font: inherit; }
button, select { color: var(--text); }
.topbar { min-height: 76px; padding: 14px 24px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; background: rgba(7,17,31,.96); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 13px; }
.brand h1 { margin: 0; font-size: 1.05rem; letter-spacing: -.01em; }
.brand p { margin: 3px 0 0; color: var(--muted); font-size: .82rem; }
.brand-mark { width: 40px; height: 40px; border-radius: 11px; border: 1px solid #2e5263; display: grid; place-content: center; gap: 3px; background: linear-gradient(145deg,#102b3a,#0b1726); }
.brand-mark span { display:block; height: 3px; border-radius: 8px; background: var(--accent); margin:auto; }
.brand-mark span:nth-child(1){width:23px}.brand-mark span:nth-child(2){width:16px}.brand-mark span:nth-child(3){width:7px}
.top-actions { display:flex; align-items:center; gap:12px; }
.status-chip { color:#b6eadf; font-size:.82rem; border:1px solid #21544f; background:#0c2929; padding:8px 11px; border-radius:999px; }
.status-chip i { display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;box-shadow:0 0 10px var(--accent); }
.status-chip.idle { color:#b6c5d4;border-color:#3a4b5e;background:#152230; }.status-chip.idle i{background:#64748b;box-shadow:none}
.app-shell { display:grid; grid-template-columns: 338px minmax(0,1fr); min-height:calc(100vh - 76px); }
.controls { background:#091523; border-right:1px solid var(--line); }
.control-section { padding:21px 22px; border-bottom:1px solid var(--line); }
.control-section.intro { background:linear-gradient(155deg,rgba(45,212,191,.07),transparent 58%); }
.layout-name { margin:0;font-size:1rem; }
.eyebrow { margin:0 0 10px; color:#6fd8cb; text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; font-weight:800; }
.field-row { display:grid; gap:7px; margin-top:13px; }
.field-row label { color:#b7c7d6; font-size:.83rem; }
select { width:100%; background:#122338; border:1px solid #2b425c; border-radius:9px; padding:10px 34px 10px 11px; outline:none; }
select:focus, button:focus-visible, input:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; }
.section-heading h2, .schedule-card h2, .canvas-toolbar h2 { margin:0; font-size:1rem; }
.icon-button { width:34px;height:34px;border-radius:9px;border:1px solid #28766c;background:#0d3d3a;color:#9ff5e8;font-size:1.45rem;cursor:pointer; }
.ap-list { display:grid; gap:8px; margin:14px 0; }
.ap-item { width:100%; display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:10px; padding:10px; border:1px solid #24394f; border-radius:10px; background:#0e1c2d; cursor:pointer; text-align:left; }
.ap-item.selected { border-color:var(--accent); background:#102d34; box-shadow:0 0 0 1px rgba(45,212,191,.2); }
.ap-icon { width:28px;height:28px;border-radius:8px;background:#16334a;display:grid;place-items:center;color:#7dd3fc;font-weight:800;font-size:.76rem; }
.ap-item.selected .ap-icon { background:var(--accent);color:#06221f; }
.ap-item b { display:block;font-size:.84rem; }.ap-item small{display:block;color:var(--muted);margin-top:2px;font-size:.74rem}.ap-item em{font-style:normal;color:#6fd8cb;font-size:.73rem}
.button-row { display:grid;grid-template-columns:1fr auto;gap:8px; }
.button { border-radius:9px;border:1px solid #31475f;background:#14253a;padding:9px 12px;cursor:pointer;font-weight:700;font-size:.8rem; }
.button:hover { border-color:#4f6b88; }.button:disabled{opacity:.4;cursor:not-allowed}.button.danger{color:#fecdd3}.button.ghost{background:transparent}.button.secondary{background:#122338}
.button.primary { background:#0f766e;border-color:#2fbca9;color:#fff; }
.microcopy { margin:8px 0 0;color:var(--muted);font-size:.76rem;line-height:1.45; }
.microcopy.warning { color:#fbbf8a; }.catalogue-note{margin:12px 0 0;color:#6f879e;font-size:.68rem;line-height:1.45}.empty-list{color:#71879b;font-size:.76rem;padding:10px 0}.table-sub{display:block;color:#7890a7;margin-top:3px}.muted-metrics{opacity:.55}.disabled-card{opacity:.6}
.model-specs { margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid #274057;border-radius:10px;overflow:hidden;background:#274057; }
.model-specs span { background:#0c1a2a;padding:8px 9px;min-width:0; }
.model-specs small,.model-specs b { display:block; }
.model-specs small { color:#7890a7;font-size:.67rem;margin-bottom:3px; }
.model-specs b { color:#d9e8f3;font-size:.72rem;line-height:1.3; }
.model-specs a { grid-column:1/-1;background:#0e2235;color:#7dd3fc;padding:9px;font-size:.72rem;text-decoration:none; }
.range-field { display:flex;justify-content:space-between;color:#c9d6e2;font-size:.82rem;margin-top:15px; }.range-field output{color:#6fd8cb;font-variant-numeric:tabular-nums}
input[type="range"] { width:100%; accent-color:var(--accent); }
.toggle-row { margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer; }.toggle-row b{display:block;font-size:.84rem}.toggle-row small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px;line-height:1.35}.toggle-row input{position:absolute;opacity:0}.toggle-row i{width:42px;height:24px;background:#314155;border-radius:999px;position:relative;flex:0 0 auto;transition:.2s}.toggle-row i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:white;top:3px;left:3px;transition:.2s}.toggle-row input:checked+i{background:#159687}.toggle-row input:checked+i:after{transform:translateX(18px)}
.assumption-card { margin:20px; padding:15px; border:1px solid #2a435b;border-radius:12px;background:#0d1d2e;color:#d7e3ed; }.assumption-card strong{font-size:.83rem}.assumption-card p{margin:7px 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}
.workspace { min-width:0;padding:22px;overflow:hidden; }
.metric-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px; }
.metric-grid article { border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,#0e1d2f,#0b1726);padding:14px 16px;min-width:0; }
.metric-grid span{display:block;color:var(--muted);font-size:.75rem}.metric-grid strong{display:block;font-size:1.4rem;margin:6px 0 2px;font-variant-numeric:tabular-nums}.metric-grid small{color:#6f879e;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.canvas-card,.schedule-card { border:1px solid var(--line);border-radius:14px;background:#0b1726;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.18); }
.canvas-toolbar { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 17px;border-bottom:1px solid var(--line); }.canvas-toolbar p{margin:4px 0 0;color:var(--muted);font-size:.77rem}.view-controls{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.75rem}.view-controls input{width:105px}
.canvas-wrap { position:relative;background:#dce4e8;overflow:hidden;touch-action:none; }
#heatmap { display:block;width:100%;height:auto;cursor:grab; }.canvas-wrap.dragging #heatmap{cursor:grabbing}.canvas-loading{position:absolute;inset:0;display:grid;place-items:center;color:#18324b;background:#dce4e8;font-weight:700}.canvas-loading.hidden{display:none}
.blank-canvas { min-height:560px;display:grid;place-items:center;background:linear-gradient(135deg,#dce4e8,#cbd7de); }.blank-canvas #heatmap{position:absolute;inset:0;width:100%;height:100%;opacity:.16;cursor:default}.blank-state{position:relative;z-index:2;width:min(560px,calc(100% - 36px));padding:36px;text-align:center;border:1px solid rgba(48,71,88,.3);border-radius:16px;background:rgba(239,246,250,.88);color:#173047;box-shadow:0 18px 50px rgba(24,48,66,.14)}.blank-state[hidden]{display:none}.blank-state h2{margin:5px 0 8px;font-size:1.25rem}.blank-state p{margin:0 auto 18px;max-width:470px;color:#486273;font-size:.85rem;line-height:1.55}.blank-symbol{font-size:2.4rem;color:#0f766e;line-height:1}
.legend { display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:11px 16px;color:#91a5bb;font-size:.7rem;border-top:1px solid var(--line); }.legend span{display:flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px;background:var(--c)}
.schedule-card { margin-top:14px;padding:16px 17px 8px; }.schedule-card .eyebrow{margin-bottom:5px}.table-wrap{overflow:auto;margin-top:13px}table{width:100%;border-collapse:collapse;min-width:720px;font-size:.77rem}th{text-align:left;color:#7189a1;font-weight:700;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #192b3f;color:#c9d6e2}td:first-child{color:#6fd8cb;font-weight:800}
.drawing-dialog { width:min(1180px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:1px solid #31506b;border-radius:16px;background:#0a1625;color:var(--text);box-shadow:0 35px 100px rgba(0,0,0,.65); }
.drawing-dialog::backdrop { background:rgba(2,8,18,.78);backdrop-filter:blur(5px); }
.dialog-shell { display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100vh - 30px); }
.dialog-header,.dialog-footer { display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;border-bottom:1px solid var(--line); }
.dialog-header h2 { margin:0;font-size:1.1rem; }.dialog-header .eyebrow{margin-bottom:5px}.dialog-close{border:0;background:transparent;color:#93a9bd;font-size:1.8rem;cursor:pointer;line-height:1}.dialog-close:hover{color:white}
.dialog-body { min-height:0;display:grid;grid-template-columns:310px minmax(0,1fr); }
.drawing-steps { padding:17px;border-right:1px solid var(--line);overflow:auto; }
.upload-zone { display:grid;gap:4px;padding:14px;border:1px dashed #3a7182;border-radius:11px;background:#0c2830;cursor:pointer; }.upload-zone b{color:#a5f3e7}.upload-zone span{color:#82a3ae;font-size:.73rem}
.quality-result { margin-top:12px;padding:11px;border-radius:10px;border:1px solid #31465b;display:grid;gap:4px; }.quality-result b{font-size:.79rem}.quality-result span{font-size:.7rem;color:var(--muted);line-height:1.35}.quality-result.pass{border-color:#247c65;background:#0d2c29}.quality-result.fail{border-color:#8e3546;background:#2b1420}.quality-result.pass b{color:#86efcd}.quality-result.fail b{color:#fecdd3}
.intake-list { margin:14px 0;padding:0;list-style:none;counter-reset:steps;display:grid;gap:9px; }.intake-list li{display:grid;grid-template-columns:24px 1fr;column-gap:8px;counter-increment:steps}.intake-list li:before{content:counter(steps);grid-row:1/3;width:22px;height:22px;border-radius:7px;background:#193149;color:#7dd3fc;display:grid;place-items:center;font-size:.7rem;font-weight:800}.intake-list b{font-size:.76rem}.intake-list span{font-size:.68rem;color:var(--muted);line-height:1.35}
.compact-list { margin-bottom:10px; }
.analysis-summary { display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:12px;border:1px solid #29435a;border-radius:10px;overflow:hidden;background:#29435a; }
.analysis-summary span { min-width:0;padding:8px 9px;background:#0d1d2e; }
.analysis-summary small,.analysis-summary b { display:block; }
.analysis-summary small { color:#7890a7;font-size:.64rem;margin-bottom:3px; }
.analysis-summary b { color:#d9e8f3;font-size:.7rem;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.scale-prompt { margin-top:12px;padding:11px;border:1px solid #816225;border-radius:10px;background:#2a2212; }
.scale-prompt>b,.scale-prompt>span { display:block; }.scale-prompt>b{color:#fde68a;font-size:.78rem}.scale-prompt>span{margin-top:4px;color:#c7b98e;font-size:.68rem;line-height:1.35}
.scale-equation { margin-top:9px;display:grid;grid-template-columns:70px auto 66px 1fr;gap:7px;align-items:center; }
.scale-equation i,.scale-equation em { color:#d5c89f;font-size:.7rem;font-style:normal; }.scale-equation .text-input{padding:8px}
.text-input { width:100%;color:var(--text);background:#122338;border:1px solid #2b425c;border-radius:9px;padding:10px 11px; }
.drawing-preview { position:relative;min-width:0;min-height:420px;background:#cbd5dc;overflow:auto;display:grid;place-items:center;padding:14px; }
#drawingCanvas { display:block;max-width:100%;height:auto;background:white;box-shadow:0 10px 35px rgba(0,0,0,.23);cursor:default; }.drawing-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#274055}.drawing-empty b,.drawing-empty span{display:block}.drawing-empty span{font-size:.78rem;margin-top:5px}.drawing-empty.hidden{display:none}
.dialog-footer { border-top:1px solid var(--line);border-bottom:0; }.dialog-footer p{margin:0;color:var(--muted);font-size:.72rem}.dialog-footer>div{display:flex;gap:8px}.button.accept{background:#0f766e;border-color:#2db7a7;color:white}.button.accept:disabled{background:#243746}
@media(max-width:820px){.dialog-body{display:block;overflow:auto}.drawing-steps{border-right:0;border-bottom:1px solid var(--line)}.drawing-preview{min-height:300px}.dialog-footer{align-items:flex-start;flex-direction:column}.dialog-footer>div{width:100%}.dialog-footer .button{flex:1}}
@media(max-width:1000px){.app-shell{grid-template-columns:300px minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.topbar{position:static;padding:12px 15px;flex-wrap:wrap}.top-actions{width:100%}.top-actions .button{flex:1}.status-chip{display:none}.button.secondary{padding:8px 9px}.app-shell{display:block}.controls{border-right:0;border-bottom:1px solid var(--line)}.workspace{padding:13px}.metric-grid{gap:8px}.metric-grid article{padding:12px}.canvas-toolbar{align-items:flex-start}.view-controls{display:none}.legend{justify-content:flex-start}.brand h1{font-size:.95rem}.brand p{font-size:.72rem}}
@media(max-width:460px){.top-actions .button{font-size:.72rem}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid strong{font-size:1.2rem}.metric-grid small{font-size:.62rem}.control-section{padding:18px}.workspace{padding:9px}.canvas-toolbar{padding:12px}.legend{gap:10px}}
.band-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 18px;color:#dceaf4}.band-summary>div{background:#123048;border:1px solid #2a5268;border-radius:10px;padding:12px;display:grid;gap:5px}.band-summary strong{color:#6be5d3;font-size:1rem}.band-summary span{font-weight:700}.band-summary small{color:#b6cbd7;line-height:1.4}@media(max-width:850px){.band-summary{grid-template-columns:1fr}}
