:root{--bg: #0b1017;--panel: #121a24;--panel-raised: #172230;--ink: #e6edf5;--ink-soft: #9aa8b8;--line: #24303f;--accent: #5aa9ff;--accent-soft: #10263d;--good: #4fd18b;--good-soft: #0f2b1e;--warn: #f2b84b;--warn-soft: #33260c;--danger: #ff7a70;--danger-soft: #3a1512;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:0 18px;min-height:56px;border-bottom:1px solid var(--line);background:var(--panel)}.brand .name{font-weight:700;letter-spacing:.02em}.brand .sub{margin-left:8px;font-size:12px;color:var(--ink-soft)}.controls{margin-left:auto;display:flex;gap:8px}.agent-status{font-size:12.5px;padding:4px 10px 4px 22px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);position:relative;white-space:nowrap}.agent-status:before{content:"";position:absolute;left:9px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--line)}.agent-status.connected{color:var(--good);border-color:var(--good)}.agent-status.connected:before{background:var(--good)}.presence{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-soft);padding:4px 10px;border:1px solid var(--line);border-radius:999px;min-width:0;width:fit-content;max-width:100%}.presence .dot{width:8px;height:8px;border-radius:50%;background:var(--line);flex:none}.presence .dot.live{background:var(--accent)}.presence .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage{flex:1;display:grid;place-items:center;padding:8px 12px 0;min-height:0;overflow-x:auto}.scene{width:100%;max-width:1400px;max-height:60vh;display:block;font-family:inherit}.scene .star{fill:#fff;opacity:.55}.scene .label{fill:var(--ink);font-size:20px;font-weight:700;letter-spacing:.08em}.scene .status{fill:var(--ink-soft);font-size:15px;letter-spacing:.04em}.scene .mission{font-size:18px;fill:var(--ink);font-weight:600}.scene .mission .id{fill:var(--ink-soft)}.scene .hull{fill:#1c2735;stroke:#3a4a5e;stroke-width:2}.scene .window{fill:#0b1017;stroke:#3a4a5e}.scene .engine{fill:#141c27;stroke:#3a4a5e}.scene .beacon[data-beacon=stopped]{animation:none;fill:var(--good)}.scene .beacon{fill:var(--danger);animation:beacon 1.6s ease-in-out infinite}@keyframes beacon{0%,to{opacity:.35}50%{opacity:1}}.scene .route{stroke:var(--accent);stroke-width:2.5;stroke-dasharray:10 8;opacity:.9}.scene .drone{transition:transform 2.6s ease-in-out}.scene .drone .body{fill:#6b7684;stroke:#8a95a3;stroke-width:2;transition:fill .6s ease,stroke .6s ease}.scene .drone .arm{fill:#4a5563}.scene .drone .bay{fill:#0b1017;stroke:#4a5563}.scene .drone .halo{fill:url(#glow);opacity:0;transition:opacity .8s ease}.scene .drone[data-assigned=true] .body{fill:var(--accent);stroke:#9bccff}.scene .drone[data-assigned=true] .arm{fill:#2f6fb5}.scene .drone[data-assigned=true] .halo{opacity:1}.scene .oxygen .shelf{fill:var(--panel);stroke:var(--line)}.scene .canister{fill:#2a3644;stroke:#3a4a5e;stroke-width:1.5;transition:fill .5s ease,opacity .8s ease,transform .8s ease}.scene .canister.lit{fill:var(--good);stroke:#8ff0bb}.scene .oxygen[data-loaded=true] .canister.loaded{opacity:0;transform:translateY(-40px)}.scene .dock .structure{fill:#2a1512;stroke:var(--danger);stroke-width:2;transition:fill .8s ease,stroke .8s ease}.scene .dock .pad{fill:#1c2735;stroke:#3a4a5e}.scene .dock[data-powered=true] .structure{fill:#10263d;stroke:var(--accent)}.scene .ring-track{fill:none;stroke:#24303f;stroke-width:9}.scene .ring-fill{fill:none;stroke:var(--danger);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset 1.4s ease,stroke .8s ease}.scene .dock[data-powered=true] .ring-fill{stroke:var(--accent)}.scene .power{fill:var(--ink);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.scene .agent-reveal{animation:scene-flash 2.4s ease}@keyframes scene-flash{0%{filter:drop-shadow(0 0 2px rgba(90,169,255,1))}50%{filter:drop-shadow(0 0 14px rgba(90,169,255,.9))}to{filter:none}}.agent-reveal{animation:reveal-flash 2.4s ease}@keyframes reveal-flash{0%{box-shadow:0 0 #5aa9ffe6}60%{box-shadow:0 0 0 6px #5aa9ff26}to{box-shadow:0 0 #5aa9ff00}}[data-reveal]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.band{border-top:1px solid var(--line);background:var(--panel);padding:12px 18px 14px;display:grid;gap:10px}.plan-status{margin:0;font-size:14px}.objective-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;font-size:13px}.objective-band .eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);white-space:nowrap}.objective-band blockquote{margin:0;color:var(--ink-soft);border-left:2px solid var(--line);padding-left:10px;overflow-wrap:anywhere}.objective-band .actions{display:flex;align-items:center;gap:8px}.detail{font-size:12.5px;color:var(--ink-soft);margin:6px 0 0}.risk{font-family:var(--mono);font-size:11px;font-weight:700;border-radius:5px;padding:2px 6px}.risk.READ{background:var(--good-soft);color:var(--good)}.risk.WRITE{background:var(--accent-soft);color:var(--accent)}.risk.CONSEQUENTIAL{background:var(--danger-soft);color:var(--danger)}button{font:inherit;border-radius:8px;border:1px solid var(--line);background:var(--panel-raised);color:var(--ink);padding:7px 14px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.55;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#06111d;font-weight:600}button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.overlay-backdrop{position:fixed;inset:0;z-index:20;background:#04080ebd;display:grid;place-items:center;padding:16px}.overlay{width:min(640px,100%);max-height:92vh;overflow:auto;background:var(--panel);border:1px solid var(--danger);border-radius:14px;padding:20px 22px;box-shadow:0 20px 60px #00000080}.overlay h2{margin:0 0 6px;font-size:15px;letter-spacing:.1em;color:var(--danger)}.overlay .objective{margin:0 0 12px;font-size:15px}.overlay h3{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.checklist{list-style:none;margin:0;padding:0}.checklist li{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:14px}.checklist .step{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);display:inline-grid;place-items:center;font-size:11px;font-family:var(--mono);color:var(--ink-soft);flex:none}.checklist .what{flex:1}.overlay ul,.evidence ul,.receipt ul,.plan-record ul{list-style:none;margin:0;padding:0}.change-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;gap:8px;align-items:baseline;padding:5px 0;border-top:1px solid var(--line);font-size:13px}.change-row .before{color:var(--ink-soft);text-decoration:line-through;font-family:var(--mono)}.change-row .after{color:var(--good);font-family:var(--mono);font-weight:600}.change-row .arrow{color:var(--ink-soft)}.change-row .verify{font-family:var(--mono);font-size:11px;color:var(--good)}.overlay .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.confirmation{border:1px solid var(--good);background:var(--good-soft);border-radius:12px;padding:12px 16px}.confirmation.recovered{border-color:var(--accent);background:var(--accent-soft)}.confirmation.recovered h2{color:var(--accent)}.confirmation h2{margin:0;font-size:15px;letter-spacing:.1em;color:var(--good)}.confirmation .line{margin:4px 0 0;font-size:15px}.confirmation .counts{margin:2px 0 0;font-size:12.5px;color:var(--ink-soft)}.evidence{margin-top:8px;font-size:13px}.evidence summary{cursor:pointer;color:var(--accent)}.evidence .operations,.plan-record .operations{list-style:none;margin:8px 0 0;padding:0;font-size:12.5px}.evidence .operations li,.plan-record .operations li{display:flex;gap:10px;padding:4px 0;border-top:1px dashed var(--line)}.evidence code,.plan-record code,.tools code,.matches code{font-family:var(--mono);font-size:12px}.outcome{color:var(--ink-soft)}.inspector{border-top:1px solid var(--line);background:var(--bg);padding:0 18px 24px}.inspector>summary{cursor:pointer;padding:12px 0;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink-soft)}.inspector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.inspector h3{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.inspector h4{margin:10px 0 4px;font-size:13px}.tools,.matches,.activity{list-style:none;margin:10px 0 0;padding:0;font-size:12.5px}.tools li,.matches li,.activity li{padding:6px 0;border-top:1px dashed var(--line);overflow-wrap:anywhere}.matches .score{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.matches .policy{color:var(--danger);font-size:11.5px}.event{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px}.event time{font-family:var(--mono);font-size:11px;color:var(--ink-soft)}.receipt{font-size:13px}.plan-record{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px}.plan-record summary{cursor:pointer}.plan-record .state{color:var(--ink-soft)}.plan-record .summary{margin:8px 0 4px;color:var(--ink-soft)}.walkthrough{position:fixed;left:16px;bottom:16px;z-index:40;max-width:360px;background:var(--warn-soft);border:1px solid var(--warn);border-radius:12px;padding:12px 14px;font-size:12.5px}.walkthrough h2{margin:0 0 6px;font-size:13px;color:var(--warn)}.walkthrough p{margin:0 0 8px}@media(max-width:700px){.topbar{flex-wrap:wrap;padding:8px 12px;gap:8px}.stage{overflow-x:visible;padding:4px 8px 0}.scene{max-height:none}.objective-band{grid-template-columns:minmax(0,1fr)}.overlay .actions{flex-direction:column-reverse}.overlay .actions button{width:100%}}@media(prefers-reduced-motion:reduce){.scene .drone,.scene .canister,.scene .ring-fill{transition:none}.scene .beacon,.agent-reveal,.scene .agent-reveal{animation:none}}
