*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#080e1b;color:#e4edf9;font:14px system-ui,sans-serif}button{font:inherit;cursor:pointer;color:inherit;background:#121f32;border:1px solid #2a3c54;border-radius:7px;min-height:44px;padding:8px 13px}button:hover{border-color:#65d9ed}button:disabled{opacity:.35;cursor:default}header{height:82px;padding:16px 25px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #243147}.brand{letter-spacing:3px;font-size:17px}.brand b{color:#6ddbec}.brand small{display:block;font-size:8px;letter-spacing:3.6px;color:#7186a4;margin:5px 0 0 29px}.mark{color:#73e7ed;font-size:27px;vertical-align:middle}.status{margin-left:auto;margin-right:20px;text-align:right}.status span{display:block;font-size:10px;letter-spacing:2px;color:#7b92b0}.status strong{display:block;margin-top:5px;font-size:13px}main{height:calc(100% - 82px);display:grid;grid-template-columns:1fr 310px;gap:0}.space{position:relative;min-width:0;background:radial-gradient(ellipse at 38% 50%,#15243a 0%,#090f1d 70%)}canvas{width:100%;height:100%;display:block;touch-action:none}.board-tag{position:absolute;top:22px;left:24px;font-size:11px;letter-spacing:2px;color:#9aacc5;pointer-events:none}.board-tag span{display:block;font-size:8px;margin-top:7px;color:#526581}.legend{position:absolute;bottom:17px;left:24px;font-size:8px;letter-spacing:1px;color:#8fa3bd;pointer-events:none}.legend i{display:inline-block;width:6px;height:6px;background:#6de0f0;border-radius:50%;margin-right:6px}.legend .red{background:#f5797f;margin-left:16px}.legend span{margin-left:22px;color:#51637d}aside{background:#0c1423;border-left:1px solid #243147;padding:22px 18px;overflow-y:auto}.eyebrow,.log-heading{font-size:9px;letter-spacing:1.7px;color:#8195b1}.eyebrow span{float:right;color:#60d5de}#roster{display:flex;gap:8px;margin-top:17px}.ship-card{flex:1;text-align:left;padding:10px;font-size:12px}.ship-card.active{border-color:#68dbea;background:#142c3d}.ship-card small{display:block;font-size:9px;color:#87a3bf;margin-top:7px}.ship-card em{font-size:10px;color:#6ee1e1;font-style:normal}.order-heading{margin-top:24px}.order-heading h2{font-weight:500;margin:0 0 6px;font-size:23px}.order-heading span{color:#8293ac;letter-spacing:1.6px;font-size:8px}#moves{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}#moves button{font-size:9px;padding:7px 3px}#moves b{display:block;font-size:24px;font-weight:400;margin-bottom:4px}#moves button.active{border-color:#6de0ec;color:#8aeaf3;background:#163447}#hint{font-size:10px;line-height:1.5;color:#8fa2bc;min-height:30px}.primary{width:100%;background:#72dfe9;color:#071824;font-size:10px;font-weight:800;letter-spacing:1px;border:none}.primary span{float:right;font-size:15px}.log-heading{border-top:1px solid #243147;margin-top:22px;padding-top:18px}#log{font-size:11px;color:#91a9c6;line-height:1.7;margin-top:10px;max-height:160px;overflow:auto}#log p{margin:0 0 6px}#banner{position:absolute;top:40%;left:20%;right:20%;text-align:center;padding:25px;background:#0a192bea;border:1px solid #6de0ec;font-size:28px;letter-spacing:4px}#banner small{display:block;font-size:11px;letter-spacing:0;margin-top:12px}dialog{max-width:520px;background:#111e31;color:#dbe8f8;border:1px solid #456079;border-radius:12px;padding:28px;font-size:13px;line-height:1.7}dialog::backdrop{background:#020815ce}dialog h2{font-size:25px;font-weight:500}dialog li{padding-bottom:8px}@media(max-height:550px){header{height:57px;padding:8px 16px}.brand{font-size:13px}.brand small{display:none}main{height:calc(100% - 57px);grid-template-columns:1fr 248px}aside{padding:12px}.order-heading{margin-top:12px}.order-heading h2{font-size:18px}#roster{margin-top:9px}#moves{margin-top:8px;gap:4px}#moves b{font-size:18px}#moves button{min-height:43px;padding:3px}.log-heading{margin-top:12px;padding-top:10px}#hint{margin:7px 0;min-height:0}.board-tag{top:12px;left:14px}.legend{bottom:9px;left:14px}.legend span{display:none}}@media(max-width:600px) and (orientation:portrait){main{grid-template-columns:1fr;grid-template-rows:48% 52%}header{height:64px;padding:10px;gap:7px}main{height:calc(100% - 64px)}.brand{font-size:11px;letter-spacing:1px}.brand small,.status strong{display:none}.status{margin-right:0}.status span{font-size:8px}header button{padding:7px;font-size:10px}aside{padding:12px}#roster{margin-top:8px}.order-heading{margin-top:10px}#moves{grid-template-columns:repeat(7,1fr);gap:4px}#moves button{font-size:8px}#moves b{font-size:20px}.log-heading{margin-top:12px}}
main{min-height:0;grid-template-rows:minmax(0,1fr)}.space,aside{min-height:0}.space{overflow:hidden}
button:focus-visible{outline:2px solid #ffe28c;outline-offset:3px}
@media(min-width:1100px) and (min-height:650px){
 main{grid-template-columns:minmax(0,1fr) 360px}
 aside{padding:24px;display:flex;flex-direction:column}
 aside>*{flex-shrink:0}
 .eyebrow,.log-heading{font-size:11px}
 .ship-card{font-size:15px;padding:13px}
 .ship-card small{font-size:11px}
 #moves button{font-size:12px;min-height:70px}
 .order-heading span{font-size:10px}
 .target-card{font-size:15px;padding:12px}
 .target-card small,#shotPreview,#hint{font-size:12px}
 .primary{font-size:12px;min-height:48px}
 #log{font-size:13px;flex:1;min-height:100px;max-height:none}
 .legend{font-size:10px}
}
[hidden]{display:none!important}.target-card{width:100%;text-align:left;margin-top:7px;padding:9px 11px}.target-card small{display:block;font-size:10px;margin-top:4px;color:#9db5d0}.target-card.active{border-color:#ffe28c;background:#342f24}.target-card.active strong{color:#ffe28c}#shotPreview{font-size:11px;line-height:1.5;color:#a8c7e5;margin:10px 0}.combat-actions{display:flex;gap:8px}.combat-actions .primary{flex:1;width:auto}.combat-actions button{min-height:44px}#targets{margin-top:10px}
@media(max-height:550px){#targets{display:flex;gap:6px;margin-top:5px}.target-card{padding:7px;margin-top:0;min-width:0;flex:1;font-size:11px}.target-card small{font-size:8px}#shotPreview{margin:7px 0;font-size:10px}}
@media(max-width:600px) and (orientation:portrait){main{grid-template-rows:48% 52%}}
@media(max-height:550px){#moves{grid-template-columns:repeat(4,1fr)}.order-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.order-heading h2{margin:0}.order-heading span{font-size:7px}.ship-card{padding:7px}.ship-card small{margin-top:4px}#hint{font-size:9px}.primary{min-height:44px}.log-heading{margin-top:12px}}
.preset-label{display:block;font-size:10px;color:#9db5d0;margin-top:12px}.preset-label select{display:block;width:100%;margin-top:5px}select,input{background:#15243a;color:#e4edf9;border:1px solid #456079;border-radius:6px;padding:10px;min-height:44px}#library{width:min(850px,94vw);max-width:850px;max-height:90vh}#library pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}#catalogResults details{padding:10px;border-bottom:1px solid #456079}#catalogResults{max-height:45vh;overflow:auto}.catalog-controls{display:flex;gap:8px;flex-wrap:wrap}summary{cursor:pointer}#closeLibrary{margin-top:14px}@media(max-height:550px){.preset-label{margin-top:6px}.preset-label select{padding:4px;min-height:32px}header button{font-size:10px;padding:6px}.brand{letter-spacing:1px}}

.card-image{display:block;width:100%;max-width:480px;height:auto;margin:8px auto}#catalogResults figure{margin:12px 0}#catalogResults figcaption{font-size:11px;color:#9db5d0}
#moves{display:block}#moves .open-dial{width:100%;display:flex;align-items:center;gap:15px;text-align:left;padding:12px;white-space:pre-line;font-size:12px;line-height:1.6;min-height:88px}
.dial-face{display:grid;place-items:center;flex:0 0 58px;height:58px;border-radius:50%;border:5px double #64c9d7;background:radial-gradient(circle,#263b53,#070e1b);font-size:30px;color:#8debf3;box-shadow:0 0 0 3px #070f1c,0 0 15px #4cd5e622}
#maneuverDial{width:430px;max-width:96vw;max-height:94vh;padding:20px;overflow:auto}.dial-heading{text-align:center}.dial-heading>span,.dial-center>span{font-size:9px;letter-spacing:2px;color:#8fa9c5}.dial-heading h2{font-size:23px;margin:3px 0}.dial-heading p{font-size:10px;color:#a8c5df;margin:0 0 15px}
.dial-wheel{position:relative;width:min(360px,80vw);height:min(360px,80vw);margin:auto;border:7px double #597086;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffffff08 0deg 1deg,transparent 1deg 10deg),radial-gradient(circle,#152a3e 0 35%,#080f1d 36% 65%,#23384c 66%);box-shadow:0 10px 30px #0008,inset 0 0 0 4px #080f1d}
#dialButtons{position:absolute;inset:0}.dial-center{position:absolute;inset:31%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;pointer-events:none;line-height:1.35}.dial-center strong{font-size:17px;color:#eef8ff;margin:9px 0}.dial-center small{font-size:10px;color:#aec8dd}.dial-center>span{font-size:7px;letter-spacing:1px}
.dial-move{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#101b2c;border:1px solid #506477;line-height:1}.dial-move b{font-size:23px;font-weight:400}.dial-move span{font-size:11px;font-weight:700}.dial-move.difficulty-B{color:#73d9ff}.dial-move.difficulty-R{color:#ff8a95}.dial-move.difficulty-W{color:#eef5ff}.dial-move.chosen{border:2px solid #ffe49a;box-shadow:0 0 10px #ffe49a77;background:#34424b}.dial-move:disabled{opacity:.3}.dial-legend{font-size:11px;text-align:center;color:#a7bed5;line-height:1.7}.dial-actions{display:flex;gap:12px}.dial-actions .primary{flex:1}
@media(max-width:380px){#maneuverDial{padding:12px}.dial-wheel{width:310px;height:310px;max-width:86vw;max-height:86vw}.dial-move{width:40px;height:40px;min-height:40px}.dial-center strong{font-size:14px}}

/* Rebel flight console: shared by the browser and Android editions. */
:root{--amber:#f2c46d;--ice:#8ae4ed;--edge:#3b4248;--panel:#171d23}
html,body{background:#080b10;color:#e9e8df;font-family:'Segoe UI',system-ui,sans-serif}
header{background:linear-gradient(180deg,#252b30,#12171c);border-bottom:3px solid #88724a;box-shadow:0 4px 18px #0008;position:relative;z-index:1}
.brand{font-weight:800;letter-spacing:4px;color:#f4e9d0}.brand b{color:var(--amber)}.brand small{color:#b9b3a5;letter-spacing:2.2px}.mark{color:var(--amber);text-shadow:0 0 16px #f5bd6560}.status span{color:var(--amber)}.status strong{color:#d8e6e9}
button{border-radius:3px;background:linear-gradient(#273139,#192127);border-color:#4a565f;transition:border-color .15s,background .15s}button:hover:not(:disabled){border-color:var(--amber);background:#344047}button:disabled{opacity:.45}
header button{font-size:11px;letter-spacing:.6px}#help{border-radius:50%;width:44px;padding:0}
main{grid-template-columns:minmax(0,1fr) 340px}.space{background:radial-gradient(ellipse at 30% 40%,#172d3d 0%,#0b1520 45%,#05080d 90%);box-shadow:inset 0 0 75px #000}
.space:after{content:'';position:absolute;inset:10px;border:1px solid #9db4c51c;pointer-events:none;clip-path:polygon(0 0,25% 0,25% 1%,1% 1%,1% 99%,25% 99%,25% 100%,0 100%,0 0,100% 0,100% 100%,75% 100%,75% 99%,99% 99%,99% 1%,75% 1%,75% 0)}
.board-tag{color:#edcc8c;border-left:3px solid var(--amber);padding:4px 12px;font-weight:600}.board-tag span{color:#9badbb;font-weight:400;letter-spacing:1.4px}.legend{color:#b0c3cc}.legend span{color:#98acba}
aside{background:linear-gradient(100deg,#20262c,#131a20 70%);border-left:4px ridge #51575b;padding:20px;box-shadow:-8px 0 24px #0005}.eyebrow,.log-heading{color:var(--amber);font-weight:600;letter-spacing:2px}.eyebrow span{color:var(--ice)}
.preset-label{color:#a9b9c2;font-size:9px;letter-spacing:1.5px}select,input{border-radius:2px;border-color:#46525c;background:#0b131b;color:#e6edf0;font:12px 'Segoe UI',sans-serif}
.ship-card{position:relative;border-top:3px solid #66737d;background:#131d25;border-radius:2px}.ship-card.active{border-color:var(--amber);background:linear-gradient(135deg,#3c3527,#1f282c);box-shadow:inset 0 0 18px #edc06c09}.ship-card small{color:#b2c4ce;letter-spacing:.4px}.ship-card em{color:var(--amber)}
.console-strip{display:flex;align-items:center;gap:5px;margin:14px 0 0}.console-strip i{height:5px;width:15px;background:#80d9d6;box-shadow:0 0 6px #80d9d644}.console-strip i:nth-child(2){background:#f2c46d}.console-strip i:nth-child(3){background:#49555d;box-shadow:none}.console-strip span{margin-left:auto;font:8px monospace;letter-spacing:1.2px;color:#a3b6bf}
.order-heading{margin-top:20px}.order-heading h2{color:#f5ead4;font-size:26px;font-weight:600;letter-spacing:.5px}.order-heading span{color:#9eb5c2}
#moves .open-dial{background:linear-gradient(120deg,#132a35,#101a22);border-color:#4f7988;border-left:3px solid var(--ice)}.dial-face{border-color:#a6dce4;color:#e5f7f9;background:repeating-conic-gradient(#628490 0deg 2deg,#172e3a 2deg 30deg);box-shadow:0 0 0 3px #080e14,inset 0 0 15px #000}
.primary{background:linear-gradient(#f6d48f,#d7a951);color:#19180f;border:1px solid #ffe3a5;box-shadow:0 3px 0 #665333;letter-spacing:1.3px}.primary:hover:not(:disabled){background:#ffe0a0;color:#17160f;border-color:#fff0bd}.primary:disabled{background:#6f6652;color:#ddd7c9;box-shadow:none}
#hint{color:#b1c1ca}#log{color:#a9c8d1;font-family:Consolas,monospace;font-size:11px;line-height:1.65;border-left:2px solid #405660;padding-left:10px}.log-heading{border-color:#465159}#log p{padding-bottom:5px;border-bottom:1px solid #ffffff08}
.archive-preview{display:flex;align-items:center;gap:12px;width:100%;text-align:left;margin-top:16px;min-height:90px;padding:8px;background:#0b141c;overflow:hidden;flex-shrink:0}.archive-preview img{width:48px;height:68px;object-fit:contain;transform:rotate(-5deg);box-shadow:0 3px 8px #000}.archive-preview>span{display:grid;gap:5px}.archive-preview small{font-size:8px;letter-spacing:1.8px;color:var(--amber)}.archive-preview strong{font-size:14px;font-weight:600}.archive-preview span span{font-size:10px;color:#a6c0cc}
dialog{border-radius:4px;background:linear-gradient(135deg,#232d35,#101a23);border:1px solid #8c815f;border-top:4px solid var(--amber);box-shadow:0 20px 80px #000a}dialog h2{color:#f5d99d}dialog::backdrop{background:#02070dd9;backdrop-filter:blur(5px)}.dial-wheel{border-color:#8e989c}.dial-heading>span{color:var(--amber)}.target-card.active{border-color:var(--amber)}#banner{background:#111c25f5;border-color:var(--amber);color:#ffe0a0}
@media(min-width:1100px) and (min-height:650px){main{grid-template-columns:minmax(0,1fr) 360px}#log{min-height:55px}.archive-preview{margin-top:12px}}
@media(max-height:650px){.archive-preview{display:none}.console-strip{margin-top:9px}.order-heading{margin-top:12px}}
@media(max-height:550px){main{grid-template-columns:minmax(0,1fr) 260px}aside{padding:12px}.order-heading h2{font-size:18px}.console-strip{display:none}}
@media(max-width:600px) and (orientation:portrait){main{grid-template-columns:1fr;grid-template-rows:48% 52%}aside{border-left:0;border-top:3px ridge #51575b;padding:12px}.brand{letter-spacing:1px}.archive-preview{display:none}.console-strip{display:none}.order-heading h2{font-size:20px}.board-tag{font-size:9px;top:14px;left:14px}.legend{left:14px}.legend span{display:none}header{gap:6px}header button{font-size:9px;padding:6px}#help{width:32px;min-width:32px}}
.loadout-panel{margin-top:12px;border:1px solid #526572;padding:10px;background:#0b151c;font-size:11px}.loadout-panel summary{color:#f2c46d;font-weight:600}.loadout-panel label{display:block;margin-top:8px;color:#b9cbd5}.loadout-panel select{display:block;width:100%;margin-top:4px}.loadout-note,#loadoutInfo{font-size:11px;line-height:1.5;color:#a9c3cf}
/* Board-first responsive layout: cards below, actions anchored to the ship. */
html,body{height:100%;height:100dvh;min-width:280px}body{display:flex;flex-direction:column}header{flex:0 0 66px;height:66px;padding:10px 18px}.brand{font-size:14px}main{flex:1;height:auto!important;min-height:0;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(140px,1fr) auto!important}.space{min-height:0;position:relative}.board-tag{top:10px;left:15px;font-size:9px}.board-tag span{font-size:7px}.legend{bottom:8px;left:15px;font-size:8px}.squad-dock{display:grid;grid-template-columns:210px minmax(220px,1fr) minmax(250px,340px);gap:16px;padding:12px 18px;background:linear-gradient(#202830,#10171d);border-top:3px solid #88724a;max-height:34dvh;overflow:auto;align-items:start}.dock-command{display:grid;gap:8px}.dock-command .preset-label{margin:0}.dock-command select{margin-top:3px;width:100%;min-height:36px;padding:6px}.dock-command .primary{font-size:10px;min-height:44px}.dock-cards #roster{margin:0}.ship-card{min-width:100px}.ship-card small{margin-top:4px}.dock-cards #hint{margin:8px 0 0;min-height:0;font-size:11px}.squad-dock .loadout-panel{margin:0;padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;font-size:10px}.loadout-panel>strong,.loadout-panel>p,.loadout-panel>small{grid-column:1/-1}.loadout-panel label{margin:0}.loadout-panel select{font-size:11px;min-height:36px;padding:5px}.loadout-panel p{margin:0;font-size:10px}.loadout-panel small{color:#a9bcc7}.dock-log{grid-column:1/-1;font-size:10px;color:#b6c7d2}.dock-log #log{max-height:120px;min-height:0;margin:6px 0}.ship-controls{position:absolute;width:248px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;padding:12px;border:1px solid #9fb7bc;border-top:3px solid #f2c46d;border-radius:5px;background:#0c1926f5;box-shadow:0 8px 28px #0009;z-index:2}.ship-controls .order-heading{margin:0;display:block}.ship-controls h2{font-size:17px;margin:0 0 4px}.ship-controls #moves{margin-top:8px}.ship-controls #moves .open-dial{min-height:62px;font-size:11px;padding:8px;gap:10px}.ship-controls .dial-face{flex-basis:40px;height:40px;font-size:22px}.ship-controls #targets{display:block;margin-top:8px}.ship-controls .target-card{min-height:44px;font-size:11px;padding:7px}.ship-controls #shotPreview{font-size:11px}.combat-weapon{display:block;font-size:10px;margin-top:8px}.combat-weapon select{display:block;width:100%;min-height:36px;padding:5px;font-size:11px}.ship-controls .primary{font-size:10px;min-height:44px}#maneuverDial{max-height:calc(100dvh - 20px)}
@media(min-width:1600px){.squad-dock{grid-template-columns:240px minmax(260px,1fr) 400px;padding:14px 28px}.ship-controls{width:280px}}
@media(max-width:800px){header{padding:8px 10px;gap:7px}.brand small{display:none}.status{margin-right:0}.status strong{font-size:11px}.squad-dock{grid-template-columns:170px minmax(180px,1fr);gap:10px;padding:10px;max-height:38dvh}.squad-dock .loadout-panel{grid-column:1/-1;grid-template-columns:1fr 1fr}.ship-controls{width:215px;padding:9px}.ship-card{font-size:12px;padding:8px}.ship-card small{font-size:9px}}
@media(max-width:480px){header{flex-basis:56px;height:56px}.brand{font-size:10px;letter-spacing:1px}.mark{font-size:20px}.status strong{display:none}header button{font-size:9px;padding:5px}.squad-dock{grid-template-columns:1fr;max-height:42dvh}.dock-command{grid-template-columns:1fr 1fr;gap:6px}.dock-command .eyebrow{grid-column:1/-1}.dock-command .preset-label{font-size:8px}.dock-command .primary{align-self:end}.dock-cards{grid-row:2}.squad-dock .loadout-panel{grid-column:1}.ship-controls{width:190px}.ship-controls h2{font-size:14px}.board-tag span{display:none}}
@media(max-height:550px) and (min-width:600px){header{flex-basis:48px;height:48px}.squad-dock{grid-template-columns:165px minmax(200px,1fr) 260px;max-height:30dvh;padding:6px 10px;gap:8px}.squad-dock .loadout-panel{grid-column:auto}.dock-command .eyebrow,.dock-cards #hint,.loadout-panel>small{display:none}.ship-card small{font-size:8px}.ship-controls{width:220px;padding:7px}.ship-controls .order-heading span{display:none}}
.ship-radial{position:absolute;width:160px;height:160px;border:1px solid #9cdbe999;border-radius:50%;background:radial-gradient(circle,transparent 0 35%,#10243388 36% 68%,#9cdbe922 69% 70%,transparent 71%);z-index:3;pointer-events:none;box-shadow:0 0 18px #8de1f21a}.radial-action{position:absolute;transform:translate(-50%,-50%);width:60px;height:54px;min-height:44px;padding:3px;border-radius:22px;background:#112637f5;border:1px solid #9ebdc8;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;box-shadow:0 3px 12px #0008}.radial-action span{font-size:20px;line-height:23px;color:#f2ce82}.radial-action small{font-size:9px}.radial-action:disabled{opacity:.5}.radial-center{position:absolute;top:105px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:1px;color:#b4d5e0;pointer-events:none}.ship-controls{z-index:4}.ship-controls #moves{display:none}
#startMenu{width:min(720px,95vw);max-width:720px;max-height:94dvh;padding:clamp(18px,4vw,40px);background:radial-gradient(ellipse at top right,#253d49,#0c141e 70%)}.start-brand{font-size:clamp(22px,4vw,34px);font-weight:800;letter-spacing:4px;color:#f2cd83}.start-kicker{font-size:9px;letter-spacing:2px;color:#99cbd4}#startMenu h2{font-size:24px;margin-bottom:4px}.edition-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.edition-option{display:flex;flex-direction:column;gap:12px;text-align:left;padding:20px;min-height:165px}.edition-option strong{font-size:18px}.edition-option span{color:#f2cd83;font-size:15px}.edition-option small{font-size:12px;line-height:1.6;color:#b1c7d1}.edition-option[aria-pressed=true]{border:2px solid #f2cd83;background:#29363d;box-shadow:0 0 20px #f2cd8315}.start-limitation{font-size:12px;color:#b6c9d1;line-height:1.65}#editionNote{color:#f2cd83;font-size:12px}#resumeGame{margin-top:12px;width:100%}#mainMenu{white-space:nowrap}@media(max-width:480px){.edition-options{grid-template-columns:1fr;gap:8px;margin:12px 0}.edition-option{min-height:0;padding:12px;gap:5px}.edition-option strong{font-size:15px}#startMenu h2{font-size:20px}header .status{display:none}#mainMenu{font-size:8px}} 
#squadBuilder{width:min(980px,96vw);max-width:980px;max-height:94dvh;overflow:auto}.builder-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.builder-fields label{display:grid;font-size:12px}.builder-card{padding:16px;margin:12px 0;background:#0d1922;border:1px solid #526776;border-radius:4px}.builder-card h3{margin:0;color:#efd096}.builder-card p{font-size:12px}.builder-card select{width:100%;margin:8px 0}.builder-card button,.builder-card input{margin:4px}.builder-upgrade,.saved-build{display:flex;align-items:center;gap:12px;margin:5px 0}.builder-upgrade span{flex:1}#builderWarnings{white-space:pre-line;color:#e0bb82;font-size:12px;margin-bottom:14px}#builderTotal{font-weight:bold;color:#f2cf83}#openBuilder{margin-bottom:12px}@media(max-width:550px){.builder-fields{grid-template-columns:1fr}.builder-card{padding:10px}.builder-card input{max-width:100%}}
.card-carousel{display:flex;gap:14px;overflow-x:auto;padding:12px 2px 18px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.readable-card{flex:0 0 280px;max-width:85vw;padding:16px;border:1px solid #aa9767;border-radius:8px;background:linear-gradient(#26323e,#101923);scroll-snap-align:start}.readable-card h4{margin:0 0 10px;color:#f2d293;font-size:18px}.readable-card p{font-size:13px;line-height:1.7;white-space:pre-wrap}.readable-card img{display:block;max-width:100%;height:240px;object-fit:contain;margin:10px auto}.readable-card small{font-size:10px;color:#b9c5cf}.readable-card button{width:100%;margin:8px 0 0}.builder-card details>input{width:calc(100% - 8px)}

#pilotChooser>summary{cursor:pointer;padding:16px;color:#f2d293;font-size:18px} .upgrade-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px;margin:18px 0}.upgrade-slot{border:1px solid #506274;border-radius:8px;padding:12px;min-width:0}.upgrade-slot summary{cursor:pointer;color:#f2d293}.upgrade-slot select{width:100%;max-width:100%}.upgrade-slot .readable-card{max-width:100%;box-sizing:border-box}

.upgrade-slots{grid-template-columns:1fr}.upgrade-slot input{width:100%;box-sizing:border-box;margin-top:12px}.equipped-panel{border-top:2px solid #a58e58;margin-top:20px;padding-top:10px}.equipped-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}.equipped-cards .readable-card{max-width:100%;border-color:#67beb4}.upgrade-slot .readable-card{min-width:260px}.equipped-panel>h4{color:#8edbd1;font-size:18px}

#pilotCards{align-items:stretch;overflow-anchor:none}#pilotCards>.readable-card{height:520px;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;min-width:0}#pilotCards>.readable-card>h4{height:66px;flex:0 0 66px;overflow:auto;margin-bottom:8px}.pilot-card-body{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior-y:contain}.pilot-card-body img{width:100%;height:240px;min-height:240px}#pilotCards>.readable-card>button{flex:0 0 auto;min-height:48px;margin-top:12px}#addAnotherShip{margin:12px 0}#pilotChooser{overflow-anchor:none}

.squad-dock{height:34dvh;min-height:0;box-sizing:border-box;overflow-anchor:none;scrollbar-gutter:stable}.ship-controls{height:320px;max-height:calc(100% - 16px);box-sizing:border-box}.card-carousel>.readable-card{height:530px;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.card-carousel>.readable-card>h4{flex:0 0 66px;overflow:auto}.card-carousel>.readable-card>p{flex:0 0 55px;overflow:auto}.card-detail-body{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable}.card-carousel>.readable-card>button{flex:0 0 48px}.pilot-card-body .card-detail-body{overflow:visible}.dice-results{grid-column:1/-1;min-height:150px;font-size:12px}.dice-row{display:flex;align-items:center;gap:7px;margin:8px 0;flex-wrap:wrap}.die{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:2px solid #e8dccc;font-size:23px;box-shadow:inset 0 0 8px #0008}.die.attack{background:#a82028}.die.defence{background:#177641}.die.crit{color:#ffe187}.dice-results p{margin:6px 0}.dice-results small{color:#b5c8d8}@media(max-width:800px){.squad-dock{height:38dvh}}@media(max-width:480px){.squad-dock{height:42dvh}}@media(max-height:550px) and (min-width:600px){.squad-dock{height:30dvh}}

#abilityText{white-space:pre-wrap;line-height:1.6}#damageRepairs{display:grid;gap:8px;margin:12px 0}

.die,.die.attack,.die.defence{width:48px;height:51px;flex:0 0 48px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.die img{display:block;width:100%;height:100%}.dice-row{min-height:51px}.dice-row>span:first-child{width:55px;flex:0 0 55px}
/* Camera controls and animated dice stay inside the battlefield viewport. */
.space{overflow:hidden}.map-zoom{position:absolute;right:12px;top:12px;z-index:7;display:flex;gap:4px;flex-wrap:wrap;max-width:260px;justify-content:flex-end}.map-zoom small{width:100%;text-align:right;color:#b9cedd;font-size:10px}.map-zoom button{background:#091624ed}.space>.dice-results{position:absolute;z-index:8;bottom:38px;left:50%;transform:translateX(-50%);width:min(460px,calc(100% - 24px));max-height:45%;overflow:auto;min-height:0;padding:12px 36px 12px 14px;border:1px solid #74d7df88;border-radius:12px;background:#07121ff2;box-shadow:0 10px 32px #0009}.dice-results:empty,.dice-results[hidden]{display:none}.dice-dismiss{position:absolute;right:3px;top:3px;padding:0;min-height:32px;width:32px}.space>.dice-results small{display:none}.space>.dice-results .die{width:36px;height:39px;flex-basis:36px}.space>.dice-results .dice-row{min-height:39px}.die.rolling{animation:dice-tumble 650ms cubic-bezier(.2,.6,.3,1) both}@keyframes dice-tumble{0%{transform:translateY(-28px) rotate(-220deg) scale(.65);filter:blur(2px)}35%{transform:translateY(5px) rotate(100deg)}65%{transform:translateY(-9px) rotate(-35deg);filter:blur(0)}100%{transform:translateY(0) rotate(0) scale(1)}}@media(prefers-reduced-motion:reduce){.die.rolling{animation:none}}@media(max-width:480px){.map-zoom{max-width:200px;top:6px;right:6px}.map-zoom small{display:none}.space>.dice-results{bottom:8px;padding:8px 32px 8px 8px}.space>.dice-results .die{width:28px;height:31px;flex-basis:28px}.dice-row{gap:3px}.board-tag{display:none}}
/* Compact card table: fixed footprints keep token changes from moving controls. */
.squad-dock{background:linear-gradient(135deg,#182630,#09121c);border-top:2px solid #7bbdc5;grid-template-columns:180px minmax(320px,1fr) minmax(170px,260px);gap:14px}.skirmish-label{font-size:10px;letter-spacing:1.2px;color:#9db6c5}.dock-cards{min-width:0}#roster{overflow-x:auto;align-items:stretch;padding-bottom:5px}.ship-card{display:flex;gap:10px;flex:1 0 245px;min-width:245px;height:172px;padding:8px;border:1px solid #365465;border-radius:10px;overflow:hidden;background:#101e2a}.ship-card.active{border-color:#85ecf5;box-shadow:inset 0 0 0 1px #85ecf5,0 0 16px #5bd4e51a}.roster-art{display:block;width:94px;flex:0 0 94px;height:150px;overflow:hidden;border-radius:5px;background:#050a11}.roster-art img,.roster-art .card-image{display:block;width:100%;height:100%;max-height:none;object-fit:contain;margin:0}.roster-art small{display:none}.roster-body{min-width:0;display:flex;flex-direction:column;gap:5px}.roster-body>strong{font-size:13px;line-height:1.2;min-height:30px}.roster-body>em{font-size:8px;letter-spacing:.6px;min-height:20px}.token-rack{display:flex;flex-wrap:wrap;gap:5px;overflow:auto;align-content:start}.status-token{display:grid;grid-template-columns:22px 16px;align-items:center;justify-content:center;background:#133845;border:1px solid #4e92aa;border-radius:9px;padding:3px;min-width:44px;color:#9ce8ff}.token-icon svg{display:block;width:21px;height:21px}.status-token b{font-size:14px}.ship-card .status-token small{grid-column:1/-1;margin:0;text-align:center;font-size:7px;color:inherit}.status-token.hull{color:#e9d784;background:#39351e;border-color:#8e8340}.status-token.focus{color:#9ff2ae;background:#173d2a;border-color:#489b64}.status-token.stress,.status-token.critical,.status-token.disarm{color:#ffc0b5;background:#491f26;border-color:#b34d51}.status-token.force{color:#dfc7ff;background:#36204e;border-color:#936bb9}.status-token.ion{color:#c6e9ff;background:#15374c}.squad-dock .loadout-panel{display:block;border:0;background:transparent;padding:0}.loadout-panel>small{display:none}#equippedArt{display:flex;gap:8px;overflow-x:auto;height:156px;margin-top:8px}.equipped-mini{flex:0 0 92px;min-width:92px;padding:4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px}.equipped-mini .card-image{height:113px;width:80px;object-fit:contain;margin:0}.equipped-mini small{display:none}.stock-loadout{color:#7f99aa;font-size:11px;align-self:center}#inspectCardContent .card-image{display:block;max-height:55dvh;max-width:100%;margin:auto}#inspectCardContent p{white-space:pre-wrap}.dock-log{margin:0}@media(max-width:800px){.squad-dock{grid-template-columns:150px minmax(0,1fr)}.squad-dock .loadout-panel{grid-column:1/-1}#equippedArt{height:140px}.ship-card{flex-basis:245px}}@media(max-width:480px){.squad-dock{grid-template-columns:1fr}.dock-command{grid-template-columns:1fr 1fr}.dock-command .skirmish-label{margin:0;align-self:center}.ship-card{height:164px}.roster-art{height:142px}.squad-dock .loadout-panel{grid-column:1}}@media(max-height:550px) and (min-width:600px){.squad-dock{grid-template-columns:145px minmax(280px,1fr) 180px}.ship-card{height:128px;flex-basis:220px;min-width:220px}.roster-art{width:68px;flex-basis:68px;height:110px}.roster-body>strong{min-height:0}.roster-body>em{min-height:0}#equippedArt{height:115px}.equipped-mini .card-image{height:80px}.squad-dock .loadout-panel{grid-column:auto}}
.roster-art[role="button"]{cursor:zoom-in}.roster-art[role="button"]:hover,.roster-art[role="button"]:focus-visible{outline:2px solid #a2f3ff;outline-offset:-2px}#inspectCard{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}#inspectCardContent .card-image{width:auto;height:auto;max-width:100%;max-height:70dvh;object-fit:contain}
#actionChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}#shipActionDialog{max-height:85dvh;overflow:auto}
.focus-choices{position:sticky;bottom:-12px;display:flex;gap:8px;justify-content:flex-end;padding:8px 0;background:#07121f;border-top:1px solid #355260;margin-top:8px}.focus-choice{width:auto;min-height:44px;padding:8px 14px;font-size:12px;line-height:1.2;border-radius:7px;letter-spacing:0;flex:0 1 auto}.focus-choice.spend{background:#20533b;color:#ddffe9;border-color:#78c59a;font-weight:600}.focus-choice:hover{border-color:#c8f5dd}.dial-move b{transform-origin:center;width:25px;height:25px;line-height:25px}.dial-move span{position:relative;margin-top:3px}@media(max-width:480px){.focus-choices{bottom:-8px;justify-content:stretch}.focus-choice{flex:1;padding:8px;font-size:11px}}
#logDrawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(420px,94vw);height:100dvh;max-height:100dvh;border-radius:0;padding:18px;overflow:hidden}#logDrawer[open]{display:flex;flex-direction:column}.log-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.log-drawer-head h2{font-size:20px}#logDrawer #log{flex:1;min-height:0;max-height:none;overflow-y:auto;font-size:12px;line-height:1.65;padding-right:8px}.log-toggle{grid-column:1/-1;justify-self:end;font-size:11px}.status strong{color:#b9f5fa}

.activation-prompt{position:fixed;z-index:100;right:16px;bottom:20px;width:min(360px,calc(100vw - 32px));max-height:65vh;overflow:auto;padding:18px;border:1px solid #6cccef;border-radius:12px;background:#081524f5;box-shadow:0 8px 30px #000b}.activation-prompt[hidden]{display:none}.activation-prompt h2{font-size:18px;margin:0 0 8px}.activation-prompt p{font-size:13px}.activation-prompt #activationChoices{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.activation-prompt button{padding:9px 12px;font-size:13px}.activation-prompt button[aria-pressed="true"]{outline:2px solid #ffe28c}

/* Compact action choices with readable explanations and touch targets. */
.activation-prompt{width:min(380px,calc(100vw - 32px));max-height:65vh;padding:14px;font-family:Arial,sans-serif}
.activation-prompt h2{font-size:18px;line-height:1.25}
.activation-prompt p{font-size:13px;line-height:1.4;color:#dce8f1;margin:8px 0}
.activation-prompt #activationChoices{display:grid;grid-template-columns:1fr;gap:6px}
.activation-prompt #activationChoices button{text-align:left;font-size:14px;line-height:1.3;letter-spacing:normal;text-transform:none;padding:8px 10px;min-height:44px;white-space:normal}
.activation-prompt #activationChoices small{display:block;margin-top:3px;font-size:12px;line-height:1.35;font-weight:normal;color:#cedce8}
.activation-prompt button[aria-pressed="true"]{background:#183b50;outline:2px solid #ffe28c}
.activation-prompt #activationConfirm,.activation-prompt #activationSkip{font-size:13px;line-height:1.3;min-height:44px;padding:8px 10px;margin-top:4px;text-transform:none;letter-spacing:normal}
