/* One flowing command desk; secondary panels share one drawer. */
#battle-hud .campaign-status{display:flex;flex-direction:column;gap:5px;margin-top:7px;padding:0;text-align:left;max-width:100%;border:0;background:none;color:#c6d2d6;pointer-events:auto}
#battle-hud .campaign-status-label{font-size:10px;line-height:1.45;color:#d5c495}
.campaign-route{display:flex;gap:5px;flex-wrap:wrap}
.campaign-chip{font-size:10px;line-height:1.4;padding:3px 7px;color:#8ea5af;border:1px solid #50647265;background:#09151db3;white-space:nowrap}
.campaign-chip.current{border-color:#d0b87990;color:#eddbad;background:#89703b26}
.campaign-chip.done{border-color:#70a89578;color:#b3d8c7;background:#2a584237}
.campaign-report-heading{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:center}
.campaign-report-heading>img{width:72px;height:92px;object-fit:cover;object-position:center 15%;border:1px solid #8e9b9270}
.campaign-report-heading small,.campaign-next>small{color:#cabb91;font-size:11px;letter-spacing:1px}
.campaign-report-heading .modal-title{margin:7px 0 8px;font-size:30px}
.campaign-report-heading p{font-size:13px;line-height:1.85;color:#b8c9ce;margin:0}
.campaign-report>.campaign-route{margin:22px 0 18px;gap:8px}
.campaign-report>.campaign-route .campaign-chip{padding:7px 15px;font-size:12px}
.campaign-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 24px}
.campaign-metrics>div{padding:17px 15px;background:#13232b;border:1px solid #46606a66;min-width:0}
.campaign-metrics small,.campaign-metrics span{display:block;font-size:11px;color:#9eb5bf;line-height:1.6}
.campaign-metrics strong{display:block;font-size:28px;line-height:1.5;font-weight:400;color:#ecdfb9;font-variant-numeric:tabular-nums}
.campaign-metrics em{font-style:normal;font-size:12px;margin-left:5px;color:#a7b4ba}
.campaign-ledger{margin:22px 0}
.campaign-ledger h3{font-size:15px;font-weight:500;color:#d4dace;margin:0 0 12px}
.campaign-table-wrap{overflow-x:auto}
.campaign-ledger table{width:100%;border-collapse:collapse;font-size:12px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.campaign-ledger th,.campaign-ledger td{padding:11px 12px;border-bottom:1px solid #40586260}
.campaign-ledger th{font-weight:400;color:#b5c7cc}
.campaign-ledger th:first-child{text-align:left}
.campaign-ledger th small{display:block;font-size:10px;color:#88b4a5;margin-top:3px}
.campaign-ledger p,.campaign-footnote{font-size:11px;color:#8ca2ad;line-height:1.8;margin:12px 0 0}
.campaign-next{border-left:2px solid #c6ac70;background:#17251fa8;padding:15px 18px}
.campaign-next h3{font-size:19px;font-weight:400;color:#e2d6b5;margin:6px 0}
.campaign-next p,.campaign-mission-note{font-size:12px;color:#b1c4c8;line-height:1.85;margin:0}
.campaign-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:22px}
.campaign-actions button{min-height:46px;font-size:13px;padding:12px 18px}
#app[data-campaign-phase="intermission"] #battle-hud .command-guide{border-left:2px solid #b0c49f}
#app[data-campaign-phase="intermission"] #battle-hud .unit-order{color:#b9c5c9}
@media(max-width:600px){
 #battle-hud .campaign-status{margin-top:5px;gap:3px}
 #battle-hud .campaign-status-label{font-size:9px}
 #battle-hud .campaign-chip{font-size:8px;padding:2px 4px}
 .campaign-report-heading{grid-template-columns:46px minmax(0,1fr);gap:12px}
 .campaign-report-heading>img{width:46px;height:64px}
 .campaign-report-heading .modal-title{font-size:21px;line-height:1.4}
 .campaign-report-heading p{font-size:11px}
 .campaign-report-heading small{font-size:9px}
 .campaign-report>.campaign-route{margin:16px 0}
 .campaign-report>.campaign-route .campaign-chip{font-size:10px;padding:5px 8px}
 .campaign-metrics{gap:6px;margin:16px 0}
 .campaign-metrics>div{padding:11px 8px}
 .campaign-metrics small,.campaign-metrics span{font-size:9px}
 .campaign-metrics strong{font-size:21px}
 .campaign-metrics em{font-size:9px;margin-left:2px}
 .campaign-ledger th,.campaign-ledger td{padding:9px 5px;font-size:10px}
 .campaign-actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:17px}
 .campaign-actions button{font-size:12px;min-height:44px;text-align:center}
 .campaign-next{padding:12px}
 .campaign-next h3{font-size:17px}
 .campaign-next p,.campaign-footnote,.campaign-ledger p{font-size:10px}
}
@media(max-height:530px) and (orientation:landscape){
 #battle-hud .campaign-route{display:none}#battle-hud .campaign-status{margin-top:3px}#battle-hud .campaign-status-label{font-size:8px}
 .campaign-report{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:10px 18px}
 .campaign-report-heading{grid-column:1/-1;grid-template-columns:40px minmax(0,1fr);gap:12px}
 .campaign-report-heading>img{width:40px;height:52px}
 .campaign-report-heading .modal-title{font-size:21px;margin:3px 0}
 .campaign-report-heading small{font-size:9px}
 .campaign-report-heading p{font-size:10px;line-height:1.5}
 .campaign-report>.campaign-route{grid-column:1;grid-row:2;margin:0;gap:4px}
 .campaign-report>.campaign-route .campaign-chip{font-size:9px;padding:3px 5px}
 .campaign-metrics{grid-column:1;grid-row:3;margin:0;gap:5px}
 .campaign-metrics>div{padding:7px}
 .campaign-metrics strong{font-size:21px}
 .campaign-metrics small,.campaign-metrics span{font-size:9px}
 .campaign-actions{grid-column:2;grid-row:2/span 2;margin:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:5px}
 .campaign-actions button{min-height:40px;padding:8px;font-size:11px;text-align:center}
 .campaign-ledger,.campaign-next,.campaign-footnote,.campaign-mission-note{grid-column:1/-1}
 .campaign-ledger{margin:12px 0}
}
#app[data-view="battle"] .topbar{height:64px;padding:0 24px;gap:24px;background:#080f19e8}
#app[data-view="battle"] .wordmark{min-width:180px;font-size:14px}
#app[data-view="battle"] .crest{font-size:32px}
#app[data-view="battle"] .topbar nav{gap:25px}
#app[data-view="battle"] .nav{padding:20px 0 18px}
#app[data-view="battle"] .nav.active:after{bottom:10px}
#battle-hud{position:absolute;inset:64px 0 0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:16px 24px 20px;pointer-events:none;z-index:5;min-height:0}
#battle-hud button,#battle-hud canvas,#battle-hud select{pointer-events:auto}
#battle-hud .battle-top{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(200px,1fr);gap:22px;align-items:start;min-width:0}
#battle-hud .battle-head{position:static;transform:none;width:auto;max-width:410px;pointer-events:none}
#battle-hud .chapter-label{font-size:9px;letter-spacing:1.4px}
#battle-hud .battle-head h2{font-size:21px;margin:5px 0 4px;letter-spacing:0}
#battle-hud .battle-head p{max-width:none;font-size:11px;line-height:1.5;margin:0;color:#a4b4bf}
#battle-hud .mission-progress{width:100%;max-width:270px;margin-top:10px}
#battle-hud .camera-console{display:flex;flex-direction:column;align-items:center;gap:6px}
#battle-hud .view-controls,#battle-hud .focus-controls{position:static;transform:none;width:max-content;max-width:100%;margin:0;display:flex;gap:2px;justify-content:center}
#battle-hud .view-controls{padding:3px;background:#0b1724e8;border:1px solid #54687570}
#battle-hud .view-controls button{padding:7px 13px;min-height:36px;font-size:12px}
#battle-hud .focus-controls{background:none;border:0;padding:0;flex-wrap:wrap}
#battle-hud .focus-controls button{font-size:10px;padding:5px 9px;min-height:30px;background:#0b1724c9;border:1px solid #435a6760}
#battle-hud .cinema-controls{display:none;align-items:center;justify-content:center;gap:4px;max-width:100%;flex-wrap:wrap}
#app[data-camera="cinematic"] #battle-hud .cinema-controls{display:flex}
#battle-hud .cinema-controls button{font-size:11px;padding:5px 12px;min-height:30px;background:#0b1724dc;border:1px solid #435a6760;white-space:nowrap}
#battle-hud .cinema-controls button.active{color:var(--gold);border-color:#b39a6175;background:#332d20df}
#battle-hud .cinema-controls span{font-size:9px;color:#9babba;margin-left:4px}
@media(max-width:1100px){#battle-hud .cinema-controls span{display:none}}
#battle-hud .fleet-status{position:static;width:auto;min-width:190px;max-width:285px;justify-self:end;background:#0a1723c9;padding:10px 13px;border:1px solid #3f566250;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
#battle-hud .strength-line{display:flex;align-items:flex-start;flex-direction:column;font-size:10px;white-space:nowrap}
#battle-hud .strength-line strong,#battle-hud .strength-line.enemy strong{font-size:23px;line-height:1.25}
#battle-hud .strength-bar{grid-row:2;margin:2px 0;height:2px}
#battle-hud .strength-line.enemy{grid-column:2;grid-row:1}
#battle-hud .strength-bar.enemy{grid-column:2}
#battle-hud #intel-toggle{grid-column:1/-1;min-height:28px;text-align:left;font-size:10px;color:#b3c6ce;padding:3px 0}
#battle-hud .battle-workspace{position:relative;min-height:0;display:flex;justify-content:flex-end;align-items:stretch;pointer-events:none;gap:12px}
#battle-hud #target-labels{position:fixed;inset:0;z-index:-1;pointer-events:none}
#battle-hud .taskforce-tag{padding:3px 6px;min-width:42px;background:#08151bc9;letter-spacing:0}
#battle-hud .taskforce-tag small{font-size:9px}
#battle-hud .enemy-bearing{position:absolute;top:50%;right:0;left:auto;transform:translateY(-50%);font-size:11px;z-index:2}
#battle-hud .intel-drawer{width:340px;max-width:100%;min-height:0;display:flex;flex-direction:column;pointer-events:auto;background:#08131bf5;border:1px solid #627f8b78;box-shadow:0 12px 45px #0007;z-index:10}
#battle-hud .drawer-head{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:6px;gap:4px;flex:0 0 auto}
#battle-hud .drawer-head button{min-height:34px;font-size:12px;padding:5px 11px;white-space:nowrap}
#battle-hud .drawer-head button[aria-selected="true"]{color:var(--gold);background:#d6bc821c}
#battle-hud #drawer-close{margin-left:auto;font-size:23px;min-width:34px;padding:0}
#battle-hud .drawer-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:14px;scrollbar-width:thin}
#battle-hud .drawer-pane{display:grid;gap:16px}
#battle-hud .drawer-section-title{font-size:11px;letter-spacing:1px;color:var(--gold);margin:0 0 8px}
#battle-hud .advanced-commands{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#battle-hud .advanced-commands button{min-height:60px;border:1px solid #5c758060;text-align:left;padding:9px 11px;background:#12222c;font-size:12px}
#battle-hud .advanced-commands strong{display:block;font-weight:500}
#battle-hud .advanced-commands small{display:block;font-size:10px;color:#9ab0bc;margin-top:4px}
#battle-hud .advanced-commands button.queued{border-color:#7ec7cc;background:#19343d}
#battle-hud .advanced-commands button.ready{border-color:var(--gold)}
#battle-hud .advanced-commands .retreat{border-color:#91645570;color:#ddb29d}
#battle-hud .formation-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0}
#battle-hud .formation-controls button{min-height:42px;font-size:11px;padding:6px 4px}
#battle-hud .commander-panel,#battle-hud .navigation-panel,#battle-hud .tactical-assessment,#battle-hud .radar-panel,#battle-hud .transmission{position:static;inset:auto;transform:none;display:block;width:100%;max-width:none;min-height:0;padding:0;background:none;box-shadow:none;border:0;opacity:1!important}
#battle-hud .commander-panel{border-bottom:1px solid var(--line);padding-bottom:12px}
#battle-hud .commander-heading small{display:block;font-size:9px}
#battle-hud .commander-heading strong{font-size:16px}
#battle-hud .commander-heading>img{width:39px;height:45px}
#battle-hud .commander-panel p{font-size:11px;line-height:1.7}
#battle-hud .commander-panel.collapsed p{display:none}
#battle-hud .navigation-panel .nav-heading{gap:8px;display:flex;align-items:center;font-size:12px;flex-wrap:wrap}
#battle-hud .nav-heading strong{font-size:12px}
#battle-hud #engagement-state{font-size:12px;line-height:1.7;color:#aec1c9;margin:8px 0 0}
#battle-hud #navigation-eta{font-size:10px;color:#d4bd88}
#battle-hud #tactical-detail{font-size:10px;min-height:32px}
#battle-hud .tactical-assessment>small,#battle-hud .tactical-assessment>strong,#battle-hud .tactical-assessment>p{display:block}
#battle-hud .tactical-assessment>strong{font-size:12px;line-height:1.7}
#battle-hud .tactical-assessment>p{font-size:11px;line-height:1.8}
#battle-hud .metrics{font-size:11px;margin:0}
#battle-hud .loss-trend{font-size:11px}
#battle-hud .transmission{display:flex;gap:10px;padding-top:12px;border-top:1px solid var(--line);align-items:flex-start}
#battle-hud .transmission img{width:35px;height:44px}
#battle-hud .transmission small{font-size:8px;letter-spacing:.5px}
#battle-hud .transmission p{font-size:11px;margin-top:4px}
#battle-hud .radar-panel canvas{display:block;width:100%;height:auto;aspect-ratio:8/5}
#battle-hud .radar-heading{font-size:10px;margin-bottom:10px}
#battle-hud .radar-key{display:flex;font-size:10px;gap:15px}
#battle-hud .map-instructions{font-size:11px;color:#9eb3bf;line-height:1.8;margin:5px 0}
#battle-hud .command-wrap{position:static;inset:auto;transform:none;width:min(850px,100%);justify-self:center;display:flex;flex-direction:column;min-width:0;background:#0a1620f2;border:1px solid #5d748078;box-shadow:0 10px 45px #0008;pointer-events:auto;max-height:calc(100dvh - 175px);overflow:auto;scrollbar-width:thin}
#battle-hud .command-guide{display:flex;align-items:center;gap:15px;padding:9px 14px;border-bottom:1px solid #57717d55;background:linear-gradient(95deg,#253535,#10212c);min-height:51px}
#battle-hud .guide-number{font:18px/1.2 Georgia,serif;color:var(--gold);border-right:1px solid #6b827a80;padding-right:13px;white-space:nowrap}
#battle-hud .guide-copy{min-width:0;flex:1}
#battle-hud .guide-copy strong{display:block;font-size:12px;font-weight:500;color:#e8e3cf}
#battle-hud .guide-copy p{font-size:10px;color:#aabfc6;margin:2px 0 0;line-height:1.55}
#battle-hud #guide-toggle{color:#abc0c7;font-size:17px;min-width:29px;min-height:29px;align-self:flex-start}
#battle-hud .command-guide.collapsed .guide-copy p{display:none}
#battle-hud .command-guide.collapsed{min-height:36px;padding-top:6px;padding-bottom:6px}
#battle-hud .unit-heading{height:29px;padding:0 12px;font-size:11px;gap:9px}
#battle-hud .unit-heading>small{display:block;font-size:9px;margin-left:4px}
#battle-hud .unit-heading>button{font-size:10px;min-height:28px}
#battle-hud .unit-selector{grid-template-columns:repeat(5,minmax(0,1fr))}
#battle-hud .unit-selector>button{min-height:48px;padding:6px 11px}
#battle-hud .unit-selector strong{font-size:12px}
#battle-hud .unit-count{font-family:inherit;font-size:11px;line-height:1.5;display:block;color:#a9bdc6}
#battle-hud .unit-selector .unit-strength,#battle-hud .unit-selector .unit-order{display:none}
#battle-hud .unit-selector kbd{display:inline;font-size:9px}
#battle-hud .commands{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-left:0;border-right:0}
#battle-hud .commands button{padding:10px 5px;min-height:62px;gap:3px}
#battle-hud .commands strong{font-size:13px;letter-spacing:0;font-weight:500}
#battle-hud .commands small{display:block;font-size:10px;margin:0;line-height:1.3}
#battle-hud .commands .cmd-icon{display:none}
#battle-hud .commands button.active,#battle-hud .commands button[aria-pressed="true"],#battle-hud .commands button[aria-expanded="true"]{background:#d6bc821a;color:#f1daa7}
#battle-hud .command-meta{border:0;min-height:32px;height:auto;padding:5px 12px;gap:12px;font-size:10px}
#battle-hud .command-meta>div{display:flex;gap:8px}
#battle-hud .command-meta button{font-family:inherit;font-size:11px;line-height:1.4;min-height:28px;padding:4px 8px;border:1px solid #49616d65;min-width:35px}
#battle-hud .command-meta b{padding-left:6px}
#battle-hud .navigation-confirm,#battle-hud .planning-banner{position:static;inset:auto;transform:none;width:100%;max-width:none;min-width:0;border:0;border-top:1px solid #68785c80;display:flex;align-items:center;gap:12px;padding:8px 12px;margin:0;background:#283327ee}
#battle-hud .navigation-confirm{background:#28342fee;flex-wrap:nowrap}
#battle-hud .navigation-confirm>div{flex:1;min-width:0}
#battle-hud .navigation-confirm small{font-size:10px;letter-spacing:0}
#battle-hud .navigation-confirm strong{font-size:11px;white-space:normal}
#battle-hud .navigation-confirm .nav-primary{font-size:12px;min-height:40px;padding:7px 14px;white-space:nowrap}
#battle-hud #nav-cancel{font-size:22px;min-width:30px;min-height:35px}
#battle-hud .planning-banner>span{font-size:10px;color:#b4c0ab;white-space:nowrap}
#battle-hud .planning-banner strong{font-size:11px;color:#dce3d0;flex:1;font-weight:400}
#battle-hud .planning-banner button{font-size:11px;min-height:36px;padding:6px 11px;white-space:nowrap}
#battle-hud #resume-plan{margin-left:auto;background:#d7bd80;color:#152022;border:1px solid #e6d09a;font-size:13px;font-weight:600;min-height:40px;padding:7px 18px}
#battle-hud #resume-plan kbd{opacity:.65}
#battle-hud .tactical-note{position:static;transform:none;white-space:normal;font-size:10px;margin:0;padding:6px 12px;background:#09141ee8;border:0;border-top:1px solid #3a515d60;color:#9bb1bf;text-align:left;line-height:1.5}
#battle-hud .tactical-note span{display:inline;font-size:10px;margin-left:12px;color:#718e9e}
#battle-hud .render-stats{position:fixed;right:10px;bottom:2px;font-size:8px;opacity:.7}
#app[data-view="battle"] #toast{top:var(--toast-top,190px);bottom:auto;left:14px;right:14px;margin-inline:auto;transform:translateY(-8px);max-width:calc(100% - 28px);width:max-content;font-size:12px;z-index:22;pointer-events:none}
#app[data-view="battle"] #toast.visible{transform:translateY(0)}
#app.clean-view #battle-hud .command-guide,#app.clean-view #battle-hud .tactical-note{display:none}
#app.clean-view #battle-hud .battle-head p,#app.clean-view #battle-hud .mission-progress{display:none}
#app[data-drawer]:not([data-drawer="none"]) #battle-hud .enemy-bearing{display:none}
#app #battle-hud .intel-drawer .commander-panel,#app #battle-hud .intel-drawer .navigation-panel,#app #battle-hud .intel-drawer .tactical-assessment,#app #battle-hud .intel-drawer .radar-panel{display:block}
#app #battle-hud .intel-drawer .transmission{display:flex}
#app #battle-hud .radar-panel.collapsed canvas,#app #battle-hud .radar-panel.collapsed .radar-key{display:none}
#app[data-paused="true"] #battle-hud .tactical-note{display:none}
#app[data-paused="true"] #battle-hud #pause{display:none}
#app[data-paused="false"] #battle-hud .tactical-note{visibility:visible}
.quickstart-card{padding:22px;background:#15272e;border:1px solid #7d9e9b77;margin-bottom:24px}
.quickstart-card h3{font-size:20px;font-weight:400;margin:0 0 12px}
.quickstart-card ol{padding-left:22px;line-height:2;color:#cad7da;font-size:14px}
.quickstart-card p{font-size:12px;color:#a4bdc8;margin:12px 0 0}
@media(max-width:1050px){
 #battle-hud{padding:12px 16px 16px;gap:10px}
 #battle-hud .battle-top{grid-template-columns:1fr auto;gap:12px}
 #battle-hud .camera-console{grid-column:1/-1;grid-row:2;flex-direction:row;justify-content:center;gap:9px}
 #battle-hud .battle-head{max-width:480px}
 #battle-hud .mission-progress{display:none}
 #battle-hud .fleet-status{min-width:182px}
 #app[data-view="battle"] .topbar{padding:0 16px;gap:12px}
 #app[data-view="battle"] .topbar nav{gap:18px}
 #battle-hud .view-controls button{padding:6px 13px}
}
/* v0.8: state is readable at the point where a force is selected. */
#battle-hud .unit-selector .unit-order{display:block;font-size:10px;line-height:1.5;min-height:15px;color:#a7c7d1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#battle-hud .unit-selector>button{min-height:63px}
#battle-hud .unit-selector>button[data-phase="queued"] .unit-order,#battle-hud .unit-selector>button[data-phase="transmitting"] .unit-order{color:#e7c98c}
#battle-hud .unit-selector>button[data-phase="firing"] .unit-order{color:#9ed7cb}
#battle-hud .unit-selector>button.at-risk .unit-order{color:#efb18a}
#battle-hud .unit-selector>button:disabled .unit-order{color:#8a8f98}
#battle-hud .unit-heading{height:auto;min-height:32px;flex-wrap:wrap}
#battle-hud #focus-selected{margin-left:5px;color:#b5d4d9;border-bottom:1px solid #71979e55;padding:3px 6px;font-size:10px}
#battle-hud #focus-selected kbd{margin-left:3px;opacity:.65;font-size:8px}
#battle-hud .guide-action{border:1px solid #7c9c8a75;background:#253a38;color:#e0dfbc;min-height:34px;padding:6px 9px;font-size:11px;max-width:118px;line-height:1.4;flex-shrink:0}
#battle-hud .command-guide[data-tone="warning"]{border-left:2px solid #c39060}
#battle-hud .command-guide[data-tone="good"]{border-left:2px solid #7aa89a}
@media(max-width:600px),(max-height:530px){
 #battle-hud .unit-selector .unit-count{display:none}
 #battle-hud .unit-selector .unit-order{font-size:9px;min-height:14px}
 #battle-hud .unit-selector>button{min-height:44px}
 #battle-hud .guide-action{font-size:10px;max-width:90px;min-height:38px;padding:5px 7px}
 #battle-hud .unit-heading{min-height:30px}
 #battle-hud #focus-selected{font-size:9px;min-height:28px;padding:3px 4px}
 #battle-hud #focus-selected kbd{display:none}
}
@media(max-height:530px) and (orientation:landscape){
 #battle-hud .unit-selector .unit-order{font-size:8px}
 #battle-hud .unit-selector>button{min-height:40px}
 #battle-hud .guide-action{max-width:72px;font-size:9px;min-height:32px;padding:4px}
 #battle-hud .unit-heading{min-height:26px}
}
@media(max-width:600px){
 #app[data-view="battle"] .topbar{height:53px;padding:0 12px;gap:6px}
 #app[data-view="battle"] .wordmark{min-width:0;font-size:12px;letter-spacing:1px;gap:7px}
 #app[data-view="battle"] .wordmark small{font-size:6px;letter-spacing:1.5px}
 #app[data-view="battle"] .crest{font-size:25px}
 #app[data-view="battle"] .topbar nav{display:none}
 #app[data-view="battle"] .utilities{margin-left:auto;gap:5px}
 #app[data-view="battle"] .icon-button{width:29px;height:29px}
 #app[data-view="battle"] .audio-settings-trigger{min-width:35px;font-size:10px}
 #battle-hud{inset:53px 0 0;padding:10px 10px max(14px,env(safe-area-inset-bottom));gap:8px}
 #battle-hud .battle-top{gap:8px;grid-template-columns:minmax(0,1fr) 132px}
 #battle-hud .battle-head h2{font-size:16px;margin:4px 0;line-height:1.4}
 #battle-hud .chapter-label{font-size:7px;letter-spacing:.7px}
 #battle-hud .battle-head p{font-size:10px;line-height:1.5;max-width:240px}
 #battle-hud .fleet-status{min-width:0;max-width:132px;padding:6px 8px;gap:3px 9px}
 #battle-hud .strength-line{font-size:8px}
 #battle-hud .strength-line strong,#battle-hud .strength-line.enemy strong{font-size:18px}
 #battle-hud #intel-toggle{font-size:10px;min-height:28px;padding:1px 0}
 #battle-hud .camera-console{flex-direction:column;gap:5px}
 #battle-hud .view-controls{width:100%;padding:2px;justify-content:stretch}
 #battle-hud .view-controls button{flex:1;min-height:34px;padding:5px 7px;font-size:12px}
 #battle-hud .view-controls kbd,#battle-hud .focus-controls kbd{display:none}
 #battle-hud .focus-controls{flex-wrap:nowrap;width:max-content;gap:4px;max-width:100%}
 #battle-hud .focus-controls button{font-size:10px;padding:4px 10px;min-height:29px}
 #battle-hud .intel-drawer{width:100%}
 #battle-hud .drawer-body{padding:12px}
 #battle-hud .command-guide{padding:8px 10px;gap:10px}
 #battle-hud .guide-number{font-size:15px;padding-right:9px}
 #battle-hud .guide-copy strong{font-size:11px}
 #battle-hud .guide-copy p{font-size:10px}
 #battle-hud .unit-heading{font-size:10px;padding:0 8px;gap:3px}
 #battle-hud .unit-heading>small{display:none}
 #battle-hud .unit-heading>button{font-size:9px;padding:2px 5px}
 #battle-hud .unit-selector>button{padding:5px 6px;min-height:44px}
 #battle-hud .unit-selector strong{font-size:11px}
 #battle-hud .unit-count{font-size:10px}
 #battle-hud .unit-selector kbd{display:none}
 #battle-hud .commands button{min-height:55px;padding:8px 2px}
 #battle-hud .commands strong{font-size:12px;white-space:nowrap}
 #battle-hud .commands small{font-size:8px;line-height:1.35}
 #battle-hud .command-meta{padding:4px 8px;gap:5px;font-size:9px}
 #battle-hud .command-meta>div{gap:4px}
 #battle-hud .command-meta button{font-size:10px;padding:4px 6px}
 #battle-hud #battle-clock{letter-spacing:.5px}
 #battle-hud .planning-banner{gap:6px;padding:7px 8px;flex-wrap:wrap}
 #battle-hud .planning-banner>span{display:none}
 #battle-hud .planning-banner strong{font-size:10px;min-width:90px}
 #battle-hud #resume-plan{font-size:12px;min-height:40px;padding:6px 13px}
 #battle-hud .planning-banner kbd{display:none}
 #battle-hud .planning-banner #clear-plan{font-size:10px;padding:5px}
 #battle-hud .navigation-confirm{padding:7px 8px;gap:6px}
 #battle-hud .navigation-confirm .nav-primary{font-size:11px;padding:7px 10px}
 #battle-hud .tactical-note{font-size:9px;padding:5px 8px}
 #battle-hud .tactical-note span{display:none}
 #battle-hud .render-stats{font-size:6px}
 #app[data-view="battle"] #toast{top:230px;font-size:11px}
}
@media(max-height:700px){
 #battle-hud{gap:7px;padding-top:8px;padding-bottom:12px}
 #battle-hud .battle-head p{display:none}
 #battle-hud .command-guide .guide-copy p{display:none}
 #battle-hud .command-guide{min-height:34px;padding-top:5px;padding-bottom:5px}
 #battle-hud .tactical-note{display:none}
 #battle-hud .unit-selector>button{min-height:39px;padding-top:3px;padding-bottom:3px}
 #battle-hud .commands button{min-height:49px;padding-top:6px;padding-bottom:6px}
 #battle-hud .focus-controls{display:none}
 #battle-hud .focus-controls:has(#sortie-follow:not([hidden])){display:flex}
}
@media(max-width:600px) and (max-height:800px) and (orientation:portrait){
 #battle-hud .battle-head p{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
 #battle-hud .focus-controls{display:none}
 #battle-hud .focus-controls:has(#sortie-follow:not([hidden])){display:flex}
 #battle-hud .focus-controls button:not(#sortie-follow){display:none}
 #battle-hud .command-guide{min-height:39px;padding:6px 8px;gap:7px}
 #battle-hud .guide-copy p{display:none}
 #battle-hud .guide-number{font-size:12px;padding-right:7px}
 #battle-hud .guide-copy strong{font-size:10px;line-height:1.5}
 #battle-hud .unit-heading{height:25px}
 #battle-hud .command-meta{min-height:30px}
}
@media(max-height:530px) and (orientation:landscape){
 #app[data-view="battle"] .topbar{height:43px;padding:0 12px}
 #app[data-view="battle"] .wordmark{font-size:12px;min-width:155px}
 #app[data-view="battle"] .crest{font-size:24px}
 #app[data-view="battle"] .nav{padding:9px 0;font-size:10px}
 #battle-hud{inset:43px 0 0;padding:7px 12px 11px;gap:5px;grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:auto minmax(0,1fr)}
 #battle-hud .battle-top{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px}
 #battle-hud .battle-head h2{font-size:14px;margin:0}
 #battle-hud .chapter-label{font-size:7px}
 #battle-hud .battle-head p,#battle-hud .mission-progress{display:none}
 #battle-hud .camera-console{gap:0}
 #battle-hud .view-controls button{font-size:10px;min-height:29px;padding:4px 8px}
 #battle-hud .focus-controls{display:none!important}
 #battle-hud .focus-controls:has(#sortie-follow:not([hidden])){display:flex!important;margin-left:5px}
 #battle-hud .focus-controls button:not(#sortie-follow){display:none}
 #battle-hud #sortie-follow{padding:4px 7px;font-size:10px;min-height:29px}
 #battle-hud .fleet-status{display:flex;align-items:center;min-width:0;padding:3px 7px;gap:10px;max-width:none}
 #battle-hud .strength-line{font-size:8px}
 #battle-hud .strength-line strong,#battle-hud .strength-line.enemy strong{font-size:17px}
 #battle-hud .strength-bar{display:none}
 #battle-hud #intel-toggle{font-size:10px;white-space:nowrap}
 #battle-hud .battle-workspace{grid-column:1;grid-row:2;min-width:0}
 #battle-hud .intel-drawer{width:100%}
 #battle-hud .command-wrap{grid-column:2;grid-row:2;align-self:end;width:100%;max-height:100%}
 #battle-hud .command-guide{gap:7px;padding:5px 7px;min-height:31px}
 #battle-hud .guide-number{font-size:13px;padding-right:6px}
 #battle-hud .guide-copy strong{font-size:10px}
 #battle-hud #guide-toggle{font-size:13px;min-height:22px}
 #battle-hud .unit-heading{height:24px;font-size:9px;padding:0 6px;gap:3px}
 #battle-hud .unit-heading>small{display:none}
 #battle-hud .unit-heading>button{font-size:8px;min-height:23px}
 #battle-hud .unit-selector>button{padding:4px;min-height:40px}
 #battle-hud .unit-selector strong{font-size:10px}
 #battle-hud .unit-selector kbd{display:none}
 #battle-hud .unit-count{font-size:9px}
 #battle-hud .commands button{min-height:47px;padding:6px 1px}
 #battle-hud .commands strong{font-size:10px}
 #battle-hud .commands small{font-size:7px}
 #battle-hud .command-meta{font-size:8px;padding:3px 5px;gap:3px;min-height:28px}
 #battle-hud .command-meta>div{gap:3px}
 #battle-hud .command-meta button{font-size:9px;padding:3px 4px;min-height:25px}
 #battle-hud #battle-clock{letter-spacing:0}
 #battle-hud .planning-banner{padding:5px 6px;gap:5px;flex-wrap:wrap}
 #battle-hud .planning-banner>span,#battle-hud .planning-banner kbd{display:none}
 #battle-hud .planning-banner strong{font-size:9px}
 #battle-hud #resume-plan{font-size:11px;padding:5px 9px;min-height:34px}
 #battle-hud #clear-plan{padding:3px;font-size:9px}
 #battle-hud .navigation-confirm{padding:5px 6px;gap:5px}
 #battle-hud .navigation-confirm strong{font-size:9px}
 #battle-hud .navigation-confirm .nav-primary{font-size:10px;padding:5px 8px;min-height:33px}
 #app[data-view="battle"] #toast{top:110px;font-size:10px;max-width:calc(100% - 330px);left:12px;right:auto;margin-inline:0;transform:translateY(-5px)}
 #app[data-view="battle"] #toast.visible{transform:none}
}
/* Short laptop viewports keep the full-height battle window beside the desk. */
@media(min-width:1000px) and (min-height:531px) and (max-height:800px){
 #battle-hud{grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto minmax(0,1fr)}
 #battle-hud .battle-top{grid-column:1/-1}
 #battle-hud .battle-workspace{grid-column:1;grid-row:2;min-width:0}
 #battle-hud .command-wrap{grid-column:2;grid-row:2;align-self:end;width:100%;max-height:100%}
 #battle-hud .command-guide{padding:9px 10px;gap:9px}
 #battle-hud .guide-number{font-size:14px;padding-right:9px}
 #battle-hud .unit-heading>small{display:none}
 #battle-hud .unit-selector>button{padding:6px}
 #battle-hud .unit-selector kbd{display:none}
 #battle-hud .commands strong{font-size:12px}
 #battle-hud .commands small{font-size:9px}
 #battle-hud .planning-banner{gap:7px;flex-wrap:wrap;padding:8px}
 #battle-hud .planning-banner>span{display:none}
 #battle-hud #resume-plan{padding:7px 12px;font-size:12px}
 #battle-hud #resume-plan kbd{display:none}
 #battle-hud .navigation-confirm{gap:6px;padding:8px}
 #battle-hud .tactical-note{font-size:9px;padding:6px 9px}
 #battle-hud .tactical-note span{display:none}
 #app[data-view="battle"] #toast{max-width:calc(100% - 440px);left:24px;right:auto;margin-inline:0;transform:translateY(-5px)}
 #app[data-view="battle"] #toast.visible{transform:none}
}
/* v11: explicit plan review and an opt-in, reversible battle viewing mode. */
#battle-hud #immersive-toggle{color:#e0cea4;border-left:1px solid #58717a66;padding-left:10px}
#battle-hud #review-plan{color:#f0ddb0;border:1px solid #9a916a80}
.plan-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}
.plan-force{padding:12px 14px;border:1px solid #47616d80;background:#10202a}
.plan-force strong{font-size:13px;color:#e0cfa9;font-weight:500}
.plan-force p,.plan-support p{font-size:12px;line-height:1.7;color:#bdccd2;margin:5px 0 0;overflow-wrap:anywhere}
.plan-support-list{display:grid;gap:8px;margin:12px 0}
.plan-support{border-left:2px solid #83a99b;padding:10px 14px;background:#17292e}
.plan-support[data-state="blocked"]{border-color:#cc996c}
.plan-support strong{font-size:13px;color:#e0e3d4}
.plan-support>span{font-size:10px;color:#abc0c0;float:right;margin-left:10px}
.plan-order-list{border-top:1px solid #4c626c70;margin-top:18px;padding-top:12px}
.plan-order-list summary{font-size:12px;color:#d5c9a8;cursor:pointer}
.plan-order-list ol{list-style:none;padding:0;margin:8px 0}
.plan-order-list li{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #344b5555}
.plan-order-list li>div{flex:1;min-width:0}
.plan-order-list b{font-size:12px;font-weight:400;color:#c9d7dc}
.plan-order-list small{display:block;font-size:10px;color:#98aeb9;margin-top:3px}
.plan-order-list button{min-height:38px;padding:6px 13px;margin:0;font-size:11px}
.plan-note{font-size:11px;line-height:1.8;color:#b9c5c5}
.plan-review-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:15px 0}
.plan-review-actions button{min-height:42px;margin:0;font-size:12px;padding:10px 16px}
.plan-review-actions .primary-button{margin-left:auto}
#app[data-immersive="true"] .topbar,#app[data-immersive="true"] #battle-hud>.battle-top,#app[data-immersive="true"] #battle-hud>.command-wrap,#app[data-immersive="true"] #battle-hud .render-stats,#app[data-immersive="true"] #target-labels,#app[data-immersive="true"] #enemy-bearing,#app[data-immersive="true"] #intel-drawer{display:none!important}
#app[data-immersive="true"] #battle-hud{inset:0;display:block;padding:0}
#app[data-immersive="true"] #battle-hud .battle-workspace{position:absolute;inset:0;width:100%;height:100%;min-height:0}
#app[data-immersive="true"] #toast{top:max(18px,env(safe-area-inset-top));font-size:11px}
#battle-hud .immersive-controls{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:12}
#battle-hud .immersive-readout{display:flex;gap:12px;align-items:center;font-family:inherit;font-size:11px;line-height:1.5;color:#adbec8;text-shadow:0 1px 4px #000;background:#07101bc4;border:1px solid #627c7938;padding:6px 12px;max-width:100%;border-radius:2px}
#battle-hud .immersive-readout strong{font-weight:400;color:#d9cba9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
#battle-hud .immersive-readout span{white-space:nowrap}
#battle-hud .immersive-toolbar{display:flex;gap:3px;padding:4px;background:#0b1721de;border:1px solid #6b838466;pointer-events:auto;box-shadow:0 4px 24px #0005}
#battle-hud .immersive-toolbar button{font-family:inherit;font-size:12px;line-height:1.4;min-height:40px;min-width:48px;padding:8px 13px;color:#b7c8d0;border:1px solid transparent;white-space:nowrap}
#battle-hud .immersive-toolbar button.active{color:#f1d99b;background:#ccb57919;border-color:#bba46950}
#battle-hud .immersive-toolbar #immersive-return{color:#17242b;background:#d7bd80;border-color:#e6d09a;margin-left:4px}
#battle-hud .immersive-toolbar #immersive-pause{border-left:1px solid #60757e55;color:#e0dfce}
@media(max-width:600px){
 .plan-review-grid{grid-template-columns:1fr;gap:6px;margin:12px 0}
 .plan-force{padding:10px 12px}
 .plan-review-actions{gap:6px}
 .plan-review-actions button{font-size:11px;padding:9px 12px}
 #battle-hud #immersive-toggle{padding-left:6px}
 #battle-hud #immersive-toggle kbd{display:none}
 #battle-hud .immersive-controls{bottom:max(12px,env(safe-area-inset-bottom));max-width:calc(100% - 16px);gap:6px}
 #battle-hud .immersive-readout{font-size:10px;gap:8px;flex-wrap:wrap;justify-content:center;padding:5px 8px}
 #battle-hud .immersive-readout strong{display:none}
 #battle-hud .immersive-toolbar{gap:1px;padding:3px}
 #battle-hud .immersive-toolbar button{font-size:11px;min-width:40px;padding:8px 9px}
 #battle-hud .immersive-toolbar kbd{display:none}
}
