:root{--void: #03060b;--panel: #070c12cc;--panel-solid: #0a1016;--line: #1c2a33;--cyan: #7ee0ff;--amber: #ffe08a;--ok: #9fd356;--warn: #ff7043;--text: #e6f0ea;--mut: #7d9088;--mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--void);color:var(--text);font-family:var(--sans);overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer}#globe{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.hud{position:absolute;inset:0;pointer-events:none;z-index:4}.hud *{pointer-events:auto}.word{position:absolute;top:calc(10px + env(safe-area-inset-top));left:14px;font-family:var(--mono);letter-spacing:.34em;font-size:13px;color:var(--amber);font-weight:600}.word small{display:block;letter-spacing:.22em;font-size:9px;color:var(--cyan);margin-top:3px;font-weight:400}.tl{position:absolute;top:calc(10px + env(safe-area-inset-top));right:14px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:52vw}.chip,.btn{background:var(--panel);border:1px solid var(--line);color:var(--mut);font-family:var(--mono);font-size:10px;letter-spacing:.12em;padding:7px 9px;border-radius:4px;min-height:32px}.btn.on,.chip.on{color:var(--amber);border-color:#5a4a22}.btn.cyan{color:var(--cyan)}.layers{position:absolute;top:58px;left:14px;display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow:auto}.layers button{text-align:left;width:118px}.camstrip{position:absolute;left:14px;bottom:calc(54px + env(safe-area-inset-bottom));display:flex;gap:4px;flex-wrap:wrap;max-width:46vw}.timebar{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:4px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px}.timebar .rate{font-family:var(--mono);color:var(--cyan);letter-spacing:.16em;font-size:11px;min-width:52px;text-align:center}.zoom{position:absolute;right:14px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:4px}.dossier{position:absolute;right:14px;top:58px;width:min(300px,36vw);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 12px 10px;max-height:calc(100vh - 140px);overflow:auto}.dossier h3{margin:0 0 8px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--amber);font-weight:600}.kv{display:grid;grid-template-columns:92px 1fr;gap:3px 8px;font-family:var(--mono);font-size:11px}.kv b{color:var(--mut);font-weight:400;letter-spacing:.08em}.kv span{color:var(--text)}.empty{font-family:var(--mono);color:var(--mut);letter-spacing:.16em;font-size:11px}.toast{position:absolute;left:50%;top:56px;transform:translate(-50%);background:var(--amber);color:#141406;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;padding:7px 12px;border-radius:4px;z-index:8}.palette{position:absolute;left:50%;top:18%;transform:translate(-50%);width:min(520px,92vw);background:#070c12ee;border:1px solid var(--line);border-radius:8px;padding:10px;z-index:10}.palette input{width:100%;background:#0c141a;border:1px solid var(--line);border-radius:4px;padding:10px 12px;font-family:var(--mono);font-size:13px}.palette ul{list-style:none;margin:8px 0 0;padding:0;max-height:280px;overflow:auto}.palette li{padding:8px 10px;font-family:var(--mono);font-size:12px;color:var(--mut);cursor:pointer}.palette li:hover,.palette li.on{color:var(--amber);background:#121a20}.search{position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(280px,34vw)}.search input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:7px 10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em}.utc{font-family:var(--mono);font-size:10px;color:var(--mut);letter-spacing:.1em}a.radio-link{color:var(--cyan);text-decoration:none;font-family:var(--mono);font-size:10px;letter-spacing:.12em}@media(max-width:820px){.search,.layers{display:none}.layers.open{display:flex;z-index:6;background:var(--panel-solid);padding:8px;border:1px solid var(--line)}.dossier{width:min(280px,78vw);top:auto;bottom:calc(108px + env(safe-area-inset-bottom));max-height:36vh}.camstrip{max-width:calc(100vw - 88px);bottom:calc(62px + env(safe-area-inset-bottom))}.tl{max-width:58vw}.word{font-size:11px}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.chip.err{color:#ff5c5c;border-color:#5a2222}.confignote{position:absolute;left:14px;bottom:calc(8px + env(safe-area-inset-bottom));font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:#ffb86b;max-width:46vw;pointer-events:none}#globe .cesium-viewer-bottom{font-size:9px;opacity:.65}#globe .cesium-widget canvas{outline:none}.station{position:absolute;left:140px;top:58px;width:min(288px,44vw);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 12px 10px;max-height:calc(100vh - 176px);overflow:auto;z-index:5}.station h3{margin:12px 0 6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--amber);font-weight:600}.station h3:first-child{margin-top:0}.station .btn{margin-top:6px;width:100%;text-align:left}.station .btn:disabled{color:var(--ok);cursor:default}.stmode{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--mut)}.stmode.pass_active{color:var(--ok)}.stmode.pass_armed{color:var(--amber)}.stmode.fault{color:#ff5c5c}.stoff{color:var(--warn)}.stok{color:var(--ok)}.passlist{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:10px}.passlist li{display:grid;grid-template-columns:1fr auto;gap:1px 8px;padding:5px 6px;border:1px solid transparent;border-radius:4px;cursor:pointer}.passlist li:hover{border-color:var(--line);background:#101820}.passlist li.on{border-color:#3a5a2a;background:#0e1a10}.passlist .psat{color:var(--text);letter-spacing:.08em}.passlist .pt{color:var(--cyan);text-align:right}.passlist .pel{color:var(--mut)}.passlist .paz{color:var(--mut);text-align:right}.stlog{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:10px}.stlog li{padding:3px 0;border-bottom:1px solid #101820}.stlog li b{display:block;color:var(--mut);font-weight:400;letter-spacing:.08em}.stlog li span{color:var(--text);word-break:break-word}@media(max-width:820px){.station{left:14px;width:min(288px,84vw);max-height:46vh}}
