:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#15171a;--surface:#22262b;--surface-2:#15171a;--surface-3:#2c3036;--border:#3a4048;--border-strong:#4a5058;--text:#ece8df;--text-2:#d7dbdf;--muted:#a3a9b0;--faint:#8b9199;--accent:#f2b705;--accent-strong:#ffd24d;--accent-ink:#1a1400;--accent-wash:#2e2a17;--success:#9fd9a6;--danger:#e0412f;--danger-text:#ff8a7e;--strip:#f2b705;--component:#3cc8e6;--fracture:#e0412f;--hazard:repeating-linear-gradient(-45deg, var(--accent) 0 10px, var(--bg) 10px 20px);--font-display:"Saira Stencil One", "Saira Condensed", "Arial Narrow", sans-serif;--font-ui:"Saira Condensed", "Arial Narrow", system-ui, sans-serif;--text-xs:.78rem;--text-sm:.88rem;--text-md:1rem;--text-lg:1.2rem;--radius:0;--radius-lg:0;--touch:44px}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{color:var(--text);font-family:var(--font-ui);font-size:var(--text-md);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:#0d0f11;line-height:1.25}h2,h3,p{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}svg{width:100%;height:100%;display:block}.hazard-strip{background:var(--hazard);flex:none;height:6px}.kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:800}#app{justify-content:center;height:100%;display:flex}.bay-app{background:var(--bg);width:100%;max-width:520px;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-user-select:none;user-select:none;grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);display:grid;position:relative;overflow:hidden}@media (width>=560px){.bay-app{border-left:2px solid var(--border);border-right:2px solid var(--border);box-shadow:0 0 60px #0009}}.topbar{background:var(--surface);border-bottom:2px solid var(--border);flex-direction:column;display:flex}.topbar-row{align-items:center;gap:8px;padding:8px 12px 10px;display:flex}.commission-hud{border:0;border-top:1px solid var(--border);color:var(--text);background:linear-gradient(var(--accent), var(--accent)) left bottom / var(--commission-progress,0%) 3px no-repeat, var(--surface);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;padding:7px 12px 9px}.commission-hud[hidden]{display:none}.commission-hud.is-complete{color:var(--accent)}.commission-status{border:1px solid var(--accent);background:var(--surface);margin:14px 0;padding:12px}.commission-status h3{margin:0 0 8px}.commission-status p{font-size:var(--text-sm);margin:8px 0}.commission-status progress{width:100%;accent-color:var(--accent)}.wallet{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.credits{align-items:baseline;gap:6px;min-width:0;display:flex}.credits-value{font-family:var(--font-display);letter-spacing:.02em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:2rem;line-height:1}.credits-unit{font-size:var(--text-sm);color:var(--muted);text-transform:uppercase;font-weight:700}.credits.gain .credits-value{animation:.5s ease-out gain}@keyframes gain{30%{color:var(--accent-strong);transform:translateY(-1px)}}.income{min-height:1.1em;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-2);align-items:center;gap:8px;font-weight:600;display:flex}.income-bonus{border:1.5px solid var(--accent);color:var(--accent);letter-spacing:.04em;padding:0 6px;font-weight:800}.vessel-btn,.icon-btn{min-height:var(--touch);border:2px solid var(--border);background:var(--surface-2);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.vessel-btn{border-color:var(--accent);max-width:46%;font-size:var(--text-md);letter-spacing:.06em;text-transform:uppercase;padding:0 12px;font-weight:800}.vessel-btn-icon{width:18px;height:18px;color:var(--accent);flex:none}.vessel-btn-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vessel-btn-caret{color:var(--text)}.icon-btn{width:var(--touch);justify-content:center;padding:0}.icon-btn svg{width:22px;height:22px}.goals-btn{position:relative}.goals-btn:before{content:attr(data-yard-marks);color:var(--accent);letter-spacing:1px;font-size:9px;position:absolute;bottom:1px}.goals-btn.has-claim:after{content:"";background:var(--danger);border:2px solid var(--surface-2);width:10px;height:10px;position:absolute;top:5px;right:5px}.chain{background:var(--bg);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:8px 12px;display:grid}.chain-step{min-height:var(--touch);border:2px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;font-weight:700;line-height:1.1;font-size:var(--text-sm);letter-spacing:.06em;flex-direction:column;justify-content:center;align-items:center;padding:0 4px;display:flex;position:relative}.chain-num{letter-spacing:.12em;color:var(--muted);font-size:.66rem}.chain-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.chain-step.is-current{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:800}.chain-step.is-current .chain-num{color:var(--accent-ink)}.chain-step.has-vessel:not(.is-current):before{content:"";background:var(--accent);width:6px;height:6px;position:absolute;top:6px;left:6px}.chain-badge{letter-spacing:0;color:var(--accent-ink);background:var(--accent);padding:0 5px;font-size:.72rem;font-weight:800;line-height:1.4;position:absolute;top:-7px;right:-4px}.chain-badge:empty{display:none}.scene{touch-action:none;background:linear-gradient(90deg,#0000 0 30%,#ffffff05 30% 70%,#0000 70%),repeating-linear-gradient(0deg,#1b1e22 0 39px,#20242a 39px 40px),#1b1e22;position:relative;overflow:hidden}.scene-slot{position:absolute;inset:0}.scene-slot canvas{width:100%;height:100%;display:block}.gate{min-width:120px;min-height:var(--touch);border:2px solid var(--border-strong);font-weight:800;font-size:var(--text-sm);letter-spacing:.12em;color:var(--text);cursor:pointer;z-index:1;background:#15171ad9;padding:0 14px;position:absolute;left:50%;transform:translate(-50%)}.gate:disabled{color:var(--faint);cursor:default;background:0 0;border-color:#0000}.gate-up{top:8px}.gate-down{bottom:4px}.scene.is-panning .bin.is-current{animation:.45s ease-out arrive-in}@keyframes arrive-in{0%{opacity:0}}.bin:not(.is-current){visibility:hidden;pointer-events:none}.ship-zone{cursor:default;touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;padding-top:28%;display:flex;position:absolute;inset:19% 27% 11%}.ship-zone.is-manual{cursor:pointer}.ship-hint{background:var(--accent);border:3px solid var(--bg);color:var(--accent-ink);font-weight:800;font-size:var(--text-md);letter-spacing:.1em;text-transform:uppercase;pointer-events:none;text-align:center;white-space:nowrap;max-width:100%;padding:8px 16px;animation:1.4s ease-in-out infinite hint;box-shadow:0 4px 16px #00000080}.ship-hint[hidden]{display:none}@keyframes hint{50%{transform:translateY(-4px)}}.vessel-status{border:2px solid var(--border);max-width:46%;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none;text-align:right;background:#15171aeb;flex-direction:column;align-items:flex-end;gap:2px;padding:6px 10px;font-weight:700;display:flex;position:absolute;bottom:10px;right:10px}.vessel-phase{color:var(--text);font-weight:800;font-size:var(--text-md);letter-spacing:.04em}.vessel-status.is-away{pointer-events:auto;cursor:pointer;min-height:var(--touch);border-color:var(--accent);justify-content:center}.vessel-status.is-away .vessel-phase{color:var(--accent)}.scene-fallback{font-size:var(--text-xs);color:var(--muted);pointer-events:none;flex-direction:column;gap:6px;display:none;position:absolute;top:36%;left:28%;right:28%}.scene[data-renderer=none] .scene-fallback{display:flex}.fb-ship{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text);text-align:center}.fb-row{grid-template-columns:5.5em 1fr 2.6em;align-items:center;gap:6px;display:grid}.fb-bar{background:var(--border);height:6px;overflow:hidden}.fb-bar i{background:var(--accent);height:100%;display:block}.arm-anchor{width:92px;height:var(--touch);visibility:hidden;pointer-events:none;position:absolute;bottom:52px;left:4px}.arm-anchor.arm-extra{left:auto;right:4px}.power-dot{background:var(--accent);flex:none;width:7px;height:7px}.bin{--c:var(--strip);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;width:28%;min-width:104px;max-width:134px;padding:0;display:flex;position:absolute;top:calc(17.5% + 6px);left:9%;overflow:visible}.bin-components{--c:var(--component)}.bin-fragments{--c:var(--fracture)}.bin-window{aspect-ratio:.82;pointer-events:none;background:0 0;flex:none;width:100%;display:block}.bin-base{border:2px solid var(--border);background:var(--surface-2);flex-direction:column;flex:none;width:100%;display:flex;position:relative;overflow:hidden}.scene[data-renderer=active] .bin-base,.scene[data-renderer=none] .bin-window{display:none}.scene[data-renderer=none] .bin-base{width:100%;margin-top:0}.bin-label{border-bottom:2px solid var(--border);text-align:left;align-items:center;gap:4px;min-height:24px;padding:3px 5px;display:flex}.bin-name{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:800;overflow:hidden}.bin-qty{color:var(--text);font-weight:800;font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;line-height:1}.bin.bump .bin-qty{animation:.3s ease-out bump}@keyframes bump{40%{color:var(--accent);transform:scale(1.15)}}.bin-action{background:var(--surface);letter-spacing:.06em;text-transform:uppercase;min-height:26px;color:var(--muted);white-space:nowrap;justify-content:center;align-items:center;gap:4px;padding:3px 4px;font-size:.72rem;font-weight:800;line-height:1.15;display:flex}.bin.is-ready:not(.is-auto) .bin-action{background:var(--accent);color:var(--accent-ink)}.bin.is-auto .bin-action{color:var(--text)}.bin.is-full .bin-action{background:var(--danger);color:#fff;white-space:normal}.bin.is-unavailable .bin-base{opacity:.6}.bin.is-empty:not(.is-auto){cursor:default}.bin.dispatch .bin-base{animation:.45s ease-out dispatch-base}@keyframes dispatch-base{30%{filter:brightness(1.3)}}.nudge{animation:.3s ease-in-out nudge}@keyframes nudge{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.vessel-variant{color:var(--accent);letter-spacing:.06em;font-weight:800}.vessel-status.is-rare{border-color:var(--accent);box-shadow:0 0 14px #f2b7054d}.overdrive{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);align-items:center;gap:6px;margin-top:2px;font-size:.66rem;font-weight:800;display:flex}.overdrive-bar{background:var(--border);width:60px;height:6px;display:block}.overdrive-bar i{background:var(--accent);transform-origin:0;height:6px;display:block}.floats{pointer-events:none;position:absolute;inset:0;overflow:hidden}.float{font-family:var(--font-display);font-size:var(--text-lg);color:var(--accent);text-shadow:0 2px 4px #000;white-space:nowrap;animation:1.2s ease-out forwards float;position:absolute;transform:translate(-50%,-50%)}@keyframes float{to{opacity:0;transform:translate(-50%,-260%)}}.ripple{border:3px solid var(--accent);border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;animation:.45s ease-out forwards ripple;position:absolute}.ripple-no{border-color:var(--faint);animation-duration:.3s}@keyframes ripple{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}.toast{background:var(--surface-2);border:2px solid var(--accent);max-width:76%;font-size:var(--text-sm);text-align:center;opacity:0;pointer-events:none;z-index:3;padding:8px 14px;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;top:60px;left:50%;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}.actionbar{border-top:2px solid var(--border);background:var(--surface);align-items:stretch;gap:8px;padding:10px 12px 14px;display:flex}.next-card{background:var(--surface-2);border:2px solid var(--border);flex:1;align-items:center;gap:10px;min-width:0;padding:8px 10px;display:flex}.next-card[data-kind=upgrade],.next-card[data-kind=claim],.next-card[data-kind=refit]{border-color:var(--accent)}.next-card[data-kind=section]{border-color:var(--danger)}.next-text{flex-direction:column;flex:1;min-width:0;display:flex}.next-label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:800}.next-card[data-kind=section] .next-label{color:var(--danger-text)}.next-card[data-kind=done] .next-label{color:var(--muted)}.next-name{font-weight:800;font-size:var(--text-md);line-height:1.15}.next-effect{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.btn{min-height:var(--touch);border:2px solid var(--border-strong);background:var(--surface-3);font-weight:800;font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:0 14px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-outline{background:var(--surface-2);border-color:var(--text)}.btn-big{min-height:50px;font-size:var(--text-md);letter-spacing:.08em}.btn-danger{border-color:var(--danger);color:var(--danger-text)}.btn-wide{width:100%}.btn-buy{flex:none;min-width:96px;position:relative;overflow:hidden}.buy-fill{transform-origin:0;background:#f2b70540;transition:transform .2s linear;position:absolute;inset:0;transform:scaleX(0)}.buy-text{position:relative}.btn-buy.is-affordable,.btn-buy-row.is-affordable{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-buy.is-affordable .buy-fill{display:none}.btn[aria-disabled=true],.btn:disabled{cursor:not-allowed;color:var(--faint)}.upgrades-btn{width:96px;min-height:var(--touch);border:2px solid var(--border);background:var(--surface-2);font-weight:800;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:4px;padding:4px;display:flex}.upgrades-icon{width:22px;height:22px;color:var(--accent)}.sheet-backdrop,.modal-backdrop{z-index:10;background:#0000008c;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet-backdrop[hidden],.modal-backdrop[hidden]{display:none}.modal-backdrop{z-index:20;justify-content:center;align-items:center;padding:16px}.sheet{border-top:3px solid var(--accent);width:100%;max-height:80%;padding-bottom:env(safe-area-inset-bottom);background:#1b1e22;flex-direction:column;animation:.18s ease-out rise;display:flex}.sheet:before{content:"";background:var(--hazard);flex:none;height:8px;display:block}@keyframes rise{0%{opacity:0;transform:translateY(30px)}}.sheet-head{align-items:center;padding:8px 10px 6px 14px;display:flex}.sheet-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent);text-transform:uppercase;flex:1;font-size:1.75rem;font-weight:400;line-height:1.1}.sheet-body{overscroll-behavior:contain;touch-action:pan-y;padding:4px 14px 16px;overflow-y:auto}.sheet-h{font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--text);margin:14px 0 6px;font-weight:800}.sheet-note{font-size:var(--text-sm);color:var(--muted);margin:4px 0 8px}.row{border-bottom:2px solid var(--surface);align-items:center;gap:10px;padding:8px 0;display:flex}.row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.row-name{font-weight:800;font-size:var(--text-md)}.row-level{color:var(--muted);font-weight:600;font-size:var(--text-xs);margin-left:4px}.row-effect,.row-meta{font-size:var(--text-xs);color:var(--muted)}.row-detail{font-size:var(--text-xs);color:var(--text);font-variant-numeric:tabular-nums}.row-locked{font-size:var(--text-xs);color:var(--danger-text);font-weight:700}.row.is-locked .row-name{color:var(--muted)}.row-done{font-size:var(--text-xs);color:var(--success);text-align:center;text-transform:uppercase;min-width:70px;font-weight:800}.btn-buy-row{min-width:88px}.vessel-list{flex-direction:column;gap:8px;display:flex}.vessel-card{background:var(--surface);border:2px solid var(--border);align-items:center;gap:10px;padding:10px;display:flex}.vessel-card.is-selected{background:var(--accent-wash);border-color:var(--accent)}.vessel-card.is-locked{background:var(--surface-2);border-style:dashed}.vessel-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.vessel-name{font-size:var(--text-lg);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;font-weight:800;display:flex}.vessel-name em{background:var(--accent);color:var(--accent-ink);letter-spacing:.08em;padding:0 5px;font-size:.7rem;font-style:normal}.vessel-lock{width:14px;height:14px;color:var(--text-2);display:inline-block}.vessel-card.is-locked .vessel-name{color:var(--text-2)}.vessel-blurb{font-size:var(--text-xs);color:var(--muted)}.vessel-meta{font-size:var(--text-xs);font-weight:700}.vessel-value{font-size:var(--text-xs);color:var(--accent);font-weight:800}.vessel-selected{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:800}.vessel-sil{clip-path:polygon(50% 0,66% 22%,66% 60%,100% 82%,100% 92%,62% 86%,50% 100%,38% 86%,0 92%,0 82%,34% 60%,34% 22%);background:#8c939b;flex:none;width:40px;height:56px}.vessel-card.is-locked .vessel-sil{background:#4a5058}.vessel-freighter .vessel-sil{clip-path:polygon(40% 0,60% 0,74% 10%,74% 92%,60% 100%,40% 100%,26% 92%,26% 10%)}.vessel-industrial .vessel-sil{clip-path:polygon(38% 0,62% 0,70% 12%,70% 30%,100% 34%,100% 66%,70% 70%,74% 100%,26% 100%,30% 70%,0 66%,0 34%,30% 30%,30% 12%)}.vessel-military .vessel-sil{clip-path:polygon(50% 0,70% 14%,76% 48%,100% 62%,92% 90%,64% 84%,58% 100%,42% 100%,36% 84%,8% 90%,0 62%,24% 48%,30% 14%)}.settings{flex-direction:column;gap:10px;padding-top:6px;display:flex}.debug-row{flex-wrap:wrap;gap:6px;display:flex}.modal{border:3px solid var(--accent);background:#1b1e22;flex-direction:column;gap:10px;width:min(100%,380px);padding:18px;display:flex}.modal h2{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:1.6rem;font-weight:400}.modal-sub{color:var(--text-2);font-size:var(--text-sm)}.modal-detail{font-size:var(--text-xs);color:var(--faint);word-break:break-word}.modal-error{color:var(--danger-text);font-size:var(--text-sm)}.modal-actions{flex-direction:column;gap:8px;display:flex}.shift-report{gap:0;padding:0 0 18px}.shift-report .hazard-strip{height:10px}.shift-report>:not(.hazard-strip){margin-left:16px;margin-right:16px}.shift-head{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:16px 0 8px;display:flex}.away-earned{flex-direction:column;align-items:center;display:flex}.away-earned-value{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;font-size:3rem;line-height:1.1;animation:.6s ease-out away-pop}.away-earned-label{color:var(--muted);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:700}.away-ready{background:var(--accent-wash);border:2px solid var(--accent);font-size:var(--text-md);letter-spacing:.04em;justify-content:center;align-items:center;gap:8px;margin-top:6px;padding:8px;font-weight:800;display:flex}.away-ready-icon{width:18px;height:18px;color:var(--accent)}.away-list{border-top:2px solid var(--border);flex-direction:column;margin-top:10px;margin-bottom:12px;padding:0;list-style:none;display:flex}.away-row{border-bottom:2px solid var(--surface);font-size:var(--text-sm);justify-content:space-between;gap:8px;padding:8px 0;display:flex}.away-row-label{font-weight:800}.away-row-value{color:var(--text-2);text-align:right}.away-row.tone-rare .away-row-label,.away-row.tone-rare .away-row-value,.away-row.tone-goal .away-row-label{color:var(--accent);font-weight:800}.away-row.tone-alert .away-row-label{color:var(--danger-text)}@keyframes away-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}}.active-specialisation{color:var(--text-2);font-family:var(--font-ui);font-size:var(--text-sm);margin-top:3px;display:block}.specialisation-choices{gap:8px;margin:12px 0;display:grid}.specialisation-choice{text-align:left;background:var(--surface-2);border:2px solid var(--border);cursor:pointer;gap:4px;width:100%;padding:10px 12px;display:grid}.specialisation-choice span{color:var(--text-2);font-size:var(--text-sm);line-height:1.4}.specialisation-choice[aria-pressed=true]{border-color:var(--accent);background:var(--accent-wash)}.specialisation-choice:disabled{opacity:.55;cursor:default}.yard-rank{border:2px solid var(--border);color:var(--muted);font-family:var(--font-display);border-bottom:0;padding:8px 12px}.yard-rank[data-yard-level="1"]{color:#d8a777}.yard-rank[data-yard-level="2"]{color:#bdcedc}.yard-rank[data-yard-level="3"]{color:var(--accent)}.refit-milestones{gap:8px;padding:0;list-style:none;display:grid}.refit-milestone{background:var(--surface-2);border:2px solid var(--border);padding:10px 12px}.refit-milestone.is-unlocked,.refit-milestone.is-next{border-color:var(--accent)}.milestone-status{color:var(--accent);font-size:var(--text-sm);margin-bottom:3px;display:block}.refit-milestone p{font-size:var(--text-sm);margin:4px 0 0;line-height:1.45}.refit-progress{width:100%;height:8px;accent-color:var(--accent);margin:10px 0;display:block}.bonus-panel{background:var(--surface-2);border:2px solid var(--border);align-items:center;gap:12px;padding:10px 12px;display:flex}.bonus-main{flex-direction:column;display:flex}.bonus-value{font-family:var(--font-display);color:var(--accent);font-size:2.25rem;line-height:1}.bonus-stats{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.stat{background:var(--surface);font-size:var(--text-sm);flex-direction:column;padding:4px 8px;font-weight:700;display:flex}.goal-list{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.goal{background:var(--surface);border:2px solid var(--border);font-size:var(--text-md);flex-direction:column;gap:6px;padding:8px 10px;font-weight:700;display:flex}.goal.is-claimable{background:var(--accent-wash);border-color:var(--accent);flex-direction:row;align-items:center;gap:10px;font-weight:800}.goal-star{width:18px;height:18px;color:var(--accent);flex:none}.goal.is-claimable .goal-name{flex:1}.goal-ready{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:800}.goal-line{justify-content:space-between;gap:8px;display:flex}.goal-progress{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.goal-bar{background:var(--border);height:6px;display:block}.goal-bar i{background:var(--text);height:6px;display:block}.refit-box{background:var(--hazard);margin-top:16px;padding:3px}.refit-inner{background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex}.refit-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.refit-head h3{font-family:var(--font-display);color:var(--accent);text-transform:uppercase;font-size:1.4rem;font-weight:400}.refit-tag{background:var(--accent);color:var(--accent-ink);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;font-weight:800}.refit-gain{font-size:var(--text-lg);font-weight:800}.refit-inner .sheet-note{color:var(--text-2);margin:0}.btn-refit{background:var(--surface-2);border-color:var(--accent);min-height:50px;color:var(--accent);font-size:var(--text-md);letter-spacing:.1em}.btn-refit.is-confirming{background:var(--danger);border-color:var(--danger);color:#fff}.upgrade-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px 0 8px;display:grid}.upgrade-tabs button{min-height:42px;font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);background:var(--surface);border:2px solid var(--border);cursor:pointer;padding:4px 2px;font-weight:700}.upgrade-tabs button[aria-pressed=true]{color:var(--accent-ink);background:var(--accent);border-color:var(--accent);font-weight:800}.upgrade-arm-tabs{align-items:center;gap:0;margin:0 0 8px;display:flex}.upgrade-arm-tabs button{border:2px solid var(--border);background:var(--surface-2);min-height:38px;color:var(--text-2);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:4px 12px;font-weight:700}.upgrade-arm-tabs button+button{border-left:0}.upgrade-arm-tabs button[aria-pressed=true]{color:var(--bg);background:var(--text);border-color:var(--text);font-weight:800}.upgrade-arm-tabs span{font-size:var(--text-xs);color:var(--muted);margin-left:auto}.upgrade-controls{z-index:3;background:#1b1e22;padding-top:4px;position:sticky;top:-4px;box-shadow:0 -12px #1b1e22}.upgrade-controls .upgrade-arm-tabs{margin-bottom:0;padding-bottom:8px}.btn-buy-all{border:2px dashed var(--accent);width:100%;color:var(--accent);font-size:var(--text-md);letter-spacing:.06em;background:0 0;margin-bottom:8px}.section-flow{font-size:var(--text-sm);color:var(--muted);margin:2px 0 8px}.sheet.is-upgrade-tree{height:94%;max-height:94%}.is-upgrade-tree .sheet-body{flex:1;min-height:0}.upgrade-tree{padding:2px 0 8px}.tree-root{display:none}.tree-branches{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.tree-branch{--path-color:var(--accent);min-width:0}.tree-branch-head{border-bottom:2px solid var(--accent);align-items:center;gap:4px;margin-bottom:6px;padding-bottom:4px;display:flex}.tree-branch-head svg{width:16px;height:16px;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;fill:none;flex:none}.tree-branch-head h3{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text);font-weight:800}.tree-branch-head>span{display:none}.tree-children{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tree-children>li{min-width:0;margin:0;padding:0}.tree-children .tree-children{margin-top:6px}.tree-node{border:2px solid var(--border);width:100%;min-width:0;min-height:84px;color:var(--text);background:var(--surface);font:inherit;cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:3px;padding:8px;display:flex}.tree-node:hover{background:var(--surface-3)}.tree-node:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.tree-node[aria-pressed=true]{background:var(--accent-wash);border-color:var(--accent)}.tree-node-mark{display:none}.tree-node-name{font-size:var(--text-md);overflow-wrap:anywhere;font-weight:800;line-height:1.15}.tree-node-level{min-height:0;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:700}.tree-level+.tree-node-level{display:none}.tree-node-cost{font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-top:auto;font-weight:700;line-height:1.3}.tree-node.is-ready .tree-node-cost{color:var(--accent-strong)}.tree-node.is-locked{background:var(--surface-2);color:var(--faint);border-style:dashed}.tree-node.is-installed .tree-node-cost{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.tree-level{align-items:center;gap:2px;width:100%;margin:2px 0;display:flex}.tree-level i{background:var(--border-strong);flex:1;min-width:0;max-width:14px;height:5px}.tree-level i.is-filled{background:var(--accent)}.tree-node-gain{color:var(--success);font-size:.72rem;font-weight:800;line-height:1.2}.tree-node-gain.is-best{color:var(--accent)}.tree-key{display:none}.upgrade-detail{background:var(--surface);border-top:2px solid var(--accent);flex:none;padding:12px 14px}.upgrade-detail[hidden]{display:none}.tree-detail-title{font-size:var(--text-lg);justify-content:space-between;align-items:baseline;gap:8px;font-weight:800;display:flex}.tree-detail-level{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex:none;font-weight:700}.tree-detail-action{align-items:center;gap:10px;margin-top:6px;display:flex}.tree-detail-action>div{flex:1;min-width:0}.tree-detail-action p{font-size:var(--text-sm);color:var(--muted);margin:0;line-height:1.3}.tree-detail-action .tree-detail-change{color:var(--text);margin-top:3px}.tree-detail-action .btn{min-height:50px;font-size:var(--text-md);flex:none}.tree-detail-status{color:var(--muted);font-size:var(--text-xs);letter-spacing:.04em;margin:6px 0 0;font-weight:700}.tree-detail-status.is-locked{color:var(--danger-text)}.tree-detail-done{color:var(--success);font-size:var(--text-sm);white-space:nowrap;text-transform:uppercase;font-weight:800}.row-gain,.tree-detail-gain{font-size:var(--text-sm);font-weight:800}.gain-up{color:var(--success)}.gain-none{color:var(--muted)}.gain-down{color:var(--danger-text)}.row-gain b,.tree-detail-gain b{color:var(--accent)}.queue-count{letter-spacing:.06em;color:var(--text-2);vertical-align:middle;border:2px solid;margin-left:6px;padding:1px 6px;font-size:.7rem;display:inline-block}.queue-blocked{border-color:var(--danger)!important}.queue-blocked .queue-count{color:var(--danger-text)}.legacy-waiting{white-space:normal;letter-spacing:0;font-size:.7rem;display:block}@media (height<=680px){.topbar-row{padding:4px 10px 6px}.credits-value{font-size:1.6rem}.chain{padding:4px 10px}.actionbar{padding:6px 10px 8px}}@media (width<=374px){.chain-step{font-size:var(--text-xs);letter-spacing:.02em}.tree-branches{gap:6px}.tree-node{padding:6px}.tree-node-name{font-size:var(--text-sm)}.vessel-btn{font-size:var(--text-sm);padding:0 8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
