:root{--bg:#010509;--panel:#041019;--panel2:#06151e;--line:rgba(107,224,247,.16);--line2:rgba(107,224,247,.32);--cyan:#79eaff;--green:#92ffd0;--amber:#ffc76a;--red:#ff768b;--text:#d9f5fb;--muted:#789aa7;--dim:#4f6d79;--mono:"Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--left-w:305px;--right-w:330px;--stage-map:58%}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--text);font-family:var(--sans)}button,input,select{font:inherit}button{cursor:pointer}body{overflow:hidden;background:radial-gradient(circle at 50% -20%,#092837 0,#020910 33%,#010408 72%)}[hidden]{display:none!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(111,231,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(111,231,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 82%)}
/* boot */
.boot-screen{position:fixed;inset:0;z-index:1000;background:#010307;display:grid;place-items:center;overflow:hidden;transition:opacity .5s,filter .5s}.boot-screen.exit{opacity:0;filter:brightness(2) blur(3px)}.noise,.orbit-noise{position:absolute;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");animation:noise .16s steps(2) infinite}@keyframes noise{50%{transform:translate(2px,-1px)}}.scanline,.orbit-scanline{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);box-shadow:0 0 20px var(--cyan);opacity:.22;animation:scan 4.3s linear infinite}@keyframes scan{from{top:-2%}to{top:102%}}.boot-frame{position:relative;width:min(760px,88vw);padding:40px 44px;border:1px solid var(--line2);background:rgba(3,12,19,.82);box-shadow:0 0 90px rgba(59,206,241,.07),inset 0 0 70px rgba(59,206,241,.03)}.boot-kicker{font:700 12px var(--mono);letter-spacing:.18em;color:var(--cyan)}.boot-frame h1{font:800 clamp(54px,8vw,110px)/.9 var(--mono);letter-spacing:-.08em;margin:18px 0 14px;color:#dfffff;text-shadow:0 0 35px rgba(112,239,255,.28);position:relative}.boot-frame h1 em{font-size:.18em;letter-spacing:.04em;color:var(--green);font-style:normal;vertical-align:top;margin-left:12px}.boot-frame h1:after{content:attr(data-text);position:absolute;left:2px;top:1px;color:var(--cyan);opacity:.18;clip-path:inset(44% 0 46%);animation:glitch 1.2s steps(2) infinite}@keyframes glitch{25%{transform:translateX(5px)}50%{transform:translateX(-3px)}75%{transform:translateX(2px)}}.boot-frame p{max-width:560px;color:var(--muted);font:14px/1.6 var(--mono)}.rf-spectrum{height:54px;margin-top:24px;display:flex;align-items:center;gap:5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;overflow:hidden}.rf-spectrum i{display:block;width:4px;background:var(--cyan);opacity:.62;animation:rfBars .75s ease-in-out infinite alternate}.rf-spectrum i:nth-child(1){height:10px}.rf-spectrum i:nth-child(2){height:28px;animation-delay:-.25s}.rf-spectrum i:nth-child(3){height:18px;animation-delay:-.42s}.rf-spectrum i:nth-child(4){height:35px;animation-delay:-.16s}.rf-spectrum i:nth-child(5){height:22px;animation-delay:-.55s}.rf-spectrum i:nth-child(6){height:38px;animation-delay:-.33s}.rf-spectrum i:nth-child(7){height:16px;animation-delay:-.66s}.rf-spectrum i:nth-child(8){height:31px;animation-delay:-.48s}.rf-spectrum i:nth-child(9){height:24px;animation-delay:-.12s}.rf-spectrum i:nth-child(10){height:40px;animation-delay:-.61s}.rf-spectrum i:nth-child(11){height:15px;animation-delay:-.37s}.rf-spectrum i:nth-child(12){height:27px;animation-delay:-.73s}@keyframes rfBars{to{transform:scaleY(.35);opacity:.25}}.boot-log{margin-top:18px;color:#7ea8b6;font:13px var(--mono)}.boot-progress{margin-top:12px;height:8px;border:1px solid var(--line2);display:flex;align-items:center;position:relative}.boot-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 14px var(--cyan);transition:width .22s}.boot-progress b{position:absolute;right:0;bottom:14px;font:700 12px var(--mono);color:var(--green)}.boot-status{margin-top:12px;display:flex;justify-content:space-between;gap:20px;font-family:var(--mono)}.boot-status span{font-size:13px;color:var(--cyan)}.boot-status small{font-size:11px;color:var(--dim)}.boot-meta{position:absolute;left:4vw;right:4vw;bottom:26px;display:flex;justify-content:space-between;color:#476674;font:10px var(--mono);letter-spacing:.14em}
/* orbital search */
.orbital-acquisition{position:fixed;inset:0;z-index:900;background:radial-gradient(circle at 50% 75%,#061726 0,#01050b 46%,#000207 100%);overflow:hidden;opacity:1;transition:opacity .5s}.orbital-acquisition.fade{opacity:0}.orbit-stars{position:absolute;inset:0;background-image:radial-gradient(circle,#d7fbff 0 1px,transparent 1.2px),radial-gradient(circle,#70e8ff 0 1px,transparent 1.3px);background-size:137px 137px,211px 211px;background-position:11px 23px,72px 89px;opacity:.34}.orbit-header{position:absolute;z-index:4;left:32px;right:32px;top:24px;display:flex;justify-content:space-between;padding:12px 14px;border-top:1px solid var(--line2);border-bottom:1px solid var(--line);font:700 12px var(--mono);letter-spacing:.13em;color:var(--cyan)}.orbit-scene{position:absolute;inset:50px 35% 30px 2%;display:grid;place-items:center}.orbit-scene svg{width:100%;height:100%;overflow:visible}.orbit-path{fill:none;stroke:#65dcf4;stroke-width:1.2;stroke-dasharray:10 12;opacity:.32}.op1{animation:dash 9s linear infinite}.op2{animation:dash 13s linear reverse infinite}@keyframes dash{to{stroke-dashoffset:-220}}.orbit-earth{filter:drop-shadow(0 0 45px rgba(68,203,255,.16))}.orbit-grid>*{fill:none;stroke:#5bddfa;stroke-width:1;opacity:.25}.orbit-grid path{fill:rgba(22,83,99,.28);stroke:#71d8e6;opacity:.42}.earth-horizon{fill:none;stroke:#a1ffe0;stroke-width:3;opacity:.44;filter:drop-shadow(0 0 10px #75e7ff)}.orbit-satellite{fill:#071621;stroke:#a3ffdf;stroke-width:2;transform-origin:500px 330px;animation:satPass 3.2s cubic-bezier(.25,.7,.2,1) both}.orbit-satellite .orbit-beam{stroke:none;opacity:.6;animation:beamPulse .8s ease-in-out infinite alternate}@keyframes beamPulse{to{opacity:.25}}@keyframes satPass{0%{transform:translate(155px,120px) rotate(-10deg)}45%{transform:translate(495px,260px) rotate(8deg)}100%{transform:translate(760px,400px) rotate(18deg)}}.orbit-lock{fill:none;stroke:var(--green);stroke-width:1.4;opacity:.45;animation:lock 1s ease-in-out infinite alternate}@keyframes lock{to{opacity:1;transform:translate(506px,552px) scale(1.12)}}.orbit-coordinate,.orbit-ephemeris{position:absolute;padding:11px 13px;border:1px solid var(--line);background:rgba(2,10,16,.72);font-family:var(--mono)}.orbit-coordinate{left:5%;bottom:14%}.orbit-ephemeris{right:2%;top:18%;text-align:right}.orbit-coordinate span,.orbit-ephemeris span{display:block;font-size:10px;color:var(--dim)}.orbit-coordinate b,.orbit-ephemeris b{display:block;margin:5px 0;color:var(--green);font-size:14px}.orbit-coordinate small,.orbit-ephemeris small{font-size:10px;color:var(--muted)}.orbit-console{position:absolute;right:4%;top:16%;bottom:12%;width:min(420px,31vw);padding:22px;border:1px solid var(--line2);background:rgba(2,10,16,.86);box-shadow:0 0 60px rgba(64,211,245,.08);display:flex;flex-direction:column}.orbit-console-head{display:flex;justify-content:space-between;gap:18px;font:700 12px var(--mono);color:var(--cyan)}.orbit-meter{height:6px;margin:14px 0 18px;background:#0c2029}.orbit-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--green));box-shadow:0 0 14px var(--cyan);transition:width .3s}.orbit-console pre{flex:1;margin:0;white-space:pre-wrap;color:#82a8b7;font:12px/1.75 var(--mono);overflow:hidden}.orbit-result{border-top:1px solid var(--line);padding-top:16px;font-family:var(--mono)}.orbit-result span{font-size:10px;color:var(--dim)}.orbit-result b{display:block;margin:6px 0;color:var(--green);font-size:16px}.orbit-result small{font-size:11px;color:var(--muted)}.skip-orbit{position:absolute;right:4%;bottom:5%;border:1px solid var(--line2);background:#06131c;color:var(--muted);padding:9px 13px;font:700 11px var(--mono)}
/* app */
.local-banner{position:fixed;z-index:700;left:50%;top:8px;transform:translateX(-50%);background:#2c1b07;border:1px solid rgba(255,196,84,.45);color:#ffd890;padding:7px 12px;font:11px var(--mono)}.app{height:100vh;display:grid;grid-template-rows:64px 72px 34px minmax(0,1fr) 28px}.topbar{display:flex;align-items:center;border-bottom:1px solid var(--line);background:rgba(2,8,13,.94);min-width:0}.brand{height:100%;min-width:280px;padding:0 18px;display:flex;align-items:center;gap:12px;color:var(--text);border:0;border-right:1px solid var(--line);background:transparent;text-align:left}.brand svg{width:38px;height:38px;fill:none;stroke:var(--cyan);stroke-width:1.6;filter:drop-shadow(0 0 8px rgba(110,233,255,.28))}.brand b{display:block;font:800 20px var(--mono);letter-spacing:.08em}.brand small{display:block;margin-top:3px;font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}.brand em{font-style:normal;color:var(--green)}.system-strip{height:100%;display:flex;align-items:stretch;flex:1;min-width:0}.system-strip>span{display:flex;align-items:center;gap:7px;padding:0 15px;border-right:1px solid var(--line);font:11px var(--mono);color:var(--dim);white-space:nowrap}.system-strip b{color:var(--cyan);font-size:12px}.live-dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 9px var(--green);animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.25}}.clockbox{min-width:178px;padding:0 16px;display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;align-items:center;border-left:1px solid var(--line);font-family:var(--mono)}.clockbox span{font-size:10px;color:var(--dim)}.clockbox b{grid-row:1/3;grid-column:2;font-size:18px;color:var(--green)}.clockbox small{font-size:10px;color:var(--cyan)}
.querydeck{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);background:#020910}.query-label{width:205px}.query-label b{display:block;font:800 13px var(--mono);color:var(--cyan)}.query-label span{display:block;margin-top:4px;font:11px var(--mono);color:var(--dim)}.terminal-search{position:relative;display:flex;align-items:center;flex:1;min-width:260px;height:46px;border:1px solid var(--line2);background:#030d14;box-shadow:inset 0 0 24px rgba(67,207,238,.025)}.terminal-search:focus-within{border-color:rgba(124,236,255,.58);box-shadow:0 0 18px rgba(75,213,243,.06)}.prompt{padding-left:13px;color:var(--green);font:700 12px var(--mono)}.terminal-search input{height:100%;flex:1;min-width:0;border:0;outline:0;background:transparent;color:#e8fbff;padding:0 12px;font:15px var(--mono)}.terminal-search input::placeholder{color:#4d6c78}.terminal-search>button{height:100%;padding:0 18px;border:0;border-left:1px solid var(--line2);background:#08212b;color:var(--green);font:800 12px var(--mono);letter-spacing:.08em}.suggestions{position:absolute;z-index:200;left:-1px;right:-1px;top:47px;border:1px solid var(--line2);background:#031017;box-shadow:0 18px 40px rgba(0,0,0,.5);max-height:290px;overflow:auto}.suggestions button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text)}.suggestions button:hover{background:#08212b}.suggestions b{display:block;font:700 12px var(--mono);color:var(--cyan)}.suggestions span{display:block;margin-top:3px;font:11px var(--mono);color:var(--muted)}.deck-btn,.ghost-btn{height:38px;padding:0 13px;border:1px solid var(--line2);background:#06131c;color:var(--cyan);font:700 11px var(--mono)}.deck-btn{height:46px}.deck-btn:hover,.ghost-btn:hover{border-color:var(--cyan);background:#08202b}.statusline{display:flex;align-items:center;gap:12px;padding:0 13px;background:#030b11;border-bottom:1px solid var(--line);font:11px var(--mono);min-width:0}.statusline b{color:var(--green);white-space:nowrap}.statusline span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusline small{margin-left:auto;color:#50707e;white-space:nowrap}
.workspace{min-height:0;display:grid;grid-template-columns:var(--left-w) 7px minmax(420px,1fr) 7px var(--right-w);background:#01060a}.rail{min-width:0;min-height:0;overflow:hidden;background:#020910}.left-rail{display:flex;flex-direction:column;border-right:1px solid var(--line)}.right-rail{display:flex;flex-direction:column;border-left:1px solid var(--line)}.resize-handle.vertical{cursor:col-resize;background:linear-gradient(90deg,transparent,rgba(115,231,251,.14),transparent);position:relative}.resize-handle.vertical:after{content:"";position:absolute;left:2px;top:50%;width:3px;height:44px;transform:translateY(-50%);background:var(--line2);border-radius:4px}.resizing,.resizing *{cursor:col-resize!important;user-select:none!important}.panel{border-bottom:1px solid var(--line);min-height:0}.panel>header{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid var(--line);background:#041019;font:800 11px var(--mono);letter-spacing:.08em;color:#84b7c7}.panel>header b{font-size:11px;color:var(--green)}.target-panel{flex:0 0 auto}.target-summary{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;padding:13px 12px;border-bottom:1px solid var(--line)}.target-symbol{width:42px;height:42px;border:1px solid var(--red);border-radius:50%;position:relative}.target-symbol:before,.target-symbol:after{content:"";position:absolute;background:var(--red);opacity:.6}.target-symbol:before{left:20px;top:-7px;width:1px;height:56px}.target-symbol:after{top:20px;left:-7px;width:56px;height:1px}.target-symbol i{position:absolute;inset:14px;background:var(--red);border-radius:50%;box-shadow:0 0 11px var(--red)}.target-summary span{display:block;font:10px var(--mono);color:var(--dim)}.target-summary b{display:block;margin:4px 0;color:#e3fbff;font:800 14px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-summary small{display:block;color:var(--muted);font:11px/1.35 var(--mono);max-height:31px;overflow:hidden}.science-grid{display:grid}.science-grid.two{grid-template-columns:1fr 1fr}.science-grid>div{padding:11px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.science-grid span{display:block;color:var(--dim);font:10px var(--mono)}.science-grid b{display:block;margin-top:5px;color:var(--cyan);font:800 13px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.science-grid.compact>div{padding:9px 10px}.field-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font:10px var(--mono);color:var(--dim)}.field-row select{border:1px solid var(--line2);background:#06141d;color:var(--cyan);padding:6px 8px;font:700 11px var(--mono)}.nearest-panel{flex:1;display:flex;flex-direction:column}.nearest-list{flex:1;overflow:auto}.nearest-item{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:11px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--text)}.nearest-item:hover,.nearest-item.active{background:#071923}.nearest-rank{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line2);color:var(--cyan);font:800 12px var(--mono)}.nearest-item.active .nearest-rank{border-color:var(--green);color:var(--green);box-shadow:0 0 12px rgba(126,255,202,.12)}.nearest-main b{display:block;font:800 12px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nearest-main span{display:block;margin-top:4px;color:var(--muted);font:10px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nearest-range{font:800 11px var(--mono);color:var(--amber);align-self:center}.empty{padding:20px 12px;color:var(--dim);font:11px/1.6 var(--mono)}
.stage{min-width:0;min-height:0;display:grid;grid-template-rows:46px minmax(0,1fr) 68px;background:#01060b}.stagebar{display:flex;align-items:center;gap:7px;padding:0 8px;border-bottom:1px solid var(--line);background:#020a10;min-width:0;overflow:auto}.view-tabs,.map-modes,.wall-layout{display:flex;align-items:center;border:1px solid var(--line);height:34px;white-space:nowrap}.view-tabs button,.map-modes button,.wall-layout button{height:100%;padding:0 11px;border:0;border-right:1px solid var(--line);background:#041019;color:#648493;font:800 10px var(--mono)}.view-tabs button.active,.map-modes button.active,.wall-layout button.active{background:#0b2933;color:var(--green);box-shadow:inset 0 -2px 0 var(--green)}.wall-layout span{padding:0 9px;color:var(--dim);font:10px var(--mono)}.wall-layout button.disabled{opacity:.26;pointer-events:none}.grow{flex:1}.ai-btn{height:34px;padding:0 12px;border:1px solid var(--line2);background:#06131c;color:var(--muted);font:800 10px var(--mono);white-space:nowrap}.ai-btn i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#3f5e69;margin-right:7px}.ai-btn.active{color:var(--green);border-color:rgba(142,255,206,.45)}.ai-btn.active i{background:var(--green);box-shadow:0 0 9px var(--green)}
.stage-surface{min-height:0;display:grid;grid-template-columns:var(--stage-map) 7px minmax(260px,1fr)}.stage-surface.view-map{grid-template-columns:1fr}.stage-surface.view-map .wall-pane,.stage-surface.view-map .stage-resize{display:none}.stage-surface.view-wall{grid-template-columns:1fr}.stage-surface.view-wall .map-pane,.stage-surface.view-wall .stage-resize{display:none}.stage-resize{cursor:col-resize;background:linear-gradient(90deg,transparent,rgba(112,233,255,.18),transparent);position:relative}.stage-resize:after{content:"";position:absolute;left:2px;top:50%;width:3px;height:52px;background:var(--line2);transform:translateY(-50%);border-radius:3px}.map-pane,.wall-pane{position:relative;min-width:0;min-height:0;overflow:hidden}.map-pane{background:#02070b}.wall-pane{background:#010407}.map-pane #map{position:absolute;inset:0}.map-shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 45%,rgba(0,4,8,.28) 100%);z-index:3}.map-grid{position:absolute;inset:0;pointer-events:none;z-index:4;background-image:linear-gradient(rgba(109,228,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(109,228,255,.05) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at center,black,transparent 78%)}.map-reticle{position:absolute;z-index:6;left:50%;top:50%;width:86px;height:86px;transform:translate(-50%,-50%);border:1px solid rgba(141,255,207,.24);border-radius:50%;pointer-events:none}.map-reticle:before,.map-reticle:after{content:"";position:absolute;background:rgba(141,255,207,.22)}.map-reticle:before{left:42px;top:-30px;width:1px;height:146px}.map-reticle:after{top:42px;left:-30px;width:146px;height:1px}.map-reticle i{position:absolute;width:11px;height:11px;border-color:var(--green);opacity:.55}.map-reticle i:nth-child(1){left:10px;top:10px;border-left:1px solid;border-top:1px solid}.map-reticle i:nth-child(2){right:10px;top:10px;border-right:1px solid;border-top:1px solid}.map-reticle i:nth-child(3){left:10px;bottom:10px;border-left:1px solid;border-bottom:1px solid}.map-reticle i:nth-child(4){right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}.map-hud{position:absolute;z-index:8;pointer-events:none;padding:8px 10px;border:1px solid var(--line);background:rgba(2,9,14,.78);font-family:var(--mono)}.map-hud span{display:block;color:var(--dim);font-size:9px}.map-hud b{display:block;margin-top:4px;color:var(--cyan);font-size:11px}.map-hud.top-left{left:10px;top:10px}.map-hud.top-right{right:10px;top:10px;text-align:right}.map-hud.bottom-right{right:10px;bottom:10px;text-align:right}.map-controls{position:absolute;z-index:9;right:10px;top:72px;display:grid;border:1px solid var(--line2)}.map-controls button{width:36px;height:34px;border:0;border-bottom:1px solid var(--line);background:#06131c;color:var(--cyan);font:800 16px var(--mono)}.map-fallback{position:absolute;inset:0;z-index:20;display:grid;place-content:center;text-align:center;background:#02070b;color:var(--muted);font:12px var(--mono)}.map-fallback b{color:var(--amber);font-size:15px;margin-bottom:7px}.wall-head{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid var(--line);background:#030b10;font-family:var(--mono)}.wall-head span{display:block;font-size:9px;color:var(--dim)}.wall-head b{display:block;margin-top:3px;font-size:11px;color:var(--cyan)}.wall-head small{font-size:9px;color:var(--green)}.camera-wall{position:absolute;inset:50px 5px 5px;display:grid;gap:5px}.camera-wall.grid-1{grid-template-columns:1fr;grid-template-rows:1fr}.camera-wall.grid-4{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.camera-wall.grid-8{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr)}.camera-wall.grid-16{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr)}.camera-tile{position:relative;min-width:0;min-height:0;overflow:hidden;background:#000;border:1px solid rgba(104,222,247,.18)}.camera-tile.primary{border-color:rgba(143,255,208,.72);box-shadow:inset 0 0 28px rgba(98,255,178,.07)}.camera-tile video,.camera-tile canvas{position:absolute;inset:0;width:100%;height:100%}.camera-tile video{object-fit:cover;background:#000}.camera-tile canvas{pointer-events:none}.tile-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(110,235,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(110,235,255,.055) 1px,transparent 1px);background-size:25% 25%}.tile-top,.tile-bottom{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:7px 8px;font:10px var(--mono);pointer-events:none}.tile-top{top:0;background:linear-gradient(180deg,rgba(0,5,10,.94),transparent)}.tile-bottom{bottom:0;background:linear-gradient(0deg,rgba(0,5,10,.95),transparent);align-items:flex-end}.tile-top b{color:var(--green)}.tile-top span{color:#84a3ae}.tile-bottom b{display:block;color:#e2faff;font-size:11px}.tile-bottom span{display:block;margin-top:3px;color:#7e9ba6;font-size:9px}.tile-link{color:var(--cyan)!important;font-weight:700}.tile-error{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#081722,#010408);color:#628493;font:10px/1.5 var(--mono);padding:18px}.tile-error b{color:var(--amber);font-size:11px}.tile-error.hidden{display:none}.tile-primary-mark{position:absolute;left:50%;top:50%;width:48px;height:48px;transform:translate(-50%,-50%);border:1px solid rgba(134,255,197,.36);border-radius:50%;opacity:0;pointer-events:none}.camera-tile.primary .tile-primary-mark{opacity:1}.tile-primary-mark:before,.tile-primary-mark:after{content:"";position:absolute;background:rgba(134,255,197,.38)}.tile-primary-mark:before{left:23px;top:-16px;width:1px;height:80px}.tile-primary-mark:after{top:23px;left:-16px;width:80px;height:1px}.wall-empty{position:absolute;inset:0;display:grid;place-content:center;color:var(--dim);font:12px var(--mono)}
.telemetrybar{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);background:#020910}.telemetrybar>div{padding:10px 12px;border-right:1px solid var(--line);min-width:0}.telemetrybar span{display:block;color:var(--dim);font:9px var(--mono)}.telemetrybar b{display:block;margin-top:5px;color:var(--cyan);font:800 12px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vision-model{padding:12px;border-bottom:1px solid var(--line);font-family:var(--mono)}.vision-model span,.vision-model small{display:block;color:var(--dim);font-size:9px}.vision-model b{display:block;margin:5px 0;color:var(--cyan);font-size:12px}.object-grid{display:grid;grid-template-columns:repeat(3,1fr)}.object-grid>div{padding:10px 6px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.object-grid span{display:block;color:var(--dim);font:9px var(--mono)}.object-grid b{display:block;margin-top:4px;color:var(--green);font:800 17px var(--mono)}.attention-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;color:var(--dim);font:10px var(--mono)}.attention-row b{color:var(--amber);font-size:12px}.environment-panel{flex:0 0 auto}.event-panel{flex:1;display:flex;flex-direction:column}.event-feed{flex:1;overflow:auto}.event{display:grid;grid-template-columns:68px 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font:10px/1.45 var(--mono)}.event time{color:#456775}.event span{color:#81a5b3}.event.ok span{color:var(--green)}.event.warn span{color:var(--amber)}.event.fail span{color:var(--red)}footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 12px;border-top:1px solid var(--line);background:#010509;color:#456675;font:9px var(--mono);white-space:nowrap;overflow:auto}
/* MapLibre custom control cleanup */.maplibregl-map{font-family:var(--mono)}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{display:none}.maplibregl-ctrl-attrib{background:rgba(1,7,11,.75)!important;color:#5a7885!important;font-size:9px!important}.maplibregl-ctrl-attrib a{color:#6da7b9!important}.maplibregl-popup-content{border-radius:0;background:#041019;color:var(--text);border:1px solid var(--line2);box-shadow:0 0 28px rgba(0,0,0,.55);font:11px/1.5 var(--mono)}.maplibregl-popup-tip{border-top-color:#041019!important}.popup-title{color:var(--green);font-weight:800}.leaflet-container{background:#02070b;font-family:var(--mono)}.leaflet-control-attribution{background:rgba(1,7,11,.75)!important;color:#587683!important;font-size:9px!important}.leaflet-control-attribution a{color:#6da7b9!important}.fallback-map .leaflet-tile-pane{filter:grayscale(1) invert(.86) sepia(.22) hue-rotate(142deg) brightness(.62) contrast(1.28) saturate(.6)}.sensor-dot{width:22px;height:22px;position:relative}.sensor-dot:before{content:"";position:absolute;left:8px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 9px var(--cyan)}.sensor-dot:after{content:"";position:absolute;inset:3px;border:1px solid rgba(116,234,255,.5);border-radius:50%;animation:nodePulse 2s ease-out infinite}@keyframes nodePulse{from{transform:scale(.45);opacity:.8}to{transform:scale(1.5);opacity:0}}.sensor-dot.near:before{background:var(--amber);box-shadow:0 0 10px var(--amber)}.sensor-dot.primary:before{background:var(--green);box-shadow:0 0 12px var(--green)}.target-dot{width:34px;height:34px;border:1px solid var(--red);border-radius:50%;position:relative}.target-dot:before,.target-dot:after{content:"";position:absolute;background:var(--red)}.target-dot:before{left:16px;top:-8px;width:1px;height:50px}.target-dot:after{top:16px;left:-8px;width:50px;height:1px}
@media(max-width:1450px){:root{--left-w:280px;--right-w:300px}.system-strip>span:nth-child(4){display:none}.camera-wall.grid-8{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}}
@media(max-width:1150px){.workspace{grid-template-columns:260px 7px minmax(420px,1fr)}.right-rail,#rightResize{display:none}.query-label{display:none}.system-strip>span:nth-child(3){display:none}.stage-surface.view-split{--stage-map:52%}.camera-wall.grid-8{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(4,1fr)}}
@media(max-width:820px){body{overflow:auto}.app{height:auto;min-height:100vh;grid-template-rows:auto auto 34px auto 28px}.topbar{min-height:64px;flex-wrap:wrap}.brand{min-width:230px}.system-strip{order:3;width:100%;height:38px}.clockbox{min-width:150px}.querydeck{flex-wrap:wrap}.terminal-search{order:3;flex-basis:100%;height:50px}.prompt{display:none}.deck-btn{flex:1}.workspace{display:block}.left-rail{max-height:470px}.resize-handle{display:none}.stage{height:78vh;min-height:620px}.right-rail{display:flex;min-height:560px}.stagebar{overflow-x:auto}.stage-surface.view-split{display:block}.stage-surface.view-split .map-pane{height:48%}.stage-surface.view-split .wall-pane{height:52%}.stage-resize{display:none}.camera-wall.grid-4,.camera-wall.grid-8,.camera-wall.grid-16{grid-template-columns:1fr;grid-template-rows:repeat(var(--mobile-rows,4),minmax(180px,1fr));overflow:auto}.telemetrybar{grid-template-columns:repeat(3,1fr)}.orbit-scene{inset:55px 2% 42%}.orbit-console{left:5%;right:5%;top:auto;bottom:5%;width:auto;height:36%}.orbit-coordinate,.orbit-ephemeris{display:none}.boot-meta span:nth-child(2),.boot-meta span:nth-child(3){display:none}}

.soft-disabled{opacity:.52}.pick-mode #map{cursor:crosshair!important}


/* ===== Pantau 0.1 refinement: street 3D, signal states, precision clock ===== */
.clockbox{min-width:236px!important;padding:5px 14px!important;display:grid!important;grid-template-columns:1fr auto!important;grid-template-rows:auto auto!important;column-gap:12px!important;align-items:center!important;text-align:right!important;white-space:nowrap!important}
.clockbox #dateLabel{grid-column:1;grid-row:1/3;align-self:center;justify-self:end;font:700 10px/1.25 var(--mono)!important;letter-spacing:.1em;color:#638996!important;max-width:none!important}
.clock-readout{grid-column:2;grid-row:1;display:flex;align-items:baseline;justify-content:flex-end;min-width:138px;line-height:1}
.clock-readout #clockMain{font:900 18px/1 var(--mono);letter-spacing:.055em;color:var(--green);font-variant-numeric:tabular-nums}
.clock-readout #clockMs{font:800 10px/1 var(--mono);letter-spacing:.02em;color:var(--cyan);margin-left:2px;min-width:29px;font-variant-numeric:tabular-nums}
.clockbox small{grid-column:2;grid-row:2;margin-top:4px!important;font:700 8px/1 var(--mono)!important;letter-spacing:.13em!important;color:#4e7380!important}

/* no persistent sniper/crosshair overlay: target itself is a soft pulse only */
.map-reticle,.tile-primary-mark{display:none!important}
.target-dot{width:24px!important;height:24px!important;border:1px solid rgba(255,118,139,.9)!important;box-shadow:0 0 0 6px rgba(255,118,139,.08),0 0 18px rgba(255,118,139,.22);border-radius:50%!important}
.target-dot:before,.target-dot:after{display:none!important}

.map-pane{background:#071015!important}
.map-grid{opacity:.35}
.map-shade{background:linear-gradient(180deg,rgba(2,7,10,.08),rgba(2,7,10,.22))!important}
.map-modes button{min-width:70px}
#mapStreetBtn.active{background:#16313b!important;color:#bfffe7!important}

/* camera health and transport signal visualization */
.signal-state{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;background:radial-gradient(circle at 50% 45%,rgba(8,25,31,.72),rgba(0,3,6,.96) 70%);font-family:var(--mono);pointer-events:none}
.signal-state[hidden]{display:none!important}
.signal-state b{font-size:clamp(12px,1vw,17px);letter-spacing:.12em;color:#8fb0bb}
.signal-state span{font-size:10px;letter-spacing:.06em;color:#4f707b}
.signal-state.weak b{color:var(--amber)}
.signal-state.none b{color:var(--red)}
.signal-state.none{background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 4px),radial-gradient(circle,rgba(46,16,20,.28),rgba(0,3,6,.97) 70%)}
.signal-bars{height:34px;display:flex;align-items:flex-end;gap:4px}
.signal-bars i{display:block;width:5px;background:#56727a;border-radius:1px;animation:signalBar 1.15s ease-in-out infinite}
.signal-bars i:nth-child(1){height:9px;animation-delay:0s}.signal-bars i:nth-child(2){height:16px;animation-delay:.1s}.signal-bars i:nth-child(3){height:24px;animation-delay:.2s}.signal-bars i:nth-child(4){height:32px;animation-delay:.3s}
.signal-state.acquiring .signal-bars i{background:var(--cyan)}
.signal-state.weak .signal-bars i:nth-child(-n+2){background:var(--amber)}
.signal-state.weak .signal-bars i:nth-child(n+3){background:#293c41;animation:none}
.signal-state.none .signal-bars i{background:#2d171a;animation:none}
@keyframes signalBar{0%,100%{opacity:.25;transform:scaleY(.62)}50%{opacity:1;transform:scaleY(1)}}
.health-good{color:var(--green)!important}.health-weak{color:var(--amber)!important}.health-none{color:var(--red)!important}.health-acquiring{color:var(--cyan)!important}
.camera-tile.primary{border-color:rgba(143,255,208,.55)!important;box-shadow:inset 0 0 0 1px rgba(143,255,208,.07)!important}
.tile-error{display:none!important}

footer>span:first-child{color:#648895;letter-spacing:.08em}
@media(max-width:820px){.clockbox{min-width:210px!important}.clockbox #dateLabel{font-size:9px!important}.clock-readout #clockMain{font-size:16px}.clock-readout #clockMs{font-size:9px}}

/* Boot 0.1 fail-open transition */
.boot-screen{transition:opacity .48s ease,filter .48s ease,transform .48s ease}
.boot-screen.boot-complete{opacity:0;filter:blur(5px) brightness(1.35);transform:scale(1.012);pointer-events:none}

/* MAP MODE FIX — make every mode visually distinct, including degraded Leaflet fallback */
.map-pane.mode-2d{--mode-accent:var(--cyan)}
.map-pane.mode-3d{--mode-accent:var(--green)}
.map-pane.mode-street{--mode-accent:var(--amber)}
.map-pane.mode-3d:after,.map-pane.mode-street:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;border:1px solid color-mix(in srgb,var(--mode-accent) 42%,transparent);box-shadow:inset 0 0 70px color-mix(in srgb,var(--mode-accent) 6%,transparent)}
.map-pane.mode-street .map-grid{background-size:44px 44px;opacity:.26}
.map-pane.mode-3d .map-grid{background-size:54px 54px;opacity:.3}
#map.leaflet-mode-3d .leaflet-tile-pane,#map.leaflet-mode-3d .leaflet-overlay-pane,#map.leaflet-mode-3d .leaflet-marker-pane{transform-origin:50% 78%;transform:perspective(1100px) rotateX(23deg) scale(1.08);transition:transform .85s cubic-bezier(.2,.7,.2,1)}
#map.leaflet-mode-street .leaflet-tile-pane,#map.leaflet-mode-street .leaflet-overlay-pane,#map.leaflet-mode-street .leaflet-marker-pane{transform-origin:50% 86%;transform:perspective(900px) rotateX(48deg) scale(1.38) translateY(-4%);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
#map:not(.leaflet-mode-3d):not(.leaflet-mode-street) .leaflet-tile-pane,#map:not(.leaflet-mode-3d):not(.leaflet-mode-street) .leaflet-overlay-pane,#map:not(.leaflet-mode-3d):not(.leaflet-mode-street) .leaflet-marker-pane{transition:transform .65s ease}


/* ===== Pantau 0.1 / OpenFreeMap true-3D + atmospheric panel ===== */
#map3dBtn.active{background:#17332f!important;color:#c8ffe9!important;border-color:rgba(141,255,207,.44)!important;box-shadow:inset 0 -2px 0 var(--green)}
.map-pane.mode-3d:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:5;border:1px solid rgba(142,255,206,.25);box-shadow:inset 0 0 54px rgba(116,255,207,.035)}
.weather-hero{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 10px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(85,171,209,.08),transparent)}
.weather-symbol{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(121,234,255,.25);background:#06141b;color:var(--cyan);font:800 25px/1 var(--mono);box-shadow:inset 0 0 22px rgba(116,230,255,.055)}
.weather-hero span,.weather-hero small{display:block;font:9px var(--mono);color:var(--dim)}
.weather-hero b{display:block;margin:4px 0 3px;color:#e4fbff;font:800 12px/1.2 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-config{min-width:38px;height:28px;padding:0 7px;border:1px solid var(--line2);background:#06131b;color:var(--cyan);font:800 9px var(--mono);letter-spacing:.08em;cursor:pointer}
.mini-config:hover{border-color:rgba(121,234,255,.55);background:#0a1d26}
.config-modal[hidden]{display:none!important}.config-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(0,4,8,.76);backdrop-filter:blur(8px)}
.config-card{width:min(520px,96vw);border:1px solid rgba(116,232,255,.34);background:#041018;box-shadow:0 24px 80px rgba(0,0,0,.5),inset 0 0 40px rgba(94,220,255,.025);font-family:var(--mono)}
.config-card>header{height:42px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--cyan);font-size:11px;font-weight:800;letter-spacing:.08em}
.config-card>header button{width:30px;height:30px;border:1px solid var(--line2);background:#07151d;color:var(--muted);font-size:18px;cursor:pointer}.config-card>header button:hover{color:#fff;border-color:var(--cyan)}
.config-body{padding:16px}.config-body p{margin:0 0 14px;color:#88a8b3;font:11px/1.6 var(--mono)}.config-body code{color:var(--green)}
.config-body label span{display:block;margin-bottom:6px;color:var(--dim);font:9px var(--mono)}.config-body input{width:100%;height:40px;border:1px solid var(--line2);background:#020a10;color:#d9fbff;padding:0 10px;outline:0;font:12px var(--mono)}.config-body input:focus{border-color:rgba(121,234,255,.58);box-shadow:0 0 0 2px rgba(121,234,255,.06)}
.config-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.config-actions button{height:34px;padding:0 11px;border:1px solid var(--line2);background:#07151d;color:var(--muted);font:800 9px var(--mono);cursor:pointer}.config-actions button:last-child{color:var(--green);border-color:rgba(142,255,206,.32)}
.config-body>small{display:block;margin-top:12px;color:#577985;font:9px/1.55 var(--mono)}
.maplibregl-canvas{outline:none}.maplibregl-ctrl-attrib{background:rgba(245,248,245,.82)!important;color:#516168!important}.maplibregl-ctrl-attrib a{color:#3f626d!important}
