:root{--paper: #f4f1ea;--panel: #fffdf8;--panel-2: #ebe6da;--plate: #fffdf8;--ink: #1b1a17;--ink-2: #5c5850;--ink-3: #8d887c;--rule: #e2ddd0;--rule-2: #ece8dd;--accent: #0f4c81;--accent-ink: #ffffff;--st-pending: #c4bfb2;--st-progress: #d29a2a;--st-done: #1f7a45;--st-issue: #b5442f;--st-notv: #d8d3c6;--hold-it: #c8312a;--hold-elec: #f26b0f;--hold-other: #7a4cc2;--hold-cable: #2f6fc4;--hold-dnd: #c2477f;--hold-rest: #8a8578;--hold-mount: #b8862b;--hold-sheet: #5d6f86;--own-ent: #128585;--own-gs: #2f6fc4;--own-it: #df6f12;--own-other: #8a5a2b;--cat-inside: #7a7a7a;--cat-ocean: #f2b6c6;--cat-balcony: #e8604c;--cat-mini: #9b6bb3;--cat-suite: #2f4b7c;--cat-spa: #3aa7a3;--cat-studio: #c9a227;--cat-crew: #b8c4d6;--cat-officer: #d9b38c;--cat-none: #d8d8d8;--shadow: 0 1px 2px rgba(27, 26, 23, .06), 0 10px 28px rgba(27, 26, 23, .1);--plan-invert: 0;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #14140f;--panel: #1d1d17;--panel-2: #2a2921;--plate: #0e0e0a;--ink: #f1ede3;--ink-2: #b5b0a3;--ink-3: #948e80;--rule: #2e2d25;--rule-2: #26251e;--accent: #6aa8dc;--accent-ink: #0b1a26;--st-pending: #6e6a5e;--st-progress: #e0a52c;--st-done: #3fae6a;--st-issue: #e0664f;--st-notv: #514e45;--hold-it: #ec5a4c;--hold-elec: #ff8a2b;--hold-other: #a988ec;--hold-cable: #5f9cf0;--hold-dnd: #e077a8;--hold-rest: #a8a397;--hold-mount: #dcab4e;--hold-sheet: #8fa2bb;--own-ent: #3cc0bd;--own-gs: #6aa0ea;--own-it: #f2944a;--own-other: #c08a55;--cat-inside: #8d8d8d;--cat-ocean: #d99cae;--cat-balcony: #e0705e;--cat-mini: #a67bc0;--cat-suite: #4a6aa6;--cat-spa: #46b3af;--cat-studio: #d1ad3a;--cat-crew: #93a2b8;--cat-officer: #c9a27a;--cat-none: #4a4f4c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .55);--plan-invert: 1;color-scheme:dark}}:root[data-theme=dark]{--paper: #14140f;--panel: #1d1d17;--panel-2: #2a2921;--plate: #0e0e0a;--ink: #f1ede3;--ink-2: #b5b0a3;--ink-3: #948e80;--rule: #2e2d25;--rule-2: #26251e;--accent: #6aa8dc;--accent-ink: #0b1a26;--st-pending: #6e6a5e;--st-progress: #e0a52c;--st-done: #3fae6a;--st-issue: #e0664f;--st-notv: #514e45;--hold-it: #ec5a4c;--hold-elec: #ff8a2b;--hold-other: #a988ec;--hold-cable: #5f9cf0;--hold-dnd: #e077a8;--hold-rest: #a8a397;--hold-mount: #dcab4e;--hold-sheet: #8fa2bb;--own-ent: #3cc0bd;--own-gs: #6aa0ea;--own-it: #f2944a;--own-other: #c08a55;--cat-inside: #8d8d8d;--cat-ocean: #d99cae;--cat-balcony: #e0705e;--cat-mini: #a67bc0;--cat-suite: #4a6aa6;--cat-spa: #46b3af;--cat-studio: #d1ad3a;--cat-crew: #93a2b8;--cat-officer: #c9a27a;--cat-none: #4a4f4c;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px rgba(0, 0, 0, .55);--plan-invert: 1;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.5 Barlow,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}select{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:3px;padding:4px 6px}select option{background:var(--panel);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.cond{font-family:Barlow Condensed,system-ui,sans-serif}.app{display:flex;flex-direction:column;height:100%;overflow:hidden}.topbar{flex:none;background:var(--panel);border-bottom:1px solid var(--rule);padding:0 14px;padding-top:env(safe-area-inset-top);overflow:hidden}.trow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:9px 0}.brand{font:700 20px/1 Barlow Condensed,sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}.brand span{color:var(--ink-3);font-weight:500}.grow{flex:1}.tabs{display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font:600 13px/1 Barlow Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border-radius:3px;white-space:nowrap}.tabs button:hover{color:var(--ink);background:var(--panel-2)}.tabs button.on{background:var(--ink);color:var(--paper)}.tabs .badge{display:inline-block;background:var(--st-issue);color:#fff;border-radius:2px;padding:2px 5px;font-size:11px;font-weight:600;letter-spacing:0}@media (max-width: 900px){.trow{gap:10px}.brand{font-size:17px}.tabs{order:10;flex-basis:100%}.acct summary{max-width:150px}}.deckstrip{display:flex;gap:5px;overflow-x:auto;padding:0 0 9px;scrollbar-width:thin}.deckchip{flex:none;border:1px solid var(--rule);border-radius:3px;padding:4px 10px;font:600 12.5px/1.25 Barlow Condensed,sans-serif;letter-spacing:.03em;color:var(--ink-2);background:var(--panel);display:flex;gap:6px;align-items:baseline;white-space:nowrap}.deckchip .dp{font-variant-numeric:tabular-nums;font-size:10.5px;color:var(--ink-3)}.deckchip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.deckchip.on .dp{color:var(--paper);opacity:.75}.syncbadge{display:inline-flex;align-items:center;gap:7px;padding:4px 0;font:500 12.5px/1 Barlow,sans-serif;color:var(--ink-2);white-space:nowrap;cursor:pointer}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot.ok{background:var(--st-done)}.dot.warn{background:var(--st-progress)}.dot.off{background:var(--ink-3)}.dot.err{background:var(--st-issue)}.spin{animation:sp .9s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.viewport{flex:1;position:relative;overflow:hidden;touch-action:none;background:var(--paper)}.world{position:absolute;left:0;top:0;transform-origin:0 0}.plan{display:block;max-width:none!important;max-height:none!important;filter:invert(var(--plan-invert)) hue-rotate(calc(var(--plan-invert) * 180deg)) saturate(var(--plan-sat, 1))}.plan.tile{position:absolute;top:0}.planlayer{position:absolute;left:0;top:0}.overlay.hullfill,.overlay.hullline{pointer-events:none}.overlay.hullfill polygon{fill:var(--hull);stroke:none;cursor:default}.overlay.hullline polygon{fill:none;stroke:var(--hull-line);stroke-linejoin:round;cursor:default}.overlay{position:absolute;left:0;top:0;overflow:visible;max-width:none!important}.overlay polygon{cursor:pointer;stroke-linejoin:round}.p-PENDING{fill:#9aa09b38;stroke:#74796f}.p-IN_PROGRESS{fill:#c98a1299;stroke:#8c5f08}.p-COMPLETED{fill:#1c7a3e8c;stroke:#12602f}.p-ISSUE{fill:#b3372c9e;stroke:#8b271e}.p-NO_TV{fill:#b9bcb447;stroke:#8f938b;stroke-dasharray:6 5}.p-blank{fill:#17557f1f;stroke:#17557f;stroke-dasharray:7 6}.dim{opacity:.12}.labels{position:absolute;left:0;top:0;pointer-events:none}.labels span{position:absolute;transform:translate(-50%,-50%);font:600 10px/1 JetBrains Mono,monospace;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink);text-shadow:0 0 3px var(--paper),0 0 6px var(--paper)}.labels span.on-fill{color:#fff;text-shadow:0 0 3px rgba(0,0,0,.7)}.labels span.ownbubble{transform:translate(-100%);padding:.15em .45em;border-radius:1em;font:700 10px/1 Barlow Condensed,sans-serif;letter-spacing:.04em;color:#fff;text-shadow:none;box-shadow:0 0 0 1px #ffffffd9,0 1px 2px #0006}.deckbadge{position:absolute;top:11px;right:11px;pointer-events:none;background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:5px 10px;font:600 14px/1 IBM Plex Sans Condensed,sans-serif;letter-spacing:.14em;color:var(--ink-2)}.zoomctl{position:absolute;right:11px;bottom:max(14px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:1px;border-radius:3px;overflow:hidden;box-shadow:var(--shadow)}.zoomctl button{width:40px;height:40px;background:var(--panel);border:1px solid var(--rule);font-size:18px;font-weight:600}.hint{position:absolute;left:11px;bottom:max(14px,env(safe-area-inset-bottom));background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:6px 10px;font-size:12px;color:var(--ink-2);max-width:60%;box-shadow:var(--shadow)}.toolbar{flex:none;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--rule)}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--rule);border-radius:3px;padding:4px 10px;font:500 12.5px/1.3 Barlow,sans-serif;color:var(--ink-2);background:var(--panel);white-space:nowrap}.chip .sw{width:10px;height:10px;border-radius:3px;flex:none}.chip .n{font-family:JetBrains Mono,monospace;color:var(--ink-3);font-size:11.5px}.chip.on{border-color:var(--ink-2);background:var(--panel-2);color:var(--ink)}.chip.paint{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink)}.seg{display:flex;border:1px solid var(--rule);border-radius:3px;overflow:hidden}.seg button{padding:5px 12px;font:600 12.5px/1.3 Barlow Condensed,sans-serif;color:var(--ink-2)}.seg button.on{background:var(--accent);color:var(--accent-ink)}.btn{border:1px solid var(--rule);border-radius:3px;padding:6px 12px;font:600 12.5px/1.3 Barlow,sans-serif;color:var(--ink-2);background:var(--panel);white-space:nowrap}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--st-issue)}.btn:disabled{opacity:.45;cursor:not-allowed}.search{display:flex;align-items:center;gap:6px;border:1px solid var(--rule);border-radius:3px;background:var(--panel);padding:4px 9px}.search input{border:none;background:none;outline:none;width:96px;font-family:JetBrains Mono,monospace}.scrim{position:fixed;inset:0;background:#0000006b;z-index:40}.sheet{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(520px,100%);max-height:84vh;overflow-y:auto;z-index:41;background:var(--panel);border:1px solid var(--rule);border-bottom:none;border-radius:8px 8px 0 0;box-shadow:var(--shadow);padding:14px 15px calc(16px + env(safe-area-inset-bottom))}.sheet h2{font:700 21px/1.1 JetBrains Mono,monospace;margin:0;letter-spacing:-.01em}.sheet .meta{color:var(--ink-3);font-size:12px;margin:3px 0 12px;display:flex;gap:8px;flex-wrap:wrap}.pill{border:1px solid var(--rule);border-radius:3px;padding:1px 7px;font-size:11px;font-weight:500;color:var(--ink-2)}.statusgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}.statusgrid button{display:flex;align-items:center;gap:7px;border:1px solid var(--rule);border-radius:3px;padding:9px 10px;font:600 13px/1.2 Barlow,sans-serif;color:var(--ink-2);background:var(--panel)}.statusgrid button.on{border-color:var(--ink-2);background:var(--panel-2);color:var(--ink)}.sheet label.field{display:block;font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:14px 0 6px}.sheet textarea,.sheet input[type=text]{width:100%;border:1px solid var(--rule);border-radius:3px;background:var(--paper);padding:8px 10px;resize:none}.unitrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--rule-2)}.unitrow:last-child{border-bottom:none}.unitrow .seq{font:600 11px/1 JetBrains Mono,monospace;color:var(--ink-3);width:22px;flex:none}.unitrow .model{font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--ink-2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unitrow select{border:1px solid var(--rule);border-radius:3px;background:var(--paper);padding:4px 6px;font-size:12px}.unitrow input{width:96px;border:1px solid var(--rule);border-radius:3px;background:var(--paper);padding:4px 7px;font-family:JetBrains Mono,monospace;font-size:12px}.rowbtns{display:flex;gap:7px;margin-top:14px}.rowbtns .btn{flex:1;padding:9px;text-align:center}.scroll{flex:1;overflow-y:auto;padding:12px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}.card{background:var(--panel);border:1px solid var(--rule);border-radius:0;padding:13px 14px;margin-bottom:10px}.card h3{font:700 16px/1.2 Barlow Condensed,sans-serif;text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px}.card p{margin:0 0 8px;color:var(--ink-2);font-size:13.5px;max-width:70ch}.card p:last-child{margin-bottom:0}.rowlist{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:0;overflow:hidden;background:var(--panel)}.rowitem{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--rule-2);text-align:left;width:100%}.rowitem:last-child{border-bottom:none}.rowitem:hover{background:var(--panel-2)}.rowitem .no{font:600 14px/1 JetBrains Mono,monospace;width:58px;flex:none}.rowitem .dk{font-size:11.5px;color:var(--ink-3);width:46px;flex:none;font-family:JetBrains Mono,monospace}.rowitem .st{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);white-space:nowrap}.rowitem .rm{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.empty{color:var(--ink-3);text-align:center;padding:34px 12px;font-size:14px}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{text-align:left;padding:7px 9px;border-bottom:1px solid var(--rule-2)}table.data th{font:600 10.5px/1.2 JetBrains Mono,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}table.data td.n{text-align:right;font-family:JetBrains Mono,monospace;font-variant-numeric:tabular-nums}.tablewrap{overflow-x:auto}.login{min-height:100%;display:grid;place-items:center;padding:22px}.loginbox{width:min(370px,100%);background:var(--panel);border:1px solid var(--rule);border-radius:3px;padding:22px;box-shadow:var(--shadow)}.loginbox h1{font:700 21px/1.15 Barlow Condensed,sans-serif;margin:0 0 4px}.loginbox p.sub{color:var(--ink-2);font-size:13.5px;margin:0 0 18px}.loginbox label{display:block;font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}.loginbox input{width:100%;border:1px solid var(--rule);border-radius:3px;background:var(--paper);padding:9px 11px;margin-bottom:13px}.loginbox .btn{width:100%;padding:10px;text-align:center}.err{color:var(--st-issue);font-size:13px;margin:0 0 12px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:max(20px,env(safe-area-inset-bottom));z-index:60;background:var(--ink);color:var(--paper);padding:9px 16px;border-radius:3px;font-weight:500;font-size:13.5px;max-width:88vw;box-shadow:var(--shadow)}:root{--sg-1: #8fa3b5;--sg-2: #5c8bb0;--sg-3: #e0b03c;--sg-4: #d29a2a;--sg-5: #c07f1f;--sg-6: #a8661a;--sg-7: #8aa23a;--sg-8: #1f7a45}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--sg-1: #6e8296;--sg-2: #6ea3cc;--sg-3: #f0c45a;--sg-4: #e0a52c;--sg-5: #d08a2e;--sg-6: #c07030;--sg-7: #a3c94a;--sg-8: #3fae6a}}:root[data-theme=dark]{--sg-1: #6e8296;--sg-2: #6ea3cc;--sg-3: #f0c45a;--sg-4: #e0a52c;--sg-5: #d08a2e;--sg-6: #c07030;--sg-7: #a3c94a;--sg-8: #3fae6a}.unitcard{border:1px solid var(--rule);border-radius:0;padding:10px 11px;margin-bottom:9px;background:var(--paper)}.unithead{display:flex;align-items:baseline;gap:9px;margin-bottom:8px}.unithead .seq{font:600 12px/1 Barlow Condensed,sans-serif;color:var(--ink)}.unithead .model{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}ol.gates{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}ol.gates .gate{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:1px solid var(--rule);border-radius:3px;padding:7px 9px;background:var(--panel);font:500 13px/1.2 Barlow,sans-serif;color:var(--ink-2)}ol.gates .tick{width:20px;height:20px;flex:none;border-radius:3px;display:grid;place-items:center;background:var(--panel-2);color:var(--ink-3);font:600 11px/1 JetBrains Mono,monospace}ol.gates li.done .gate{border-color:var(--st-done);color:var(--ink)}ol.gates li.done .tick{background:var(--st-done);color:#fff}ol.gates li.next .gate{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink)}ol.gates .glabel{flex:1}ol.gates .stamp{font-size:10.5px;color:var(--ink-3);white-space:nowrap}.unitfoot{display:flex;gap:7px;margin-top:9px}.unitfoot .serial{flex:1;min-width:0;border:1px solid var(--rule);border-radius:3px;background:var(--panel);padding:6px 9px;font-size:12.5px}.held{margin-top:8px;border-left:3px solid var(--st-issue);padding:6px 10px;font-size:12.5px;color:var(--ink-2);background:var(--panel);border-radius:0}.held strong{color:var(--st-issue);font-weight:600}.btn.wide{width:100%;text-align:center;padding:9px}.notice{border:1px solid var(--rule);border-radius:0;padding:11px 12px;color:var(--ink-2);font-size:13.5px;background:var(--paper)}.funnel{display:flex;flex-direction:column;gap:9px;margin:4px 0 10px}.fbar{display:grid;grid-template-columns:minmax(120px,1.1fr) 3fr 46px;gap:10px;align-items:center}.flabel{display:flex;flex-direction:column;gap:1px;min-width:0}.fname{font:600 13px/1.2 Barlow Condensed,sans-serif}.fnum{font-size:12px;color:var(--ink-2)}.fnum small{color:var(--ink-3)}.ftrack{height:14px;border-radius:3px;background:var(--panel-2);overflow:hidden}.ftrack i{display:block;height:100%;border-radius:3px;transition:width .25s ease}@media (prefers-reduced-motion: reduce){.ftrack i{transition:none}}.fpct{font-size:12px;color:var(--ink-2);text-align:right}.fine{font-size:12px;color:var(--ink-3)}tr.totalrow td{border-top:1px solid var(--ink);font-weight:600}@media (max-width: 560px){.fbar{grid-template-columns:1fr 2fr 42px}.fname{font-size:12px}}.overlay .g-0{fill:#9aa09b2e;stroke:#74796f}.overlay .g-1{fill:#7a8ba073;stroke:#52627a}.overlay .g-2{fill:#5b8fb080;stroke:#3d6d8c}.overlay .g-3{fill:#e0b03c8c;stroke:#9a7412}.overlay .g-4{fill:#c98a1294;stroke:#8c5f08}.overlay .g-5{fill:#b9731994;stroke:#7d4c0c}.overlay .g-6{fill:#a05f1999;stroke:#6b3d0a}.overlay .g-7{fill:#7a9c2e94;stroke:#5b7420}.overlay .g-8{fill:#1c7a3e94;stroke:#12602f}.overlay .held{stroke:var(--st-issue);stroke-dasharray:5 3}.overlay .hold-IT{fill:var(--hold-it);fill-opacity:.75;stroke:var(--hold-it)}.overlay .hold-ELECTRICAL{fill:var(--hold-elec);fill-opacity:.75;stroke:var(--hold-elec)}.overlay .hold-OTHER{fill:var(--hold-other);fill-opacity:.75;stroke:var(--hold-other)}.overlay .sw-OK{fill:var(--st-done);fill-opacity:.6;stroke:var(--st-done)}.overlay .sw-FIX{fill:var(--hold-other);fill-opacity:.75;stroke:var(--hold-other)}.overlay .sw-VERIFY{fill:var(--st-issue);fill-opacity:.75;stroke:var(--st-issue)}.overlay .sw-DND{fill:var(--st-progress);fill-opacity:.7;stroke:var(--st-progress)}.overlay .sw-OPEN{fill:#9aa09b2e;stroke:#74796f}.overlay .own{fill-opacity:.75}.overlay .sw-NA{fill:transparent;stroke:#74796f;stroke-opacity:.35}.overlay polygon.split{fill:transparent;fill-opacity:1}.card.danger-card{border-left:3px solid var(--st-issue)}.card.warn-card{border-left:3px solid var(--st-progress)}.tabs .badge.warn{background:var(--st-progress);color:#14100a}.verdict{margin-top:7px;border-radius:3px;padding:7px 10px;font-size:12.5px;font-weight:500;border:1px solid var(--rule)}.verdict.bad{color:var(--st-issue);border-color:var(--st-issue)}.verdict.warn{color:var(--st-progress);border-color:var(--st-progress)}.verdict.ok{color:var(--st-done);border-color:var(--st-done)}:root{--cell-idle: #e6e1d4;--hull: #fffdf8;--hull-line: #bdb7a8;--room-line: rgba(0,0,0,.28)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--cell-idle: #2a2921;--hull: #1a1a14;--hull-line: #4a4840;--room-line: rgba(255,255,255,.22)}}:root[data-theme=dark]{--cell-idle: #2a2921;--hull: #1a1a14;--hull-line: #4a4840;--room-line: rgba(255,255,255,.22)}.planwrap{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.planvp{min-height:0}.plan-svg{position:absolute;display:block;max-width:none!important;overflow:visible}.planwrap .schemlegend{align-self:center;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.plan-svg .hull{fill:var(--hull);stroke:var(--hull-line);stroke-width:2.5}.plan-svg .deckname{font:700 22px Barlow Condensed,sans-serif;letter-spacing:.18em;fill:var(--ink-3)}.plan-svg .room-blank{fill:none;stroke:var(--hull-line);stroke-width:1.2;stroke-dasharray:4 3}.plan-svg .room{cursor:pointer}.plan-svg .room polygon{stroke:var(--room-line);stroke-width:1.6;stroke-linejoin:round}.plan-svg .room text{font-family:JetBrains Mono,monospace;font-weight:600;font-variant-numeric:tabular-nums;fill:var(--ink-2);pointer-events:none}.plan-svg .room.lit text{fill:#fff}.plan-svg .room .ownbubble rect{stroke:#ffffffd9;stroke-width:.6}.plan-svg .room .ownbubble text{fill:#fff;font-family:Barlow Condensed,sans-serif;font-weight:700}.plan-svg .room.held polygon{stroke:var(--st-issue);stroke-width:3.5}.plan-svg .room.dim{opacity:.12}.plan-svg .room rect.tv{stroke:var(--room-line);stroke-width:.8}.plan-svg .room:hover polygon,.plan-svg .room:hover rect.tv{filter:brightness(1.08)}.plan-svg .room.flash polygon{animation:roomflash .8s ease 3}@keyframes roomflash{50%{stroke:var(--accent);stroke-width:7}}@media (prefers-reduced-motion: reduce){.plan-svg .room.flash polygon{animation:none;stroke:var(--accent);stroke-width:5}}.schemlegend{display:flex;gap:13px;flex-wrap:wrap;justify-content:center;padding:12px 0 4px;font-size:11.5px;color:var(--ink-2)}.schemlegend i{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:5px;vertical-align:-1px;box-shadow:inset 0 0 0 1px #00000024}.editor{display:flex;flex:1;min-height:0}.editor .edstage{position:relative;flex:1;min-width:0;overflow:hidden;background:var(--plate);touch-action:none}.editor .edstage canvas{display:block}.editor .edpanel{width:290px;flex:none;border-left:1px solid var(--rule);background:var(--panel);padding:12px;overflow:auto;font-size:13px}.editor .edpanel h3{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:14px 0 6px}.editor .edpanel h3:first-child{margin-top:0}.editor .edpanel .row{display:flex;gap:6px;align-items:center;margin:4px 0;flex-wrap:wrap}.editor .edpanel .row label{width:70px;color:var(--ink-2)}.editor .edpanel .row input[type=text],.editor .edpanel .row select{flex:1;min-width:0;margin:0}.editor .edpanel .stats{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-variant-numeric:tabular-nums}.editor .edpanel .stats b{font-weight:600}.editor .edpanel .warn{color:var(--st-issue)}.editor .edpanel .legend{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px}.editor .edpanel .legend span{display:flex;align-items:center;gap:6px}.editor .edpanel .legend i{width:13px;height:13px;border-radius:3px;border:1px solid rgba(0,0,0,.15);display:inline-block}.editor .edpanel .keys{color:var(--ink-2);font-size:12px;line-height:1.5}.editor .edpanel .unplaced{display:flex;flex-wrap:wrap;gap:4px}.editor .edpanel .unplaced button{font-size:11px;padding:2px 6px;border-radius:3px;border:1px solid var(--rule);background:var(--panel);color:var(--ink);cursor:pointer}.editor .edpanel .unplaced button:hover{border-color:var(--accent)}.editor .inline{position:absolute;z-index:5;font:700 14px Arial,Helvetica,sans-serif;text-align:center;padding:2px 4px;border:2px solid #ff9800;border-radius:4px;background:#fff;color:#222;outline:none;min-width:64px;width:auto;margin:0}.editor .inline.dup{border-color:#c0392b;background:#fff3f2}.editor .edtoast{position:absolute;left:12px;bottom:12px;background:var(--ink);color:var(--paper);padding:6px 10px;border-radius:3px;opacity:.92;pointer-events:none;font-size:13px}.toolbar .sliders{display:flex;gap:10px;align-items:center;color:var(--ink-2);font-size:12px}.toolbar .sliders input[type=range]{width:80px;margin:0 0 0 4px;vertical-align:middle}@media (max-width: 900px){.editor{flex-direction:column}.editor .edpanel{width:auto;max-height:38vh;border-left:0;border-top:1px solid var(--rule)}}.toolbar .hintline{color:var(--ink-2);font-size:12px}.frames{pointer-events:none}.frames .axis{stroke:var(--accent);opacity:.55}.frames .tick{stroke:var(--accent);fill:none;opacity:.75}.frames .tick.minor{opacity:.4}.frames text{fill:var(--accent);font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600;paint-order:stroke;stroke:var(--paper);stroke-linejoin:round}.plan-svg .frames text{stroke:#fff}.themebtn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--rule);border-radius:3px;background:var(--panel);color:var(--ink-2);cursor:pointer}.themebtn:hover{color:var(--ink);border-color:var(--ink-3)}.themepick{display:flex;flex-wrap:wrap;gap:6px}.acct{position:relative}.acct summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;max-width:260px}.acct summary::-webkit-details-marker{display:none}.acct .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct .rolechip{font:600 11px/1 Barlow Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border:1px solid var(--ink);border-radius:2px;color:var(--ink);flex:none}.acct .menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--rule);border-radius:3px;box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:6px;min-width:190px;z-index:30}.ro .sheet button,.ro .sheet input,.ro .sheet textarea,.ro .sheet select{pointer-events:none;opacity:.5}.ro .sheet .rowbtns>.btn.closebtn{pointer-events:auto;opacity:1}.ro .sheet:before{content:"Read-only: your role is Viewer. Ask an admin for Technician access to update cabins.";display:block;font-size:12px;color:var(--st-issue);margin-bottom:8px}.team{flex:1;overflow:auto;padding:14px;display:grid;gap:14px;max-width:980px}.team .card h2{font-size:17px;margin:0 0 6px}.team .muted{color:var(--ink-2);font-size:13px}.team .err{color:var(--st-issue)}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-weight:600;color:var(--ink-2);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--rule)}.tbl td{padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:middle}.tbl select{margin:0;padding:4px 6px}.tbl .actions{display:flex;gap:6px;justify-content:flex-end}.newuser{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;align-items:end}.newuser label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}.newuser input,.newuser select{margin:0}.newuser p,.newuser>.btn{grid-column:1 / 3}.pwrow{display:flex;gap:6px;align-items:center}.pwrow input{flex:1;margin:0;min-width:0}@media (max-width: 700px){.newuser{grid-template-columns:1fr}.newuser p,.newuser>.btn{grid-column:1}.tbl .actions{flex-direction:column}}.profile{flex:1;overflow:auto;padding:14px;display:grid;gap:14px;max-width:760px;align-content:start}.profile .card h2,.team .card h2{font-size:17px;margin:0 0 6px}.profile .muted{color:var(--ink-2);font-size:13px}.profile .err{color:var(--st-issue)}.idrow{display:flex;gap:14px;align-items:center}.idrow .big{font:600 18px/1.2 Barlow Condensed,sans-serif}.idrow .rolechip{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--accent);color:var(--accent-ink)}.avatar{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 19px/1 Barlow Condensed,sans-serif;flex:none}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:13px;margin:0}.kv dt{color:var(--ink-3);font:600 10.5px/1.7 JetBrains Mono,monospace;letter-spacing:.08em;text-transform:uppercase}.kv dd{margin:0}.pwform{display:grid;gap:10px;max-width:360px}.pwform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ink-2)}.pwform label.check{flex-direction:row;align-items:center;gap:8px}.pwform input{margin:0}.matrix{width:100%;border-collapse:collapse;font-size:13px}.matrix th,.matrix td{padding:6px 8px;border-bottom:1px solid var(--rule);text-align:center}.matrix th{font-weight:600;color:var(--ink-2);font-size:12px}.matrix td:first-child,.matrix th:first-child{text-align:left}.matrix .yes{color:var(--accent);font-weight:700}.matrix .no{color:var(--ink-3)}.mywork{display:flex;gap:8px;flex-wrap:wrap}.mywork .stat{border:1px solid var(--rule);border-radius:3px;padding:6px 10px;font-size:13px;display:flex;gap:6px;align-items:center}.mywork .stat b{font-size:16px}.mywork .sw{width:10px;height:10px;border-radius:3px;display:inline-block}.recent{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:13px}.recent li{display:flex;gap:10px;align-items:baseline}.recent .no{font-weight:600;min-width:90px}.recent .t{color:var(--ink-3);margin-left:auto;font-size:12px}.tbl .namecell{display:flex;gap:6px;align-items:center}.tbl .namecell input{margin:0;padding:4px 6px;width:160px}.tbl .rename{border:0;background:none;color:var(--ink-3);cursor:pointer;padding:0 4px;font-size:12px}.tbl .rename:hover{color:var(--accent)}.board{padding:0 0 calc(20px + env(safe-area-inset-bottom))}.board .headline{padding:26px 28px 8px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:end}.eyebrow{font:600 12px/1 Barlow Condensed,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.eyebrow.row{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.bignum{font:700 132px/1 Barlow Condensed,sans-serif;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.bignum span{font-size:64px;color:var(--ink-3)}.herosub{font-size:15px;color:var(--ink-2);margin-top:-4px}.herosub b{color:var(--ink);font-weight:600}.heldtext{color:var(--st-issue);font-weight:600}.donetext{color:var(--st-done);font-weight:600}.dimtext{color:var(--ink-3);font-weight:400}.whereall{padding-bottom:6px;min-width:0}.stackbar{display:flex;height:12px;gap:1px}.stackbar i{display:block;height:100%}.stackbar.tall{height:34px;gap:2px;padding:2px;border:1px solid var(--ink);background:var(--panel)}.legend{display:flex;gap:8px 18px;margin-top:10px;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2)}.legend i{width:10px;height:10px;flex:none}.legend b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.unsure{font-weight:400;color:var(--ink-3)}.toolbar .publegend{margin-top:0;gap:4px 12px}.trackers{padding:20px 28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tcard{display:flex;flex-direction:column;gap:10px;text-align:left;background:var(--panel);border:1px solid var(--rule);border-top:3px solid var(--ink);padding:16px 18px 14px;min-width:0;color:inherit}.tcard:hover{border-color:var(--ink-3);border-top-color:var(--ink)}.tcard.on{border-color:var(--accent);border-top-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tcard .thead{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.tcard .ttitle{font:700 18px/1 Barlow Condensed,sans-serif;text-transform:uppercase;letter-spacing:.03em}.tcard .tsheet{font:600 11px/1 Barlow Condensed,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}.tcard .tnum{display:flex;align-items:baseline;gap:10px}.tcard .tpct{font:700 52px/1 Barlow Condensed,sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tcard .tof{font-size:13px;color:var(--ink-2)}.tcard .tfoot{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--ink-2)}.tcard .tlink{color:var(--accent);font-weight:600;white-space:nowrap}.boardgrid{padding:0 28px 28px;display:grid;grid-template-columns:7fr 5fr;gap:14px;align-items:start}.boardgrid .stack{display:flex;flex-direction:column;gap:8px;min-width:0}.fold{background:var(--panel);border:1px solid var(--rule)}.fold.open{border-color:var(--ink)}.fhead{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;text-align:left;color:inherit}.ftitle{font:700 16px/1.15 Barlow Condensed,sans-serif;text-transform:uppercase;letter-spacing:.04em}.ftitle .sub{margin-left:8px}.ftog{font:600 11px/1 Barlow Condensed,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);white-space:nowrap}.fbody{padding:0 20px 18px}.fbody .lead{margin:0 0 10px;font-size:13.5px;color:var(--ink-2);max-width:78ch}.fbody .fine,.deckcard .fine{margin:10px 0 0}.gridwrap{overflow-x:auto}.gtable{display:flex;flex-direction:column;font-size:14px;font-variant-numeric:tabular-nums}.gtable .gh,.gtable .gr,.gtable .gt{display:grid;gap:0 14px;align-items:center}.gtable .gh{font:600 11px/1 Barlow Condensed,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:0 0 8px;border-bottom:1px solid var(--ink)}.gtable .gr{padding:8px 0;border-bottom:1px solid var(--rule)}.gtable .gt{padding:8px 0 0;font-weight:600}.gtable .n{text-align:right}.gtable .b{font-weight:600}.gtable .sec{color:var(--ink-2)}.gtable .zero{color:var(--ink-3)}.gtable .hi{color:var(--ink);font-weight:600}.gtable .gh .hi{color:var(--ink)}.gtable .heldrow{color:var(--st-issue)}.gtable .stname{display:flex;align-items:center;gap:10px;min-width:0}.gtable .stname i{width:10px;height:10px;flex:none}.gtable .of{color:var(--ink-3);font-size:11px;font-weight:400}.gbar{display:block;height:10px;background:var(--panel-2)}.gbar i{display:block;height:100%}.gbar{position:relative}.gbar .gmark{position:absolute;top:-5px;bottom:-5px;width:2px;margin-left:-1px;background:var(--ink)}.planbar{position:relative;padding-bottom:16px}.gflag{position:absolute;bottom:0;transform:translate(-5px);white-space:nowrap;font:600 11px/1 Barlow Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.gflag.right{transform:translate(calc(-100% + 5px))}.gplan{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.gplan b{color:var(--ink)}.gstat{display:inline-block;padding:1px 6px;border:1px solid currentColor;font-size:11.5px;font-weight:600;white-space:nowrap}.gstat.ahead{color:var(--st-done)}.gstat.track{color:var(--ink-2)}.gstat.behind{color:var(--st-issue)}.gshort{display:none}.gfinish{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.gfinish b{color:var(--st-done)}.gfinish.late b,.gfinish.late{color:var(--st-issue)}.planlegend .gstat{margin:0 4px 0 6px;padding:0 5px;font-size:10.5px}.planlegend .gflagkey{color:var(--ink)}.greport{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin-top:2px;padding-top:6px;border-top:1px dashed var(--rule);font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.greport .grhead{font-weight:600;white-space:nowrap}.greport.in .grhead{color:var(--st-done)}.greport.due .grhead{color:var(--st-progress)}.planlegend .greport{display:inline;border:0;margin:0 4px 0 6px;padding:0}.heldtile .gpct{color:var(--hold-it)}.heldtile.clear .gpct,.sweeptile .gpct{color:var(--st-done)}.board .sweeprow{padding:14px 28px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gbar.holdbar{display:flex}.holdkinds{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.holdkinds>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.holdkinds>span>i{width:8px;height:8px;flex:none}.holdkinds>span>b{color:var(--ink)}.holdkinds .zero{opacity:.5}.heldtile{position:relative}.holdkinds .hk{cursor:default;outline:none}.holdkinds .hk:not(.zero):hover>b,.holdkinds .hk:focus>b{text-decoration:underline}.holdlist{display:none;position:absolute;z-index:30;top:calc(100% - 6px);right:0;width:min(380px,92vw);max-height:360px;overflow:auto;background:var(--panel);border:1px solid var(--rule);border-top:3px solid var(--hc, var(--ink));box-shadow:var(--shadow);padding:10px 12px;white-space:normal;font-size:12px;line-height:1.45;color:var(--ink-2)}.holdkinds .hk:hover .holdlist,.holdkinds .hk:focus .holdlist,.holdkinds .hk:focus-within .holdlist{display:block}.holdlist .hlhead,.holdlist .hlgroup,.holdlist .hlwhy{display:block}.holdlist .hlhead{font-weight:600;color:var(--ink);margin-bottom:6px}.holdlist .hlwhy{margin:8px 0 2px;color:var(--ink)}.holdlist .hlwhy b{font-variant-numeric:tabular-nums}.holdlist .hldeck{display:grid;grid-template-columns:44px 1fr;gap:6px;font-variant-numeric:tabular-nums}.holdlist .hldeck span:first-child{color:var(--ink-3);white-space:nowrap}.gtable.stages-all>*{grid-template-columns:minmax(200px,1fr) repeat(var(--ncol, 4),64px) minmax(90px,150px);min-width:600px}.gtable.holds>*{grid-template-columns:1fr 50px minmax(90px,200px)}.gtable.sizes>*{grid-template-columns:56px repeat(6,minmax(58px,1fr)) minmax(96px,1.2fr) 64px;min-width:700px}.gtable.sizes .verdict-pill{justify-self:end}.gtable.sources>*{grid-template-columns:1.2fr 1fr 1fr 1.4fr 60px 90px;min-width:560px}.gtable.gates>*{grid-template-columns:minmax(110px,1fr) 110px 56px minmax(90px,2fr)}.gtable.means>*{grid-template-columns:minmax(180px,220px) 1fr;align-items:start}.gtable.means .inapp{color:var(--ink-3)}.deckcard{background:var(--panel);border:1px solid var(--rule);padding:18px 20px;min-width:0}.deckcard .dhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;font-size:12.5px}.decks{display:flex;flex-direction:column;gap:5px}.deckrow{display:grid;grid-template-columns:28px 1fr 44px;gap:10px;align-items:center}.deckrow .dno{font:700 13px/1 Barlow Condensed,sans-serif;color:var(--ink-3);text-align:right}.deckrow .dbar{display:block;height:13px;background:var(--panel-2)}.deckrow .dbar i{display:block;height:100%;background:var(--st-done)}.deckrow .dbar.stagefill{display:flex;gap:1px;background:none}.deckrow .dbar.stagefill i{width:auto;min-width:2px}.deckcard .legend{margin-top:12px}.board .headline.gatehead{grid-template-columns:1fr;gap:4px;align-items:stretch}.splithead{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.splitside{display:flex;flex-direction:column;gap:12px;min-width:0}.splitside .sidehead{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:2px solid var(--ink);padding-bottom:6px}.splitside .ttitle{font:700 20px/1 Barlow Condensed,sans-serif;text-transform:uppercase;letter-spacing:.03em}.splitside .tof{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.splitside .legend{margin-top:0}.splitside .gatetiles{gap:6px}.splitside .gatetile{padding:10px;gap:5px}.splitside .gatetile .glabel{font-size:11.5px;letter-spacing:.05em}.splitside .gatetile .gpct{font-size:38px}.splitside .gatetile .gof{font-size:11.5px}.gatetiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.gatetile{background:var(--panel);border:1px solid var(--rule);border-top:3px solid var(--ink);padding:12px 14px;min-width:0;display:flex;flex-direction:column;gap:6px}.gatetile .glabel{display:flex;align-items:center;gap:6px;font:600 13px/1.1 Barlow Condensed,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.gatetile .glabel i{width:10px;height:10px;flex:none}.gatetile .gpct{font:700 52px/1 Barlow Condensed,sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.gatetile .gof{font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.gatetile .gbar{width:100%}.tcard .tgates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.tcard .tgates span{display:flex;flex-direction:column;gap:3px;min-width:0}.tcard .tgates small{font:600 10.5px/1.1 Barlow Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tcard .tgates b{font:700 24px/1 Barlow Condensed,sans-serif;font-variant-numeric:tabular-nums}.deckrow .dpct{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right}.dtotal{display:grid;grid-template-columns:1fr auto 44px;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid var(--ink);font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}.dtotal .n{text-align:right}.dtotal .of{color:var(--ink-3);font-size:11px;font-weight:400}.board .overall{padding:22px 28px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ocard{background:var(--panel);border:1px solid var(--rule);border-top:3px solid var(--ink);padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:8px}.ocard .eyebrow.row{margin-bottom:0}.onum{font:700 76px/1 Barlow Condensed,sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.onum span{font-size:38px;color:var(--ink-3)}.ocard .gbar{width:100%;height:12px}.osub{font-size:14px;color:var(--ink-2);font-variant-numeric:tabular-nums}.osub b{color:var(--ink);font-weight:600}.todaybar{margin:0 28px;padding:10px 16px;background:var(--panel);border:1px solid var(--rule);display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.todaybar b{color:var(--ink);font-weight:600}@media (max-width: 1000px){.boardgrid{grid-template-columns:1fr}.bignum{font-size:104px}.bignum span{font-size:52px}}@media (max-width: 760px){.board .overall{padding:16px 14px 0;gap:10px}.board .sweeprow{padding:10px 14px 0;grid-template-columns:1fr}.board .sweeprow>span:first-child{display:none}.onum{font-size:60px}.onum span{font-size:30px}.board .headline{grid-template-columns:1fr;gap:18px;padding:18px 14px 6px}.bignum{font-size:84px}.bignum span{font-size:42px}.trackers{grid-template-columns:1fr;padding:14px;gap:10px}.tcard .tpct{font-size:44px}.boardgrid{padding:0 14px 20px}.todaybar{margin:0 14px}.fhead{padding:12px 14px}.fbody{padding:0 14px 14px}.deckcard{padding:14px}.legend{gap:8px 14px}.splithead{grid-template-columns:1fr;gap:22px}.splitside .gatetiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.splitside .gatetile{padding:8px 6px;border-top-width:2px}.splitside .gatetile .glabel{font-size:9.5px;letter-spacing:.02em}.splitside .gatetile .glabel i{display:none}.splitside .gatetile .gpct{font-size:22px}.splitside .gatetile .gof,.splitside .gatetile .glong{display:none}.splitside .gatetile .gshort{display:inline}.splitside .gatetile .gflag{font-size:9.5px}.splitside .gatetile .gplan{font-size:10.5px;gap:3px 5px}.splitside .gatetile .gfinish{font-size:10.5px}.splitside .gatetile .gstat{font-size:10px;padding:0 4px}.splitside .gatetile .greport{font-size:10px;padding-top:4px}.splitside .holdkinds{font-size:10px;gap:1px 6px}}table.data td .sw,table.data th .sw{display:inline-block;width:9px;height:9px;border-radius:2px;vertical-align:middle;margin-right:2px}table.data .barcol{width:26%;min-width:90px}.stagebar{display:block;height:9px;border-radius:3px;background:var(--panel-2);overflow:hidden}.stagebar i{display:block;height:100%;border-radius:3px}tr.heldrow td{color:var(--st-issue)}table.data td .of{color:var(--ink-3);font-size:11px}.verdict-pill{font:600 10.5px/1 JetBrains Mono,monospace;letter-spacing:.06em;padding:3px 7px;border-radius:3px;border:1px solid}.verdict-pill.ok{color:var(--st-done);border-color:var(--st-done)}.verdict-pill.short{color:var(--st-issue);border-color:var(--st-issue);background:#b3372c14}.pillrow{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px}.pill.warnpill{color:var(--st-progress);border-color:var(--st-progress)}h4.subhead{font:600 12.5px/1.2 Barlow Condensed,sans-serif;color:var(--ink-2);margin:14px 0 6px;letter-spacing:.02em;text-transform:uppercase}.rowgroup{padding:8px 10px 4px;font:600 11px IBM Plex Sans Condensed,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.newset .seg,.feedseg{margin-bottom:4px}.newset input{width:100%}.sheet.runner h2{font-size:22px}.runtv{border-top:1px solid var(--rule);padding:10px 0 4px}.runtvhead{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;margin-bottom:8px}.runtvhead .pill.held{color:var(--st-issue);border-color:var(--st-issue)}.runhold{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-left:3px solid var(--st-issue);background:var(--panel-2);font-size:13.5px}.runhold .btn{flex:none;min-height:40px}.sheet.runner .muted{color:var(--ink-3);font-size:13px}.sweeppanel{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:10px 0;margin:10px 0;display:flex;flex-direction:column;gap:8px}.sweephead{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-size:13px;color:var(--ink-2)}.sweephead b{color:var(--ink);font-size:14px}.sweeppanel .statusgrid button{min-height:44px}.sweeppanel .sw{width:10px;height:10px;border-radius:2px;flex:none}.sweeppanel input{width:100%}.sweepowner{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.sweepowner button{min-height:36px;padding:0 12px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}.sweepowner button.on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.probrow .owner{flex:none;align-self:center;font-size:12px;padding:2px 8px;border:1px solid var(--rule);border-radius:10px;color:var(--ink-2);white-space:nowrap}.sweepprobs{padding:16px 20px 40px;max-width:760px}.probhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.probhead h2{margin:0;font-size:20px}.probhead .seg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.probdeck h3{margin:18px 0 6px;font:700 16px/1 Barlow Condensed,sans-serif;letter-spacing:.05em;text-transform:uppercase}.probdeck h3 span{color:var(--ink-3);margin-left:6px}.probrow{display:flex;align-items:stretch;gap:8px;border:1px solid var(--rule);border-left:4px solid;background:var(--panel);margin-bottom:6px}.probmain{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px 10px;background:none;border:0;color:var(--ink-2);font-size:13px;cursor:pointer;min-height:48px}.probmain b{font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}.probrow .btn{align-self:center;margin-right:8px}.runnotes{white-space:pre-line;font-size:13px;line-height:1.4;padding:8px 10px;background:var(--panel-2);border-radius:3px;margin-bottom:8px;max-height:30vh;overflow:auto}.sheet.runner textarea{width:100%}.gatebtns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.gatebtns button{min-height:44px;padding:6px 4px;border:1px solid var(--rule);border-radius:4px;background:var(--panel);color:var(--ink);font:600 13px/1.1 Barlow Condensed,sans-serif;letter-spacing:.03em;text-transform:uppercase;cursor:pointer}.gatebtns button.on{color:#fff}.gatebtns button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--ink)}.gatebtns button:disabled{opacity:.45;cursor:default}.fieldwarn{margin:4px 0 0;padding:6px 9px;border-left:3px solid var(--st-issue);background:var(--panel-2);color:var(--ink);font-size:12.5px;line-height:1.35}input[aria-invalid=true]{border-color:var(--st-issue);box-shadow:0 0 0 1px var(--st-issue)}.rowitem .no.venue{width:auto;max-width:42%;font:600 13px/1.2 Barlow Condensed,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet h2.venue{font-family:Barlow Condensed,sans-serif;font-size:20px}.unitmeta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--ink-3);font-family:JetBrains Mono,monospace;margin:-2px 0 6px}.btn.stays{color:var(--st-done);border-color:var(--st-done)}.buildbadge{position:fixed;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;border:1px solid var(--rule);background:color-mix(in srgb,var(--panel) 85%,transparent);backdrop-filter:blur(6px);font-size:11px;line-height:1;color:var(--ink);opacity:.75;user-select:none;pointer-events:none}.buildbadge:hover{opacity:1}.buildbadge i{width:6px;height:6px;border-radius:50%;background:var(--st-pending)}.buildbadge.production i{background:var(--st-done)}.buildbadge.preview i{background:var(--st-progress)}.buildbadge b{font-weight:600}.buildbadge span{font-family:JetBrains Mono,ui-monospace,monospace;color:var(--ink-2)}.planwrap .zoomctl,.viewport .zoomctl{bottom:max(44px,calc(env(safe-area-inset-bottom) + 30px))}.toolbar .tabpick{margin:0}.infocard .infohead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.infocard .infohead h3{margin:0}.infogrid{max-height:calc(100vh - 250px);overflow:auto;border:1px solid var(--rule)}table.grid{width:max-content;min-width:100%}table.grid td{white-space:pre-wrap;max-width:420px;vertical-align:top;font-size:12.5px;padding:5px 8px;border-right:1px solid var(--rule-2)}table.grid td:last-child{border-right:none}table.grid td.rn{color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:11px;text-align:right;background:var(--panel-2);position:sticky;left:0;z-index:1}table.grid tr.hdr td{position:sticky;top:0;background:var(--panel-2);font-weight:600;z-index:2}table.grid tr.hdr td.rn{z-index:3}.alldecks{flex:1;overflow:auto;padding:10px 12px 44px}.deckpage{margin:0 auto 16px;max-width:1400px}.deckpage header{display:flex;align-items:baseline;gap:10px;padding:0 2px 5px}.decklink{background:none;border:0;padding:0;cursor:pointer;color:var(--ink);font:600 15px/1.2 IBM Plex Sans Condensed,sans-serif;letter-spacing:.02em}.decklink:hover{color:var(--accent);text-decoration:underline}.deckpage .tally{color:var(--ink-3);font-size:12px}.deckpage .tally .tside b{color:var(--ink-2);font-weight:600}.deckpage .pct{margin-left:auto;font:600 13px IBM Plex Mono,monospace;color:var(--ink-2)}.deckmini{display:block;position:relative;width:100%;padding:0;overflow:hidden;aspect-ratio:5364 / 729;cursor:pointer;background:var(--panel);border:1px solid var(--rule);border-radius:6px}.deckmini:hover{border-color:var(--accent)}.deckmini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.deckmini .minisheet,.deckmini .miniplan{position:absolute;inset:0;width:100%;height:100%}.deckmini .hull{fill:none;stroke:var(--hull-line);stroke-width:3}.deckmini .room-blank{fill:none;stroke:var(--hull-line);stroke-width:1.4}.deckmini .room{stroke:var(--room-line);stroke-width:1.4}.deckmini .room.dim,.deckmini .dim{opacity:.12}.deckmini .room.split{fill:transparent}.deckmini .slice{stroke:var(--room-line);stroke-width:.8}.deckmini .room:hover{filter:brightness(1.15)}.minideck{position:absolute;top:4px;right:10px;pointer-events:none;font:600 13px/1 IBM Plex Sans Condensed,sans-serif;letter-spacing:.14em;color:var(--ink-3)}.minitip{position:fixed;left:0;top:0;z-index:40;pointer-events:none;opacity:0;background:var(--ink);color:var(--paper);border-radius:3px;padding:3px 7px;font:600 12px IBM Plex Mono,monospace;white-space:pre}.minitip.on{opacity:1}.pubsets{border-top:1px solid var(--rule);padding:10px 14px 16px;max-height:34vh;overflow:auto}.pubsets h4{margin:0 0 8px;font:600 13px IBM Plex Sans Condensed,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.pubsets h4 .n{margin-left:8px;font:600 12px IBM Plex Mono,monospace;color:var(--ink-3)}.pubsets ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.pubsets li button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--rule);border-radius:5px;padding:6px 8px;color:var(--ink)}.pubsets li button:hover{border-color:var(--accent)}.pubsets .nm{flex:1;font-size:13px}.pubsets .lbl{font:600 11px IBM Plex Mono,monospace;color:var(--ink);background:var(--panel-2, var(--rule));border-radius:3px;padding:1px 5px}.pubsets .tvs,.pubsets .st{font:600 11px IBM Plex Mono,monospace;color:var(--ink-3)}.pubsets .muted{color:var(--ink-3);font-size:12px;margin:0}.tvpin{cursor:pointer}.tvpin .spot{fill:var(--ink);stroke:var(--paper);stroke-width:1.2}.tvpin .stalk{stroke:var(--ink);stroke-width:1.6;stroke-linecap:round}.tvpin .screen{stroke:var(--ink);stroke-width:1.4}.tvpin .glass{fill:#ffffff47}.tvpin text{font:600 9px Barlow Condensed,sans-serif;letter-spacing:.03em;fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.tvpin text.tag{font:700 8.5px Barlow Condensed,sans-serif;letter-spacing:0;fill:#fff;stroke:#0009;stroke-width:1.6px}.tvpin .feed rect{fill:var(--paper);stroke:var(--ink);stroke-width:.9}.tvpin .feed text{font:700 6.2px IBM Plex Mono,monospace;fill:var(--ink);stroke:none;text-anchor:start;letter-spacing:0}.tvpin:hover .screen{filter:brightness(1.1)}.tvpin.held .screen{stroke:var(--st-issue);stroke-width:2.2;stroke-dasharray:3 2}.tvpin.dim{opacity:.12}.tvpin.flash .screen{animation:pinflash .8s ease 3}@keyframes pinflash{50%{stroke:var(--accent);stroke-width:5}}@media (prefers-reduced-motion: reduce){.tvpin.flash .screen{animation:none;stroke:var(--accent);stroke-width:4}}.overlay.pins{overflow:visible;pointer-events:none}.overlay.pins .tvpin{pointer-events:auto}.viewport.placing{cursor:crosshair}.viewport.placing .overlay polygon,.viewport.placing .tvpin{pointer-events:none}.pubsets li button .act{font:600 11px IBM Plex Mono,monospace;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;white-space:nowrap}.pubsets li button .act.todo{color:var(--ink-3);border-color:var(--rule)}.pubsets li button.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.rowitem .mapbtn{font:600 11px IBM Plex Mono,monospace;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;cursor:pointer;white-space:nowrap}.rowitem .mapbtn:hover{background:var(--accent);color:#fff}.pinbtns{margin:0 0 12px}.ro .sheet .pinbtns .btn.locate{pointer-events:auto;opacity:1}.loginbox .linkbtn{display:block;width:100%;margin-top:12px;padding:4px;background:none;border:none;cursor:pointer;color:var(--accent);font-size:13px;text-align:center;text-decoration:underline;text-underline-offset:2px}.loginbox .linkbtn:hover{color:var(--ink)}.loginbox label.check{display:flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font:500 13px system-ui,sans-serif;color:var(--ink-2);margin:-4px 0 14px}.loginbox label.check input{width:auto;margin:0}.loginbox a.btn{display:block;text-decoration:none}.issuebtn{font:600 12px/1 Barlow,sans-serif;color:var(--st-issue);border:1px solid var(--st-issue);border-radius:999px;padding:4px 9px;background:transparent;white-space:nowrap;cursor:pointer}.issuelist .issue{padding:10px 12px;border-bottom:1px solid var(--rule-2);display:grid;gap:4px}.issuelist .issue:last-child{border-bottom:none}.issuelist .head{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--ink-3)}.issuelist .kind{font:600 11px/1.2 Barlow Condensed,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--st-issue)}.issuelist .issue.kept .kind{color:var(--st-progress)}.issuelist .title{font-weight:600;font-size:13.5px}.issuelist .detail{font-size:12.5px;color:var(--ink-2);line-height:1.4}.issuelist .acts{display:flex;gap:6px;margin-top:4px}.heldbox{margin-top:12px;padding:10px 12px;border:1px solid var(--st-progress);border-radius:3px;display:grid;gap:8px;font-size:12.5px}.heldbox p{margin:0;color:var(--ink-2)}.heldbox .btn{justify-self:start}.keepbox{margin-top:12px;padding:10px 12px;border:1px solid var(--st-progress);border-radius:3px;display:grid;gap:6px}.keepbox h4.subhead{margin-top:0}.keepbox p{margin:0}.keepbox label.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.35}.keepbox label.check input{width:auto;margin:2px 0 0;flex:none}.signinbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--st-progress);color:var(--ink);font-size:13px;background:var(--panel)}.signinbar span{flex:1 1 240px}.handover .seg{flex-wrap:wrap;margin:6px 0}.handover .seg i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.handacts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.handtitle{margin:16px 0 6px;font:700 16px/1 Barlow Condensed,sans-serif;letter-spacing:.05em;text-transform:uppercase}.handtitle span{color:var(--ink-3)}.handrow{display:flex;gap:12px;border:1px solid var(--rule);background:var(--panel);padding:8px 10px;margin-bottom:6px}.handcab{flex:none;width:70px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-3)}.handcab b{font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}.handnotes{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--ink-2)}.handnotes b{color:var(--ink);font-weight:600}
