:root{--bg: #04050a;--panel: rgba(12, 14, 22, .92);--panel-2: rgba(20, 23, 34, .9);--line: #1c2130;--line-2: #2a3144;--text: #d5dbea;--dim: #8490aa;--faint: #566079;--accent: #f5b754;--ship: #5ec8ff;--good: #7ee0a1;--bad: #ff6b6b;--home: #9fb4ff;--mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px/1.45 var(--sans)}button{font:inherit;color:inherit}#app{display:grid;height:100vh;grid-template-columns:320px 1fr 350px;grid-template-rows:48px 1fr;grid-template-areas:"top top top" "left stage right"}.topbar{grid-area:top;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line);background:#06070d}.brand{display:flex;align-items:baseline;gap:12px}.brand .mark{width:12px;height:12px;border-radius:50%;background:#000;box-shadow:0 0 0 1.5px #ffbe78b3,0 0 10px #ffa05080;align-self:center}.brand .name{letter-spacing:.28em;font-weight:600;font-size:13px}.brand .sub{color:var(--faint);font-size:11px}.tabs{display:flex;gap:4px}.tabs button{background:transparent;border:1px solid var(--line);border-radius:4px;padding:5px 10px;color:var(--dim);cursor:pointer}.tabs button.active{border-color:var(--accent);color:var(--text)}.tabs button .n{color:var(--faint);margin-right:6px;font-family:var(--mono)}.tabs button.done .n{color:var(--good)}.panel{background:var(--panel);overflow-y:auto;padding:14px 16px 24px}.panel.left{grid-area:left;border-right:1px solid var(--line)}.panel.right{grid-area:right;border-left:1px solid var(--line)}.stage{grid-area:stage;position:relative;overflow:hidden;display:grid;grid-template-rows:1fr 150px}#map{width:100%;height:100%;display:block;cursor:crosshair}.strip-wrap{border-top:1px solid var(--line)}#strip{width:100%;height:100%;display:block}h2{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:18px 0 8px}h2:first-child{margin-top:0}h1.mission-title{font-size:20px;font-weight:500;margin:2px 0;letter-spacing:.01em}.kicker{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.1em}.teaches{color:var(--dim);font-style:italic;margin:4px 0 12px}.brief p{margin:0 0 9px;color:#c5cce0}.goals{list-style:none;padding:0;margin:0}.goals li{padding:7px 0;border-bottom:1px solid var(--line)}.goals .row{display:flex;gap:8px;align-items:flex-start}.goals .tick{width:14px;height:14px;flex:none;border:1px solid var(--line-2);border-radius:3px;margin-top:2px;display:grid;place-items:center;font-size:10px}.goals li.met .tick{border-color:var(--good);background:#7ee0a126;color:var(--good)}.goals li.optional .label{color:var(--dim)}.goals .detail{font-family:var(--mono);font-size:10.5px;color:var(--faint);margin:3px 0 0 22px}.bar{height:3px;background:var(--line);border-radius:2px;margin:5px 0 0 22px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--good)}.actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.btn{background:var(--panel-2);border:1px solid var(--line-2);border-radius:4px;padding:6px 12px;cursor:pointer}.btn:hover{border-color:#3a4460}.btn.primary{border-color:var(--accent);color:#fff;background:#f5b7541f}.btn.small{padding:3px 8px;font-size:12px}.btn:disabled{opacity:.4;cursor:default}.muted{color:var(--faint);font-size:11.5px}.clocks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.clock{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:8px 10px}.clock .k{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.clock .v{font-family:var(--mono);font-size:16px;margin-top:2px}.clock .h{font-family:var(--mono);font-size:11px;color:var(--faint)}.clock.ship .v{color:var(--ship)}.clock.home .v{color:var(--home)}.clock.diff .v{color:var(--accent)}.fuel{margin-top:4px}.fuel .track{position:relative;height:10px;border-radius:3px;background:var(--line);overflow:hidden}.fuel .fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#3d8fc0,var(--ship))}.fuel .plan{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,#f5b754d9 0 4px,#f5b75459 4px 8px)}.fuel .nums{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--dim);margin-top:4px}.readout{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-family:var(--mono);font-size:11.5px}.readout dt{color:var(--faint)}.readout dd{margin:0;text-align:right}.fate-plunge{color:var(--bad)}.fate-escape,.fate-balanced,.fate-unstable{color:var(--accent)}.seg{display:flex;border:1px solid var(--line-2);border-radius:4px;overflow:hidden;margin-bottom:8px}.seg button{flex:1;background:transparent;border:0;border-right:1px solid var(--line-2);padding:5px 4px;cursor:pointer;color:var(--dim);font-size:12px}.seg button:last-child{border-right:0}.seg button.on{background:#f5b75424;color:#fff}.stepper{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:6px;margin:4px 0}.stepper .lab{color:var(--dim);font-size:12px}.stepper input{width:100%;background:#0a0c14;border:1px solid var(--line-2);color:var(--text);font-family:var(--mono);padding:4px 6px;border-radius:3px}.stepper .btns{display:flex;gap:2px}.stepper .btns button{width:24px;height:24px;border:1px solid var(--line-2);background:var(--panel-2);border-radius:3px;cursor:pointer;font-family:var(--mono);font-size:12px;padding:0}.inline{display:flex;gap:6px;align-items:center;margin:4px 0}.inline input[type=number]{width:80px;background:#0a0c14;border:1px solid var(--line-2);color:var(--text);font-family:var(--mono);padding:4px 6px;border-radius:3px}.inline select{background:#0a0c14;border:1px solid var(--line-2);color:var(--text);padding:3px;border-radius:3px}.plan-summary{background:#f5b7540f;border:1px solid rgba(245,183,84,.25);border-radius:5px;padding:8px 10px;margin:8px 0;font-family:var(--mono);font-size:11.5px}.plan-summary.error{background:#ff6b6b0f;border-color:#ff6b6b4d;color:#ffb3b3}.warp{display:grid;grid-template-columns:repeat(9,1fr);gap:3px}.warp button{min-width:0;background:var(--panel-2);border:1px solid var(--line-2);border-radius:3px;padding:4px 2px;cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--dim)}.warp button.on{border-color:var(--ship);color:#fff}.keys{color:var(--faint);font-size:11px;line-height:1.7;margin-top:12px}kbd{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:3px;padding:0 4px;color:var(--dim)}.hud{position:absolute;top:12px;left:14px;right:14px;display:flex;justify-content:space-between;pointer-events:none;font-family:var(--mono);font-size:11.5px}.hud .left,.hud .right{background:#04050a99;padding:6px 9px;border-radius:4px;border:1px solid var(--line)}.hud .warn{color:var(--bad);font-weight:600}.hud .legend span{margin-right:10px;white-space:nowrap}.hud .legend i{display:inline-block;width:16px;height:0;border-top:2px solid;vertical-align:middle;margin-right:5px}.zoom{position:absolute;right:14px;top:64px;display:flex;flex-direction:column;gap:4px}.zoom button{width:30px;height:26px;background:#0c0e16d9;border:1px solid var(--line-2);border-radius:4px;cursor:pointer;color:var(--dim);font-family:var(--mono);font-size:12px}.debrief{position:absolute;left:50%;top:50%;transform:translate(-50%,-56%);width:min(560px,92%);max-height:78%;overflow-y:auto;background:#080a10f5;border:1px solid var(--line-2);border-radius:8px;padding:20px 22px;box-shadow:0 20px 60px #0009}.debrief .verdict{font-size:11px;letter-spacing:.22em;text-transform:uppercase}.debrief .verdict.success{color:var(--good)}.debrief .verdict.failure{color:var(--bad)}.debrief h3{font-size:20px;font-weight:500;margin:4px 0 12px}.debrief p{color:#c5cce0;margin:0 0 10px}.debrief .figures{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.debrief .figures div{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:6px 8px}.debrief .figures b{display:block;font-family:var(--mono);font-weight:500;font-size:14px}.debrief .figures span{font-size:10px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}.mail{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.mail .entry{padding:6px 0;border-bottom:1px dashed var(--line)}.mail .who{font-weight:600}.mail .status{font-family:var(--mono);font-size:10.5px;color:var(--accent);margin-left:6px}.mail details{margin-top:3px}.mail summary{cursor:pointer;color:var(--dim);font-size:11.5px}.mail .letter p{font-family:Georgia,Iowan Old Style,serif;font-size:13.5px;color:#d8dbe4}.tools{display:flex;gap:6px;align-items:center}.tool{background:transparent;border:1px solid var(--line);border-radius:4px;padding:5px 10px;color:var(--dim);cursor:pointer;font-size:12px}.tool:hover{color:var(--text);border-color:var(--line-2)}.menu{position:relative}.menu-list{position:absolute;right:0;top:32px;z-index:30;background:#0b0d16;border:1px solid var(--line-2);border-radius:6px;padding:4px;min-width:230px;box-shadow:0 12px 30px #00000080}.menu-list button{display:block;width:100%;text-align:left;background:transparent;border:0;padding:7px 10px;cursor:pointer;border-radius:4px;color:var(--text)}.menu-list button:hover{background:var(--panel-2)}.ltabs{display:flex;gap:2px;margin:-4px 0 14px;border-bottom:1px solid var(--line)}.ltabs button{flex:1;background:transparent;border:0;border-bottom:2px solid transparent;padding:7px 4px;cursor:pointer;color:var(--dim);font-size:12px;letter-spacing:.06em}.ltabs button.on{color:var(--text);border-bottom-color:var(--accent)}.badge{display:inline-block;min-width:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:#111;font-size:10px;font-weight:700}.badge[hidden]{display:none}.stage{grid-template-rows:1fr 150px}.views{position:relative;display:grid;min-height:0}.views.mode-map{grid-template-columns:1fr}.views.mode-map .optical-wrap,.views.mode-optical .map-wrap{display:none}.views.mode-split{grid-template-columns:1fr 1fr}.map-wrap,.optical-wrap{position:relative;min-width:0;min-height:0;overflow:hidden}.optical-wrap{background:#000;border-left:1px solid var(--line)}#optical{width:100%;height:100%;display:block;image-rendering:auto;cursor:grab}.optical-ui{position:absolute;left:10px;right:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px}.seg.small{margin:0}.seg.small button{padding:3px 8px;font-size:11px;background:#080a10cc}.seeing{background:#080a10e0;border:1px solid var(--line-2);border-radius:4px;padding:4px 8px;max-width:420px}.seeing summary{cursor:pointer;color:var(--text)}.seeing ul{margin:2px 0 6px 16px;padding:0;color:#c5cce0}.seeing p{margin:6px 0 0}.viewswitch{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:5;display:flex}.coach{position:absolute;left:14px;bottom:164px;width:min(430px,60%);z-index:6;background:#0c0e18f2;border:1px solid rgba(245,183,84,.5);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#dfe4ef;box-shadow:0 10px 30px #00000073}.coach-head{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.coach-step{font-family:var(--mono);font-size:10.5px;color:var(--accent);border:1px solid rgba(245,183,84,.4);border-radius:3px;padding:0 5px}.coach-x{margin-left:auto;background:transparent;border:0;color:var(--dim);cursor:pointer;font-size:15px}.coach-target{outline:2px solid var(--accent)!important;outline-offset:2px;box-shadow:0 0 0 4px #f5b7542e;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 7px #f5b7540f}}.toasts{position:absolute;top:52px;right:56px;z-index:7;display:flex;flex-direction:column;gap:6px;align-items:flex-end;pointer-events:none}.toast{background:#0a0c14f2;border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:5px;padding:7px 10px;max-width:420px;font-size:12px}.clock.wide{grid-column:span 2}.clock.probe .v{color:#c79bff}.planner-help{font-size:10.5px;margin:-2px 0 8px;letter-spacing:.02em}.plan-summary.idle{background:transparent;border-style:dashed;color:var(--dim);font-family:var(--sans)}.letter-card{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:10px 0;background:#14172280}.letter-card.old{opacity:.85}.letter-card h4{margin:2px 0 6px;font-size:15px;font-weight:500}.letter-card .who{font-weight:600}.letter-card .letter p{font-family:Georgia,Iowan Old Style,serif;font-size:13.5px;color:#dcdfe8;margin:0 0 8px}.letter-card .sig{text-align:right;color:var(--dim)}.clocks-mini{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:6px 0;margin:4px 0 10px}.clk{display:grid;grid-template-columns:74px auto;gap:0 8px;font-size:11.5px}.clk span:first-child{color:var(--faint)}.clk b{font-family:var(--mono);font-weight:500}.clk .muted{grid-column:2;font-size:10.5px}.reply-options{display:flex;flex-direction:column;gap:4px;margin-top:6px}.reply-options .btn{text-align:left;white-space:normal;font-family:Georgia,serif}.reply-sent{border-left:2px solid var(--accent);padding-left:8px;margin-top:6px}.reply-sent p{font-family:Georgia,serif;margin:2px 0 6px}.diag{color:#ffc2a6;background:#ff785014;border:1px solid rgba(255,120,80,.25);border-radius:4px;padding:5px 8px;font-size:11.5px;margin:6px 0}.diag-inline{color:#ffc2a6}.sigsum{font-size:11.5px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;margin:6px 0;color:#c5cce0}.archive summary{cursor:pointer;color:var(--dim);margin-top:10px}table.ledger{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:10.5px}table.ledger th{text-align:left;color:var(--faint);font-weight:500;border-bottom:1px solid var(--line);padding:3px 2px}table.ledger td{border-bottom:1px solid rgba(28,33,48,.6);padding:3px 2px}table.ledger tr.st-pending td{color:var(--dim)}table.ledger tr.st-unresolved td:last-child{color:#ffc2a6}table.ledger tr.st-lost td{color:var(--bad)}.help{width:min(640px,94%)}.hud{position:absolute;top:12px;left:14px;right:60px;display:block;pointer-events:none}.hud .left{display:inline-block}.map-legend{position:absolute;right:14px;bottom:10px;font-family:var(--mono);font-size:11px;background:#04050a99;padding:4px 8px;border-radius:4px;border:1px solid var(--line);pointer-events:none}.viewswitch{left:auto;right:14px;transform:none;top:12px}.zoom{top:48px}.toasts{top:48px;right:60px}.toast{max-width:360px;font-size:11.5px}.optical-ui{top:48px;bottom:auto}.views.mode-split .coach,.views.mode-optical~.coach{width:min(400px,44%)}.map-legend span{margin-right:10px;white-space:nowrap}.map-legend i{display:inline-block;width:16px;height:0;border-top:2px solid;vertical-align:middle;margin-right:5px}.optical-ui [data-optical-status]{background:#04050ab8;padding:2px 6px;border-radius:3px;color:#c5cce0}.map-legend{inset:auto 14px 10px auto}.coach{width:min(430px,calc(100% - 300px));min-width:300px}.toasts{top:auto;bottom:164px;right:14px}.panel.right h2{margin:12px 0 6px}.readout{grid-template-columns:auto 1fr auto 1fr}.clock{padding:6px 9px}.clock .v{font-size:15px}.clocks.three{grid-template-columns:1fr 1fr 1fr}.clocks.three .clock .h{font-size:10px}.readout dd.wide{grid-column:span 3}.clocks.three .clock .k{letter-spacing:.05em;font-size:9.5px;white-space:nowrap}.clocks.three .clock{padding:6px 7px}.tabs button{padding:4px 8px;font-size:12px}@media(max-width:1600px){.tabs button .t{display:none}.tabs button.active .t{display:inline}}.brand .sub{display:none}@media(min-width:1700px){.brand .sub{display:inline}}.tool-box{border:1px solid var(--line);border-radius:5px;padding:8px 10px;background:#c79bff0a}.tool-box .actions{margin-top:6px}[data-warp-note].limited{color:var(--accent)}.btn.on,button.on[data-act=assist]{border-color:var(--good);color:#fff;background:#7ee0a11f}.debrief .figures div em{display:block;font-style:normal;font-size:10.5px;color:var(--faint);font-family:var(--mono)}.debrief .figures{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.debrief.homecoming{width:min(640px,94%)}.debrief p.scene{font-family:Georgia,Iowan Old Style,serif;font-size:14.5px;line-height:1.6;color:#e4e6ec}.debrief .ending{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.debrief .ending p{font-family:Georgia,serif;font-style:italic;color:#f0e2c4}.signals-explainer{color:#c5cce0;font-size:12px;line-height:1.55;background:#14172299;border:1px solid var(--line);border-radius:5px;padding:8px 10px}.sig-group{margin:8px 0}.sig-group summary{cursor:pointer;font-size:12px;padding:4px 0}.wren-log{margin:10px 0;border:1px solid rgba(199,155,255,.3);border-radius:5px;padding:6px 8px}.wren-log summary{cursor:pointer;color:#d9c5ff}.wren-row{font-family:var(--mono);font-size:10.5px;padding:2px 0;border-bottom:1px dashed rgba(40,45,60,.6)}.wren-tag{display:inline-block;min-width:110px;color:#c79bff}.wren-row.pending .wren-tag{color:var(--faint)}.debrief{z-index:20}.toasts{z-index:8}.busy-veil{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:#06080ed1;color:var(--ink, #e8e6df);font-size:15px;letter-spacing:.02em;cursor:progress}.campaign-clock{font-size:11.5px;color:var(--dim);white-space:nowrap;margin-left:12px}.campaign-clock .k{letter-spacing:.12em;text-transform:uppercase;font-size:10px;color:var(--faint);margin-right:6px}.campaign-clock b{color:var(--text);font-weight:500;font-family:var(--mono)}.campaign-clock b.gap{color:var(--accent)}@media(max-width:1500px){.campaign-clock .k{display:none}}.toasts{top:88px;bottom:auto;right:56px;width:320px}.toast{max-width:320px;pointer-events:auto}.toast.more{opacity:.7;font-size:11px;padding:3px 8px}.toast-link{background:none;border:0;color:inherit;text-align:left;cursor:pointer;padding:0;font:inherit}.toast-link u{color:var(--accent)}.coach{width:min(360px,40%);min-width:280px;bottom:164px}.reply-box>summary{list-style:none;display:inline-block;margin-top:6px}.reply-box>summary::-webkit-details-marker{display:none}.reply-toggle{border-color:var(--accent)!important;color:#fff}.unanswered,.answered{margin-left:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:8px}.unanswered{color:#111;background:var(--accent)}.answered{color:var(--good);border:1px solid rgba(126,224,161,.4)}.cta{position:absolute;left:50%;top:58px;transform:translate(-50%);z-index:9;display:flex;gap:10px;align-items:center;background:#080a10f2;border:1px solid var(--good);border-radius:8px;padding:10px 14px;box-shadow:0 10px 30px #00000080}.cta .btn{font-size:15px;padding:8px 18px}.viewswitch button[data-view=optical]{color:#ffd9a8;font-weight:600}.pip{position:absolute;left:14px;top:64px;width:240px;height:150px;z-index:4;border:1px solid rgba(255,200,140,.4);border-radius:6px;overflow:hidden;background:#000;cursor:pointer;box-shadow:0 6px 20px #00000080}.pip canvas{width:100%;height:100%;display:block}.pip .pip-label{position:absolute;left:6px;bottom:4px;font-size:10.5px;color:#ffd9a8;background:#0000008c;padding:1px 5px;border-radius:3px;pointer-events:none}.pip .pip-x{position:absolute;right:3px;top:2px;background:#0009;border:0;color:#ccc;cursor:pointer;font-size:13px}.busy-veil.soft{background:#04050ad1}.cta[hidden],.pip[hidden]{display:none}.viewswitch button{white-space:nowrap}.mailpill{position:absolute;right:14px;bottom:164px;z-index:7;background:#0a0c14f2;border:1px solid var(--accent);border-radius:10px;padding:5px 12px;font-size:12px}.mailpill[hidden]{display:none}.debrief.confirm{width:min(460px,92%);z-index:30}.debrief{top:12px;bottom:auto;max-height:calc(100% - 24px);transform:translate(-50%);overflow-y:auto;overscroll-behavior:contain}.scan-box{margin:6px 0}.scan-box canvas{display:block;width:100%;height:110px;margin-top:6px;border:1px solid var(--line);border-radius:4px;cursor:crosshair}.scan-box canvas[hidden]{display:none}.dir-note{font-size:11px;margin:2px 0 4px}.coach-more{margin-top:6px;color:#e8e3d4}.coach-exact{margin-top:6px;padding:5px 7px;border-left:2px solid var(--accent);font-family:var(--mono);font-size:11.5px;color:#f5d8a0}.coach-actions{margin-top:6px}.panel.right{overscroll-behavior:contain}.panel.right .clockbar{position:sticky;top:-14px;z-index:3;background:#0c0e16;margin:-14px -16px 0;padding:8px 16px;border-bottom:1px solid var(--line)}.panel.right .clockbar h2{margin-top:4px}.panel.right .timebar{position:sticky;bottom:-24px;z-index:3;background:#0c0e16;margin:14px -16px -24px;padding:4px 16px 12px;border-top:1px solid var(--line);box-shadow:0 -8px 16px #00000059}.panel.right .timebar h2,.panel.right .timebar .actions{margin-top:6px}@media(max-height:1100px){.panel.right .clock{padding:5px 8px}.panel.right .clock .v{font-size:14px}}.return-status{margin-top:8px;padding:7px 9px;border:1px solid var(--line-2);border-left:3px solid var(--accent);border-radius:4px;font-size:12px;line-height:1.45;background:var(--panel-2)}.return-status[hidden]{display:none}.return-status.flash{animation:flash 1.2s ease-out}@keyframes flash{0%{background:#f5b75459}to{background:var(--panel-2)}}.mailpill.pulse{animation:pillpulse 1.6s ease-out}@keyframes pillpulse{0%{box-shadow:0 0 #f5b754cc}to{box-shadow:0 0 0 14px #f5b75400}}.mailpill{max-width:min(360px,45%);line-height:1.45}.locked{display:none!important}.stage.no-strip{grid-template-rows:1fr 0}.stage.no-strip .strip-wrap{display:none}.stage.no-strip .coach,.stage.no-strip .mailpill{bottom:14px}#map{cursor:grab;touch-action:none}#map.grabbing{cursor:grabbing}.zoom{align-items:flex-end}.zoom button.wide{width:auto;min-width:54px;padding:0 8px;font-family:var(--sans);font-size:11.5px}.zoom button.on{border-color:var(--ship);color:#fff;background:#5ec8ff24}.hud .readout{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:4px;padding-top:4px;border-top:1px solid var(--line);font-size:11px;max-width:560px}.hud .readout i{font-style:normal;color:var(--faint);margin-right:3px}.pip{top:92px}.fuelrow h2 .info{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid var(--line-2);border-radius:50%;color:var(--dim);font-size:9.5px;letter-spacing:0;cursor:help;vertical-align:1px;margin-left:4px}.burnplan{border:1px solid var(--line-2);border-radius:6px;padding:6px 8px 8px;margin-top:12px;background:#f5b75408}.burnplan .bp-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.burnplan .bp-head h2{margin:4px 0}.burnplan .bp-head .btn{font-size:11px;padding:2px 7px}.burnlist{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.burnlist li.empty{color:var(--faint);font-size:11.5px;padding:4px 2px}.burnlist li.burn{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:start;padding:5px 6px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:4px;cursor:pointer;background:var(--panel-2)}.burnlist li.burn:hover{border-color:#3a4460;border-left-color:var(--accent)}.burnlist li.burn.selected{border-color:#fff;border-left-color:#fff;box-shadow:0 0 0 1px #ffffff40}.burnlist li.src-draft{border-style:dashed;border-left-style:solid;border-left-color:#f5b75480;background:transparent}.burnlist li.src-assist{border-left-color:var(--good)}.burnlist li.src-return,.burnlist li.src-reference{border-left-color:var(--home)}.burnlist .b-when{font-size:12px;font-weight:600;color:#fff;line-height:1.3}.burnlist .b-top{display:flex;gap:8px;align-items:baseline}.burnlist .b-tag{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px dashed rgba(245,183,84,.5);border-radius:3px;padding:0 4px}.burnlist .b-title{font-size:11.5px;color:var(--text)}.burnlist .b-effect{font-family:var(--mono);font-size:11px;color:var(--accent)}.burnlist .b-detail{font-family:var(--mono);font-size:10.5px;color:var(--faint)}.burnlist .b-acts{display:flex;gap:2px}.burnlist .icon{width:22px;height:22px;padding:0;border:1px solid var(--line-2);background:transparent;border-radius:3px;color:var(--dim);cursor:pointer;font-size:11px}.burnlist .icon:hover{color:#fff;border-color:var(--accent)}.assist-line{margin-top:6px;font-size:11.5px;color:#cfe9d8;border-left:2px solid var(--good);padding:3px 7px;background:#7ee0a10f}.assist-line[hidden]{display:none}.qlabel{font-size:11.5px;color:var(--dim);margin:8px 0 4px}.aims{display:flex;flex-direction:column;gap:3px;margin-bottom:6px}.aims button{display:block;text-align:left;background:transparent;border:1px solid var(--line-2);border-radius:4px;padding:5px 8px;cursor:pointer;color:var(--dim)}.aims button b{display:block;font-weight:600;font-size:12.5px;color:var(--text)}.aims button span{display:block;font-size:11px;line-height:1.35}.aims button.on{border-color:var(--accent);background:#f5b7541f;color:#e9dcc2}.aims button.on b{color:#fff}.whens{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:3px;border:0;overflow:visible}.whens button{border:1px solid var(--line-2)!important;border-radius:4px;white-space:nowrap;padding:5px 6px}.whens button:disabled{opacity:.4;cursor:default}.when-note{margin:4px 0 6px;font-size:11px}.whens button{background:transparent;color:var(--dim)}.whens button.on{background:#f5b75424;color:#fff;border-color:var(--accent)!important}.fine-hint{font-size:10.5px;margin:2px 0 6px}.fine-hint kbd{font-size:9.5px}.nudge-note{margin:6px 0 0;padding:5px 8px;font-size:11.5px;border-left:2px solid var(--accent);background:#f5b7540f;color:#eadfc8}.nudge-note.bad{border-left-color:var(--bad);background:#ff6b6b0f;color:#ffcece}.nudge-note[hidden]{display:none}.quick{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.quick .muted{font-size:10.5px}.badge{background:transparent;color:var(--dim);border:1px solid var(--line-2);font-weight:500}.callout{position:fixed;z-index:40;width:280px;background:#10131e;border:1px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:12.5px;color:#e6e9f2;box-shadow:0 12px 30px #0000008c}.callout[hidden]{display:none}.callout .c-title{font-weight:600;color:var(--accent);margin-bottom:4px}.callout .c-acts{margin-top:8px;display:flex;justify-content:flex-end}.callout:after{content:"";position:absolute;width:12px;height:12px;background:#10131e;border:1px solid var(--accent);transform:rotate(45deg)}.callout[data-side=right]:after{right:-7px;top:calc(var(--arrow, 20px) - 6px);border-left:0;border-bottom:0}.callout[data-side=left]:after{left:-7px;top:calc(var(--arrow, 20px) - 6px);border-right:0;border-top:0}.callout[data-side=below]:after{bottom:-7px;left:calc(var(--arrow, 20px) - 6px);border-left:0;border-top:0}.callout-target{outline:2px solid var(--accent)!important;outline-offset:2px}.guide{position:fixed;inset:0;z-index:45;background:#0203088c;cursor:pointer}.guide[hidden]{display:none}.guide .g-box{position:fixed;border:1.5px dashed rgba(245,183,84,.8);border-radius:5px;pointer-events:none}.guide .g-card{position:fixed;background:#0c0e18f7;border:1px solid var(--accent);border-radius:6px;padding:5px 8px;font-size:11.5px;line-height:1.35;color:#dfe4ef;pointer-events:none;box-shadow:0 6px 18px #00000080}.guide .g-card b{display:block;color:var(--accent);font-size:12px}.guide .g-bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;gap:12px;align-items:center;background:#0c0e16;border:1px solid var(--line-2);border-radius:8px;padding:8px 12px;font-size:12.5px;cursor:default;box-shadow:0 10px 30px #00000080}.guide .g-bar label{color:var(--dim);display:flex;gap:6px;align-items:center;cursor:pointer}.tool.guide-btn{border-color:#f5b75480;color:#f0dcb4}.toasts{right:86px}.burnlist li.more{font-size:11px;color:var(--dim);padding:2px 6px 2px 10px;border-left:3px solid var(--line-2)}.tool,.brand .name,.tabs button{white-space:nowrap}@media(max-width:2100px){.brand .sub,.tabs button .t{display:none}.tabs button.active .t{display:inline}}.homeclock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:6px;margin-top:8px;padding:7px 8px 6px;border:1px solid var(--line);border-left:3px solid var(--home);border-radius:5px;background:#78c8ff0a}.homeclock .hc-cell .k{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);line-height:1.25;min-height:2.5em}.homeclock .hc-cell .v{font-family:var(--mono);font-size:13.5px;margin-top:1px}.homeclock .hc-cell .v small{display:block;font-size:10.5px;color:var(--faint)}.homeclock .hc-cell.deadline .v{color:#f0e2c4}.homeclock .hc-cell.fc .k{color:var(--accent)}.homeclock .hc-cell.fc .v{color:var(--text);font-style:italic}.homeclock.arrived .hc-cell.fc .k{color:var(--good)}.homeclock.arrived .hc-cell.fc .v{font-style:normal}.homeclock .hc-margin{grid-column:1 / -1;font-size:11px;line-height:1.35}.homeclock.ontime .hc-margin b{color:var(--good)}.homeclock.late .hc-margin b{color:#f5b754}.photo-box .photo-status{font-size:12px;line-height:1.4}.photo-box .photo-compare{margin-top:6px;font-size:11.5px;line-height:1.45;border-top:1px dashed var(--line);padding-top:5px}.photo-box .photo-compare .opt.ontime b:last-of-type{color:var(--good)}.photo-box .photo-compare .opt.late b:last-of-type{color:#f5b754}.photo-box .transmit-note{font-size:11.5px;margin-top:5px;line-height:1.4}.photo-box .transmit-note .on-time{color:var(--good)}.photo-box .transmit-note .late{color:#f5b754}.photo-box details.rule{margin-top:4px;font-size:11px}.imager{position:absolute;bottom:12px;right:12px;width:230px;background:#04050ab8;border:1px solid rgba(255,255,255,.14);border-radius:5px;padding:7px 9px;font-size:11px;color:#c5cce0;pointer-events:none}.imager .im-top{letter-spacing:.06em;text-transform:uppercase;font-size:10px}.imager .rec{color:#ff6b6b;font-weight:600}.imager .rec.done{color:var(--good)}.imager .im-score{display:flex;align-items:center;gap:8px;margin:3px 0}.imager .im-score b{font-family:var(--mono);font-size:26px;font-weight:500;color:#f0e2c4}.imager .im-score span{font-size:10px;line-height:1.15;color:var(--dim);text-transform:uppercase;letter-spacing:.08em}.imager .im-bar{height:3px;background:#ffffff1f;border-radius:2px;overflow:hidden}.imager .im-bar i{display:block;height:100%;background:#f0e2c4}.imager .im-sub{margin-top:4px;font-size:10px;color:var(--faint)}.debrief .consequence{border:1px solid var(--line-2);border-left:3px solid var(--good);border-radius:6px;padding:10px 12px;margin:10px 0 12px;background:#ffffff05}.debrief .consequence.late{border-left-color:#f5b754}.debrief .consequence .branch{font-size:14px}.debrief .consequence .badge{display:inline-block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;padding:2px 7px;border-radius:3px;background:#78dca029;color:var(--good);margin-right:4px}.debrief .consequence.late .badge{background:#f5b75429;color:#f5b754}.debrief .consequence .why{font-size:12.5px;margin:6px 0}.debrief .consequence code{font-family:var(--mono);font-size:11.5px;color:var(--dim)}.debrief .consequence table.stamps{width:100%;border-collapse:collapse;font-size:12px}.debrief .consequence table.stamps th{text-align:left;font-weight:500;color:var(--dim);padding:2px 8px 2px 0;white-space:nowrap;vertical-align:top}.debrief .consequence table.stamps td{font-family:var(--mono);font-size:11.5px;padding:2px 0}.debrief .consequence .rule{font-size:11px;margin-top:6px}.debrief .consequence .at-home{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.debrief .consequence .kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--home);margin-bottom:4px}.debrief .consequence .letter p{font-family:Georgia,Iowan Old Style,serif;font-size:14px;line-height:1.55;color:#e4e6ec;margin:0 0 7px}.debrief .consequence .letter .who{font-size:12px;color:var(--dim);margin-bottom:4px}.debrief .consequence .letter .sig{font-style:italic;color:#f0e2c4}#phone-nav,.phone-note{display:none}@media(max-width:760px),(max-height:500px)and (orientation:landscape){html,body{font-size:14px;height:100%;overflow:hidden;-webkit-text-size-adjust:100%}html{touch-action:pan-x pan-y}.brand .name,.brand .sub,h2,.kicker,.goals .tick,.goals .detail,.btn.small,.muted,.clock .k,.clock .h,.fuel .nums,.readout,.seg button,.stepper .lab,.stepper .btns button,.plan-summary,.warp button,.keys,kbd,.hud,.zoom button,.debrief .verdict,.debrief .figures span,.mail .status{font-size:14px}.mail summary{font-size:14px}.mail .letter p,.tool,.ltabs button,.badge,.optical-ui,.seg.small button,.coach,.coach-step,.toast,.planner-help,.letter-card .letter p,.clk,.clk .muted,.diag,.sigsum,table.ledger,.map-legend,.clocks.three .clock .h,.clocks.three .clock .k,.tabs button,.debrief .figures div em,.signals-explainer{font-size:14px}.sig-group summary{font-size:14px}.wren-row,.campaign-clock,.campaign-clock .k,.toast.more,.unanswered,.answered,.pip .pip-label,.pip .pip-x,.mailpill,.dir-note,.coach-exact,.return-status,.zoom button.wide,.hud .readout,.fuelrow h2 .info,.burnplan .bp-head .btn,.burnlist li.empty,.burnlist .b-when,.burnlist .b-tag,.burnlist .b-title,.burnlist .b-effect,.burnlist .b-detail,.burnlist .icon,.assist-line,.qlabel,.aims button b,.aims button span,.when-note,.fine-hint,.fine-hint kbd,.nudge-note,.quick .muted,.callout,.guide .g-card,.guide .g-card b,.guide .g-bar,.burnlist li.more,.homeclock .hc-cell .k,.homeclock .hc-cell .v,.homeclock .hc-cell .v small,.homeclock .hc-margin,.photo-box .photo-status,.photo-box .photo-compare,.photo-box .transmit-note{font-size:14px}.photo-box details.rule{font-size:14px}.imager,.imager .im-top,.imager .im-score span,.imager .im-sub,.debrief .consequence .badge,.debrief .consequence .why,.debrief .consequence code,.debrief .consequence table.stamps,.debrief .consequence table.stamps td,.debrief .consequence .rule,.debrief .consequence .kicker,.debrief .consequence .letter .who{font-size:14px}.brand .name{font-size:13px}#app{height:100vh;height:100dvh;width:100vw;grid-template-columns:minmax(0,1fr);grid-template-rows:48px minmax(0,1fr) auto;grid-template-areas:"top" "main" "nav"}#app>.panel.left,#app>.stage,#app>.panel.right{grid-area:main;min-width:0;min-height:0}body[data-ph=mission] #app>.stage,body[data-ph=mission] #app>.panel.right,body[data-ph=view] #app>.panel.left,body[data-ph=view] #app>.panel.right,body[data-ph=flight] #app>.panel.left{visibility:hidden;pointer-events:none;z-index:0}body[data-ph=flight] #app{grid-template-rows:48px minmax(0,42fr) minmax(0,58fr) auto;grid-template-areas:"top" "stage" "right" "nav"}body[data-ph=flight] #app>.stage,body[data-ph=flight] #app>.panel.left{grid-area:stage}body[data-ph=flight] #app>.panel.right{grid-area:right;border-left:0;border-top:1px solid var(--line)}.debrief,.debrief.confirm,.debrief.help,.debrief.homecoming{position:fixed;visibility:visible;pointer-events:auto;inset:56px 8px auto;width:auto;max-height:calc(100dvh - 120px);transform:none;padding:14px;z-index:50}.debrief .figures{grid-template-columns:repeat(2,minmax(0,1fr))}.toasts{position:fixed;inset:56px 8px auto;width:auto;align-items:stretch;z-index:45}.callout{inset:56px 8px auto!important;width:auto!important;max-height:calc(100dvh - 120px);overflow-y:auto}.callout:after{display:none}.guide .g-bar{left:8px;right:8px;transform:none;flex-wrap:wrap}.topbar{padding:0 8px;gap:10px;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.topbar::-webkit-scrollbar{display:none}.topbar>*{flex:none}.brand .name,.brand .sub{display:none}.tabs{gap:4px}.tabs button{min-width:44px;min-height:40px;padding:4px 10px}.campaign-clock{margin-left:0}.tool{min-height:40px;padding:4px 12px}.menu-list{position:fixed;top:52px;right:8px;left:auto}.menu-list button{min-height:44px}.panel{padding:10px 12px 18px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.panel.left,.panel.right{border:0}.panel.right .clockbar{top:-10px;margin:-10px -12px 0;padding:6px 12px;position:static}.panel.right .timebar{position:static;margin:12px -12px 0;padding:4px 12px 10px;box-shadow:none}.clock{padding:5px 8px}.btn{min-height:44px;padding:8px 14px}.btn.small{min-height:40px}.ltabs button,.seg button{min-height:44px}.aims button{padding:8px 10px}.whens{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.whens button{min-height:44px;white-space:normal}.stepper{grid-template-columns:76px minmax(0,1fr) auto}.stepper input{min-height:44px;font-size:16px}.stepper .btns{gap:4px}.stepper .btns button{width:44px;height:44px}.warp{grid-template-columns:repeat(5,1fr);gap:4px}.warp button{min-height:44px}.burnlist li.burn{padding:8px}.burnlist button{min-height:40px;min-width:40px}.keys,.fine-hint,.planner-help{display:none}.clocks.three,.homeclock{grid-template-columns:1fr 1fr}input[type=checkbox]{width:20px;height:20px}.stage{grid-template-rows:minmax(0,1fr) 72px}.stage.no-strip{grid-template-rows:minmax(0,1fr) 0}#map,#optical,#pip-canvas,#strip{touch-action:none}.hud{top:8px;left:8px;right:84px}.hud .left{padding:4px 7px;max-width:100%}.hud .readout{display:none}.viewswitch{top:auto;bottom:80px;right:8px}.stage.no-strip .viewswitch{bottom:8px}.viewswitch button{min-height:40px;padding:4px 10px}.zoom{top:8px;right:8px;gap:6px}.zoom button{width:44px;height:40px}.zoom [data-cam=in],.zoom [data-cam=out]{display:none}.zoom button.wide{min-width:60px}.pip{top:auto;bottom:8px;left:8px;width:150px;height:96px}.pip .pip-label{display:none}.pip .pip-x{width:36px;height:36px;font-size:18px}.map-legend{display:none}.optical-ui{inset:8px 8px auto;gap:6px}.optical-ui .seg.small button{min-height:40px;padding:4px 9px}.optical-ui [data-seg=quality],.optical-ui [data-seg=exposure],.optical-ui [data-optical-status]{display:none}.optical-ui .seeing[open]{max-height:40dvh;overflow-y:auto;background:#04050ad9;padding:6px 8px;border-radius:4px}.views.mode-split .optical-ui .seg.small button{padding:4px 6px}.imager{top:56px;bottom:auto;right:8px;width:190px}.coach{position:fixed;inset:56px 78px auto 8px;width:auto;min-width:0;max-height:22dvh;overflow-y:auto;z-index:30;padding:8px 10px}.mailpill{bottom:8px;right:8px;max-width:calc(100% - 16px)}.mailpill button{min-height:40px}.cta{top:56px;left:8px;right:8px;transform:none;flex-wrap:wrap}#phone-nav{grid-area:nav;display:flex;gap:4px;padding:4px 6px calc(4px + env(safe-area-inset-bottom));background:#06070d;border-top:1px solid var(--line);z-index:40}#phone-nav button{flex:1;min-height:44px;background:transparent;border:1px solid var(--line-2);border-radius:6px;color:var(--dim);font-size:14px;letter-spacing:.04em;cursor:pointer}#phone-nav button.on{color:#fff;border-color:var(--accent);background:#f5b7541f}#phone-nav .ph-fly{flex:1.2;color:var(--text);border-color:var(--good)}#phone-nav button{white-space:nowrap}#phone-nav .badge{margin-left:4px;padding:0 5px}#phone-nav .badge:empty{display:none}.coach-x{min-width:44px;min-height:44px;margin:-10px -8px -10px auto}details>summary{padding-top:10px;padding-bottom:10px}.phone-note{position:fixed;left:8px;right:8px;top:56px;z-index:60;display:flex;gap:10px;align-items:center;background:#10131e;border:1px solid var(--accent);border-radius:8px;padding:8px 8px 8px 12px;box-shadow:0 12px 30px #0000008c}.phone-note[hidden]{display:none}.phone-note span{flex:1}.phone-note button{min-height:44px;padding:0 14px;background:#f5b7541f;border:1px solid var(--accent);border-radius:6px;color:#fff;cursor:pointer}}@media(max-width:760px)and (orientation:portrait){.views.mode-split{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr)}.views.mode-split .optical-wrap{border-left:0;border-top:1px solid var(--line)}}@media(max-height:500px)and (orientation:landscape){#app{grid-template-columns:88px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);grid-template-areas:"nav top" "nav main"}body[data-ph=flight] #app{grid-template-columns:88px minmax(0,55fr) minmax(0,45fr);grid-template-rows:44px minmax(0,1fr);grid-template-areas:"nav top top" "nav stage right"}body[data-ph=flight] #app>.panel.right{border-top:0;border-left:1px solid var(--line)}#phone-nav{flex-direction:column;padding:6px 6px calc(6px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left));border-top:0;border-right:1px solid var(--line)}#phone-nav button{flex:1;padding:0 2px}.tabs button,.tool{min-height:36px}.debrief,.debrief.confirm,.debrief.help,.debrief.homecoming{left:96px;top:50px;max-height:calc(100dvh - 58px)}.toasts,.phone-note{left:96px;top:50px}.coach{inset:50px auto auto 96px;max-height:40dvh;width:min(400px,48vw)}#phone-nav button{position:relative}#phone-nav .badge{position:absolute;top:4px;right:4px;margin:0}.callout{left:96px!important;top:50px!important;max-height:calc(100dvh - 58px)}.stage{grid-template-rows:minmax(0,1fr) 56px}.viewswitch{bottom:64px}}
