:root{--rare:#a95cff;--bg:#15181e;--panel:#1f242c;--border:#2f3640;--text:#e5e7eb;--muted:#9ca3af;--accent:#3b82f6;--size-s:#86efac;--size-m:#7dd3fc;--size-l:#fcd34d;--size-xl:#f9a8d4;--error:#f87171;--control:#2a313b;--control-hover:#343d49;--control-deep:#1d232c;--glow:#1c2230;--tip-glow:#1a2234;--on-accent:var(--text);--pic-bg:radial-gradient(circle at 50% 40%, #1d2740, #0b0f17);--chip:#0b0f17cc;--chip-strong:#0b0f17dd;--chip-solid:#0b0f17e8;--chip-text:var(--text);--gold:#fbbf24;--hud-rgb:11, 14, 19;--hud2-rgb:17, 22, 30;--hud3-rgb:17, 24, 39;--hud4-rgb:15, 18, 26;--hud5-rgb:30, 36, 46;--hud-text:#e5e7eb;--hud-text-bright:#f8fafc;--ok:#4ade80;--warn:#fbbf24;--objective:#facc15;--hud-muted:#94a3b8;--hud-soft:#cbd5e1;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#app{grid-template:"toolbar toolbar""viewport inspector"1fr"status status"/1fr 300px;height:100dvh;display:grid}body[data-screen=combat] #status{display:none}#toolbar{background:var(--panel);border-bottom:1px solid var(--border);scrollbar-width:none;flex-wrap:nowrap;grid-area:toolbar;gap:6px;padding:6px 8px;display:flex;overflow:auto hidden}#toolbar::-webkit-scrollbar{display:none}#toolbar>*{flex-shrink:0}#toolbar button{white-space:nowrap}#toolbar,#viewport,#inspector{-webkit-user-select:none;user-select:none}#toolbar :is(input,textarea),#viewport :is(input,textarea),#inspector :is(input,textarea){-webkit-user-select:text;user-select:text}#toolbar .group{border-right:1px solid var(--border);gap:2px;padding-right:6px;display:flex}#toolbar .group:last-child{border-right:none}#toolbar .group[hidden],#toolbar .palette-select[hidden]{display:none}#toolbar .group-label{color:var(--muted);align-self:center;padding:0 4px;font-size:12px}button,select,input{font:inherit;color:var(--text);background:var(--control);border:1px solid var(--border);border-radius:4px;padding:3px 8px}button:hover:not(:disabled){background:var(--control-hover)}button:disabled{opacity:.4}button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}:is(#toolbar,.hangar-tools) .symmetry-btn{align-items:center;gap:5px;padding-inline:8px;display:inline-flex}:is(#toolbar,.hangar-tools) .symmetry-btn .symmetry-axis{font-weight:600}:is(#toolbar,.hangar-tools) .symmetry-icon{fill:none;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}:is(#toolbar,.hangar-tools) .symmetry-icon .plane{stroke:currentColor;stroke-width:1.2px;stroke-dasharray:2 2;opacity:.6}:is(#toolbar,.hangar-tools) .symmetry-icon .arrow{stroke:var(--sym);stroke-width:1.8px}:is(#toolbar,.hangar-tools) .symmetry-length{--sym:#ef4444}:is(#toolbar,.hangar-tools) .symmetry-side{--sym:#22c55e}:is(#toolbar,.hangar-tools) .symmetry-height{--sym:#3b82f6}:is(#toolbar,.hangar-tools) .symmetry-btn:not(.active){opacity:.7}:is(#toolbar,.hangar-tools) .symmetry-btn.active{background:color-mix(in srgb, var(--sym) 30%, var(--control));border-color:var(--sym)}:is(#toolbar,.hangar-tools) .symmetry-btn.active .symmetry-icon .arrow{stroke:#fff}#viewport{grid-area:viewport;min-width:0;min-height:0;position:relative;container-type:size}#app.inspector-closed{grid-template-columns:minmax(0,1fr) 0}#app.inspector-closed #inspector{display:none}#viewport .inspector-toggle{z-index:6;background:color-mix(in srgb, var(--panel) 90%, transparent);border-right:none;border-radius:6px 0 0 6px;width:24px;height:72px;padding:0;font-size:18px;line-height:1;position:absolute;top:50%;right:0;transform:translateY(-50%)}#viewport canvas{width:100%;height:100%;display:block}#inspector{background:var(--panel);border-left:1px solid var(--border);grid-area:inspector;padding:8px;overflow-y:auto}#inspector h3{margin:4px 0 8px;font-size:14px}#inspector h3 small{color:var(--muted);font-weight:400}#inspector p{color:var(--muted);margin:4px 0 8px}#inspector .error{color:var(--error)}#inspector dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:0 0 8px;display:grid}#inspector dt{color:var(--muted)}#inspector dd{font-variant-numeric:tabular-nums;margin:0}.transform-form{margin-bottom:4px}.transform-form .row{grid-template-columns:30px repeat(3,1fr) 18px;align-items:center;gap:2px;margin-bottom:2px;font-size:11px;display:grid}.transform-form input{font-variant-numeric:tabular-nums;width:100%;min-width:0;height:20px;padding:0 3px;font-size:11px}.transform-form .unit{color:var(--muted)}#inspector .lil-gui.root{--background-color:var(--panel);width:100%}#status{background:var(--panel);border-top:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;grid-area:status;justify-content:space-between;gap:12px;padding:4px 8px;display:none!important}#status .msg[data-kind=error]{color:var(--error)}.editor-toast{z-index:50;border:1px solid var(--border);background:var(--panel);max-width:min(720px,100vw - 32px);color:var(--text,#e5e7eb);pointer-events:none;border-radius:6px;padding:6px 12px;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0008}.editor-toast:empty{display:none}.editor-toast[data-kind=error]{color:var(--error);border-color:var(--error)}body[data-screen=combat] .editor-toast{display:none}#status .summary[data-kind=error]{color:var(--error)}#inspector h4{margin:10px 0 6px;font-size:13px}#inspector .contacts{margin-bottom:10px}#inspector .contact{border-left:2px solid var(--border);font-variant-numeric:tabular-nums;margin-bottom:4px;padding:4px 6px}#inspector .contact-title{color:var(--text)}#inspector .cause{color:var(--muted);font-size:12px}#inspector .cause.held,#inspector .group-note{color:#93c5fd}#inspector .grip{border-left:3px solid var(--border);margin-bottom:6px;padding:4px 6px}#inspector .grip-fixed{border-left-color:#22c55e}#inspector .grip-partial{border-left-color:#eab308}#inspector .grip-unsupported,#inspector .grip-needsJointAnalysis{border-left-color:#f87171}#inspector .grip-title{color:var(--text);margin-bottom:2px}#inspector table.modes{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:4px;font-size:12px}#inspector table.modes td{color:var(--muted);padding:1px 4px 1px 0}#inspector .state-blocked{color:#f87171!important}#inspector .state-friction{color:#fbbf24!important}#inspector .state-free{color:#4ade80!important}#inspector .load-test{border-top:1px solid var(--border);margin:10px 0;padding-top:6px}#inspector .load-test .roles{flex-wrap:wrap;gap:4px;margin:4px 0;display:flex}#inspector .load-test .row{grid-template-columns:repeat(3,1fr) 40px;gap:3px;margin-bottom:3px;display:grid}#inspector .load-test .row input{width:100%;padding:2px 4px}#inspector .load-test label{color:var(--muted);margin:4px 0;display:block}#inspector .role-evaluated{color:#e879f9}#inspector .role-supports{color:#a78bfa}#inspector .verdict{margin:4px 0;font-weight:600}#inspector .verdict-holds{color:#4ade80}#inspector .verdict-exceeded,#inspector .verdict-free{color:var(--error)}#inspector .load-result div{margin-bottom:2px}#inspector .inspector-top{z-index:3;background:var(--panel);border-bottom:1px solid var(--border);margin:-8px -8px 6px;padding:6px 8px 2px;position:sticky;top:-8px}#inspector .inspector-top input:disabled{opacity:.4}.help-overlay{z-index:50;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.help-overlay[hidden]{display:none}.help-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:420px;max-height:85vh;padding:16px 20px;overflow:auto}.help-card h3{margin:0 0 10px}.help-card table{border-collapse:collapse}.help-card td{vertical-align:top;padding:3px 12px 3px 0}kbd{border:1px solid var(--border);background:var(--control);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:inherit;font-size:12px;display:inline-block}#inspector .structure{border:1px solid #334155;border-radius:4px;margin:8px 0;padding:4px 6px}#inspector .structure>summary{cursor:pointer;font-weight:600}#inspector .structure .tree{max-height:220px;margin-top:4px;overflow-y:auto}#inspector .structure .set>summary{cursor:pointer;list-style-position:inside}#inspector .structure .set>summary .node{width:calc(100% - 16px);display:inline-flex}#inspector .structure .block{border-left:2px solid #475569;margin-left:10px;padding-left:4px}#inspector .structure .set>.piece,#inspector .structure .block>.piece,#inspector .structure .loose>.piece{margin-left:14px}#inspector .structure .node,#inspector .structure .piece{border-radius:3px;align-items:center;gap:6px;padding:1px 2px;display:flex}#inspector .structure .node .name{font-weight:600}#inspector .structure .name{cursor:pointer;flex:1}#inspector .structure .name:hover{text-decoration:underline}#inspector .structure .count{color:#94a3b8;font-size:.85em}#inspector .structure .selected{background:#1e3a5f}#inspector .structure .hidden .name{opacity:.45;font-style:italic}#inspector .structure .eye{padding:0 4px;font-size:.75em}#inspector .joint-note{border:1px solid #facc15;border-radius:4px;margin:6px 0;padding:4px 6px}#inspector .grip button{margin-top:4px}.color-row .swatches{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:3px;display:flex}.swatch{cursor:pointer;border:1px solid #475569;border-radius:3px;width:16px;height:16px;padding:0}.swatch.active{outline-offset:1px;outline:2px solid #fbbf24}.color-row input[type=color]{cursor:pointer;background:0 0;border:none;width:22px;height:18px;padding:0}.swatch-reset{padding:0 4px;font-size:.75em}.swatch-reset.active{outline:2px solid #fbbf24}.role-row .swatches{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:3px;display:flex}.role-label{color:#94a3b8;font-size:.75em}.swatch.role{justify-content:center;align-items:center;width:20px;height:18px;display:inline-flex}.swatch.role .n{color:#0b0d10;text-shadow:0 0 2px #e2e8f0;font-size:.6em}:is(#toolbar,.hangar-tools) .role-row .swatches{align-items:center;gap:3px;display:flex}:is(#toolbar,.hangar-tools) .role-row input[type=color]{cursor:pointer;background:0 0;border:none;width:22px;height:18px;padding:0}:is(#toolbar,.hangar-tools) .role-row .palette-select{max-width:120px;font-size:12px}#inspector .library{border:1px solid #334155;border-radius:4px;margin:8px 0;padding:4px 6px}#inspector .library>summary{cursor:pointer;font-weight:600}#inspector .library-save,#inspector .library-io{gap:4px;margin:4px 0;display:flex}#inspector .library-save input{flex:1;min-width:0}#inspector .library-list{max-height:320px;overflow-y:auto}#inspector .library .shape{align-items:center;gap:6px;padding:2px;display:flex}#inspector .library .shape-img{cursor:pointer;object-fit:contain;background:#11151b;border-radius:4px;flex:none;width:56px;height:56px}#inspector .library .shape-img:hover{outline:1px solid var(--accent)}#inspector .library .shape-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}#inspector .library .shape-tools{align-items:center;gap:4px;display:flex}#inspector .library .shape-tools .count{flex:1}#inspector .library .shape .name{cursor:text;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#inspector .library .shape input{flex:1;min-width:0}#inspector .library .count{color:#94a3b8;font-size:.85em}#inspector .brush.active{color:#111827;background:#fbbf24}#inspector .neon.active{color:#39ff14;background:#0f172a;border-color:#39ff14;box-shadow:0 0 6px #39ff14,inset 0 0 4px #39ff14}#inspector .armor.active{color:#e5e7eb;background:#374151;border-color:#9ca3af;box-shadow:inset 0 0 0 2px #6b7280}#inspector .bevel.active{color:#fde68a;background:#1f2937;border-color:#d6a756;box-shadow:inset 2px 2px #fef3c7,inset -2px -2px #92400e}body:not(.show-advanced) .advanced{display:none!important}#inspector .ship{border:1px solid #334155;border-radius:4px;margin:8px 0;padding:4px 6px}#inspector .ship>summary{cursor:pointer;font-weight:600}#inspector .ship-view{z-index:1;aspect-ratio:7/5;border:1px solid var(--border);border-radius:3px;width:100%;margin:6px 0 0;display:block;position:sticky;bottom:-8px}#inspector .ship-sheet p{margin:3px 0}#inspector .ship-sheet .error{color:var(--error)}#inspector .ship-sheet .warning{color:var(--warn)}#inspector .ship-sheet .muted{color:var(--muted)}#inspector .ship-sheet dl{grid-template-columns:auto 1fr;gap:1px 8px;margin:4px 0;display:grid}#inspector .ship-sheet dt{color:var(--muted)}#inspector .ship-sheet dd{margin:0}#inspector .ship-sheet table{border-collapse:collapse;width:100%}#inspector .ship-sheet th{text-align:left;color:var(--muted);font-weight:400}#inspector .ship-sheet tr:has(td){cursor:pointer}#inspector .ship-sheet tr:has(td):hover{background:var(--control)}#station{z-index:5;background:var(--bg);grid-area:2/1/3/3;grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:24px;padding:12px 20px 24px;display:grid;overflow-y:auto}#station .station-inventory{position:sticky;top:0}#station .piece-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}#station .piece-tile{background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 6px;display:flex;position:relative}#station .piece-tile.empty{opacity:.45}#station .piece-tile img{object-fit:contain;width:64px;height:64px}#station .piece-tier{color:var(--muted);font-size:11px;position:absolute;top:4px;left:6px}#station .piece-count{font-size:12px;font-weight:600;position:absolute;top:4px;right:6px}#station .piece-name{text-align:center;font-size:12px;line-height:1.2}#station .piece-upgrade{margin-top:2px;padding:1px 6px;font-size:11px}#station[hidden]{display:none}#station h2{margin:0 0 4px}#station h3{margin:18px 0 6px;font-size:14px}#station section{max-width:920px}#station table{border-collapse:collapse;width:100%}#station th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:3px 8px 3px 0;font-weight:400}#station td{vertical-align:middle;border-bottom:1px solid #252b34;padding:4px 8px 4px 0}#station .actions{justify-content:flex-end;gap:4px;display:flex}#station .row{gap:6px;margin-bottom:6px;display:flex}#station .infinite-toggle{cursor:pointer;align-items:center;gap:4px;margin-bottom:8px;display:inline-flex}#station .row input{flex:0 260px}#station .muted{color:var(--muted)}#station .ok{color:var(--ok)}#station .warning{color:var(--warn)}#toolbar .nav button{font-weight:600}#toolbar .nav button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}body[data-screen=station] #toolbar>.group:not(.nav){display:none}#station .error{color:var(--error)}#station .picks{flex-wrap:wrap;gap:4px 16px;margin:6px 0 8px;display:flex}body[data-screen=combat] #toolbar>.group:not(.nav){display:none}#campaign,#fleet,#library,#maps,#missions,#refine,#races,#weapons,#geometry,#training,#dodge,#roguelite{z-index:5;grid-area:2/1/3/3;min-height:0}#campaign,#fleet{grid-template:minmax(0,1fr)/minmax(0,1fr);display:grid;overflow:hidden}#campaign{background:radial-gradient(ellipse at 40% 30%, var(--glow), var(--bg))}#roguelite{background:radial-gradient(ellipse at 60% 20%, var(--glow), var(--bg));overflow:auto}#fleet{background:var(--bg)}#campaign[hidden],#fleet[hidden],#library[hidden],#maps[hidden],#missions[hidden],#refine[hidden],#races[hidden],#weapons[hidden],#geometry[hidden],#training[hidden],#dodge[hidden],#roguelite[hidden]{display:none}#training{background:var(--bg);overflow:auto}#geometry{background:#141b22;flex-direction:column;display:flex}.design-workshops{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:8px 12px;display:flex}.design-workshops button.on,.design-tool button.on{background:var(--accent);border-color:var(--accent)}.design-link{color:var(--muted);margin-left:auto;font-size:13px}.design-workshop{flex:1;min-height:0;display:flex}.design-tool{flex-direction:column;flex:1;min-height:0;display:flex}.design-tool[hidden]{display:none}.design-tool .bar{background:#0b0e13;border-bottom:1px solid #1f2937;flex-wrap:wrap;gap:16px;padding:8px 12px;display:flex}.design-tool .group{align-items:center;gap:4px;display:flex}.design-tool .group span{color:#94a3b8;margin-right:4px;font-size:12px}.design-tool .view{flex:1;min-height:0}.design-tool .info{color:#94a3b8;background:#0b0e13;border-top:1px solid #1f2937;padding:6px 12px;font-size:13px}body[data-screen=campaign] #toolbar>.group:not(.nav),body[data-screen=roguelite] #toolbar>.group:not(.nav),body[data-screen=maps] #toolbar>.group:not(.nav){display:none}.fleet-panel h3{margin:16px 0 6px;font-size:14px}.fleet-panel h3:first-of-type{margin-top:8px}.fleet-panel .muted{color:var(--muted)}.fleet-panel .small{font-size:12px}.fleet-panel .ok{color:var(--ok)}.fleet-panel .warning{color:var(--warn)}.fleet-panel .error{color:var(--error)}.fleet-panel .bp-name{flex-direction:column;gap:1px;display:flex}.fleet-panel .actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.fleet-panel .row{gap:6px;margin-bottom:6px;display:flex}.fleet-panel select{margin-right:6px}.battle-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:16px 24px;display:grid!important}.battle-pick{flex-direction:column;gap:6px;display:flex}.battle-pick>span{color:var(--muted);font-size:12px}.battle-map{aspect-ratio:1;width:260px;max-width:100%}.battle-recordings{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.battle-recordings h3{width:100%;margin:0}#battle button.primary{background:var(--accent);border-color:var(--accent);padding:6px 18px;font-weight:600}.fleet-panel .templates{margin:4px 0;padding-left:18px}.fleet-panel .templates li>span:not(.muted){color:var(--text)}.fleet-panel .piece-grid{grid-template-columns:repeat(4,48px);gap:4px;display:grid}.fleet-panel .piece-tile{background:var(--bg);border:1px solid var(--border);border-radius:5px;place-items:center;width:48px;height:48px;display:grid;position:relative}.fleet-panel .piece-tile.empty{opacity:.45}.fleet-panel .piece-tile img{object-fit:contain;width:34px;height:34px}.fleet-panel .piece-tier{color:var(--muted);font-size:9px;line-height:1;position:absolute;bottom:1px;left:3px}.fleet-panel .piece-count{font-size:10px;font-weight:600;line-height:1;position:absolute;top:1px;right:3px}.fleet-panel .piece-upgrade{border-radius:3px;width:15px;height:15px;padding:0;font-size:8px;line-height:1;position:absolute;bottom:1px;right:1px}.fleet-panel .catalogue h3{margin:10px 0 4px}.fleet-panel .catalogue{overflow-x:hidden}.fleet-panel .catalogue .row{flex-wrap:wrap}.fleet-panel .catalogue .row select{flex:1;min-width:0}.fleet-panel .templates{margin:0;padding-left:0;font-size:13px;list-style:none}.fleet-panel .templates li{margin:2px 0}#combat{z-index:6;background:var(--bg);grid-area:2/1/3/3;grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative}#combat[hidden]{display:none}#combat .combat-view{min-width:0;min-height:0;position:relative;overflow:hidden}#combat .combat-fps{top:6px;left:calc(8px + var(--rail-own,0px));background:rgba(var(--hud-rgb), .7);color:#a3e635;pointer-events:none;border-radius:4px;padding:2px 6px;font:12px/1.4 ui-monospace,monospace;position:absolute}#combat .turn-bar{background:rgba(var(--hud-rgb), .82);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;width:min(560px,100% - 32px);padding:6px 8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}#combat .turn-bar[hidden]{display:none}#combat .arc-switches{z-index:3;top:32px;left:calc(8px + var(--rail-own,0px));background:rgba(var(--hud-rgb), .7);color:var(--hud-text);border-radius:4px;flex-direction:column;gap:2px;padding:4px 8px;font-size:12px;display:flex;position:absolute}#combat .ai-audit{background:rgba(var(--hud-rgb), .85);border:1px solid var(--border);width:300px;max-height:calc(100% - 80px);color:var(--hud-text);border-radius:4px;padding:6px 8px;font-size:12px;position:absolute;top:6px;right:8px;overflow-y:auto}#combat .ai-audit[hidden]{display:none}#combat .ai-audit h4{color:#e879f9;margin:0 0 4px}#combat .ai-audit .audit-ship{cursor:default;margin-top:6px;font-weight:600}#combat .ai-audit .audit-goal,#combat .ai-audit .audit-plan{color:var(--hud-soft);cursor:default;padding:1px 4px;font-size:11px;line-height:1.35}#combat .ai-audit .audit-goal{color:#f0abfc}#combat .ai-audit .audit-plan{color:var(--hud-muted);margin-bottom:2px;font-style:italic}#combat .ai-audit .audit-option{cursor:default;border-radius:3px;grid-template-columns:16px 1fr 28px 64px;gap:4px;padding:1px 4px;display:grid}#combat .ai-audit .audit-option:hover,#combat .ai-audit .audit-ship:hover{background:#3b2a44}#combat .ai-audit .audit-option.chosen{color:#f5d0fe}#combat .ai-audit .audit-option.rejected{color:var(--muted)}#combat .ai-audit .score{text-align:right;font-family:ui-monospace,monospace}#combat .combat-deselect{z-index:3;top:118px;left:calc(8px + var(--rail-own,0px));color:#fff;cursor:pointer;background:#7f1d1dd9;border:1px solid #f87171;border-radius:8px;width:40px;height:40px;font-size:20px;font-weight:700;position:absolute}#combat .combat-deselect[hidden]{display:none}#combat .combat-scout{z-index:3;left:4px;top:calc(50% - var(--rail-own-h,0px) / 2 - 40px);background:rgba(var(--hud-rgb), .85);width:34px;height:34px;color:var(--hud-text-bright);cursor:pointer;border:1px solid #94a3b8;border-radius:4px;padding:0;font-size:20px;line-height:1;position:absolute}@media (orientation:portrait){#combat.touch .combat-scout{top:calc(33% - var(--rail-own-h,0px) / 2 - 40px)}}#combat .combat-scout:hover:not(:disabled){border-color:#f87171}#combat .combat-scout.active{border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b}#combat .combat-scout:disabled{opacity:.4;cursor:default;border-color:var(--border)}#combat .combat-scout.used{filter:grayscale()}#combat .combat-scout[hidden]{display:none}#combat .arc-switches label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:flex}#combat .turn-track{background:#1f2937;border-radius:4px;flex:1;height:22px;position:relative;overflow:hidden}#combat .turn-fill{background:#f59e0b;position:absolute;inset:0 auto 0 0}#combat .turn-bar.running .turn-fill{background:#22c55e}#combat .turn-clock{color:var(--warn);white-space:nowrap;flex:none;font:600 14px/22px ui-monospace,monospace}#combat .turn-clock.out{color:#f87171}#combat .turn-clock[hidden]{display:none}#combat .turn-track span{text-align:center;color:#f8fafc;text-shadow:0 1px 2px #000;font:12px/22px ui-monospace,monospace;display:block;position:relative}#combat .turn-bar button{white-space:nowrap;min-width:118px}#combat .turn-bar button.help-button{min-width:0}.ship-data .help-card{width:min(900px,100vw - 48px)}.ship-data .help-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.ship-data .help-head h3{margin:0}.ship-data .help-sections{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 20px;display:grid}.ship-data section h4{color:#93c5fd;margin:10px 0 4px;font-size:13px}.ship-data td{padding:2px 10px 2px 0;font-size:12px}.ship-data td:first-child{color:#94a3b8;white-space:nowrap}.ship-data .piece-data{width:100%}.ship-data .piece-data thead td{color:#93c5fd;font-weight:600}.ship-data .piece-data td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.ship-data .piece-data tbody td:first-child{color:inherit}.ship-data .piece-data tbody tr{cursor:pointer}.ship-data .piece-data tbody tr:hover{background:#93c5fd14}.combat-help .help-card{flex-direction:column;width:min(1020px,100vw - 48px);height:min(760px,88vh);padding:14px 0 0;display:flex;overflow:hidden}.combat-help .help-head{justify-content:space-between;align-items:center;margin:0 20px 10px;display:flex}.combat-help .help-head h3{margin:0}.combat-help .help-body{border-top:1px solid var(--border);flex:1;grid-template-columns:200px 1fr;min-height:0;display:grid}.combat-help .help-tabs{border-right:1px solid var(--border);flex-direction:column;padding:8px 0;display:flex;overflow:auto}.combat-help .help-tabs button{text-align:left;color:#9ca3af;background:0 0;border:0;border-left:2px solid #0000;border-radius:0;padding:7px 14px;font-size:13px}.combat-help .help-tabs button:hover:not(:disabled){color:var(--text);background:#93c5fd0f}.combat-help .help-tabs button.on{color:#fff;background:#60a5fa1f;border-left-color:#60a5fa;font-weight:600}.combat-help .help-pane{padding:14px 24px 24px;overflow:auto}.combat-help .help-pane h4{color:#93c5fd;margin:0 0 12px;font-size:17px}.combat-help ul{margin:0 0 14px;padding-left:18px;font-size:13px;line-height:1.55}.combat-help li{margin-bottom:6px}.combat-help strong{color:#f3f4f6;font-weight:700}.combat-help kbd{color:#e5e7eb;text-align:center;background:#1f2937;border:1px solid #4b5563;border-bottom-width:2px;border-radius:4px;min-width:1.4em;margin:0 1px;padding:0 5px;font:600 11px/1.6 ui-monospace,monospace;display:inline-block}.combat-help figure{margin:4px 0 10px}.combat-help figure img{border:1px solid var(--border);border-radius:6px;max-width:100%;height:auto;display:block}@media (width<=640px){.combat-help .help-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.combat-help .help-tabs{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;padding:0}.combat-help .help-tabs button{white-space:nowrap;border-bottom:2px solid #0000;border-left:0}.combat-help .help-tabs button.on{border-bottom-color:#60a5fa}.combat-help .help-pane{padding:12px 14px 20px}}@keyframes help-pulse{0%,to{border-color:var(--border);box-shadow:0 0 #60a5fa00}50%{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa59}}#combat .turn-bar button.help-button.unseen{animation:2.4s ease-in-out infinite help-pulse}#combat .turn-bar button.turn-go{min-height:52px;font-size:15px}#combat .turn-bar button.go{color:#fff;background:#16a34a;border-color:#22c55e;font-weight:600}#combat .turn-bar button.go.asking{background:#b45309;border-color:#f59e0b}#combat .combat-view canvas{cursor:crosshair;width:100%;height:100%;display:block}#combat .combat-score{background:rgba(var(--hud-rgb), .8);border:1px solid var(--border);max-width:calc(100% - 220px);color:var(--hud-text-bright);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border-radius:4px;padding:3px 12px;font:600 13px/1.4 ui-monospace,monospace;position:absolute;top:6px;left:50%;overflow:hidden;transform:translate(-50%)}#combat .combat-score[hidden]{display:none}#combat .combat-score.board{border-width:2px;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:12px;padding:4px 18px 6px;display:grid;overflow:visible}#combat .score-side{flex-direction:column;align-items:center;min-width:58px;display:flex}#combat .score-label{color:var(--hud-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}#combat .score-value{font-size:34px;font-weight:800;line-height:1.05}#combat .score-side.mine .score-value{color:#4ade80}#combat .score-side.rival .score-value{color:#f87171}#combat .score-dash{color:#64748b;font-size:24px;font-weight:700}#combat .score-note{text-align:center;color:var(--hud-soft);grid-column:1/-1;font-size:11px;font-weight:500}#combat .turn-bar{--score-gap:6px}#combat .score-line{left:0;right:0;bottom:calc(100% + var(--score-gap));pointer-events:none;position:absolute}#combat .score-line[hidden]{display:none}#combat .score-turns{background:rgba(var(--hud-rgb), .82);border:1px solid var(--border);pointer-events:auto;border-radius:6px;gap:2px;padding:2px;display:flex}#combat .score-turn{min-width:0;color:var(--hud-muted);background:rgba(var(--hud3-rgb), .5);border-radius:3px;flex-direction:column;flex:1 1 0;align-items:center;padding:1px 0;font:600 11px/1.15 ui-monospace,monospace;display:flex}#combat .score-turn.next{opacity:.45}#combat .score-turn.now{background:rgba(var(--hud5-rgb), .95);box-shadow:inset 0 0 0 1px var(--warn)}#combat .score-made{min-height:13px}#combat .score-turn-number{color:var(--hud-soft);border-top:1px solid var(--border);text-align:center;align-self:stretch;margin-top:1px;font-size:9px;font-weight:500}#combat .score-turn.now .score-turn-number{color:var(--warn);font-weight:700}#combat .score-now{background:rgba(var(--hud2-rgb), .95);border:2px solid var(--warn);text-align:center;white-space:nowrap;border-radius:8px;padding:3px 14px 4px;position:absolute;bottom:calc(100% + 6px);transform:translate(-50%);box-shadow:0 2px 10px #00000073}#combat .score-now.edge-left{transform:translate(-20%)}#combat .score-now.edge-right{transform:translate(-80%)}#combat .score-now:after{content:"";border:7px solid #0000;border-top-color:var(--warn);margin-left:-7px;position:absolute;top:100%;left:50%}#combat .score-now.edge-left:after{left:20%}#combat .score-now.edge-right:after{left:80%}#combat .score-now-values{justify-content:center;align-items:center;gap:10px;display:flex}#combat .score-now .score-value{font:800 30px/1 ui-monospace,monospace}#combat .score-now .score-dash{font-size:20px}#combat .score-now .score-note{color:var(--hud-soft);font:500 10px/1.3 ui-monospace,monospace}@media (height<=520px),(width<=520px){#combat.touch .score-now .score-value{font-size:18px}#combat.touch .score-now{padding:1px 8px 2px}#combat.touch .score-turn{font-size:9px}}#combat .combat-hint{box-sizing:border-box;background:rgba(var(--hud2-rgb), .94);width:min(440px,100% - 24px);color:var(--hud-text);z-index:3;border:1px solid #4ade80;border-radius:6px;padding:10px 12px;font-size:14px;position:absolute;top:96px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #00000073}#combat .combat-hint[hidden]{display:none}#combat .combat-hint b{color:#4ade80}#combat .combat-hint p{margin:4px 0 8px;line-height:1.4}#combat .combat-hint button{float:right}#combat .combat-hint:after{content:"";clear:both;display:block}#combat.touch{grid-template-columns:minmax(0,1fr);position:relative}#combat.touch .combat-view canvas{touch-action:none}#combat.touch{touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#combat.touch img{-webkit-user-drag:none}body.touch{-webkit-touch-callout:none}body.touch img{-webkit-user-drag:none}body.touch input,body.touch textarea{-webkit-touch-callout:default}@media (pointer:coarse){.fleet-tile,.bp-tile{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.fleet-tile img,.bp-tile img{-webkit-user-drag:none}}#combat.touch button{touch-action:manipulation}#combat.touch .combat-fps,#combat.touch .arc-switches{display:none}#combat.touch .combat-hud{z-index:4;width:min(340px,48vw);transition:transform .2s;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 16px #00000080}#combat.touch.hud-open .combat-hud{transform:none}#combat.touch .touch-group{z-index:3;flex-direction:column;gap:6px;display:flex;position:absolute}#combat.touch .touch-group button{background:rgba(var(--hud3-rgb), .85);border:1px solid var(--border);min-width:44px;min-height:40px;color:var(--hud-text-bright);border-radius:8px;padding:4px 8px;font-size:16px}#combat.touch .touch-group button.on{background:#b45309;border-color:#f59e0b}#combat.touch .touch-corner{top:max(6px, env(safe-area-inset-top));right:max(8px, env(safe-area-inset-right));flex-direction:row-reverse}#combat.touch .touch-corner button{font-weight:600}#combat.touch .touch-menu{z-index:6;top:calc(max(6px, env(safe-area-inset-top)) + 50px);right:max(8px, env(safe-area-inset-right));background:rgba(var(--hud3-rgb), .96);border:1px solid var(--border);border-radius:10px;max-width:260px;padding:8px;position:absolute;box-shadow:0 6px 18px #00000080}#combat.touch .touch-menu[hidden]{display:none}#combat.touch .touch-menu .hud-session{justify-content:stretch;gap:6px}#combat.touch .touch-menu button{border-radius:8px;flex:auto;min-height:44px;padding:4px 10px;font-size:15px}#combat.touch .touch-plan{right:max(8px, env(safe-area-inset-right));bottom:calc(max(8px, env(safe-area-inset-bottom)) + 72px);flex-direction:row}#combat.touch .touch-plan button{min-height:52px;padding:4px 12px;font-size:15px}#combat.touch .touch-plan .touch-undo{background:#9a3412e6;border-color:#fb923c}#combat.touch .touch-plan .touch-clear{background:#7f1d1de6;border-color:#f87171}#combat.touch .touch-plan .touch-clear.on{background:#dc2626;border-color:#fecaca}#combat.touch .touch-plan button:disabled{opacity:.35}#combat.touch .touch-speed{right:max(8px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom));flex-direction:row;gap:4px}#combat.touch .touch-speed button{min-width:68px;min-height:60px;color:var(--gear);border-width:2px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 4px 3px;font-size:12px;display:flex;position:relative}#combat.touch .touch-speed button svg{width:20px;height:24px}#combat.touch .touch-speed button span{color:#e5e7eb}#combat.touch .touch-speed button.on{background:color-mix(in srgb, var(--gear) 55%, #111827);border-color:var(--gear);color:#f8fafc}#combat.touch .touch-speed button.next{border-color:var(--gear);box-shadow:0 0 0 2px var(--gear)}#combat.touch .touch-speed button:disabled{opacity:.3}#combat.touch .touch-speed button[hidden]{display:none}#combat.touch .touch-speed .touch-speed-count{color:#fbbf24;font:600 10px/1 ui-monospace,monospace;position:absolute;top:2px;right:4px}#combat.touch .touch-deselect{top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left))}#combat.touch .touch-deselect button{background:#7f1d1dd9;border-color:#f87171;border-radius:12px;min-width:64px;min-height:64px;font-size:30px;font-weight:700}#combat.touch .touch-deselect button[hidden]{display:none}#combat.touch .touch-view{left:max(8px, env(safe-area-inset-left));bottom:max(8px, env(safe-area-inset-bottom));flex-flow:wrap;max-width:300px}#combat.touch .touch-notice{background:rgba(var(--hud3-rgb), .92);color:#fde68a;z-index:3;pointer-events:none;border:1px solid #f59e0b;border-radius:6px;max-width:calc(100% - 140px);padding:6px 12px;font-size:13px;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}#combat.touch .touch-notice[hidden]{display:none}#combat.touch .turn-bar{bottom:max(4px, env(safe-area-inset-bottom));gap:4px;width:auto;max-width:calc(100% - 640px);padding:3px 4px}#combat.touch .turn-track{flex:0 150px;width:150px;height:18px}#combat.touch .turn-track span{white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:18px;overflow:hidden}#combat.touch .turn-bar button{min-width:0;min-height:26px;padding:2px 8px;font-size:12px}#combat.touch .touch-notice{max-width:calc(100% - 640px);bottom:76px}#combat.touch .combat-score{max-width:calc(100% - 260px)}#combat.touch .touch-secs{right:max(8px, env(safe-area-inset-right));bottom:calc(max(8px, env(safe-area-inset-bottom)) + 128px);flex-direction:row}#combat.touch .touch-secs button{font-size:13px}#combat.touch .touch-secs .touch-secs-value{color:#fbbf24;font:600 14px/1 ui-monospace,monospace}#combat.touch .touch-secs .touch-secs-value.on{color:#f8fafc}@media (orientation:portrait){#combat.touch .touch-bar{z-index:3;box-sizing:border-box;height:34%;padding:6px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));background:var(--panel);border-top:1px solid var(--border);grid-template:"turn turn""speed speed"1fr"plan secs""corner view"/1fr 1fr;gap:6px;display:grid;position:absolute;bottom:0;left:0;right:0}#combat.touch .touch-bar .touch-group{flex-flow:wrap;justify-content:center;align-items:center;position:static;transform:none}#combat.touch .touch-bar .touch-group button{flex:1 1 0;min-height:44px}#combat.touch .touch-plan{grid-area:plan}#combat.touch .touch-speed{grid-area:speed;flex-wrap:nowrap!important}#combat.touch .touch-bar .touch-speed button{min-height:52px}#combat.touch .touch-bar .touch-deselect{position:absolute;top:auto;bottom:calc(100% + 8px)}#combat.touch .touch-secs{grid-area:secs;flex-direction:row-reverse!important}#combat.touch .touch-corner{grid-area:corner}#combat.touch .touch-view{grid-area:view;flex-wrap:wrap!important}#combat.touch .touch-view button{min-width:0;padding:4px 2px}#combat.touch .touch-bar .turn-bar{grid-area:turn;justify-self:stretch;width:auto;max-width:none;position:relative;transform:none}#combat.touch .touch-bar .turn-track{flex:auto;width:auto}#combat.touch .touch-notice{max-width:calc(100% - 24px);bottom:calc(34% + 8px)}#combat.touch .combat-score{max-width:calc(100% - 130px);left:8px;transform:none}#combat.touch .combat-hud{width:min(340px,86vw);bottom:34%}}#combat .combat-actives{left:calc(8px + var(--rail-own,0px));z-index:3;flex-direction:column;align-items:stretch;gap:4px;max-width:190px;display:flex;position:absolute;top:130px}#combat .combat-actives[hidden]{display:none}#combat .combat-actives button{text-align:left;align-items:center;gap:6px;display:flex}#combat .combat-actives img{width:24px;height:24px}#combat .combat-actives button.active{color:#fde68a;border-color:#f59e0b}#combat.touch .combat-actives{left:calc(max(8px, env(safe-area-inset-left)) + 58px);top:8px}@media (orientation:portrait){#combat.touch .combat-actives{top:44px;left:8px}}#combat .combat-rail{z-index:2;pointer-events:none;grid-auto-flow:column;gap:4px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}#combat .combat-rail.own{left:4px}#combat .combat-rail.rival{right:4px}#combat .combat-rail-tabs{right:4px;top:calc(50% - var(--rail-rival-h,0px) / 2 - 30px);z-index:3;flex-wrap:wrap-reverse;justify-content:flex-end;gap:3px;max-width:40vw;display:flex;position:absolute}#combat .combat-rail-tabs[hidden]{display:none}#combat .combat-rail-tabs button{background:rgba(var(--hud-rgb), .78);color:var(--tab-colour);border:1px solid var(--border);cursor:pointer;border-bottom:2px solid #0000;border-radius:4px 4px 0 0;padding:2px 7px;font-size:11px}#combat .combat-rail-tabs button.active{border-bottom-color:var(--tab-colour);background:rgba(var(--hud5-rgb), .92);font-weight:600}#combat .combat-rail-tabs button.out{opacity:.5;text-decoration:line-through}@media (orientation:portrait){#combat.touch .combat-rail-tabs{top:calc(33% - var(--rail-rival-h,0px) / 2 - 30px)}}#combat.touch .combat-rail{top:50%}@media (orientation:landscape){#combat.touch .touch-corner,#combat.touch .touch-menu,#combat.touch .touch-plan,#combat.touch .touch-speed,#combat.touch .touch-secs{margin-right:var(--rail-rival,0px)}#combat.touch .touch-view{margin-left:var(--rail-own,0px)}}#combat.touch .touch-deselect,#combat.touch .combat-actives{margin-left:var(--rail-own,0px)}@media (height<=520px),(width<=520px){#combat.touch .combat-score.board{border-width:1px;column-gap:8px;padding:1px 10px 2px}#combat.touch .combat-score .score-value{font-size:17px;line-height:1}#combat.touch .combat-score .score-label{font-size:8px}#combat.touch .combat-score .score-side{min-width:30px}#combat.touch .combat-score{padding:1px 8px;font-size:11px}#combat.touch .touch-speed button{min-width:50px;min-height:46px;font-size:11px}#combat.touch .touch-plan{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 56px)}#combat.touch .touch-plan button{min-height:40px;padding:2px 8px;font-size:13px}#combat.touch .touch-secs{bottom:calc(max(8px, env(safe-area-inset-bottom)) + 102px)}#combat.touch .touch-deselect button{min-width:48px;min-height:48px;font-size:24px}#combat.touch .rail-actives{display:none}}#combat.touch .ship-peek{pointer-events:auto;top:80px}@media (orientation:portrait){#combat.touch .combat-rail{top:33%}}#combat .rail-card{box-sizing:border-box;background:rgba(var(--hud-rgb), .78);border:1px solid var(--border);pointer-events:auto;border-radius:4px;flex-direction:column;align-items:stretch;gap:1px;width:78px;padding:2px;display:flex;position:relative}#combat .rail-card.orders{cursor:pointer}#combat .rail-card.selected{border-color:#4ade80}#combat .rail-card.primary{box-shadow:0 0 0 1px #4ade80}#combat .rail-card.dead{filter:grayscale();opacity:.4}#combat .rail-card.away{opacity:.55}#combat .rail-card img{width:var(--rail-pic,60px);height:var(--rail-pic,60px);margin:0 auto;display:block}#combat .rail-face{align-items:stretch;gap:2px;display:flex}#combat .rail-gears{width:12px;height:var(--rail-pic,60px);flex-direction:column;flex:none;gap:1px;display:flex}#combat .rail-gear{color:#475569;background:#ffffff0a;border-radius:2px;flex:1 1 0;min-height:0;display:flex}#combat .rail-gear[hidden]{display:none}#combat .rail-gear svg{width:100%;height:100%}#combat .rail-gear.on{color:#f8fafc;background:var(--gear)}#combat .rail-gear.next{box-shadow:inset 0 0 0 1px var(--gear);color:var(--gear)}#combat .rail-gear.chosen{color:#facc15;box-shadow:inset 0 0 0 2px #facc15}#combat .rail-gear.on.chosen{color:#f8fafc}#combat .rail-actives{gap:4px;display:flex;position:absolute;top:0;left:calc(100% + 4px)}#combat .rail-active{background:rgba(var(--hud-rgb), .85);border:1px solid var(--border);opacity:1;border-radius:4px;width:34px;height:34px;padding:0;position:relative;overflow:hidden}#combat .rail-active[hidden]{display:none}#combat .rail-active:not(:disabled){cursor:pointer;border-color:#94a3b8}#combat .rail-active.active{border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b}#combat .rail-active.asked{border-color:#4ade80}#combat .rail-active img{width:100%;height:100%;display:block}#combat .rail-active .clock{background:conic-gradient(transparent var(--done,360deg), #000000bf 0);pointer-events:none;position:absolute;inset:0}#combat .rail-active .count{color:#f8fafc;text-shadow:0 0 2px #000,0 0 3px #000;pointer-events:none;font:600 10px/1.2 ui-monospace,monospace;position:absolute;bottom:0;right:1px}#combat .rail-bar{background:#1f2937;border-radius:1px;height:4px;overflow:hidden}#combat .rail-bar span{height:100%;display:block}#combat .rail-bar.shield span{background:#7dd3fc}#combat .rail-bar.hull span{background:#22c55e}#combat .rail-bar.core span{background:#eab308}#combat .rival .rail-bar.hull span{background:#ef4444}#combat .rival .rail-bar.core span{background:#f97316}#combat .select-box{pointer-events:none;background:#4ade8014;border:1px solid #4ade80;position:absolute}#combat:not(.touch) .combat-hud{pointer-events:none;z-index:2;position:absolute;inset:0}#combat:not(.touch) .hud-right{top:8px;right:calc(8px + var(--rail-rival,0px));flex-direction:column;gap:8px;width:300px;max-height:calc(100% - 210px);display:flex;position:absolute}#combat:not(.touch) .hud-phase{left:calc(8px + var(--rail-own,0px));width:320px;max-height:55%;position:absolute;bottom:12px}.command-box{gap:6px;margin:6px 0;display:grid;overflow-y:auto}.command-box .row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.command-box button.active{background:var(--accent);border-color:var(--accent)}#combat:not(.touch) .hud-block{pointer-events:auto;box-sizing:border-box;background:rgba(var(--hud2-rgb), .88);border:1px solid var(--border);border-radius:6px;min-height:0;padding:8px 10px;overflow-y:auto;box-shadow:0 2px 10px #00000059}#combat:not(.touch) .hud-block:empty{display:none}#combat:not(.touch) .hud-objective{border-color:#a16207;flex:none}#combat:not(.touch) .hud-objective .objective{font-size:15px;font-weight:600}#combat:not(.touch) .hud-fleet{flex:0 auto}#combat:not(.touch) .hud-log{right:calc(8px + var(--rail-rival,0px));width:300px;max-height:170px;position:absolute;bottom:12px}#combat:not(.touch) .hud-log.folded{width:auto;padding:2px}#combat .hud-log .log-head{justify-content:space-between;align-items:center;gap:6px;display:flex}#combat .hud-log .log-head h4{margin:0}#combat .hud-log .log-eye{padding:1px 6px;font-size:12px}#combat .hud-session{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}#combat .hud-session:empty{display:none}#combat .rail-face{position:relative}#combat .rail-tension{background:rgba(var(--hud-rgb), .85);color:#f59e0b;pointer-events:none;border-radius:3px;padding:0 3px;font:700 11px/1.3 ui-monospace,monospace;position:absolute;top:0;right:0}#combat .rail-tension[hidden]{display:none}#combat .rail-orders{background:rgba(var(--hud-rgb), .85);pointer-events:none;border-radius:3px;padding:0 3px;font:700 11px/1.3 ui-monospace,monospace;position:absolute;top:0;left:14px}#combat .rail-orders.given{color:#4ade80}#combat .rail-orders.idle{color:#f97316}#combat .rail-danger{background:rgba(var(--hud-rgb), .85);pointer-events:none;border-radius:3px;padding:0 3px;font:700 13px/1.2 system-ui,sans-serif;position:absolute;bottom:0;right:0}#combat .rail-danger.crash{color:#ef4444}#combat .rail-danger.rubble{color:#facc15}#combat .rail-danger.clash{color:#f97316}#combat .rail-stuck{text-align:center;color:#fff;pointer-events:none;background:#7f1d1de0;font:700 10px/1.4 system-ui,sans-serif;position:absolute;top:38%;left:0;right:0}#combat .rail-cargo{background:var(--pickup,#facc15);color:var(--pickup-ink,#111827);pointer-events:none;border-radius:3px;padding:0 3px;font:700 11px/1.3 ui-monospace,monospace;position:absolute;bottom:0;left:14px}#combat .rail-orders[hidden],#combat .rail-danger[hidden],#combat .rail-stuck[hidden],#combat .rail-cargo[hidden]{display:none}#combat .route-labels span.cargo{color:var(--pickup-ink,#111827);background:var(--pickup,#facc15);text-shadow:none;border-radius:3px;padding:0 4px;font-size:11px;font-weight:700;transform:translateY(-50%)}#combat .hud-block>h4:first-child{margin-top:0}#combat.touch .combat-hud{background:var(--panel);border-left:1px solid var(--border);padding:8px 10px;overflow-y:auto}#combat:not(.touch) .ship-peek{right:318px}#combat:not(.touch) .ai-audit{right:auto;left:calc(8px + var(--rail-own,0px));max-height:calc(100% - var(--audit-top,100px) - 80px);top:100px}#combat .combat-hud h3{margin:0 0 4px}#combat .combat-hud h4{color:var(--muted);margin:12px 0 4px;font-weight:600}#combat .combat-hud p{margin:3px 0}#combat .combat-hud .objective{color:var(--objective)}#combat .combat-hud .row{flex-wrap:wrap;gap:4px;margin:6px 0;display:flex}#combat .combat-hud button.active{background:var(--accent);border-color:var(--accent)}#combat .ship-row,#combat .weapon-row{border-radius:3px;grid-template-columns:1fr 70px auto;align-items:center;gap:6px;padding:2px 4px;display:grid}#combat .ship-row{cursor:pointer}#combat .ship-row:hover{background:var(--control)}#combat .ship-row.selected{outline:1px solid #4ade80}#combat .ship-row.dead{opacity:.5;cursor:default}#combat .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#combat .bar{background:#111827;border-radius:3px;height:6px;overflow:hidden}#combat .bar .fill{background:#22c55e;height:100%;display:block}#combat .bar.heat .fill{background:linear-gradient(90deg,#f59e0b,#ef4444)}#combat .bar.shield .fill{background:#60a5fa}#combat .ok{color:var(--ok)}#combat .muted{color:var(--muted)}#combat .warning{color:var(--warn)}#combat .error{color:var(--error)}#combat .log p{color:var(--hud-soft);font-size:12px}#combat .help{color:var(--muted);margin-top:12px;font-size:12px}#combat .combat-end{background:rgba(var(--hud3-rgb), .95);border:1px solid var(--border);border-radius:6px;min-width:320px;max-width:480px;padding:16px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#combat .combat-end h2{margin:0 0 6px}#combat .combat-end.victory h2{color:#4ade80}#combat .combat-end.defeat h2{color:var(--error)}#combat .combat-end.retreat h2{color:var(--warn)}#combat .combat-end ul{padding-left:18px}#combat .ship-row.primary{outline:2px solid #facc15}#combat .ship-row .helm{font-variant-numeric:tabular-nums;font-size:12px}#combat .route-labels{pointer-events:none;position:absolute;inset:0}#combat .ship-peek{top:8px;right:calc(8px + var(--rail-rival,0px));box-sizing:border-box;pointer-events:none;z-index:5;background:rgba(var(--hud4-rgb), .94);width:260px;color:var(--hud-text);border:1px solid #3b4252;border-radius:6px;padding:8px 10px;font-size:12px;line-height:1.35;position:absolute;box-shadow:0 4px 14px #00000073}#combat .ship-peek .muted{color:#9ca3af}#combat .ship-peek .peek-head{margin-bottom:6px}#combat .ship-peek .peek-grid{grid-template-columns:auto 1fr;align-items:center;gap:4px 8px;font-size:11px;display:grid}#combat .ship-peek .peek-track{background:#1f2937;border-radius:3px;height:14px;position:relative;overflow:hidden}#combat .ship-peek .peek-track.thin{height:9px}#combat .ship-peek .peek-stack{flex-direction:column;gap:2px;display:flex}#combat .ship-peek .peek-fill{height:100%}#combat .ship-peek .peek-figure{font-variant-numeric:tabular-nums;color:#f9fafb;text-shadow:0 0 2px #000,0 0 3px #000;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex;position:absolute;inset:0}#combat .ship-peek .peek-track.thin .peek-figure{font-size:8px;line-height:9px}#combat .ship-peek .peek-boxes{gap:3px;display:flex}#combat .ship-peek .peek-boxes:has(.lost){padding-top:10px}#combat .ship-peek .peek-box{color:#d1d5db;border:1px solid #4b5563;border-radius:3px;padding:0 4px;font-size:10px;position:relative}#combat .ship-peek .peek-box.on{color:#111827;background:#e5e7eb;border-color:#e5e7eb;font-weight:700}#combat .ship-peek .peek-box.lost{color:#6b7280;background:#1f2937;border-color:#374151}#combat .ship-peek .peek-box.none{opacity:.3}#combat .ship-peek .peek-box.broken{color:#fecaca;background:#7f1d1d;border-color:#dc2626}#combat .ship-peek .peek-box-tension{font-size:9px;position:absolute;top:-11px;left:50%;transform:translate(-50%)}#combat .ship-peek .peek-line{align-items:center;gap:6px;font-size:11px;display:flex}#combat .ship-peek .peek-pips{gap:1px;display:inline-flex}#combat .ship-peek .pip{opacity:.25;filter:grayscale()}#combat .ship-peek .pip.on{opacity:1;filter:none}#combat .ship-peek .hp-weapons{margin-top:8px}#combat .ship-peek .error{color:#f87171}#combat .ship-peek .warning{color:var(--warn)}#combat .ship-peek .peek-rows{grid-template-columns:auto 1fr;gap:2px 10px;margin-top:6px;display:grid}#combat .route-labels span{white-space:nowrap;color:#fde047;text-shadow:0 0 3px #000,0 0 3px #000;font-size:11px;position:absolute;transform:translate(6px,-50%)}#combat .route-labels span.contact{color:#fca5a5;font-weight:600}#combat .route-labels span.arc-tag[hidden]{display:none}#combat .route-labels span.arc-tag{text-shadow:none;text-align:left;border-radius:4px;padding:2px 6px 3px;line-height:1.15;display:inline-block;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000073}#combat .route-labels span.arc-tag .arc-head{align-items:baseline;gap:6px;display:flex}#combat .route-labels span.arc-tag .arc-head b{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}#combat .route-labels span.arc-tag .arc-cd{opacity:.9;font-variant-numeric:tabular-nums;font-size:11px;font-style:normal;font-weight:600}#combat .route-labels span.arc-tag .arc-note{opacity:.92;font-size:10px;font-weight:600}#combat .route-labels span.missile-eta{color:#fff;text-shadow:none;font-variant-numeric:tabular-nums;background:#c2410cd9;border-radius:3px;padding:0 3px;font-size:10px;font-weight:700;transform:translate(6px,-120%)}#combat .route-labels span.command-mark{color:#111;text-shadow:none;background:#facc15;border-radius:3px;padding:0 4px;font-size:11px;font-weight:600;transform:translate(-50%,-100%)}#combat .route-labels span.ai-intent{color:#fff;text-shadow:none;white-space:nowrap;background:#b91c1cbf;border-radius:3px;padding:0 4px;font-size:10px;transform:translate(-50%)}#combat .route-labels span.ai-intent.ram-intent{background:#b45309d9}#combat .route-labels span.repertoire{color:var(--hud-text-bright);background:rgba(var(--hud3-rgb), .75);text-shadow:none;border-radius:3px;padding:0 3px;font-size:10px}#combat .route-labels span.region{color:#bfdbfe;opacity:.85;font-size:10px;transform:translate(-50%,-50%)}#combat .route-labels span.region.corridor,#combat .route-labels span.region.edge{color:#fcd34d}#combat .route-labels span.region.junction{color:#e9d5ff}#combat .route-labels span.region.pocket{color:#9ca3af}#combat .route-labels span.region.nebula{color:#ddd6fe}#combat .route-labels span.region.rubble{color:#bbf7d0}#combat .route-labels span.region.gate{color:#fde047;font-size:9px;font-weight:600}#combat .route-labels span.ten{color:#22d3ee;font-weight:600}#combat .route-labels span.tension{color:#fb923c;transform:translate(-50%, calc(-50% - var(--lift,0px)));font-size:13px;font-weight:700}#combat .route-labels span.dim{opacity:.6;font-size:10px;font-weight:400}#combat .control-box{font-variant-numeric:tabular-nums;flex-direction:column;gap:2px;display:flex}#combat .axis-row{grid-template-columns:52px 1fr auto auto;align-items:center;gap:6px;font-size:12px;display:grid}#combat .gear-row{gap:3px;margin:2px 0 4px 58px;display:flex}#combat .gear-row button{padding:1px 7px;font-size:12px}#combat .stretch-gears{flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0;display:flex}#combat .stretch-gears .name{margin-right:4px}#combat .gear-chip{color:#94a3b8;border:1px solid #334155;border-radius:4px;padding:1px 7px;font-size:12px}#combat .gear-chip.now{color:#bfdbfe;border-color:#60a5fa}#combat .gear-chip.chosen{color:#111;background:#facc15;border-color:#facc15;font-weight:700}#combat .route-labels span.gear{color:#111;text-shadow:none;background:#facc15;border-radius:3px;padding:0 4px;font-weight:700;transform:translate(10px,-150%)}#combat .gear-chip.chosen.over,#combat .route-labels span.gear.over{color:#fff;background:#dc2626;border-color:#dc2626}#combat .gear-chip.chosen.calm,#combat .route-labels span.gear.calm{color:#052e16;background:#22c55e;border-color:#22c55e}#combat .gear-chip.chosen.over:after,#combat .route-labels span.gear.over:after{content:"⚡";animation:.8s steps(2,jump-none) infinite tension-blink;animation-delay:var(--blink,0s);margin-left:3px}#combat .gear-chip.chosen.calm:after,#combat .route-labels span.gear.calm:after{content:"⚡";margin-left:3px;-webkit-text-decoration:line-through #052e16;text-decoration:line-through #052e16;text-decoration-thickness:2px}@keyframes tension-blink{0%{opacity:1}to{opacity:.15}}#combat .route-labels span.route-gear{color:var(--hud-text);background:rgba(var(--hud3-rgb), .75);text-shadow:none;border-radius:3px;padding:0 3px;font-size:10px;font-weight:600;transform:translate(6px,-50%)}#combat .objective-tag{color:#93c5fd}#combat .proposal{border-left:2px solid #facc15;margin-top:4px;padding:4px 6px;font-size:12px}#station .families{flex-wrap:wrap;gap:8px;margin:6px 0;display:flex}#station .family{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;width:220px;padding:8px 10px;display:flex}#station .family strong{font-size:14px}#station .family span{color:var(--muted)}#station select{margin-right:6px}body[data-screen=map] #toolbar>.group:not(.nav){display:none}#map{z-index:6;background:radial-gradient(ellipse at 50% 20%, var(--glow), var(--bg));grid-area:2/1/3/3;grid-template-columns:1fr 320px;min-height:0;display:grid}#map[hidden]{display:none}#map .map-scroll{justify-content:center;padding:12px;display:flex;overflow-y:auto}#map .map-board{width:min(100%,560px);height:auto}#map .edge{stroke:#334155;stroke-width:2px;stroke-dasharray:4 5}#map .edge.walked{stroke:#94a3b8;stroke-dasharray:none;stroke-width:3px}#map .edge.next{stroke:#e2e8f0;stroke-dasharray:none}#map .node{cursor:pointer}#map .node circle{stroke-width:2px;transition:r .15s}#map .node.visited circle{fill:#2b3444}#map .node.visited text{opacity:.55}#map .node.open circle{stroke-width:3.5px;animation:1.4s ease-in-out infinite pulse}#map .node.current circle{stroke:#fff;stroke-width:4px}#map .node.selected circle{fill:#26324a}#map .node:not(.open):not(.visited):not(.current){opacity:.7}@keyframes pulse{50%{stroke-opacity:.35}}#map .map-panel{background:var(--panel);border-left:1px solid var(--border);padding:12px 14px;overflow-y:auto}#map .map-panel h2{margin:0 0 4px}#map .map-panel h3{margin:14px 0 4px}#map .map-panel p{margin:4px 0}#map .map-panel .muted{color:var(--muted)}#map .map-panel .notice{color:#bbf7d0;background:#1e3a2a;border-radius:4px;padding:6px 8px}#map .map-panel .picks{flex-direction:column;gap:3px;margin:4px 0 8px;display:flex}#map .map-panel .help{color:var(--muted);margin-top:10px;font-size:12px}#map .map-panel hr{border:none;border-top:1px solid var(--border);margin:14px 0 8px}#viewport .hangar-tools{--tool-gap:clamp(2px, 1cqh, 8px);--tool:clamp(26px, calc((100cqh - 16px - 30px - 3px - 9 * var(--tool-gap)) / 10), 58px);z-index:3;box-sizing:border-box;gap:var(--tool-gap);pointer-events:none;flex-direction:column;width:268px;padding:0;display:flex;position:absolute;top:8px;left:8px}#viewport .tool-row{flex-direction:column;gap:2px;display:flex}#viewport .tool-row[hidden]{display:none}#viewport .tool-row-body>*{pointer-events:auto}#viewport .tool-row-body{flex-wrap:wrap;align-items:flex-start;gap:3px;display:flex}#viewport .tool-row-body>.group{gap:2px;display:flex}#viewport .tool-row-body>.group[hidden]{display:none}#viewport .hangar-tools .tool-row-body>button,#viewport .hangar-tools .tool-row-body>details>summary{box-sizing:border-box;width:var(--tool);height:var(--tool);font-size:clamp(8px, calc(var(--tool) * .19), 11px);text-align:center;white-space:normal;overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:3px;line-height:1.15;display:inline-flex}#viewport .hangar-tools .tool-row-body>button[hidden]{display:none}#viewport .hangar-tools .tool-off{color:#fecaca;border-color:#f87171}#viewport .hangar-tools .tool-icon{font-size:clamp(14px, calc(var(--tool) * .38), 22px);line-height:1}@container (height<=640px){#viewport .hangar-tools .tool-row-body>button:has(>.tool-icon)>span:not(.tool-icon){display:none}#viewport .hangar-tools .tool-row-body>button.tool-add.placing>.tool-add-name{display:none}}#viewport .hangar-tools .tool-stack{flex-direction:column;gap:3px;display:flex}#viewport .hangar-tools .tool-switch{box-sizing:border-box;width:var(--tool);height:var(--tool);font-size:clamp(8px, calc(var(--tool) * .19), 11px);padding:0;line-height:1.15;position:relative;overflow:hidden}#viewport .tool-switch-strip{gap:2px;transition:transform .18s;display:flex;position:absolute;inset:0 auto 0 0}#viewport .tool-switch.on .tool-switch-strip{transform:translateX(calc(18px - var(--tool)))}#viewport .tool-switch-cell{box-sizing:border-box;width:calc(var(--tool) - 10px);text-align:center;overflow-wrap:anywhere;background:var(--control-deep);height:100%;color:var(--muted);justify-content:center;align-items:center;padding:2px;transition:background .18s,color .18s;display:flex}#viewport .tool-switch-cell.current{background:var(--accent);color:var(--on-accent)}#viewport .hangar-tools .symmetry-btn .symmetry-icon{width:clamp(16px, calc(var(--tool) * .42), 24px);height:clamp(16px, calc(var(--tool) * .42), 24px);order:-1}#viewport .palette{z-index:6;background:color-mix(in srgb, var(--panel) 90%, transparent);border:1px solid var(--border);border-radius:6px;width:196px;padding:6px;position:absolute;top:8px;bottom:8px;left:284px;overflow-y:auto}#viewport .palette-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:4px 2px;font-size:11px}#viewport .palette-title.palette-sub{opacity:.8;margin:2px 2px 1px;font-size:9px}#viewport .palette-title.over{color:var(--error);font-weight:700}#viewport .palette-race{align-items:center;gap:6px;margin-bottom:4px;display:flex}#viewport .palette-race select{flex:1;min-width:0}#viewport .palette-size{border-left:3px solid var(--size);margin-bottom:6px;padding-left:6px}#viewport .palette-size.size-s{--size:var(--size-s)}#viewport .palette-size.size-m{--size:var(--size-m)}#viewport .palette-size.size-l{--size:var(--size-l)}#viewport .palette-size.size-xl{--size:var(--size-xl)}#viewport .palette-size-head{align-items:baseline;gap:6px;margin:2px 0 4px;display:flex}#viewport .palette-size-note{color:var(--muted);font-size:11px}#viewport .size-badge{background:var(--size);color:#111;text-align:center;border-radius:4px;min-width:22px;padding:0 6px;font-size:13px;font-weight:700}#viewport .palette-size .palette-tile{border-color:var(--size)}#viewport .palette-size-tag{background:var(--size);color:#111;border-radius:3px;padding:0 3px;font-size:10px;font-weight:700;position:absolute;top:2px;left:2px}#viewport .palette-grid{grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px;display:grid}#viewport .palette-tile{flex-direction:column;align-items:center;gap:2px;min-width:0;padding:4px 2px;display:flex;position:relative}#viewport .palette-tile img{object-fit:contain;border-radius:4px;width:48px;height:48px}#viewport .palette-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}#viewport .palette-count{text-shadow:0 0 3px #000;font-size:11px;font-weight:700;position:absolute;top:2px;right:3px}#viewport .palette-tile.empty{opacity:.45}#viewport .palette-tile.suffixed{border:2px solid var(--gold)}#viewport .palette-suffix{color:var(--gold);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}#viewport .palette-tile.rare{border:2px solid var(--rare);box-shadow:0 0 6px color-mix(in srgb, var(--rare) 55%, transparent)}#viewport .palette-tile.locked{opacity:.35;filter:grayscale()}#viewport .palette-tile.over .palette-count{color:var(--error)}.piece-tooltip{z-index:100;pointer-events:none;background:var(--panel);border:1px solid var(--border);border-radius:6px;max-width:260px;padding:8px 10px;position:fixed;box-shadow:0 4px 16px #0006}.piece-tooltip[hidden]{display:none}.piece-tooltip p{margin:4px 0;font-size:12px}.piece-tooltip .muted{color:var(--muted)}.piece-tooltip dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;font-size:12px;display:grid}.piece-tooltip.bp-tooltip{background:linear-gradient(180deg, var(--tip-glow), var(--panel) 45%);border-color:#334155;width:280px;max-width:280px;padding:0;overflow:hidden;box-shadow:0 10px 30px #0000008c}.bp-tooltip .bpt-head{border-bottom:1px solid #ffffff12;align-items:center;gap:10px;padding:10px 12px 8px;display:flex}.bp-tooltip .bpt-head .ship-pic{background:var(--pic-bg);border-radius:8px;width:72px;height:72px}.bp-tooltip .bpt-title{flex-direction:column;gap:2px;min-width:0;display:flex}.bp-tooltip .bpt-title strong{overflow-wrap:anywhere;font-size:15px}.bp-tooltip .bpt-title span{font-size:12px}.bp-tooltip .bpt-stats{grid-template-columns:1fr 1fr;gap:6px 12px;padding:8px 12px;font-size:12px;display:grid}.bp-tooltip .bpt-stat{grid-template-columns:18px auto;align-items:center;column-gap:4px;display:grid}.bp-tooltip .bpt-stat .ico{color:var(--muted);grid-row:span 2;font-size:15px}.bp-tooltip .bpt-stat .muted{text-transform:uppercase;letter-spacing:.04em;font-size:10px}.bp-tooltip .bpt-stat b{font-size:13px}.bp-tooltip .bpt-stat.hp .ico{color:#f87171}.bp-tooltip .bpt-stat.speed .ico{color:#67e8f9}.bp-tooltip .bpt-stat.weapons .ico{color:#fb923c}.bp-tooltip .bpt-stat.shields .ico{color:#60a5fa}.bp-tooltip .bpt-stat.bad b{color:#f87171}.bp-tooltip .bpt-cost{border-top:1px solid #ffffff12;align-items:baseline;gap:8px;padding:6px 12px;font-size:13px;display:flex}.bp-tooltip .bpt-cost .core{color:#fde68a}.bp-tooltip .bpt-status{border-left:3px solid;border-radius:6px;margin:4px 8px 8px;padding:6px 8px;font-size:12px}.bp-tooltip .bpt-status.ok{color:#bbf7d0;background:#4ade8014;border-color:#4ade80}.bp-tooltip .bpt-status.soft{color:#fde68a;background:#fbbf2414;border-color:#fbbf24}.bp-tooltip .bpt-status.bad{color:#fecaca;background:#f8717114;border-color:#f87171}.bp-tooltip .bpt-status ul{margin:4px 0 0;padding-left:16px}.bp-tooltip>p{margin:0 12px 6px}.bp-tooltip .small{font-size:11px}.bp-tooltip .ok{color:var(--ok)}.bp-tooltip .res-list{gap:8px;display:inline-flex}.bp-tooltip .res{align-items:baseline;gap:2px;display:inline-flex}.bp-tooltip .res-icon.structure{color:#94a3b8}.bp-tooltip .res-icon.electronics{color:#60a5fa}.bp-tooltip .res-icon.energy{color:#fbbf24}.piece-tooltip dt{color:var(--muted)}.piece-tooltip .tip-suffix{border:1px solid var(--gold);background:color-mix(in srgb, var(--gold) 10%, transparent);border-radius:4px;margin:6px 0;padding:5px 8px}.piece-tooltip .tip-suffix strong{color:var(--gold);font-size:12px}.piece-tooltip .tip-suffix p{margin:2px 0}.title-tip{z-index:1000;pointer-events:none;white-space:pre-line;max-width:300px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 9px;font-size:12px;line-height:1.35;position:fixed;box-shadow:0 4px 16px #0006}.title-tip[hidden]{display:none}.piece-tooltip dd{margin:0}.movement-goals[hidden]{display:none}.movement-charts{flex-direction:column;gap:12px;padding-top:8px;font-size:12px;display:flex}.resistance-toggle{color:var(--muted,#9ca3af);flex-direction:column;gap:4px;margin-top:8px;font-size:11px;display:flex}.resistance-toggle button{font-size:12px}.level-bar{flex-direction:column;display:flex;position:relative}.level-track{outline:1px solid var(--border);border-radius:4px;height:14px;display:flex;overflow:hidden}.level-track span{color:var(--muted);background:var(--panel);box-shadow:inset -1px 0 0 var(--border);white-space:nowrap;flex-direction:column;flex:1;justify-content:center;align-items:center;font-size:10px;line-height:1.1;display:flex;overflow:hidden}.level-track span:last-child{box-shadow:none}.level-track small{opacity:.8;font-size:9px}.level-bar.drive .level-track{height:22px}.level-bar.drive .level-track span.filled{color:#e5e7eb;background:#f59e0b59}.level-bar.drive .level-track span.current{color:#fff;background:#f59e0b99}.level-bar.drive .level-track span.current.danger{background:#ef444499}.level-bar.drive .level-track span.boost,.level-bar.accel .level-track span.boost{color:#ecfccb;background:repeating-linear-gradient(135deg,#84cc1673 0 5px,#84cc1640 5px 10px)}.level-bar>.level-pointer.wings{background:#84cc16}.level-bar>.level-pointer.wings:before{border-top-color:#84cc16}.level-bar>.level-pointer.wings:after{border-bottom-color:#84cc16}.level-bar.weight .level-track span.current{color:#fff;background:#a78bfa59}.level-bar.accel .level-track{height:22px}.level-bar.accel .level-track span.filled{color:#e5e7eb;background:#38bdf84d}.level-bar.accel .level-track span.current{color:#fff;background:#38bdf88c}.level-bar>.level-pointer{pointer-events:none;background:#22d3ee;border-radius:0;width:2px;margin-left:-1px;padding:0;position:absolute;top:-1px;bottom:-1px;overflow:visible;box-shadow:0 0 0 1px #0009}.level-bar>.level-pointer:before,.level-bar>.level-pointer:after{content:"";border:5px solid #0000;position:absolute;left:50%;transform:translate(-50%)}.level-bar>.level-pointer:before{border-top-color:#22d3ee;top:-6px}.level-bar>.level-pointer:after{border-bottom-color:#22d3ee;bottom:-6px}.level-bar.weight>.level-pointer{background:#f0abfc}.level-bar.weight>.level-pointer:before{border-top-color:#f0abfc}.level-bar.weight>.level-pointer:after{border-bottom-color:#f0abfc}.level-pointer b{color:#e5e7eb;white-space:nowrap;visibility:hidden;background:#171b21eb;border-radius:2px;padding:0 3px;font-size:11px;line-height:13px;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.level-ticks{pointer-events:none;height:0;position:absolute;left:0;right:0}.level-ticks.upper{top:0}.level-ticks.lower{bottom:0}.level-ticks span{white-space:nowrap;color:var(--muted);visibility:hidden;background:#171b21eb;border-radius:2px;padding:0 2px;font-size:10px;line-height:12px;position:absolute;transform:translate(-50%)}.level-ticks.upper span{bottom:5px}.level-ticks.lower span{top:5px}.level-bar:hover{z-index:4}.level-bar:hover .level-ticks span,.level-bar:hover .level-pointer b{visibility:visible}#viewport .ship-topbar{box-sizing:border-box;z-index:5;border:1px solid var(--border);background:var(--chip);width:fit-content;max-width:calc(100% - 372px);color:var(--chip-text);pointer-events:auto;border-radius:6px;flex-wrap:wrap;justify-content:center;gap:4px;margin-inline:auto;padding:3px;font-size:12px;display:flex;position:absolute;top:8px;left:284px;right:88px}#viewport .ship-topbar[hidden]{display:none}@media (pointer:coarse),(width<=900px),(height<=520px){#viewport .ship-topbar{scrollbar-width:none;border-top:none;border-radius:0 0 6px 6px;flex-wrap:nowrap;justify-content:flex-start;padding:2px 3px;font-size:11px;top:0;overflow-x:auto}#viewport .ship-topbar::-webkit-scrollbar{display:none}.ship-topbar .topbar-chip{white-space:nowrap;flex-shrink:0;padding:1px 6px}}.ship-topbar .topbar-chip{background:#ffffff0d;border-radius:4px;align-items:baseline;gap:5px;padding:2px 8px;display:flex}.ship-topbar .topbar-label{color:var(--muted)}.ship-topbar b{color:var(--hud-text);font-weight:600}.ship-topbar .topbar-chip:first-child b{color:var(--gold)}.ship-topbar .topbar-chip.over b{color:var(--error)}.ship-topbar .topbar-unit{color:var(--muted);font-size:10px}.ship-topbar .topbar-chip.warn b,.ship-topbar .topbar-chip.warn .topbar-unit{color:var(--warn)}.ship-topbar .topbar-budget{background:#ffffff14;border:1px solid #0000;border-radius:5px;flex-direction:column;gap:3px;min-width:150px;padding:4px 10px 5px;display:flex}.ship-topbar .budget-head{align-items:baseline;gap:6px;display:flex}.ship-topbar .topbar-budget b{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.ship-topbar .budget-left{color:var(--ok);margin-left:auto;font-size:11px}.ship-topbar .budget-track{background:#00000040;border-radius:3px;height:6px;display:block;overflow:hidden}.ship-topbar .budget-fill{background:var(--ok);border-radius:3px;height:100%;display:block}.ship-topbar .topbar-budget.full .budget-fill{background:var(--gold)}.ship-topbar .topbar-budget.full .budget-left,.ship-topbar .topbar-budget.full b{color:var(--gold)}.ship-topbar .topbar-budget.over{border-color:var(--error);background:color-mix(in srgb, var(--error) 18%, transparent)}.ship-topbar .topbar-budget.over .budget-fill{background:var(--error)}.ship-topbar .topbar-budget.over .budget-left,.ship-topbar .topbar-budget.over b{color:var(--error);font-weight:700}.ship-topbar .topbar-break{flex-basis:100%;height:0}.ship-topbar .topbar-fire{border-radius:5px;flex-direction:column;gap:1px;padding:3px 8px 4px;line-height:1.15;display:flex;box-shadow:0 1px 3px #00000059}.ship-topbar .topbar-fire .fire-head{align-items:baseline;gap:6px;display:flex}.ship-topbar .topbar-fire b{color:inherit;font-variant-numeric:tabular-nums;font-size:17px;font-weight:800}.ship-topbar .topbar-fire em{font-variant-numeric:tabular-nums;font-size:12px;font-style:normal;font-weight:600}.ship-topbar .topbar-fire .fire-where{opacity:.85;font-size:10px}.ship-topbar .topbar-fire .fire-note{font-size:11px;font-weight:600}@media (pointer:coarse),(width<=900px),(height<=520px){.ship-topbar .topbar-budget{flex-shrink:0;min-width:120px;padding:2px 8px 3px}.ship-topbar .topbar-budget b{font-size:14px}.ship-topbar .topbar-break{display:none}}.slot-summary{color:var(--muted);flex-direction:column;gap:1px;font-size:11px;display:flex}.slot-summary b{color:#e5e7eb;min-width:68px;margin-right:4px;font-weight:600;display:inline-block}.slot-summary b.over{color:#f87171}.ship-templates{flex-direction:column;gap:2px;margin:6px 0;font-size:12px;display:flex}.ship-templates .ok{color:var(--ok)}.ship-templates .warning{color:var(--warn)}.ship-templates .template-view{border:1px solid var(--border);max-width:100%;image-rendering:pixelated;border-radius:3px;margin:2px 0 6px;display:block}.ship-templates .template-tabs{border-bottom:1px solid var(--border);gap:2px;margin-top:2px;display:flex}.ship-templates .template-tabs button{border-bottom:none;border-radius:4px 4px 0 0;flex:1;padding:3px 4px;font-size:12px}.ship-templates .template-page{flex-direction:column;gap:4px;padding-top:4px;display:flex}.ship-templates .template-row{gap:4px;display:flex}.ship-templates .template-row select{flex:1;min-width:0}.ship-templates .template-look{white-space:nowrap}.ship-templates .template-offset{color:var(--muted,#9ca3af);align-items:center;gap:3px;margin-top:4px;font-size:11px;display:flex}.ship-templates .template-offset span{flex:1}.ship-templates .template-offset button{min-width:22px;padding:0 6px}.ship-templates .template-about{margin:0;font-size:11px}:is(#toolbar,.hangar-tools) .pivot-menu{position:relative}:is(#toolbar,.hangar-tools) .pivot-menu>summary{cursor:pointer;border:1px solid var(--border);background:var(--control);border-radius:4px;padding:3px 6px;list-style:none}:is(#toolbar,.hangar-tools) .pivot-menu>summary::-webkit-details-marker{display:none}:is(#toolbar,.hangar-tools) .pivot-menu>summary.active{border-color:var(--accent);color:#bfdbfe}:is(#toolbar,.hangar-tools) .pivot-options{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:2px;min-width:220px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 16px #0008}:is(#toolbar,.hangar-tools) .pivot-options button{text-align:left}:is(#toolbar,.hangar-tools) .tool-panel{min-width:0}:is(#toolbar,.hangar-tools) .tool-panel .color-row .swatches{grid-template-columns:repeat(2,1fr);gap:4px;width:236px;display:grid}:is(#toolbar,.hangar-tools) .tool-panel .color-row .swatches>button{box-sizing:border-box;text-align:center;white-space:normal;width:100%;height:34px;padding:2px 4px;font-size:12px;line-height:1.15}:is(#toolbar,.hangar-tools) .tool-panel .color-row .swatches>button:last-child:nth-child(odd){grid-column:1/-1}#toolbar .config-panel{gap:6px;width:290px}#toolbar .config-panel .config-row{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}#toolbar .config-panel .config-row select{flex:1;min-width:0}#toolbar .config-panel .lil-gui.root{--width:100%;--background-color:var(--panel);width:100%}#toolbar label.check{cursor:pointer;white-space:nowrap;align-items:center;gap:2px;padding:0 4px;display:inline-flex}#viewport .hangar-actions{z-index:3;flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:absolute;bottom:8px;right:8px}#viewport .actions-row{background:color-mix(in srgb, var(--panel) 90%, transparent);border:1px solid var(--border);border-radius:6px;gap:4px;padding:4px;display:flex}#viewport .actions-row[hidden]{display:none}#viewport .ship-name{width:170px}#home{z-index:6;background:var(--bg);grid-area:2/1/3/3;min-height:0;overflow-y:auto}#home[hidden],body[data-screen=home] #toolbar>.group:not(.nav){display:none}body[data-screen=home] #status:has(>.msg:empty){display:none}body[data-screen=combat] #toolbar .home-button{display:none}#toolbar .home-button{padding:0 10px;font-size:16px}#toolbar .sound-slider{align-self:center;width:70px}#toolbar .skin-select{align-self:center;padding:2px 4px;font-size:12px}#toolbar .skin-tuning{align-self:center;width:80px}#toolbar .skin-tuning-value{font-variant-numeric:tabular-nums;text-align:right;align-self:center;min-width:44px;font-size:12px}#toolbar .telemetry-switch.off{opacity:.45;filter:grayscale()}.telemetry-notice{z-index:900;color:#e2e8f0;background:#0f172a;border:1px solid #334155;border-radius:8px;max-width:min(440px,100vw - 32px);padding:12px 14px;font:13px/1.45 system-ui,sans-serif;position:fixed;bottom:16px;left:16px;box-shadow:0 8px 24px #00000073}.telemetry-notice p{margin:0 0 8px}.telemetry-notice ul{color:#cbd5e1;margin:0 0 8px;padding-left:18px}.telemetry-notice-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.telemetry-notice-buttons .telemetry-more{margin-right:auto}.telemetry-notice-buttons button.primary{background:var(--accent);border-color:var(--accent);font-weight:600}body[data-screen=combat] .telemetry-notice{display:none}.home-page{flex-direction:column;align-items:center;gap:32px;padding:12vh 16px 40px;display:flex}.home-page h1{letter-spacing:.04em;margin:0;font-size:44px}.home-choices{flex-wrap:wrap;justify-content:center;gap:20px;width:100%;max-width:1080px;display:flex}.home-choice{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;flex:260px;gap:8px;padding:28px 20px;display:flex}.home-choice:hover{border-color:var(--accent)}.home-choice strong{font-size:26px}.home-choice span{color:var(--muted)}.home-login{box-sizing:border-box;background:color-mix(in srgb, var(--panel) 85%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);border-radius:10px;width:100%;max-width:640px;padding:16px 18px}.home-login p{color:var(--muted);margin:6px 0 12px}.account-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.account-form label{color:var(--muted);flex-direction:column;gap:2px;font-size:12px;display:flex}.account-form input{width:150px}.account-form input.asked{border-color:var(--accent)}.account-form button.go{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.account-form .home-skip{margin-left:auto}#toolbar .account-badge{white-space:nowrap;order:99;margin-left:auto;font-weight:600}#toolbar .account-badge.off{color:var(--muted);font-weight:400}body[data-screen=combat] #toolbar .account-badge,body[data-screen=combat] #toolbar .shell-nav{display:none}.app-overlay{z-index:50;background:#05070a99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.app-overlay-box{box-sizing:border-box;background:var(--panel);border:1px solid var(--border);border-radius:10px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:18px 20px;position:relative;overflow-y:auto;box-shadow:0 10px 40px #00000080}.app-overlay.ideas .app-overlay-box{width:min(760px,100%)}.app-overlay-box h2{margin:0 0 6px}.app-overlay-box h3{color:var(--muted);margin:18px 0 8px;font-weight:600}.app-overlay-box p{margin:4px 0}.app-overlay-box .muted{color:var(--muted)}.app-overlay-box .small{font-size:12px}.app-overlay-box .error{color:var(--error)}.app-overlay-close{position:absolute;top:10px;right:10px}.app-overlay-box input,.app-overlay-box textarea{box-sizing:border-box;width:100%;font:inherit;margin:8px 0;display:block}.app-overlay-box textarea{resize:vertical;min-height:120px}.app-overlay-actions{align-items:center;gap:12px;display:flex}.app-overlay-box button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.idea-list{gap:8px;display:grid}.idea-card{background:var(--bg);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;padding:8px 12px}.idea-title{font-weight:700}.app-overlay-box h4{margin:14px 0 6px;font-weight:600}.telemetry-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.telemetry-table th,.telemetry-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;word-break:break-word;padding:3px 8px}.telemetry-table th{color:var(--muted);font-weight:600}#home-backdrop{z-index:5;pointer-events:none;background:var(--bg);grid-area:2/1/3/3;min-height:0;position:relative;overflow:hidden}#home-backdrop[hidden],#home-backdrop>:not(.combat-view){display:none}#home-backdrop .combat-view{position:absolute;inset:0}#home-backdrop .combat-view>:not(canvas){display:none!important}#home-backdrop .combat-view>canvas{display:block}body[data-screen=home] #home{background:radial-gradient(ellipse at center, rgba(var(--hud-rgb), .15) 0%, rgba(var(--hud-rgb), .6) 100%)}.home-choice{background:color-mix(in srgb, var(--panel) 85%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.home-page h1{text-shadow:0 2px 12px #000c}.home-peek{z-index:7;background:color-mix(in srgb, var(--panel) 85%, transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;border-radius:50%;width:44px;height:44px;padding:0;font-size:20px;line-height:1;position:fixed;bottom:16px;right:16px}.home-peek:hover{border-color:var(--accent)}body.home-peeking[data-screen=home] #home{pointer-events:none;background:0 0;overflow:hidden}body.home-peeking[data-screen=home] .home-page{display:none}body.home-peeking[data-screen=home] .home-peek{pointer-events:auto;opacity:.6}body.home-peeking[data-screen=home] .home-peek:hover{opacity:1}body.home-peeking[data-screen=home] #toolbar,body.home-peeking[data-screen=home] #status{visibility:hidden}#viewport .hangar-tools .config-panel{max-height:80vh;top:auto;bottom:0;left:calc(100% + 6px);overflow-y:auto}#viewport .palette[hidden]{display:none}#viewport .hangar-tools .tool-add-img{width:calc(var(--tool) * .58);height:calc(var(--tool) * .58);object-fit:contain;border-radius:3px}#viewport .hangar-tools .tool-add-img[hidden],#viewport .hangar-tools .tool-icon[hidden]{display:none}#viewport .hangar-tools .tool-add-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}#viewport .hangar-tools .tool-add.placing{border-color:#fbbf24}#viewport .tool-cancel{z-index:7;box-sizing:border-box;color:#fecaca;background:#2a1f24;border-color:#f87171;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:72px;height:72px;padding:4px;font-size:12px;display:flex;position:absolute;top:8px;right:8px}#viewport .tool-cancel .tool-icon{font-size:30px;line-height:1}#viewport .tool-cancel[hidden]{display:none}.arc-diagram{flex:none;margin:6px auto 0;display:block;overflow:visible}:root[data-skin=maqueta-clara]{--bg:#1d1712;--panel:#2a211a;--border:#4a3b2f;--text:#ece3d6;--muted:#a8977f;--accent:#b5865a;--error:#f87171;--control:#362a21;--control-hover:#43352a;--control-deep:#241c16;--glow:#2e241c;--tip-glow:#32271e;--on-accent:#1d1712;--pic-bg:radial-gradient(circle at 50% 40%, #3a2e24, #15110d);--chip:#1a1410cc;--chip-strong:#1a1410dd;--chip-solid:#1a1410e8;--chip-text:var(--text);--gold:#e0a84a;--hud-rgb:26, 20, 16;--hud2-rgb:32, 25, 20;--hud3-rgb:32, 25, 20;--hud4-rgb:29, 23, 18;--hud5-rgb:48, 38, 30;--hud-text:#ece3d6;--hud-text-bright:#faf5ee;--ok:#4ade80;--warn:#fbbf24;--objective:#f2c14e;--hud-muted:#a8977f;--hud-soft:#d6c8b6}:root[data-skin=maqueta-oscura]{--bg:#16171a;--panel:#202125;--border:#3a3c41;--text:#e6e4e1;--muted:#9b9a98;--accent:#6d7480;--error:#f87171;--control:#2a2b30;--control-hover:#35373d;--control-deep:#1c1d21;--glow:#232428;--tip-glow:#26272b;--on-accent:#f5f5f4;--hud-rgb:20, 21, 24;--hud2-rgb:24, 25, 28;--hud3-rgb:24, 25, 28;--hud4-rgb:22, 23, 26;--hud5-rgb:36, 37, 42;--pic-bg:radial-gradient(circle at 50% 40%, #2c2d32, #111214);--chip:#111214cc;--chip-strong:#111214dd;--chip-solid:#111214e8;--chip-text:var(--text);--gold:#fbbf24}body:not([data-screen=hangar]) #viewport .palette,body:not([data-screen=hangar]) #viewport .inspector-toggle{display:none!important}.world{background:radial-gradient(ellipse at 50% 20%, var(--glow), var(--bg));grid-template:"bar bar""warn warn""buy buy""map panel"minmax(0,1fr)/1fr 380px;grid-area:1/1/-1/-1;height:100%;min-height:0;display:grid}.world .muted{color:var(--muted)}.world .small{font-size:12px}.world .grow{flex:1}.world .chip{border:1px solid var(--border);background:var(--bg);border-radius:12px;align-items:baseline;gap:5px;padding:2px 8px;display:inline-flex}.world .res-list{gap:8px;display:inline-flex}.world .res{align-items:baseline;gap:2px;display:inline-flex}.world .res-icon.structure{color:#94a3b8}.world .res-icon.electronics{color:#60a5fa}.world .res-icon.energy{color:#fbbf24}.world .lives b{color:#f87171;letter-spacing:2px}.world .threat b{color:#fb923c}.world button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.world-bar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;grid-area:bar;align-items:center;gap:6px 8px;padding:6px 10px;display:flex}.world>.problem{color:var(--error);grid-area:warn;margin:0;padding:4px 10px}.world-buy{border-bottom:1px solid var(--border);background:#2a2412;flex-wrap:wrap;grid-area:buy;align-items:center;gap:6px;padding:6px 10px;display:flex}.world-buy .buy-title{color:#fde68a;font-weight:600}.world-map{flex-direction:column;grid-area:map;min-width:0;min-height:0;display:flex}.world-head{align-items:center;gap:8px;padding:8px 10px 0;display:flex}.world-banner{border:1px solid var(--border);background:var(--panel);color:#fdba74;border-radius:6px;flex:1;align-items:center;gap:8px;padding:5px 10px;display:flex}.world-banner.now{color:#fecaca;background:#3a1c1c;border-color:#f87171}.world-banner button{margin-left:auto}.world-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;padding:0 10px 6px;font-size:12px;display:flex}.world-legend .key{align-items:center;gap:5px;display:inline-flex}.world-legend .sw{border:2px solid;border-radius:3px;width:12px;height:12px}.world-legend .sw.controlled{background:#4ade8033;border-color:#4ade80}.world-legend .sw.accessible{background:#22d3ee33;border-color:#22d3ee}.world-legend .sw.locked{background:#0f172a;border-color:#94a3b8}.world-legend .sw.out_of_reach{background:#0f172a;border-color:#334155}.world-panel .state{background:var(--bg);border-left:3px solid;border-radius:6px;margin:6px 0;padding:5px 8px}.world-panel .state.controlled{color:#bbf7d0;border-color:#4ade80}.world-panel .state.accessible{color:#a5f3fc;border-color:#22d3ee}.world-panel .state.locked,.world-panel .state.out_of_reach{color:#cbd5e1;border-color:#64748b}.world-nav{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.world-board{border:1px solid #1e293b;border-radius:10px;flex:1;width:auto;min-height:0;margin:0 10px 10px;position:relative;overflow:hidden;box-shadow:inset 0 0 40px #000}.world-board3d{touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.world-board3d canvas{cursor:grab;width:100%;height:100%;display:block}.world-board3d.dragging canvas{cursor:grabbing}.board-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.board-label{color:#cbd5e1;white-space:nowrap;background:#05080fb8;border:1px solid #94a3b840;border-radius:9px;align-items:center;gap:5px;padding:1px 7px;font-size:12px;display:flex;position:absolute;top:0;left:0}.board-label:empty,.board-label .name{display:none}.board-label.selected .name,.board-label.hover .name{display:inline}.board-label:not(.selected):not(.hover){background:#05080f80;padding:0 5px}.board-label.bare:not(.selected):not(.hover){display:none}.board-label .dots{color:#f87171;letter-spacing:1px;font-size:9px}.board-label .mark{color:#fbbf24;font-weight:700}.board-label .mark.hidden{color:#94a3b8}.board-label .ico{object-fit:contain;width:16px;height:16px}.world-panel .planet .planet-art{object-fit:contain;width:28px;height:28px}.board-label.controlled{color:#dcfce7;border-color:#4ade80}.board-label.accessible{color:#e0f2fe;background:#082f49d9;border-color:#22d3ee}.board-label .act{color:#67e8f9;font-weight:700}.board-label.out_of_reach{opacity:.45}.board-label.locked{opacity:.7;border-color:#94a3b866}.board-label .lock{font-size:10px}.board-label.selected,.board-label.hover{color:#fff;background:#1e293be6;border-color:#fff}.world-panel{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;grid-area:panel;min-height:0;display:flex}.world-panel .panel-body{flex:1;padding:10px 14px;overflow-y:auto}.world-panel h2{margin:0 0 2px}.world-panel h3{margin:0;font-size:13px}.world-panel p{margin:4px 0}.world-panel hr{border:none;border-top:1px solid var(--border);margin:12px 0 8px}.world-panel .report{color:#bbf7d0;background:#1e3a2a;padding:6px 10px}.world-panel .report p{margin:2px 0}.world-panel .report .report-close{float:right;margin-left:8px}.world-panel .strong{color:#fde68a;font-weight:600}.world-panel .danger{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.world-panel .dots{color:#f87171;letter-spacing:2px}.world-panel .problem{color:var(--error)}.world-panel .planet{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.world-panel .planet strong{cursor:help;min-width:96px;font-weight:600}.world-panel .slot{align-items:center;gap:4px;display:inline-flex}.world-panel .row{cursor:help;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:6px 0;display:flex}.world-panel .row .lbl{min-width:96px;color:var(--muted);font-size:12px}.world-panel .res.data{color:#c4b5fd}.world-panel .core{color:#fde68a}.world-panel .slots{gap:3px;display:inline-flex}.world-panel .slot-icon{border:2px solid;border-radius:3px;place-items:center;min-width:20px;height:20px;padding:0 3px;font-size:12px;line-height:1;display:inline-grid}.world-panel .slot-icon.structure{color:#94a3b8}.world-panel .slot-icon.electronics{color:#60a5fa}.world-panel .slot-icon.energy{color:#fbbf24}.world-panel .slot-icon.flexible{color:#f1f5f9}.world-panel .slot-icon.on{background:color-mix(in srgb, currentColor 25%, transparent)}.world-panel .state,.world-panel h2[title]{cursor:help}.chip.res.negative b{color:#e5534b}.fleet-panel .fleet-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}@media (width<=1300px){.fleet-panel .fleet-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.fleet-panel .squad-step{align-items:center;gap:6px;font-size:12px;display:flex}.fleet-panel .squad-step button{width:22px;height:22px;padding:0;font-weight:700;line-height:1}.fleet-panel .ship-card{background:linear-gradient(90deg, #14301f, var(--panel) 60%);border:1px solid #4ade8055;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px;padding:6px 8px 6px 6px;display:grid}.fleet-panel .ship-card.sandbox{background:var(--panel);border-color:#fbbf2455}.fleet-panel .ship-card strong{font-size:14px}.fleet-panel .ship-card .bp-stats{gap:2px 10px;font-size:12px}.fleet-panel .ship-pic{background:var(--pic-bg);object-fit:contain;border-radius:6px;display:block}.fleet-panel .bp-info{flex-direction:column;gap:4px;min-width:0;display:flex}.fleet-panel .bp-top{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fleet-panel .bp-stats{flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:13px;display:flex}.fleet-panel .stat{cursor:help;align-items:baseline;gap:3px;display:inline-flex}.fleet-panel .stat .ico{color:var(--muted)}.fleet-panel .stat.hp .ico{color:#f87171}.fleet-panel .stat.speed .ico{color:#67e8f9}.fleet-panel .stat.weapons .ico{color:#fb923c}.fleet-panel .stat.core .ico{color:#fde68a}.fleet-panel h3 .info{color:var(--muted);cursor:help;font-weight:400}.fleet-panel .bp-grid{grid-template-columns:repeat(auto-fill,116px);gap:6px;display:grid}.fleet-panel .bp-tile{border:1px solid var(--border);cursor:help;border-radius:8px;width:116px;height:116px;position:relative;overflow:hidden}.fleet-panel .bp-tile .ship-pic{border-radius:0;width:100%;height:100%}.fleet-panel .bp-tile.editing{border-color:var(--accent)}.fleet-panel .bp-tile.illegal{border-color:#f8717188}.fleet-panel .bp-size{background:var(--chip);color:var(--chip-text);border-radius:3px;padding:0 4px;font-size:11px;font-weight:700;position:absolute;top:3px;left:4px}.fleet-panel .bp-warn{color:#f87171;text-shadow:0 0 3px #000;font-size:15px;position:absolute;top:2px;right:4px}.fleet-panel .bp-warn.soft{color:#fbbf24}.fleet-panel .bp-banner{text-align:center;color:#fff;pointer-events:none;background:#7f1d1de0;padding:2px 0;font-size:12px;font-weight:700;position:absolute;top:42%;left:0;right:0}.race-badge{background:var(--race);color:#fff;text-shadow:0 0 2px #000,0 0 1px #000;cursor:help;border-radius:50%;flex:none;place-items:center;width:16px;height:16px;font-size:10px;font-weight:800;line-height:1;display:inline-grid;box-shadow:0 0 0 1px #0b0f17aa}.fleet-panel .bp-tile .race-badge.bp-race{position:absolute;top:3px;right:4px}.fleet-panel .bp-tile .bp-warn{top:20px}.fleet-panel .arsenal-block{align-items:center;gap:6px;margin:10px 0 6px;display:flex}.fleet-panel .other-race .bp-tile,.fleet-panel .other-race .bp-item{opacity:.6}.fleet-panel .other-race .bp-tile:hover,.fleet-panel .other-race .bp-item:hover{opacity:1}.fleet-panel .bp-tile.other-race-tile{opacity:.6}.fleet-panel .bp-tile.other-race-tile:hover{opacity:1}.fleet-panel .bp-infleet{color:#4ade80;font-size:10px;position:absolute;top:22px;left:4px}.fleet-panel .bp-cost{background:var(--chip);color:var(--chip-text);text-align:center;padding:2px 4px;font-size:11px;position:absolute;bottom:0;left:0;right:0}.fleet-panel .bp-cost .res-list{gap:5px}.fleet-panel .bp-over{background:var(--chip-strong);color:var(--chip-text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px;display:none;position:absolute;inset:0}.fleet-panel .bp-tile:hover .bp-over{display:flex}.fleet-panel .bp-over strong{overflow-wrap:anywhere;font-size:12px}.fleet-panel .bp-over select{padding:1px 4px;font-size:12px}.fleet-panel .bp-over .actions{flex-wrap:nowrap;justify-content:center}.fleet-panel .bp-over button{padding:2px 7px}.fleet-panel .bp-tile.confirming .bp-over{display:flex}.fleet-panel .bp-over button.confirm{color:#fff;background:#7f1d1d;border-color:#f87171}@media (pointer:coarse){.fleet-panel .bp-over .actions{gap:6px}.fleet-panel .bp-over button{min-width:34px;min-height:34px;font-size:15px}}.hp-weapons{flex-wrap:wrap;gap:6px;display:flex}.hp-weapon{cursor:help;background:#111827;border:1px solid #374151;border-radius:4px;align-items:flex-end;gap:4px;padding:3px;display:flex}.hp-weapon-icon{flex:none;width:36px;height:36px;position:relative}.hp-weapon-icon img{width:100%;height:100%}.hp-weapon.dead img{filter:grayscale()brightness(.5)}.hp-weapon-name{padding:2px;font-size:9px;display:block}.hp-weapon-badge{text-shadow:0 0 2px #000;font-size:9px;position:absolute;bottom:1px;left:2px}.hp-cols{align-items:flex-end;gap:5px;display:flex}.hp-col{background:#0b1220;border-radius:2px;outline:1px solid #4b5563;flex-direction:column-reverse;gap:1px;padding:1px;display:flex}.hp-col .hp-block{width:9px;height:3px}.hp-block{background:#374151;position:relative}.hp-fill{background:#22c55e;position:absolute;bottom:0;left:0}.hp-col .hp-fill{height:var(--fill);right:0}.hp-life{cursor:help;flex-wrap:wrap;gap:1px;display:flex}.hp-life .hp-block{width:3px;height:9px}.hp-life .hp-fill{width:var(--fill);top:0}#library{background:var(--bg);overflow:auto}.library-page{max-width:1100px;margin:0 auto;padding:16px}.library-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.library-head h2{margin:0;font-size:18px}.library-note{margin:6px 0 12px}.library-list{flex-direction:column;gap:6px;display:flex}.library-row{border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;padding:6px 8px;display:flex}.library-row.editing{border-color:var(--accent)}.library-row.confirming{border-color:#f87171}.library-row .ship-pic{flex:none;width:72px;height:72px}.library-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.library-info .error{color:var(--error)}.library-tags{flex-wrap:wrap;gap:4px;display:flex}.library-tags button{opacity:.55;padding:1px 7px;font-size:12px}.library-tags button.on{opacity:1;border-color:var(--accent);color:var(--accent)}.library-row .actions{gap:4px;display:flex}.library-row button.confirm{color:#fff;background:#7f1d1d;border-color:#f87171}.fleet-panel .arsenal-filter{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.fleet-panel .arsenal-filter select{padding:2px 6px}.fleet-panel .arsenal-price{align-items:center;gap:4px;display:inline-flex}.fleet-panel .arsenal-price input[type=range]{width:90px}.camp-page,.prep{--ok:#86efac;color:var(--text,#e2e8f0)}.camp-page .muted,.prep .muted,.prep-modal .muted{color:var(--muted)}.camp-page .small,.prep .small,.prep-modal .small{font-size:12px}.prep .bad{color:var(--error)}.camp-page button.primary,.prep button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.camp-page button.primary:disabled,.prep button.primary:disabled{opacity:.5}.camp-page button.danger{border-color:var(--error);color:#fff;background:#7f1d1d}.camp-page{box-sizing:border-box;width:100%;max-width:1080px;height:100%;margin:0 auto;padding:32px 20px 40px;overflow-y:auto}.camp-page h2{margin:0 0 18px}.camp-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.camp-card{background:var(--panel);border:1px solid var(--border);border-top:4px solid var(--faction);border-radius:10px;flex-direction:column;gap:6px;padding:16px;display:flex}.camp-card.soon{opacity:.7;border-style:solid dashed dashed}.camp-card p{margin:0}.camp-name{color:var(--faction);font-size:18px;font-weight:700}.camp-progress{font-size:13px;font-weight:600}.camp-bar{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.camp-bar>div{background:var(--faction);height:100%}.camp-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px;display:flex}.camp-warn{color:#fecaca;background:#3a1c1c;border-radius:6px;padding:6px 8px;font-size:12px}.prep{background:radial-gradient(ellipse at 50% 0%, var(--glow), var(--bg));flex-direction:column;height:100%;min-height:0;display:flex}.prep-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.prep-title{flex-wrap:wrap;flex:1;align-items:baseline;gap:4px 12px;min-width:0;display:flex}.prep-campaign{color:var(--faction);font-weight:700}.prep-mission{font-size:18px;font-weight:700}.prep .state,.prep-modal .state{border:1px solid var(--border);border-radius:10px;padding:1px 8px;font-size:12px}.prep .state.won,.prep-modal .state.won{border-color:var(--faction);color:var(--faction)}.prep .state.open,.prep-modal .state.open{color:#a5f3fc;border-color:#22d3ee}.prep-col{flex-direction:column;gap:8px;min-height:0;padding:12px 16px;display:flex}.prep-panel{border-bottom:1px solid var(--border);flex:none;max-height:42vh;overflow-y:auto}.prep-panel>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:baseline;gap:10px;padding:8px 16px;display:flex}.prep-panel>summary .prep-summary{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.prep-panel[open]>summary .prep-summary{display:none}.prep-panel .prep-mission-col{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:8px 20px;padding-top:0;display:grid}.prep-panel .prep-mission-col>.briefing,.prep-panel .prep-mission-col>.report,.prep-panel .prep-mission-col>.provisional{grid-column:1/-1}.prep-panel .prep-map{grid-row:span 3}.prep-main,.prep-body{flex-direction:column;flex:1;min-height:0;display:flex}@media (width>=901px){.prep-main{flex-direction:row}.prep-main>.prep-panel{border-bottom:0;border-right:1px solid var(--border);flex:none;width:clamp(280px,30vw,400px);max-height:none}.prep-main>.prep-panel:not([open]){width:150px}.prep-main>.prep-panel .prep-mission-col{grid-template-columns:1fr}.prep-main>.prep-panel .prep-map{grid-row:auto}.prep-main>.prep-body{min-width:0}}.prep-fleet-col{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--panel) 55%, transparent);flex:none;max-height:48%;overflow-y:auto}.prep-library-col{flex:1;overflow-y:auto}.prep .prep-col h3{margin:0;font-size:13px}.prep-col p{margin:2px 0}.prep-col-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.prep .briefing{border-left:3px solid var(--faction);background:var(--bg);padding:6px 10px}.prep .provisional{color:#fde68a;background:#3a2f12;border-radius:6px;padding:4px 8px;font-size:12px}.prep .report{border-radius:6px;padding:6px 10px}.prep .report.won{color:#bbf7d0;background:#1e3a2a}.prep .report.lost{color:#fecaca;background:#3a1c1c}.prep-map{text-align:center;align-self:center;margin:0}.prep-map canvas{width:220px;height:220px;display:block}.prep-block{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding-top:6px;font-size:13px;display:flex}.prep-block h3{color:var(--muted);margin-bottom:2px;font-weight:600}.prep-enemies{flex-wrap:wrap;gap:8px;display:flex}.prep-enemy{align-items:center;gap:6px;display:flex}.prep-count{font-weight:700}.prep-count.bad{color:var(--error)}.prep-fleet{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.ship-card{border:1px solid var(--border);background:var(--panel);min-height:170px;color:inherit;font:inherit;text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px;display:flex}button.ship-card{cursor:pointer}.ship-card .ship-pic{width:120px;height:120px}.ship-card .ship-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.ship-card.picked{border-color:var(--faction);box-shadow:0 0 0 2px color-mix(in srgb, var(--faction) 50%, transparent)}.ship-card.broken{border-color:var(--error)}.ship-card.over{border-color:var(--error);border-style:dashed}.ship-card.locked{opacity:.9}.ship-card.free{background:0 0;border-style:dashed}.free-plus{color:var(--muted);font-size:28px}.prep .fleet-tile.free{border-style:dashed;border-color:var(--border);background:0 0;flex-direction:column;justify-content:center;align-items:center;display:flex}.prep .fleet-tile.over{border-color:var(--error);border-style:dashed}.prep .fleet-tile.locked{border-color:var(--border)}.prep .fleet-tile .fleet-details>div{max-width:100%}.prep .bp-tile .bp-over .bp-why{font-size:11px}.prep-detail{background:var(--panel);border:1px solid var(--faction);border-radius:8px;flex-direction:column;gap:6px;padding:10px;display:flex}.prep-stats{flex-wrap:wrap;gap:2px 10px;font-size:12px;display:flex}.prep-stats span[title]{cursor:help}.bp-life{flex-direction:column;gap:4px;margin-top:3px;display:flex}.bp-life .hp-weapon-icon{width:28px;height:28px}.prep-actions{flex-wrap:wrap;gap:6px;display:flex}.prep-note{color:#fde68a;font-size:13px}.seg{display:flex}.seg button{border-radius:0;padding:2px 8px;font-size:12px}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-radius:0 6px 6px 0}.seg button.on{background:var(--accent);border-color:var(--accent);color:#fff}.prep-arsenal{flex-direction:column;gap:6px;display:flex}.prep-arsenal .bp-item .ship-pic{width:72px;height:72px}.prep-modal .bp-why.locked,.prep-modal .bad{color:var(--error)}.prep-modal .ok{color:var(--ok,#86efac)}.prep-library{flex-direction:column;gap:6px;display:flex}.bp-name-row{align-items:center;gap:5px;display:flex}.bp-item{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex;position:relative}.bp-item .ship-pic{flex:none;width:96px;height:96px}.bp-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.bp-info .bp-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bp-why{font-size:12px}.bp-warnings{color:#fde68a;cursor:help;font-size:12px}.prep-verdict .prep-warn{color:#fde68a;font-weight:400}.bp-why.core,.bp-why.broken,.bp-why.locked{color:var(--error)}.bp-why.full{color:#fde68a}.bp-why.prepared{color:var(--muted)}.bp-item.blocked.core,.bp-item.blocked.broken,.bp-item.blocked.locked{opacity:.75}.bp-actions{flex-direction:column;gap:4px;display:flex}.bp-item.confirming{border-color:var(--error)}.prep-foot{border-top:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.prep-verdict{font-size:13px}.prep-verdict.ok{color:var(--ok)}.prep-verdict.bad{color:var(--error);font-weight:600}.prep-foot button.primary{padding:8px 22px;font-size:15px}.prep-modal{z-index:50;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.prep-dialog{background:var(--panel);border:1px solid var(--border);width:min(760px,100%);max-height:calc(100vh - 32px);color:var(--text,#e2e8f0);border-radius:12px;padding:14px 16px 16px;overflow-y:auto}.prep-dialog-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.prep-dialog-head h3{margin:0}.prep-missions{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.mission-item{border:1px solid var(--border);background:var(--bg);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.mission-item:disabled{cursor:default;opacity:.55}.mission-item.open{border-color:#22d3ee}.mission-item.selected{border-color:var(--faction);box-shadow:0 0 0 2px color-mix(in srgb, var(--faction) 50%, transparent)}.mission-item .mission-num{color:var(--faction);font-size:20px;font-weight:700}.mission-item .sel{color:var(--faction)}@media (width<=900px){.prep-fleet{display:flex;overflow-x:auto}.prep-fleet .ship-card{flex:0 0 140px;min-height:0}.prep-fleet .ship-card .ship-pic{width:90px;height:90px}.prep-foot{flex-wrap:wrap}}.prep-panel>summary{list-style:none}.prep-panel>summary::-webkit-details-marker{display:none}.prep-panel>summary:before{content:"▸";color:var(--muted)}.prep-panel[open]>summary:before{content:"▾"}
