:root{color-scheme:dark;--bg:#11191d;--panel:#182125;--surface:#202b2f;--line:#344144;--text:#e3eae5;--muted:#b0bcb7;--dim:#849691;--accent:#66dbca;--amber:#f5be76;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:13px/1.5 var(--sans)}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{touch-action:manipulation}button{border:1px solid var(--line);color:var(--text);background:var(--surface);border-radius:5px;min-height:35px;padding:6px 11px;transition:background .15s,border-color .15s}button:hover{background:#2b393d;border-color:#6c8680}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button[aria-pressed=true]{color:var(--accent);background:#233935;border-color:#4a7c71}a{color:var(--muted);text-underline-offset:4px}h1,h2,h3,p{margin:0}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}.app-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;border-bottom:1px solid var(--line);background:var(--bg);gap:12px}.brand,.header-right{display:flex;align-items:center;gap:13px}.brand strong{letter-spacing:.17em;font-size:17px;font-weight:650}.brand-mark{display:grid;place-items:center;font:bold 22px var(--mono);width:30px;height:30px;border:1px solid var(--accent);color:var(--accent);transform:rotate(-8deg);border-radius:5px}.year{font:11px var(--mono);color:var(--muted);letter-spacing:.07em;margin-left:10px}.header-divider{height:20px;width:1px;background:var(--line);margin:0 8px}.subbrand{color:var(--muted);font-size:12px}.header-right{font:10px var(--mono);letter-spacing:.06em}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #66dbca35;flex-shrink:0}.quiet{background:transparent;border:0;color:var(--muted);font:11px var(--sans)}.header-right .quiet{margin-left:12px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;min-height:calc(100dvh - 64px)}.city-stage{height:calc(100dvh - 64px);min-height:600px;position:sticky;top:0;overflow:hidden;background:#111e24}.city-stage canvas{width:100%;height:100%;display:block;touch-action:pan-y;cursor:grab}.city-stage canvas.drag{cursor:grabbing}.map-title{position:absolute;top:30px;left:30px;pointer-events:none}.eyebrow{font:9px/1.4 var(--mono);letter-spacing:.14em;color:var(--muted);display:flex;align-items:center;gap:8px}.map-title h1{font-size:30px;line-height:1.15;font-weight:500;letter-spacing:-1.2px;margin:9px 0 12px;color:#f0f4e8;text-shadow:0 2px 15px #111e24}.weather-line{display:flex;align-items:center;gap:10px;font:11px var(--mono);color:#b4c8bd}.weather-line #clock{font-size:17px;color:#e3eae5}.small-divider{height:13px;width:1px;background:#496257}.map-top-right{position:absolute;top:28px;right:26px;display:flex;align-items:flex-end;flex-direction:column;gap:12px}.coordinates{font:9px var(--mono);letter-spacing:.1em;color:#a9bdb4}.map-button{background:#162329e8;font-size:11px;border-color:#496057;min-height:30px;padding:5px 12px}.map-tools{position:absolute;top:128px;left:30px;display:flex;border:1px solid #426058;border-radius:5px;overflow:hidden;background:#18282ce8}.map-tools button{border:0;border-radius:0;background:transparent;color:#bed0c7;font-size:11px;min-height:32px;padding:6px 13px}.map-tools button.active{background:#2c4841;color:#c6f4e5}.map-notice{position:absolute;left:30px;bottom:78px;max-width:calc(100% - 60px);font:10px var(--mono);color:#bfd1c5;padding:6px 9px;background:#142329df;border-radius:4px}.map-bottom{position:absolute;bottom:29px;left:30px;right:26px;display:flex;align-items:center;justify-content:space-between;gap:15px}.map-legend{display:flex;gap:16px;flex-wrap:wrap;font:9px var(--mono);color:#c1d1c9;background:#142329de;padding:9px 11px;border-radius:4px}.map-legend span,.chart-legend span{display:flex;align-items:center;gap:6px}.swatch{display:inline-block;width:6px;height:6px;border-radius:2px;flex:none}.local{background:#66dbca}.regional{background:#9fb4ff}.express{background:#f5be76}.medical{background:#f18eaa}.zoom-controls{display:flex;gap:0;background:#162329e8;border:1px solid #496057;border-radius:5px;overflow:hidden}.zoom-controls button{min-width:32px;min-height:32px;border:0;border-radius:0;background:transparent;font:12px var(--mono)}.zoom-controls #fit{font:10px var(--sans);padding:6px 10px}.scale-bar{position:absolute;bottom:120px;right:28px;color:#a9bdb4;font:9px var(--mono);text-align:center;pointer-events:none}.scale-bar span{display:block;width:72px;height:6px;border:1px solid #86a399;border-top:0;margin-bottom:4px}.map-live{position:absolute;bottom:9px;left:32px;color:#819e91;font:8px var(--mono);letter-spacing:.08em}.control-panel{background:var(--panel);border-left:1px solid var(--line);padding:25px 21px 20px}.panel-heading{display:flex;justify-content:space-between;align-items:center}.panel-heading h2{font-size:21px;letter-spacing:-.8px;font-weight:500;margin:5px 0 18px}.panel-index{font:11px var(--mono);color:var(--dim);margin-top:-16px}.playback{display:flex;align-items:center;gap:7px;margin-bottom:22px}.primary{background:var(--accent);color:#112822;border-color:var(--accent);font-weight:650}.primary:hover{background:#99e4d8;color:#112822;border-color:#99e4d8}.primary[aria-pressed=true]{background:#2c4940;color:#b0f2de;border-color:#5c9785}.playback .primary{flex:1}.speed-group{display:flex;background:var(--bg);border:1px solid var(--line);padding:2px;border-radius:5px}.speed-group button{font:10px var(--mono);border:0;border-radius:3px;background:transparent;min-height:27px;padding:3px 7px;color:var(--muted)}.speed-group button[aria-pressed=true]{background:#2b4039;color:var(--accent)}.reset{font-size:10px;background:transparent;padding:5px 8px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:19px 18px;padding-bottom:23px}.metrics>div{border-left:1px solid var(--line);padding-left:11px}.metric-label{font:8px var(--mono);letter-spacing:.1em;color:var(--muted);display:block}.metrics strong{display:block;font:28px/1.4 var(--mono);font-weight:400;letter-spacing:-1px}.metrics small{color:var(--dim);font-size:10px}.metrics em{font:9px var(--mono);color:var(--muted);margin-left:5px;letter-spacing:0}.panel-section{border-top:1px solid var(--line);padding:18px 0 15px}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;gap:10px}.section-title h3{font-size:12px;font-weight:600}.section-title>span{font:8px var(--mono);color:var(--dim);letter-spacing:.08em}.scenario-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:15px}.scenario-grid button{display:flex;text-align:left;align-items:center;gap:10px;padding:10px;min-height:59px;background:transparent}.scenario-grid button.selected{border-color:#578677;background:#253b35}.scenario-grid button small{display:block;font-size:9px;color:var(--muted)}.scenario-grid button span:not(.scenario-icon){font-size:11px}.scenario-icon{font:23px var(--sans);color:var(--muted);width:20px;text-align:center}.selected .scenario-icon{color:var(--accent)}.range-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:6px}.range-label output{font:9px var(--mono);color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);height:18px;margin:0 0 7px}.footnote{font-size:10px;line-height:1.55;color:var(--dim)}.layer-all{display:flex;justify-content:space-between;width:100%;background:transparent;font-size:10px;min-height:30px;margin-bottom:5px}.layer-all span:last-child{font:9px var(--mono);color:var(--muted)}.layer-row{display:grid;grid-template-columns:6px 1fr 41px 57px;gap:9px;align-items:center;width:100%;border:1px solid transparent;background:transparent;border-radius:4px;padding:8px 6px;min-height:34px;text-align:left}.layer-row span{font:9px var(--mono);color:var(--muted)}.layer-row b{font:11px var(--sans);color:var(--text);margin-left:5px}.layer-row small,.layer-row em{font:9px var(--mono);font-style:normal;color:var(--muted);text-align:right}.layer-row.closed{opacity:.5;text-decoration:line-through}.setting-row{display:grid;grid-template-columns:1fr 154px;align-items:center;gap:10px;font-size:10px;margin-bottom:15px}select{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:4px;padding:7px 8px;min-width:0;width:100%;font-size:10px;min-height:32px}.check-row{display:flex;align-items:center;justify-content:space-between;min-height:32px;font-size:11px;gap:10px;cursor:pointer}.check-row input{accent-color:var(--accent);width:14px;height:14px}.rule-note{display:flex;align-items:flex-start;gap:8px;font-size:9px;color:var(--muted);margin:12px 0 15px;line-height:1.6}.rule-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:5px;flex:none}.emergency{display:flex;justify-content:space-between;width:100%;border-color:#674a55;color:#e6b1bd;background:#33292d;font-size:11px}.emergency:hover{border-color:#b98495;background:#443038}.full{width:100%;margin-top:8px}.empty-inspector{font-size:12px;line-height:1.7;padding:14px 0 0}.empty-inspector span{font-size:10px;color:var(--dim)}#inspector-content dl{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;font-size:10px;margin:13px 0 0}dt{color:var(--muted)}dd{margin:0;text-align:right;font:10px var(--mono)}.flight-title{font:16px var(--mono);color:var(--accent);margin:13px 0 5px}.route-detail{font-size:10px;color:var(--muted);line-height:1.7}.battery{height:3px;background:var(--line);margin-top:8px}.battery span{display:block;background:var(--accent);height:100%}#pulse{width:100%;height:60px;display:block}.chart-legend{display:flex;gap:12px;font:8px var(--mono);color:var(--muted);margin-top:7px}#event-log{list-style:none;margin:15px 0 0;padding:0}#event-log li{display:grid;grid-template-columns:34px 1fr;gap:9px;font-size:10px;line-height:1.5;padding:9px 0;border-top:1px solid #34414470}#event-log time{font:9px var(--mono);color:var(--dim)}#event-log .warn{color:var(--amber)}#event-log .medical{color:#f18eaa}.panel-footer{position:relative;padding-top:17px;border-top:1px solid var(--line);font-size:9px;color:var(--dim);line-height:1.8}.panel-footer a{font-size:9px}.seed{position:absolute;right:0;bottom:0;font:8px var(--mono)}dialog{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:28px;border:1px solid #53685f;border-radius:8px;background:#1b282b;color:var(--text);box-shadow:0 30px 100px #0008}dialog::backdrop{background:#081315c9;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.dialog-heading h2{font-size:28px;letter-spacing:-1px;font-weight:500;margin-top:6px}.dialog-heading button{background:transparent;font-size:24px;border:0;min-width:35px}dialog p{font-size:12px;color:var(--muted);line-height:1.8}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.guide-grid b{font:10px var(--mono);color:var(--accent)}.guide-grid p{font-size:11px;margin-top:6px}.shortcut-row{display:flex;gap:20px;flex-wrap:wrap;font-size:10px;margin:24px 0}kbd{padding:2px 5px;background:#31423d;border:1px solid #52645e;font:10px var(--mono);border-radius:3px}.guide-limit{font-size:10px!important;padding:13px 0 20px;border-top:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1600px){.workspace{grid-template-columns:minmax(0,1fr) 360px}.control-panel{padding:28px}}@media(max-width:1050px){.subbrand{display:none}.map-title h1{font-size:25px}.coordinates{display:none}.map-legend{gap:9px;font-size:8px}.map-bottom{left:20px;right:20px}.map-title,.map-tools{left:20px}.map-notice{left:20px}.workspace{grid-template-columns:minmax(0,1fr) 300px}.control-panel{padding:22px 17px}}@media(max-width:760px){.app-header{height:56px;padding:0 16px}.brand{gap:8px}.brand strong{font-size:14px}.brand-mark{width:25px;height:25px;font-size:18px}.header-divider,.subbrand,.header-right>span{display:none}.header-right .quiet{margin:0}.workspace{display:block;min-height:0}.city-stage{position:relative;height:72dvh;min-height:490px;max-height:680px}.control-panel{border-left:0;border-top:1px solid var(--line);padding:23px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.panel-heading,.playback,.metrics,.panel-footer{grid-column:1/-1}.metrics{grid-template-columns:repeat(4,1fr);gap:10px}.metrics strong{font-size:24px}.metrics small{font-size:9px}.metrics .metric-label{font-size:7px}.map-title{top:23px}.map-title h1{font-size:27px}.map-top-right{top:23px;right:18px}.map-tools{top:118px}.map-notice{bottom:98px;font-size:9px;max-width:calc(100% - 40px)}.map-bottom{bottom:29px;align-items:flex-end}.map-legend{max-width:220px;gap:8px 14px;font-size:9px}.map-live{left:22px}.scale-bar{bottom:134px;right:22px}.city-stage canvas{touch-action:pan-y}.check-row{min-height:38px}button,select{min-height:38px}.map-tools button{min-height:38px}}@media(max-width:480px){.control-panel{display:block;padding:22px}.metrics{grid-template-columns:1fr 1fr;gap:17px;display:grid}.metrics strong{font-size:28px}.metrics .metric-label{font-size:8px}.map-title h1{font-size:24px;max-width:250px}.map-title .eyebrow{font-size:8px}.weather-line{font-size:9px;gap:7px}.map-top-right{top:65px}.map-tools{top:130px}.map-tools button{font-size:10px;padding:7px 11px}.map-bottom{gap:8px}.map-legend{max-width:180px;gap:8px 12px;font-size:8px;padding:9px 8px}.zoom-controls button{min-width:30px}.map-live{font-size:7px}.guide-grid{grid-template-columns:1fr;gap:16px}.dialog-heading h2{font-size:23px}dialog{padding:23px}.shortcut-row{gap:13px}.app-header .year{font-size:9px}.header-right .quiet{font-size:10px}}@media(pointer:coarse){button{min-height:44px}.zoom-controls button,.map-tools button{min-height:44px}.speed-group button{min-height:36px;min-width:32px}.check-row{min-height:44px}select{min-height:44px;font-size:16px}input[type=range]{height:30px}.map-notice{bottom:100px}.layer-row{min-height:44px}.check-row input{width:20px;height:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Camera and controls stay visible in the narrow in-app preview. */
#view3d{position:absolute;inset:0;background:#182f3c}#view3d canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.view-bar{position:absolute;top:128px;left:30px;right:26px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.view-switch{display:flex;background:#162329f2;border:1px solid #496057;border-radius:5px;overflow:hidden}.view-switch button{font-size:11px;min-height:34px;border:0;border-radius:0;background:transparent}.view-switch button[aria-pressed=true]{background:#2c4841;color:#c6f4e5}#adjust-controls{font-size:11px;min-height:36px}.map-tools{top:178px}.city-stage[data-view=3d] .map-title h1{max-width:320px}.city-stage[data-view=3d] .map-title{pointer-events:none}.map-notice{line-height:1.5}#controls-drawer{padding:0;width:min(400px,calc(100% - 24px));max-height:88dvh;background:var(--panel);border-color:#53685f}#controls-drawer .control-panel{border:0;padding:18px 23px;display:block}#controls-drawer .metrics{display:grid;grid-template-columns:1fr 1fr}#controls-drawer .panel-heading{display:none}.drawer-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 23px 12px;background:var(--panel);position:sticky;top:0;z-index:2;border-bottom:1px solid var(--line)}.drawer-heading h2{font-size:21px;font-weight:500;letter-spacing:-.6px;margin-top:4px}.drawer-heading button{background:none;border:0;font-size:23px;min-width:36px;padding:0 6px}#controls-drawer::backdrop{background:#061318a8;backdrop-filter:none}@media(max-width:1050px){.view-bar{left:20px;right:20px}}@media(max-width:760px){.city-stage{min-height:600px;max-height:760px}.view-bar{top:125px}.map-tools{top:177px}#adjust-controls{min-height:40px}.view-switch button{min-height:40px}.map-title h1{font-size:25px}.control-panel .metrics{display:grid}}@media(max-width:480px){.view-bar{top:124px;gap:8px;justify-content:flex-start}.view-switch button{font-size:10px;padding:6px 10px;min-height:36px}#adjust-controls{font-size:10px;min-height:36px;padding:6px 9px}.map-tools{top:170px}.map-tools button{font-size:9px;padding:5px 10px}.city-stage{min-height:600px}}@media(max-width:370px){.view-switch button{padding:5px 8px;font-size:9px}#adjust-controls{font-size:9px;padding:5px 7px}}@media(pointer:coarse){.view-switch button,#adjust-controls{min-height:44px}.map-tools{top:183px}.map-tools button{min-height:40px}}

.altitude-rail{position:absolute;inset:0;pointer-events:none}.altitude-rail span{position:absolute;left:14px;font:10px var(--mono);padding:5px 8px;border:1px solid #63807875;border-radius:3px;background:#14272bed;white-space:nowrap}
