:root{font-family:Inter,'Segoe UI',Arial,sans-serif;color:#243b44;--ink:#193640;--muted:#667b83;--teal:#087d7c;--line:#dfe9e9;--glass:rgba(255,255,255,.95);--shadow:0 18px 52px #0b353b22}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#d4e2e6}button,select,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #40bbbf;outline-offset:2px}button{background:white;border:1px solid #dce8e9;color:var(--ink);border-radius:10px;padding:10px 13px;font-size:13px;font-weight:600}button:hover:not(:disabled){background:#eaf5f3}h1,h2,h3,p{margin-top:0}h3{font-size:16px;margin-bottom:7px}p{line-height:1.5}small,.small{font-size:12px}code{font-size:12px;background:#e8eeee;padding:2px 4px;border-radius:4px}hr{height:1px;background:var(--line);border:0;margin:22px 0}.secondary{color:var(--muted)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.15em;color:var(--teal)}
.topbar{height:73px;display:flex;justify-content:space-between;align-items:center;background:#fbfdfdf6;border-bottom:1px solid #d7e4e5;padding:0 28px;position:relative;z-index:8}.identity{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none}.monogram{width:43px;height:43px;background:#087b7c;border-radius:13px;color:white;display:grid;place-items:center;font-size:29px}.identity-word{font-size:14px;font-weight:850;letter-spacing:.13em}.identity-word>span{color:#91afb2}.identity-word small{display:block;letter-spacing:.08em;font-size:10px;color:#748a8e;font-weight:550;margin-top:4px}.top-right{display:flex;align-items:center;gap:12px}.demo-tag{font-size:10px;letter-spacing:.11em;font-weight:750;color:#789096}.segmented{display:flex;padding:3px;background:#eaf0f1;border-radius:12px}.segmented button{border:0;background:transparent;padding:7px 12px;border-radius:9px}.segmented button.selected{background:#fff;box-shadow:0 2px 8px #22424815;color:#087b7c}.settings-button{border:1px solid #cbdedf}.workspace{position:absolute;inset:73px 0 0;overflow:hidden}#map{position:absolute;inset:0}.story-card{position:absolute;top:26px;left:27px;width:340px;max-height:calc(100% - 225px);overflow-y:auto;background:var(--glass);box-shadow:var(--shadow);border:1px solid #ffffff;border-radius:20px;padding:24px 24px 21px;backdrop-filter:blur(14px)}.story-card h1{font-size:31px;line-height:1.07;letter-spacing:-.06em;color:var(--ink);margin:12px 0}.period{color:#0a8b87}.story-card p{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:20px}.overview-metrics{display:flex;justify-content:space-between;background:#f0f6f5;border-radius:11px;padding:12px;font-size:11px;color:#667f84;margin-bottom:17px;gap:6px}.overview-metrics strong{font-size:15px;color:var(--ink);display:block;margin-bottom:2px}.area-picker{display:grid;gap:7px;font-size:11px;font-weight:800;color:#516970}.area-picker select{width:100%;background:#fff;padding:11px;border:1px solid #d8e6e5;border-radius:9px;color:#26434c;font-size:13px}.quick-actions{display:flex;gap:8px;margin-top:12px}.quick-actions button{flex:1;font-size:12px}.action-main,.wide-accent{background:#087d7c;color:white;border:1px solid #087d7c}.action-main:hover:not(:disabled),.wide-accent:hover:not(:disabled){background:#096965;color:white}.map-tools{position:absolute;right:22px;top:20px;display:flex;gap:8px}.map-tools button,.map-zoom button{background:#fffffff0;box-shadow:0 4px 20px #1e515720}.map-zoom{position:absolute;right:23px;bottom:166px;display:grid;gap:5px}.map-zoom button{font-size:23px;padding:5px 11px}.colour-legend{position:absolute;left:27px;bottom:151px;background:var(--glass);border-radius:14px;width:260px;padding:13px 15px;border:1px solid #fff;box-shadow:0 8px 27px #0c33332a}.legend-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:9px}.legend-top span{color:var(--muted)}.ramp{height:9px;background:linear-gradient(90deg,#dc3026,#a45e5a,#425766,#467eaf,#1666d8);border-radius:9px}.endpoints{display:flex;justify-content:space-between;font-size:10px;color:#5c777e;margin:5px 0}.colour-legend small{color:#698288;line-height:1.35;display:block;font-size:10px}.map-bottom-left{position:absolute;bottom:140px;right:24px;font-size:11px;color:white;text-shadow:0 1px 4px #173038;display:flex;gap:12px}.timeline-panel{position:absolute;bottom:0;left:0;right:0;height:137px;background:#fdfefef5;padding:17px 28px 18px;box-shadow:0 -4px 26px #153b4322;border-top:1px solid #d7e4e5}.timeline-head{display:flex;justify-content:space-between;align-items:center}.timeline-head strong{display:block;margin-top:4px;color:#24444d;font-size:14px}.player{display:flex;gap:7px}.player button{min-width:38px}.player #play{background:#087d7c;color:white;border:0;padding:10px 20px}.timeline-panel input{margin:13px 0 0;width:100%;accent-color:#08827d}.timeline-labels{display:flex;justify-content:space-between;color:#749096;font-size:11px}.map-warning{position:absolute;top:25px;left:390px;max-width:360px;background:#fff9e7;color:#795a21;padding:14px;border-radius:10px;box-shadow:var(--shadow);font-size:12px}.point-panel{position:absolute;z-index:10;top:73px;right:0;width:390px;height:calc(100% - 73px);overflow:auto;background:white;padding:30px 25px;box-shadow:-11px 0 35px #12333f22}.point-panel[hidden]{display:none}.close-float{position:absolute;right:15px;top:14px;font-size:25px;border:0}.point-panel h2{margin:12px 0;font-size:23px;letter-spacing:-.04em}.figures{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:27px 0 25px}.figures>div{background:#eff5f5;padding:14px;border-radius:11px}.figures small,.figures span{display:block;font-size:11px;color:var(--muted)}.figures strong{font-size:23px;color:var(--ink);display:block;margin:9px 0 5px}.chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.chart-head strong{font-size:13px}.chart-head button{font-size:11px;padding:6px}.point-panel canvas{display:block;width:100%;height:192px}.point-footnote{color:#6f8387;font-size:11px;background:#f3f6f5;border-radius:10px;padding:13px;line-height:1.5;margin:23px 0}.point-panel details{font-size:12px}.details-text{line-height:1.6;white-space:pre-wrap;margin-top:10px}
.settings-dialog{position:fixed;top:0;right:0;left:auto;bottom:0;margin:0;width:min(490px,100vw);height:100%;max-height:100%;border:0;padding:0;box-shadow:-15px 0 45px #05252b45;background:#fff}.settings-dialog::backdrop{background:#051c2480}.settings-inner{padding:28px 27px 40px;overflow:auto;height:100%}.drawer-head{display:flex;justify-content:space-between;align-items:start}.drawer-head h2{font-size:27px;margin:5px 0 16px}.drawer-head button{font-size:25px;padding:4px 10px;border:0}.drawer-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:23px}.drawer-tabs button{border:0;background:transparent;border-radius:0;color:#648086}.drawer-tabs button.tab-active{color:#067c78;border-bottom:3px solid #087d7c}.tab-content label{display:grid;gap:7px;margin:17px 0;font-size:12px;font-weight:700;color:#4b6169}.tab-content input:not([type=checkbox]):not([type=range]),.tab-content select,.tab-content textarea{width:100%;border:1px solid #cedfdf;border-radius:9px;padding:10px 11px;color:var(--ink);background:#fff;font-size:13px}.tab-content textarea{resize:vertical;font:12px Consolas,monospace}.tab-content label.confirm{display:flex;align-items:start;gap:11px;line-height:1.55;font-weight:500;color:#4f666c}.tab-content .confirm input{margin-top:3px;accent-color:#087d7c}.tab-content details{border:1px solid var(--line);border-radius:10px;padding:13px;margin:12px 0}.tab-content summary{cursor:pointer;font-size:13px;font-weight:700}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide-accent{width:100%;padding:13px}.area-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:11px 0;font-size:12px;gap:10px}.area-row>strong{color:#1b3c45}.area-row span{color:var(--muted)}.fine-warning{background:#fff7e7;color:#875a12;font-size:12px;border-radius:10px;padding:12px;line-height:1.6}.tab-content input[type=range]{width:100%;accent-color:#087d7c}.tab-content output{color:#087d7c;float:right}.toast{position:fixed;z-index:100;left:50%;bottom:158px;transform:translateX(-50%);background:#183b42;color:white;border-radius:10px;padding:13px 18px;box-shadow:var(--shadow);font-size:12px;max-width:75vw}#mapCredits{position:absolute;bottom:140px;right:0;font-size:11px}.cesium-viewer-toolbar{display:none!important}
@media(max-width:760px){.catapult-brand{max-width:80px;max-height:31px}.topbar{padding:0 12px;height:64px}.demo-tag,.identity-word small,.map-tools button span{display:none}.identity-word{font-size:12px}.monogram{width:35px;height:35px}.workspace{top:64px}.story-card{left:12px;top:12px;width:min(295px,calc(100vw - 24px));padding:16px;max-height:35vh}.story-card h1{font-size:24px}.story-card p{margin-bottom:8px}.overview-metrics{display:none}.map-tools{top:12px;right:12px}.map-tools #home,.map-tools #buildings{display:none}.colour-legend{bottom:134px;left:12px;width:210px}.timeline-panel{padding:15px 13px;height:122px}.map-zoom{bottom:145px}.map-bottom-left{display:none}.point-panel{top:64px;width:min(100vw,390px);height:calc(100% - 64px)}.timeline-labels #timeDisclosure{display:none}}
/* Keep the shared time controls usable while inspecting a point. */
.point-panel{height:calc(100% - 73px - 137px)}
@media(max-width:760px){.point-panel{height:calc(100% - 64px - 122px)}}

/* v0.4.1: guarantee customer controls remain above the Cesium canvas. */
#map{z-index:0!important}.story-card,.map-tools,.map-zoom,.colour-legend,.map-bottom-left,.timeline-panel,.map-warning{z-index:4;isolation:isolate}
.topbar{z-index:30}.settings-dialog{z-index:45}.point-panel{z-index:15}
#diagnosticsShortcut{font-size:12px;padding:9px 12px;border-color:#c7ddda;background:#f0f8f6}
.startup-notice{position:fixed;z-index:70;top:87px;left:50%;transform:translateX(-50%);width:min(520px,calc(100vw - 32px));background:#fffaf0;border:1px solid #e6c985;color:#533e25;box-shadow:0 8px 28px #1d303e44;border-radius:14px;padding:15px;display:flex;align-items:start;flex-wrap:wrap;gap:10px;font-size:12px}
.startup-notice strong{font-size:14px;display:block;width:100%}.startup-notice span{line-height:1.5;width:100%}.startup-notice button{background:white;border-color:#e1cf9e}
.startup-notice.ready{display:none}.startup-notice.error{background:#fff0ed;border-color:#d9766a;color:#793329}
.diagnostics-checks{display:grid;gap:9px;margin:16px 0;white-space:pre-wrap}.diagnostic-row{padding:12px;border:1px solid #dae8e6;background:#f8fbfa;border-radius:10px;font-size:12px;display:flex;justify-content:space-between;gap:10px}
.diagnostic-row span{overflow-wrap:anywhere}.diagnostic-row strong{white-space:nowrap}.diagnostic-ok{color:#18774e}.diagnostic-warning{color:#a26c14}.diagnostic-failed{color:#b63732}
.diagnostics-buttons{display:flex;gap:9px}.diagnostics-buttons button{flex:1}
@media(max-width:760px){#diagnosticsShortcut{font-size:0;padding:9px}#diagnosticsShortcut::after{content:'●';font-size:14px}.startup-notice{top:74px}}

/* v0.4.2 customer display changes */
.building-status{position:absolute;z-index:5;right:25px;top:71px;background:#183b43df;color:#fff;border-radius:9px;padding:8px 12px;font-size:11px;box-shadow:0 3px 11px #102e3240}
.motion-notice{position:absolute;z-index:7;bottom:150px;left:50%;transform:translateX(-50%);background:#16404a;color:#fff;border:1px solid #65d1c4;padding:9px 13px;border-radius:9px;font-size:11px;font-weight:700;letter-spacing:.015em;max-width:520px;text-align:center;box-shadow:0 8px 25px #142a3499}
#sourceSelect[hidden]{display:none!important}
@media(max-width:760px){.building-status{right:13px;top:60px;font-size:10px}.motion-notice{bottom:128px;left:10px;right:10px;transform:none;max-width:none}}

/* v0.4.3 customer interpretation layers */
.visual-controls{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;align-items:center}
.visual-controls .switch-pill{display:flex;align-items:center;gap:5px;font-size:11px;background:#eef5f5;border:1px solid #d7e6e7;border-radius:18px;padding:7px 8px;cursor:pointer;white-space:nowrap;color:#214752}
.visual-controls input{accent-color:#007d7b;margin:0}.visual-controls .building-colour-label{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#214752}
.visual-controls select{font:inherit;font-size:11px;padding:6px 4px;border:1px solid #cce0de;border-radius:8px;color:#16434a;max-width:130px;background:#fff}
.story-card:has(.visual-controls){width:312px}.los-diagram{background:#f1f7f8;padding:9px;border-radius:13px}.los-diagram svg{width:100%;max-height:230px}
@media(max-width:760px){.story-card .visual-controls{display:none}.story-card:has(.visual-controls){width:min(295px,calc(100vw - 24px))}}

/* v0.6: Catapult-branded public-facing story and lightweight prepared layers */
.catapult-brand{object-fit:contain;width:102px;height:47px;display:block;margin-left:8px}
.story-primary{width:100%;background:#eaf7f5;color:#076c69;border:1px solid #8ccac4;font-weight:800}
.guided-story{position:absolute;z-index:12;left:22px;top:16px;width:min(370px,calc(100vw - 35px));max-height:calc(100% - 175px);overflow:auto;background:#fffffff7;border-radius:19px;padding:23px;box-shadow:0 15px 45px #133a4d45;border:1px solid #dcefeb}
.guided-story[hidden],.geometry-hint[hidden]{display:none!important}
.guided-head{display:flex;align-items:center;justify-content:space-between}.guided-head button{font-size:23px;border:0;background:transparent;padding:2px 7px}
.guided-index{font-size:12px;color:#608086;margin:15px 0 7px}.guided-progress{height:5px;background:#e0edec;border-radius:6px;overflow:hidden}.guided-progress span{display:block;height:100%;background:#0c8581;transition:width .25s}
.guided-story h2{font-size:23px;line-height:1.18;margin:20px 0 12px;letter-spacing:-.035em}.guided-story p{font-size:13px;line-height:1.55;color:#37555d}.guided-action{font-size:12px;padding:13px;background:#edf7f5;border-radius:10px;color:#127973;font-weight:800}
.guided-hint{color:#0d7d79!important;font-weight:600}.guided-buttons{display:flex;gap:8px;margin-top:19px}.guided-buttons button{flex:1;font-size:12px}
.guided-story .guided-caution{font-size:10px;color:#7c8e94;margin:13px 0 0}.geometry-hint{z-index:14;position:absolute;bottom:165px;left:50%;transform:translateX(-50%);background:#f5fbfbf5;border:1px solid #9dc9d1;border-radius:10px;padding:12px;font-size:12px;max-width:480px}
.guided-story:not([hidden])~.map-tools,.guided-story:not([hidden])~.colour-legend{z-index:4}
@media(max-width:760px){.catapult-brand{display:none}.guided-story{left:9px;top:10px;padding:17px;max-height:58vh}.story-card:has(+.guided-story:not([hidden])){display:none}}
@media(min-width:920px){.colour-legend{left:360px;bottom:151px}}
