:root { --ink:#071019; --panel:#0c1824; --panel-2:#111f2d; --line:#29404f; --cyan:#65dcea; --cyan-soft:#b5f7ff; --amber:#e5a94f; --paper:#ecf0ea; --muted:#8ba0ae; --danger:#ff6e6e; --success:#80e6ad; --shadow:0 22px 70px rgba(0,0,0,.35); color-scheme:dark; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { background:var(--ink); }
body { margin:0; background:radial-gradient(circle at 75% -10%,#173044 0,transparent 32rem),var(--ink); color:#e8f0f4; font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif; min-height:100vh; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,input[type="submit"] { cursor:pointer; }
.site-header { height:76px; padding:0 clamp(24px,5vw,80px); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(101,220,234,.18); background:rgba(5,13,21,.88); backdrop-filter:blur(18px); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:12px; letter-spacing:.16em; }
.brand-mark { width:42px; height:42px; border:1px solid var(--cyan); color:var(--cyan); display:grid; place-items:center; font-size:24px; font-weight:900; transform:skew(-7deg); box-shadow:inset 0 0 18px rgba(101,220,234,.16); }
.brand strong,.brand small { display:block; }.brand strong { font-size:16px; }.brand small { font-size:9px; color:var(--muted); letter-spacing:.08em; margin-top:3px; }
.header-controls { display:flex; align-items:center; gap:28px; }.site-header nav { display:flex; gap:28px; color:#b9c9d1; font-size:13px; text-transform:uppercase; letter-spacing:.12em; }.site-header nav a:hover { color:var(--cyan); }.theme-picker { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.theme-picker select { min-height:34px; border:1px solid var(--line); background:#07131d; color:#dfeaf0; padding:5px 26px 5px 9px; font-size:11px; font-weight:700; }
.flash { width:min(460px,calc(100% - 40px)); margin:auto; padding:0; border:1px solid; background:var(--panel-2); color:#e8f0f4; box-shadow:0 28px 90px rgba(0,0,0,.58); }.flash::backdrop { background:rgba(2,7,11,.72); backdrop-filter:blur(3px); }.flash.success { border-color:var(--success); }.flash.error { border-color:var(--danger); }.flash-copy { padding:25px 27px 20px; }.flash-copy .eyebrow { margin-bottom:8px; }.flash.success .flash-copy .eyebrow { color:var(--success); }.flash.error .flash-copy .eyebrow { color:var(--danger); }.flash-copy>p:last-child { margin:0; font-size:15px; line-height:1.5; }.flash>form { padding:0 27px 25px; display:flex; justify-content:flex-end; }.flash>form .button { min-width:96px; }
.eyebrow { color:var(--cyan); text-transform:uppercase; letter-spacing:.2em; font-weight:700; font-size:11px; margin:0 0 10px; }
.button { border:1px solid var(--line); background:transparent; color:#e7eff3; min-height:44px; padding:0 20px; display:inline-flex; align-items:center; justify-content:center; text-transform:uppercase; letter-spacing:.1em; font-size:11px; font-weight:800; transition:.2s ease; }
.button:hover { border-color:var(--cyan); color:var(--cyan-soft); transform:translateY(-1px); }.button.primary { background:var(--cyan); color:#041116; border-color:var(--cyan); box-shadow:0 0 30px rgba(101,220,234,.18); }.button.primary:hover { background:var(--cyan-soft); }.button.secondary { border-color:var(--amber); color:#f2c77c; }.button.ghost { color:#a9bac4; }.button.danger { border-color:color-mix(in srgb,var(--danger) 72%,var(--line)); color:var(--danger); }.button.danger:hover,.button.danger:focus-visible { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 10%,transparent); color:var(--danger); }.button.small { min-height:34px; padding:0 13px; font-size:9px; }
.hero { min-height:590px; padding:70px clamp(28px,8vw,130px); display:grid; grid-template-columns:minmax(420px,650px) 1fr; align-items:center; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.starfield,.starfield::before,.starfield::after { position:absolute; inset:0; content:""; pointer-events:none; }.starfield { opacity:.52; background-image:radial-gradient(#fff 1px,transparent 1px); background-size:83px 83px; }.starfield::before { background-image:radial-gradient(#6fdbe8 1px,transparent 1px); background-size:137px 137px; transform:translate(31px,19px); }.starfield::after { background:linear-gradient(105deg,var(--ink) 15%,transparent 60%),radial-gradient(circle at 80% 45%,rgba(101,220,234,.16),transparent 28%); }
.hero-copy { position:relative; z-index:2; max-width:560px; }.hero h1 { font-size:clamp(48px,6vw,86px); line-height:.9; letter-spacing:-.055em; margin:0; font-weight:900; }.hero h1 em { color:transparent; -webkit-text-stroke:1px var(--cyan); font-style:normal; }.hero-copy>p:not(.eyebrow) { color:#aebdc6; max-width:560px; font-size:18px; line-height:1.65; }.hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:30px; }.hero-actions form { display:contents; }.hero-actions .button { width:100%; min-height:52px; }
@media (max-width:620px) { .hero-actions { grid-template-columns:1fr; } }
.hero-ship { position:absolute; z-index:1; width:min(50vw,860px); aspect-ratio:3/2; right:clamp(18px,4vw,76px); top:50%; margin:0; padding:1px; overflow:hidden; transform:translateY(-50%); background:linear-gradient(135deg,rgba(181,247,255,.85),rgba(101,220,234,.1) 38%,rgba(229,169,79,.68)); box-shadow:0 30px 90px rgba(0,0,0,.5),0 0 46px rgba(101,220,234,.14); clip-path:polygon(7% 0,100% 0,100% 91%,93% 100%,0 100%,0 9%); }.hero-ship::before { content:""; position:absolute; z-index:2; inset:1px; pointer-events:none; background:linear-gradient(180deg,rgba(7,16,25,.08),transparent 55%,rgba(7,16,25,.38)); clip-path:inherit; }.hero-ship::after { content:""; position:absolute; z-index:3; inset:8px; pointer-events:none; border-top:1px solid rgba(181,247,255,.5); border-right:1px solid rgba(181,247,255,.18); clip-path:polygon(7% 0,100% 0,100% 91%); }.hero-ship img { display:none; width:100%; height:100%; object-fit:cover; object-position:center; clip-path:inherit; }.hero-ship img[data-hero-theme="dark"],html[data-theme="dark-metal"] .hero-ship img[data-hero-theme="dark-metal"],html[data-theme="metal"] .hero-ship img[data-hero-theme="metal"] { display:block; }html[data-theme="dark-metal"] .hero-ship img[data-hero-theme="dark"],html[data-theme="metal"] .hero-ship img[data-hero-theme="dark"] { display:none; }.hero-telemetry { position:absolute; z-index:4; right:52px; bottom:28px; display:grid; justify-items:end; gap:3px; color:#c8f8ff; font-family:ui-monospace,"SFMono-Regular",Consolas,monospace; font-size:8px; letter-spacing:.16em; line-height:1.2; text-transform:uppercase; text-shadow:0 1px 4px #000; }.hero-telemetry b { color:#efb453; font-size:9px; }
.dashboard-band { min-height:112px; display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); background:#08131d; padding:0 clamp(25px,7vw,110px); }.dashboard-band>div { border-right:1px solid var(--line); padding:24px 30px; display:flex; flex-direction:column; justify-content:center; }.dashboard-band>div:first-child { border-left:1px solid var(--line); }.dashboard-band strong { font-size:30px; color:var(--cyan-soft); }.dashboard-band span { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:9px; }
.content-section { width:min(1320px,calc(100% - 48px)); margin:0 auto; padding:70px 0; }.content-section+.content-section { border-top:1px solid var(--line); }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:26px; }.section-heading h2,.archive-panel h2 { font-size:32px; margin:0; }
.design-archive { display:grid; gap:18px; }.design-kind-panel { border:1px solid var(--line); background:color-mix(in srgb,var(--panel) 88%,transparent); }.design-kind-panel>summary { min-height:82px; padding:16px 20px; display:flex; align-items:center; gap:18px; cursor:pointer; list-style:none; background:var(--panel-2); user-select:none; }.design-kind-panel>summary::-webkit-details-marker { display:none; }.design-kind-panel>summary::after { content:"+"; width:42px; height:42px; margin-left:2px; display:grid; place-items:center; border:1px solid var(--line); color:var(--cyan); font-size:25px; line-height:1; }.design-kind-panel[open]>summary::after { content:"−"; }.design-kind-panel>summary>span:first-child { display:grid; gap:3px; }.design-kind-panel>summary small { color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }.design-kind-panel>summary strong { font-size:24px; }.design-kind-count { margin-left:auto; display:flex; align-items:baseline; gap:7px; color:var(--muted); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }.design-kind-count b { color:var(--cyan); font-size:22px; }.design-kind-panel>.design-grid { padding:18px; border-top:1px solid var(--line); }.design-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:16px; }.design-card { border:1px solid var(--line); background:linear-gradient(135deg,#101e2a,#09141e); min-height:210px; display:grid; grid-template-columns:105px 1fr; overflow:hidden; }.design-card:hover { border-color:#44677b; }.card-art { position:relative; background:linear-gradient(#132535,#09131c); border-right:1px solid var(--line); display:grid; place-items:center; overflow:hidden; }.card-art>span { position:absolute; z-index:1; top:10px; left:10px; color:var(--cyan); font-weight:900; text-shadow:0 1px 3px #000; }.card-art svg { width:66px; fill:#3c5260; stroke:#8cb6c4; }.card-ship-art { width:88%; height:82%; object-fit:contain; filter:drop-shadow(0 8px 10px rgba(0,0,0,.45)); }.card-faction-art { width:100%; height:100%; object-fit:cover; }.card-copy { padding:23px; }.card-copy h3 { font-size:20px; margin:0 0 10px; }.card-copy>p:not(.eyebrow) { color:var(--muted); font-size:12px; min-height:38px; }.card-metadata { display:grid; align-content:start; gap:4px; }.card-faction { color:var(--cyan-soft); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.card-actions { display:flex; gap:8px; margin-top:20px; }.card-actions form { display:contents; }.empty-state { border:1px dashed var(--line); padding:55px; text-align:center; color:var(--muted); }.empty-state h3 { color:#fff; }
.split-section { display:grid; grid-template-columns:2fr 1fr; gap:40px; }.reference-list { display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); }.reference-entry { padding:12px 15px; display:grid; grid-template-columns:1fr auto; border-bottom:1px solid var(--line); border-right:1px solid var(--line); color:inherit; text-decoration:none; transition:background .15s ease,box-shadow .15s ease; }.reference-entry:hover,.reference-entry:focus-visible { position:relative; z-index:1; background:color-mix(in srgb,var(--cyan) 9%,transparent); box-shadow:inset 3px 0 var(--cyan); outline:0; }.reference-list strong { font-size:12px; }.reference-list span { color:var(--amber); font-size:11px; }.reference-list small { grid-column:1/-1; color:var(--muted); font-size:9px; }.reference-list small b { color:var(--cyan); font-weight:700; }.archive-panel { background:var(--panel-2); border:1px solid var(--line); padding:30px; align-self:start; }.archive-panel p:not(.eyebrow) { color:var(--muted); line-height:1.6; }.archive-panel form { display:grid; gap:14px; margin-top:22px; }
.editor-page,.inspection-page { width:min(1500px,calc(100% - 40px)); margin:0 auto; padding:32px 0 70px; }.editor-header,.inspection-header { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:30px; }.editor-header h1,.inspection-header h1 { margin:0; font-size:34px; }.save-status { color:var(--muted); font-size:11px; }.save-status.pending { color:var(--amber); }.save-status.saved { color:var(--success); }.save-status.conflict { color:var(--danger); }.editor-actions { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }.editor-actions form { display:contents; }
.rules-source-filter { min-height:76px; margin:-12px 0 22px; padding:12px 18px; border:1px solid var(--line); background:linear-gradient(90deg,#0d1f2d,#09151f); display:grid; grid-template-columns:minmax(190px,.7fr) minmax(320px,1fr) auto; align-items:center; gap:22px; }.rules-source-filter .eyebrow { margin-bottom:3px; font-size:9px; }.rules-source-filter strong { font-size:15px; }.rules-source-filter label { display:grid; gap:5px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:9px; }.rules-source-filter select { min-height:44px; padding:9px 12px; border:1px solid var(--cyan); background:#07131d; color:var(--cyan-soft); font-size:14px; font-weight:600; letter-spacing:0; text-transform:none; }.rules-source-help { position:relative; justify-self:end; }.rules-source-help>button { width:32px; height:32px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--cyan-soft); font-size:23px; line-height:1; }.rules-source-help>button:hover,.rules-source-help>button:focus-visible { background:rgba(101,220,234,.16); color:var(--cyan); outline:1px solid var(--cyan); }.rules-source-help>[role="tooltip"] { width:290px; position:absolute; z-index:20; right:0; bottom:calc(100% + 10px); padding:11px 13px; border:1px solid var(--line); background:#132634; color:#d7e4e9; box-shadow:var(--shadow); font-size:11px; line-height:1.5; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.rules-source-help:hover>[role="tooltip"],.rules-source-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.out-of-scope-current { box-shadow:inset 3px 0 var(--amber); }
.rules-source-help>button svg { width:20px; height:20px; display:block; margin:auto; }
.editor-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:22px; align-items:start; }.editor-form { display:grid; gap:16px; }.editor-panel { border:1px solid var(--line); background:rgba(11,24,35,.92); }.editor-panel>header { min-height:78px; display:flex; align-items:center; gap:16px; border-bottom:1px solid var(--line); padding:14px 20px; }.editor-panel.is-collapsed>header { min-height:64px; border-bottom:0; }.editor-panel>header>span { color:#4e6979; font-size:28px; font-weight:900; }.editor-panel>header>div { flex:1; }.editor-panel h2 { margin:0; font-size:19px; }.editor-panel header p { margin:4px 0 0; color:var(--muted); font-size:11px; }.editor-panel-toggle { width:36px; height:36px; flex:0 0 36px; padding:0; border:1px solid var(--line); background:#07131d; color:var(--cyan-soft); font-size:22px; line-height:1; }.editor-panel-toggle:hover,.editor-panel-toggle:focus-visible { border-color:var(--cyan); color:var(--cyan); outline:0; }.editor-panel.is-collapsed .editor-panel-toggle { color:var(--amber); }.editor-panel.is-collapsed [data-add-bank],.editor-panel.is-collapsed [data-add-band],.editor-panel.is-collapsed [data-custom-weapon-action] { display:none; }.field-grid { padding:20px; display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }.field { display:grid; gap:6px; color:#91a6b2; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.field>small { color:#718895; font-size:9px; line-height:1.4; letter-spacing:0; text-transform:none; }.field.wide { grid-column:span 2; }.field input,.field select,.field textarea,.weapon-bank-row input,.weapon-bank-row select,.range-band-grid input { width:100%; min-height:42px; border:1px solid var(--line); background:#07131d; color:#eaf2f5; padding:9px 11px; outline:none; letter-spacing:0; text-transform:none; }.field input,.field select,.field textarea { font-size:16px; }.weapon-bank-row input,.weapon-bank-row select,.range-band-grid input { font-size:13px; }.field textarea { min-height:80px; resize:vertical; line-height:1.45; }.field textarea.identity-notes { height:42px; min-height:42px; }.field input:focus,.field select:focus,.field textarea:focus,.weapon-bank-row input:focus,.weapon-bank-row select:focus { border-color:var(--cyan); }.toggle-field { align-self:end; min-height:42px; display:flex; align-items:center; gap:9px; color:#b8c8d0; font-size:12px; }.toggle-field input { accent-color:var(--cyan); }
.design-generator-button { color:var(--cyan-soft); border-color:var(--cyan); }.design-generator-button span { margin-right:5px; color:var(--amber); }.design-generator-button.is-generating { cursor:wait; opacity:.7; }.button.design-reset-button { color:var(--danger); border-color:color-mix(in srgb,var(--danger) 68%,var(--line)); }.button.design-reset-button:hover,.button.design-reset-button:focus-visible { color:var(--danger); border-color:var(--danger); background:color-mix(in srgb,var(--danger) 9%,transparent); }.design-reset-button.is-resetting { cursor:wait; opacity:.7; }.field.full { grid-column:1/-1; }.weapon-identity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }.weapon-identity-grid>.field.wide { grid-column:span 1; }.field textarea.weapon-description { min-height:72px; }.faction-identity-grid { grid-template-columns:minmax(0,1fr) minmax(260px,340px); align-items:start; }.faction-identity-grid>.field.wide { grid-column:1; align-content:start; }.faction-identity-grid>.field.wide>input { height:42px; min-height:42px; }.faction-portrait { grid-column:2; grid-row:1 / span 2; width:100%; margin:0; border:1px solid var(--line); background:#07131d; overflow:hidden; }.faction-portrait>img,.faction-portrait-placeholder { display:block; width:100%; aspect-ratio:1; object-fit:cover; }.faction-portrait-placeholder { display:grid; place-items:center; align-content:center; gap:8px; color:var(--muted); background:radial-gradient(circle at 50% 38%,#274252,#07131d 70%); }.faction-portrait-placeholder span { font-size:58px; font-weight:900; color:#496878; }.faction-portrait-placeholder small { width:75%; text-align:center; font-size:9px; line-height:1.45; text-transform:uppercase; letter-spacing:.1em; }.faction-portrait figcaption { display:grid; gap:4px; padding:11px 12px; border-top:1px solid var(--line); }.faction-portrait figcaption strong { color:var(--cyan); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }.faction-portrait figcaption span { color:var(--muted); font-size:9px; line-height:1.45; }.field textarea.faction-backstory { height:240px; min-height:160px; }.faction-development-grid { grid-template-columns:minmax(0,2fr) minmax(240px,1fr); align-items:start; }.faction-technology-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }.faction-doctrine-controls { display:grid; gap:15px; align-content:start; }.faction-field-heading { min-height:18px; display:flex; align-items:center; }
.ship-identity-grid { grid-template-columns:minmax(240px,.72fr) minmax(360px,1.28fr); align-items:stretch; }.ship-identity-fields { min-width:0; display:grid; gap:15px; align-content:start; }.ship-identity-fields>.field.wide,.ship-identity-grid>.field.wide { grid-column:auto; }.ship-identity-notes { min-width:0; align-content:stretch; grid-template-rows:auto 1fr; }.ship-identity-notes textarea.identity-notes { height:100%; min-height:174px; }
.field select[data-identity-faction] { height:42px; min-height:42px; }
.hull-size-guide { grid-row:span 3; align-self:stretch; min-width:0; border:1px solid var(--line); background:var(--panel-2); padding:13px 15px; }.hull-size-guide header { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }.hull-size-guide h3 { margin:0; color:var(--cyan-soft); font-size:12px; text-transform:uppercase; letter-spacing:.1em; }.hull-size-guide header small { flex:none; color:var(--amber); font-size:9px; }.hull-size-guide table { width:100%; border-collapse:collapse; font-size:10px; }.hull-size-guide th { padding:4px 0; border-bottom:1px solid var(--line); color:var(--muted); font-size:8px; text-align:left; text-transform:uppercase; letter-spacing:.1em; }.hull-size-guide th:last-child,.hull-size-guide td:last-child { text-align:right; }.hull-size-guide td { padding:3px 0; border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent); }.hull-size-guide td:last-child { color:var(--cyan-soft); font-weight:700; }.hull-size-guide p { margin:8px 0 0; color:var(--muted); font-size:9px; line-height:1.35; }
[data-hull-technology-grid]>.field { align-content:start; }
.field-heading { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:12px; }.fractional-hull-toggle { display:flex; align-items:center; justify-content:flex-end; gap:6px; color:var(--muted); font-size:10px; letter-spacing:0; text-transform:none; white-space:nowrap; }.fractional-hull-toggle input { width:auto; min-height:0; flex:none; margin:0; padding:0; border:0; background:transparent; accent-color:var(--cyan); }
.field-label-row { min-width:0; display:flex; align-items:center; justify-content:flex-start; gap:6px; }.field-help { position:relative; flex:none; }.field-help>button { width:18px; height:18px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:14px; line-height:1; }.field-help>button:hover,.field-help>button:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }.field-help>[role="tooltip"] { width:280px; position:absolute; z-index:30; left:0; bottom:calc(100% + 7px); padding:9px 11px; border:1px solid var(--line); background:var(--panel-2); color:#d7e4e9; box-shadow:var(--shadow); font-size:10px; font-weight:500; line-height:1.45; letter-spacing:0; text-align:left; text-transform:none; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.field-help:hover>[role="tooltip"],.field-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }
.field-help>button svg { width:14px; height:14px; display:block; }
.defense-grid { padding:20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.defense-group { min-width:0; margin:0; padding:14px; border:1px solid var(--line); }.defense-group legend { padding:0 7px; color:var(--amber); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.defense-group-cost { display:flex; justify-content:space-between; gap:12px; margin:0 0 10px; color:var(--muted); font-size:10px; }.defense-group-cost output { color:var(--amber); font-weight:700; }.defense-group>div { display:grid; gap:12px; }
.weapon-bank-list { padding:14px; display:grid; gap:8px; }.weapon-battery-count { color:var(--amber); font-size:10px; letter-spacing:.09em; text-transform:uppercase; white-space:nowrap; }.weapon-bank-row { display:grid; grid-template-columns:minmax(180px,2fr) 78px 68px 58px 90px 95px 62px 72px 72px 38px; gap:8px; align-items:end; background:#08131c; border:1px solid #1e3442; padding:10px; }.weapon-bank-row.uses-custom-weapon { grid-template-columns:minmax(240px,2fr) 58px 90px 95px 62px 72px 72px 38px; }.weapon-bank-row label,.range-band-grid label,.weapon-bank-cost span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }.weapon-bank-cost { min-width:0; min-height:42px; display:grid; align-content:center; gap:3px; }.weapon-bank-cost output,.component-cost { color:var(--amber); font-size:10px; font-weight:700; letter-spacing:0; text-transform:none; white-space:nowrap; }.bank-arc-button { min-height:42px; padding-inline:8px; }.icon-button { height:42px; border:1px solid #56333a; background:transparent; color:var(--danger); font-size:20px; }.system-picker { padding:15px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.system-picker section { border:1px solid #1e3442; }.system-picker section[hidden],.system-choice[hidden] { display:none; }.system-picker h3 { margin:0; padding:11px 13px; background:#0d1b26; color:var(--amber); text-transform:uppercase; letter-spacing:.12em; font-size:11px; }.system-picker section>div { padding:8px; display:grid; gap:6px; }.system-choice { display:grid; grid-template-columns:20px minmax(0,1fr) 50px; align-items:center; gap:9px; padding:10px; background:#08131c; }.system-choice>input[type="checkbox"] { width:16px; height:16px; accent-color:var(--cyan); }.system-choice input[type="number"] { width:48px; min-height:38px; background:#071019; border:1px solid var(--line); color:#fff; padding:6px; font-size:14px; }.system-choice-copy { min-width:0; display:grid; gap:3px; }.system-choice-title { min-width:0; display:flex; align-items:center; gap:6px; }.system-choice-title>label { min-width:0; color:inherit; font-size:13px; font-weight:800; line-height:1.25; cursor:pointer; }.system-cost { color:var(--amber); font-size:10px; font-weight:700; line-height:1.2; }.system-help { position:relative; flex:none; width:18px; height:18px; display:grid; place-items:center; color:var(--muted); border-radius:50%; cursor:help; }.system-help:hover,.system-help:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }.system-help>svg { width:14px; height:14px; display:block; }.system-help>[role="tooltip"] { width:240px; position:absolute; z-index:30; left:0; bottom:calc(100% + 7px); padding:9px 11px; border:1px solid var(--line); background:var(--panel-2); color:#d7e4e9; box-shadow:var(--shadow); font-size:11px; font-weight:500; line-height:1.45; text-align:left; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.system-help:hover>[role="tooltip"],.system-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.system-picker>section:nth-child(3) .system-help>[role="tooltip"] { right:0; left:auto; }
.calculation-panel { border:1px solid var(--line); background:#0d1a25; min-width:0; }.calculation-sticky { position:sticky; top:20px; padding:24px; }.calculation-sticky h2 { font-size:23px; margin:0 0 20px; }.meter { height:8px; background:#071019; border:1px solid var(--line); margin-bottom:18px; }.meter>div { height:100%; background:linear-gradient(90deg,var(--cyan),var(--amber)); transition:.3s; }.meter>div.over { background:var(--danger); }.calculation-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin:0; border:1px solid var(--line); }.calculation-grid>div { min-width:0; padding:11px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; }.calculation-grid dt { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:8px; }.calculation-grid dd { margin:3px 0 0; font-size:21px; font-weight:800; color:var(--cyan-soft); overflow-wrap:anywhere; }.metric-help { cursor:help; }.metric-help:focus-visible { color:var(--cyan); outline:1px dotted currentColor; outline-offset:2px; }.metric-help>[role="tooltip"] { width:280px; position:absolute; z-index:30; left:8px; bottom:calc(100% - 22px); padding:10px 12px; border:1px solid var(--line); background:#132634; color:#d7e4e9; box-shadow:var(--shadow); font-size:10px; font-weight:500; line-height:1.45; letter-spacing:0; text-align:left; text-transform:none; opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.calculation-grid>[data-metric-row="drat"] .metric-help>[role="tooltip"] { left:auto; right:8px; }.metric-help:hover>[role="tooltip"],.metric-help:focus>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.validation-list { display:grid; gap:7px; margin-top:16px; }.validation-list p { margin:0; padding:10px; border-left:3px solid; background:#08131c; font-size:10px; line-height:1.4; }.validation-list .error { color:#ffaaaa; border-color:var(--danger); }.validation-list .warning { color:#f5cb83; border-color:var(--amber); }.validation-list .valid { color:var(--success); border-color:var(--success); }.art-upload { margin-top:22px; border-top:1px solid var(--line); padding-top:18px; }.art-upload h3 { font-size:12px; }.art-upload form { display:grid; gap:10px; }.art-upload input[type=file] { font-size:9px; color:var(--muted); }.art-upload-preview { margin:0 0 12px; border:1px solid var(--line); background:#07131d; }.art-upload-preview img { width:100%; max-height:240px; display:block; object-fit:contain; background:#f5f6f2; }.art-upload-preview figcaption { padding:7px 9px; border-top:1px solid var(--line); color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.art-upload [data-file-upload-submit]:disabled { opacity:.35; cursor:not-allowed; }
.weapon-sound-upload>p { margin:0 0 10px; color:var(--muted); font-size:9px; line-height:1.45; }.weapon-sound-upload audio { display:block; width:100%; height:34px; margin:0 0 11px; }.weapon-sound-upload>form+form { margin-top:8px; }.weapon-sound-actions { display:flex; gap:8px; }
.fighter-rules-source { grid-template-columns:minmax(220px,1fr) auto; }.fighter-rules-source>p { margin:0; color:var(--amber); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.fighter-identity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }.fighter-identity-grid>.field { align-content:start; }.fighter-performance-grid { padding:20px; display:grid; grid-template-columns:minmax(180px,.75fr) minmax(180px,.75fr) minmax(260px,1.5fr); gap:15px; align-items:stretch; }.fighter-size-rule { border:1px solid var(--line); padding:15px 17px; background:var(--panel-2); }.fighter-size-rule .eyebrow { margin-bottom:6px; font-size:8px; }.fighter-size-rule strong { color:var(--cyan-soft); font-size:13px; }.fighter-size-rule>p:last-child { margin:7px 0 0; color:var(--muted); font-size:10px; line-height:1.5; }.fighter-trait-picker { padding:15px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.fighter-trait-choice { min-width:0; min-height:84px; padding:12px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:10px; border:1px solid var(--line); background:#08131c; cursor:pointer; transition:border-color .15s ease,background .15s ease,box-shadow .15s ease; }.fighter-trait-choice:hover { border-color:color-mix(in srgb,var(--cyan) 60%,var(--line)); }.fighter-trait-choice:has(input:checked) { border-color:var(--cyan); background:color-mix(in srgb,var(--cyan) 8%,#08131c); box-shadow:inset 3px 0 var(--cyan); }.fighter-trait-choice>input { width:16px; height:16px; margin:2px 0 0; accent-color:var(--cyan); }.fighter-trait-choice>span { min-width:0; display:grid; gap:4px; }.fighter-trait-choice strong { color:#e9f1f4; font-size:12px; }.fighter-trait-choice small { color:var(--muted); font-size:9px; line-height:1.4; }.fighter-trait-choice>em { color:var(--amber); font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }.fighter-profile-card { max-width:980px; margin:0 auto; border:2px solid #111; background:#f5f6f2; color:#111; box-shadow:var(--shadow); }.fighter-profile-card>header { min-height:78px; padding:15px 22px; display:flex; align-items:center; justify-content:space-between; gap:20px; background:#071019; color:#fff; }.fighter-profile-card>header h2 { margin:0; font-size:28px; }.fighter-profile-card>header .eyebrow { margin-bottom:4px; }.fighter-profile-card>header>strong { color:#fff; font-size:22px; text-transform:uppercase; white-space:nowrap; }.fighter-profile-body { display:grid; grid-template-columns:minmax(280px,1.25fr) minmax(250px,.75fr); }.fighter-profile-body>figure { grid-row:span 2; min-width:0; margin:0; border-right:2px solid #111; }.fighter-profile-body figure>img,.fighter-profile-body figure>svg { width:100%; height:360px; display:block; object-fit:contain; padding:20px; background:#fff; }.fighter-profile-body figure>svg g { fill:#9fb4bd; stroke:#214b5a; stroke-width:3; }.fighter-profile-body figcaption { min-height:70px; padding:13px 16px; border-top:1px solid #9ba3a5; color:#465157; font-size:12px; line-height:1.5; }.fighter-profile-body>dl { margin:0; display:grid; grid-template-columns:1fr 1fr; }.fighter-profile-body>dl>div { min-width:0; padding:17px; border-right:1px solid #9ba3a5; border-bottom:1px solid #9ba3a5; }.fighter-profile-body dt { color:#667277; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.fighter-profile-body dd { margin:4px 0 0; color:#0a5c6b; font-size:25px; font-weight:900; }.fighter-profile-body>section { padding:20px; }.fighter-profile-body>section .eyebrow { color:#0a6a7b; }.fighter-profile-body>section h3 { margin:0 0 8px; font-size:24px; }.fighter-profile-body>section p:last-child { margin:0; color:#465157; font-size:12px; line-height:1.55; }.fighter-profile-card>footer { min-height:40px; padding:9px 16px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:2px solid #111; color:#536066; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.fighter-profile-print { padding:20px; }
.editor-page[data-design-kind="fighter"] .calculation-panel .meter { display:none; }
.firing-arc-reference { margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }.firing-arc-reference>header { display:flex; align-items:baseline; justify-content:space-between; gap:10px; }.firing-arc-reference h3 { margin:0; font-size:12px; }.firing-arc-reference>header span { color:var(--muted); font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.firing-arc-diagrams { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }.firing-arc-diagrams figure { min-width:0; margin:0; }.firing-arc-diagrams svg { width:100%; height:auto; display:block; filter:drop-shadow(0 5px 7px rgba(0,0,0,.16)); }.arc-sector { stroke:var(--line); stroke-width:1.2; }.arc-sector.shade-a { fill:color-mix(in srgb,var(--cyan) 22%,var(--panel-2)); }.arc-sector.shade-b { fill:color-mix(in srgb,var(--amber) 18%,var(--panel-2)); }.arc-letters { fill:var(--cyan-soft); font-size:11px; font-weight:900; text-anchor:middle; dominant-baseline:middle; }.arc-ship { fill:var(--ink); stroke:var(--cyan-soft); stroke-width:1.5; }.firing-arc-diagrams figcaption { margin-top:4px; color:var(--muted); font-size:8px; text-align:center; text-transform:uppercase; letter-spacing:.08em; }.spinal-arc-legend { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }.spinal-arc-legend span { display:flex; align-items:center; gap:7px; padding:7px; border:1px solid var(--line); color:var(--muted); font-size:9px; }.spinal-arc-legend b { width:22px; height:22px; display:grid; place-items:center; flex:none; background:var(--cyan); color:var(--ink); clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%); }.firing-arc-reference>p { margin:10px 0 0; color:var(--muted); font-size:9px; line-height:1.45; }.firing-arc-reference>p strong { color:var(--cyan-soft); }
.range-band-grid { padding:16px; display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }.range-band-grid article { border:1px solid var(--line); padding:12px; background:#07131d; }.range-band-grid h3 { margin:0 0 10px; color:var(--cyan); font-size:12px; }.range-band-grid label { display:grid; gap:3px; margin-top:7px; }.range-band-grid .range-band-blank { min-height:20px; grid-template-columns:auto 1fr; align-items:center; }.range-band-grid .range-band-blank input { width:auto; min-height:0; }.range-band-blank-placeholder { display:block; min-height:20px; margin-top:7px; }.range-band-grid input { min-height:35px; }.range-band-remove { width:100%; margin-top:10px; padding:7px; border:1px solid #56333a; background:transparent; color:var(--danger); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }.range-band-remove:disabled { opacity:.35; cursor:not-allowed; }.trait-picker { padding:15px; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.trait-choice { min-width:0; display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:7px; padding:10px; background:#08131c; border:1px solid #1e3442; }.trait-choice>input { width:16px; height:16px; accent-color:var(--cyan); }.trait-choice-copy { min-width:0; display:grid; gap:2px; }.trait-choice-title { min-width:0; display:flex; align-items:center; gap:6px; }.trait-choice-title>label { min-width:0; font-size:11px; font-weight:800; cursor:pointer; }.trait-choice-copy>small { color:var(--muted); font-size:8px; }.trait-help { position:relative; flex:none; width:18px; height:18px; display:grid; place-items:center; color:var(--muted); border-radius:50%; cursor:help; }.trait-help:hover,.trait-help:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }.trait-help>svg { width:14px; height:14px; display:block; }.trait-help>[role="tooltip"] { width:285px; position:absolute; z-index:30; left:0; bottom:calc(100% + 7px); padding:10px 12px; border:1px solid var(--line); background:var(--panel-2); color:#d7e4e9; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.trait-help:hover>[role="tooltip"],.trait-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.trait-help>[role="tooltip"]>strong,.trait-help>[role="tooltip"]>span,.trait-help>[role="tooltip"]>small { display:block; }.trait-help>[role="tooltip"]>strong { color:var(--cyan); font-size:9px; letter-spacing:.09em; text-transform:uppercase; }.trait-help>[role="tooltip"]>span { margin-top:5px; font-size:11px; font-weight:500; line-height:1.45; }.trait-help>[role="tooltip"]>small { margin-top:7px; padding-top:6px; border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent); color:var(--muted); font-size:8px; line-height:1.4; }.trait-choice:nth-child(3n) .trait-help>[role="tooltip"] { right:0; left:auto; }
.inspection-page { max-width:1240px; }.inspection-header { border-bottom:1px solid var(--line); padding:20px 0 28px; }.inspection-header p:not(.eyebrow) { color:var(--muted); }.spec-inspector { border:1px solid var(--line); background:#07131d; padding:25px; overflow:auto; color:#bceef4; }.revision-history { margin-top:30px; }.revision-history>a { display:grid; grid-template-columns:1fr 1fr auto; padding:14px; border:1px solid var(--line); margin-top:-1px; }.revision-history span { color:var(--muted); }.revision-history code { color:var(--cyan); }
.ssd-card { background:var(--paper); color:#0b1013; border:3px solid #101619; width:100%; max-width:1100px; margin:0 auto; font-family:"Arial Narrow",Arial,sans-serif; }.ssd-header { height:44px; padding:0 12px; display:flex; align-items:center; justify-content:space-between; color:white; background:#0b1013; }.ssd-header h2 { margin:0; font-size:22px; letter-spacing:.02em; }.ssd-header h2 span { font-size:12px; font-weight:400; margin-left:12px; color:#c6d0d4; }.ssd-header>strong { font-size:18px; }.ssd-top { display:grid; grid-template-columns:1.1fr 1fr; min-height:290px; border-bottom:2px solid #111; }.ssd-defense-map { position:relative; border-right:2px solid #111; display:grid; place-items:center; background:linear-gradient(45deg,transparent 49.5%,#ccd3d2 50%,transparent 50.5%),linear-gradient(-45deg,transparent 49.5%,#ccd3d2 50%,transparent 50.5%); }.ssd-defense-map img,.ssd-defense-map svg { width:45%; height:78%; object-fit:contain; }.ssd-defense-map svg path:first-child { fill:#111a21; stroke:#111; stroke-width:2px; }.ssd-defense-map svg path:last-child { fill:none; stroke:#76909c; stroke-width:3px; }.screen-track { position:absolute; z-index:2; display:flex; align-items:center; gap:3px; }.screen-track.forward { top:10px; left:50%; transform:translateX(-50%); }.screen-track.aft { bottom:10px; left:50%; transform:translateX(-50%); }.screen-track.port { top:50%; left:10px; flex-direction:column; transform:translateY(-50%); }.screen-track.starboard { top:50%; right:10px; flex-direction:column; transform:translateY(-50%); }.screen-box { min-width:28px; height:25px; display:grid; place-items:center; border:2px solid #111; border-radius:6px; background:white; color:#111; font-size:13px; font-weight:900; line-height:1; }.omni-screen-arrow { width:0; height:0; border-top:6px solid transparent; border-bottom:6px solid transparent; }.omni-screen-arrow.left { border-right:9px solid #111; }.omni-screen-arrow.right { border-left:9px solid #111; }.ssd-damage { background:#d8dbd9; }.ssd-damage>label { height:42px; display:grid; grid-template-columns:45px 1fr; align-items:center; padding:6px; color:#899294; font-weight:900; }.ssd-damage>label input { height:28px; border:0; background:white; }.ssd-damage section h3 { margin:0; padding:4px 7px; background:#bcc2c1; text-transform:uppercase; font-size:12px; }.ssd-damage section>div { padding:5px 7px; display:flex; flex-wrap:wrap; gap:2px; min-height:34px; }.ssd-damage section span { width:25px; height:24px; background:white; display:grid; place-items:center; font-weight:800; }.ssd-damage section span.mandatory-loss { text-decoration:underline 2px; text-underline-offset:2px; }.ssd-notes { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:2px solid #111; }.ssd-notes span { height:34px; border-right:1px solid #aab1b0; border-bottom:1px solid #aab1b0; padding:4px; }.ssd-weapons>section { border-bottom:1px solid #111; }.ssd-weapons header { min-height:28px; background:#c4cac8; display:flex; justify-content:space-between; padding:5px 8px; }.ssd-weapon-body { display:grid; grid-template-columns:100px 1fr 1fr; min-height:70px; }.arc-badge { display:grid; place-items:center; border-right:1px solid #aaa; }.arc-badge svg { width:76px; height:68px; display:block; }.arc-badge-sector,.arc-badge-outline { fill:#f7f7f4; stroke:#17242c; stroke-width:2.4; stroke-linejoin:round; }.arc-badge-sector.selected { fill:#17242c; }.arc-badge-letter,.arc-badge-code { fill:#fff; font-size:14px; font-weight:900; text-anchor:middle; dominant-baseline:middle; paint-order:stroke; stroke:#17242c; stroke-width:3px; stroke-linejoin:round; }.arc-badge-code { fill:#17242c; font-size:24px; stroke:#f7f7f4; stroke-width:5px; }.arc-badge-ship { fill:#fff; stroke:#17242c; stroke-width:2.4; stroke-linejoin:round; }.arc-badge-axis { fill:none; stroke:#8b9699; stroke-width:3px; stroke-linecap:round; stroke-linejoin:round; }.ssd-weapon-body table { border-collapse:collapse; font-size:12px; }.ssd-weapon-body td { padding:3px 8px; }.ssd-weapon-body em { padding:8px; font-size:11px; }.ssd-systems { display:flex; flex-wrap:wrap; gap:8px; min-height:38px; padding:8px; }.ssd-systems span { border:1px solid #9da5a3; border-radius:5px; padding:4px 7px; font-size:11px; }.ssd-systems b { color:#7a1b12; font-size:10px; }.ssd-card footer { display:flex; justify-content:space-between; padding:5px 8px; border-top:1px solid #111; font-size:9px; }
.ssd-fighters { min-height:46px; display:grid; grid-template-columns:125px minmax(0,1fr); border-top:2px solid #111; }
.ssd-fighters>strong { padding:8px; display:flex; align-items:center; border-right:1px solid #929b99; background:#c4cac8; font-size:13px; text-transform:uppercase; }
.ssd-fighter-list { min-width:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(135px,1fr)); }
.ssd-fighter-flight { min-width:0; padding:6px 8px; display:grid; align-content:center; gap:2px; border-right:1px solid #aab1b0; border-bottom:1px solid #aab1b0; background:#f5f6f4; }
.ssd-fighter-flight b { color:#454f52; font-size:9px; letter-spacing:.07em; text-transform:uppercase; }
.ssd-fighter-flight em { color:#111; font-size:10px; font-style:normal; line-height:1.25; overflow-wrap:anywhere; }
.ssd-fighter-flight em.lost { color:#8b1e19; text-decoration:line-through; }
.print-body { background:white; color:black; }.print-toolbar { padding:12px; display:flex; justify-content:center; gap:12px; background:#111; }.print-toolbar button,.print-toolbar a { border:1px solid #777; background:#222; color:white; padding:8px 15px; }.ssd-print-sheet { width:11in; height:8.5in; padding:.25in; display:grid; grid-template-columns:1fr 1fr; gap:.2in; background:white; }.ssd-print-sheet .ssd-card { font-size:75%; overflow:hidden; }.ssd-print-sheet .ssd-header { height:30px; }.ssd-print-sheet .ssd-header h2 { font-size:14px; }.ssd-print-sheet .ssd-top { min-height:190px; }.ssd-print-sheet .ssd-defense-map img,.ssd-print-sheet .ssd-defense-map svg { height:70%; }.ssd-print-sheet .ssd-damage section>div { min-height:24px; padding:2px 5px; }.ssd-print-sheet .ssd-damage section span { width:18px; height:18px; font-size:9px; }.ssd-print-sheet .ssd-notes span { height:22px; }.ssd-print-sheet .ssd-weapon-body { min-height:44px; grid-template-columns:60px 1fr 1fr; }.ssd-print-sheet .arc-badge svg { width:52px; height:46px; }.ssd-print-sheet .ssd-systems { min-height:25px; padding:4px; }.ssd-print-sheet .ssd-systems span { padding:2px 4px; font-size:8px; }
@media print { @page { size:letter landscape; margin:0; }.print-toolbar { display:none; }.ssd-print-sheet { page-break-after:avoid; }.ssd-card,.fighter-profile-card { break-inside:avoid; }.fighter-profile-card { box-shadow:none; }.fighter-profile-print { padding:.3in; } }
.battle-index { width:min(1320px,calc(100% - 48px)); margin:0 auto; padding:28px 0 80px; }.battle-hero { min-height:138px; border:1px solid var(--line); background:linear-gradient(115deg,#11283a,#08131c 70%); display:flex; align-items:center; justify-content:space-between; padding:24px 38px; overflow:hidden; }.battle-hero h1 { font-size:38px; margin:0; }.battle-hero .eyebrow { margin-bottom:8px; }.battle-hero>div:first-child>p:last-child { max-width:700px; margin:12px 0 0; color:var(--muted); line-height:1.5; }.battle-emblem { color:transparent; -webkit-text-stroke:1px var(--cyan); font-size:92px; line-height:1; font-weight:900; opacity:.3; transform:rotate(8deg); }.battle-index-grid { display:grid; grid-template-columns:minmax(0,2fr) 380px; gap:22px; margin-top:22px; }.battle-setup,.saved-battles { border:1px solid var(--line); background:var(--panel); padding:28px; }.battle-setup h2,.saved-battles h2 { margin:0; }.battle-setup h2 { margin-bottom:22px; }.battle-setup form { display:grid; gap:18px; }.fleet-selector { border:1px solid var(--line); padding:12px; display:grid; gap:6px; }.fleet-selector legend { padding:0 9px; text-transform:uppercase; letter-spacing:.13em; font-size:10px; font-weight:800; }.fleet-selector.red legend { color:#ff847b; }.fleet-selector.blue legend { color:#77b7ff; }.fleet-selector label { padding:10px; background:#08131c; display:grid; grid-template-columns:20px 1fr; gap:9px; }.fleet-selector input { accent-color:var(--cyan); }.fleet-selector strong,.fleet-selector small { display:block; }.fleet-selector strong { font-size:12px; }.fleet-selector small { color:var(--muted); font-size:9px; margin-top:3px; }.saved-battles-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:22px; }.saved-battles-heading>span { padding-bottom:3px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }.saved-battle-list { display:grid; }.saved-engagement { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:5px 12px; border-top:1px solid var(--line); padding:13px 5px; }.saved-engagement strong { min-width:0; line-height:1.25; overflow-wrap:anywhere; }.saved-engagement:hover strong { color:var(--cyan); }.saved-engagement span,.saved-engagement small { color:var(--muted); font-size:10px; }.saved-engagement span { grid-column:1/-1; line-height:1.45; }.saved-engagement small { grid-column:2; grid-row:1; margin:1px 0 0; white-space:nowrap; }.saved-battle-empty { margin:0; padding:16px 5px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; }.completed-battles { border-top:1px solid var(--line); }.completed-battles>summary { min-height:48px; display:flex; align-items:center; gap:9px; padding:0 5px; color:var(--muted); cursor:pointer; list-style:none; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }.completed-battles>summary::-webkit-details-marker { display:none; }.completed-battles>summary b { min-width:22px; height:22px; margin-left:auto; display:grid; place-items:center; border:1px solid var(--line); color:var(--cyan); font-size:10px; }.completed-battles>summary::after { content:"+"; color:var(--cyan); font-size:18px; line-height:1; }.completed-battles[open]>summary::after { content:"−"; }.completed-battles[open]>summary { color:var(--cyan-soft); }.game-import { border-top:1px solid var(--line); margin-top:20px; padding-top:20px; }.game-import h3 { font-size:12px; }.game-import form { display:grid; gap:10px; }
.saved-engagement .saved-engagement-result { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin-top:2px; }.saved-engagement-result b,.saved-engagement-result em { padding:3px 7px; border:1px solid var(--line); font-size:9px; font-style:normal; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }.saved-engagement-result b:first-child { border-color:#c74f4b; }.saved-engagement-result b:nth-child(2) { border-color:#4389c3; }.saved-engagement-result em { color:var(--cyan); }
.battle-slice-note { display:grid; gap:4px; padding:12px 14px; border-left:3px solid var(--amber); background:var(--panel-2); }.battle-slice-note strong { font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.battle-slice-note span { color:var(--muted); font-size:9px; line-height:1.5; }.fleet-selector h3 { margin:10px 4px 2px; color:var(--cyan-soft); font-size:9px; text-transform:uppercase; letter-spacing:.12em; }.fleet-ssd-link { display:inline-block; margin-top:5px; color:var(--amber); font-size:9px; font-weight:700; }.fleet-ssd-link:hover { color:var(--cyan); }
.opponent-selector { border:1px solid var(--line); padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:8px; }.opponent-selector legend { padding:0 8px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.12em; }.opponent-selector label { display:grid; grid-template-columns:20px 1fr; gap:8px; align-items:start; padding:11px; background:var(--panel-2); cursor:pointer; }.opponent-selector input { margin-top:2px; accent-color:var(--cyan); }.opponent-selector strong,.opponent-selector small { display:block; }.opponent-selector strong { font-size:11px; }.opponent-selector small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.4; }.player-side-selector { grid-column:1/-1; margin-top:4px; padding:12px; border:1px solid var(--line); display:grid; grid-template-columns:minmax(150px,1fr) 1fr 1fr; align-items:stretch; gap:8px; }.player-side-selector>div { align-self:center; padding:4px 7px; }.player-side-selector>label.red { border-left:3px solid #d95750; }.player-side-selector>label.blue { border-left:3px solid #3988c9; }.player-side-selector[hidden] { display:none; }
@media (max-width:620px) { .opponent-selector { grid-template-columns:1fr; }.player-side-selector { grid-column:1; grid-template-columns:1fr; } }
.battle-builder { border:1px solid var(--line); background:var(--panel-2); padding:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px 16px; }.battle-builder strong,.battle-builder small { display:block; }.battle-builder strong { font-size:12px; text-transform:uppercase; letter-spacing:.08em; }.battle-builder small { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.45; }.battle-builder p { grid-column:1/-1; min-height:14px; margin:0; color:var(--muted); font-size:9px; }.battle-builder p:empty { display:none; }.battle-builder p[data-state="success"] { color:var(--success); }.battle-builder p[data-state="error"] { color:#ff847b; }
.combined-movement { border:1px solid var(--line); padding:14px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }.combined-movement[hidden] { display:none; }.combined-movement legend { padding:0 8px; color:var(--amber); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }.combined-movement>small { grid-column:1/-1; color:var(--muted); font-size:9px; line-height:1.5; }
.battle-options { border:1px solid var(--line); background:var(--panel-2); }.battle-options summary { min-height:58px; padding:11px 14px; display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; list-style:none; }.battle-options summary::-webkit-details-marker { display:none; }.battle-options summary::after { content:"+"; width:28px; height:28px; border:1px solid var(--line); display:grid; place-items:center; color:var(--cyan); font-size:18px; order:3; }.battle-options[open] summary::after { content:"−"; }.battle-options summary span { flex:1; }.battle-options summary strong,.battle-options summary small { display:block; }.battle-options summary strong { font-size:11px; text-transform:uppercase; letter-spacing:.1em; }.battle-options summary small { margin-top:3px; color:var(--muted); font-size:9px; }.battle-options summary>b { color:var(--amber); font-size:9px; text-transform:uppercase; letter-spacing:.08em; }.battle-options-list { padding:12px; border-top:1px solid var(--line); display:grid; gap:8px; }.battle-options-list label { padding:13px; display:grid; grid-template-columns:22px 1fr; gap:10px; background:var(--panel); cursor:pointer; }.battle-options-list input { margin-top:2px; accent-color:var(--cyan); }.battle-options-list strong,.battle-options-list small { display:block; }.battle-options-list strong { font-size:11px; }.battle-options-list small { margin-top:4px; color:var(--muted); font-size:9px; line-height:1.5; }
.battle-options-list label:has(input:disabled) { opacity:.45; cursor:not-allowed; }
.game-page { width:min(1800px,calc(100% - 28px)); margin:0 auto; padding:18px 0 45px; }.game-header { min-height:72px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; border-bottom:1px solid var(--line); margin-bottom:16px; }.game-title-row { display:flex; align-items:center; gap:7px; }.game-header h1 { margin:0; font-size:25px; }.engagement-help { position:relative; flex:none; }.engagement-help>button { width:22px; height:22px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); }.engagement-help>button svg { width:16px; height:16px; display:block; }.engagement-help>button:hover,.engagement-help>button:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }.engagement-help>[role="tooltip"] { width:min(340px,calc(100vw - 48px)); position:absolute; z-index:40; left:0; top:calc(100% + 8px); padding:13px 15px; border:1px solid var(--line); background:var(--panel-2); color:inherit; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.engagement-help:hover>[role="tooltip"],.engagement-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.engagement-help>[role="tooltip"]>strong { display:block; margin-bottom:9px; color:var(--cyan); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }.engagement-help dl { margin:0; display:grid; gap:5px; }.engagement-help dl>div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; }.engagement-help dt { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.engagement-help dd { margin:0; font-size:10px; line-height:1.35; }.game-header .editor-actions { justify-content:end; }.turn-readout { min-width:175px; display:grid; grid-template-columns:auto 55px; border:1px solid var(--line); }.turn-readout span,.turn-readout strong { padding:7px 10px; }.turn-readout>span:first-child { color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:9px; }.turn-readout strong { grid-row:span 2; font-size:32px; color:var(--cyan); border-left:1px solid var(--line); display:grid; place-items:center; }.turn-readout span:last-child { color:var(--amber); font-size:10px; text-transform:uppercase; }.game-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:14px; }.tactical-board-panel,.command-panel,.combat-log { border:1px solid var(--line); background:#08131c; }.board-toolbar { height:38px; display:flex; justify-content:space-between; align-items:center; padding:0 14px; color:var(--muted); text-transform:uppercase; letter-spacing:.12em; font-size:9px; border-bottom:1px solid var(--line); }.board-toolbar span:last-child { color:var(--cyan); }.tactical-board-panel { --map-background:#030a10; --map-glow:rgba(35,81,105,.34); --map-hex-fill:rgba(12,32,44,.38); --map-hex-stroke:#315b70; --map-coordinate:#7394a3; }.tactical-board-panel[data-map-theme-target="gunmetal"] { --map-background:#252f34; --map-glow:rgba(171,196,205,.14); --map-hex-fill:rgba(235,244,247,.025); --map-hex-stroke:#788d97; --map-coordinate:#bac7cc; }.tactical-board-panel[data-map-theme-target="light-chart"] { --map-background:#e3e9eb; --map-glow:rgba(31,108,133,.12); --map-hex-fill:rgba(255,255,255,.32); --map-hex-stroke:#688692; --map-coordinate:#496772; }.tactical-board-panel[data-map-coordinates="hidden"] .hex-coordinate { display:none; }.board-scroller { height:690px; overflow:hidden; background:radial-gradient(circle at 40% 40%,var(--map-glow),transparent 36%),var(--map-background); }.tactical-board { width:100%; height:100%; display:block; }.board-hex { fill:var(--map-hex-fill); stroke:var(--map-hex-stroke); stroke-width:.9; }.hex-coordinate { fill:var(--map-coordinate); font-size:5px; font-weight:700; text-anchor:middle; opacity:1; pointer-events:none; }.board-ship path { stroke:#fff; stroke-width:1; }.board-ship.red path { fill:#c14e4a; }.board-ship.blue path { fill:#397cb5; }.board-unit-selection { fill:rgba(255,255,255,.035); stroke-width:2.8; vector-effect:non-scaling-stroke; }.board-ship.red .board-unit-selection,.board-fighter.red .board-unit-selection { stroke:#ff746d; filter:drop-shadow(0 0 5px #ff746d); }.board-ship.blue .board-unit-selection,.board-fighter.blue .board-unit-selection { stroke:#6cbcff; filter:drop-shadow(0 0 5px #6cbcff); }.board-target-reticle { fill:none; stroke:#f2b44f !important; stroke-width:2.6 !important; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 5px #f2b44f); }.board-ship text { fill:#eaf4f6; font-size:6px; text-anchor:middle; paint-order:stroke; stroke:#03070a; stroke-width:2px; }.command-panel { padding:24px; min-height:728px; }.command-panel h2 { margin:0 0 12px; font-size:25px; }.command-panel>p:not(.eyebrow) { color:var(--muted); font-size:11px; line-height:1.55; }.command-ships { display:grid; gap:8px; margin:20px 0; }.command-ships article { border:1px solid var(--line); background:#0c1a25; padding:11px; }.command-ships article.completed { opacity:.45; }.command-ships article.order-saved { border-color:var(--success); box-shadow:inset 3px 0 0 var(--success); }.command-ships article.selected { border-color:var(--cyan); box-shadow:inset 3px 0 0 var(--cyan),0 0 16px rgba(101,220,234,.12); }.command-ships header,.command-ships article>div { display:flex; justify-content:space-between; align-items:center; gap:8px; }.command-ships header span { color:var(--amber); font-size:10px; }.command-ships article>div { margin-top:9px; }.command-ships input,.command-field select { background:#06111a; color:#fff; border:1px solid var(--line); min-height:35px; padding:6px 9px; min-width:0; }.command-ships input { width:135px; letter-spacing:.12em; }.command-ships small { color:var(--muted); font-size:9px; }.command-primary { width:100%; margin-top:8px; }.command-primary:disabled,.command-ships button:disabled { opacity:.3; cursor:not-allowed; }.command-ships button.order-save-button.saved:disabled { opacity:1; border-color:var(--success); background:color-mix(in srgb,var(--success) 13%,transparent); color:var(--success); }.command-field { display:grid; gap:6px; color:var(--muted); text-transform:uppercase; letter-spacing:.1em; font-size:9px; margin-top:13px; }.command-buttons { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; }.command-buttons>.button.alpha-strike { background:#9f2f3c; border-color:#df6670; color:#fff; box-shadow:0 0 24px rgba(159,47,60,.24); }.command-buttons>.button.alpha-strike:hover { background:#bd3c49; border-color:#ff9098; color:#fff; }.command-buttons>.button.alpha-strike:disabled { opacity:.3; box-shadow:none; filter:saturate(.35); cursor:not-allowed; transform:none; }.dice-readout { margin-top:18px; padding:11px; display:flex; align-items:center; flex-wrap:wrap; gap:6px; border:1px solid var(--line); }.dice-readout span { color:var(--muted); font-size:9px; text-transform:uppercase; margin-right:5px; }.dice-readout b { width:28px; height:28px; display:grid; place-items:center; background:var(--paper); color:#111; border-radius:4px; }.victory-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.victory-grid>div { border:1px solid var(--line); padding:14px; }.victory-grid span,.victory-grid strong { display:block; }.victory-grid span { color:var(--muted); font-size:9px; }.victory-grid strong { font-size:30px; }.undo-button { width:100%; margin-top:22px; }.combat-log { margin-top:14px; }.combat-log header { height:42px; border-bottom:1px solid var(--line); padding:0 14px; display:flex; align-items:center; justify-content:space-between; }.combat-log h2 { font-size:12px; text-transform:uppercase; letter-spacing:.1em; }.combat-log header span { color:var(--muted); font-size:9px; }.combat-log ol { max-height:180px; overflow:auto; margin:0; padding:10px 10px 10px 40px; }.combat-log li { color:#a9bbc5; font-size:10px; padding:4px 7px; }.handoff-screen { position:fixed; inset:0; z-index:100; background:radial-gradient(circle at center,#152b3c,#03080d 70%); display:grid; place-items:center; }.handoff-screen[hidden] { display:none; }.handoff-screen>div { width:min(520px,calc(100% - 40px)); text-align:center; border:1px solid var(--cyan); background:#08131d; padding:50px; box-shadow:0 0 100px rgba(101,220,234,.15); }.handoff-screen h2 { font-size:40px; margin:0; }.handoff-screen p:not(.eyebrow) { color:var(--muted); line-height:1.6; margin-bottom:28px; }
.board-ship { cursor:pointer; }.board-ship.destroyed { opacity:.35; }.board-ship:focus,.board-ship:hover { filter:drop-shadow(0 0 4px var(--cyan)); }.live-ssd-trigger { appearance:none; border:0; padding:0; background:none; color:inherit; font:inherit; font-weight:inherit; text-align:left; text-decoration:underline; text-decoration-color:var(--cyan); text-underline-offset:3px; cursor:pointer; }.live-ssd-modal { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:28px; }.live-ssd-modal[hidden] { display:none; }.live-ssd-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(1,6,10,.88); cursor:default; }.live-ssd-dialog { position:relative; z-index:1; width:min(1500px,100%); max-height:calc(100vh - 56px); overflow:auto; border:1px solid var(--cyan); background:#07111a; padding:18px; box-shadow:0 0 90px rgba(101,220,234,.18); }.live-ssd-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; color:var(--ink); }.live-ssd-dialog>header h2 { margin:0; font-size:25px; }.live-ssd-dialog>header .eyebrow { margin-bottom:4px; }.live-ssd-status { padding:10px 14px; background:#102738; color:#d9edf1; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.live-ssd-alert { padding:8px 14px; background:var(--amber); color:#111; font-size:11px; font-weight:900; text-align:center; letter-spacing:.12em; }.live-ssd-alert[hidden] { display:none; }.live-ssd-ship.has-damage-resolution { display:grid; grid-template-columns:310px minmax(0,1fr); gap:14px; align-items:start; }.live-ssd-ship.has-damage-resolution>.live-ssd-status,.live-ssd-ship.has-damage-resolution>.live-ssd-alert { grid-column:1/-1; }.damage-resolution { position:sticky; top:0; border:1px solid var(--line); background:#0d1b26; color:#d9edf1; }.damage-resolution[hidden] { display:none; }.damage-resolution>header { padding:16px; border-bottom:1px solid var(--line); }.damage-resolution .eyebrow { margin:0 0 5px; }.damage-resolution h3 { margin:0; color:#fff; font-size:17px; }.damage-resolution header p:last-child { margin:8px 0 0; color:#a9bbc5; font-size:10px; line-height:1.45; }.damage-resolution ol { max-height:560px; overflow:auto; display:grid; gap:6px; margin:0; padding:10px; list-style:none; }.damage-resolution li { display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; gap:10px; padding:9px; border:1px solid #294253; background:#07131d; opacity:0; animation:damage-roll-arrive 360ms ease-out var(--resolution-delay) forwards; }.damage-resolution li>b { width:36px; height:36px; display:grid; place-items:center; border:2px solid var(--amber); border-radius:5px; background:#f7f4e9; color:#111; font-size:19px; box-shadow:0 0 12px rgba(226,162,54,.2); }.damage-resolution li strong,.damage-resolution li small { display:block; }.damage-resolution li strong { color:#fff; font-size:11px; }.damage-resolution li small { margin-top:3px; color:#a9bbc5; font-size:9px; line-height:1.35; }.damage-resolution li:hover,.damage-resolution li:focus,.damage-resolution li.resolution-focus { outline:1px solid var(--cyan); background:#102738; }.damage-resolution-nav { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; padding:10px; border-top:1px solid var(--line); }.damage-resolution-nav button { min-height:34px; border:1px solid var(--line); background:#07131d; color:#d9edf1; font-size:9px; font-weight:800; text-transform:uppercase; }.damage-resolution-nav button:disabled { opacity:.35; }.damage-resolution-nav span { color:var(--muted); font-size:9px; }.ssd-card.live .ssd-damage section span.lost { position:relative; background:#6e7778; color:#e9eeee; }.ssd-card.live .ssd-damage section span.lost::after { content:"×"; position:absolute; inset:0; display:grid; place-items:center; color:#8c1010; font-size:26px; font-weight:900; }.ssd-card.live .screen-box.lost { background:#777; color:#eee; text-decoration:line-through; }.ssd-card.live .ssd-weapons>section.fired header { background:#e2ba70; }.ssd-card.live .ssd-weapons>section.destroyed { opacity:.5; text-decoration:line-through; }.ssd-card.live [data-live-weapon-status] { color:#7a1b12; font-size:10px; }.ssd-card.live .ssd-systems span.lost { background:#777; color:#fff; text-decoration:line-through; }.ssd-card.live .resolution-loss { outline:3px solid #ef9f24; outline-offset:-2px; animation:damage-box-mark 900ms ease-out var(--resolution-delay,0ms) both; }.ssd-card.live .resolution-loss.resolution-focus { outline-color:#00d6ed; box-shadow:0 0 16px #00b9cf; opacity:1; }
.board-starbase { filter:drop-shadow(0 0 3px rgba(110,216,234,.5)); }.board-starbase .starbase-ring { fill:var(--map-background); stroke:#fff; stroke-width:1.2; }.board-starbase .starbase-core { stroke-width:.8; }
.board-ship.red .board-ship-art { filter:drop-shadow(0 0 2px #ff746d); }.board-ship.blue .board-ship-art { filter:drop-shadow(0 0 2px #6cbcff); }
.movement-routes { pointer-events:none; }.movement-route polyline { fill:none; stroke-width:2.25; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:5 3; opacity:.92; vector-effect:non-scaling-stroke; }.movement-route.red polyline { stroke:#ff746d; }.movement-route.blue polyline { stroke:#6cbcff; }.movement-route circle { vector-effect:non-scaling-stroke; stroke-width:1.5; }.movement-route.red circle,.movement-route-arrow.red { fill:#ff746d; stroke:#4e0f12; }.movement-route.blue circle,.movement-route-arrow.blue { fill:#6cbcff; stroke:#0c365a; }.movement-route-waypoint { opacity:.8; }
.movement-route.gravity .gravity-route-halo { stroke:#6d3db7; stroke-width:7; stroke-dasharray:none; opacity:.22; filter:drop-shadow(0 0 4px #a978ff); }.movement-route.gravity .gravity-route-core { stroke:#d2b0ff; stroke-width:2.8; stroke-dasharray:1 4; opacity:1; animation:gravity-route-flow 1.4s linear infinite; }.movement-route.gravity circle { fill:#130b20; stroke:#d2b0ff; filter:drop-shadow(0 0 3px #9c63eb); }.gravity-route-arrow { fill:#d2b0ff; stroke:#3e1c6c; stroke-width:.8; }.gravity-route-waypoint { opacity:.9; }
.tactical-board-panel[data-map-theme-target="light-chart"] .movement-route.gravity .gravity-route-core { stroke:#66298f; }.tactical-board-panel[data-map-theme-target="light-chart"] .movement-route.gravity .gravity-route-halo { stroke:#9b4fc7; opacity:.32; }.tactical-board-panel[data-map-theme-target="light-chart"] .movement-route.gravity circle { fill:#f8efff; stroke:#66298f; }.tactical-board-panel[data-map-theme-target="light-chart"] .gravity-route-arrow { fill:#66298f; stroke:#f8efff; }
.eom-marker circle { fill:rgba(4,12,18,.8); stroke-width:1.5; stroke-dasharray:2 2; }.eom-marker.red circle { stroke:#ef6f67; }.eom-marker.blue circle { stroke:#67aeef; }.eom-marker text { fill:#d9edf1; font-size:3.5px; font-weight:900; text-anchor:middle; }.vector-rosette circle { fill:rgba(3,10,16,.86); stroke:#4c7185; stroke-width:1; }.vector-rosette path { stroke:#4c7185; stroke-width:.75; }.vector-rosette text { fill:#81d9e5; font-size:5px; font-weight:900; text-anchor:middle; }
.carrier-heading-guide { pointer-events:none; }.carrier-heading-marker line { stroke:#8aa8b5; stroke-width:1; vector-effect:non-scaling-stroke; }.carrier-heading-marker polygon { fill:rgba(3,10,16,.94); stroke:#8aa8b5; stroke-width:1.2; vector-effect:non-scaling-stroke; }.carrier-heading-marker text { fill:#eaf4f6; font-size:6px; font-weight:900; text-anchor:middle; paint-order:stroke; stroke:#03070a; stroke-width:1px; }.carrier-heading-marker.current polygon { stroke:var(--cyan); stroke-width:2; }.carrier-heading-marker.current text { fill:var(--cyan); }.carrier-heading-marker.selected polygon { fill:#83500d; stroke:#ffc45c; stroke-width:2.2; filter:drop-shadow(0 0 4px #f2b44f); }.carrier-heading-marker.selected text { fill:#fff4d7; }.carrier-heading-marker.current.selected polygon { fill:#496775; stroke:#ffc45c; }
.board-object text { fill:var(--amber); font-size:10px; font-weight:900; text-anchor:middle; paint-order:stroke; stroke:#03070a; stroke-width:1px; }.board-object .board-object-label { fill:#eaf4f6; font-size:5px; }.planet-glyph:not(.planet-art) circle { fill:#244c59; stroke:#78ced9; stroke-width:1.5; }.planet-glyph path { fill:none; stroke:#9ae6ec; stroke-width:1; opacity:.7; }.planet-art image { filter:drop-shadow(0 0 6px rgba(77,211,229,.42)); }.planet-art .planet-limb { fill:none; stroke:rgba(137,231,240,.72); stroke-width:1.1; vector-effect:non-scaling-stroke; }.black-hole-art image { pointer-events:none; filter:drop-shadow(0 0 8px rgba(156,123,233,.7)); transform-box:fill-box; transform-origin:center; animation:black-hole-spin 24s linear infinite; }.black-hole-event-horizon { fill:rgba(12,4,22,.36); stroke:#c4a0ff; stroke-width:1.7; stroke-dasharray:5 3; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 4px rgba(183,139,255,.82)); }.black-hole-center-marker,.black-hole-core { fill:#010204; stroke:#f3eaff; stroke-width:1.1; vector-effect:non-scaling-stroke; }.artifact-glyph { filter:drop-shadow(0 0 5px rgba(245,203,105,.9)); }.artifact-glyph rect { fill:rgba(37,31,17,.9); stroke:#f5cb69; stroke-width:1.8; }.artifact-core { fill:#d58a13; stroke:#ffe6a1; stroke-width:1; }.artifact-circuit { fill:none; stroke:#f5cb69; stroke-width:1.2; }.unknown-object-glyph polygon { fill:rgba(8,19,28,.92); stroke:#ef9fe8; stroke-width:1.5; stroke-dasharray:2 2; }.unknown-object-glyph text { fill:#f8c6f4; }.board-object.unknown_object { filter:drop-shadow(0 0 4px rgba(239,159,232,.65)); }
.terrain-footprint { pointer-events:all; stroke-width:1.2; vector-effect:non-scaling-stroke; }.terrain-footprint.planet { fill:transparent; stroke:transparent; }.terrain-footprint.black_hole { fill:rgba(58,31,99,.13); stroke:rgba(126,90,191,.34); }.terrain-footprint.black_hole.event-horizon { fill:rgba(111,69,174,.18); stroke:#a87be9; stroke-width:1.6; }.terrain-footprint.black_hole.singularity-center { fill:rgba(5,1,10,.68); stroke:#e1cbff; stroke-width:1.8; }.terrain-footprint.asteroid_field { fill:rgba(131,112,85,.24); stroke:#9f8b6d; stroke-dasharray:2 2; }.terrain-footprint.comet { fill:rgba(93,174,197,.14); stroke:#7dc9d9; stroke-dasharray:4 3; }.terrain-footprint.gas_giant { fill:rgba(204,140,65,.16); stroke:#d49750; }.asteroid-glyph path,.asteroid-field-glyph path { fill:#6e6558; stroke:#c8b99d; stroke-width:1.2; }.asteroid-glyph circle,.asteroid-field-glyph circle { fill:#302d29; stroke:#9f927d; stroke-width:.7; }.comet-glyph path { fill:rgba(100,211,231,.3); stroke:#9de8f1; stroke-width:1; }.comet-glyph circle { fill:#d3ebed; stroke:#fff; stroke-width:1.2; }.terrain-environment rect { fill:rgba(4,15,23,.9); stroke:#71c8d4; stroke-width:1; }.terrain-environment text { fill:#d9f3f5; font-size:6px; font-weight:800; }.terrain-environment.nebula rect { fill:rgba(75,45,104,.86); stroke:#c59be5; }.terrain-environment.pulsar rect { fill:rgba(91,61,17,.9); stroke:#ffd067; }
.minefield-glyph { filter:drop-shadow(0 0 6px rgba(255,152,55,.66)); }.minefield-danger { fill:rgba(72,30,8,.72); stroke:#ff9f43; stroke-width:1.4; stroke-dasharray:3 2; }.minefield-orbit { fill:none; stroke:#ffd27d; stroke-width:1; }.minefield-mine { fill:#15191b; stroke:#ffe2a4; stroke-width:1.2; }.minefield-glyph text { fill:#fff1c9; stroke:#2c1205; stroke-width:2px; font-size:8px; text-anchor:middle; paint-order:stroke; }.board-object.minefield.weapon-hit { animation:weapon-hit-shake 360ms ease-in-out 2; }.board-hex.mine-deployable { fill:rgba(255,159,67,.09); stroke:#bd7b35; }.board-hex.mine-deployment-selected { fill:rgba(255,159,67,.28); stroke:#ffd07d; stroke-width:2; filter:drop-shadow(0 0 4px rgba(255,159,67,.8)); }
@keyframes black-hole-spin { to { transform:rotate(360deg); } }
.game-page { padding-top:0; }
.turn-status>span { justify-self:center; }
.game-readouts { display:grid; grid-template-columns:74px 160px; gap:8px; }.game-readout { min-height:54px; padding:7px 11px; display:grid; grid-template-rows:auto 1fr; align-content:stretch; gap:1px; border:1px solid var(--line); }.game-readout span { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.game-readout strong { align-self:center; line-height:1.1; }.turn-status { justify-items:stretch; text-align:left; }.turn-status strong { justify-self:center; color:var(--cyan); font-size:27px; }.phase-status strong { color:var(--amber); font-size:13px; text-transform:uppercase; }
.after-action h2 { margin-bottom:8px; font-size:31px; line-height:1.05; }.after-action-synopsis { margin:0 0 18px; color:var(--muted); font-size:13px; line-height:1.55; }.final-score-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.final-score-grid>div { padding:12px; border:1px solid var(--line); border-top-width:3px; background:color-mix(in srgb,var(--panel-2) 78%,transparent); }.final-score-grid .red { border-top-color:#c74f4b; }.final-score-grid .blue { border-top-color:#4389c3; }.final-score-grid span,.final-score-grid strong,.final-score-grid small { display:block; }.final-score-grid span,.after-action-margin span,.after-action-objective>span { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.final-score-grid strong { margin:2px 0; font-size:32px; line-height:1; }.final-score-grid small { color:var(--muted); font-size:9px; }.after-action-margin { margin:8px 0 16px; padding:10px 12px; border:1px solid var(--line); display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 12px; }.after-action-margin strong { grid-row:1/3; grid-column:2; color:var(--amber); font-size:25px; }.after-action-margin small { color:var(--muted); font-size:10px; }.after-action-fleets { display:grid; gap:8px; }.after-action-fleet { padding:11px 12px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 68%,transparent); }.after-action-fleet header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }.after-action-fleet header strong { font-size:11px; letter-spacing:.1em; }.after-action-fleet header b { color:var(--cyan); font-size:20px; }.after-action-fleet>span,.after-action-fleet>small { display:block; color:var(--muted); font-size:9px; }.after-action-fleet>small { margin-top:5px; line-height:1.4; }.after-action-toll { margin:12px 0 16px; color:var(--muted); font-size:10px; line-height:1.45; }.after-action-objective { padding:12px; border-left:3px solid var(--cyan); background:color-mix(in srgb,var(--cyan) 7%,transparent); }.after-action-objective strong { display:block; margin:3px 0 5px; font-size:13px; }.after-action-objective p { margin:0; color:var(--muted); font-size:10px; line-height:1.45; }.after-action-archive { margin:14px 0 0; color:var(--muted); font-size:9px; line-height:1.45; }
.end-phase-report>p:not(.eyebrow) { margin:0 0 16px; color:var(--muted); font-size:11px; line-height:1.55; }.end-phase-report h3 { margin:0 0 7px; color:var(--muted); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }.end-phase-effects,.end-phase-events { margin:16px 0; }.end-phase-effect { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:center; padding:10px; border:1px solid #7350a5; background:color-mix(in srgb,#7042ad 12%,var(--panel-2)); }.end-phase-effect+.end-phase-effect { margin-top:6px; }.end-phase-effect-icon { width:32px; height:32px; display:grid; place-items:center; border:1px solid #b68aee; border-radius:50%; color:#d9c0ff; font-size:24px; line-height:1; box-shadow:0 0 12px rgba(172,116,237,.2); }.end-phase-effect strong,.end-phase-effect small { display:block; }.end-phase-effect strong { font-size:11px; }.end-phase-effect small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.4; }.end-phase-effect.destroyed { border-color:#a44356; }.end-phase-effect.destroyed .end-phase-effect-icon { border-color:#e16e7b; color:#ff9ba5; }.end-phase-events ul { max-height:180px; overflow:auto; margin:0; padding:10px 10px 10px 27px; border:1px solid var(--line); background:var(--panel-2); }.end-phase-events li { padding:3px 0; color:var(--muted); font-size:9px; line-height:1.45; }.end-phase-clear { padding:12px; border-left:3px solid var(--cyan); background:var(--panel-2); }.end-phase-vp { margin:14px 0; padding:10px 12px; display:flex; justify-content:space-between; gap:10px; border:1px solid var(--line); }.end-phase-vp span { color:var(--muted); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }.end-phase-vp strong { color:var(--amber); font-size:11px; }
.mine-deployment { border-color:color-mix(in srgb,var(--amber) 45%,var(--line)) !important; }.mine-deployment.selected { box-shadow:inset 3px 0 0 var(--amber); background:color-mix(in srgb,var(--amber) 6%,var(--panel-2)); }.mine-location { margin:8px 0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:8px; }.mine-location>span { color:var(--muted); font-size:8px; line-height:1.4; }.mine-location b { color:var(--amber); font-size:10px; }
.order-ship-heading { min-width:0; display:flex; align-items:center; gap:6px; }.order-ship-heading>strong { min-width:0; }.order-ship-metrics { flex:none; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(46px,auto); margin:0; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 75%,transparent); }.order-ship-metrics>div { min-width:0; padding:5px 8px; text-align:center; }.order-ship-metrics>div+div { border-left:1px solid var(--line); }.order-ship-metrics dt { color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.11em; line-height:1.1; text-transform:uppercase; }.order-ship-metrics dd { margin:2px 0 0; color:var(--amber); font-size:13px; font-weight:900; line-height:1.05; }.order-ship-help { position:relative; display:grid; place-items:center; flex:none; }.order-ship-help>button { width:19px; height:19px; padding:0; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:var(--muted); }.order-ship-help>button svg { width:14px; height:14px; display:block; }.order-ship-help>button:hover,.order-ship-help>button:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }.order-ship-help>[role="tooltip"] { width:250px; position:absolute; z-index:40; right:0; top:calc(100% + 7px); padding:10px 12px; border:1px solid var(--line); background:var(--panel-2); color:inherit; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }.order-ship-help:hover>[role="tooltip"],.order-ship-help:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }.order-ship-help>[role="tooltip"]>strong,.order-ship-help>[role="tooltip"]>span { display:block; }.order-ship-help>[role="tooltip"]>strong { color:var(--cyan); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }.order-ship-help>[role="tooltip"]>span { margin-top:5px; color:var(--muted); font-size:9px; font-weight:500; line-height:1.4; }
.movement-reference { margin:14px 0 18px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 78%,transparent); }.movement-reference>summary { min-height:48px; padding:8px 12px; display:flex; align-items:center; gap:10px; cursor:pointer; list-style:none; user-select:none; }.movement-reference>summary::-webkit-details-marker { display:none; }.movement-reference>summary::before { content:"+"; width:26px; height:26px; display:grid; place-items:center; flex:none; border:1px solid var(--line); color:var(--cyan); font-size:17px; line-height:1; }.movement-reference[open]>summary::before { content:"−"; }.movement-reference>summary span { font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }.movement-reference>summary small { margin-left:auto; color:var(--muted); font-size:8px; letter-spacing:.07em; text-transform:uppercase; text-align:right; }.movement-reference-grid { padding:10px; display:grid; gap:6px; border-top:1px solid var(--line); }.movement-reference-grid article { padding:7px 8px; display:grid; grid-template-columns:46px minmax(0,1fr); align-items:center; gap:9px; background:color-mix(in srgb,var(--panel) 72%,transparent); }.movement-reference-grid kbd { min-height:29px; padding:5px; display:grid; place-items:center; border:1px solid var(--cyan); background:color-mix(in srgb,var(--cyan) 8%,transparent); color:var(--cyan); font-family:inherit; font-size:10px; font-weight:900; }.movement-reference-grid strong,.movement-reference-grid span { display:block; }.movement-reference-grid strong { font-size:9px; }.movement-reference-grid span { margin-top:2px; color:var(--muted); font-size:8px; line-height:1.35; }.movement-reference>p { margin:0; padding:8px 11px; border-top:1px solid var(--line); color:var(--amber); font-size:8px; line-height:1.4; }
.movement-pivot-cost { margin:0 10px 10px; padding:9px 10px; border-left:3px solid var(--amber); background:color-mix(in srgb,var(--amber) 8%,transparent); }.movement-pivot-cost strong,.movement-pivot-cost span { display:block; }.movement-pivot-cost strong { color:var(--amber); font-size:8px; letter-spacing:.09em; text-transform:uppercase; }.movement-pivot-cost span { margin-top:4px; color:var(--muted); font-size:8px; line-height:1.45; }
.combat-effects-layer,.weapon-effect { pointer-events:none; }.combat-effects-playing .command-panel,.command-pending .command-panel { pointer-events:none; }.combat-effects-playing .command-panel { box-shadow:inset 0 0 0 1px var(--amber); }.weapon-effect { filter:drop-shadow(0 0 3px var(--fx-primary)); }.fx-trail { fill:none; stroke:var(--fx-primary); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1; stroke-dashoffset:1; animation:weapon-travel var(--fx-duration) ease-out both; }.fx-trail.secondary { stroke:var(--fx-secondary); stroke-width:1.2; }.fx-trail.wide { stroke-width:5; }.fx-trail.beam.wide { stroke-width:7; opacity:.55; }.fx-trail.beam.core,.fx-trail.lance.core { stroke:var(--fx-secondary); stroke-width:1.2; }.fx-trail.lance.wide { stroke-width:9; }.fx-trail.needle { stroke-width:.8; }.fx-trail.phase { stroke-dasharray:.08 .06; }.fx-trail.pulse { stroke-width:4; animation-delay:var(--fx-delay); animation-duration:420ms; }.fx-trail.shock { stroke-width:6; stroke-dasharray:.04 .04; }.fx-trail.slug { stroke:var(--fx-secondary); stroke-width:2; stroke-dasharray:.04 .08; }.fx-trail.defensive { stroke-width:1.5; }.fx-trail.harmonic { stroke-width:2.5; }.fx-trail.vortex { stroke-width:5; stroke-dasharray:.06 .03; }.fx-trail.quantum { stroke-width:7; stroke-dasharray:.02 .04; }.fx-trail.arc.wide { stroke-width:6; }.fx-trail.lattice { stroke-width:4; stroke-dasharray:.03 .03; }.fx-trail.prism { stroke-width:2.4; }.fx-trail.prism.p0 { stroke:#ff5d72; }.fx-trail.prism.p1 { stroke:#71f0ff; }.fx-trail.prism.p2 { stroke:#ffe86b; }.fx-trail.rupture.wide { stroke-width:8; }.fx-trail.rupture.fragment { stroke-width:1.5; stroke-dasharray:.04 .04; }.fx-projectile { filter:drop-shadow(0 0 4px var(--fx-primary)); }.fx-lattice { fill:none; stroke:var(--fx-primary); stroke-width:1.5; transform-box:fill-box; transform-origin:center; animation:lattice-lock var(--fx-duration) ease-out both; }.fx-result { opacity:0; animation:weapon-result 220ms ease-out var(--fx-impact-delay) forwards; }.fx-result circle { fill:rgba(3,9,14,.94); stroke-width:3; }.fx-result path { fill:var(--fx-secondary); stroke:var(--fx-primary); stroke-width:1.4; }.fx-result text { fill:#fff; font-size:12px; font-weight:900; text-anchor:middle; paint-order:stroke; stroke:#02070a; stroke-width:3px; letter-spacing:.08em; }.fx-result text:last-child { font-size:8px; }.fx-result.hit circle { stroke:#ff695f; }.fx-result.miss circle { stroke:#a8bac3; stroke-dasharray:3 3; }.fx-result.miss path { display:none; }.board-ship.weapon-hit { animation:weapon-hit-shake 360ms ease-in-out 2; filter:drop-shadow(0 0 9px #ff684f); }
@keyframes weapon-travel { 0% { stroke-dashoffset:1; opacity:0; } 12% { opacity:1; } 62% { stroke-dashoffset:0; opacity:1; } 100% { stroke-dashoffset:0; opacity:0; } }
@keyframes gravity-route-flow { to { stroke-dashoffset:-10; } }
@keyframes weapon-result { from { opacity:0; } to { opacity:1; } }
@keyframes lattice-lock { 0%,42% { opacity:0; stroke-dasharray:2 8; } 65% { opacity:1; stroke-dasharray:8 1; } 100% { opacity:0; stroke-dasharray:1 7; } }
@keyframes weapon-hit-shake { 0%,100% { opacity:1; } 25% { opacity:.45; } 50% { opacity:1; } 75% { opacity:.65; } }
@keyframes damage-roll-arrive { from { opacity:0; transform:translateX(-8px); } to { opacity:1; transform:translateX(0); } }
@keyframes damage-box-mark { 0% { outline-color:#fff; box-shadow:0 0 20px #fff; transform:scale(1.12); } 45% { outline-color:#ffb23e; box-shadow:0 0 16px #ff9d23; } 100% { outline-color:#ef9f24; box-shadow:0 0 0 transparent; transform:scale(1); } }
.live-ssd-dialog>header { color:#e8f0f4; }
.tactical-board-panel { position:relative; }
.combat-result-banner { position:absolute; z-index:20; left:50%; top:58px; width:min(440px,calc(100% - 40px)); transform:translateX(-50%); display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 18px; padding:16px 20px; border:2px solid #8298a3; background:rgba(3,10,16,.95); color:#eef7fa; box-shadow:0 12px 40px rgba(0,0,0,.55); pointer-events:none; }.combat-result-banner[hidden] { display:none; }.combat-result-banner>span,.combat-result-banner>small { color:#adc0c9; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.combat-result-banner>strong { grid-row:1/3; grid-column:2; font-size:28px; letter-spacing:.06em; text-transform:uppercase; }.combat-result-banner>em { font-size:17px; font-style:normal; font-weight:800; }.combat-result-banner>div { grid-column:1/-1; display:flex; gap:7px; }.combat-result-banner>div b { width:36px; height:36px; display:grid; place-items:center; border-radius:5px; background:#f7f4e9; color:#111; font-size:20px; }.combat-result-banner.hit { border-color:#ff685e; }.combat-result-banner.hit>strong { color:#ffaaa4; }.combat-result-banner.miss>strong { color:#c2d0d6; }.attack-outcome { flex:1 0 100%; padding:11px 13px; border-left:4px solid; background:rgba(0,0,0,.24); font-style:normal; font-size:15px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.attack-outcome.hit { border-color:#ff685e; color:#ffaaa4; }.attack-outcome.miss { border-color:#8298a3; color:#c2d0d6; }.dice-readout { padding:15px; gap:9px; }.dice-readout span { font-size:11px; }.dice-readout b { width:40px; height:40px; font-size:20px; }
@media (prefers-reduced-motion:reduce) { .fx-trail,.fx-lattice,.fx-result,.board-ship.weapon-hit,.damage-resolution li,.ssd-card.live .resolution-loss { animation-duration:180ms !important; animation-delay:0ms !important; } }
@media (prefers-reduced-motion:reduce) { .black-hole-art image,.movement-route.gravity .gravity-route-core { animation:none; } }
@media (max-width:1000px) { .live-ssd-ship.has-damage-resolution { grid-template-columns:1fr; }.damage-resolution { position:static; }.damage-resolution ol { max-height:260px; } }
.salvo-declarations article>header { flex-wrap:wrap; }
.salvo-declarations [data-salvo-legality] { flex:0 0 100%; padding-left:22px; color:#f5cb83; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.salvo-declarations [data-salvo-legality][hidden] { display:none; }
.weapon-bank-control { position:relative; }
.weapon-availability-reasons { position:absolute; z-index:35; top:8px; right:0; }
.weapon-availability-reasons[hidden] { display:none; }
.weapon-availability-reasons>button { width:20px; height:20px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:var(--amber); cursor:help; }
.weapon-availability-reasons>button svg { width:16px; height:16px; display:block; }
.weapon-availability-reasons>button:hover,.weapon-availability-reasons>button:focus-visible { color:var(--cyan); outline:1px solid var(--cyan); }
.weapon-availability-reasons>[role="tooltip"] { width:min(300px,calc(100vw - 48px)); position:absolute; z-index:40; top:calc(100% + 7px); right:0; padding:11px 13px; border:1px solid var(--line); background:var(--panel-2); color:#d7e4e9; box-shadow:var(--shadow); opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .15s ease,transform .15s ease,visibility .15s; pointer-events:none; }
.weapon-availability-reasons:hover>[role="tooltip"],.weapon-availability-reasons:focus-within>[role="tooltip"] { opacity:1; visibility:visible; transform:translateY(0); }
.weapon-availability-reasons [role="tooltip"]>strong { display:block; color:var(--amber); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.weapon-availability-reasons ul { margin:8px 0 0; padding:0; display:grid; gap:7px; list-style:none; }
.weapon-availability-reasons li { display:grid; grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr); gap:9px; color:var(--muted); font-size:9px; line-height:1.35; }
.weapon-availability-reasons li strong { color:#f1f6f8; }
.combat-trait-choice { display:flex; align-items:center; gap:9px; margin-top:10px; padding:9px 10px; border:1px solid color-mix(in srgb,var(--amber) 48%,var(--line)); background:color-mix(in srgb,var(--amber) 7%,transparent); cursor:pointer; }
.combat-trait-choice[hidden] { display:none; }
.combat-trait-choice input { width:auto; min-height:0; margin:0; accent-color:var(--amber); }
.combat-trait-choice span { display:grid; gap:2px; }
.combat-trait-choice strong { color:var(--amber); font-size:10px; letter-spacing:.04em; }
.combat-trait-choice small { color:var(--muted); font-size:9px; }
.pinpoint-decision>p:not(.eyebrow) { color:var(--muted); line-height:1.55; }
.pinpoint-dice { display:grid; gap:8px; margin-top:18px; }
.pinpoint-die { display:grid; grid-template-columns:auto 38px minmax(0,1fr); align-items:center; gap:10px; padding:9px; border:1px solid var(--line); background:#0c1a25; cursor:pointer; }
.pinpoint-die:has(input:checked) { border-color:var(--cyan); box-shadow:inset 3px 0 0 var(--cyan); }
.pinpoint-die input { accent-color:var(--cyan); }
.pinpoint-die>b { width:36px; height:36px; display:grid; place-items:center; border-radius:4px; background:var(--paper); color:#111; font-size:19px; }
.pinpoint-die>span { display:grid; gap:2px; }
.pinpoint-die small { color:var(--muted); font-size:9px; }
html[data-theme="dark-metal"] .pinpoint-die { background:#30383d; }
html[data-theme="metal"] .pinpoint-die { background:#fff; }
.board-toolbar-controls { display:flex; align-items:center; gap:18px; }.board-toolbar-controls>span { color:var(--cyan); }.board-toolbar-controls label { display:flex; align-items:center; gap:7px; }.board-destroyed-toggle { cursor:pointer; white-space:nowrap; }.board-destroyed-toggle input { width:14px; height:14px; margin:0; accent-color:var(--cyan); }.board-toolbar-controls select,.board-coordinate-toggle { min-height:26px; border:1px solid #476274; background:#07131d; color:#eaf2f5; padding:2px 22px 2px 7px; font:inherit; font-weight:700; letter-spacing:.08em; color-scheme:dark; }.board-coordinate-toggle { padding:2px 9px; text-transform:uppercase; }.board-coordinate-toggle:disabled { opacity:.5; cursor:wait; }.board-toolbar-controls select option { background:#07131d; color:#eaf2f5; }.board-toolbar-controls select:focus-visible,.board-coordinate-toggle:focus-visible,.board-destroyed-toggle input:focus-visible { border-color:var(--cyan); outline:1px solid var(--cyan); outline-offset:1px; }.board-scroller { overflow:auto; }.board-stage { width:100%; height:100%; display:grid; place-items:center; }.board-stage .tactical-board { flex:none; }
@media (max-width:980px) { .hero { grid-template-columns:1fr; }.hero-ship { width:82vw; right:-24vw; opacity:.44; }.hero-telemetry { display:none; }.dashboard-band { grid-template-columns:1fr 1fr; }.split-section,.editor-layout { grid-template-columns:1fr; }.rules-source-filter { grid-template-columns:1fr minmax(300px,1fr) auto; }.calculation-sticky { position:static; }.field-grid,.system-picker,.trait-picker,.defense-grid { grid-template-columns:1fr 1fr; }.fighter-performance-grid { grid-template-columns:1fr 1fr; }.fighter-size-rule { grid-column:1/-1; }.fighter-trait-picker { grid-template-columns:repeat(2,minmax(0,1fr)); }.trait-choice:nth-child(3n) .trait-help>[role="tooltip"] { right:auto; left:0; }.trait-choice:nth-child(2n) .trait-help>[role="tooltip"] { right:0; left:auto; }.faction-identity-grid { grid-template-columns:minmax(0,1fr) minmax(240px,320px); }.hull-size-guide { grid-column:1/-1; grid-row:auto; }.weapon-bank-row { grid-template-columns:2fr 70px 90px; }.range-band-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px) { .site-header { padding:0 16px; }.site-header nav { gap:12px; }.brand small { display:none; }.hero { padding:55px 24px; min-height:500px; }.hero h1 { font-size:47px; }.hero-ship { width:150vw; right:-93vw; opacity:.3; }.dashboard-band { padding:0 15px; }.dashboard-band>div { padding:18px 12px; }.content-section { width:calc(100% - 30px); padding:45px 0; }.reference-list,.field-grid,.system-picker,.trait-picker,.range-band-grid,.defense-grid,.ship-identity-grid,.faction-identity-grid,.weapon-identity-grid,.fighter-identity-grid,.fighter-performance-grid,.fighter-trait-picker { grid-template-columns:1fr; }.fighter-size-rule { grid-column:auto; }.fighter-profile-body { grid-template-columns:1fr; }.fighter-profile-body>figure { grid-row:auto; border-right:0; border-bottom:2px solid #111; }.trait-choice:nth-child(2n) .trait-help>[role="tooltip"] { right:auto; left:0; }.trait-help>[role="tooltip"] { width:min(285px,calc(100vw - 90px)); }.weapon-identity-grid>.field.wide { grid-column:1; }.ship-identity-notes textarea.identity-notes { min-height:140px; }.faction-portrait { grid-column:1; grid-row:auto; }.rules-source-filter { grid-template-columns:minmax(0,1fr) auto; }.rules-source-filter>div { grid-column:1/-1; }.rules-source-help>[role="tooltip"] { width:min(290px,calc(100vw - 70px)); }.editor-header,.inspection-header { align-items:flex-start; flex-direction:column; }.weapon-bank-row { grid-template-columns:1fr 1fr; }.ssd-top { grid-template-columns:1fr; }.ssd-defense-map { min-height:240px; border-right:0; border-bottom:2px solid #111; } }

:root[data-theme="dark-metal"] { --ink:#353d42; --panel:#4b555b; --panel-2:#555f65; --line:#7b898f; --cyan:#58cad8; --cyan-soft:#b8f2f7; --amber:#d6a14d; --paper:#eef0ed; --muted:#b4c0c5; --danger:#ff8a91; --success:#8ce0b5; --shadow:0 20px 54px rgba(15,19,21,.34); color-scheme:dark; }
html[data-theme="dark-metal"] { background:#2d3438; }
html[data-theme="dark-metal"] body { background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,rgba(0,0,0,.025) 1px,rgba(0,0,0,.025) 3px),radial-gradient(circle at 75% -10%,#69757b 0,transparent 34rem),#353d42; color:#f0f4f5; }
html[data-theme="dark-metal"] .site-header { border-color:#75838a; background:rgba(47,55,60,.94); box-shadow:0 3px 16px rgba(0,0,0,.26),inset 0 1px rgba(255,255,255,.1); }
html[data-theme="dark-metal"] .brand-mark { background:linear-gradient(145deg,#626d73,#333b40); box-shadow:inset 0 1px rgba(255,255,255,.18),2px 3px 7px rgba(0,0,0,.25); }
html[data-theme="dark-metal"] .site-header nav { color:#d0d9dd; }
html[data-theme="dark-metal"] .theme-picker select { background:#414b50; color:#f0f4f5; }
html[data-theme="dark-metal"] .starfield { opacity:.32; }
html[data-theme="dark-metal"] .starfield::after { background:linear-gradient(105deg,#353d42 15%,transparent 60%),radial-gradient(circle at 80% 45%,rgba(88,202,216,.15),transparent 28%); }
html[data-theme="dark-metal"] .dashboard-band { background:linear-gradient(#525d63,#3c454a); }
html[data-theme="dark-metal"] .design-card { background:linear-gradient(135deg,#5b666c,#414a4f); box-shadow:0 9px 24px rgba(0,0,0,.2); }
html[data-theme="dark-metal"] .card-art { background:linear-gradient(145deg,#626e74,#363f44); }
html[data-theme="dark-metal"] .card-art svg { fill:#596970; stroke:#a6d3da; }
html[data-theme="dark-metal"] .rules-source-filter { background:linear-gradient(100deg,#566168,#3d474c); box-shadow:inset 0 1px rgba(255,255,255,.12); }
html[data-theme="dark-metal"] .rules-source-filter select,html[data-theme="dark-metal"] .rules-source-help>button { background:#343c41; color:#d9f7fa; }
html[data-theme="dark-metal"] .rules-source-help>[role="tooltip"],html[data-theme="dark-metal"] .metric-help>[role="tooltip"] { background:#59646a; color:#f0f4f5; }
html[data-theme="dark-metal"] .editor-panel { background:rgba(74,84,90,.96); box-shadow:inset 0 1px rgba(255,255,255,.1); }
html[data-theme="dark-metal"] .editor-panel>header>span { color:#a2b1b8; }
html[data-theme="dark-metal"] .editor-panel-toggle { background:#343c41; }
html[data-theme="dark-metal"] .field { color:#c6d0d4; }
html[data-theme="dark-metal"] .field>small { color:#aab7bd; }
html[data-theme="dark-metal"] .field input,html[data-theme="dark-metal"] .field select,html[data-theme="dark-metal"] .field textarea,html[data-theme="dark-metal"] .weapon-bank-row input,html[data-theme="dark-metal"] .weapon-bank-row select,html[data-theme="dark-metal"] .range-band-grid input { background:#30383d; color:#f3f6f7; }
html[data-theme="dark-metal"] input::placeholder,html[data-theme="dark-metal"] textarea::placeholder { color:#929fa5; }
html[data-theme="dark-metal"] .toggle-field { color:#e0e6e8; }
html[data-theme="dark-metal"] .weapon-bank-row,html[data-theme="dark-metal"] .system-choice,html[data-theme="dark-metal"] .range-band-grid article,html[data-theme="dark-metal"] .trait-choice,html[data-theme="dark-metal"] .fighter-trait-choice { background:#414a4f; border-color:#738087; }
html[data-theme="dark-metal"] .system-picker section { border-color:#738087; }
html[data-theme="dark-metal"] .system-picker h3 { background:#59646a; }
html[data-theme="dark-metal"] .system-choice input[type="number"] { background:#30383d; color:#fff; }
html[data-theme="dark-metal"] .calculation-panel { background:linear-gradient(145deg,#58636a,#414a4f); box-shadow:0 9px 25px rgba(0,0,0,.22); }
html[data-theme="dark-metal"] .meter { background:#30383d; }
html[data-theme="dark-metal"] .validation-list p { background:#3d464b; }
html[data-theme="dark-metal"] .spec-inspector { background:#343c41; color:#c6f4f7; }
html[data-theme="dark-metal"] .battle-hero { background:linear-gradient(115deg,#626e74,#3e474c 70%); }
html[data-theme="dark-metal"] .battle-setup,html[data-theme="dark-metal"] .saved-battles,html[data-theme="dark-metal"] .tactical-board-panel,html[data-theme="dark-metal"] .command-panel,html[data-theme="dark-metal"] .combat-log { background:#4a545a; }
html[data-theme="dark-metal"] .fleet-selector label,html[data-theme="dark-metal"] .command-ships article { background:#3d464b; }
html[data-theme="dark-metal"] .command-ships input,html[data-theme="dark-metal"] .command-field select { background:#30383d; color:#fff; }
html[data-theme="dark-metal"] .combat-log li { color:#c4d0d5; }
html[data-theme="dark-metal"] .board-toolbar-controls select,html[data-theme="dark-metal"] .board-toolbar-controls select option,html[data-theme="dark-metal"] .board-coordinate-toggle { border-color:#91a0a7; background:#30383d; color:#f3f6f7; color-scheme:dark; }

:root[data-theme="metal"] { --ink:#d9dde0; --panel:#eef1f2; --panel-2:#e4e8ea; --line:#89969d; --cyan:#087e92; --cyan-soft:#075a68; --amber:#9a610d; --paper:#f7f7f4; --muted:#5c6b73; --danger:#a82e3a; --success:#1c704d; --shadow:0 18px 48px rgba(43,53,59,.22); color-scheme:light; }
html[data-theme="metal"] { background:#cbd0d3; }
html[data-theme="metal"] body { background:repeating-linear-gradient(0deg,rgba(255,255,255,.12) 0,rgba(255,255,255,.12) 1px,rgba(92,104,111,.035) 1px,rgba(92,104,111,.035) 3px),radial-gradient(circle at 75% -10%,#f8fafb 0,transparent 34rem),#d9dde0; color:#17242c; }
html[data-theme="metal"] .site-header { border-color:#929da3; background:rgba(230,234,236,.92); box-shadow:0 3px 14px rgba(53,64,71,.14),inset 0 1px rgba(255,255,255,.9); }
html[data-theme="metal"] .brand-mark { background:linear-gradient(145deg,#f7f9fa,#c6cdd1); box-shadow:inset 0 0 12px rgba(255,255,255,.8),2px 2px 5px rgba(62,73,80,.18); }
html[data-theme="metal"] .site-header nav { color:#35454e; }
html[data-theme="metal"] .theme-picker select { background:#f7f9fa; color:#21313a; }
html[data-theme="metal"] .button { background:rgba(248,250,251,.5); color:#263740; }
html[data-theme="metal"] .button.primary { background:#087e92; border-color:#087e92; color:#fff; box-shadow:0 5px 16px rgba(8,126,146,.2); }
html[data-theme="metal"] .button.primary:hover { background:#05677a; color:#fff; }
html[data-theme="metal"] .button.secondary { color:#80500b; }
html[data-theme="metal"] .button.ghost { color:#52636c; }
html[data-theme="metal"] .button.danger { border-color:var(--danger); color:var(--danger); }
html[data-theme="metal"] .button.close-action { border-color:#687c86; background:#f5f7f8; color:#203640; box-shadow:0 3px 9px rgba(50,64,71,.16); }
html[data-theme="metal"] .button.close-action:hover,html[data-theme="metal"] .button.close-action:focus-visible { border-color:#087e92; background:#fff; color:#075a68; box-shadow:0 4px 13px rgba(8,126,146,.18); outline:0; }
html[data-theme="metal"] .flash { background:#f7f9fa; color:#17242c; box-shadow:0 28px 70px rgba(45,56,62,.38); }
html[data-theme="metal"] .starfield { opacity:.24; background-image:radial-gradient(#526b77 1px,transparent 1px); }
html[data-theme="metal"] .starfield::before { background-image:radial-gradient(#087e92 1px,transparent 1px); }
html[data-theme="metal"] .starfield::after { background:linear-gradient(105deg,#d9dde0 15%,transparent 60%),radial-gradient(circle at 80% 45%,rgba(8,126,146,.13),transparent 28%); }
html[data-theme="metal"] .hero-copy>p:not(.eyebrow) { color:#52626a; }
html[data-theme="metal"] .dashboard-band { background:linear-gradient(#e9edef,#d4dadd); }
html[data-theme="metal"] .design-card { background:linear-gradient(135deg,#f3f5f6,#dce2e5); box-shadow:0 8px 22px rgba(48,59,65,.1); }
html[data-theme="metal"] .design-card:hover { border-color:#52727f; }
html[data-theme="metal"] .card-art { background:linear-gradient(145deg,#e8ecee,#c9d0d4); }
html[data-theme="metal"] .card-art svg { fill:#9aa7ad; stroke:#466a78; }
html[data-theme="metal"] .empty-state h3 { color:#17242c; }
html[data-theme="metal"] .rules-source-filter { background:linear-gradient(100deg,#eef2f3,#d5dbde); box-shadow:inset 0 1px rgba(255,255,255,.9); }
html[data-theme="metal"] .rules-source-filter select,html[data-theme="metal"] .rules-source-help>button { background:#f8fafb; color:#174653; }
html[data-theme="metal"] .rules-source-help>button:hover,html[data-theme="metal"] .rules-source-help>button:focus-visible { background:#087e92; color:#fff; }
html[data-theme="metal"] .rules-source-help>[role="tooltip"],html[data-theme="metal"] .metric-help>[role="tooltip"] { background:#f7f9fa; color:#26363e; }
html[data-theme="metal"] .editor-panel { background:rgba(239,242,243,.94); box-shadow:inset 0 1px rgba(255,255,255,.9); }
html[data-theme="metal"] .editor-panel>header>span { color:#768991; }
html[data-theme="metal"] .editor-panel-toggle { background:#f8fafb; color:#075a68; }
html[data-theme="metal"] .field { color:#52636c; }
html[data-theme="metal"] .field>small { color:#66777f; }
html[data-theme="metal"] .field-help>[role="tooltip"],html[data-theme="metal"] .system-help>[role="tooltip"],html[data-theme="metal"] .trait-help>[role="tooltip"] { color:#26363e; }
html[data-theme="metal"] .field input,html[data-theme="metal"] .field select,html[data-theme="metal"] .field textarea,html[data-theme="metal"] .weapon-bank-row input,html[data-theme="metal"] .weapon-bank-row select,html[data-theme="metal"] .range-band-grid input { background:#fbfcfc; color:#17242c; }
html[data-theme="metal"] input::placeholder,html[data-theme="metal"] textarea::placeholder { color:#849097; }
html[data-theme="metal"] .toggle-field { color:#384a53; }
html[data-theme="metal"] .weapon-bank-row,html[data-theme="metal"] .system-choice,html[data-theme="metal"] .range-band-grid article,html[data-theme="metal"] .trait-choice,html[data-theme="metal"] .fighter-trait-choice,html[data-theme="metal"] .faction-system-choice,html[data-theme="metal"] .faction-access-choice,html[data-theme="metal"] .faction-custom-flight-count { background:#f8fafb; border-color:#a6b0b5; }
html[data-theme="metal"] .fighter-trait-choice strong { color:#17242c; }
html[data-theme="metal"] .system-picker section { border-color:#a6b0b5; }
html[data-theme="metal"] .system-picker h3 { background:#d9dfe2; }
html[data-theme="metal"] .system-choice input[type="number"] { background:#fff; color:#17242c; }
html[data-theme="metal"] .calculation-panel { background:linear-gradient(145deg,#edf0f2,#dbe0e3); box-shadow:0 8px 24px rgba(48,59,65,.12); }
html[data-theme="metal"] .meter { background:#c4ccd0; }
html[data-theme="metal"] .calculation-grid dd { color:#075a68; }
html[data-theme="metal"] .validation-list p { background:#f6f8f9; }
html[data-theme="metal"] .validation-list .error { color:var(--danger); }
html[data-theme="metal"] .validation-list .warning { color:var(--amber); }
html[data-theme="metal"] .validation-list .valid { color:var(--success); }
html[data-theme="metal"] .spec-inspector { background:#f7f9fa; color:#184e5b; }
html[data-theme="metal"] .battle-hero { background:linear-gradient(115deg,#edf2f4,#cdd5d9 70%); }
html[data-theme="metal"] .battle-setup,html[data-theme="metal"] .saved-battles,html[data-theme="metal"] .tactical-board-panel,html[data-theme="metal"] .command-panel,html[data-theme="metal"] .combat-log { background:#edf1f2; }
html[data-theme="metal"] .fleet-selector label,html[data-theme="metal"] .command-ships article { background:#f8fafb; }
html[data-theme="metal"] .fleet-selector.red legend { color:#9f302b; }
html[data-theme="metal"] .fleet-selector.blue legend { color:#276b9e; }
html[data-theme="metal"] .command-ships input,html[data-theme="metal"] .command-field select { background:#fff; color:#17242c; }
html[data-theme="metal"] .combat-log li { color:#43565f; }
html[data-theme="metal"] .board-scroller { box-shadow:inset 0 0 24px rgba(0,0,0,.38); }
html[data-theme="metal"] .board-toolbar-controls select,html[data-theme="metal"] .board-toolbar-controls select option,html[data-theme="metal"] .board-coordinate-toggle { border-color:#75858d; background:#fbfcfc; color:#17242c; color-scheme:light; }
html[data-theme="metal"] .handoff-screen { color:#e8f0f4; }

.shield-track { position:absolute; z-index:2; display:flex; align-items:center; gap:4px; }
.shield-track.forward { top:22px; left:50%; transform:translateX(-50%); }
.shield-track.aft { bottom:22px; left:50%; transform:translateX(-50%); }
.shield-track.port { top:50%; left:22px; flex-direction:column; transform:translateY(-50%); }
.shield-track.starboard { top:50%; right:22px; flex-direction:column; transform:translateY(-50%); }
.shield-box { position:relative; width:17px; height:17px; flex:0 0 17px; display:block; border:2px solid #17242c; border-radius:50%; background:#fff; }
.shield-box.lost { background:#e0e3e3; }
.shield-box.lost::after { content:"×"; position:absolute; inset:-5px -2px 0; display:grid; place-items:center; color:#17242c; font-size:20px; font-weight:900; line-height:1; }

.ssd-identifier { height:42px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px; padding:6px; }.ssd-identifier label { min-width:0; display:grid; grid-template-columns:45px minmax(0,1fr); align-items:center; color:#596568; font-weight:900; }.ssd-identifier input { width:100%; height:28px; border:1px solid #8b9699; background:white; color:#101619; padding:3px 7px; font:inherit; font-weight:700; }.ssd-identifier input:focus { border-color:#087d91; outline:2px solid rgba(8,125,145,.25); }.ssd-identifier button { height:28px; border:1px solid #596568; background:#26343a; color:white; padding:0 10px; font-size:10px; font-weight:900; text-transform:uppercase; cursor:pointer; }.ssd-identifier button:disabled { opacity:.45; cursor:not-allowed; }
.ssd-notes span { position:relative; }.ssd-notes b { position:absolute; top:3px; left:5px; font-size:10px; }.ssd-notes em { height:100%; padding:0 18px; display:grid; place-items:center; overflow:hidden; color:#17242c; font-size:13px; font-style:normal; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }.ssd-notes span.concealed em { color:#7a1b12; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }

.marine-attack { margin-top:16px; padding:13px; border:1px solid var(--line); background:color-mix(in srgb,var(--paper) 4%,transparent); }.marine-attack .eyebrow { margin:0; }.marine-attack-fields { display:grid; grid-template-columns:minmax(0,1fr) 72px; gap:8px; }.marine-attack small { display:block; margin-top:8px; color:var(--muted); font-size:9px; line-height:1.45; }.marine-attack-status { display:grid; gap:4px; margin-top:16px; padding:11px 13px; border-left:3px solid var(--cyan); background:color-mix(in srgb,var(--cyan) 8%,transparent); }.marine-attack-status strong { color:var(--cyan); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }.marine-attack-status span { color:var(--muted); font-size:9px; line-height:1.45; }

@media (max-width:620px) { .header-controls { gap:10px; }.site-header nav { font-size:10px; }.theme-picker>span { display:none; }.theme-picker select { width:108px; padding-left:7px; padding-right:18px; } }
@media (max-width:500px) { .brand>span:last-child { display:none; } }

.fleet-selector .fleet-option { padding:10px; background:#08131c; display:grid; grid-template-columns:20px minmax(0,1fr) 76px; align-items:center; gap:9px; }
.fleet-faction-filter { margin:6px 2px 2px; padding:10px 12px; border:1px solid var(--line); background:var(--panel-2); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:12px; }
.fleet-selector .fleet-faction-filter label { padding:0; background:transparent; display:grid; grid-template-columns:1fr; gap:5px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.fleet-faction-filter select { min-height:38px; border:1px solid var(--line); background:var(--panel); color:var(--paper); padding:7px 30px 7px 10px; font-size:11px; font-weight:700; letter-spacing:0; text-transform:none; }
.fleet-faction-filter>small { margin:0 0 9px; white-space:nowrap; }
html[data-theme="dark-metal"] .fleet-faction-filter select { background:#30383d; color:#fff; }
html[data-theme="metal"] .fleet-faction-filter select { background:#fff; color:#17242c; }
html[data-theme="metal"] .fleet-selector .fleet-faction-filter label { background:transparent; }
@media (max-width:620px) { .fleet-faction-filter { grid-template-columns:1fr; }.fleet-faction-filter>small { margin:0; white-space:normal; } }
.fleet-selector .fleet-option>input[type="checkbox"] { align-self:center; }
.fleet-selector .fleet-option label { padding:0; background:transparent; display:block; }
.fleet-option-copy>label { cursor:pointer; }
.fleet-selector .fleet-option.is-unavailable { opacity:.68; }
.fleet-selector .fleet-option.is-unavailable>input { cursor:not-allowed; }
.fleet-unavailable-reason { color:var(--amber)!important; line-height:1.35; }
.fleet-support-status { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; line-height:1.35; text-align:right; text-transform:uppercase; }
.fleet-source-group { display:grid; gap:6px; }
.fleet-source-group>h3 { margin:12px 2px 4px; }
.fleet-option[hidden],.fleet-source-group[hidden] { display:none; }
.reference-profile-pending { border:1px solid var(--line); margin-top:4px; }
.reference-profile-pending>summary { color:var(--muted); cursor:pointer; font-size:9px; font-weight:800; letter-spacing:.08em; padding:10px; text-transform:uppercase; }
.reference-profile-pending>div { display:grid; gap:6px; padding:0 6px 6px; }
.fleet-selector .fleet-quantity { display:grid; gap:4px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.fleet-selector .fleet-quantity input { width:100%; height:34px; border:1px solid var(--line); background:var(--panel); color:var(--paper); padding:4px 7px; font-size:13px; font-weight:700; }
.fleet-selector .fleet-quantity input:disabled { opacity:.42; cursor:not-allowed; }
.fleet-total { display:flex; align-items:baseline; justify-content:flex-end; gap:4px; margin:8px 4px 2px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.09em; }
.fleet-total strong { color:var(--cyan-soft); font-size:12px; }
.fleet-total.over-limit strong { color:var(--danger); }
html[data-theme="dark-metal"] .fleet-selector .fleet-option { background:#3d464b; }
html[data-theme="dark-metal"] .fleet-selector .fleet-option label { background:transparent; }
html[data-theme="dark-metal"] .fleet-selector .fleet-quantity input { background:#30383d; color:#fff; }
html[data-theme="metal"] .fleet-selector .fleet-option { background:#f8fafb; }
html[data-theme="metal"] .fleet-selector .fleet-option label { background:transparent; }
html[data-theme="metal"] .fleet-selector .fleet-quantity input { background:#fff; color:#17242c; }
.board-seeker circle { fill:#07131d; stroke-width:2; }
.board-seeker.red circle { stroke:#ff746d; }
.board-seeker.blue circle { stroke:#6cbcff; }
.board-fighter.red path,.board-seeker.red path { fill:#d95750; }
.board-fighter.blue path,.board-seeker.blue path { fill:#3988c9; }
.board-fighter text,.board-seeker text { fill:#f2f7f8; font-size:5px; font-weight:800; text-anchor:middle; paint-order:stroke; stroke:#03070a; stroke-width:1.5px; }
.board-fighter.activated { opacity:.55; }
.board-fighter.weapon-hit { filter:drop-shadow(0 0 9px #ff684f); }
.board-seeker.active { filter:drop-shadow(0 0 5px #ffb44b); }
.board-seeker.hidden-contact { opacity:.55; }
.board-seeker.hidden-contact path { fill:#89969d; }
.seeker-launch,.seeker-intercept { border-color:var(--amber) !important; }
.seeker-launch header small,.seeker-intercept header small { color:var(--amber); }
.command-field input { background:#06111a; color:#fff; border:1px solid var(--line); min-height:35px; padding:6px 9px; min-width:0; }
html[data-theme="dark-metal"] .command-field input { background:#30383d; color:#fff; }
html[data-theme="metal"] .command-field input { background:#fff; color:#17242c; }
.board-ship-tooltip { position:absolute; z-index:35; width:min(290px,calc(100% - 16px)); padding:13px 15px 12px; border:1px solid #6f95a6; border-left:4px solid #6cbcff; background:rgba(3,10,16,.96); color:#edf7fa; box-shadow:0 14px 34px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.06); pointer-events:none; backdrop-filter:blur(7px); }
.board-ship-tooltip[hidden] { display:none; }
.board-ship-tooltip[data-side="red"] { border-left-color:#ff746d; }
.board-ship-tooltip[data-side="blue"] { border-left-color:#6cbcff; }
.board-ship-tooltip header { padding-bottom:9px; border-bottom:1px solid rgba(143,178,192,.35); }
.board-ship-tooltip header span { display:block; margin-bottom:3px; color:#91aab5; font-size:8px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.board-ship-tooltip header strong { display:block; color:#fff; font-size:14px; line-height:1.25; }
.board-ship-tooltip dl { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:10px 0; }
.board-ship-tooltip dl>div { display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:7px; }
.board-ship-tooltip dt { color:#91aab5; font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.board-ship-tooltip dd { margin:0; color:#fff; font-size:13px; font-weight:900; }
.board-ship-tooltip footer { display:flex; flex-wrap:wrap; gap:5px; }
.board-ship-tooltip footer span { padding:4px 6px; border:1px solid rgba(143,178,192,.3); background:rgba(116,154,171,.12); color:#cbdce3; font-size:8px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.board-ship-tooltip footer .condition { color:#ffd385; border-color:rgba(242,180,79,.45); background:rgba(242,180,79,.12); }
.board-ship-tooltip footer .condition-undamaged { color:#a8e3c4; border-color:rgba(91,196,140,.5); background:rgba(91,196,140,.12); }
.board-ship-tooltip footer .condition-critical-damage,.board-ship-tooltip footer .condition-destroyed { color:#ffaaa5; border-color:rgba(255,116,109,.55); background:rgba(255,116,109,.14); }
.board-hex-occupants { margin:11px -15px -12px; padding:10px 15px 12px; border-top:1px solid rgba(143,178,192,.42); background:rgba(88,139,161,.1); }
.board-hex-occupants>div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:8px; }
.board-hex-occupants>div strong { color:#fff; font-size:10px; letter-spacing:.04em; }
.board-hex-occupants>div span { color:#91aab5; font-size:7px; font-weight:800; letter-spacing:.08em; text-align:right; text-transform:uppercase; }
.board-hex-occupants ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.board-hex-occupants li { display:grid; grid-template-columns:43px 1fr; align-items:center; gap:8px; min-width:0; padding:6px 7px; border:1px solid rgba(143,178,192,.24); background:rgba(3,10,16,.58); }
.board-hex-occupants li.red { border-left:3px solid #ff746d; }
.board-hex-occupants li.blue { border-left:3px solid #6cbcff; }
.board-hex-occupants li>span { color:#91aab5; font-size:7px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.board-hex-occupants li div { min-width:0; }
.board-hex-occupants li strong,.board-hex-occupants li small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.board-hex-occupants li strong { color:#edf7fa; font-size:9px; }
.board-hex-occupants li small { margin-top:1px; color:#9db3bc; font-size:8px; }
.button.small.bank-arc-button { height:42px; min-height:42px; }
.weapon-reference-dialog { width:min(1180px,calc(100% - 36px)); max-width:none; max-height:none; margin:auto; padding:0; overflow:hidden; border:1px solid var(--line); background:var(--panel); color:#e8f0f4; box-shadow:0 30px 100px rgba(0,0,0,.66); }
.weapon-reference-dialog::backdrop { background:rgba(2,7,11,.78); backdrop-filter:blur(4px); }
.weapon-reference-shell { height:min(860px,calc(100vh - 48px)); display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.weapon-reference-shell>header { min-height:88px; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); background:var(--panel-2); }
.weapon-reference-shell>header .eyebrow { margin-bottom:4px; }
.weapon-reference-shell>header h2 { margin:0; font-size:26px; }
.weapon-reference-close { width:42px; height:42px; flex:none; padding:0; border:1px solid var(--line); background:transparent; color:var(--muted); font-size:27px; line-height:1; }
.weapon-reference-close:hover,.weapon-reference-close:focus-visible { border-color:var(--cyan); color:var(--cyan); outline:0; }
.weapon-reference-body { padding:22px 24px 30px; overflow:auto; overscroll-behavior:contain; }
.weapon-reference-lede { max-width:820px; margin:0 0 18px; color:var(--muted); font-size:14px; line-height:1.55; }
.weapon-profile-guide { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 82%,transparent); }
.weapon-profile-guide>h3 { grid-column:1/-1; margin:0; padding:11px 14px; border-bottom:1px solid var(--line); color:var(--cyan); font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.weapon-profile-guide>div { min-width:0; padding:13px 14px; border-right:1px solid var(--line); }
.weapon-profile-guide>div:last-child { border-right:0; }
.weapon-profile-guide strong,.weapon-profile-guide span { display:block; }
.weapon-profile-guide strong { margin-bottom:5px; color:var(--cyan-soft); font-size:11px; }
.weapon-profile-guide span { color:var(--muted); font-size:10px; line-height:1.45; }
.weapon-reference-book { margin-top:26px; }
.weapon-reference-book>header { margin-bottom:10px; display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.weapon-reference-book>header h3 { margin:0; font-size:19px; }
.weapon-reference-book>header span { color:var(--amber); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.weapon-reference-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.weapon-reference-card { min-width:0; padding:15px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 78%,transparent); }
.weapon-reference-card>header { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-bottom:9px; border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent); }
.weapon-reference-card h4 { margin:0; color:var(--cyan-soft); font-size:14px; }
.weapon-reference-card>header span { flex:none; color:var(--amber); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.weapon-reference-card>p { min-height:58px; margin:11px 0; color:var(--muted); font-size:10px; line-height:1.5; }
.weapon-reference-card dl { display:grid; gap:6px; margin:0; }
.weapon-reference-card dl>div { display:grid; grid-template-columns:auto 1fr; gap:6px; align-items:baseline; }
.weapon-reference-card dt { color:var(--amber); font-size:8px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.weapon-reference-card dd { margin:0; color:var(--muted); font-size:9px; line-height:1.4; }
.weapon-reference-card .weapon-reference-no-traits { min-height:0; margin:0; padding-top:8px; border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent); font-size:9px; font-style:italic; }
.weapon-reference-shell>footer { min-height:68px; padding:12px 24px; display:flex; justify-content:flex-end; align-items:center; border-top:1px solid var(--line); background:var(--panel-2); }
html[data-theme="metal"] .weapon-reference-dialog { background:#eef1f2; color:#17242c; box-shadow:0 30px 80px rgba(43,53,59,.4); }
html[data-theme="metal"] .weapon-reference-dialog::backdrop { background:rgba(54,64,70,.62); }
@media (max-width:900px) { .weapon-profile-guide { grid-template-columns:1fr 1fr; }.weapon-profile-guide>div:nth-of-type(2) { border-right:0; }.weapon-profile-guide>div:nth-of-type(-n+2) { border-bottom:1px solid var(--line); }.weapon-reference-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .weapon-reference-dialog { width:calc(100% - 20px); }.weapon-reference-shell { height:calc(100vh - 20px); }.weapon-reference-shell>header,.weapon-reference-body,.weapon-reference-shell>footer { padding-left:15px; padding-right:15px; }.weapon-reference-shell>header h2 { font-size:20px; }.weapon-profile-guide,.weapon-reference-grid { grid-template-columns:1fr; }.weapon-profile-guide>div { border-right:0; border-bottom:1px solid var(--line); }.weapon-profile-guide>div:last-child { border-bottom:0; } }

.account-nav { display:flex; align-items:center; gap:14px; }
.account-nav form { margin:0; }
.account-nav .account-link { padding:0; border:0; background:transparent; color:var(--muted); font:inherit; font-weight:800; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.account-nav .account-link:hover,.account-nav .account-link:focus-visible { color:var(--cyan); }
.account-nav .account-name { color:var(--cyan-soft); }
.account-page { min-height:calc(100vh - 100px); padding:clamp(28px,6vw,86px) var(--page-pad); display:grid; place-items:start center; gap:24px; }
.account-panel { width:min(900px,100%); padding:clamp(24px,4vw,52px); border:1px solid var(--line); background:var(--panel); box-shadow:0 24px 70px rgba(0,0,0,.28); }
.account-archive-window { width:min(1320px,100%); }
.account-panel.compact { width:min(560px,100%); }
.account-panel>header { margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.account-panel>header h1 { margin:4px 0 8px; }
.account-panel>header p:last-child,.account-panel>footer { color:var(--muted); }
.account-profile-header,.account-archive-header { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.account-profile-header>div,.account-archive-header>div { min-width:0; }
.account-panel>footer { margin-top:24px; padding-top:18px; border-top:1px solid var(--line); }
.account-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.account-field-grid .field { align-content:start; }
.account-field-grid .field input { height:42px; min-height:42px; }
.account-form { display:grid; gap:20px; }
.account-form .field em { color:var(--muted); font-size:9px; font-style:normal; }
.account-section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px; }
.account-section-heading h2 { margin:3px 0 0; font-size:28px; }
.account-window-count { margin-left:auto; display:flex; align-items:baseline; gap:7px; color:var(--muted); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.account-window-count b { color:var(--cyan); font-size:24px; }
.account-record-groups { gap:12px; }
.account-record-groups .design-kind-panel>summary { min-height:70px; }
.account-record-groups .design-kind-panel>.design-grid { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.account-engagement-list { padding:0 18px 18px; border-top:1px solid var(--line); }
.account-record-empty { grid-column:1/-1; margin:0; padding:18px 5px; color:var(--muted); font-size:11px; }
.account-errors { margin-bottom:22px; padding:15px 18px; border:1px solid var(--danger); border-left-width:4px; color:var(--danger); }
.account-errors ul { margin:8px 0 0; padding-left:18px; }
.record-privacy-toggle { min-height:44px; padding:5px 10px; display:flex; align-items:center; gap:9px; border:1px solid var(--line); color:var(--muted); cursor:pointer; }
.record-privacy-toggle input,.record-privacy-choice input { width:18px; height:18px; accent-color:var(--cyan); }
.record-privacy-toggle span,.record-privacy-choice span { display:grid; gap:1px; }
.record-privacy-toggle strong,.record-privacy-choice strong { color:var(--paper); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.record-privacy-toggle small,.record-privacy-choice small { color:var(--muted); font-size:8px; }
.privacy-sign-in,.privacy-prompt { color:var(--muted); font-size:9px; }
.record-privacy-choice { padding:14px; display:flex; align-items:center; gap:12px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 75%,transparent); cursor:pointer; }
.record-owner { display:block; margin-top:8px; color:var(--muted); font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.read-only-notice { margin:0 var(--page-pad) 14px; padding:12px 15px; border:1px solid var(--amber); border-left-width:4px; color:var(--muted); }
.read-only-notice strong { margin-right:8px; color:var(--amber); letter-spacing:.08em; text-transform:uppercase; }
.game-page.is-read-only .command-panel { pointer-events:none; opacity:.72; }
html[data-theme="metal"] .account-panel { background:#edf1f2; box-shadow:0 24px 60px rgba(45,56,62,.22); }
html[data-theme="metal"] .record-privacy-toggle strong,html[data-theme="metal"] .record-privacy-choice strong { color:#17242c; }
.board-unit-selection,.board-target-reticle { pointer-events:none; }
.board-hex.stacking-legal { fill:rgba(101,220,234,.12); stroke:var(--cyan); stroke-width:1.5; cursor:pointer; }
.board-hex.stacking-selected { fill:rgba(101,220,234,.32); stroke:#fff; stroke-width:2.4; filter:drop-shadow(0 0 5px rgba(101,220,234,.8)); }
.board-ship text.stacked-label { font-size:4.7px; }
.board-ship text.stacked-label.start { text-anchor:start; }.board-ship text.stacked-label.end { text-anchor:end; }
.artifact-carrier-badge { pointer-events:none; filter:drop-shadow(0 0 4px rgba(245,203,105,.95)); }
.artifact-objective-status { margin:0 0 18px; padding:11px 13px; display:grid; gap:3px; border:1px solid color-mix(in srgb,var(--amber) 68%,var(--line)); border-left:4px solid var(--amber); background:color-mix(in srgb,var(--amber) 9%,var(--panel-2)); }
.artifact-objective-status>span { color:var(--amber); font-size:8px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }.artifact-objective-status>strong { color:var(--ink); font-size:14px; }.artifact-objective-status>small { color:var(--muted); font-size:9px; line-height:1.4; text-transform:capitalize; }
.artifact-objective-status.aboard.red { border-left-color:#ff746d; }.artifact-objective-status.aboard.blue { border-left-color:#6cbcff; }.board-ship-tooltip footer .artifact-aboard { color:#ffe3a1; border-color:rgba(245,203,105,.62); background:rgba(245,203,105,.14); }
.restoration-decision>p:not(.eyebrow) { color:var(--muted); font-size:11px; line-height:1.55; }.restoration-decision section { margin:16px 0; padding:12px; border:1px solid var(--line); background:var(--panel-2); }.restoration-decision h3 { margin:0 0 9px; color:var(--muted); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }.restoration-decision section>p { color:var(--muted); font-size:9px; }.restoration-rolls { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:10px; border:1px solid var(--line); }.restoration-rolls>span { margin-right:auto; color:var(--muted); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }.restoration-rolls b { width:30px; height:30px; display:grid; place-items:center; background:var(--paper); color:#111; }.restoration-rolls em { color:var(--cyan); font-size:9px; font-style:normal; font-weight:800; }.restoration-fixed,.restoration-tracks { display:flex; flex-wrap:wrap; gap:7px; }.restoration-fixed>span,.restoration-tracks label { padding:7px 9px; border:1px solid var(--line); color:var(--paper); font-size:9px; font-weight:800; text-transform:capitalize; }.restoration-fixed>span { border-color:var(--success); color:var(--success); }.restoration-tracks input,.restoration-system-options input { accent-color:var(--cyan); }.restoration-allocation { display:grid; gap:7px; }.restoration-allocation label { display:grid; grid-template-columns:minmax(0,1fr) 60px; align-items:center; gap:4px 8px; color:var(--paper); font-size:10px; text-transform:capitalize; }.restoration-allocation input { width:60px; min-height:34px; padding:5px 7px; border:1px solid var(--line); background:#06111a; color:#fff; }.restoration-allocation small { grid-column:1/-1; color:var(--muted); font-size:8px; }.restoration-system-options { display:grid; gap:6px; }.restoration-system-options label { padding:7px 9px; display:flex; align-items:center; gap:9px; border:1px solid var(--line); }.restoration-system-options label>span { display:grid; gap:2px; }.restoration-system-options strong { color:var(--paper); font-size:9px; }.restoration-system-options small { color:var(--muted); font-size:8px; text-transform:capitalize; }.end-phase-effect.restoration { border-color:color-mix(in srgb,var(--success) 70%,var(--line)); background:color-mix(in srgb,var(--success) 9%,var(--panel-2)); }.end-phase-effect.restoration .end-phase-effect-icon { border-color:var(--success); color:var(--success); box-shadow:0 0 12px color-mix(in srgb,var(--success) 28%,transparent); }
html[data-theme="metal"] .restoration-allocation input { background:#fff; color:#17242c; }html[data-theme="metal"] .restoration-fixed>span,html[data-theme="metal"] .restoration-tracks label,html[data-theme="metal"] .restoration-allocation label,html[data-theme="metal"] .restoration-system-options strong { color:#17242c; }
.stacking-resolution>p:not(.eyebrow) { color:var(--muted); font-size:11px; line-height:1.55; }
.stacking-rolls { display:grid; gap:7px; margin:16px 0; }
.stacking-roll { padding:10px; border:1px solid var(--line); border-left:4px solid var(--muted); background:var(--panel-2); }
.stacking-roll.red { border-left-color:#ff746d; }.stacking-roll.blue { border-left-color:#6cbcff; }
.stacking-roll header,.stacking-roll>div { display:flex; align-items:center; gap:7px; }.stacking-roll header { justify-content:space-between; margin-bottom:7px; }
.stacking-roll header strong { font-size:10px; }.stacking-roll em { color:var(--cyan); font-size:8px; font-style:normal; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.stacking-roll b { width:30px; height:30px; display:grid; place-items:center; background:var(--paper); color:#111; }.stacking-roll>div span { color:var(--muted); font-size:9px; }.stacking-roll>div>strong { margin-left:auto; color:var(--cyan); font-size:15px; }.stacking-roll small { display:block; margin-top:5px; color:var(--amber); font-size:8px; }
.stacking-resolution>section { display:grid; gap:4px; padding:11px 13px; border-left:4px solid var(--cyan); background:color-mix(in srgb,var(--cyan) 9%,var(--panel-2)); }.stacking-resolution>section span { color:var(--cyan); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }.stacking-resolution>section strong { font-size:15px; }.stacking-resolution>section small { color:var(--muted); font-size:9px; line-height:1.45; }
@media (max-width:800px) { .account-field-grid { grid-template-columns:1fr; }.account-field-grid>span { display:none; }.account-profile-header,.account-archive-header,.account-section-heading { align-items:stretch; flex-direction:column; }.account-window-count { margin-left:0; }.account-record-groups .design-kind-panel>.design-grid { grid-template-columns:1fr; }.account-nav { gap:8px; }.account-nav a,.account-nav .account-link { font-size:8px; } }
.ssd-damage span.action-point-loss { text-decoration:underline 3px; text-underline-offset:2px; }
.ssd-damage span.ap-cost-1 { background:#d2d2d2; }.ssd-damage span.ap-cost-2 { background:#777; color:#fff; }.ssd-damage span.ap-cost-3 { background:#111; color:#fff; }
.ssd-weapon-body tr.requires-action-points { background:#d4d8d7; font-weight:800; }
.combat-ap-readout { margin:0 0 12px; padding:8px 11px; border-left:3px solid var(--cyan); background:color-mix(in srgb,var(--cyan) 9%,var(--panel-2)); color:var(--muted); font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.combat-ap-readout strong { margin-right:3px; color:var(--cyan); font-size:17px; }
.point-defense-attack { border-left:3px solid var(--cyan); }
.engine-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.engine-primary-field { min-width:0; padding:15px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 72%,transparent); }
.engine-primary-field>small { min-height:14px; }
.engine-ap-settings { grid-column:1/-1; min-width:0; border:1px solid color-mix(in srgb,var(--cyan) 52%,var(--line)); background:color-mix(in srgb,var(--cyan) 5%,var(--panel-2)); }
.engine-ap-settings>header { min-height:60px; padding:12px 15px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); }
.engine-ap-settings>header .eyebrow { margin:0 0 3px; font-size:8px; }
.engine-ap-settings>header h3 { margin:0; color:var(--cyan-soft); font-size:14px; }
.engine-ap-settings>header>small { flex:none; color:var(--amber); font-size:9px; font-weight:800; }
.engine-ap-layout { padding:14px 15px 15px; display:grid; grid-template-columns:minmax(220px,.85fr) minmax(0,2fr); align-items:start; gap:18px; }
.engine-ap-explanation { color:var(--muted); font-size:10px; line-height:1.5; }
.engine-ap-explanation>p { margin:0; }
.engine-ap-warning { margin-top:9px!important; padding:8px 9px; border-left:3px solid var(--amber); background:color-mix(in srgb,var(--amber) 8%,transparent); }
.engine-ap-warning strong { display:block; color:var(--amber); font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.engine-ap-levels { min-width:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.engine-ap-levels label { min-width:0; padding:8px; display:grid; grid-template-columns:minmax(50px,auto) minmax(0,1fr); align-items:center; gap:8px; border:1px solid var(--line); background:var(--panel); color:var(--muted); }
.engine-ap-levels label>span { display:grid; gap:2px; }
.engine-ap-levels label strong { color:var(--cyan-soft); font-size:10px; }
.engine-ap-levels label small { font-size:7px; letter-spacing:.05em; text-transform:uppercase; }
.engine-ap-levels input { width:100%; min-width:0; min-height:38px; padding:7px 8px; border:1px solid var(--line); background:#07131d; color:#eaf2f5; font-size:14px; font-weight:800; outline:none; }
.engine-ap-levels input:focus { border-color:var(--cyan); }
.engine-ap-levels input[readonly] { border-style:dashed; color:var(--muted); cursor:not-allowed; }
html[data-theme="dark-metal"] .engine-ap-levels input { background:#30383d; color:#f3f6f7; }
html[data-theme="metal"] .engine-ap-levels input { background:#fbfcfc; color:#17242c; }
@media (max-width:980px) { .engine-ap-layout { grid-template-columns:1fr; }.engine-ap-levels { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:700px) { .engine-settings-grid,.engine-ap-levels { grid-template-columns:1fr 1fr; }.engine-ap-settings>header { align-items:flex-start; flex-direction:column; gap:5px; } }
@media (max-width:460px) { .engine-settings-grid,.engine-ap-levels { grid-template-columns:1fr; } }
.faction-system-choice { min-width:0; display:grid; grid-template-columns:20px minmax(0,1fr); align-items:start; gap:9px; padding:10px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 78%,transparent); color:inherit; }.faction-system-choice>input { width:16px; height:16px; margin-top:2px; accent-color:var(--cyan); }.faction-system-copy { min-width:0; display:grid; gap:4px; }.faction-system-title { min-width:0; display:flex; align-items:center; gap:6px; }.faction-system-title>label { min-width:0; font-size:11px; font-weight:800; line-height:1.25; cursor:pointer; }.faction-system-copy>small { display:block; color:var(--muted); font-size:8px; line-height:1.35; }.faction-system-choice:nth-child(3n) .system-help>[role="tooltip"] { right:0; left:auto; }
.faction-dp-cost { margin-left:auto; color:var(--amber); font-size:8px; font-style:normal; font-weight:900; white-space:nowrap; }.faction-weapon-limits { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; }.faction-access-choice { min-width:0; min-height:68px; padding:11px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:9px; border:1px solid var(--line); background:color-mix(in srgb,var(--panel-2) 78%,transparent); cursor:pointer; }.faction-access-choice:hover { border-color:var(--cyan); }.faction-access-choice:has(input:checked) { border-color:var(--cyan); box-shadow:inset 3px 0 var(--cyan); }.faction-access-choice>input { width:16px; height:16px; margin:2px 0 0; accent-color:var(--cyan); }.faction-access-choice>span { min-width:0; display:grid; gap:4px; }.faction-access-choice strong { font-size:10px; line-height:1.3; }.faction-access-choice small { color:var(--muted); font-size:8px; line-height:1.35; }.faction-access-choice>em { color:var(--amber); font-size:8px; font-style:normal; font-weight:900; white-space:nowrap; }.faction-access-columns { padding:20px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }.faction-access-columns>section { min-width:0; }.faction-access-list { display:grid; gap:8px; }.faction-custom-flight-count { min-height:68px; padding:11px; border:1px solid var(--line); }.faction-custom-flight-count>input { min-height:36px; }.development-ledger { margin-top:16px; border:1px solid var(--line); }.development-ledger>header { padding:9px 11px; display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line); background:var(--panel-2); text-transform:uppercase; }.development-ledger>header span { color:var(--cyan); font-size:9px; font-weight:900; letter-spacing:.1em; }.development-ledger>header small { color:var(--muted); font-size:7px; }.development-ledger p { margin:0; padding:8px 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; }.development-ledger p+p { border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent); }.development-ledger p>span { min-width:0; font-size:9px; }.development-ledger p>span small { display:block; color:var(--muted); font-size:7px; text-transform:uppercase; }.development-ledger p>strong { color:var(--amber); font-size:9px; white-space:nowrap; }.development-ledger p>strong.refund { color:var(--success); }.development-ledger p.empty { color:var(--muted); font-size:9px; }
@media (max-width:980px) { .faction-system-choice:nth-child(3n) .system-help>[role="tooltip"] { right:auto; left:0; }.faction-system-choice:nth-child(2n) .system-help>[role="tooltip"] { right:0; left:auto; } }
@media (max-width:980px) { .faction-weapon-limits { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .faction-system-choice:nth-child(2n) .system-help>[role="tooltip"] { right:auto; left:0; }.faction-weapon-limits,.faction-access-columns { grid-template-columns:1fr; } }
@media (max-width:980px) { .field-grid.faction-development-grid { grid-template-columns:minmax(0,2fr) minmax(220px,1fr); } }
@media (max-width:620px) { .field-grid.faction-development-grid { grid-template-columns:1fr; }.faction-technology-fields { grid-template-columns:1fr; } }

/* Shipyard launch controls */
.hero-actions { gap:10px; }
.hero-actions .hero-action { --action-accent:var(--cyan); position:relative; isolation:isolate; min-width:0; min-height:82px; padding:13px 14px 12px 17px; justify-content:flex-start; overflow:hidden; border-color:var(--line); background:#06111a; box-shadow:0 7px 18px rgba(0,0,0,.18); color:#f1f6f8; text-align:left; }
.hero-actions .hero-action::before { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(5,13,21,.98) 0%,rgba(5,13,21,.94) 48%,rgba(5,13,21,.62) 70%,rgba(5,13,21,.08) 100%); }
.hero-actions .hero-action::after { content:""; position:absolute; z-index:3; inset:0 auto 0 0; width:3px; background:var(--action-accent); }
.hero-action-copy { width:72%; min-width:0; display:grid; gap:2px; position:relative; z-index:2; }
.hero-action-copy small { color:var(--action-accent); font:800 7px/1.2 ui-monospace,"SFMono-Regular",Consolas,monospace; letter-spacing:.16em; white-space:nowrap; }
.hero-action-copy strong { overflow-wrap:anywhere; color:inherit; font-size:12px; line-height:1.2; letter-spacing:.09em; }
.hero-action-copy>span { color:#a6b5bd; font-size:8px; font-weight:600; line-height:1.3; letter-spacing:.02em; text-transform:none; }
.hero-action-art { width:100%; height:100%; position:absolute; z-index:0; inset:0; object-fit:cover; object-position:center; transition:filter .24s ease,transform .35s ease; }
.hero-actions .hero-action-weapon { --action-accent:var(--amber); }
.hero-actions .hero-action-fighter { --action-accent:#78a9ff; }
.hero-actions .hero-action-faction { --action-accent:#c48cff; }
.hero-actions .hero-action:hover,.hero-actions .hero-action:focus-visible { border-color:var(--action-accent); background:#06111a; color:#fff; box-shadow:0 11px 24px rgba(0,0,0,.24); outline:0; transform:translateY(-2px); }
.hero-actions .hero-action:hover .hero-action-art,.hero-actions .hero-action:focus-visible .hero-action-art { filter:brightness(1.12) saturate(1.08); transform:scale(1.035); }
html[data-theme="dark-metal"] .hero-actions .hero-action::before { background:linear-gradient(90deg,rgba(45,52,56,.98) 0%,rgba(45,52,56,.94) 48%,rgba(45,52,56,.6) 70%,rgba(45,52,56,.06) 100%); }
html[data-theme="metal"] .hero-actions .hero-action { background:#edf1f2; color:#17242c; box-shadow:0 7px 18px rgba(45,56,62,.14); }
html[data-theme="metal"] .hero-actions .hero-action::before { background:linear-gradient(90deg,rgba(242,246,247,.99) 0%,rgba(242,246,247,.97) 48%,rgba(242,246,247,.76) 70%,rgba(242,246,247,.08) 100%); }
html[data-theme="metal"] .hero-action-copy>span { color:#5c6b73; }
html[data-theme="metal"] .hero-actions .hero-action:hover,html[data-theme="metal"] .hero-actions .hero-action:focus-visible { background:#edf1f2; color:#17242c; box-shadow:0 11px 24px rgba(45,56,62,.2); }
@media (prefers-reduced-motion:reduce) { .hero-actions .hero-action,.hero-action-art { transition:none; } }
