:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07121f;--panel:#0d1b2c;--panel-2:#13263d;--line:#1d3350;--text:#dce8f5;--muted:#7d93ad;--accent:#4fc3f7;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);overflow:hidden}#app{grid-template-columns:1fr 320px;height:100vh;display:grid}#stage{min-width:0;position:relative;overflow:hidden}#board{position:absolute;inset:0}.muted{color:var(--muted)}h1{font-size:17px}h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:12px}button,select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:6px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.primary{background:#1565c0;border-color:#1e88e5;font-weight:600}button.active{border-color:var(--accent);background:#1b4469}kbd{color:var(--muted);border:1px solid var(--line);border-radius:3px;margin-left:4px;padding:0 4px;font:10px ui-monospace,monospace}#command{background:var(--panel);border-bottom:1px solid var(--line);z-index:2;flex-direction:column;gap:10px;margin:-16px -16px 0;padding:14px 16px 12px;display:flex;position:sticky;top:-16px}#turnbar{flex-direction:column;gap:6px;display:flex}#turnbar .row{justify-content:space-between;align-items:center;gap:10px;display:flex}#turnbar .turn{white-space:nowrap;font-size:15px}#turnbar .hint{color:#b8cbe0;font-size:12px;line-height:1.4}#turnbar .hint.result{color:var(--text);font-weight:600}#turnbar button{white-space:nowrap}#turnbar.flash{animation:.4s flash}@keyframes flash{30%{border-color:#ef5350;box-shadow:0 0 0 2px #ef535080}}#shipbar{border:1px solid var(--line);z-index:0;background:#0d1b2cf2;border-radius:10px;min-width:220px;padding:8px;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}#shipbar .head{white-space:nowrap;align-items:baseline;gap:8px;margin-bottom:6px;font-size:13px;display:flex}#shipbar .buttons{align-items:center;gap:6px;display:flex}#shipbar .sep{background:var(--line);align-self:stretch;width:1px;margin:0 2px}#shipbar .targeting{border-left:3px solid var(--c);justify-content:space-between;align-items:center;gap:12px;padding-left:10px;font-size:13px;display:flex}#shipbar.flash{animation:.4s flash}#shipbar .buttons button{white-space:nowrap;padding:4px 8px;font-size:13px}.count{text-align:center;background:#0b2238;border-radius:8px;min-width:16px;padding:0 4px;font-size:11px;display:inline-block}#shipbar .warning{color:#ffab91;margin-top:6px;font-size:12px}#shipbar .planned{border-left:3px solid var(--c);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding-left:8px;font-size:13px;display:flex}#shipbar .planned button{padding:0 6px}.hp{color:#66bb6a;letter-spacing:1px;font-size:12px}#toast{border:1px solid var(--line);z-index:2;background:#0d1b2cf0;border-radius:10px;max-width:min(380px,100% - 24px);padding:6px 8px 6px 12px;font-size:13px;position:absolute;top:12px;left:12px;box-shadow:0 6px 24px #0006}#toast .summary-head{cursor:pointer;flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}#toast .close{color:var(--muted);background:0 0;border:none;margin-left:auto;padding:0 6px}#toast ul{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin:6px 0 2px;padding-top:6px;list-style:none;display:flex}.tone-bad{color:#ff8a80}.tone-good{color:#81c784}.tone-info{color:#ffd54f}.tone-muted{color:var(--muted)}.ev-enemySpotted{color:#ffd54f}.ev-rocketHit,.ev-shipDestroyed,.ev-trapTriggered,.ev-playerEliminated{color:#ff8a80}.ev-gameOver{font-weight:700}.ev-orderRejected{color:var(--muted)}#intro{z-index:5;background:#040a1299;place-items:center;display:grid;position:absolute;inset:0}#intro[hidden],#shipbar[hidden],#tip[hidden],#toast[hidden]{display:none}#intro .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;width:min(600px,100% - 32px);max-height:calc(100% - 32px);padding:20px 22px;line-height:1.45;display:flex;overflow-y:auto}#intro h2{color:var(--text);text-transform:none;letter-spacing:0;font-size:16px}#intro ul{flex-direction:column;gap:4px;padding-left:18px;display:flex}#intro table{border-collapse:collapse;font-size:13px}#intro td,#intro th{text-align:left;padding:2px 12px 2px 0}#intro th{color:var(--muted);font-weight:500}#intro button{align-self:flex-end}#sidebar{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;gap:20px;padding:16px;display:flex;overflow-y:auto}.title{justify-content:space-between;align-items:center;display:flex}#help{border-radius:50%;width:28px;height:28px;padding:0}.fleet{flex-direction:column;gap:4px;list-style:none;display:flex}.fleet li{cursor:pointer;border:1px solid #0000;border-radius:8px;grid-template-rows:auto auto auto;grid-template-columns:auto 1fr auto;gap:2px 8px;padding:7px 9px;display:grid}.fleet li kbd{grid-row:span 3;align-self:start;margin:0}.fleet li .status{color:var(--muted);grid-column:2/4;align-self:center;min-width:0;font-size:12px}.fleet li .gear{flex-direction:column;grid-column:2/4;gap:5px;margin-top:4px;display:flex}.gear .hold{align-items:center;gap:8px;font-size:12px;display:flex}.gear .hold .label{color:var(--muted)}.gear .hold .slots{gap:3px;display:flex}.gear .hold .slots i{border:1.5px solid #7a6531;border-radius:3px;width:12px;height:12px}.gear .hold .slots i.full{background:#ffd54f;border-color:#ffd54f;box-shadow:0 0 5px #ffd54f99}.gear .hold .count{color:var(--muted)}.gear .hold .count.on{color:#ffd54f;font-weight:600}.gear .hold.scout{color:#8fa6bf}.statuses{flex-wrap:wrap;gap:4px;display:flex}.status-tag{color:var(--s);background:color-mix(in srgb, var(--s) 14%, transparent);border:1px solid color-mix(in srgb, var(--s) 55%, transparent);cursor:help;white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px 2px 6px;font-size:11.5px;font-weight:600;display:inline-flex}.status-tag svg,.status-line svg{width:13px;height:13px;color:var(--s);flex:none}.status-line{border-left:2px solid var(--s);align-items:flex-start;gap:7px;margin-top:6px;padding-left:7px;display:flex}.status-line svg{margin-top:2px}.status-line strong{color:var(--s)}.status-line span{color:#b8cbe0}#shipbar .head .statuses{display:inline-flex}.gear .chips{flex-wrap:wrap;gap:4px;display:flex}.gear .chip{color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:4px;padding:2px 7px 2px 5px;font-size:11.5px;display:inline-flex}.gear .chip.empty{opacity:.55;border-style:dashed}.gear svg{flex:none;width:14px;height:14px;display:block}.gear .rocket svg{color:#ff7043}.gear .trap svg{color:#ff5252}.gear .spy svg{color:#b39ddb}.gear .probe svg{color:#4fc3f7}.hp small{color:var(--muted);letter-spacing:0;font-size:11px}.fleet li:hover{background:var(--panel-2)}.fleet li.selected{border-color:var(--c);background:var(--panel-2)}.fleet li.dead{opacity:.45}#log ul{flex-direction:column;gap:2px;font-size:12px;list-style:none;display:flex}.turn-log{margin-bottom:8px;font-size:12px}#log{flex:1 1 0;min-height:120px;padding-right:4px;overflow-y:auto}#fleet,#settings,.title{flex-shrink:0}#settings{border-top:1px solid var(--line);padding-top:14px}#tooltip{z-index:3;pointer-events:none;border:1px solid var(--line);border-left:3px solid var(--c);background:#0d1b2cf5;border-radius:8px;min-width:200px;padding:8px 10px;font-size:12px;line-height:1.5;position:absolute;box-shadow:0 6px 20px #00000073}#tooltip[hidden]{display:none}#tooltip strong{font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.check{color:var(--muted);align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.log-head{justify-content:space-between;align-items:center;display:flex}button.small{text-transform:none;letter-spacing:0;padding:2px 8px;font-size:11px}#goal{border:1px solid var(--line);background:var(--panel-2);border-left:3px solid #607d8b;border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;font-size:12px;display:flex}#goal .goal-text{color:#b8cbe0;line-height:1.4}#goal.mine{border-left-color:#66bb6a}#goal.contested{border-left-color:#ffd54f}#goal.enemy{background:#4a161699;border-left-color:#ef5350;animation:1.6s ease-in-out infinite goal-alert}#goal.enemy .goal-text,#goal.mine .goal-text{color:var(--text)}@keyframes goal-alert{50%{box-shadow:0 0 0 3px #ef535059}}#goal .scores{flex-direction:column;gap:3px;display:flex}.player-score{grid-template-columns:1fr auto auto;align-items:center;gap:8px;font-size:13px;display:grid}.player-score .who{border-left:3px solid var(--c);padding-left:6px}.player-score .pips{gap:3px;display:flex}.player-score .pips i{background:#2b3d52;border-radius:50%;width:10px;height:10px}.player-score .pips i.on{background:var(--c);box-shadow:0 0 4px var(--c)}.player-score.dead{opacity:.45}.cargo-badge{color:#ffd54f;border:1px solid #ffd54f80;border-radius:6px;padding:0 6px;font-size:12px}#tip{border:1px solid var(--line);border-left:4px solid var(--s);z-index:3;background:#0d1b2cf5;border-radius:10px;width:min(320px,100% - 24px);padding:12px 14px 10px;font-size:13px;line-height:1.45;animation:.35s ease-out tip-in;position:absolute;top:12px;right:12px;box-shadow:0 8px 28px #00000073}#tip .tip-head{color:var(--s);align-items:center;gap:8px;font-size:14px;display:flex}#tip .tip-head svg{flex:none;width:18px;height:18px}#tip p{color:#c9d8e8;margin:6px 0 10px}#tip .tip-buttons{justify-content:flex-end;align-items:center;gap:6px;display:flex}#tip .tip-buttons .link{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-right:auto;padding:0;font-size:11px;text-decoration:underline}@keyframes tip-in{0%{opacity:0;transform:translateY(-8px)}}#app{grid-template-columns:minmax(0,1fr) 352px}#shipbar{background:linear-gradient(145deg,#162b42,#102238);border:1px solid #2c4964;border-radius:12px;min-width:0;padding:12px;position:relative;inset:auto;transform:none;box-shadow:0 6px 18px #030b1533}.ship-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.ship-heading strong{font-size:16px}.ship-role{color:#9eb3c8;margin-top:2px;font-size:11px;display:block}.health{color:#9dd6af;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.health i{background:#274236;border-radius:4px;width:44px;height:5px;display:block;position:relative;overflow:hidden}.health i:after{content:"";width:var(--health);border-radius:inherit;background:#78c995;height:100%;display:block}.health.hurt{color:#ffad88}.health.hurt i:after{background:#ff966e}.turn-plan{color:#d1e4f6;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.turn-plan small{color:var(--muted);margin-top:3px;font-size:10px;display:block}.turn-plan>span:last-child{color:#94a9bf;text-align:right}#shipbar .buttons{flex-wrap:wrap;gap:5px}#shipbar .weapons{border-bottom:1px solid #2a4057;align-items:start;padding-bottom:10px}.action-slot{flex-direction:column;gap:3px;display:flex}.action-slot small{text-align:center;color:#9aa9ba;font-size:9px}#shipbar .buttons button{padding:6px 8px;font-size:12px}#shipbar kbd{margin-left:3px;font-size:9px}.ship-footer{justify-content:space-between;align-items:center;gap:8px;margin:10px 0;display:flex}#shipbar .ship-footer button{background:#102036;padding:5px 7px;font-size:11px}#shipbar .ship-footer button.active{background:#1b4469}.cargo-compact{color:#e7c977;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.cargo-compact svg,.fleet-resources svg{flex:none;width:13px;height:13px}#shipbar .statuses{gap:5px}#shipbar .status-tag{background:color-mix(in srgb, var(--s) 10%, transparent);border:none;border-radius:5px;padding:3px 6px;font-size:10px}.ship-details{border-top:1px solid #2a4057;margin-top:10px;font-size:12px}.ship-details summary{cursor:pointer;color:#9fb4c9;padding-top:9px;font-size:11px}.ship-details summary:hover{color:#d4e7f8}.ship-details p{margin-top:8px;font-size:11px;line-height:1.5}.ship-details .status-line{margin-top:10px;font-size:11px;line-height:1.45}.ship-details .status-line strong{font-weight:500}.ship-stats{color:#98aec5;gap:16px;margin-top:12px;font-size:11px;display:flex}.ship-stats b{color:#d2e1f1;margin-top:2px;font-weight:500;display:block}.ship-alert{color:#ffcf89;background:#ffb74d12;border-left:2px solid #ffb74d;border-radius:6px;margin-bottom:9px;padding:7px 9px;font-size:11px;line-height:1.4}.ship-alert.battery{color:#ffaaa4;background:#ef535014;border-color:#ef5350}.fleet-resources{color:#91a8bd;grid-column:2/4;gap:10px;padding-top:3px;font-size:10px;display:flex}.fleet-resources>span{align-items:center;gap:3px;display:inline-flex}.fleet-resources .port-icon{color:#8ac59b}.fleet-resources .danger{color:#ef7770}.fleet li{row-gap:3px;padding:8px}.fleet li .status{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}#shipbar .head{white-space:normal;flex-wrap:wrap}#shipbar .targeting{align-items:flex-start;font-size:12px;line-height:1.5}#shipbar .targeting button{flex:none}button:focus-visible,summary:focus-visible{outline-offset:3px;outline:2px solid #4fc3f7}@media (width<=1000px){#app{grid-template-columns:minmax(0,1fr) 304px}#sidebar{padding:12px}#shipbar .buttons button{padding:6px;font-size:11px}#shipbar kbd{display:none}}@media (width<=640px){#app{grid-template-rows:56vh 44vh;grid-template-columns:minmax(0,1fr)}#sidebar{border-left:none;border-top:1px solid var(--line)}#command{margin:-12px -12px 0;padding:12px;top:-12px}}#shipbar .weapons{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}#shipbar .weapons button{width:100%;padding:6px 3px;font-size:11px}#shipbar .weapons kbd{display:none}@media (width<=640px){#command{gap:6px}#goal{padding:5px 8px}#goal.neutral .goal-text{display:none}#turnbar .hint{font-size:11px}}
