.app .auth-wrap{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 140px);padding:18px 0 48px}.app .auth-card{width:min(404px,100%);padding:24px 24px 18px;border:1px solid var(--line-strong);background:linear-gradient(180deg,#0d1a22,#0a1116);box-shadow:0 26px 64px #0000008c}.app .auth-brand{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.app .auth-brand h1{font-size:18px;font-weight:600;letter-spacing:.04em}.app .auth-brand p{margin-top:3px;font-size:9.5px;letter-spacing:.12em;color:var(--muted)}.app .auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:16px 0 14px;border:1px solid var(--line)}.app .auth-tabs button{height:34px;border:0;background:transparent;color:var(--muted);font-size:12px;letter-spacing:.08em;cursor:pointer}.app .auth-tabs button+button{border-left:1px solid var(--line)}.app .auth-tabs button.active{color:var(--text);background:#3b8f4d29;box-shadow:inset 0 -2px 0 var(--green-line)}.app .auth-form{display:flex;flex-direction:column;gap:10px}.app .auth-field{display:flex;flex-direction:column;gap:5px}.app .auth-field>span{font-size:10px;letter-spacing:.08em;color:var(--muted)}.app .auth-field input{height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius);background:#070f13;color:var(--text);font-size:13px}.app .auth-field input::placeholder{color:#5b6d74}.app .auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.app .auth-hint{font-size:10px;line-height:1.5;color:var(--warn)}.app .auth-error{min-height:16px;font-size:11px;line-height:1.4;color:var(--bad)}.app .auth-submit{width:100%;height:38px}.app .auth-accounts{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.app .auth-accounts>span{font-size:10px;letter-spacing:.08em;color:var(--muted)}.app .auth-account-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.app .auth-account-list button{padding:4px 9px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.app .auth-account-list button:hover,.app .auth-account-list button.active{border-color:var(--green-line);color:var(--text)}.app .auth-note{margin-top:14px;font-size:9.5px;line-height:1.6;color:#6b7d84}.app .chip.account{border-color:var(--line-strong);color:var(--text)}@media (max-width: 560px){.app .auth-wrap{min-height:auto;padding:8px 0 32px}.app .auth-card{padding:18px 16px 14px}}.ml-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.8fr);gap:10px;margin-bottom:12px}.ml-metric,.ml-next{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.ml-next{justify-content:center;border-left:2px solid var(--accent)}.ml-metric>span,.ml-next>.label{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.ml-metric strong{font-family:var(--mono);font-size:24px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}.ml-metric strong small{font-size:12px;font-weight:400;color:var(--muted)}.ml-metric>small{font-size:9.5px;color:var(--muted)}.ml-next strong{font-size:13.5px;font-weight:600;line-height:1.35;letter-spacing:.03em;overflow-wrap:anywhere}.ml-next>small{font-size:10.5px;line-height:1.45;color:var(--muted)}.ml-next>small.locked{color:var(--warn)}.ml-progress-line{display:flex;align-items:center;gap:10px}.ml-progress-line .progress{flex:1;min-width:0}.ml-progress-line>span{flex:none;min-width:38px;font-size:10px;text-align:right}.ml-chapter .panel-head{margin-bottom:10px}.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}.ml-card{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0;padding:12px 13px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.ml-card:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--line-strong)}.ml-card.open{border-color:#63d8ff47}.ml-card.open:before{background:var(--accent)}.ml-card.cleared:before{background:var(--good)}.ml-card.locked{opacity:.64}.ml-card.locked:before{background:#46576b}.ml-card.open:hover,.ml-card.cleared:hover{border-color:var(--line-strong);background:#142128}.ml-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.ml-card-id{display:flex;align-items:flex-start;gap:9px;min-width:0}.ml-index{flex:none;font-family:var(--mono);font-size:21px;font-weight:600;line-height:1;color:var(--accent)}.ml-card.cleared .ml-index{color:var(--good)}.ml-card.locked .ml-index{color:var(--muted)}.ml-card-id>div{min-width:0}.ml-card-id h3{font-size:14px;font-weight:600;line-height:1.25;letter-spacing:.04em}.ml-card-id small{display:block;margin-top:2px;font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.ml-card-status{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:5px}.ml-stars{display:inline-flex;gap:1px;line-height:1}.ml-stars i{font-style:normal;font-size:12px;color:#31434b}.ml-stars i.on{color:var(--warn)}.ml-blurb{font-size:10.5px;line-height:1.55;color:#a6b7bc}.ml-enemy{display:flex;flex-direction:column;gap:7px;min-width:0;padding:8px 9px;border:1px solid rgba(255,90,90,.22);border-left:2px solid rgba(255,90,90,.55);border-radius:2px;background:#170f12}.ml-enemy-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.ml-enemy-head strong{overflow:hidden;font-size:11.5px;color:#f0c0c0;text-overflow:ellipsis;white-space:nowrap}.ml-enemy-head .chip{padding:1px 6px;font-size:9px}.ml-intel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 8px}.ml-intel>div{display:flex;flex-direction:column;gap:1px;min-width:0}.ml-intel span{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:#8d7f82}.ml-intel strong{overflow:hidden;font-family:var(--mono);font-size:10px;color:#dfd3d3;text-overflow:ellipsis;white-space:nowrap}.ml-reward{display:flex;flex-direction:column;gap:5px;padding-top:8px;border-top:1px solid rgba(43,63,74,.7)}.ml-reward-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ml-reward .cost-chips{gap:5px}.ml-reward .cost-chip{padding:1px 6px;font-size:9.5px}.ml-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:8px;border-top:1px solid rgba(43,63,74,.7)}.ml-foot-note,.ml-lock{flex:1 1 150px;min-width:0;font-size:9.5px;line-height:1.45;color:var(--muted)}.ml-lock{color:var(--warn)}.ml-card-foot .btn{flex:none;margin-left:auto}@media (max-width: 1180px){.ml-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width: 680px){.ml-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ml-next{grid-column:1 / -1}.ml-grid{grid-template-columns:minmax(0,1fr)}.ml-blurb{font-size:11px}}@media (max-width: 420px){.ml-summary{grid-template-columns:minmax(0,1fr)}.ml-intel{grid-template-columns:repeat(2,minmax(0,1fr))}.ml-card-id small{white-space:normal}}.market-hero-grid{display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:12px;align-items:stretch}.market-level-card,.market-progress-card{min-width:0;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.market-level-card{display:flex;flex-direction:column;gap:10px}.market-level-value{display:flex;align-items:baseline;gap:6px;margin-top:2px}.market-level-value strong{font-family:var(--mono);font-size:34px;font-weight:600;line-height:1;letter-spacing:.02em;color:var(--green-line);font-variant-numeric:tabular-nums}.market-level-value span{font-size:11px;color:var(--muted)}.market-level-pips{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px}.market-level-pips i{display:block;height:5px;border-radius:1px;background:#1b2b32}.market-level-pips i.on{background:var(--green-line)}.market-owned{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:2px}.market-owned-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:2px;background:#0a1217}.market-owned-row span{font-size:10px;letter-spacing:.02em;color:var(--muted)}.market-owned-row strong{font-size:16px;font-weight:600;color:var(--text)}.market-owned-row strong small{font-size:10px;font-weight:400;color:var(--muted)}.market-progress-card{display:flex;flex-direction:column;gap:10px}.market-progress-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 14px;flex-wrap:wrap}.market-progress-head>span:first-child{font-size:11.5px;line-height:1.55;color:#b9c9cd}.market-progress-head strong{font-size:15px;color:var(--text)}.market-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.market-breakdown>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:2px;background:#0a1217}.market-breakdown span{overflow:hidden;font-size:9px;letter-spacing:.04em;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.market-breakdown strong{font-size:15px;font-weight:600;color:var(--text)}.market-breakdown small{font-family:var(--mono);font-size:9px;color:var(--accent)}.market-progress-note{margin:0;padding:7px 9px;border:1px solid var(--line);border-left:2px solid var(--line-strong);border-radius:2px;background:#0d171c;color:#aebfc3;font-size:10.5px;line-height:1.6}.market-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.market-card{position:relative;display:flex;flex-direction:column;gap:9px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised);transition:border-color .16s ease,background .16s ease}.market-card:before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:2px;background:var(--line-strong)}.market-card.is-ready{border-color:#5fc06f57}.market-card.is-ready:before{background:var(--green-line)}.market-card.is-owned{border-color:#5fc06f42;background:linear-gradient(180deg,rgba(59,143,77,.08),var(--panel-raised) 55%)}.market-card.is-owned:before{background:var(--good)}.market-card.is-locked{background:#0b1115}.market-card.is-locked:before{background:#3c4c54}.market-card.is-short{border-color:#ff5a5a3d}.market-card.is-short:before{background:var(--bad)}.market-card:hover{border-color:#4a6874}.market-card.is-ready:hover{border-color:var(--green-line)}.market-card.is-short:hover{border-color:#ff5a5a80}.market-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.market-card-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.market-card-index{font-size:8.5px;letter-spacing:.16em;color:var(--muted);opacity:.8}.market-card-name{margin:0;font-size:14px;font-weight:600;line-height:1.3;letter-spacing:.03em;overflow-wrap:anywhere}.market-card-head .chip{flex:none}.market-tags{display:flex;flex-wrap:wrap;gap:6px}.market-tags .chip{max-width:100%;white-space:nowrap}.market-desc{margin:0;font-size:10.5px;line-height:1.6;color:var(--muted)}.market-effect{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:2px;background:#0a1217}.market-effect>div{display:flex;flex-direction:column;gap:2px;min-width:0}.market-effect strong{font-size:11.5px;font-weight:600;line-height:1.35;color:var(--good);overflow-wrap:anywhere}.market-effect small{flex:none;font-size:9px}.market-hull{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.market-hull>div{display:flex;flex-direction:column;gap:2px;min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:2px;background:#0a1217}.market-hull strong{overflow:hidden;font-size:11.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.market-hull small{overflow:hidden;font-size:9.5px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis}.market-db-hint{margin:0;padding:6px 9px;border:1px solid rgba(99,216,255,.24);border-radius:2px;background:#63d8ff0d;color:#9dc4d2;font-size:10px;line-height:1.5}.market-cost{display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:8px;border-top:1px solid rgba(43,63,74,.6)}.market-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.market-status-text{flex:1 1 140px;min-width:0;font-size:10px;line-height:1.5;color:var(--muted)}.market-status-text.is-good{color:var(--good)}.market-status-text.is-locked{color:var(--warn)}.market-status-text.is-bad{color:var(--bad)}.market-card-foot .btn{flex:none;min-width:82px;margin-left:auto}@media (max-width: 680px){.market-hero-grid,.market-grid{grid-template-columns:1fr}.market-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 420px){.market-level-value strong{font-size:30px}.market-hull{grid-template-columns:1fr}}.modal.battle-modal{max-width:980px;max-height:calc(100vh - 40px);overflow-y:auto;gap:10px}.battle-scene.bs-scene{position:relative;flex:0 0 auto;border:1px solid rgba(99,216,255,.32);border-radius:3px;overflow:hidden;background:#02060d;box-shadow:inset 0 0 64px #001428b8,0 0 0 1px #030e18e6}.battle-scene.bs-scene .bs-stage{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.bs-skip{position:absolute;top:8px;right:8px;z-index:3;padding:5px 10px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#9ac4dc;background:#040c16e6;border:1px solid rgba(99,216,255,.34);border-radius:2px;cursor:pointer;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}.bs-skip:hover:not(:disabled){color:#d8f7ff;border-color:var(--accent);background:#0a1e30f2}.bs-skip:disabled{opacity:.55;cursor:default}.bs-hud-eyebrow{fill:#63d8ffc7;font-family:var(--mono);font-size:7.6px;letter-spacing:.22em}.bs-hud-sub{fill:#8fb0c8b8;font-family:var(--mono);font-size:7.8px;letter-spacing:.08em}.bs-force-label{font-family:var(--mono);font-size:7.4px;letter-spacing:.18em}.bs-force-label.ally{fill:#74eeff9e}.bs-force-label.enemy{fill:#ff8a8a9e}.bs-grid line{stroke:#63d8ff14;stroke-width:.7}.bs-countdown-frame{fill:#030c14b8;stroke:#63d8ff59;stroke-width:.8}.bs-countdown-label{fill:#8fb0c8d9;font-family:var(--mono);font-size:6.8px;letter-spacing:.32em}.bs-countdown-value{fill:#e2fbff;font-family:var(--mono);font-size:18px;font-weight:600;letter-spacing:.06em}.bs-countdown-value.word{font-size:12.5px;letter-spacing:.24em;fill:var(--accent)}.bs-countdown-value.live{fill:#ffd6a0;text-shadow:0 0 8px rgba(255,190,110,.4)}.bs-countdown-track{fill:#63d8ff24}.bs-countdown-fill{fill:var(--accent);transition:width .12s linear;filter:drop-shadow(0 0 3px rgba(99,216,255,.65))}.bs-final-label{fill:#8fb0c899;font-family:var(--mono);font-size:7.4px;letter-spacing:.3em}.bs-shield{opacity:.9;animation:bs-shield-breathe 3.8s ease-in-out infinite}.bs-shield-ring{fill:none;stroke-width:1.35}.bs-shield.ally .bs-shield-ring{stroke:#68ecffb8;filter:drop-shadow(0 0 5px rgba(80,220,255,.32))}.bs-shield.enemy .bs-shield-ring{stroke:#d67496a3;filter:drop-shadow(0 0 5px rgba(150,70,130,.32))}.bs-shield-arc{fill:none;stroke-width:1.8;stroke-linecap:round}.bs-shield.ally .bs-shield-arc{stroke:#cafaffd9}.bs-shield.enemy .bs-shield-arc{stroke:#ffd6ecb8}.bs-shield-broken .bs-shield-shard{fill:none;stroke-width:1;stroke-linecap:round}.bs-shield-broken .bs-shield-shard:first-child{stroke:#78c4dc42;stroke-dasharray:5 7}.bs-shield-broken .bs-shield-shard:last-child{stroke:#ff8a8a47;stroke-dasharray:4 6}.bs-enter{animation:bs-unit-in-ally .55s ease-out both}.bs-enter.enemy{animation-name:bs-unit-in-enemy}.bs-ship-wrap.down{opacity:.82;filter:grayscale(.72) brightness(.52) drop-shadow(0 0 9px rgba(255,105,45,.22));animation:bs-wreck-settle .45s ease-out both}.bs-label.down{opacity:.78;animation:bs-label-settle .4s ease-out both}.bs-unit-name{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.03em;fill:#f2f9ff;paint-order:stroke;stroke:#02070deb;stroke-width:2.6px}.bs-unit-name.enemy{fill:#f7f1f1}.bs-stat{font-family:var(--mono);font-size:8.2px;letter-spacing:.01em;paint-order:stroke;stroke:#02070deb;stroke-width:2.2px}.bs-stat.hull{fill:#ff7d7d}.bs-stat.shield{fill:#6fe3a1}.bs-stat.energy{fill:#ff8f6f}.bs-bar-track{fill:#06101aeb;stroke:#63d8ff29;stroke-width:.4}.bs-bar-fill.hull{fill:#ff6b5e}.bs-bar-fill.shield{fill:#49d989}.bs-bar-fill.energy{fill:#ff8f6f}.bs-label.down .bs-bar-fill{opacity:.4}.bs-unit-down{fill:#ff7a6a;font-family:var(--mono);font-size:7px;letter-spacing:.14em}.bs-beam{opacity:0;animation:bs-beam-fire .95s ease-out both}.bs-beam-halo{fill:none;stroke-width:4.6;stroke-linecap:round;opacity:.46}.bs-beam.ally .bs-beam-halo{stroke:#2fd3ff}.bs-beam.enemy .bs-beam-halo{stroke:#ff3f52}.bs-beam-mid{fill:none;stroke-width:2;stroke-linecap:round}.bs-beam.ally .bs-beam-mid{stroke:#a9f4ff}.bs-beam.enemy .bs-beam-mid{stroke:#ff9d90}.bs-beam-core{fill:none;stroke-width:1.5;stroke-linecap:round;stroke:#fff;opacity:.95}.bs-beam.graze .bs-beam-halo{stroke-width:3.2;opacity:.22}.bs-beam.graze .bs-beam-mid{stroke-width:1.3;opacity:.55}.bs-beam.graze .bs-beam-core{stroke-width:1;opacity:.55}.bs-impact,.bs-muzzle{opacity:0;transform-box:fill-box;transform-origin:center}.bs-impact{animation:bs-impact-pop .62s ease-out both}.bs-muzzle{animation:bs-muzzle-pop .34s ease-out both}.bs-boom{opacity:0;transform-box:fill-box;transform-origin:center;animation:bs-boom-burst 1.5s ease-out both}.bs-boom-glow{opacity:1}.bs-boom-core{fill:#fff;opacity:.95}.bs-boom-ring{fill:none;stroke:#ffba74d9;stroke-width:1.5}.bs-boom-shock{fill:none;stroke:#ffdeb0a8;stroke-width:1}.bs-ember{opacity:.55}.bs-debris-piece{opacity:0;transform-box:fill-box;transform-origin:center;animation:bs-debris-fly 1.15s ease-out both}.battle-scene.bs-final .bs-enter,.battle-scene.bs-final .bs-ship-wrap,.battle-scene.bs-final .bs-label,.battle-scene.bs-final .bs-shield,.battle-scene.bs-final .bs-beam,.battle-scene.bs-final .bs-impact,.battle-scene.bs-final .bs-muzzle,.battle-scene.bs-final .bs-boom,.battle-scene.bs-final .bs-debris-piece{animation:none!important}.battle-scene.bs-final .bs-beam{opacity:.16}.battle-scene.bs-final .bs-beam-core{opacity:.38}.battle-scene.bs-final .bs-impact,.battle-scene.bs-final .bs-muzzle{opacity:0}.battle-scene.bs-final .bs-boom{opacity:.62;transform:none}.battle-scene.bs-final .bs-boom-glow{opacity:.18}.battle-scene.bs-final .bs-boom-core{opacity:.08}.battle-scene.bs-final .bs-boom-ring{opacity:.22}.battle-scene.bs-final .bs-boom-shock{opacity:.14}.battle-scene.bs-final .bs-ember{opacity:.5}.battle-scene.bs-final .bs-debris-piece{opacity:.42;transform:translate(var(--bs-dx),var(--bs-dy)) rotate(var(--bs-rot)) scale(.65)}.bs-statusbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:7px 12px;border-top:1px solid rgba(99,216,255,.18);background:linear-gradient(180deg,#060e16f2,#03090ffa);font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--muted)}.bs-status-item{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.bs-status-item b{font-size:11px;font-weight:600;color:#dff7ff}.bs-status-item b.good{color:#7fe6a4}.bs-status-item b.bad{color:#ff8b8b}.bs-outcome{margin-left:auto;padding:2px 9px;border:1px solid;font-size:9px;letter-spacing:.18em}.bs-outcome.win{color:#8ff0c0;border-color:#5fc06f99;background:#3b8f4d24}.bs-outcome.lose{color:#ff9a9a;border-color:#ff5a5a8c;background:#781e1e29}@keyframes bs-shield-breathe{0%,to{opacity:.82}50%{opacity:1}}@keyframes bs-unit-in-ally{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:none}}@keyframes bs-unit-in-enemy{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:none}}@keyframes bs-wreck-settle{0%{opacity:1;filter:none}to{opacity:.82;filter:grayscale(.72) brightness(.52) drop-shadow(0 0 9px rgba(255,105,45,.22))}}@keyframes bs-label-settle{0%{opacity:1}to{opacity:.78}}@keyframes bs-beam-fire{0%{opacity:0}8%{opacity:1}55%{opacity:.85}to{opacity:0}}@keyframes bs-impact-pop{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.6)}}@keyframes bs-muzzle-pop{0%{opacity:0;transform:scale(.2)}22%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(.4)}}@keyframes bs-boom-burst{0%{opacity:0;transform:scale(.2)}12%{opacity:1;transform:scale(1.04)}55%{opacity:.9;transform:scale(1.34)}to{opacity:0;transform:scale(1.75)}}@keyframes bs-debris-fly{0%{opacity:0;transform:translate(0) rotate(0) scale(.5)}12%{opacity:1}to{opacity:.25;transform:translate(var(--bs-dx),var(--bs-dy)) rotate(var(--bs-rot)) scale(.35)}}@media (max-width: 680px){.bs-skip{top:6px;right:6px;padding:4px 7px;font-size:8px}.bs-statusbar{gap:4px 12px;padding:6px 9px;font-size:9px}.bs-status-item b{font-size:10px}.bs-outcome{font-size:8.5px}}@media (prefers-reduced-motion: reduce){.battle-scene.bs-scene *{animation:none!important;transition:none!important}}.app .sy-layout{display:grid;grid-template-columns:218px minmax(0,1fr) 252px;gap:14px;align-items:start}.app .sy-side,.app .sy-center{display:flex;flex-direction:column;gap:14px;min-width:0}.app .sy-block{display:flex;flex-direction:column;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--panel-2))}.app .sy-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:6px;border-bottom:1px solid rgba(43,63,74,.7)}.app .sy-block-head .eyebrow{margin-bottom:0}.app .sy-block-meta{min-width:0;overflow:hidden;font-family:var(--mono);font-size:8.5px;letter-spacing:.04em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.app .sy-classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.app .sy-class{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 8px;border:1px solid var(--line);border-radius:2px;background:#0c1419;color:var(--text);font-family:inherit;text-align:left;cursor:pointer}.app .sy-class:last-child{grid-column:1 / -1}.app .sy-class strong{font-size:11.5px;font-weight:600}.app .sy-class small{font-family:var(--mono);font-size:8px;letter-spacing:.04em;color:var(--muted)}.app .sy-class:hover{border-color:var(--line-strong);background:#111c22}.app .sy-class.is-active{border-color:var(--green-line);background:#10201a;box-shadow:inset 0 0 0 1px #5fc06f2e}.app .sy-class.is-active strong{color:var(--good)}.app .sy-hulls{display:flex;flex-direction:column;gap:5px;max-height:442px;padding-right:2px;overflow-y:auto}.app .sy-hull{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 6px;border:1px solid var(--line);border-radius:2px;background:#0c1419;color:var(--text);font-family:inherit;text-align:left;cursor:pointer}.app .sy-hull:hover{border-color:var(--line-strong);background:#111c22}.app .sy-hull.is-active{border-color:var(--green-line);background:#10201a;box-shadow:inset 0 0 0 1px #5fc06f2e}.app .sy-hull-art{display:grid;place-items:center;width:44px;height:36px}.app .sy-hull-art .ship-glyph{width:44px;height:auto;filter:none}.app .sy-hull-text{display:flex;flex-direction:column;gap:1px;min-width:0}.app .sy-hull-name{overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.app .sy-hull-meta{overflow:hidden;font-family:var(--mono);font-size:8px;letter-spacing:.03em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.app .sy-hull-tier{padding:1px 4px;border:1px solid rgba(99,216,255,.25);border-radius:2px;font-family:var(--mono);font-size:8px;color:var(--accent);white-space:nowrap}.app .sy-hull-info{gap:8px}.app .sy-hull-title{font-size:15px;letter-spacing:.04em}.app .sy-hull-role{font-family:var(--mono);font-size:9px;letter-spacing:.03em;color:var(--accent)}.app .sy-hull-blurb{font-size:10.5px;line-height:1.55;color:var(--muted)}.app .sy-hull-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.app .sy-hull-facts>div{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border:1px solid var(--line);background:#0a1217}.app .sy-hull-facts span{font-size:8.5px;letter-spacing:.04em;color:var(--muted)}.app .sy-hull-facts strong{font-family:var(--mono);font-size:13px;font-variant-numeric:tabular-nums}.app .sy-hull-slottext{font-family:var(--mono);font-size:8.5px;line-height:1.55;color:var(--accent)}.app .sy-hull-cost{display:flex;flex-direction:column;gap:5px;padding-top:6px;border-top:1px solid rgba(43,63,74,.7)}.app .sy-preview{display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px;border:1px solid var(--line);background:linear-gradient(180deg,#0a1116,#070e12)}.app .sy-preview-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.app .sy-preview-head .eyebrow{margin-bottom:0}.app .sy-preview-id{font-family:var(--mono);font-size:8.5px;letter-spacing:.04em;color:var(--accent);white-space:nowrap}.app .sy-preview-plate{position:relative;display:grid;place-items:center;min-height:208px;overflow:hidden;border:1px solid rgba(99,216,255,.14);background:radial-gradient(ellipse at 50% 52%,rgba(26,111,212,.18),transparent 68%),#060d14}.app .sy-preview-plate:after{content:"";position:absolute;right:14%;bottom:9px;left:14%;height:5px;background:repeating-linear-gradient(90deg,rgba(143,162,168,.45) 0 1px,transparent 1px 9px);opacity:.8}.app .sy-plate{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.app .sy-plate-hex{fill:none;stroke:#63d8ff2b;stroke-width:1;vector-effect:non-scaling-stroke}.app .sy-plate-hex.is-inner{stroke:#63d8ff17}.app .sy-plate-brackets path{fill:none;stroke:#63d8ff6b;stroke-width:1;vector-effect:non-scaling-stroke}.app .sy-plate-axes line{stroke:#8fa2a880;stroke-width:1;vector-effect:non-scaling-stroke}.app .sy-plate-center{fill:#63d8ffa6}.app .sy-plate-tag{position:absolute;z-index:2;font-family:var(--mono);font-size:8px;letter-spacing:.12em;color:#8fa2a8d9;pointer-events:none}.app .sy-plate-tag.is-top{top:9px;left:11px}.app .sy-plate-tag.is-bottom{right:11px;bottom:17px}.app .sy-preview-glyph{position:relative;z-index:1;width:min(260px,88%);height:auto}.app .sy-preview-foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:8.5px;line-height:1.4;color:var(--muted)}.app .sy-preview-foot span:last-child{overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.app .sy-bay{display:flex;flex-direction:column;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);background:linear-gradient(180deg,#0a1216,#080f13)}.app .sy-bay-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid rgba(43,63,74,.7)}.app .sy-bay-head strong{display:block;font-size:12px;font-weight:600;letter-spacing:.06em}.app .sy-legend{display:flex;flex-wrap:wrap;gap:10px}.app .sy-legend-item{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:8.5px;color:var(--muted)}.app .sy-legend-item i{display:inline-block;width:8px;height:8px;border-radius:1px}.app .sy-legend-item.is-filled i{background:#57c96a}.app .sy-legend-item.is-empty i{background:#cc4a4a}.app .sy-hex-grid{--sy-hex: clamp(64px, 6.5vw, 96px);--sy-gap: 7px;--sy-hex-shape: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);display:flex;flex-direction:column;gap:10px;padding:8px 2px 4px}.app .sy-hex-row{display:flex;justify-content:center;gap:var(--sy-gap)}.app .sy-hex-row.is-offset{transform:translate(calc((var(--sy-hex) + var(--sy-gap)) * .34))}.app .sy-hex{position:relative;flex:0 0 var(--sy-hex);width:var(--sy-hex);aspect-ratio:.866;padding:0;border:0;border-radius:0;outline:none;background:var(--sy-edge, #cc4a4a);clip-path:var(--sy-hex-shape);cursor:pointer;transition:transform .15s ease}.app .sy-hex.is-filled{--sy-edge: #57c96a}.app .sy-hex.is-empty{--sy-edge: #cc4a4a}.app .sy-hex:hover{transform:translateY(-2px)}.app .sy-hex.is-filled:hover{--sy-edge: #7ad48a}.app .sy-hex.is-empty:hover{--sy-edge: #e56a6a}.app .sy-hex.is-open,.app .sy-hex:focus-visible{--sy-edge: var(--accent)}.app .sy-hex-face{position:absolute;top:2px;right:2px;bottom:2px;left:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;overflow:hidden;padding:16% 8% 12%;background:linear-gradient(180deg,#101b21,#080f13);clip-path:var(--sy-hex-shape);text-align:center}.app .sy-hex.is-filled .sy-hex-face{background:radial-gradient(70% 50% at 50% 42%,rgba(87,201,106,.16),transparent 70%),linear-gradient(180deg,#0f1c18,#070f0c)}.app .sy-hex.is-empty .sy-hex-face{background:radial-gradient(70% 50% at 50% 42%,rgba(204,74,74,.12),transparent 70%),linear-gradient(180deg,#161012,#0a0d0f)}.app .sy-hex-tag{max-width:100%;overflow:hidden;font-family:var(--mono);font-size:7.5px;letter-spacing:.03em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.app .sy-hex-name{max-width:100%;overflow:hidden;font-size:11px;font-weight:600;line-height:1.15;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.app .sy-hex.is-weapon .sy-hex-tag{color:#ffb86b}.app .sy-hex.is-defense .sy-hex-tag{color:#7ec8ff}.app .sy-hex.is-engine .sy-hex-tag{color:var(--accent)}.app .sy-hex-meta{font-family:var(--mono);font-size:8.5px;font-variant-numeric:tabular-nums;color:var(--green-line);white-space:nowrap}.app .sy-hex.is-empty .sy-hex-meta{color:#e07a7a}.app .sy-bay-hint{font-size:9.5px;line-height:1.55;color:var(--muted)}.app .sy-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.app .sy-stat{display:flex;flex-direction:column;gap:1px;min-width:0;padding:6px 8px;border:1px solid var(--line);background:#0a1217}.app .sy-stat span{font-size:8.5px;letter-spacing:.05em;color:var(--muted)}.app .sy-stat strong{overflow:hidden;font-family:var(--mono);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.app .sy-stat.attack strong{color:#ff9b7a}.app .sy-stat.hp strong{color:#c8d6dd}.app .sy-stat.shield strong{color:#79f0ff}.app .sy-stat.speed strong{color:#9fd2ff}.app .sy-stat.pd strong{color:#7ad48a}.app .sy-stat.mining strong{color:#e2c28c}.app .sy-stat.cargo strong{color:var(--warn)}.app .sy-stat.armor strong{font-size:11px;color:var(--text)}.app .sy-traits{display:flex;flex-wrap:wrap;gap:5px}.app .sy-progress{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-family:var(--mono);font-size:8.5px;color:var(--muted)}.app .sy-progress-bar{height:5px;overflow:hidden;border:1px solid rgba(43,63,74,.6);background:#16242b}.app .sy-progress-bar i{display:block;height:100%;background:var(--green-line);transition:width .2s ease}.app .sy-progress strong{font-size:9px;font-variant-numeric:tabular-nums;color:var(--text)}.app .sy-ops{gap:9px}.app .sy-cost{display:flex;flex-direction:column;gap:5px}.app .sy-ops-note{font-size:9px;line-height:1.5;color:var(--muted)}.app .sy-field{display:flex;flex-direction:column;gap:4px}.app .sy-field-label{font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;color:var(--muted)}.app .sy-field input{width:100%;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:2px;background:#070e12;color:var(--text);font-size:12px}.app .sy-field input:focus{outline:none;border-color:var(--accent)}.app .sy-actions{display:flex;flex-wrap:wrap;gap:8px}.app .sy-actions .btn{flex:1 1 auto}.app .sy-ops .hint{margin:0;font-size:10px;line-height:1.5}.app .sy-ready{font-size:10px;line-height:1.5;color:var(--good)}.app .sy-picker .component-card,.app .sy-picker .component-title{flex-wrap:wrap}.app .sy-picker .component-card.is-current{border-color:var(--green-line);background:#12211b}@media (max-width: 1279px){.app .sy-layout{grid-template-columns:224px minmax(0,1fr)}.app .sy-right{display:grid;grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}@media (max-width: 980px){.app .sy-hex-grid{--sy-hex: clamp(68px, 9vw, 104px)}}@media (max-width: 680px){.app .sy-layout{grid-template-columns:minmax(0,1fr)}.app .sy-center,.app .sy-bay{order:1}.app .sy-preview{order:2}.app .sy-right{order:2;grid-column:auto;grid-template-columns:minmax(0,1fr)}.app .sy-left{order:3}.app .sy-hex-grid{--sy-hex: clamp(58px, 17vw, 84px);--sy-gap: 6px}.app .sy-hulls{max-height:none;overflow-y:visible}.app .sy-preview-plate{min-height:180px}.app .sy-preview-glyph{width:min(240px,86%)}.app .sy-preview-foot{flex-wrap:wrap}}@media (prefers-reduced-motion: reduce){.app .sy-hex,.app .sy-progress-bar i{transition:none}}.app .skills-head{flex-wrap:wrap}.app .skills-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:10px;margin-bottom:12px}.app .skills-figure{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-raised),#0c151a)}.app .skills-figure>span{font-size:9.5px;letter-spacing:.06em;color:var(--muted)}.app .skills-figure>strong{font-size:23px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.app .skills-figure>small{font-size:9.5px;line-height:1.45;color:var(--muted)}.app .skills-respec{display:flex;flex-direction:column;gap:7px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-left:2px solid var(--warn);background:#14130d}.app .skills-respec-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.app .skills-respec-head>span:first-child{font-size:11.5px;letter-spacing:.06em}.app .skills-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.app .skills-actions .btn{min-width:0}.app .skills-actions .skills-respec-confirm{border-color:#ff5a5a8c;background:#ff5a5a24;color:#ffd0d0}.app .skills-actions .skills-respec-confirm:hover:not(:disabled){border-color:var(--bad);background:#ff5a5a3d}.app .skills-note{font-size:9.5px;line-height:1.5;color:var(--muted)}.app .skills-respec .skills-note.bad{color:var(--bad)}.app .skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.app .skills-card{display:flex;flex-direction:column;gap:9px;min-width:0;padding:12px;border:1px solid var(--line);background:var(--panel-raised)}.app .skills-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.app .skills-card-head>div{display:flex;flex-direction:column;gap:1px;min-width:0}.app .skills-card-head strong{font-size:15px;font-weight:600;letter-spacing:.06em}.app .skills-card-head small{font-family:var(--mono);font-size:9px;letter-spacing:.04em}.app .skills-card .level-pips i{height:6px}.app .skills-desc{min-height:32px;font-size:10.5px;line-height:1.55;color:var(--muted)}.app .skills-effect{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;border:1px solid var(--line);background:#0a1217}.app .skills-effect span{flex:none;font-family:var(--mono);font-size:9px;color:var(--muted)}.app .skills-effect strong{min-width:0;font-family:var(--mono);font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;color:var(--good)}.app .skills-effect.next strong{color:var(--warn)}.app .skills-effect.is-idle strong{color:var(--muted)}.app .skills-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:7px;border-top:1px solid rgba(43,63,74,.7)}.app .skills-card-foot .btn{margin-left:auto}@media (max-width: 680px){.app .skills-summary,.app .skills-grid{grid-template-columns:minmax(0,1fr)}.app .skills-actions{flex-direction:column;align-items:stretch}.app .skills-actions .btn{width:100%;white-space:normal}.app .skills-desc{min-height:0}}.star-map{display:flex;flex-direction:column;min-width:0}.star-map>.panel:last-child{margin-bottom:0}.app .star-map .sm-galaxy{padding:0;background:linear-gradient(180deg,#08131d,#050c13)}.star-map .sm-galaxy .sm-galaxy-head{align-items:flex-start;flex-wrap:wrap;gap:10px;margin:0;padding:15px 18px 11px;border-bottom:1px solid rgba(43,63,74,.75)}.star-map .sm-galaxy .sm-galaxy-head h2{font-size:18px;letter-spacing:.08em}.star-map .sm-galaxy .sm-galaxy-head p{margin-top:3px}.star-map .sm-hud{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr);min-width:0;border-bottom:1px solid rgba(43,63,74,.9);background:linear-gradient(180deg,#09151f,#060f17)}.star-map .sm-hud-cell{display:flex;flex-direction:column;gap:1px;min-width:0;padding:9px 14px 8px}.star-map .sm-hud-cell+.sm-hud-cell{border-left:1px solid rgba(43,63,74,.65)}.star-map .sm-hud-label{overflow:hidden;color:#6f8792;font-family:var(--mono);font-size:8px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis}.star-map .sm-hud-value{overflow:hidden;color:var(--text);font-size:13px;font-weight:600;line-height:1.4;letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis}.star-map .sm-hud-num{color:var(--accent);font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:.04em}.star-map .sm-hud-sub{overflow:hidden;color:var(--muted);font-size:9.5px;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}.star-map .sm-threat-home{color:var(--accent)}.star-map .sm-threat-cleared{color:var(--good)}.star-map .sm-threat-hostile{color:var(--bad)}.star-map .sm-threat-locked{color:var(--muted)}.star-map .sm-orbit-map{position:relative;min-width:0;overflow:hidden;background:#030b18}.star-map .sm-orbit-map>.sm-map-svg{display:block;width:100%;height:auto;aspect-ratio:880 / 530}.star-map .sm-orbit-map>.sm-map-svg.compact{aspect-ratio:520 / 590}.star-map .sm-orbit-ring{fill:none;stroke:#b8dcff61;stroke-width:.85;vector-effect:non-scaling-stroke}.star-map .sm-orbit-ring-boundary{stroke:#96c8ff29}.star-map .sm-orbit-tick{fill:none;stroke:#a0d2ff61;stroke-width:.8;vector-effect:non-scaling-stroke}.star-map .sm-starfield,.star-map .sm-crosshair,.star-map .sm-map-plate,.star-map .sm-hud-frame,.star-map .sm-hostile,.star-map .sm-fleet,.star-map .sm-star,.star-map .sm-belt{pointer-events:none}.star-map .sm-star-halo{animation:sm-halo-breathe 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center;pointer-events:none}.star-map .sm-star-core{filter:drop-shadow(0 0 10px rgba(255,190,110,.5))}.star-map .sm-star-flare{pointer-events:none}.star-map .sm-map-eyebrow{fill:#a8d4f8ad;font-family:var(--mono);font-size:8px;letter-spacing:.28em;paint-order:stroke;stroke:#030a14d9;stroke-width:2.4px}.star-map .sm-map-name{fill:#eef7ff;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;paint-order:stroke;stroke:#030a14e6;stroke-width:3px}.star-map .sm-map-meta{fill:#b8daf499;font-family:var(--mono);font-size:8px;letter-spacing:.2em}.star-map .sm-map-rule{stroke:#63d8ff8c;stroke-width:.8;vector-effect:non-scaling-stroke}.star-map .sm-hud-frame path{stroke:#63d8ff52;stroke-width:1;vector-effect:non-scaling-stroke}.star-map .sm-planet{cursor:pointer;outline:none}.star-map .sm-planet-hit{fill:transparent;pointer-events:all}.star-map .sm-planet .planet-glyph{transform-box:fill-box;transform-origin:center;transition:transform .18s ease,filter .18s ease;filter:drop-shadow(0 4px 8px rgba(0,0,0,.65))}.star-map .sm-planet:hover .planet-glyph,.star-map .sm-planet:focus-visible .planet-glyph{transform:scale(1.06);filter:drop-shadow(0 4px 8px rgba(0,0,0,.65)) brightness(1.06)}.star-map .sm-select-frame{stroke:#d8f7ff;stroke-width:1.1;vector-effect:non-scaling-stroke;pointer-events:none}.star-map .sm-focus-frame{opacity:0;stroke:#fffc;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.star-map .sm-planet:focus-visible .sm-focus-frame{opacity:1}.star-map .sm-unknown-ring circle,.star-map .sm-unknown-ring path{stroke:#96c8ff6b;stroke-width:.8;vector-effect:non-scaling-stroke}.star-map .sm-colony-badge,.star-map .sm-planet-text{pointer-events:none}.star-map .sm-label-leader{stroke:#d2ebff57;stroke-width:.7;vector-effect:non-scaling-stroke}.star-map .sm-planet-code{fill:#d6e8f6b8;font-family:var(--mono);font-size:9px;letter-spacing:.16em;paint-order:stroke;stroke:#030a14eb;stroke-width:2.6px;stroke-linejoin:round}.star-map .sm-planet.selected .sm-planet-code{fill:#fff}.star-map .sm-planet-name{fill:#f2f8ff;font-family:var(--mono),"PingFang SC","Microsoft YaHei",sans-serif;font-size:11px;letter-spacing:.04em;paint-order:stroke;stroke:#030a14f2;stroke-width:3px;stroke-linejoin:round}.star-map .sm-hostile-diamond{fill:#3a0a0ce6;stroke:var(--bad);stroke-width:1.3}.star-map .sm-hostile-core{fill:var(--bad);animation:sm-hostile-pulse 2.6s ease-in-out infinite}.star-map .sm-hostile-label,.star-map .sm-fleet-label{fill:#f2f8ff;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;paint-order:stroke;stroke:#030a14eb;stroke-width:2.6px}.star-map .sm-fleet-body{fill:#061e2aeb;stroke:var(--accent);stroke-width:1.3}.star-map .sm-fleet-core{fill:#63d8ff8c}.star-map .sm-legend{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:10px 16px 12px;border-top:1px solid rgba(43,63,74,.55);background:linear-gradient(180deg,#08121a8c,#050c12e6)}.star-map .sm-legend-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid rgba(43,63,74,.95);border-radius:2px;background:#0b141a;color:#b8c7cc;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;white-space:nowrap}.star-map .sm-legend-mark{display:inline-block;flex:none;width:9px;height:9px}.star-map .sm-mark-colony{clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:var(--green-line)}.star-map .sm-mark-scanned{border:1px solid rgba(99,216,255,.75);border-radius:50%;background:radial-gradient(circle,var(--accent) 0 34%,transparent 40%)}.star-map .sm-mark-hostile{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:var(--bad)}.star-map .sm-mark-fleet{clip-path:polygon(50% 100%,100% 0,0 0);background:var(--accent)}.star-map .sm-legend-hint{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:9px;letter-spacing:.04em}@keyframes sm-halo-breathe{0%,to{opacity:.78;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}@keyframes sm-hostile-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.star-map .sm-star-halo,.star-map .sm-hostile-core{animation:none}}@media (max-width: 1180px){.star-map .sm-hud{grid-template-columns:repeat(2,minmax(0,1fr))}.star-map .sm-hud-cell+.sm-hud-cell{border-left:1px solid rgba(43,63,74,.65)}.star-map .sm-hud-cell:nth-child(odd){border-left:0}.star-map .sm-hud-cell:nth-child(n+3){border-top:1px solid rgba(43,63,74,.55)}}@media (max-width: 680px){.star-map .sm-galaxy .sm-galaxy-head{padding:12px 12px 10px}.star-map .sm-galaxy .sm-galaxy-head h2{font-size:16px}.star-map .sm-hud-cell{padding:8px 10px 7px}.star-map .sm-hud-num{font-size:15px}.star-map .sm-map-eyebrow{font-size:10px}.star-map .sm-map-name{font-size:16px}.star-map .sm-map-meta{font-size:10px}.star-map .sm-planet-code{font-size:13.5px;stroke-width:3px}.star-map .sm-planet-name{font-size:16px;stroke-width:3.4px;transform:translateY(5px)}.star-map .sm-planet-text{transform:translateY(8px)}.star-map .sm-hostile-label,.star-map .sm-fleet-label{font-size:14px;stroke-width:3px}.star-map .sm-legend{padding:10px 12px 12px}.star-map .sm-legend-hint{width:100%;margin-left:0}}@media (max-width: 480px){.star-map .sm-planet-code{font-size:15px;stroke-width:3.2px}.star-map .sm-planet-name{font-size:18.5px;stroke-width:3.6px;transform:translateY(7px)}.star-map .sm-planet-text{transform:translateY(10px)}}:root{--bg: #02060e;--nebula-deep: #0a2450;--nebula-mid: #0b3f7a;--nebula-high: #1a6fd4;--panel: #0b1216;--panel-2: #0e171c;--panel-raised: #101b21;--line: #2b3f4a;--line-strong: #3d5a66;--text: #dfe9ea;--muted: #8fa2a8;--accent: #63d8ff;--accent-soft: rgba(99, 216, 255, .1);--green: #3b8f4d;--green-hover: #4aa85d;--green-line: #5fc06f;--good: #5fc06f;--warn: #ffd24a;--bad: #ff5a5a;--metal: #9fb6cc;--crystal: #7ec8ff;--fuel: #ffb86b;--alloy: #c9a2ff;--credits: #ffe08a;--radius: 2px;--mono: "JetBrains Mono", "Cascadia Mono", Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%}html body{background:radial-gradient(1180px 700px at 84% -8%,rgba(26,111,212,.3),transparent 62%),radial-gradient(900px 760px at 4% 22%,rgba(11,63,122,.38),transparent 66%),radial-gradient(1000px 820px at 46% 114%,rgba(10,36,80,.72),transparent 70%),var(--bg);color:var(--text);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input{font:inherit}h1,h2,h3,p{margin:0}.app{position:relative;z-index:1;max-width:1500px;margin:0 auto;padding:18px 26px 56px}.app .starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;opacity:1;background-color:transparent;background-image:radial-gradient(1.2px 1.2px at 12% 18%,rgba(255,255,255,.95),transparent 100%),radial-gradient(1px 1px at 68% 7%,rgba(205,232,255,.9),transparent 100%),radial-gradient(1.4px 1.4px at 38% 62%,rgba(255,255,255,.8),transparent 100%),radial-gradient(1px 1px at 84% 74%,rgba(255,255,255,.75),transparent 100%),radial-gradient(1px 1px at 6% 88%,rgba(255,255,255,.7),transparent 100%),radial-gradient(1.2px 1.2px at 55% 34%,rgba(163,216,255,.85),transparent 100%),radial-gradient(1px 1px at 92% 42%,rgba(255,255,255,.6),transparent 100%),radial-gradient(1.3px 1.3px at 24% 44%,rgba(255,255,255,.8),transparent 100%),radial-gradient(1px 1px at 46% 76%,rgba(190,225,255,.7),transparent 100%),radial-gradient(1.6px 1.6px at 74% 56%,rgba(255,255,255,.65),transparent 100%),radial-gradient(1px 1px at 32% 11%,rgba(255,255,255,.6),transparent 100%),radial-gradient(1.1px 1.1px at 88% 92%,rgba(210,235,255,.6),transparent 100%);background-repeat:repeat;background-size:210px 210px,240px 240px,280px 280px,310px 310px,340px 340px,380px 380px,420px 420px,460px 460px,520px 520px,580px 580px,640px 640px,700px 700px}.app .starfield-nebula{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background:radial-gradient(720px 520px at 74% 16%,rgba(26,111,212,.42),transparent 64%),radial-gradient(560px 620px at 14% 58%,rgba(11,63,122,.5),transparent 66%),radial-gradient(900px 520px at 46% 96%,rgba(10,36,80,.78),transparent 70%),radial-gradient(380px 340px at 88% 78%,rgba(26,111,212,.2),transparent 68%);filter:blur(16px);animation:nebula-drift 60s ease-in-out infinite alternate}.app .starfield-nebula:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(46% 30% at 62% 34%,rgba(26,111,212,.22),transparent 70%),radial-gradient(38% 26% at 34% 72%,rgba(11,63,122,.3),transparent 72%);filter:blur(28px)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:10.5px}.good{color:var(--good)}.bad{color:var(--bad)}.app .topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:-10px;padding:10px 0 14px;background:linear-gradient(180deg,#02060ef7 44%,#02060ee0);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;min-width:230px}.brand .brand-mark{width:46px;height:46px;flex:none;display:grid;place-items:center;border:none;border-radius:0;background:linear-gradient(160deg,#1d5c88,#0b2436 62%,#08131b);box-shadow:inset 0 0 0 1px #5fc06f47;font-family:var(--mono);font-weight:700;letter-spacing:.08em;color:#e2f8ff}.brand-text h1{font-size:20px;font-weight:600;letter-spacing:.14em}.brand-text p{margin-top:3px;font-size:9.5px;letter-spacing:.24em;color:var(--muted)}.resource-bar{flex:1;display:grid;grid-template-columns:repeat(5,minmax(104px,1fr));gap:8px}.resource-bar .res{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-radius:2px;background:var(--panel);box-shadow:none;min-width:0}.resource-bar .res:after{display:none}.res-body{display:flex;flex-direction:column;line-height:1.12;min-width:0}.res-label{font-size:9.5px;letter-spacing:.08em;color:var(--muted)}.res-body strong{font-family:var(--mono);font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap}.res-rate{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--good);opacity:.9;white-space:nowrap}.res-rate.negative{color:var(--bad)}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.save-hint{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted)}.save-dot{width:6px;height:6px;border-radius:50%;background:var(--good);box-shadow:0 0 8px var(--good);animation:pulse 2.6s ease-in-out infinite}.dot{width:7px;height:7px;flex:none;border-radius:50%;display:inline-block;background:currentColor}.dot-metal{color:var(--metal)}.dot-crystal{color:var(--crystal)}.dot-fuel{color:var(--fuel)}.dot-alloy{color:var(--alloy)}.dot-credits{color:var(--credits)}.dot-silicon{color:#8fd9b6}.dot-t2Titanium{color:#a9c7e8}.dot-t2Chip{color:#6fe0d0}.dot-t2Fusion{color:#ff9a5c}.dot-t3Nano{color:#d7a7ff}.dot-t3Quantum{color:#8fa8ff}.dot-wreck{color:#c2b6a3}.dot-oreMetal{color:#b99a6a}.dot-oreSilicon{color:#c8b98a}.dot-oreRare{color:#c98fd8}.dot-oreIce{color:#9fd8ee}.app .chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:2px;font-size:10.5px;line-height:1.5;border:1px solid var(--line);background:var(--panel-raised);color:var(--muted);white-space:nowrap;letter-spacing:.02em}.app .chip.ok{color:var(--good);border-color:#5fc06f66;background:#3b8f4d29}.app .chip.warn{color:var(--warn);border-color:#ffd24a61;background:#ffd24a17}.app .chip.bad{color:var(--bad);border-color:#ff5a5a66;background:#ff5a5a1a}.app .chip.locked,.app .chip-locked{color:var(--muted);opacity:.85}.app .chip-home{color:var(--accent);border-color:#63d8ff59;background:#63d8ff14}.app .chip-cleared{color:var(--good);border-color:#5fc06f66;background:#3b8f4d29}.app .chip-hostile{color:var(--bad);border-color:#ff5a5a66;background:#ff5a5a1a}.cost-chips{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.cost-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:2px;border:1px solid rgba(255,210,74,.26);background:#ffd24a0f;font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums;color:var(--warn);white-space:nowrap}.cost-chip.short{color:var(--bad);border-color:#ff5a5a6b;background:#ff5a5a14}.cost-chip .dot{width:6px;height:6px}.cost-empty{font-size:10px;color:var(--muted)}.app .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:2px;border:1px solid var(--line-strong);background:#16232a;color:var(--text);font-size:12.5px;font-family:inherit;letter-spacing:.03em;box-shadow:none;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .12s ease;white-space:nowrap}.app .btn:hover:not(:disabled){background:#1d2d35;border-color:#4a6874;box-shadow:none}.app .btn:active:not(:disabled){transform:translateY(1px)}.app .btn:disabled{opacity:.38;cursor:not-allowed}.app .btn.primary{background:var(--green);border-color:var(--green-line);color:#04130a;font-weight:600;box-shadow:none}.app .btn.primary:hover:not(:disabled){background:var(--green-hover);border-color:#7ad48a;box-shadow:none}.app .btn.primary:disabled{background:#26382b;border-color:#3a4d3e;color:#8fa696;opacity:1}.app .btn.ghost{background:transparent;border-color:var(--line);color:var(--muted)}.app .btn.ghost:hover:not(:disabled){background:#131f25;border-color:var(--line-strong);color:var(--text)}.app .btn.small{padding:5px 10px;font-size:11.5px}button:focus-visible,input:focus-visible{outline:2px solid rgba(99,216,255,.65);outline-offset:2px}.tabs{display:flex;gap:0;flex-wrap:wrap;margin:16px 0;border:1px solid var(--line);border-radius:2px;background:var(--panel)}.tabs .tab{position:relative;display:flex;flex:1 1 150px;align-items:center;justify-content:center;gap:10px;min-width:150px;padding:9px 14px;border:none;border-right:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted);box-shadow:none;cursor:pointer;text-align:left;font-family:inherit;transition:.16s ease}.tabs .tab:last-of-type{border-right:none}.tabs .tab:hover{background:var(--panel-raised);color:var(--text)}.tabs .tab.active{background:var(--green);color:#04130a;box-shadow:none}.tabs .tab:after,.tabs .tab.active:after{display:none}.tabs .tab-index{font-family:var(--mono);font-size:10.5px;font-variant-numeric:tabular-nums;color:#5f7c87;opacity:1}.tabs .tab.active .tab-index{color:#07180d}.tab-body{display:flex;flex-direction:column;gap:1px;line-height:1.15}.tab-body strong{font-size:13.5px;letter-spacing:.06em;font-weight:600}.tab-body small{font-size:9.5px;color:var(--muted)}.tabs .tab.active .tab-body small{color:#07180d}.tab-live{position:absolute;top:8px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 10px var(--warn);animation:pulse 1.6s ease-in-out infinite}.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.content{min-width:0}.sidebar{position:sticky;top:16px;display:flex;flex-direction:column;gap:16px}.app .sidebar .panel{margin-bottom:0}.app .panel{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line);border-radius:2px;padding:16px;margin-bottom:16px;box-shadow:0 8px 20px #00000047;-webkit-backdrop-filter:none;backdrop-filter:none}.app .panel:before,.app .panel:after{content:"";position:absolute;width:16px;height:16px;pointer-events:none;opacity:1}.app .panel:before{top:-1px;left:-1px;border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);border-top-left-radius:2px}.app .panel:after{right:-1px;bottom:-1px;border-bottom:1px solid var(--line-strong);border-right:1px solid var(--line-strong);border-bottom-right-radius:2px}.panel:last-child{margin-bottom:0}.panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(43,63,74,.7)}.panel-head h2{font-size:15px;font-weight:600;letter-spacing:.06em}.app .eyebrow{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);opacity:.72;margin-bottom:2px}.eyebrow.good{color:var(--good)}.eyebrow.bad{color:var(--bad)}.hint{margin:10px 0;padding:9px 11px;border:1px solid var(--line);border-left:2px solid #2f6f8a;border-radius:2px;background:#0d171c;color:#b9c9cd;font-size:11.5px;line-height:1.6}.hint.warn{border-color:var(--line);border-left-color:var(--warn);background:#1a1810;color:#e6cf8a}.section-title{margin:16px 0 4px;font-size:12px;letter-spacing:.08em;color:var(--muted);font-weight:600}.label{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--muted)}.progress{height:6px;border-radius:2px;background:#16242b;overflow:hidden}.progress>i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,#1f7fa8,#63d8ff);box-shadow:none;transition:width .6s linear}.progress.slim{height:4px}.progress.danger>i{background:linear-gradient(90deg,#b53a3a,#ff5a5a);box-shadow:none}.victory-banner{margin-bottom:14px;padding:14px 16px;border:1px solid rgba(95,192,111,.42);border-left:2px solid var(--green-line);border-radius:2px;background:linear-gradient(90deg,#3b8f4d29,#3b8f4d08)}.victory-banner h3{margin:4px 0 6px;font-size:17px;letter-spacing:.06em;color:var(--good)}.victory-banner p{font-size:12px;color:#b9d3c2;line-height:1.6}.expedition-strip{display:flex;flex-direction:column;gap:9px;margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:2px;background:#0c1a21}.exp-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.exp-left strong{font-size:12.5px;font-weight:600}.exp-left .muted{font-size:10.5px}.pulse-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);animation:pulse 1.8s ease-in-out infinite}.system-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:10px}.system-card{position:relative;overflow:hidden;text-align:left;padding:11px 13px 9px;border-radius:2px;border:1px solid var(--line);background:var(--panel-raised);color:var(--text);cursor:pointer;font-family:inherit;transition:.16s ease}.system-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent}.system-card:hover{border-color:var(--line-strong);background:#142128}.system-card.selected{border-color:var(--green-line);background:#10201a;box-shadow:inset 0 0 0 1px #5fc06f2e}.status-home:before{background:var(--accent)}.status-cleared:before{background:var(--good)}.status-hostile:before{background:var(--bad)}.status-locked:before{background:#46576b}.status-locked{opacity:.58}.sys-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.sys-top h3{font-size:15px;letter-spacing:.05em;font-weight:600}.sys-sub{margin:3px 0 10px;font-size:10.5px;color:var(--muted)}.sys-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--muted)}.sys-foot{display:flex;justify-content:space-between;gap:6px;min-height:17px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(43,63,74,.7);font-size:10.5px;color:var(--muted)}.sys-foot .live{color:var(--warn)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.detail-head h2{margin:3px 0 2px;font-size:19px;letter-spacing:.06em;font-weight:600}.detail-head p{font-size:11px}.detail-actions{display:flex;align-items:center;gap:10px}.sys-desc{margin:12px 0;max-width:95ch;font-size:12.5px;line-height:1.75;color:#b4c4c8}.intel{margin:12px 0;padding:12px;border:1px solid rgba(255,90,90,.28);border-left:2px solid var(--bad);border-radius:2px;background:#1a1013}.intel-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.intel-head strong{font-size:13.5px}.intel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.intel-grid>div{display:flex;flex-direction:column;gap:3px}.intel-grid span{font-size:9.5px;letter-spacing:.06em;color:var(--muted)}.intel-grid strong{font-family:var(--mono);font-size:16px}.intel-grid small{font-size:10px;line-height:1.5;color:var(--muted)}.planet-list{display:flex;flex-direction:column}.planet-row{display:grid;grid-template-columns:30px minmax(0,1.4fr) 88px minmax(190px,auto);gap:12px;align-items:center;padding:10px 6px;border-top:1px solid rgba(43,63,74,.7)}.planet-row:first-child{border-top:none}.planet-row.unknown{opacity:.72}.planet-row.colonized{background:linear-gradient(90deg,rgba(59,143,77,.14),transparent 62%);box-shadow:inset 2px 0 0 var(--green-line)}.planet-orb{position:relative;width:26px;height:26px;border-radius:50%;display:inline-block;box-shadow:inset -4px -6px 10px #0000008c,0 0 0 1px #ffffff14}.planet-orb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(255,255,255,.16)}.kind-terran{color:#63d8a8;background:radial-gradient(circle at 32% 28%,#a4f2cf,#2b8f6d 46%,#0d3d33)}.kind-rocky{color:#c79b72;background:radial-gradient(circle at 30% 25%,#e0bd97,#8a5f3c 52%,#2c1c12)}.kind-gas{color:#ffb86b;background:radial-gradient(circle at 32% 28%,#ffe0ae,#d98a3f 48%,#4a2a12)}.kind-ice{color:#8ad9ff;background:radial-gradient(circle at 32% 28%,#e6fbff,#6fbfe6 50%,#1b3c50)}.kind-barren{color:#8b97a3;background:radial-gradient(circle at 32% 28%,#c3ccd4,#6b7681 50%,#232a31)}.planet-info{display:flex;flex-direction:column;gap:1px;min-width:0}.planet-info strong{font-size:12.5px}.planet-info small{font-size:10px;color:var(--muted)}.planet-rich{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.planet-rich span{font-size:9px;color:var(--muted)}.planet-rich strong{font-family:var(--mono);font-size:11.5px;color:var(--accent)}.planet-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.manual-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:12px;line-height:1.65;color:#b4c4c8}.manual-list b{margin-right:4px;color:var(--accent);font-weight:600}.rate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.rate-card{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.rate-card>div{display:flex;flex-direction:column;gap:1px;min-width:0}.rate-card span{font-size:10px;letter-spacing:.05em;color:var(--muted)}.rate-card strong{font-family:var(--mono);font-size:17px;font-weight:600}.rate-card small{font-size:9.5px;color:var(--muted)}.rate-card .dot{margin-top:5px}.ore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.ore-card{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.ore-head{display:flex;align-items:center;gap:8px}.ore-head strong{font-size:12.5px}.ore-head .chip{margin-left:auto;font-size:9px}.ore-flow{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted)}.ore-flow .op{color:var(--accent)}.ore-flow b{color:var(--good);font-weight:600}.ore-card small{font-size:9.5px;color:var(--muted)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.recipe-card{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.recipe-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.recipe-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}.recipe-head strong{font-size:13px}.recipe-head small{font-size:10px;line-height:1.4;color:var(--muted)}.recipe-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:auto}.refinery-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised);font-family:var(--mono);font-size:13.5px}.refinery-flow .op{color:var(--accent)}.refinery-flow strong{color:var(--alloy)}.refinery-flow.paused{opacity:.5}.refinery-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:11px}.colony-list{display:flex;flex-direction:column}.colony-row{display:grid;grid-template-columns:30px minmax(0,1fr) 52px 128px minmax(226px,auto);gap:10px;align-items:center;padding:10px 6px;border-top:1px solid rgba(43,63,74,.7)}.colony-row:first-child{border-top:none}.colony-info{display:flex;flex-direction:column;gap:1px}.colony-info strong{font-size:12.5px}.colony-info small{font-size:10px;color:var(--muted)}.colony-level{font-family:var(--mono);font-size:12px;color:var(--accent)}.colony-output{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.colony-output span{font-size:9px;color:var(--muted)}.colony-output strong{font-family:var(--mono);font-size:12px;color:var(--good)}.colony-output small{font-size:9px;color:var(--muted)}.colony-action{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}.trade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.trade-card{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.trade-card>div{display:flex;flex-direction:column;gap:1px}.trade-card strong{font-size:12.5px}.trade-card small{font-size:10px;color:var(--muted)}.hull-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:16px}.hull-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised);color:var(--text);font-family:inherit;cursor:pointer;transition:.16s ease}.hull-card:hover{border-color:var(--line-strong);background:#142128}.hull-card.selected{border-color:var(--green-line);background:#10201a;box-shadow:inset 0 0 0 1px #5fc06f33}.hull-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.hull-top strong{font-size:13.5px}.hull-slots{font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--accent)}.hull-card p{font-size:10.5px;line-height:1.55;color:var(--muted)}.designer{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;align-content:start}.slot-card{position:relative;display:flex;flex-direction:column;gap:3px;min-height:78px;text-align:left;padding:10px 11px;border:1px dashed rgba(204,74,74,.5);border-radius:2px;background:#0d151a;color:var(--text);font-family:inherit;cursor:pointer;transition:.15s ease}.slot-card:hover{border-color:#e05f5f;background:#cc4a4a17}.slot-card.filled{border-style:solid;border-color:#57c96a;background:#57c96a17}.slot-card.filled:hover{border-color:#7ad48a;background:#57c96a24}.slot-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--muted)}.slot-card.filled .slot-label{color:var(--green-line)}.slot-card strong{font-size:12.5px}.slot-card small{font-size:10px;line-height:1.4;color:var(--muted)}.slot-tier{position:absolute;top:8px;right:8px;padding:0 4px;border:1px solid rgba(255,210,74,.32);border-radius:2px;font-family:var(--mono);font-size:9px;font-variant-numeric:tabular-nums;color:var(--warn)}.design-summary{display:flex;flex-direction:column;gap:12px;padding:14px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat-row>div{display:flex;flex-direction:column;gap:1px}.stat-row span{font-size:9px;letter-spacing:.06em;color:var(--muted)}.stat-row strong{font-family:var(--mono);font-size:18px;font-weight:600}.design-cost{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.design-name{display:flex;gap:8px}.design-name input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:2px;background:#070e12;color:var(--text);font-size:12.5px}.design-name input:focus{outline:none;border-color:var(--accent);box-shadow:none}.design-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.design-card{display:flex;flex-direction:column;gap:8px;padding:13px 14px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.ship-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ship-head>div{display:flex;flex-direction:column;gap:2px}.ship-head strong{font-size:13.5px}.ship-head small{font-size:10px;color:var(--muted)}.stat-line{font-family:var(--mono);font-size:10.5px;color:#b8cddd}.parts-line{font-size:10.5px;line-height:1.5;color:var(--muted)}.design-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:2px;padding-top:9px;border-top:1px solid rgba(43,63,74,.7)}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fleet-stats{margin-bottom:4px}.expedition-panel{display:flex;flex-direction:column;gap:12px;margin-top:14px;padding:12px;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:2px;background:#0c1a21}.expedition-panel .exp-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.expedition-panel .exp-left>div{display:flex;flex-direction:column;gap:2px}.expedition-panel .exp-left .mono{margin-left:auto;color:var(--accent)}.ship-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.ship-card{display:flex;flex-direction:column;gap:9px;padding:13px 14px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.hp-line{display:flex;align-items:center;gap:10px}.hp-line .progress{flex:1}.hp-line span{font-family:var(--mono);font-size:10.5px;color:#b4c4c8;white-space:nowrap}.ship-meta{display:flex;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:10.5px;color:var(--muted)}.broken-line{padding:5px 8px;border:1px solid rgba(255,90,90,.3);border-left:2px solid var(--bad);border-radius:2px;background:#ff5a5a14;font-size:10.5px;color:var(--bad)}.ship-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid rgba(43,63,74,.7)}.ship-foot .btn{margin-left:auto}.empty{padding:20px;border:1px solid var(--line);border-radius:2px;text-align:center;font-size:12px;color:var(--muted)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stats-grid>div{display:flex;flex-direction:column;gap:1px;padding:8px 10px;border:1px solid var(--line);border-radius:2px;background:#0d151a}.stats-grid span{font-size:9px;letter-spacing:.06em;color:var(--muted)}.stats-grid strong{font-family:var(--mono);font-size:15px;font-weight:600}.log-panel .panel-head{margin-bottom:8px}.log-list{display:flex;flex-direction:column;max-height:430px;overflow-y:auto}.log-line{display:grid;grid-template-columns:60px 1fr;gap:8px;padding:7px 0;border-top:1px solid rgba(43,63,74,.7);font-size:11px;line-height:1.45}.log-line:first-child{border-top:none}.log-time{padding-top:2px;font-family:var(--mono);font-size:9px;color:#7f939c}.log-text{color:#b4c4c8}.log-line.good .log-text{color:#9fe6c4}.log-line.bad .log-text{color:#f2a3a3}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;background:#02060edb;-webkit-backdrop-filter:none;backdrop-filter:none;animation:fade .18s ease}.modal{display:flex;flex-direction:column;gap:12px;width:100%;max-width:760px;max-height:min(88vh,900px);padding:18px;border:1px solid var(--line-strong);border-radius:2px;background:linear-gradient(180deg,var(--panel),var(--panel-2));box-shadow:0 18px 44px #0000008c;animation:rise .2s ease}.modal-head h2{margin:4px 0 2px;font-size:19px;letter-spacing:.05em;font-weight:600}.modal-head p{font-size:11.5px}.modal-head.good h2{color:var(--good)}.modal-head.bad h2{color:var(--bad)}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.battle-head{padding-bottom:12px;border-bottom:1px solid var(--line)}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-grid>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.result-grid span{font-size:9.5px;color:var(--muted)}.result-grid strong{font-family:var(--mono);font-size:14px}.loot-block{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.chip-block{display:flex;flex-direction:column;gap:6px}.chip-wrap{display:flex;flex-wrap:wrap;gap:6px}.battle-log{display:flex;flex-direction:column;gap:3px;max-height:300px;overflow-y:auto;padding:10px 12px;border:1px solid var(--line);border-radius:2px;background:#070e12;font-size:11px;line-height:1.5}.battle-line{color:var(--muted)}.battle-line.good{color:#9fe6c4}.battle-line.bad{color:#f2a3a3}.picker-modal{max-width:680px}.component-list{display:flex;flex-direction:column;gap:8px;max-height:46vh;overflow-y:auto;padding-right:4px}.component-card{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:11px 12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised);color:var(--text);font-family:inherit;cursor:pointer;transition:.15s ease}.component-card:hover{border-color:var(--green-line);background:#12211b}.component-main{display:flex;flex-direction:column;gap:3px;min-width:0}.component-title{display:flex;align-items:center;gap:8px}.component-title strong{font-size:12.5px}.component-main p{font-size:10px;line-height:1.45;color:var(--muted)}.component-stat{font-family:var(--mono);font-size:9.5px;font-variant-numeric:tabular-nums;color:var(--accent)}.app .tier-chip{color:var(--warn);border-color:#ffd24a57}.offline-modal{max-width:480px}.app .toast{position:fixed;right:24px;bottom:24px;z-index:80;padding:10px 14px;border:1px solid var(--line-strong);border-left:2px solid var(--accent);border-radius:2px;background:var(--panel-2);color:var(--text);font-size:12.5px;box-shadow:0 12px 28px #00000080;animation:rise .2s ease}.app .toast.good{border-color:#5fc06f73;border-left-color:var(--green-line);color:#c8efd2}.app .toast.bad{border-color:#ff5a5a73;border-left-color:var(--bad);color:#ffd0d0}.log-list::-webkit-scrollbar,.battle-log::-webkit-scrollbar,.component-list::-webkit-scrollbar{width:6px}.log-list::-webkit-scrollbar-thumb,.battle-log::-webkit-scrollbar-thumb,.component-list::-webkit-scrollbar-thumb{background:#2f4652;border-radius:2px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width: 1180px){.layout{grid-template-columns:minmax(0,1fr) 300px}.resource-bar{grid-template-columns:repeat(5,minmax(92px,1fr))}}@media (max-width: 980px){.layout{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px}.designer{grid-template-columns:1fr}.intel-grid{grid-template-columns:repeat(2,1fr)}.resource-bar{flex-basis:100%;order:3;grid-template-columns:repeat(5,minmax(0,1fr))}.top-actions{order:2;margin-left:auto}.colony-row{grid-template-columns:30px minmax(0,1.2fr) 56px minmax(150px,auto)}.colony-output{display:none}}@media (max-width: 680px){.app{padding:12px 12px 36px}.tabs{display:grid;grid-template-columns:1fr 1fr}.tabs .tab{min-width:0;justify-content:flex-start;padding:8px 10px;gap:8px}.tabs .tab:nth-child(2n){border-right:none}.resource-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{min-width:0}.brand-text h1{font-size:17px;letter-spacing:.1em}.sidebar{grid-template-columns:1fr}.planet-row{grid-template-columns:26px 1fr}.planet-rich{display:none}.planet-action{grid-column:1 / -1;justify-content:flex-start}.colony-row{grid-template-columns:26px 1fr 54px}.colony-action{grid-column:1 / -1;justify-content:flex-start}.result-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:repeat(2,1fr)}}.class-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.class-tab{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 11px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised);color:var(--text);font-family:inherit;cursor:pointer;transition:.15s ease}.class-tab small{font-size:9.5px;color:var(--muted)}.class-tab:hover{border-color:var(--line-strong);background:#142128}.class-tab.active{border-color:var(--green-line);background:#10201a;box-shadow:inset 0 0 0 1px #5fc06f33}.class-tab.active strong{color:var(--good)}.trait-line{display:flex;flex-wrap:wrap;gap:6px}.policy-panel{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.policy-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}.policy-head strong{font-size:14px}.policy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.policy-block{display:flex;flex-direction:column;gap:6px}.policy-title{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--muted)}.policy-options{display:flex;flex-wrap:wrap;gap:6px}.policy-btn{flex:1;min-width:96px;padding:7px 10px;border:1px solid var(--line);border-radius:2px;background:#101b21;color:var(--muted);font-family:inherit;font-size:11.5px;cursor:pointer;transition:.15s ease}.policy-btn:hover{border-color:var(--line-strong);color:var(--text)}.policy-btn.active{color:#04130a;border-color:var(--green-line);background:var(--green);font-weight:600}.policy-block small{font-size:10px;line-height:1.5;color:var(--muted)}.ship-upgrade{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--line);border-left:2px solid var(--line-strong);border-radius:2px;background:#0c151a}.upgrade-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 10px}.upgrade-item .cost-chips{grid-column:1}.upgrade-item .btn{grid-column:2;grid-row:1 / span 2;min-width:64px}.lab-tabs{display:flex;gap:6px;max-width:540px;margin-bottom:10px}.lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:10px}.lab-card{display:flex;flex-direction:column;gap:6px;padding:11px 12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.lab-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lab-head strong{font-size:12.5px}.lab-meta{font-family:var(--mono);font-size:9px;font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.04em}.lab-stat{font-family:var(--mono);font-size:9.5px;font-variant-numeric:tabular-nums;color:var(--accent);min-height:15px}.lab-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:4px}.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.research-card{display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid var(--line);border-radius:2px;background:var(--panel-raised)}.research-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.research-head>div{display:flex;flex-direction:column;gap:2px}.research-head strong{font-size:14px;letter-spacing:.04em}.research-head small{font-size:9.5px;font-family:var(--mono)}.level-pips{display:flex;gap:4px}.level-pips i{flex:1;height:5px;border-radius:1px;background:#1b2b32;transition:.2s ease}.level-pips i.on{background:var(--green-line);box-shadow:none}.research-card p{font-size:10.5px;line-height:1.5;color:var(--muted)}.research-effect{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;border:1px solid var(--line);border-radius:2px;background:#0a1217}.research-effect span{font-family:var(--mono);font-size:9px;color:var(--muted)}.research-effect strong{font-family:var(--mono);font-size:10.5px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--good)}.research-effect.next strong{color:var(--warn)}.research-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:4px}@media (max-width: 1100px){.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 980px){.class-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 680px){.class-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.research-grid{grid-template-columns:1fr}}.app .lane-node{border:1px solid var(--line);border-radius:2px;background:linear-gradient(180deg,var(--panel),var(--panel-2))}.app .lane-node:hover{border-color:var(--line-strong)}.app .lane-node.selected{border-color:var(--green-line);box-shadow:inset 0 0 0 1px #5fc06f33}.app .lane-node.selected strong{color:var(--green-line)}:root{--panel-edge: rgba(120, 190, 255, .22);--panel-glow: rgba(80, 190, 255, .1)}body{background:radial-gradient(1200px 700px at 78% 6%,rgba(30,96,190,.18),transparent 62%),radial-gradient(900px 620px at 8% 82%,rgba(96,52,190,.12),transparent 64%),radial-gradient(1400px 800px at 46% 116%,rgba(10,80,130,.16),transparent 66%),#02050b}.starfield{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:1;background:none;overflow:hidden}.starfield-nebula{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background:radial-gradient(760px 460px at 74% 22%,rgba(52,132,255,.24),transparent 62%),radial-gradient(620px 420px at 22% 64%,rgba(120,70,230,.17),transparent 64%),radial-gradient(520px 360px at 58% 88%,rgba(20,140,190,.2),transparent 62%);filter:blur(10px);animation:nebula-drift 42s ease-in-out infinite alternate}.starfield-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.5;background-image:linear-gradient(rgba(96,168,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(96,168,255,.05) 1px,transparent 1px);background-size:140px 140px;-webkit-mask-image:radial-gradient(circle at 50% 28%,#000 12%,transparent 78%);mask-image:radial-gradient(circle at 50% 28%,#000 12%,transparent 78%)}@keyframes nebula-drift{0%{transform:translate3d(-1.5%,-1%,0) scale(1)}to{transform:translate3d(1.5%,1.5%,0) scale(1.06)}}.topbar{position:sticky;top:0;z-index:40;padding-top:10px;margin-top:-10px;background:linear-gradient(180deg,rgba(2,6,12,.94) 30%,rgba(2,6,12,.55) 74%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-mark{border-radius:0;clip-path:polygon(25% 3%,75% 3%,100% 50%,75% 97%,25% 97%,0 50%);background:linear-gradient(160deg,#2b7fd0,#0d2c4a 62%,#071828);box-shadow:0 0 20px #5ac8ff47}.res{position:relative;background:linear-gradient(180deg,#0f2034e6,#060e19f0);border:1px solid rgba(108,172,238,.16);border-radius:6px;box-shadow:inset 0 1px #ffffff0d}.res:after{content:"";position:absolute;left:8px;right:8px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(140,210,255,.35),transparent)}.res-body strong{font-family:var(--mono);letter-spacing:.02em}.tab{position:relative;background:linear-gradient(180deg,#0e1e30b8,#070f1adb);border:1px solid rgba(102,160,220,.16);border-radius:6px;box-shadow:inset 0 1px #ffffff0a}.tab:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:transparent;transition:.18s ease}.tab.active{border-color:#6ed6ff8c;background:linear-gradient(180deg,#163652e6,#081422f2);box-shadow:0 0 22px #46b4ff24,inset 0 1px #ffffff14}.tab.active:after{background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 10px var(--accent)}.tab-index{color:#78beff80}.tab.active .tab-index{color:var(--accent)}.panel{position:relative;background:linear-gradient(180deg,#0b1828e6,#050c16f0);border:1px solid var(--panel-edge);border-radius:8px;box-shadow:0 22px 48px #0000005c,inset 0 1px #ffffff0b,inset 0 0 60px #1446820f}.panel:before,.panel:after{content:"";position:absolute;width:22px;height:22px;pointer-events:none;opacity:.75}.panel:before{top:-1px;left:-1px;border-top:1.5px solid rgba(110,214,255,.6);border-left:1.5px solid rgba(110,214,255,.6);border-top-left-radius:8px}.panel:after{right:-1px;bottom:-1px;border-bottom:1.5px solid rgba(110,214,255,.6);border-right:1.5px solid rgba(110,214,255,.6);border-bottom-right-radius:8px}.panel-head h2{letter-spacing:.08em}.eyebrow{color:#7ec4ff9e;letter-spacing:.28em}.btn{border-radius:5px;background:linear-gradient(180deg,#223c56eb,#0b1624f5);border:1px solid rgba(120,182,240,.28);box-shadow:inset 0 1px #ffffff14,0 2px 10px #00000059;letter-spacing:.04em}.btn:hover:not(:disabled){border-color:#8cdcff99;box-shadow:inset 0 1px #ffffff1a,0 0 16px #5ac8ff2e}.btn.primary{background:linear-gradient(180deg,#79f0bd,#2fb98a 46%,#12614a);border-color:#8cffcda6;color:#02120b;font-weight:700;text-shadow:0 1px 0 rgba(255,255,255,.25);box-shadow:0 0 20px #40dc9638,inset 0 1px #fff6}.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#95ffd1,#38d29c 46%,#178060);border-color:#b4ffdcd9;box-shadow:0 0 26px #54f0aa52,inset 0 1px #ffffff73}.btn.primary:disabled{background:linear-gradient(180deg,#3c605699,#14221ecc);border-color:#50826e4d;color:#a0c8b980;box-shadow:none}.chip{background:#08121ed9;border:1px solid rgba(110,170,230,.24);border-radius:3px;letter-spacing:.04em}.lane-strip{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:14px 2px 8px;scrollbar-width:thin}.lane-node{position:relative;flex:0 0 auto;min-width:104px;display:flex;flex-direction:column;gap:3px;padding:9px 11px 8px;border:1px solid rgba(104,164,226,.18);border-radius:5px;background:linear-gradient(180deg,#0f2034d1,#060e19e6);color:var(--text);font-family:inherit;text-align:left;cursor:pointer;transition:.16s ease}.lane-node strong{font-size:12px;letter-spacing:.04em}.lane-node small{font-size:9px;color:var(--muted);letter-spacing:.04em}.lane-dot{width:8px;height:8px;border-radius:50%;background:#5ad1ff;box-shadow:0 0 9px #5ad1ffcc}.lane-node.status-home .lane-dot{background:#7ec8ff}.lane-node.status-cleared .lane-dot{background:var(--good);box-shadow:0 0 9px #6ff2b3cc}.lane-node.status-hostile .lane-dot{background:var(--bad);box-shadow:0 0 9px #ff7a7ad9;animation:pulse 2s ease-in-out infinite}.lane-node.status-locked{opacity:.5}.lane-node.status-locked .lane-dot{background:#58708a;box-shadow:none}.lane-node:hover{border-color:#78c8ff66}.lane-node.selected{border-color:#6ed6ffb3;box-shadow:0 0 18px #46b4ff29,inset 0 1px #ffffff0f}.lane-node.selected strong{color:var(--accent)}.lane-link{flex:0 0 24px;align-self:center;height:2px;background:repeating-linear-gradient(90deg,rgba(110,175,235,.28) 0 5px,transparent 5px 10px)}.lane-link.open{background:repeating-linear-gradient(90deg,rgba(111,242,179,.6) 0 5px,transparent 5px 10px);box-shadow:0 0 8px #6ff2b333}.lane-live{position:absolute;top:-7px;right:-6px;padding:0 4px;font-family:var(--mono);font-size:8px;color:#8ff0c0;background:#0f2c22;border:1px solid rgba(111,242,179,.5);border-radius:3px}.orbit-map{position:relative;margin:4px 0 10px;border:1px solid rgba(96,168,255,.16);border-radius:6px;overflow:hidden;background:radial-gradient(circle at 50% 48%,#0a223e8c,#030810eb);box-shadow:inset 0 0 70px #001228bf}.orbit-map svg{display:block;width:100%;height:auto}.orbit-star-label{fill:#aedcffd9;font-family:var(--mono);font-size:11px;letter-spacing:.24em}.star-halo{animation:halo-pulse 6.5s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.star-core{filter:drop-shadow(0 0 14px rgba(140,220,255,.85))}.orbit-planet{cursor:pointer;outline:none}.orbit-planet .planet-glyph{transition:transform .2s ease,filter .2s ease;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55))}.orbit-planet:hover .planet-glyph,.orbit-planet:focus-visible .planet-glyph{transform:scale(1.07);filter:drop-shadow(0 0 14px rgba(120,210,255,.45))}.orbit-planet.selected .planet-glyph{filter:drop-shadow(0 0 12px rgba(120,235,255,.5))}.orbit-select{animation:orbit-dash 3.2s linear infinite}.orbit-label{fill:#cee6ffe6;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;paint-order:stroke;stroke:#030810e6;stroke-width:2.6px}.orbit-label.good{fill:#7df3bb}.orbit-sub{fill:#80a0bee6;font-family:var(--mono);font-size:8px;paint-order:stroke;stroke:#030810e6;stroke-width:2.4px}.colony-badge{filter:drop-shadow(0 0 6px rgba(111,242,179,.55))}.hostile-marker path{animation:hostile-pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.hostile-label{fill:#ff9a9a;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;paint-order:stroke;stroke:#030810e6;stroke-width:2.4px}.fleet-marker path{animation:marker-float 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.fleet-label{fill:#7df3bb;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;paint-order:stroke;stroke:#030810e6;stroke-width:2.4px}.orbit-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:10px;color:#9db9d4;font-family:var(--mono)}.legend-dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:var(--accent);color:var(--accent);box-shadow:0 0 7px currentColor}.legend-dot.good{background:var(--good);color:var(--good)}.legend-dot.accent{background:var(--accent);color:var(--accent)}.legend-dot.bad{background:var(--bad);color:var(--bad)}@keyframes halo-pulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes orbit-dash{to{stroke-dashoffset:-32}}@keyframes hostile-pulse{0%,to{opacity:.65}50%{opacity:1}}@keyframes marker-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.planet-row-art{display:flex;align-items:center;justify-content:center}.planet-row{grid-template-columns:54px minmax(0,1.4fr) 88px minmax(190px,auto);cursor:pointer;border-radius:4px;transition:background .15s ease}.planet-row:hover{background:#50aaff0a}.planet-row.selected{background:#3cbeff14;box-shadow:inset 2px 0 0 var(--accent)}.colony-row{grid-template-columns:54px minmax(0,1.3fr) 58px 136px minmax(190px,auto)}.colony-art{filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.ship-glyph{display:block;overflow:visible;filter:drop-shadow(0 8px 14px rgba(0,0,0,.55))}.ship-glyph.dim{opacity:.6;filter:grayscale(.35) brightness(.85)}.ship-glyph.damaged{filter:drop-shadow(0 0 10px rgba(255,120,70,.3))}.ship-dome{animation:dome-pulse 3.6s ease-in-out infinite}.ship-spark{animation:spark-flicker 1.1s steps(2) infinite}.hull-art{display:flex;justify-content:center;align-items:center;min-height:74px;padding:4px 0 2px;background:radial-gradient(ellipse at 50% 62%,rgba(56,140,235,.12),transparent 70%);border-radius:5px}.design-preview{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px 10px;border:1px solid rgba(99,216,255,.14);border-radius:6px;background:radial-gradient(ellipse at 50% 60%,rgba(30,96,170,.2),transparent 72%),#03091199;box-shadow:inset 0 0 40px #001e3c80}.design-preview .ship-glyph{filter:drop-shadow(0 12px 22px rgba(0,0,0,.6))}.preview-caption{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.06em}.design-card{flex-direction:row;align-items:center;gap:14px}.design-art{flex:0 0 130px;display:flex;align-items:center;justify-content:center;padding:8px 4px;border-radius:6px;background:radial-gradient(ellipse at 50% 60%,rgba(30,90,160,.16),transparent 72%)}.design-body{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0}.ship-list{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.ship-card{flex-direction:row;align-items:center;gap:14px}.ship-art{flex:0 0 148px;display:flex;align-items:center;justify-content:center;padding:8px 4px;border-radius:6px;background:radial-gradient(ellipse at 50% 60%,rgba(30,90,160,.16),transparent 72%)}.ship-body{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}@keyframes dome-pulse{0%,to{opacity:.5}50%{opacity:.95}}@keyframes spark-flicker{0%,to{opacity:.3}50%{opacity:.95}}.battle-scene{position:relative;border:1px solid rgba(99,216,255,.2);border-radius:6px;overflow:hidden;background:#02060d;box-shadow:inset 0 0 60px #001428b3}.battle-scene svg{display:block;width:100%;height:auto}.battle-scene.no-anim *{animation:none!important;transition:none!important}.battle-scene.no-anim .beam-group{opacity:.14}.battle-scene.no-anim .explosion-group{opacity:.34}.battle-scene.no-anim .battle-unit.destroyed{opacity:.14}.scene-skip{position:absolute;top:8px;right:8px;z-index:2;padding:4px 8px;font-family:var(--mono);font-size:9px;color:#8fb4d6;background:#050d18d1;border:1px solid rgba(120,190,255,.28);border-radius:3px;cursor:pointer}.scene-skip:hover{color:var(--accent);border-color:#78dcff8c}.scene-hud{fill:#b8dcfab3;font-family:var(--mono);font-size:10px;letter-spacing:.18em}.scene-hud.good{fill:#6ff2b3}.scene-hud.bad{fill:#ff7a7a}.battle-unit{animation:unit-enter .55s ease both}.unit-name{font-family:var(--mono);font-size:10px;letter-spacing:.04em;paint-order:stroke;stroke:#030810e6;stroke-width:2.6px}.unit-name.ally{fill:#8ff0c0}.unit-name.enemy{fill:#ff9a9a}.unit-stat{font-family:var(--mono);font-size:8.5px;fill:#8fb0cc;paint-order:stroke;stroke:#030810e6;stroke-width:2.4px}.unit-stat.enemy{fill:#c98f8f}.battle-unit.enemy{animation-name:unit-enter-enemy}.battle-unit.destroyed{animation:unit-enter .55s ease both,unit-die .5s ease 3.3s forwards}.battle-unit.enemy.destroyed{animation:unit-enter-enemy .55s ease both,unit-die .5s ease 3.3s forwards}.beam-group{opacity:0;animation:beam-fire 1.05s ease-out both}.beam-impact{transform-box:fill-box;transform-origin:center}.explosion-group{opacity:0;transform-box:fill-box;transform-origin:center;animation:explode 1.15s ease-out both}.battle-log-details{border:1px solid var(--line);border-radius:5px;background:#ffffff05}.battle-log-details summary{padding:8px 12px;font-family:var(--mono);font-size:10.5px;color:#9db9d4;cursor:pointer;list-style:none;letter-spacing:.06em}.battle-log-details summary::-webkit-details-marker{display:none}.battle-log-details summary:before{content:"▸ ";color:var(--accent)}.battle-log-details[open] summary:before{content:"▾ "}.battle-log-details .battle-log{max-height:220px;border:none;border-top:1px solid var(--line);border-radius:0 0 5px 5px}.toast{border-radius:4px;border-color:#63d8ff73;box-shadow:0 0 24px #3caaff2e,0 16px 40px #00000080;font-family:var(--mono);letter-spacing:.03em}@keyframes unit-enter{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}@keyframes unit-enter-enemy{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes unit-die{to{opacity:0}}@keyframes beam-fire{0%{opacity:0}10%{opacity:1}65%{opacity:.8}to{opacity:0}}@keyframes explode{0%{opacity:0;transform:scale(.25)}14%{opacity:1;transform:scale(1)}70%{opacity:.8}to{opacity:0;transform:scale(1.8)}}@media (prefers-reduced-motion: reduce){.starfield-nebula,.star-halo,.hostile-marker path,.fleet-marker path,.orbit-select,.ship-dome,.ship-spark,.battle-unit,.beam-group,.explosion-group{animation:none!important}.beam-group{opacity:.35}}@media (max-width: 980px){.colony-row{grid-template-columns:46px minmax(0,1fr) 50px minmax(210px,auto)}}@media (max-width: 680px){.planet-row{grid-template-columns:46px 1fr;padding:10px 4px}.colony-row{grid-template-columns:46px minmax(0,1fr) auto;grid-template-areas:"art info level" "art action action";row-gap:8px}.colony-art{grid-area:art}.colony-info{grid-area:info}.colony-level{grid-area:level}.colony-action{grid-area:action;justify-content:flex-start}.design-card,.ship-card{flex-direction:column;align-items:stretch}.design-art,.ship-art{flex-basis:auto}.lane-node{min-width:92px;padding:8px 9px}.orbit-label{font-size:16px}.orbit-sub{font-size:12.5px}.orbit-star-label,.hostile-label,.fleet-label{font-size:15px}}
