:root{--bg: #1a2733;--panel: #243443;--panel-2: #2c3f50;--ink: #e8eef3;--muted: #9fb2c2;--accent: #e8533a;--accent-gold: #f1c40f;--ok: #6fcf6f;--line: #3a4f63}*{box-sizing:border-box}.panel-divider{display:none}body{margin:0;overflow-x:clip;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#app{max-width:520px;margin:0 auto;padding:16px}header h1{margin:0;font-size:1.5rem}.header-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}header h1:first-letter{color:var(--accent)}h2{font-size:1.05rem;margin:1.5rem 0 .5rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.muted{color:var(--muted);margin:.25rem 0}fieldset{border:1px solid var(--line);border-radius:10px;background:var(--panel);margin:0 0 12px;padding:12px}legend{padding:0 6px;color:var(--accent);font-weight:600}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted);margin-bottom:10px}label.check{flex-direction:row;align-items:center;gap:8px}label.check input{width:auto}.setup{display:flex;flex-wrap:wrap;gap:12px}.setup>label{flex:1 1 120px;min-width:0}.setup>label:first-child{flex-basis:100%}.setup>label:first-child select{width:auto;min-width:100%}.scenario-picker{display:block;min-width:0;max-width:560px}.scenario-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:4px;padding:6px 8px;text-align:left;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);cursor:pointer;font:inherit}.scenario-picker-trigger:hover:not(:disabled){border-color:var(--accent)}.scenario-picker-trigger:disabled{opacity:.55;cursor:default}.scenario-picker-value{white-space:normal;overflow-wrap:anywhere;min-width:0}.scenario-picker-caret{color:var(--muted);font-size:.8rem;flex:0 0 auto}.scenario-picker-menu{margin-top:4px;border:1px solid var(--line);border-radius:6px;background:var(--panel);max-height:46vh;overflow-y:auto}.scenario-group+.scenario-group{border-top:1px solid var(--line)}.scenario-group-header{display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:none;background:none;padding:6px 8px;cursor:pointer;color:var(--ink);font:inherit}.scenario-group-header:hover{color:var(--accent)}.scenario-group-caret{color:var(--muted);font-size:.8rem}.scenario-group-title{font-weight:600;font-size:.85rem}.scenario-group-count{color:var(--muted);font-size:.75rem;margin-left:auto}.scenario-group-list{display:flex;flex-direction:column;padding:0 0 4px}.scenario-option{text-align:left;border:none;background:none;padding:4px 8px 4px 26px;cursor:pointer;color:var(--muted);font:inherit;font-size:.85rem;white-space:normal;overflow-wrap:anywhere;text-indent:-.9em;padding-left:calc(26px + .9em)}.scenario-option:hover{color:var(--ink);background:#ffffff0f}.scenario-option.is-selected{color:var(--ink);font-weight:600}.vs-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#1e2c3a,var(--bg));padding:12px 12px 14px;margin-bottom:12px}#app.round-active .vs-card{display:none}.vs-card-kicker{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:10px}.vs-victory{margin-top:10px;padding:.4rem .6rem;border-radius:5px;background:color-mix(in srgb,var(--accent) 12%,transparent);border-left:3px solid var(--accent);display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline;line-height:1.35}.vs-victory-label{font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;color:var(--accent);white-space:nowrap}.vs-victory-text{color:var(--ink)}.status-victory{margin:.15rem 0 0;font-size:.85rem;color:var(--ink)}.status-victory-header{display:flex;align-items:baseline;gap:6px;width:100%;text-align:left;border:none;background:none;padding:4px 0;cursor:pointer;font-size:inherit;font-family:inherit}.status-victory-caret{color:var(--muted);font-size:.75rem}.status-victory-label{font-weight:700;color:var(--accent)}.status-victory-body{margin:.15rem 0 0}.vs-matchup{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch}.vs-side{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;min-width:0}.vs-you{border-left:3px solid #4a90d9}.vs-bot{border-right:3px solid var(--accent)}.vs-side.vs-blue{--side-accent: #4a90d9}.vs-side.vs-red{--side-accent: var(--accent)}.vs-you.vs-blue,.vs-you.vs-red{border-left:3px solid var(--side-accent)}.vs-bot.vs-blue,.vs-bot.vs-red{border-right:3px solid var(--side-accent)}.vs-tag{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;line-height:1.2;margin-bottom:5px}.vs-you .vs-tag{color:#4a90d9}.vs-bot .vs-tag{color:var(--accent)}.vs-side.vs-blue .vs-tag,.vs-side.vs-red .vs-tag{color:var(--side-accent)}.vs-nation{font-size:1.1rem;font-weight:700;line-height:1.15;color:var(--ink)}.vs-roster{color:var(--muted);font-size:.82rem;margin-top:4px}.vs-chips{margin-top:8px}.vs-chip{display:inline-block;font-size:.72rem;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);text-transform:capitalize}.vs-threat{border-color:var(--accent);color:var(--accent);font-weight:600}.vs-badge{display:flex;align-items:center;justify-content:center;width:44px}.vs-badge span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font-weight:800;font-size:.85rem;letter-spacing:.05em}@media(max-width:380px){.vs-matchup{grid-template-columns:1fr;gap:8px}.vs-badge{width:auto;height:8px}.vs-bot{border-right:none;border-left:3px solid var(--accent)}.vs-bot.vs-blue,.vs-bot.vs-red{border-right:none;border-left:3px solid var(--side-accent)}}.setup-bot-collapse{flex:1 1 100%;border:1px dashed var(--line);border-radius:6px;padding:6px 10px}.setup-bot-collapse>summary{cursor:pointer;color:var(--muted);font-size:.85rem;list-style:none;display:flex;align-items:center;gap:6px;width:fit-content}.setup-bot-collapse>summary::-webkit-details-marker{display:none}.setup-bot-collapse>summary:before{content:"▸";font-size:.8em;transition:transform .15s ease}.setup-bot-collapse[open]>summary:before{transform:rotate(90deg)}.setup-bot-collapse-body{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.setup-bot-collapse-body>label{flex:1 1 120px;min-width:0;margin-bottom:0}.rules ul{margin:0;padding-left:1.2rem;color:var(--muted);font-size:.85rem}fieldset.plane.blue{border-left:3px solid #4a90d9}fieldset.plane.blue legend{color:#4a90d9}fieldset.plane.red{border-left:3px solid var(--accent)}fieldset.plane.red legend{color:var(--accent)}fieldset.plane.target{border-left:3px solid var(--ok)}.force-totals{display:flex;flex-wrap:wrap;gap:4px 16px;margin:4px 0 10px}.force-total{margin:0;font-size:.85rem;font-variant-numeric:tabular-nums}.force-total.blue{color:#4a90d9}.force-total.red{color:var(--accent)}.row.plane-cost{margin-top:2px}.plane-cost-value{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.play-controls{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;z-index:30;max-height:70vh;overflow-y:auto}.play-controls>.walk{margin:0}.activation-picker{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 6px}.activation-picker-label{font-size:.8rem}.activation-pick{font-size:.8rem;padding:2px 10px;border-radius:999px;border:.5px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}.activation-pick:hover:not(:disabled){border-color:var(--accent)}.activation-pick:disabled{opacity:.55;cursor:default}.activation-pick.active{background:var(--accent);color:#fff;border-color:var(--accent);cursor:default}.setup-drawer{display:flex;align-items:stretch}.setup-drawer-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:34px;min-height:120px;flex:0 0 auto;border:.5px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer}.setup-drawer-toggle:hover{color:var(--ink);border-color:var(--accent)}.setup-drawer-label{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);font-size:.85rem;letter-spacing:.03em;text-transform:uppercase}.setup-drawer-caret{font-size:1.1rem;line-height:1}.setup-drawer-body{display:none;flex:1 1 auto;min-width:0;margin-left:8px;padding:10px 12px;border:.5px solid var(--line);border-radius:8px;background:var(--panel);max-height:88vh;overflow-y:auto}#app.drawer-open .setup-drawer-body{display:block}@media(max-width:1023px){.setup-drawer{flex-direction:column}.setup-drawer-toggle{width:auto;min-height:0;flex-direction:row;padding:6px 12px}.setup-drawer-label{writing-mode:horizontal-tb;transform:none}.setup-drawer-body{margin-left:0;margin-top:8px;max-height:none}}.rule-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0}.rule-chip{font-size:.72rem;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;white-space:nowrap}.beta-rules{border-left:2px dashed var(--muted);padding-left:8px}.beta-rules-note{font-size:.8rem;font-style:italic;margin:2px 0 6px}.special-rules-line{margin-top:6px}.special-rules-header{display:flex;align-items:baseline;gap:6px;width:100%;text-align:left;border:none;background:none;padding:4px 0;cursor:pointer;color:var(--ink)}.special-rules-caret{color:var(--muted);font-size:.8rem}.special-rules-title{font-weight:600;font-size:.85rem}.special-rules-preview{color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.special-rules-list{margin:2px 0 6px;padding-left:18px;font-size:.85rem;color:var(--muted)}.victory-line{margin:0;font-size:1rem;font-weight:700}.victory-line .status-label{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:.8rem;letter-spacing:.04em}.setup-controls{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.setup-controls .spectator-controls{flex-direction:row;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:0;margin-left:auto}.victory .result{margin:0;font-size:1.1rem;font-weight:700}.victory .result.us-decisive,.victory .result.us-victory{color:#4a90d9}.victory .result.japan-decisive,.victory .result.japan-victory{color:var(--accent)}.victory .result.tie,.victory .result.ongoing{color:var(--muted)}.row{display:flex;gap:12px}.row>label{flex:1}.glide-release-row,.carpet-declare-row{flex-wrap:wrap;align-items:center;gap:8px}.glide-release-row>label.check,.carpet-declare-row>label.check{flex:1 1 100%;align-items:flex-start;margin-bottom:0;line-height:1.35}.glide-release-row>label.check input,.carpet-declare-row>label.check input{flex:0 0 auto;margin-top:2px}.glide-release-row>select{flex:0 1 auto;max-width:100%}.drop-declare-row{display:block;margin:8px 0;padding:8px 10px;border-left:3px solid rgb(230,150,60);background:#e6963c1a;border-radius:4px}.drop-declare-row .drop-offer-note{margin:0 0 6px;font-weight:600}.drop-declare-row .drop-offer-row{flex-wrap:wrap;gap:6px}.drop-declare-row .drop-declared{margin:0 0 6px;font-weight:600}.drop-declare-row .drop-held-warning{margin:0;line-height:1.35}.ground-attack.drop-locked{font-weight:600}.move-compose-controls,.move-commit-controls{display:flex;flex-direction:column;gap:8px;margin:8px 0}select,input{font-size:1rem;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);width:100%}.order-card{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;margin-bottom:10px}.order-card h3{margin:0 0 6px;font-size:1rem}.order-card .move{margin:0 0 4px}.order-card .maneuver{margin:0 0 4px;color:var(--accent);font-size:.9rem}.order-card .fire{margin:0;color:var(--ok);font-weight:600}.order-card .gunner{margin:4px 0 0;color:var(--ok);font-size:.85rem}.order-card .ground-attack{margin:4px 0 0;color:var(--accent);font-size:.9rem;font-weight:600}.order-card .tail{margin:4px 0 0;color:var(--muted);font-size:.85rem;font-style:italic}.map-view{position:relative}.phase-banner{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;padding:.4rem .6rem;margin-bottom:.4rem;border-radius:6px;font-size:.9rem}.phase-banner .phase-tag{font-weight:700;letter-spacing:.02em}.phase-banner .phase-detail{opacity:.85}.phase-banner.setup{background:#4a90d929;border:1px solid rgba(74,144,217,.5)}.phase-banner.setup .phase-tag{color:#6db0f0}.phase-banner.live{background:#f1c44024;border:1px solid rgba(241,196,64,.55)}.phase-banner.live .phase-tag{color:#f1c40f}.phase-banner .phase-mode{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.08rem .4rem;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);opacity:.9;white-space:nowrap}.map.dim-inactive .tokens .token:not(.active){opacity:.8}.zone-warn{margin:6px 0;padding:8px 12px;border-radius:6px;background:#b43c2829;border:1px solid rgba(200,80,60,.6);color:var(--text, #eee);font-weight:600}.net-locked{opacity:.55}.net-alert{margin:0 0 .5rem;padding:8px 12px;border-radius:6px;font-weight:600;line-height:1.35}.net-alert-error,.net-panel .net-status-error{background:#b43c282e;border:1px solid rgba(220,90,70,.75);color:var(--ink, #e8eef3)}.net-alert-error{border-left-width:5px;animation:net-alert-flash .9s ease-out 1}@keyframes net-alert-flash{0%{background:#dc5a468c}to{background:#b43c282e}}@media(prefers-reduced-motion:reduce){.net-alert-error{animation:none}}.net-alert-info,.net-panel .net-status-info{background:#c8962829;border:1px solid rgba(220,175,70,.6);color:var(--ink, #e8eef3)}.net-alert-info{border-left-width:5px}.net-panel .net-status{margin:.35rem 0;padding:6px 10px;border-radius:6px;border:1px solid var(--line, #3a4f63);color:var(--muted, #9fb2c2)}.net-panel .net-status-connected{border-color:#6fcf6f99;color:var(--ok, #6fcf6f)}.net-panel .net-status-error,.net-panel .net-status-info{font-weight:600}.net-panel .net-seat-grid{display:flex;gap:14px;align-items:flex-start}.net-panel .net-seat-col{flex:1 1 0;min-width:0}.net-panel .net-seat-col-head{display:block;color:var(--muted, #9fb2c2);font-size:.85rem;border-bottom:1px solid var(--line, #3a4f63);padding-bottom:2px;margin-bottom:2px}.net-panel .net-seat-pip{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--seat-color, var(--muted, #9fb2c2));box-shadow:0 0 0 1px #00000073}.net-panel .net-seat-row.is-offline .net-seat-pip,.net-panel .net-seat-row.is-open .net-seat-pip{opacity:.4}.net-panel .net-identity{display:flex;align-items:center;gap:6px;margin:.35rem 0}.net-panel .net-name-label{color:var(--muted, #9fb2c2)}.net-panel .net-name-input{flex:1 1 auto;min-width:0}.net-panel .net-leave-controls,.net-recover-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.net-panel .net-leave-prompt,.net-recover-note{font-size:.9rem}.net-panel button.net-leave{border:1px solid var(--accent, #e8533a);border-radius:8px;background:var(--panel-2, #2c3f50);color:var(--accent, #e8533a);padding:6px 12px;cursor:pointer}.net-panel button.net-leave:hover{background:var(--accent, #e8533a);color:var(--panel, #243443)}.net-panel button.net-leave-yes,.net-recover-controls button.net-recover-planes,.net-recover-controls button.net-recover-captain{border-color:var(--accent, #e8533a);color:var(--accent, #e8533a)}.net-recover-controls button.net-recover-excuse{border-color:var(--muted, #8b949e);color:var(--muted, #8b949e)}.net-redo-controls{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px}.net-redo-controls button{border:1px solid var(--line);border-radius:8px;background:var(--panel-2, #2c3f50);color:var(--ink);padding:6px 12px;cursor:pointer;font-size:.9rem;white-space:nowrap}.net-redo-controls .net-redo-note{font-size:.9rem;color:var(--muted, #8b949e);max-width:16rem;text-align:right}.net-redo-controls button.net-redo-ask{border-color:var(--accent, #e8533a);color:var(--accent, #e8533a)}.net-redo-controls button.net-redo-ask:hover,.net-redo-controls button.net-redo-allow:hover{background:var(--accent, #e8533a);color:var(--panel, #243443)}.net-redo-controls button.net-redo-allow{border-color:var(--accent, #e8533a);color:var(--accent, #e8533a)}.net-redo-controls button.net-redo-refuse,.net-redo-controls button.net-redo-dismiss{border-color:var(--muted, #8b949e);color:var(--muted, #8b949e)}.net-panel .net-seat-row,.net-panel .net-split-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.net-panel .net-seat-table{background:#000;border:1px solid var(--line, #2a3a47);border-radius:6px;padding:.35rem .5rem .5rem;margin:.4rem 0}.net-panel .net-seat-table h4,.net-panel .net-ownership h4{margin:.6rem 0 .2rem;font-size:.95rem}.net-panel .net-seat-table h4{margin-top:.2rem}.net-panel .net-seat-number{flex:0 0 auto;min-width:1ch;color:var(--muted, #9fb2c2);font-variant-numeric:tabular-nums;font-size:.85rem}.net-panel .net-seat-captain{flex:0 0 auto;color:var(--accent-gold, #f1c40f);font-size:.8rem;line-height:1;cursor:default}.net-panel .net-seat-row{padding:2px 0}.net-panel .net-seat-row.is-you .net-seat-name{font-weight:600}.net-panel .net-seat-row.is-open .net-seat-name,.net-panel .net-seat-row.is-offline .net-seat-name{color:var(--muted, #9fb2c2)}.net-panel .net-split-subhead{margin:.4rem 0 .1rem;color:var(--muted, #9fb2c2);font-size:.85rem}.net-panel .net-split-plane{flex:1 1 auto;min-width:0}.net-panel .net-room-lock[aria-pressed=true]{border-color:var(--ok, #6fcf6f);color:var(--ok, #6fcf6f);font-weight:600}.net-panel .net-ownership-select{width:auto;padding:2px 6px;font-size:.85rem;border:1px solid var(--line, #3a4b5c);border-radius:6px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8edf2)}.net-panel .net-ownership-select:disabled{opacity:.6;cursor:not-allowed}.net-panel .net-you-fly{margin:.4rem 0}.status-main{flex:1 1 320px;min-width:0}.status-main .victory-line{display:inline}.status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.status-row .victory-line{margin:0}.target-roster{margin:.4rem 0 .2rem;font-size:.85rem}.target-roster>.roster-heading{cursor:pointer;color:var(--muted);font-weight:600;letter-spacing:.02em}.target-roster .roster-list{list-style:none;margin:.3rem 0 0;padding:0;display:flex;flex-flow:row wrap;gap:.25rem .35rem}.roster-target{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.1rem .45rem;border-left:3px solid var(--line);background:var(--panel-2);border-radius:3px;flex:1 1 auto;min-width:8.5rem;max-width:15rem}.roster-target.side-blue{border-left-color:#4a90d9}.roster-target.side-red{border-left-color:#c0392b}.roster-name{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-target:hover .roster-name,.roster-target.selected .roster-name{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.roster-target:hover,.roster-target.selected{box-shadow:0 0 0 1px var(--accent);cursor:default}.roster-hp{flex:none;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.roster-stage{flex:none;font-size:.75rem;font-weight:600;padding:.02rem .4rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.roster-stage.stage-undamaged{color:var(--muted)}.roster-stage.stage-damaged{color:#12100a;background:#e0a12f}.roster-stage.stage-critical{color:#12100a;background:#e0762f}.roster-stage.stage-destroyed{color:#fff;background:#8b2b1f}.roster-target.stage-destroyed .roster-name,.roster-target.stage-destroyed .roster-hp{color:var(--muted);text-decoration:line-through}.spectator-controls,.net-setup-controls{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;margin-bottom:.6rem}.net-setup-controls .spectator-group-label{font-size:.8em;font-weight:600;letter-spacing:.02em;color:var(--muted, #9a9488);text-transform:uppercase}.net-setup-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.net-setup-row>label{display:inline-flex;flex-direction:row;align-items:center;gap:.35rem;margin-bottom:0;white-space:nowrap;font-size:.85em}.net-map-readonly{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}.net-map-readonly .net-map-hostonly{font-size:.8em}.spectator-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.spectator-controls button.watching{background:var(--accent);color:#12100a}.spectator-controls .spectator-group-label{font-size:.8em;font-weight:600;letter-spacing:.02em;color:var(--muted, #9a9488);text-transform:uppercase}.spectator-controls .spectator-step-label{font-size:.85em}.spectator-controls .spectator-speed-label{display:inline-flex;flex-direction:row;align-items:center;gap:.35rem;margin-bottom:0;white-space:nowrap;font-size:.85em}.spectator-controls .spectator-speed{width:auto;flex:0 0 auto;max-width:9rem;font-size:13.3333px;padding:6px 12px;line-height:normal}.status-side{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.build-stamp{font-size:.68em;font-weight:400;line-height:1;letter-spacing:.01em;opacity:.65;white-space:nowrap;font-variant-numeric:tabular-nums}.record-upload.upload-ok{border-color:var(--ok, #6fcf6f);color:var(--ok, #6fcf6f)}.record-upload.upload-fail{border-color:var(--accent, #e8533a);color:var(--accent, #e8533a)}.restart-controls{display:flex;justify-content:flex-end;flex-wrap:wrap;align-items:center;gap:6px 8px}.restart-controls .restart-confirm-prompt{flex:1 1 14rem;min-width:0;max-width:26rem;text-align:right;font-size:.8em;line-height:1.35}.restart-controls button.restart-game{background:transparent;color:var(--muted, #9a9488);border:1px solid var(--line);padding:5px 12px;font-size:.85em}.restart-controls button.restart-game:hover{color:#b23a3a;border-color:#b23a3a}.restart-controls .restart-note{margin:0;font-size:.8em;text-align:right;max-width:12rem}.map{display:block;width:100%;min-height:60vh;max-height:80vh;background:#2d4a3e;border:1px solid var(--line);border-radius:6px;touch-action:none;cursor:grab}.map:active{cursor:grabbing}@media(max-width:1023px){.map{min-height:0}}.map-reset{padding:2px 8px;font-size:.8rem;color:#fff;background:#141414b8;border:1px solid var(--line);border-radius:4px;cursor:pointer}.map-reset:hover{background:#141414e6}.map-reset.is-inert{visibility:hidden}.compass{position:absolute;right:8px;top:52px;background:#1414148c;border-radius:50%;pointer-events:none}.compass-ring{fill:none;stroke:#ffffff73;stroke-width:1}.compass-needle{stroke:#ffffff8c;stroke-width:1.5}.compass-needle.cardinal{stroke:var(--accent);stroke-width:2}.compass-label{fill:#ffffffb3;font-size:8px;font-weight:600}.compass-label.cardinal{fill:var(--accent)}.map .hex{fill:transparent;stroke:#ffffff2e;stroke-width:1;cursor:pointer;pointer-events:all}.map .hex:hover{fill:#f1c4402e}.map .hex.expansion{fill:#7890a81a;stroke:#a0b4c859;stroke-dasharray:3 3}.map .hex.expansion:hover{fill:#f1c44024}.map .hex-label{fill:#ffffff73;pointer-events:none;-webkit-user-select:none;user-select:none}.map .token{pointer-events:none}.map .token.active circle{filter:drop-shadow(0 0 4px #f1c40f)}.map .token.draggable{pointer-events:auto;cursor:grab}.map .token.draggable:active{cursor:grabbing}.map .token.selected circle{filter:drop-shadow(0 0 4px #f1c40f)}.map .rotate-affordance{pointer-events:auto;cursor:pointer}.map .rotate-affordance:hover circle:not(.hit),.map .rotate-affordance:focus-visible circle:not(.hit){fill:#f1c40f}.map .rotate-affordance:hover text,.map .rotate-affordance:focus-visible text{fill:#1a1a1a}.map .arc-affordance{pointer-events:auto;cursor:pointer;opacity:.55}.map .arc-overlay-labels{pointer-events:none;-webkit-user-select:none;user-select:none}.map .arc-overlay-label-plate{fill:#101418d1;stroke:#ffffff47;stroke-width:.6}.map .arc-overlay-label-head{fill:#fffffff5;font-weight:700}.map .arc-overlay-label-line{fill:#e8eef4e6}.map .arc-affordance:hover,.map .arc-affordance:focus-visible{opacity:1;outline:none}.map .arc-affordance:hover circle:not(.hit),.map .arc-affordance:focus-visible circle:not(.hit){fill:#f1c40f}.map .arc-affordance:hover text,.map .arc-affordance:focus-visible text{fill:#1a1a1a}.map-backdrop{pointer-events:none}.map-view.has-3d .aircraft-marker{opacity:.15}.map-view.has-3d .preview-token .aircraft-marker,.map-view.has-3d .outcome-ghost .aircraft-marker,.map-view.has-3d .target-marker,.map-view.has-3d .target-damage-cue{opacity:0}.map-view.has-3d .target-label,.map-view.has-3d .skill-ring,.map-view.has-3d .damage-dot,.map-view.has-3d .owner-pip{display:none}.map-3d-layer{pointer-events:none}.map-3d-overlay{position:absolute;inset:0;pointer-events:none;z-index:6}.map-3d-inset{box-sizing:border-box;border:2px solid rgba(255,255,255,.55);border-radius:6px;box-shadow:0 4px 14px #0000008c;background:transparent;cursor:crosshair;z-index:7}.map-3d-rotate.inset{min-width:22px;height:22px;font-size:.82rem}.map-3d-rotate{min-width:26px;height:26px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:#141c24d1;color:#e8eef2;font-size:15px;line-height:1;cursor:pointer}.map-3d-rotate:hover,.map-3d-rotate:focus-visible{background:#283644f0}.map-3d-arc-cycle{min-width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:#141c24d1;color:#e8eef2;cursor:pointer}.map-3d-arc-cycle:hover,.map-3d-arc-cycle:focus-visible{background:#283644f0}.map-3d-toggle{margin-left:auto}.map-3d-toggle,.map-photo-toggle{font-size:.8rem;padding:2px 8px}.map .token .damage-ring,.map .token .skill-ring,.map .token .damage-dot{pointer-events:none}.map .token .destroyed-mark{pointer-events:none;font-weight:700}.map .token.destroyed{opacity:.55}.map .token.destroyed .destroyed-mark{fill:var(--accent);stroke:#1a1a1a;stroke-width:1.5px;paint-order:stroke;opacity:.95}.map .fire-markers{pointer-events:none}.map .fire-line{stroke-width:2.5;stroke-linecap:round;stroke-dasharray:6 4}.map .fire-target-ring{fill:none;stroke-width:3}.map .fire-line.hit{stroke:#f4d03f}.map .fire-target-ring.hit{stroke:#e24b4a}.map .fire-line.miss{stroke:#ffffff8c}.map .fire-target-ring.miss{stroke:#fff9}.map .fire-line.aa{stroke:#5fb0d6;stroke-dasharray:3 3}.map .fire-target-ring.aa{stroke:#5fb0d6}.map .fire-target-ring.aa.hit{stroke:#e24b4a}.map .token .moved-chip{pointer-events:none}.map .token .moved-chip circle{fill:#1e222ae6;stroke:#ffffffb3;stroke-width:1}.map .token .moved-chip-mark{fill:#fff;font-weight:700}.map .escaped-layer .escaped{pointer-events:none}.escaped-note{margin:.25rem 0 0;font-size:.85rem}.map .overlays .cell{stroke:none;pointer-events:none}.map .setup-zone.blue .cell{fill:#4a90d92e}.map .setup-zone.red .cell{fill:#e8533a2e}.map .exit-edge .cell{fill:#6fcf6f47}.map .exit-edge-active .cell{fill:#6fcf6f57;stroke:#3ad06a;stroke-width:2.5;stroke-dasharray:5 4;stroke-linejoin:round}.map .start-edge .cell{stroke-width:2.5;stroke-linejoin:round}.map .start-edge.blue .cell{fill:#4a90d94d;stroke:#4a90d9}.map .start-edge.red .cell{fill:#e8533a4d;stroke:var(--accent)}.map .egress-route .cell{fill:#f5e8424d;stroke:#ffe028f2;stroke-width:2;stroke-dasharray:9 5;stroke-linejoin:round}.map .legal-move .cell{fill:#6feb6f38;stroke:#1ea01ee6;stroke-width:1.5}.map .facing-arrow.reach-arrow{stroke:#fffffff2;stroke-width:1.2;paint-order:stroke}.map .facing-arrow.reach-arrow-1{fill:#282c34}.map .facing-arrow.reach-arrow-2{fill:#5dade2}.map .facing-arrow.reach-arrow-3{fill:#e69138}.map .facing-arrow.reach-arrow-4{fill:#82c878}.map .facing-arrow.reach-arrow-5{fill:#5abebe}.map .facing-arrow.reach-arrow-6{fill:#dc6e46}.map .facing-arrow.reach-arrow-7plus{fill:#aa82c8}.map .facing-arrow.reach-waypoint{opacity:.7;fill:#464e5c}.waypoint-glyph-disc{fill:#10141ad1;stroke:#0000008c;stroke-width:1}.waypoint-glyph{stroke:#0c1016e6;stroke-width:.7;stroke-linejoin:round}.waypoint-glyph.reach-glyph-turn{fill:#f0c846}.waypoint-glyph.reach-glyph-maneuver{fill:#c88ceb}.waypoint-glyph-disc.reach-glyph-turn{stroke:#f0c8468c}.waypoint-glyph-disc.reach-glyph-maneuver{stroke:#c88ceb8c}.reach-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0;font-size:.85em}.reach-key{display:inline-flex;align-items:center;gap:.25rem}.reach-swatch{display:inline-block;width:.9em;height:.9em;border-radius:2px;border:1px solid rgba(0,0,0,.3)}.reach-swatch.reach-1{background:#464a52}.reach-swatch.reach-2{background:#5dade2}.reach-swatch.reach-3{background:#e69138}.reach-swatch.reach-4{background:#82c878}.reach-swatch.reach-5{background:#5abebe}.reach-swatch.reach-6{background:#dc6e46}.reach-swatch.reach-7plus{background:#aa82c8}.reach-swatch.reach-waypoint{background:#464e5c}.reach-swatch-glyph{width:1.15em;height:1.15em;border:0;border-radius:0;background:none;overflow:visible;vertical-align:middle}.map .facing-arrow{pointer-events:none}.map .maneuver-success-arrow{fill:#50dc6ef2;stroke:#00280a80;stroke-width:.4}.map .maneuver-failure-arrow{fill:#e8533af2;stroke:#320a0080;stroke-width:.4}.map .move-path .cell{fill:#22252e8c;stroke:#bec4d066;stroke-width:1}.map .deploy-blocked .cell{fill:#dc3c3c38;stroke:#dc3c3ca6;stroke-width:1;stroke-dasharray:3 3}.map .barrage-hex .cell{fill:#ffaa0059;stroke:#ff8c00e6;stroke-width:1.2;stroke-dasharray:4 3}.map .glide-bomb-hex .cell{fill:#ff00804d;stroke:#dc006ee6;stroke-width:1.4}.map .cloud-hex .cell{fill:#ffffff47;stroke:#ffffff80;stroke-width:.75}.map .gunner-arc .cell,.map .mount-arc .cell{stroke-width:.9}.map .gunner-arc-short .cell,.map .mount-arc-short .cell{fill:#a8cbd66b;stroke:#78aabebf}.map .gunner-arc-medium .cell,.map .mount-arc-medium .cell{fill:#ddb0886b;stroke:#c48e5cbf}.map .gunner-arc-long .cell,.map .mount-arc-long .cell{fill:#c7dda56b;stroke:#9ebe70bf}.map .aa-ring-owner .cell{fill:none;stroke:#ffd666f2;stroke-width:2.4;pointer-events:none}.map .target.armed{filter:drop-shadow(0 0 6px rgba(255,214,102,.95))}.fire-decl:hover,.fire-decl:focus-visible{background:#ffffff0d;outline:none}.map .dive-run-hex .cell{fill:#78beff21;stroke:#78beff61;stroke-width:.75;stroke-dasharray:3 3}.dive-run-hint{margin:.3rem 0 0;font-size:.85em;line-height:1.35}.map .boom-zoom-marker .cell{fill:#dc3c284d;stroke:#dc3c28e6;stroke-width:1.5}.map .facing-arrow.boom-zoom-arrow{fill:#dc3c28;stroke:#fffffff2;stroke-width:1.2;paint-order:stroke}.boom-zoom-declare{margin:.4rem 0;padding:.4rem .5rem;border:1px solid rgba(220,60,40,.5);border-radius:6px;background:#dc3c2814;display:flex;flex-direction:column;gap:.35rem}.boom-zoom-declare .boom-zoom-hint{font-size:.85rem}.combat .fire-decl.boom-zoom-locked{border-left:2px solid rgba(220,60,40,.6);padding-left:.4rem}.map .scatter-marker .cell{fill:#f0962852;stroke:#f09628f2;stroke-width:1.5;stroke-dasharray:3 2}.map .maneuver-hex .cell{fill:#f0e68c4d;stroke:#f0e68cb3;stroke-width:1}.map .maneuver-success .cell{fill:#50dc6e73;stroke:#50dc6ecc;stroke-width:1}.map .maneuver-failure .cell{fill:#e8533a73;stroke:#e8533acc;stroke-width:1}.map .arc-short .cell{fill:#50dc6e52;stroke:#50dc6e8c;stroke-width:.75}.map .arc-medium .cell{fill:#f39c124d;stroke:#f39c1280;stroke-width:.75}.map .arc-long .cell{fill:#3498db4d;stroke:#3498db80;stroke-width:.75}.map .targets .target{pointer-events:none}.map .targets .target.draggable{pointer-events:auto;cursor:grab}.map .targets .target-label{pointer-events:none;fill:#fff;stroke:#000000d9;stroke-width:2.5px;paint-order:stroke;font-size:10px;font-weight:600}.map .targets .target-damage-cue{pointer-events:none;paint-order:stroke;filter:drop-shadow(0 0 2px rgba(0,0,0,.9)) drop-shadow(0 1px 1px rgba(0,0,0,.7))}.topnav{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.topnav button,.topnav-link{padding:4px 10px;font-size:.85rem;line-height:1.3;white-space:nowrap;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);cursor:pointer}.topnav button.nav-active{border-color:var(--accent);color:var(--accent)}.credit-line{margin:2px 0 8px;font-size:.9em;color:var(--ink);opacity:.85}.credit-line strong{color:var(--accent)}.about-screen,.feedback-screen{max-width:620px;margin:0 auto;padding:16px}.feedback-lead{color:var(--ink);opacity:.9}.feedback-note{width:100%;resize:vertical;font:inherit;padding:8px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink)}.feedback-version{font-size:.8em;margin-top:12px}.about-lead{color:var(--ink);opacity:.9}.credit-card{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:14px 16px;margin:16px 0}.credit-row{display:flex;gap:12px;padding:6px 0}.credit-row+.credit-row{border-top:1px solid var(--line)}.credit-label{min-width:96px;color:var(--ink);opacity:.7}.credit-value strong{color:var(--accent)}.about-note{color:var(--ink);opacity:.7;font-size:.9em}.about-beta{margin-top:18px;border-left:2px dashed var(--muted);padding-left:10px;font-size:.9em}.about-beta h3{margin:0 0 6px}.about-beta p{margin:8px 0}.about-beta-list{margin:4px 0 8px;padding-left:22px}.about-beta-list li{margin:6px 0}.about-link{display:inline-block;margin-top:4px;padding:8px 16px;border:1px solid var(--accent);border-radius:4px;background:var(--panel);color:var(--accent);text-decoration:none}.about-link:hover{background:var(--accent);color:var(--panel)}.topnav-link{text-decoration:none;display:inline-flex;align-items:center}.topnav-link:hover{border-color:var(--accent);color:var(--accent)}.lang-picker{position:relative;margin-left:auto}.lang-trigger{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit}.lang-trigger:hover{border-color:var(--accent)}.lang-caret{color:var(--muted);font-size:.8em}.lang-flag{display:inline-flex;width:22px;height:15px;flex:none;border:1px solid var(--line);border-radius:2px;overflow:hidden}.lang-flag svg{display:block;width:100%;height:100%}.lang-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:40;margin:0;padding:4px;list-style:none;min-width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;box-shadow:0 6px 18px #0006}.lang-option{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;white-space:nowrap;cursor:pointer}.lang-option:hover,.lang-option:focus-visible{background:var(--panel);outline:none}.lang-option[aria-selected=true]{color:var(--accent)}.sound-control{display:flex;align-items:center;gap:6px}.sound-field .sound-slider{flex:1 1 auto}.sound-toggle{padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;line-height:1}.sound-toggle:hover{border-color:var(--accent)}.sound-slider{width:80px;accent-color:var(--accent);cursor:pointer}.cards-screen button,.cards-screen .cf-actions button{padding:6px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);cursor:pointer}.cards-screen button:hover:not([disabled]){border-color:var(--accent)}.cards-screen button[disabled]{opacity:.5;cursor:not-allowed}.cf-rows{list-style:none;padding:0;margin:0 0 12px}.cf-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;margin-bottom:6px;background:var(--panel)}.cf-row-name{flex:1}.cf-row-name code,.cf-row code{color:var(--muted);font-size:.85em}.cf-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin:10px 0}.cf-actions>label{margin-bottom:0}.cf-header-fields{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.cf-field{display:flex;flex-direction:column;gap:2px}.cf-field span{color:var(--muted);font-size:.85em}.cf-columns-head,.cf-header-fields+h3{display:flex;align-items:center;gap:12px}.cf-grid{border-collapse:collapse;margin:8px 0 16px}.cf-grid th,.cf-grid td{border:1px solid var(--line);padding:4px 6px;text-align:left}.cf-grid th{color:var(--muted);font-weight:600;font-size:.85em}.cf-grid input{width:7em}.cf-gunner{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}.cf-gunner-arcs{display:flex;flex-wrap:wrap;gap:8px;flex-basis:100%;padding-left:8px}.cf-specialties{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 14px;margin-bottom:12px}.cf-specialties>.check{align-self:end;min-height:2.2em}.cf-errors{color:var(--accent);margin:4px 0 12px;padding-left:18px}.cf-ok{color:var(--ok)}.cf-editor{border-top:2px solid var(--line);margin-top:16px;padding-top:12px}.scen-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:8px}.scen-row .cf-field select,.scen-row .cf-field input{min-width:8em}.scen-lineup-row .cf-field:nth-child(1) select{min-width:240px}.scen-lineup-row .cf-field:nth-child(2) select{min-width:4.5em}.scen-target-row .cf-field input[type=text]{min-width:9em}.scen-target-row .cf-num input{min-width:5em;width:5em}.scen-row button.active{border-color:var(--accent);color:var(--accent);font-weight:700}.scen-editor-map .map{max-height:74vh}.scen-editor-map h3{margin-top:0}.deploy-screen select{max-width:100%}.deploy-editor-map .map{max-height:74vh}.deploy-editor-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.deploy-editor-row .deploy-editor-map{flex:1 1 60%;min-width:320px}.deploy-review{flex:0 1 200px;min-width:160px;border:1px solid var(--panel-2);border-radius:8px;padding:8px 10px;font-size:.85rem}.deploy-review h3{margin:0 0 6px;font-size:.95rem}.deploy-review h4{margin:8px 0 4px;font-size:.85rem}.deploy-review-blue h3{color:var(--blue, #4a90d9)}.deploy-review-red h3{color:var(--red, #c0392b)}.deploy-review-list{margin:0;padding-left:16px}.deploy-review-list li{margin:2px 0}.deploy-review-victory{margin-top:10px}.feedback-shot{margin:10px 0}.feedback-shot-thumb{display:block;max-width:260px;width:100%;height:auto;border:1px solid var(--line);border-radius:6px;margin:6px 0 8px}.deploy-add-preview{height:44px;width:44px;object-fit:contain;align-self:end;margin-bottom:2px}.model-preview-3d{display:inline-flex;align-items:flex-end;justify-content:center;width:44px;height:44px;align-self:end;margin-bottom:2px}.model-preview-3d>canvas.deploy-add-preview{margin-bottom:0}.map .targets .target.selected{filter:drop-shadow(0 0 5px #f1c40f)}.walk button{padding:6px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);cursor:pointer}.walk button:hover{border-color:var(--accent)}.combat{margin:8px 0}.fire-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.fire-decl{flex:1 1 auto;min-width:140px}.xor-locked{opacity:.5}.xor-locked select{cursor:not-allowed}.xor-note{display:block;font-size:.8em;font-style:italic}.fire-actions{display:flex;gap:6px}.fire-hit{color:var(--accent);font-weight:600}.fire-hit .fire-line-attack{color:var(--accent-gold)}.fire-line-save,.fire-line-save-point-saved{color:var(--ok)}.fire-line-save-point-failed{color:var(--accent)}.fire-line-save-point-saved,.fire-line-save-point-failed{padding-left:1.4em}.fire-line-total{color:var(--ink);font-weight:600}.fire-line-total-damage{color:var(--accent);font-weight:600}.fire-miss{color:var(--muted)}.combat-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.init-rolls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:end;margin-bottom:8px}.init-tie{font-weight:700;color:#12100a;background:#e0a12f;border-radius:4px;padding:.2rem .5rem;margin:0 0 8px}.init-row{display:flex;align-items:end;gap:8px;margin-bottom:0}.init-row label{margin-bottom:0}.preview-token{opacity:.6}.preview-token .rotate-affordance{opacity:1}.outcome-ghost{pointer-events:none}.outcome-ghost .outcome-ghost-body{opacity:.55}.outcome-ghost .skill-ring,.outcome-ghost .damage-dot,.outcome-ghost .token-label{display:none}.outcome-ghost .outcome-halo{stroke-width:3;opacity:.95}.outcome-ghost .outcome-badge{stroke:#0000008c;stroke-width:1}.outcome-ghost .outcome-badge-glyph{fill:#fff;font-weight:700}.outcome-ghost.maneuver-success-ghost{filter:drop-shadow(0 0 4px rgba(80,220,110,.95))}.outcome-ghost.maneuver-success-ghost .outcome-halo{stroke:#50dc6e}.outcome-ghost.maneuver-success-ghost .outcome-badge{fill:#26a04a}.outcome-ghost.maneuver-failure-ghost{filter:drop-shadow(0 0 4px rgba(232,83,58,.95))}.outcome-ghost.maneuver-failure-ghost .outcome-halo{stroke:#e8533a}.outcome-ghost.maneuver-failure-ghost .outcome-badge{fill:#c83723}.maneuver-outcomes{display:flex;flex-direction:column;gap:2px;margin:6px 0;font-size:.9em}.maneuver-success-text{color:#6fcf6f}.maneuver-failure-text{color:#e8533a}.speed-row{display:flex;align-items:center;gap:8px;margin:6px 0 10px}.speed-row button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.manual-toggle{display:inline-flex;margin:10px 0 6px;cursor:pointer}.tohit-breakdown{margin:2px 0 8px;font-size:.85em;color:var(--muted)}.attack-alt-hint{margin:-2px 0 8px;font-size:.8em;font-style:italic}.maneuver-panel{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.maneuver-panel h3{margin:0 0 6px;font-size:.95rem;color:var(--muted)}.walk .maneuver-panel button{padding:6px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);cursor:pointer}@media(min-width:1024px){#app{max-width:none;display:grid;grid-template-columns:300px 40px 1fr;grid-template-rows:auto auto auto 1fr;column-gap:16px;align-items:start;padding-right:40px}#app>header,#app>.prefs,#app>.target-place,#app>.play-host{grid-column:1}#app>header{grid-row:1}#app>.prefs{grid-row:2}#app>.target-place{grid-row:3}#app>.play-host{grid-row:4}#app>.setup-drawer{grid-column:2;grid-row:1 / span 10;align-self:stretch;position:relative;z-index:6}#app>.map-column{grid-column:3;grid-row:1 / -1;display:flex;flex-direction:column;min-width:0;min-height:0}#app>.map-column>.status-host{flex:0 0 auto;position:sticky;top:0;z-index:5;background:var(--bg);padding-bottom:4px;min-width:0}#app>.map-column>.map-host{flex:1 1 auto;min-height:0;min-width:0;position:relative}#app>.map-column>.map-host>.map-view{height:100%}#app>.map-column>.map-host .map{max-height:88vh}#app>.panel-divider{display:block;grid-column:1;grid-row:1 / span 10;justify-self:end;align-self:stretch;width:6px;margin-right:-8px;background:var(--panel-2);cursor:col-resize;z-index:3;border-radius:3px;transition:background-color .15s ease}#app>.panel-divider:hover,#app>.panel-divider:focus-visible{background:var(--accent, #4a90d9);outline:none}#app>header,#app>.prefs,#app>.play-host,#app>.map-column{min-width:0}#app.drawer-open .setup-drawer-body{position:absolute;top:0;left:48px;width:360px;z-index:4;box-shadow:0 4px 18px #00000073}#app>.setup{margin-top:0}#app>.cards-screen,#app>.about-screen,#app>.feedback-screen,#app>.tutorial-select{grid-column:1 / -1}.scen-editor{display:grid;grid-template-columns:minmax(420px,640px) 1fr;column-gap:24px;align-items:start}.scen-editor-map{position:sticky;top:12px}}.bal-caveat{border-left:3px solid var(--accent);background:#e8533a1a;padding:10px 12px;border-radius:0 6px 6px 0;color:var(--ink);font-size:.9rem;line-height:1.5;margin:8px 0 14px}.bal-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;margin-bottom:14px}.bal-controls label{color:var(--muted);font-size:.9rem}.bal-games{width:64px;margin-left:4px;padding:4px 6px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:4px}.bal-scenario{width:260px;max-width:100%}.bal-tier{margin-left:4px;padding:5px 6px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:4px}.bal-tier-label{display:inline-flex;align-items:center}.bal-expert-warn{font-size:.85rem}.bal-progress{color:var(--muted);font-size:.9rem}.bal-actions{display:flex;gap:8px;margin-bottom:10px}.bal-table{width:100%;border-collapse:collapse;font-size:.88rem}.bal-table th,.bal-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line)}.bal-table th{color:var(--muted);font-weight:600}.bal-num{text-align:right;font-variant-numeric:tabular-nums}.bal-scen{color:var(--ink)}.bal-barcol{width:120px}.bal-bar{display:inline-flex;width:110px;height:12px;border-radius:3px;overflow:hidden;background:var(--line);vertical-align:middle}.bal-seg{display:inline-block;height:100%}.bal-seg-att{background:#2a78d6}.bal-seg-def{background:#e34948}.bal-seg-tie{background:#8a8a80}.bal-pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.78rem;white-space:nowrap}.bal-band-attacker .bal-pill,.bal-pill.bal-band-attacker{background:#2a78d638;color:#9cc4f2}.bal-band-defender .bal-pill,.bal-pill.bal-band-defender{background:#e3494838;color:#f0a0a0}.bal-band-balanced .bal-pill,.bal-pill.bal-band-balanced{background:#6fcf6f33;color:#a6dda6}.bal-band-provisional .bal-pill,.bal-pill.bal-band-provisional{background:#ef9f2733;color:#edc07a}.bal-band-low-data .bal-pill,.bal-pill.bal-band-low-data{background:#9fb2c22e;color:var(--muted)}.bal-foot{margin-top:8px;font-size:.82rem}.score-breakdown{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.score-breakdown h3{flex-basis:100%;margin:0 0 2px;font-size:.95rem;color:var(--muted)}.score-side{flex:1 1 180px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 10px}.score-winner{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}.score-total{margin:0 0 4px;font-weight:600}.score-lines{margin:0;padding-left:16px;font-size:.85rem;color:var(--muted)}.score-lines li{margin:1px 0}.bot-thinking{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;z-index:1000}.bot-thinking-card{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:14px 22px;font-weight:600;box-shadow:0 4px 18px #00000059}.tutorial-panel{position:fixed;z-index:60;right:16px;bottom:16px;width:min(360px,calc(100vw - 32px));border:1px solid var(--tut-glow, #ffd647);border-radius:12px;background:var(--panel);box-shadow:0 8px 30px #00000073;padding:14px 16px;display:flex;flex-direction:column;gap:10px}@media(max-width:640px){.tutorial-panel{right:8px;left:8px;bottom:8px;width:auto}}.tutorial-panel-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.tutorial-panel-title{font-weight:700;color:var(--ink)}.tutorial-panel-step{font-size:.78rem;color:var(--muted);white-space:nowrap}.tutorial-panel-body{display:flex;flex-direction:column;gap:8px}.tutorial-panel-prose{margin:0;line-height:1.45;color:var(--ink)}.tutorial-panel-flash{margin:0;padding:6px 10px;border-radius:8px;background:#ffd64729;border:1px solid #ffd647;color:#ffd647;font-weight:600;font-size:.88rem}.tutorial-panel-actions{display:flex;flex-wrap:wrap;gap:8px}.tutorial-panel-actions .tutorial-next.primary{background:#ffd647;color:#1a2733;border-color:#ffd647;font-weight:700}.tutorial-panel-actions .tutorial-exit{margin-left:auto;color:var(--muted)}.rules-lab-screen{max-width:980px}.rules-lab-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.rules-lab-kicker{margin:0;color:var(--muted, #9fb2c2);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.rules-lab-build{border-radius:999px;padding:5px 9px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font-size:.78rem;font-weight:800;white-space:nowrap}@media(max-width:620px){.rules-lab-heading{align-items:flex-start;flex-direction:column}}.rules-verify-screen{max-width:980px}.rules-verify-progress{margin-block:10px}.rules-verify-bar{overflow:hidden;height:9px;border-radius:999px;background:var(--line, #3a4f63)}.rules-verify-bar-fill{display:block;height:100%;background:#6aa6e8;transition:width .16s ease-out}.rules-verify-progress p{margin:6px 0 0;color:var(--ink, #e8eef3);font-weight:700}.rules-verify-failcount{color:#ff9a9a}.rules-verify-campaign-actions,.rules-verify-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-block:12px}.rules-verify-import{display:none}.rules-verify-import-label{border:1px solid var(--line, #3a4f63);border-radius:7px;padding:7px 12px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font-weight:700;cursor:pointer}.rules-verify-danger{color:#ff9a9a}.rules-verify-flash{color:#9ecbff;font-weight:700}.rules-verify-search,.rules-verify-chapter-select{min-width:0;flex:1 1 220px;border:1px solid var(--line, #3a4f63);border-radius:7px;padding:7px 10px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font:inherit}.rules-verify-filters{display:flex;flex-wrap:wrap;gap:6px}.rules-verify-filter{border:1px solid var(--line, #3a4f63);border-radius:999px;padding:6px 12px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font-size:.85rem;font-weight:700}.rules-verify-filter.active{border-color:#6aa6e8;background:#6aa6e8;color:#10202e}.rules-verify-chapter{margin-block:26px 8px;padding-bottom:5px;border-bottom:2px solid var(--line, #3a4f63);color:var(--ink, #e8eef3)}.rules-verify-card{min-width:0;margin-block:10px;padding:14px 16px;border:1px solid var(--line, #3a4f63);border-left:5px solid #8a96a8;border-radius:10px;background:var(--panel, #243443);color:var(--ink, #e8eef3);overflow-wrap:anywhere}.rules-verify-card.pass{border-left-color:#6fcf6f}.rules-verify-card.fail{border-left-color:#ff9a9a}.rules-verify-card.partial{border-left-color:#f1c40f}.rules-verify-card.blocked{border-left-color:#b9a6f5}.rules-verify-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.rules-verify-head-right{display:flex;align-items:center;gap:8px}.rules-verify-clause{margin:0;color:var(--muted, #9fb2c2);font-size:.78rem;font-weight:800;letter-spacing:.06em}.rules-verify-card h4{margin:2px 0;color:var(--ink, #e8eef3)}.rules-verify-count{margin:2px 0 0;color:var(--muted, #9fb2c2);font-size:.84rem}.rules-verify-status{border-radius:999px;padding:5px 9px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font-size:.78rem;font-weight:800;white-space:nowrap}.rules-verify-status.pass{background:#d9f5e4;color:#0c6638}.rules-verify-status.fail{background:#fde0e0;color:#8f1717}.rules-verify-status.partial{background:#fff0c7;color:#7b5200}.rules-verify-status.blocked{background:#e7e2f5;color:#40336b}.rules-verify-excerpt{margin-block:12px;padding:12px 14px;border:1px solid var(--line, #3a4f63);border-radius:8px;background:var(--panel-2, #2c3f50)}.rules-verify-authority{margin:0 0 8px;color:var(--muted, #9fb2c2);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.rules-verify-text{margin:0 0 10px;color:var(--ink, #e8eef3);line-height:1.5;white-space:pre-wrap}.rules-verify-table-wrap{overflow-x:auto;margin-bottom:10px}.rules-verify-table{border-collapse:collapse;width:100%;font-size:.88rem}.rules-verify-table th,.rules-verify-table td{border:1px solid var(--line, #3a4f63);padding:5px 9px;color:var(--ink, #e8eef3);text-align:left}.rules-verify-table th{background:var(--panel, #243443)}.rules-verify-no-chains{color:#f1c40f;font-weight:700}.rules-verify-chain{margin-block:10px;padding:12px 14px;border:1px solid var(--line, #3a4f63);border-left:4px solid #8a96a8;border-radius:8px;color:var(--ink, #e8eef3)}.rules-verify-chain.pass{border-left-color:#6fcf6f}.rules-verify-chain.fail{border-left-color:#ff9a9a}.rules-verify-chain.blocked{border-left-color:#b9a6f5}.rules-verify-chain-head{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:10px}.rules-verify-chain h5{margin:0;color:var(--ink, #e8eef3);font-size:1rem}.rules-verify-verdicts{display:flex;flex-wrap:wrap;gap:5px}.rules-verify-verdict{border:1px solid var(--line, #3a4f63);border-radius:999px;padding:5px 11px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font-size:.82rem;font-weight:700}.rules-verify-verdict.active.pass{border-color:#6fcf6f;background:#6fcf6f;color:#10202e}.rules-verify-verdict.active.fail{border-color:#ff9a9a;background:#ff9a9a;color:#10202e}.rules-verify-verdict.active.blocked{border-color:#b9a6f5;background:#b9a6f5;color:#10202e}.rules-verify-verdict.active.untested{border-color:#9fb2c2;background:#9fb2c2;color:#10202e}.rules-verify-step{margin:6px 0;color:var(--ink, #e8eef3);line-height:1.45}.rules-verify-requires{margin:6px 0;color:#f1c40f;font-size:.86rem;font-weight:700}.rules-verify-notes{box-sizing:border-box;width:100%;margin-top:8px;border:1px solid var(--line, #3a4f63);border-radius:7px;padding:8px 10px;background:var(--panel-2, #2c3f50);color:var(--ink, #e8eef3);font:inherit;resize:vertical}.rules-verify-finding{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px}.rules-verify-filed{margin:0;color:#6fcf6f;font-weight:700}.rules-verify-empty{margin-block:24px}@media(max-width:620px){.rules-verify-card-head,.rules-verify-chain-head{align-items:flex-start;flex-direction:column}}.tut-highlight{outline:2px solid #ffd647!important;outline-offset:2px;border-radius:6px;animation:tut-pulse 1.4s ease-in-out infinite}@keyframes tut-pulse{0%,to{box-shadow:0 0 #ffd6478c}50%{box-shadow:0 0 0 6px #ffd64700}}.map .tut-hex .cell{fill:#ffd64747;stroke:#ffd647f2;stroke-width:1.5}.tutorial-select{max-width:720px;margin:0 auto;padding:8px 4px 40px}.tutorial-select-lead{margin-top:0}.tutorial-part{margin:18px 0 4px}.tutorial-part h3{margin:0 0 8px;color:var(--accent);font-size:.95rem;letter-spacing:.02em}.tutorial-chapter-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin-bottom:8px}.tutorial-chapter-row.done{border-color:var(--ok)}.tutorial-chapter-tick{width:1.2em;text-align:center;color:var(--muted)}.tutorial-chapter-row.done .tutorial-chapter-tick{color:var(--ok)}.tutorial-chapter-name{flex:1;font-weight:600;color:var(--ink)}.tutorial-launch{white-space:nowrap}.tutorial-continue{display:block;margin:4px 0 12px;background:#ffd647;color:#1a2733;border-color:#ffd647;font-weight:700}.tutorial-showme{border-color:#ffd647;color:#ffd647}.tutorial-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 0;padding:12px 14px;border:1px solid #ffd647;border-radius:10px;background:#ffd6471a}.tutorial-banner-text{font-weight:600;color:var(--ink)}.tutorial-banner-actions{display:flex;gap:8px}.tutorial-banner-start{background:#ffd647;color:#1a2733;border-color:#ffd647;font-weight:700}.tutorial-banner-dismiss{color:var(--muted)}.tutorial-entry{margin:8px 0 0}.tutorial-entry-btn{width:100%;border:1px solid #ffd647;color:#ffd647;background:#ffd64714;font-weight:600}.tutorial-entry-btn:hover{background:#ffd64729}.map .escort-halo{stroke:#f0c850;stroke-width:2.5;stroke-dasharray:6 4;opacity:.9;pointer-events:none}.altitude-req{margin:.25rem 0 .5rem;font-size:.85rem;opacity:.9}.altitude-req-heading{font-weight:600;margin-bottom:.15rem}.altitude-req ul{margin:0;padding-left:1.1rem}.map .facing-arrow.reach-arrow-blocked{opacity:.35;stroke:#c83c3c;stroke-width:1.5}.aircraft-card{border:1px solid var(--border, #3a4a5a);border-radius:6px;padding:.4rem .6rem;margin:.4rem 0;background:#14202c8c}.aircraft-card p{margin:.15rem 0}.aircraft-card-title{font-weight:700}.aircraft-card-traits{line-height:1.35}.aircraft-card-payload{font-weight:600;line-height:1.35}.map-view .aircraft-card-overlay{position:absolute;top:2.6rem;left:.5rem;max-width:20rem;z-index:5;pointer-events:none}.map-view .plane-hover-dock{position:absolute;top:2.6rem;left:.5rem;max-width:20rem;z-index:5;pointer-events:none;border:1px solid var(--accent);border-radius:6px;padding:.3rem .55rem;background:#12141aeb;font-size:.82rem;line-height:1.3;color:#ffffffd1}.map-view .plane-hover-dock p{margin:.1rem 0}.map-view .plane-hover-dock .hover-dock-title{color:#fff;font-weight:700}.map-view .plane-hover-dock .hover-dock-hint{opacity:.7}.map-view .plane-hover-dock [hidden]{display:none}.fire-row .fire-hit,.fire-row .fire-miss{flex-basis:100%}.fire-row .fire-outcome-line{line-height:1.35}@media(min-width:1024px){body.layout-v2[data-view=oracle] #app{grid-template-columns:var(--panel-width, 300px) 40px 1fr;height:100dvh;grid-template-rows:auto auto auto 1fr;align-items:stretch;overflow:hidden}body.layout-v2[data-view=oracle] #app>.play-host{min-height:0;overflow-y:auto;overflow-x:hidden}body.layout-v2[data-view=oracle] #app>.play-host>.play-controls{max-height:none;overflow-y:visible}body.layout-v2[data-view=oracle] #app>.map-column>.map-host{min-height:0;overflow:hidden}body.layout-v2[data-view=oracle] #app>.map-column>.status-host{max-height:40vh;overflow-y:auto}body.layout-v2[data-view=oracle] #app>.map-column>.map-host>.map-view{display:flex;flex-direction:column;height:100%;min-height:0}body.layout-v2[data-view=oracle] #app>.map-column>.map-host .map{flex:1 1 auto;min-height:0;max-height:none}}.qa-entry{border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:14px 16px;margin:0 0 16px}.qa-entry-head h3{margin:2px 0}.qa-section{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--accent)}.qa-asked{font-size:.8rem;margin:0 0 8px}.qa-question{margin:0 0 12px;padding:8px 12px;border-left:3px solid var(--accent);background:var(--panel-2);font-style:italic}.qa-table{border-collapse:collapse;width:100%;margin:8px 0 12px;font-size:.9rem}.qa-table th,.qa-table td{border:1px solid var(--line);padding:5px 8px;text-align:left}.qa-table th{background:var(--panel-2)}.qa-example{margin:0 0 8px}.qa-example .muted{margin:0 0 2px;font-size:.85rem}.qa-example-line{display:block;font-family:Consolas,Courier New,monospace;font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;overflow-x:auto}.qa-example-shot{display:block;max-width:100%;height:auto;margin:6px 0 0;border:1px solid var(--line);border-radius:6px}.qa-list{margin:0 0 12px;padding-left:20px}.qa-list li{margin:0 0 6px}.qa-list-warn li{color:var(--muted)}.qa-comments{list-style:none;margin:0 0 10px;padding:0}.qa-comment{border-top:1px solid var(--line);padding:8px 0 0;margin:0 0 8px}.qa-comment-head{display:flex;gap:8px;align-items:baseline;font-size:.85rem}.qa-comment-body{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.qa-post{display:flex;flex-direction:column;gap:6px}.qa-post-row{display:flex;gap:8px;align-items:center}.qa-author{flex:1 1 auto;min-width:0}.qa-body{width:100%;font:inherit;resize:vertical}.qa-status{font-size:.85rem;min-height:1.2em}.qa-error{color:var(--accent)}.qa-screen{max-width:1400px}.qa-entry>p,.qa-entry>blockquote,.qa-entry>.qa-list,.qa-comment-body{max-width:78ch}.qa-layout{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:16px;align-items:start}@media(max-width:860px){.qa-layout{grid-template-columns:1fr}}.qa-index{display:flex;flex-direction:column;gap:4px}.qa-index-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"section marks" "title title";gap:2px 6px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit}.qa-index-row:hover{border-color:var(--accent)}.qa-index-row.active{border-color:var(--accent);background:var(--panel-2)}.qa-index-section{grid-area:section;font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--accent)}.qa-index-title{grid-area:title;font-size:.9rem;line-height:1.3}.qa-index-marks{grid-area:marks;display:flex;gap:4px;align-items:center}.qa-tick{color:var(--ok);font-weight:700}.qa-unread{background:var(--accent);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;padding:0 6px;min-width:18px;text-align:center}.qa-ask{margin-top:8px;border:1px dashed var(--line);border-radius:8px;padding:8px 10px}.qa-ask summary{cursor:pointer;font-size:.9rem}.qa-ask .qa-post{margin-top:8px}.qa-confirm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 10px;margin:0 0 12px;background:var(--panel-2)}.qa-confirm.is-confirmed{border-color:var(--ok)}.qa-confirm.is-confirmed strong{color:var(--ok)}.qa-confirm-note{flex:1 1 auto;font-size:.85rem}.skirmish-panel{display:flex;flex-direction:column;gap:6px}.skirmish-section{border-top:1px solid var(--line, #2a3446);padding-top:4px}.skirmish-section-header{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:4px 0;text-align:left;font-weight:600;cursor:pointer;color:inherit}.skirmish-section-caret{opacity:.7}.skirmish-section-body{display:flex;flex-direction:column;gap:6px;padding:4px 0 6px}.skirmish-add-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px}.skirmish-add-row>label{flex:1 1 45%;min-width:0}.skirmish-add-row>label select{width:100%}.skirmish-add-row>button{flex:0 0 auto}.skirmish-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.skirmish-row-name{flex:1 1 100%;font-size:.9em;opacity:.9}.skirmish-row.blue .skirmish-row-name{color:var(--blue, #6ab0ff)}.skirmish-row.red .skirmish-row-name{color:var(--red, #ff7a6a)}.skirmish-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:4px}.lab-chain-hud{position:fixed;z-index:60;width:min(380px,calc(100vw - 32px));max-height:min(46vh,460px);overflow-y:auto;border:1px solid var(--accent, #6aa9ff);border-radius:12px;background:var(--panel);box-shadow:0 8px 30px #00000073;padding:12px 14px}.lab-chain-hud[data-corner=bl]{inset:auto auto 16px 16px}.lab-chain-hud[data-corner=br]{inset:auto 16px 16px auto}.lab-chain-hud[data-corner=tr]{inset:16px 16px auto auto}.lab-chain-hud[data-corner=tl]{inset:16px auto auto 16px}.lab-chain-hud[data-collapsed=true]{max-height:none;overflow:visible;width:min(320px,calc(100vw - 32px));padding:6px 10px}.lab-chain-hud-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.lab-chain-hud-clause{font-size:.78rem;font-weight:700;color:var(--accent, #6aa9ff);white-space:nowrap}.lab-chain-hud-head h5{margin:0;font-size:.92rem;color:var(--ink)}.lab-chain-hud-park{margin-left:auto;display:flex;gap:6px;flex:0 0 auto}.lab-chain-hud-park button{font-size:.72rem;padding:2px 8px}.lab-chain-hud-head{flex-wrap:wrap}.lab-chain-hud-actions{display:flex;gap:8px;margin-top:8px}@media(max-width:700px){.lab-chain-hud[data-corner]{left:8px;right:8px;width:auto;max-height:38vh}}.statcard-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#080e14b8;overflow:auto}.statcard-panel{display:flex;flex-direction:column;gap:8px;max-width:min(96vw,1320px);width:100%}.statcard-body{display:flex;gap:12px;align-items:flex-start}.statcard-body>.statcard-figure{flex:1 1 0;min-width:0}.statcard-model{position:relative;flex:1 1 0;min-width:0;aspect-ratio:1.424;border-radius:14px;background:#0c141c8c;box-shadow:0 12px 40px #0000008c;overflow:hidden;touch-action:none}.model-viewer-canvas{display:block;width:100%;height:100%;cursor:grab}.model-viewer-canvas:active{cursor:grabbing}.statcard-figure-blank{display:flex;flex-direction:column;aspect-ratio:1.424;outline:1px dashed var(--line);outline-offset:-1px;border-radius:14px;background:#0c141c59;overflow:hidden}.statcard-blank-head{display:flex;align-items:center;padding:14px 18px;background:#2b3440;border-bottom:1px solid var(--line)}.statcard-blank-name{font-family:Georgia,Times New Roman,serif;font-size:1.25rem;font-weight:700;color:#f6f1e4;overflow-wrap:anywhere}.statcard-blank-body{display:flex;flex:1 1 auto;flex-direction:column;gap:8px;align-items:center;justify-content:center;padding:16px}.statcard-blank-key{font-size:.8em;opacity:.7;overflow-wrap:anywhere}.statcard-model-note{margin:0;font-size:.9em;text-align:center;overflow-wrap:anywhere}@media(max-width:900px){.statcard-body{flex-direction:column}.statcard-body>.statcard-figure,.statcard-model{width:100%;flex:0 0 auto}}.statcard-bar{display:flex;gap:8px;justify-content:flex-end;align-items:center}.statcard-figure svg{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 12px 40px #0000008c}.statcard-open{font-size:.85em;padding:2px 8px}.statcard-pick{max-width:360px;margin-bottom:10px}
