:root{color-scheme:dark;--bg:#0c151e;--panel:#15232e;--line:#2c3e4b;--muted:#a3b3be;--text:#f0f3f5;--blue:#a6c4d8;--gold:#dbb873;--red:#ce7469}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button{font-family:inherit;font-size:14px;font-weight:600;line-height:1.3;cursor:pointer;border:1px solid var(--line);background:#1c2e3a;color:var(--text);border-radius:5px;min-height:40px;padding:8px 12px;transition:background .12s,border .12s}button:hover{background:#2c4150;border-color:#7193aa}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}header{min-height:92px;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{background:var(--blue);color:#14212b;width:42px;height:47px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);display:grid;place-items:center;font-size:16px;font-weight:800}.brand h1{font:800 26px/1.1 Georgia,serif;letter-spacing:3px;margin:0}.brand span:not(.brand-mark){font-size:12px;letter-spacing:2px;color:var(--muted)}.version{font-size:11px;color:#a7bdcb;border:1px solid #385363;border-radius:3px;padding:3px 7px;letter-spacing:1px;align-self:flex-start;margin-top:5px}.header-actions{display:flex;gap:7px}.header-actions button{font-size:13px}main{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:18px;padding:20px 24px;max-width:1800px;margin:auto}.theatre{min-width:0}.campaign-bar{display:flex;justify-content:space-between;align-items:center;padding:0 2px 16px;gap:16px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1.8px;color:var(--muted)}h2{margin:3px 0 0;font:normal 26px/1.2 Georgia,serif}.stats{display:flex;gap:26px}.stats div{display:flex;flex-direction:column}.stats span{font-size:11px;letter-spacing:1px;color:var(--muted)}.stats strong{font-size:20px;font-weight:550;color:var(--gold)}.map-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#192a36;border:1px solid var(--line);padding:9px 10px;border-radius:7px 7px 0 0}.layer-buttons,.zoom{display:flex;gap:5px}.map-tools button{font-size:12px;min-height:32px;padding:5px 10px}.map-tools button[aria-pressed=true]{background:#40515b;border-color:var(--gold);color:var(--gold)}.map-region{font-size:10px;letter-spacing:2px;color:#a6b7c4}#map-viewport{background:#31444b;overflow:auto;max-height:calc(100vh - 295px);min-height:430px;scrollbar-color:#687d85 #20343d;position:relative;border:1px solid #556264;border-top:0}#map{width:100%;min-width:640px;display:block;background:#b6ae91;user-select:none;touch-action:pan-x pan-y}.hex{stroke:#7f806e;stroke-width:.75;cursor:pointer;transition:fill .1s}.hex:hover{stroke:#f3daa1;stroke-width:2}.hex.reachable{stroke:#f6d38a;stroke-width:2.5}.unit{cursor:pointer}.unit rect.counter{stroke-width:1.8}.unit:hover rect.counter{stroke:#fff5d9;stroke-width:3}.city-label{font-family:Georgia,serif;font-size:13px;font-weight:700;fill:#1b2b2d;paint-order:stroke;stroke:#d4ccb0;stroke-width:3px;pointer-events:none}.region-label{font:italic 21px Georgia,serif;fill:#495144;letter-spacing:5px;opacity:.65;pointer-events:none}.water-label{font:italic 17px Georgia,serif;fill:#bdd2d5;letter-spacing:4px;pointer-events:none}.map-footer{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;font-size:11px;color:var(--muted);border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px}.swatch{display:inline-block;width:10px;height:10px;margin:0 5px 0 9px;border-radius:2px}.swatch.axis{background:var(--blue);margin-left:0}.swatch.soviet{background:var(--red)}.rail-key{margin-left:12px;color:#d6c29d;font-size:18px}.river-key{margin-left:10px;color:#74abc0}#message{padding:13px 3px;color:#c3d3dc;font-size:14px;min-height:60px}aside{display:flex;flex-direction:column;gap:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:17px}.panel-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);gap:5px}.panel h3{font:normal 21px/1.25 Georgia,serif;margin:11px 0}.phase{color:var(--gold);font-size:10px;letter-spacing:.8px}.priorities{display:flex;gap:4px}.priorities button{font-size:12px;padding:8px;flex:1}.priorities .active{background:var(--blue);color:#172832;border-color:var(--blue)}.muted{color:var(--muted);font-size:14px;line-height:1.5;margin:10px 0 14px}.primary{background:var(--gold);color:#202829;border-color:var(--gold)}.primary:hover{background:#f0d196;border-color:#f4d797}#end-turn{width:100%;margin:3px 0 8px;font-size:14px}.command small{font-size:11px;color:var(--muted);display:block;text-align:center}.unit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.unit-grid span{display:block;color:var(--muted);font-size:11px;letter-spacing:.6px;text-transform:uppercase}.unit-grid strong{font-size:17px}.supply-ready{color:#b6ceae}.supply-strained{color:#e3c274}.supply-isolated{color:#f0a092}#unit-actions{display:flex;flex-wrap:wrap;gap:6px}#unit-actions[hidden]{display:none}#unit-actions button{font-size:12px;flex:1}.objective{display:flex;align-items:center;justify-content:space-between;gap:7px;border-bottom:1px solid #283b46;padding:9px 0;font-size:14px}.objective:last-child{border:0}.objective-name{display:flex;align-items:center;gap:7px}.objective .owner{height:7px;width:7px;border-radius:50%;background:var(--red)}.objective.axis .owner{background:var(--blue)}.objective b{color:var(--gold);font-weight:600}.score-note{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.7}#log{list-style:none;padding:0;margin:10px 0 0;max-height:175px;overflow:auto}#log li{font-size:12px;color:#b5c6d2;padding:7px 0;border-bottom:1px solid #293a46}#log li span{font-size:10px;color:#7f98a8;margin-right:7px}dialog{background:#152630;color:var(--text);border:1px solid #547082;border-radius:10px;padding:28px;width:min(880px,calc(100% - 30px));max-height:90vh;box-shadow:0 30px 90px #0008}dialog::backdrop{background:#060e17c9;backdrop-filter:blur(4px)}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.modal-heading button{font-size:24px;min-width:42px}.manual-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:15px 0}.manual-grid h3{font-size:17px;color:var(--gold);margin:20px 0 8px}.manual-grid p,dialog p{font-size:14px;color:#c4d1da;line-height:1.7}.sources{border-top:1px solid var(--line);padding-top:15px}.sources a{color:var(--blue)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.danger{background:#9e5149;border-color:#d18477}#combat-dialog,#restart-dialog,#result-dialog{max-width:510px}#combat-details{margin:20px 0}.combat-ratio{font-size:32px;color:var(--gold)}.combat-names{display:flex;justify-content:space-between;gap:16px;font-size:14px;margin:15px 0}.combat-names strong{display:block;font-size:22px}.notice{padding:10px;background:#213844;border-left:3px solid var(--gold)}@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) 330px}#map-viewport{max-height:calc(100vh - 285px)}}@media(max-width:1050px){.map-region{display:none}header{padding:15px 18px}.version{display:none}main{padding:16px;gap:12px;grid-template-columns:minmax(0,1fr) 280px}.stats{gap:16px}.map-footer>span{display:none}}@media(max-width:800px){header{flex-wrap:wrap;gap:14px;padding:16px}.brand h1{font-size:24px}.header-actions{width:100%;justify-content:space-between}.header-actions button{flex:1;font-size:12px;padding:8px}main{display:flex;flex-direction:column;padding:12px}.campaign-bar h2{font-size:22px}.stats{gap:15px}.stats strong{font-size:17px}.stats span{font-size:10px}.eyebrow{font-size:10px}.campaign-bar{padding-bottom:12px}#map-viewport{min-height:330px;max-height:58vh}#map{min-width:850px}.map-tools button{font-size:11px;padding:5px 7px}aside{display:grid;grid-template-columns:1fr 1fr;align-items:start}.command{grid-column:1/-1}.priorities button{font-size:14px}.panel{padding:14px}.dispatches{grid-column:1/-1}.manual-grid{grid-template-columns:1fr;gap:0}dialog{padding:20px}.map-footer{font-size:10px}#message{min-height:0;font-size:13px;padding:12px 3px}.command small{font-size:12px}}@media(max-width:440px){aside{display:flex}.stats{gap:11px}.map-tools{padding:7px}.map-footer>div{font-size:10px}.campaign-bar h2{font-size:20px}.brand span:not(.brand-mark){font-size:10px}.modal-heading h2{font-size:22px}}

.next-unit{width:100%;margin:0 0 10px;font-size:12px}.supply-explanation{font-size:12px;color:var(--muted);border-left:2px solid var(--gold);padding-left:9px}.unit-grid small{font-size:10px;color:var(--muted);display:block}.reserve-info{font-size:11px;color:var(--gold);margin:12px 0 0;text-align:center}.score-breakdown{font-size:12px;color:var(--gold);margin-top:12px;line-height:1.5}#objectives{max-height:300px;overflow-y:auto}.map-tools button{min-height:36px}@media(max-width:800px){.map-tools button{min-height:40px}.map-footer:after{content:"Swipe map to explore";color:var(--gold);margin-left:8px}}
/* Field edition: geographic cartography and a quieter command desk. */
:root{--bg:#111d25;--panel:#182a35;--line:#334754;--muted:#a8bac2;--text:#eef2f1;--gold:#d1b171;--blue:#bed4df;--red:#cb8976}header{min-height:76px;padding:12px 24px;background:#13232d}.brand h1{font-family:Georgia,serif;font-size:25px;letter-spacing:3.6px}.brand-mark{border:1px solid #87a8b7;background:transparent;color:#bdd3df;width:40px;height:44px}.brand span:not(.brand-mark){font-size:10px;letter-spacing:2.4px}.version{font-size:9px;color:#b8c7cb;letter-spacing:1.5px}.header-actions button{background:transparent;border-color:#344954;font-weight:500}main{padding:18px 22px;gap:18px;grid-template-columns:minmax(0,1fr) 298px;max-width:1900px}.campaign-bar{padding:0 3px 14px}.campaign-bar h2{font-size:24px;letter-spacing:.3px}.stats strong{font-variant-numeric:tabular-nums}.map-tools{background:#20343e;padding:7px 9px;border-color:#4b6165;border-radius:3px 3px 0 0}.map-tools button{border-color:#496069;background:transparent;font-size:12px;min-height:34px}.map-tools button:hover{background:#344a54}.map-tools button[aria-pressed=true]{background:#c4b080;color:#1d3039;border-color:#c4b080}.map-region{font-size:9px;letter-spacing:2px}.zoom button{min-width:32px}#map-viewport{border-color:#566b6e;background:#294654;max-height:calc(100vh - 266px);min-height:350px;border-top:0}#map{width:100%;min-width:0;background:#d9d1b8;overflow:visible}.hex{cursor:pointer;transition:fill .12s;stroke-linejoin:round}.hex:hover{fill:#f5e3a3;fill-opacity:.25;stroke:#8b7443;stroke-opacity:.7;stroke-width:1.3}.hex.reachable{stroke:#9d742f;stroke-opacity:1;stroke-width:1.8}.unit rect.counter{stroke-width:1.3}.unit:hover rect.counter{stroke:#dfbc66;stroke-width:2.4}.unit:focus{outline:none}.unit:focus rect.counter{stroke:#ca9d41;stroke-width:3}.city-label{font-family:Georgia,'Times New Roman',serif;font-size:16px;font-weight:600;fill:#243a38;paint-order:stroke;stroke:#e5dec5;stroke-width:4px;stroke-linejoin:round;pointer-events:none;letter-spacing:.1px}.city-label.major-city{font-size:20px;font-weight:700;fill:#263b37}.city-meta{font-family:Arial,sans-serif;font-size:8.5px;font-weight:700;letter-spacing:1px;fill:#5d6553;paint-order:stroke;stroke:#dfd8bd;stroke-width:2px}.land-region{font-family:Georgia,serif;font-size:20px;fill:#7a826c;letter-spacing:4px;opacity:.65}.sea-label{font-family:Georgia,serif;font-style:italic;font-size:22px;fill:#aac0c9;letter-spacing:4px;opacity:.85}.mountain-label{font-family:Georgia,serif;font-size:17px;fill:#444f3d;opacity:.78}.river-label{font-family:Georgia,serif;font-size:16px;font-style:italic;fill:#3d7089;paint-order:stroke;stroke:#dfd9bf;stroke-width:3px}.map-footer{border-color:#384e56;border-radius:0 0 3px 3px;background:#172b35;padding:8px 12px;align-items:center}.map-footer>span{font-size:10px}#message{border-left:2px solid #c2a367;margin:12px 0 0;padding:4px 12px;min-height:40px;font-size:13px}.panel{border-radius:4px;padding:15px 17px;box-shadow:0 3px 12px #06111a15}.command{background:#1c313d;border-top:2px solid #c0a56c}.panel h3{font-size:20px}.eyebrow{font-size:10px;letter-spacing:1.8px}.priorities{gap:0;border:1px solid #46606c;border-radius:4px;overflow:hidden}.priorities button{border:0;border-radius:0;font-size:12px;min-height:36px;font-weight:500}.priorities .active{background:#d0bc8d;color:#24343c}.primary{font-weight:650}.unit-grid{gap:10px;margin:12px 0}.unit-grid strong{font-variant-numeric:tabular-nums;font-size:19px}.unit-grid span{font-size:10px;letter-spacing:1px}.next-unit{background:#243c48;min-height:34px}.objective{font-size:13px;padding:7px 0}.objective b{font-size:13px}.score-note{font-size:11px}#objectives{max-height:240px}#log{max-height:150px}.supply-explanation{font-size:12px;line-height:1.6}.reserve-info{font-size:10px;letter-spacing:.3px}.map-footer .swatch{border:1px solid #ffffff55}.map-footer .swatch.axis{background:#7299ad}.map-footer .swatch.soviet{background:#b97766}.score-breakdown{font-size:11px}.dispatches{background:#142731}@media(min-width:1000px){aside{max-height:calc(100vh - 114px);overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#435d68 transparent}.theatre{position:sticky;top:18px;align-self:start}}@media(max-width:1050px){main{grid-template-columns:minmax(0,1fr) 274px;padding:14px;gap:12px}.map-region{display:none}.map-tools{gap:5px}.map-tools button{font-size:11px;padding:6px 8px}}@media(max-width:800px){header{padding:13px 14px;gap:12px;min-height:0}.header-actions{gap:6px}.header-actions button{font-size:11px;min-height:35px}.brand h1{font-size:23px}main{padding:12px;display:flex;gap:14px}.campaign-bar h2{font-size:21px}.stats{gap:16px}.stats strong{font-size:18px}#map-viewport{min-height:0;max-height:65vh;overflow:auto}#map{min-width:800px}.map-tools{flex-wrap:nowrap;padding:7px}.map-tools button{min-height:38px;padding:5px 7px;font-size:11px}.layer-buttons,.zoom{gap:4px}.map-footer{flex-wrap:wrap;padding:7px 9px;font-size:10px}.map-footer:after{font-size:10px}.panel{padding:14px 16px}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.command{grid-column:1/-1}.dispatches{grid-column:1/-1}.unit-grid strong{font-size:18px}.priorities button{font-size:13px}.map-footer>span{display:none}.campaign-bar .eyebrow{font-size:9px;letter-spacing:1px}#message{font-size:12px;margin-top:10px;min-height:0}}@media(max-width:460px){aside{display:flex}.map-tools button{padding:5px 6px;font-size:10px}.map-tools .zoom button{min-width:29px}.stats{gap:12px}.stats span{font-size:9px}.stats strong{font-size:17px}}

.city-label,.city-meta,.river-label{stroke:none}.city-label.label-halo{fill:none;stroke:#e5dec5;stroke-width:4px;stroke-linejoin:round}.river-label.label-halo{fill:none;stroke:#dfd9bf;stroke-width:3px;stroke-linejoin:round}

.city-meta.label-halo{fill:none;stroke:#e5dec5;stroke-width:2.3px;stroke-linejoin:round}

.combat-option{display:flex;align-items:center;gap:9px;color:var(--text);font-size:14px}.combat-option input{width:18px;height:18px;accent-color:#d1b171}

/* Raised, bevelled operational counters; values stay high-contrast after acting. */
.unit .counter{stroke-width:1.2;transition:stroke .12s}.unit:hover .counter{stroke:#dbb454;stroke-width:2}.unit:focus .counter{stroke:#d5aa43;stroke-width:2.4}.unit-spent{opacity:1}

/* Command edition 0.5: always-visible grid and explicit combat controls. */
.attack-control{margin:0 0 14px}.attack-control>button{width:100%;font-size:15px;min-height:42px}.attack-control .muted{font-size:14px;line-height:1.5;margin:8px 0 10px}#attack-targets{display:grid;gap:6px}#attack-targets[hidden]{display:none}#attack-targets button{font-size:14px;min-height:42px;text-align:left;border-color:#925f50}.unit.attack-target:hover .counter,.unit.attack-target:focus .counter{stroke:#a74332;stroke-width:3}
/* Full-offensive working surface. Natural-scale map scrolls; Fit shows the whole theatre. */
:root{--muted:#b4c3ca}main{grid-template-columns:minmax(0,1fr) 326px}#map{min-width:0}#map-viewport{max-height:calc(100vh - 252px);min-height:430px}.campaign-bar h2{font-size:23px}.sector-picker{max-width:230px;min-width:0;flex:1}.sector-picker select{font:500 14px/1.3 system-ui;color:var(--text);background:#20343e;border:1px solid #496069;border-radius:4px;min-height:36px;padding:6px 10px;width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.formation-note{color:#b3c3ca;font-size:13px;line-height:1.5;border-top:1px solid #334754;padding-top:8px}.unit-grid span{font-size:11px}.unit-grid strong{font-size:17px}.unit-grid small{font-size:12px}.supply-explanation{font-size:13px}.panel-heading{font-size:12px}.phase{font-size:11px}.eyebrow{font-size:11px}.command small,.reserve-info{font-size:12px;line-height:1.5}#unit-actions{display:grid;grid-template-columns:1fr 1fr}#unit-actions button{font-size:13px}.objective .objective-name{background:transparent;border:0;padding:0;text-align:left;min-height:24px;font-size:14px;font-weight:500}.objective .objective-name:hover{text-decoration:underline}.objective b{font-size:14px}.score-note,.score-breakdown{font-size:12px;line-height:1.6}#objectives{max-height:280px}#log li{font-size:13px}.support-picker{border:1px solid #4d6370;border-radius:5px;padding:10px 14px;margin:20px 0}.support-picker legend{font-size:15px;color:var(--gold)}#support-help{font-size:13px;margin:3px 0 12px}#combat-support{display:grid;gap:8px}#combat-support label{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;padding:7px;background:#203640;border-radius:3px}#combat-support input{width:18px;height:18px;flex-shrink:0;accent-color:#d1b171}.combat-rule{font-size:13px!important;border-left:2px solid #567581;padding-left:9px}.warning{color:#f3baa3!important}#combat-dialog{max-width:640px}.manual-grid a{color:#bbdce8}.map-tools button{font-size:14px}.map-footer>span{font-size:11px}#message{font-size:14px}.next-unit{font-size:14px}button:disabled{opacity:.5}
@media(max-width:1050px){main{grid-template-columns:minmax(0,1fr) 296px}.campaign-bar h2{font-size:20px}.stats{gap:15px}.sector-picker{max-width:180px}}
@media(max-width:800px){main{display:flex}.campaign-bar{align-items:flex-start;gap:8px}.campaign-bar h2{font-size:19px}.stats{gap:12px}.stats strong{font-size:17px}.stats span{font-size:10px}.campaign-bar .eyebrow{font-size:9px}#map-viewport{min-height:330px;max-height:62vh}.map-tools{gap:8px}.map-tools button{font-size:13px;min-height:40px}.sector-picker select{font-size:13px;min-height:40px;padding:5px 7px}.map-tools .zoom button{min-width:32px}.sector-picker{max-width:210px}.map-footer:after{content:'Swipe to explore; choose a sector to jump'}aside{display:flex}.manual-grid{grid-template-columns:1fr}.version{display:none}}
@media(max-width:460px){.campaign-bar h2{font-size:17px}.stats{gap:9px}.map-tools{gap:5px}.map-tools button{font-size:12px;padding:5px 7px}.sector-picker select{font-size:12px;padding:5px;max-width:150px}.zoom{gap:3px}.map-footer>span{display:none}}

.city-label{font-size:14px}.city-label.major-city{font-size:20px}.participant-losses{font-size:13px;color:#c9d5dc;line-height:1.6;padding-left:20px}
dialog{overflow-y:auto;overscroll-behavior:contain}

/* 0.6.1: keep the selected formation and Attack ahead of its detailed stats. */
.formation-top{position:sticky;top:0;z-index:2;background:var(--panel);padding:1px 0 2px}.formation-top .attack-control{margin-bottom:8px}.formation-top .attack-control>button{min-height:46px;font-size:16px}.formation-top #unit-heading .muted{margin:5px 0 10px}.formation-top #unit-heading h3{margin-bottom:5px}.formation-top .attack-control .muted{margin-bottom:6px}

/* 0.6.1: quiet default view, with deeper information available on demand. */
.map-tools{justify-content:space-between}.campaign-bar{align-items:center}.unit-essentials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}.unit-essentials span{display:block;font-size:11px;color:var(--muted)}.unit-essentials strong{display:block;font-size:16px;font-weight:650;white-space:nowrap}.unit-essentials small{display:block;font-size:11px;color:var(--muted);line-height:1.5}.unit-alert{font-size:13px;margin:6px 0 12px}.panel summary,#unit-panel summary{cursor:pointer;font-size:14px;font-weight:600;list-style-position:inside;color:var(--text);min-height:30px}.panel summary:focus-visible,#unit-panel summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.panel details{border-top:1px solid var(--line);padding-top:9px;margin-top:8px}.panel details[hidden]{display:none}.logistics-inline{float:right;font-size:12px;color:var(--muted);font-weight:400}.logistics-inline strong{color:var(--gold);font-weight:650}#unit-actions{margin:8px 0 4px}#unit-panel .next-unit{margin:12px 0 0}.turn-length{font-size:12px;color:var(--muted)}.command #end-turn{margin:10px 0 0}.objectives .reserve-info{text-align:left}.objectives[open] #objectives{margin-top:12px}.objectives:not([open]),.dispatches:not([open]){padding-top:12px;padding-bottom:9px}.formation-top{border-bottom:1px solid var(--line)}.formation-top .attack-control{margin-bottom:9px}.formation-top .attack-control .muted{font-size:13px;line-height:1.4}.formation-top #unit-heading h3{margin-top:10px;margin-bottom:12px}#unit-details .unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-footer:after{content:none!important}
@media(max-width:800px){#map-viewport{max-height:45vh;min-height:270px}.unit-essentials strong{font-size:18px}.unit-essentials span,.unit-essentials small{font-size:12px}.panel summary,#unit-panel summary{min-height:36px}.command{grid-column:auto}.campaign-bar h2{margin-top:0}}
/* Command desk: quiet period cartography and large, phone-first choices. */
[hidden]{display:none!important}.home-screen{position:relative;min-height:100svh;overflow:hidden;background:#10202a;color:#eee6d2}.home-map-wrap,.home-shade{position:absolute;inset:0;pointer-events:none}.home-map-wrap{opacity:.34;filter:saturate(.35) contrast(1.05)}#home-cartography{width:100%;height:100%;min-height:100svh;display:block}.home-shade{background:linear-gradient(180deg,#0e1e29aa 0%,#10202a5c 33%,#0a1725ed 83%,#0a1725 100%),radial-gradient(ellipse at 50% 20%,transparent 0%,#0817238c 75%)}.home-content{position:relative;z-index:1;max-width:500px;min-height:100svh;padding:42px 30px 26px;margin:auto;display:flex;flex-direction:column;justify-content:center;align-items:stretch;text-align:center}.home-kicker{display:flex;align-items:center;gap:13px;color:#d3bf8e;font-size:11px;letter-spacing:2.2px;white-space:nowrap}.home-rule{height:1px;background:#a99870;flex:1;opacity:.7}.home-title{font-family:Georgia,'Times New Roman',serif;font-size:clamp(72px,13vw,106px);font-weight:500;line-height:.88;letter-spacing:7px;margin:30px 0 20px;text-shadow:0 3px 24px #07111de0}.home-dates{font-size:11px;letter-spacing:2.6px;color:#c6c5b5;margin:0 0 32px}.home-prompt{font-size:14px;color:#c1cbd0;margin:0 0 10px}.side-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.side-choices button{min-height:78px;border:1px solid #73808a;background:#152b37d9;border-radius:6px;text-align:left;padding:13px 17px}.side-choices strong{display:block;font-size:17px;font-weight:650;letter-spacing:2px;color:#e8e5da}.side-choices span{display:block;font-size:12px;font-weight:400;color:#b8c6cb;margin-top:5px}.side-choices button[aria-pressed=true]{border-color:#d6b974;box-shadow:inset 0 0 0 1px #d6b974;background:#263a41}.side-choices button[aria-pressed=true] strong{color:#f0d899}.home-primary,.home-secondary{width:100%;min-height:56px;font-size:17px;border-radius:5px;letter-spacing:.1px}.home-primary{background:#dbc18a;border-color:#eed59d;color:#172530;margin-bottom:10px;box-shadow:0 5px 20px #0003}.home-primary:hover{background:#efdaab}.home-secondary{background:#152b39d9;border-color:#627580;color:#e5ebe8}.home-continue{margin-top:14px;min-height:44px;width:100%;background:transparent;border-color:transparent;color:#d5c394;font-weight:500}.home-footer{font-size:12px;line-height:1.5;color:#9bafb8;margin:27px 0 0}.movement-reason{font-size:13px;color:#dcc18b;margin:5px 0 12px}.hex{pointer-events:all}.save-dialog{max-width:580px}.save-scope,.save-notice{font-size:13px!important;color:#b7c9d1!important;line-height:1.5!important}.save-slots{display:grid;gap:8px;margin:16px 0}.save-slot{display:block;text-align:left;width:100%;min-height:65px;padding:10px 12px}.save-slot strong{display:block;font-size:15px;overflow-wrap:anywhere}.save-slot span{display:block;font-size:12px;font-weight:400;color:#b6c7d0;margin-top:4px;line-height:1.4}.save-slot[aria-pressed=true]{border-color:#d6b974;background:#2d4148;box-shadow:inset 0 0 0 1px #d6b974}.save-name-label{display:block;font-size:14px;color:#c3d0d5}.save-name-label input{display:block;width:100%;margin-top:7px;font:16px system-ui;color:var(--text);background:#10202b;border:1px solid #5d7382;border-radius:5px;min-height:46px;padding:10px 12px}.save-dialog .dialog-actions{position:sticky;bottom:-28px;background:#152630;border-top:1px solid #405565;padding:14px 0 0;margin-bottom:-8px}.save-dialog .dialog-actions button{min-height:44px}.save-slot:disabled{opacity:.65}button{min-height:44px}.map-tools button,.zoom button,.header-actions button,.next-unit{min-height:44px!important}.map-tools{touch-action:manipulation}#map-viewport{touch-action:none;overscroll-behavior:contain;height:min(65vh,760px)}#map{touch-action:none}.map-footer{user-select:none}.panel summary{min-height:44px!important;padding-top:5px}
@media(max-width:800px){.home-content{padding:28px 24px 24px}.home-title{font-size:90px;letter-spacing:5px;margin-top:27px}.home-dates{margin-bottom:28px}.home-kicker{font-size:10px;letter-spacing:1.5px}.side-choices button{padding:12px 14px}.side-choices span{font-size:12px}#map-viewport{height:40svh;min-height:255px;max-height:360px}.header-actions button{font-size:12px}#unit-panel{scroll-margin-top:12px}.save-dialog .dialog-actions{bottom:-20px;gap:7px;flex-wrap:wrap}.save-dialog .dialog-actions button{flex:1;font-size:13px}.save-slot{min-height:72px}.home-footer{margin-top:22px}}
@media(max-height:720px){.home-content{padding-top:22px;padding-bottom:20px}.home-title{font-size:72px;margin:22px 0 16px}.home-dates{margin-bottom:23px}.home-footer{margin-top:20px}.side-choices button{min-height:70px}}

.mobile-command-bar{display:none}@media(max-width:800px),(max-width:1100px) and (max-height:600px) and (any-pointer:coarse){#game-shell{padding-bottom:calc(var(--mobile-command-height,calc(148px + env(safe-area-inset-bottom,0px))) + 12px)}.mobile-command-bar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:12;background:#112630;border-top:1px solid #5f7077;padding:8px 12px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 20px #06111a44}.mobile-command-bar p{grid-column:1/-1;margin:0;color:#c5d1d5;font-size:12px;line-height:1.35}.mobile-command-bar button{min-height:46px;font-size:15px}.is-panning{user-select:none}}

.home-screen,.home-content{min-height:100vh;min-height:100svh}@media(max-width:800px){#map-viewport{height:40vh;height:40svh}}

/* Mobile audit: overview guidance, touch-landscape controls and measured dock clearance. */
.map-footer{flex-wrap:wrap}
@media(max-width:1100px) and (max-height:600px) and (any-pointer:coarse) and (orientation:landscape){
 header{flex-wrap:nowrap;min-height:0;padding:8px 12px;gap:12px}.brand h1{font-size:20px}.brand span:not(.brand-mark){display:none}.header-actions{width:auto;gap:5px}.header-actions button{font-size:12px;padding:8px}
 main{display:grid;grid-template-columns:minmax(0,1fr) 240px;padding:10px 12px;gap:12px}.campaign-bar h2{font-size:16px}.stats{gap:8px}.stats strong{font-size:16px}
 #map-viewport{min-height:140px;height:40vh;height:40svh;max-height:240px}aside{display:flex;max-height:calc(100vh - 170px);max-height:calc(100svh - 170px);overflow:auto;scrollbar-width:thin;padding-right:3px}.theatre{position:static}.panel{padding:12px}.manual-grid{grid-template-columns:1fr}.map-footer{padding:6px 8px}
 .mobile-command-bar{grid-template-columns:minmax(0,1fr) minmax(100px,180px) minmax(100px,180px);align-items:center;padding:7px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.mobile-command-bar p{grid-column:auto}.mobile-command-bar button{font-size:14px}
}
/* 0.8: battle selection stays on the map, with period faction markers. */
.home-tagline{font:italic 20px/1.4 Georgia,serif;color:#d8ccb3;margin:0 0 30px}.side-choices button{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:110px}.faction-flag{display:block;width:80px;height:48px;object-fit:fill;border:1px solid #fff2;box-shadow:0 2px 8px #0005}.home-sound{align-self:center;margin-top:24px;background:transparent;border-color:#79848677;color:#becdd3;font-size:13px;padding:8px 16px;min-height:44px}.map-stage{position:relative}.map-battle{position:absolute;left:10px;right:10px;top:10px;z-index:6;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;background:#122832ef;border:1px solid #b49e69;border-radius:5px;padding:9px 10px;box-shadow:0 4px 16px #06121a55;pointer-events:none}.map-battle button{pointer-events:auto;min-height:44px;font-size:14px}.map-battle-info strong{display:inline-block;color:#efd79c;font-size:20px;line-height:1.2;margin-right:8px}.map-battle-info span{font-size:14px;color:#edf0e8;line-height:1.3}.map-battle-info small{display:block;font-size:12px;color:#c0cfd3;line-height:1.4;margin-top:4px}.cancel-selection{width:100%;font-size:13px;margin-top:7px;background:transparent}.phase-help{font-size:13px;color:#c5d2d7;line-height:1.45;margin:9px 0 10px}.phase{font-size:12px}.command{order:-1}.attack-control>button{min-height:46px}.unit.battle-selected .counter{stroke:#d9b458;stroke-width:2.2}.unit.battle-eligible .counter{stroke:#6b9ea7;stroke-width:2}.unit.battle-defender .counter{stroke:#da7756;stroke-width:2.6}.advance-hex{cursor:pointer;stroke:#c7a13f;stroke-width:3;fill:#f6d786;fill-opacity:.55}
@media(max-width:800px){.map-battle{left:6px;right:6px;top:6px;padding:8px;gap:6px;grid-template-columns:minmax(0,1fr) auto auto}.map-battle button{padding:8px;font-size:13px}.map-battle-info strong{font-size:18px}.map-battle-info span{font-size:12px}.map-battle-info small{font-size:11px}.home-tagline{font-size:18px;margin-bottom:25px}.side-choices button{min-height:106px}.header-actions button{padding-left:6px;padding-right:6px}.faction-flag{width:75px;height:45px}}

/* Deep faction faces with light tactical marks; allied accents share the Axis blue. */
.map-footer .swatch.axis{background:#2b4f69;border-color:#b4cbd8}.map-footer .swatch.soviet{background:#772e29;border-color:#e0a293}.side-key{display:inline-block;font-size:10px;font-weight:800;line-height:13px;width:14px;text-align:center;border:1px solid currentColor;margin-right:3px}.side-key.soviet{border-radius:50%}

/* City orders stay beside the map; settlement icons never intercept counter taps. */
.city-panel{margin-top:12px;padding:13px 15px;background:#19313d;border:1px solid #667373;border-radius:5px}.city-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.city-heading h3{font:22px Georgia,serif;margin:4px 0 0}.city-heading button{min-width:44px;min-height:44px;font-size:23px;background:transparent}.city-panel>p{font-size:13px;color:#c6d4d7;line-height:1.5;margin:9px 0 13px}.city-orders{display:flex;gap:10px;flex-wrap:wrap}.city-orders>div{flex:1;min-width:180px}.city-orders button{width:100%;min-height:46px;font-size:14px}.city-orders p{font-size:12px;line-height:1.45;color:#bdcdd1;margin:7px 0 0}.reinforcement-orders{padding:10px 0;border-top:1px solid #4e646c}.reinforcement-orders label{display:block;font-size:12px;color:#cbd8dc;margin-bottom:7px}.reinforcement-orders select{width:100%;min-height:46px;font:16px system-ui;background:#122b37;color:#f2e7cf;border:1px solid #819084;border-radius:4px;padding:9px 8px}.reinforcement-orders p{font-size:12px;line-height:1.45;color:#c4d3d7;margin:8px 0}.reinforcement-orders button{width:100%;min-height:44px;font-size:13px}.hex.reinforcement-city{cursor:pointer}.hex[data-city]:focus{stroke:#173e54;stroke-width:3;outline:none}
@media(max-width:800px){.city-panel{padding:12px}.city-orders{gap:12px}.city-orders>div{min-width:calc(50% - 12px)}.city-orders button{font-size:13px;padding:9px}.city-heading h3{font-size:20px}.city-panel>p{font-size:12px}}
@media(max-width:380px){.city-orders>div{min-width:100%}}

/* Full national counter faces, with explicit country codes for non-colour identification. */
.map-footer .counter-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px 13px}.counter-legend>span{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px}.counter-legend .swatch{margin-left:0;margin-right:5px}.counter-legend .swatch.hungarian{background:#205134;border-color:#b4d8bc}.counter-legend .swatch.romanian{background:#615605;border-color:#e4d65c}.counter-legend .swatch.italian{background:#215854;border-color:#9dd2c2}

.counter-legend .legend-title{font-size:10px;letter-spacing:1px;color:#d9d3b7;text-transform:uppercase;font-weight:600}

.city-name-target{cursor:pointer}.city-name-target:focus .city-label{fill:#113e56;text-decoration:underline}.map-city-orders{position:absolute;left:8px;right:8px;bottom:8px;z-index:7;padding:10px;background:#132d39f5;border:1px solid #b5a16f;border-radius:5px;box-shadow:0 3px 14px #0004}.map-city-orders{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px}.map-city-orders>strong{grid-column:1/-1;color:#f0d596;font-size:15px}.map-city-orders select{min-width:0;width:100%;font:16px system-ui;min-height:44px;background:#203d49;color:#f2e9d2;border:1px solid #779293;border-radius:4px}.map-city-orders button{min-height:44px;padding:8px;font-size:13px}.map-city-orders p{grid-column:1/-1;margin:0;font-size:12px;line-height:1.35;color:#d0dfe0}.ai-move-path{fill:none;stroke:#f3cb6c;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:7 4;pointer-events:none}.ai-action-hex{fill:#f3d78744;stroke:#f3cb6c;stroke-width:3;pointer-events:none}.ai-battle-hex{fill:#c9634844;stroke:#a93228;stroke-width:3;pointer-events:none}

@media(max-width:1100px) and (max-height:600px) and (any-pointer:coarse) and (orientation:landscape){.map-city-orders{position:static;margin-top:6px}}

/* Keep battle actions available in a small panel that can move around the map. */
.map-battle{left:8px;right:auto;top:8px;width:min(560px,calc(100% - 16px));max-width:calc(100% - 16px);grid-template-columns:44px minmax(0,1fr) 44px auto auto;gap:6px;padding:8px;pointer-events:auto}.map-battle button{min-width:44px;min-height:44px;padding:8px;font-size:13px}.map-battle .battle-drag{display:grid;place-items:center;cursor:grab;touch-action:none;user-select:none;background:transparent;color:#d6c48e}.map-battle .battle-drag:active{cursor:grabbing}#battle-toggle{font-size:22px;background:transparent;color:#e5d39f}.map-battle-info{min-width:0}.map-battle-info strong{font-size:18px;margin:0;white-space:nowrap}.map-battle-info span{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-battle-info small{font-size:11px;line-height:1.4;max-height:2.8em;overflow:hidden}.map-battle[data-collapsed=true] #map-battle-target,.map-battle[data-collapsed=true] #map-battle-forces{display:none}.map-battle[data-collapsed=true]{width:min(340px,calc(100% - 16px))}.replay-controls{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.replay-controls button{flex:1;min-height:44px;font-size:12px;padding:8px}.counter-legend .weak-key{display:none}
/* Geographic campaign title screen. The SVG uses the actual game map data. */
.home-screen{background:#0b1b25}.home-map-wrap{inset:0 -2% 0 29%;opacity:.9;filter:none}.home-map-wrap #home-cartography{height:100%;min-height:0}.home-shade{background:linear-gradient(90deg,#0b1b25 0%,#0b1b25ed 24%,#0b1b25a6 42%,#0b1b250d 74%),linear-gradient(0deg,#0b1b25f5 0%,transparent 30%,transparent 82%,#0b1b2540 100%)}.home-content{max-width:1360px;width:100%;padding:58px 52px;align-items:flex-start;text-align:left;justify-content:center}.home-title{font-size:clamp(58px,7.8vw,112px);font-weight:500;letter-spacing:.025em;line-height:1;margin:0 0 48px;max-width:100%;color:#f4e9ce;text-shadow:0 3px 28px #06121d}.home-title span{display:block;margin:16px 0 0 4px;font:500 20px/1.3 system-ui,sans-serif;letter-spacing:.36em;color:#d1b679}.home-orders{width:100%;max-width:410px}.home-prompt{font-size:15px;margin-bottom:14px;color:#d3dcdb}.home-sound{align-self:flex-start;margin-top:20px}.side-choices button{background:#152b37ed}.home-secondary{background:#122734ee}
@media(max-width:800px){.home-content{padding:32px 24px 22px;align-items:center;justify-content:flex-start;text-align:center}.home-title{font-size:clamp(31px,9.4vw,70px);letter-spacing:.018em;margin:0 0 clamp(108px,18svh,170px);white-space:nowrap}.home-title span{font-size:clamp(14px,3.8vw,20px);letter-spacing:.3em;margin:12px 0 0}.home-map-wrap{inset:72px 0 auto;height:640px;opacity:.88}.home-shade{background:linear-gradient(180deg,#0b1b25 0,#0b1b250a 135px,#0b1b2520 225px,#0b1b25e8 350px,#0b1b25 610px)}.home-orders{max-width:410px}.home-sound{align-self:center;margin-top:15px}.side-choices button{min-height:94px;gap:9px}.home-prompt{margin-bottom:10px}}
@media(max-height:520px) and (orientation:landscape){.home-content{padding:24px 32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:14px 24px;align-content:center;align-items:center;text-align:left}.home-title{font-size:clamp(28px,4.5vw,50px);margin:0;white-space:normal;align-self:end}.home-title span{font-size:14px;letter-spacing:.18em;margin-top:12px}.home-orders{grid-column:2;grid-row:1 / span 2}.home-sound{grid-column:1;grid-row:2;justify-self:start;align-self:start;margin:0}.home-map-wrap{inset:0 20% 0 0;height:auto;opacity:.65}.home-shade{background:linear-gradient(90deg,#0b1b2540,#0b1b25cc 60%,#0b1b25)}.home-prompt{font-size:14px}.side-choices{margin-bottom:10px}.side-choices button{min-height:72px;padding:8px;gap:6px}.faction-flag{width:58px;height:35px}.side-choices strong{font-size:14px}.home-primary,.home-secondary{min-height:46px}.home-continue{margin-top:3px}}
.unit-commander{display:flex;align-items:center;gap:12px;border-top:1px solid #45595d;padding:12px 0;margin-top:10px}.unit-commander img{flex:0 0 72px;width:72px;height:90px;object-fit:cover;object-position:50% 25%;filter:grayscale(1);border:1px solid #677473;border-radius:2px;background:#1b2d36}.unit-commander>div{min-width:0}.unit-commander strong{display:block;font:600 16px/1.3 Georgia,serif;color:#e5d6b5;overflow-wrap:anywhere}.commander-role{display:block;font-size:12px;line-height:1.4;color:#b4c4c9;margin-bottom:3px}.unit-commander small{display:block;font-size:12px;line-height:1.4;color:#adbec5;margin-top:4px}.unit-commander a{display:inline-flex;align-items:center;min-height:32px;font-size:12px;color:#c8c2a2}.commander-missing{font-size:12px;color:#9cadb4;margin:0}
@media(max-width:800px){.unit-commander a{min-height:44px}.unit-commander{padding:10px 0}.unit-commander img{width:64px;height:80px;flex-basis:64px}}
/* Original transparent 1942 illustration, with a protected command area. */
.home-map-wrap{inset:-8% -3% 0;opacity:.72}.home-figures{position:absolute;inset:100px 0 0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.86}.home-figures img{display:block;width:100%;height:100%;object-fit:contain}.home-shade{background:linear-gradient(180deg,#0b1b2510 0%,transparent 45%,#0b1b25e6 100%),radial-gradient(ellipse 350px 420px at 50% 63%,#0b1b25f0 0%,#0b1b25cc 60%,transparent 100%)}.home-content{align-items:center;text-align:center}.home-sound{align-self:center}
@media(max-width:800px){.home-map-wrap{inset:72px 0 auto;height:640px;opacity:.8}.home-figures{inset:98px 0 auto;height:220px;opacity:.95}.home-figures img{object-fit:contain}.home-title{margin-bottom:clamp(140px,22svh,195px)}.home-shade{background:linear-gradient(180deg,#0b1b25 0,#0b1b2510 105px,#0b1b2520 215px,#0b1b25e8 325px,#0b1b25 530px)}}
@media(max-height:520px) and (orientation:landscape){.home-content{text-align:left;align-items:center}.home-title{margin:0}.home-sound{align-self:start}.home-figures{inset:58px 43% 0 0;height:auto;opacity:.78}.home-map-wrap{inset:0 20% 0 0;height:auto;opacity:.6}.home-shade{background:linear-gradient(90deg,#0b1b2520,#0b1b25a6 53%,#0b1b25 67%)}}
/* Default combat position has its own space below the map. */
.map-stage{padding-bottom:var(--battle-dock-height,0px)}.map-battle{width:min(390px,calc(100% - 16px));padding:4px;gap:4px;grid-template-columns:44px minmax(0,1fr) 44px auto 44px;box-shadow:0 2px 7px #06121a44}.map-battle[data-collapsed=true]{width:min(330px,calc(100% - 16px))}.map-battle[data-collapsed=true] #map-battle-target{display:block}.map-battle[data-collapsed=true] #map-battle-forces{display:none}.map-battle-info strong{font-size:16px}.map-battle-info span{font-size:11px}.map-battle #map-cancel{font-size:0;padding:4px}.map-battle #map-cancel:after{content:'×';font-size:23px}.map-battle[data-advance=true] #map-cancel:after{content:'Stay';font-size:12px}.replacement-orders{display:grid;gap:7px;padding:10px 0 13px;margin-bottom:12px;border-bottom:1px solid #42575f}.replacement-orders strong{font-size:15px;color:#e3cd99}.replacement-orders p{margin:0!important;font-size:12px!important;line-height:1.4;color:#bfced3}.replacement-orders button{min-height:44px}
/* Representative photographs stay visibly distinct from commander portraits. */
.unit-commander .unit-period-photo{flex:0 0 108px;width:108px;margin:0;align-self:flex-start}.unit-commander .unit-period-photo img{display:block;width:108px;height:86px;object-fit:contain;object-position:center;background:#10212b;filter:grayscale(1)}.unit-period-photo figcaption{font-size:12px;line-height:1.35;text-align:center;color:#c8c6b4;margin-top:5px}.unit-commander .period-photo-caption{color:#d0c4a6;margin-top:7px}.unit-commander>div{overflow-wrap:anywhere}
@media(max-width:800px){.unit-commander .unit-period-photo{flex-basis:94px;width:94px}.unit-commander .unit-period-photo img{width:94px;height:80px}.unit-period-photo figcaption{font-size:12px}.unit-commander{align-items:flex-start}}

/* Winter dates and older saves remain compact and touch-accessible. */
.season-label{font-size:12px;letter-spacing:.08em;color:#52605a}.home-earlier{display:flex;align-items:center;justify-content:center;min-height:44px;padding:4px 10px;color:#d8d6c8;font:14px/1.35 system-ui;text-align:center;text-underline-offset:3px}.home-earlier:hover{color:#fff3cb}.save-scope a{display:inline-flex;align-items:center;min-height:44px}

/* Main menu shows only the two campaign choices; side selection follows New. */
.home-menu,.home-setup{width:100%}.home-back{display:block;width:100%;min-height:44px;background:transparent;border-color:transparent;color:#d8d6c8;font-size:15px}.home-back:hover{color:#fff3cb}.home-setup .home-primary{margin-bottom:0}

/* Brushed field steel frames the existing artwork and two campaign actions. */
.home-screen{background:#202824}.home-screen::before{content:'';position:absolute;inset:8px;z-index:2;border:1px solid #96998980;border-radius:8px;box-shadow:inset 0 1px 1px #dfe0c840,inset 0 -2px 3px #080b09aa,0 0 0 5px #30372f99;pointer-events:none;background:radial-gradient(circle at center,#aaa995 0 1px,#4e5549 2px,#0a100d 3px,transparent 4px) left 6px top 6px/8px 8px no-repeat,radial-gradient(circle at center,#aaa995 0 1px,#4e5549 2px,#0a100d 3px,transparent 4px) right 6px top 6px/8px 8px no-repeat,radial-gradient(circle at center,#aaa995 0 1px,#4e5549 2px,#0a100d 3px,transparent 4px) left 6px bottom 6px/8px 8px no-repeat,radial-gradient(circle at center,#aaa995 0 1px,#4e5549 2px,#0a100d 3px,transparent 4px) right 6px bottom 6px/8px 8px no-repeat}.home-screen .home-shade{background:linear-gradient(180deg,#20282115 0%,transparent 42%,#141d1ce8 100%),radial-gradient(ellipse 350px 420px at 50% 63%,#182220ef 0%,#17211fcc 60%,transparent 100%)}.home-screen .home-title{color:#e1e1ce;text-shadow:0 1px 0 #fafae759,0 3px 1px #111712,0 5px 22px #050d0c}.home-screen .home-title span{color:#c7c5a7}.home-screen .home-orders{position:relative;padding:24px;border:1px solid #969987;border-radius:7px;background:repeating-linear-gradient(0deg,#ffffff03 0 1px,#090e0b08 1px 3px),linear-gradient(135deg,#626757eb 0%,#393f35f5 12%,#434a3eea 53%,#272f28f7 100%);box-shadow:inset 0 1px 1px #d4d7be73,inset 0 -2px 3px #10170e,0 0 0 3px #151e19b3,0 9px 24px #03090880}.home-screen .home-orders::before,.home-screen .home-orders::after{content:'';position:absolute;left:8px;right:8px;height:8px;pointer-events:none;background:radial-gradient(circle at center,#b2b3a0 0 1px,#6a705e 2px,#11190f 3px,transparent 4px) left center/8px 8px no-repeat,radial-gradient(circle at center,#b2b3a0 0 1px,#6a705e 2px,#11190f 3px,transparent 4px) right center/8px 8px no-repeat}.home-screen .home-orders::before{top:7px}.home-screen .home-orders::after{bottom:7px}.home-flags{display:flex;align-items:center;justify-content:center;gap:24px;margin:0 0 22px}.home-flags .faction-flag{width:96px;height:58px;border-color:#c1c1a866;box-shadow:0 1px 0 #e4e2c633,0 3px 8px #0a0e0a99}.home-screen .home-primary,.home-screen .home-secondary{min-height:54px;border:1px solid #9ca28c;border-bottom-color:#252e24;border-radius:4px;background:repeating-linear-gradient(0deg,#ffffff04 0 1px,#151c1508 1px 3px),linear-gradient(180deg,#707766 0%,#535e4e 45%,#3e493c 100%);color:#f0f0df;font-weight:650;text-shadow:0 2px 1px #172116;box-shadow:inset 0 1px 1px #d4d8be7a,inset 0 -1px 2px #101b10,0 3px 5px #10171080}.home-screen .home-secondary{background:repeating-linear-gradient(0deg,#ffffff04 0 1px,#151c1508 1px 3px),linear-gradient(180deg,#5c6557 0%,#454f42 45%,#323d32 100%)}.home-screen .home-primary:hover,.home-screen .home-secondary:hover{filter:brightness(1.14)}.home-screen button:focus-visible{outline:3px solid #eee0ae;outline-offset:3px}.home-screen .side-choices button{background:linear-gradient(150deg,#394439,#26322beb);border-color:#89917c}.home-screen .side-choices button[aria-pressed=true]{border-color:#d8d5a8;box-shadow:inset 0 0 0 1px #d8d5a8;background:linear-gradient(150deg,#58634f,#374432)}.home-screen .home-prompt{color:#e0e1cc}.home-screen .home-back{color:#d5d7c2}.load-continue{width:100%;min-height:46px;margin:2px 0 8px;background:#30434a;border-color:#a29a78;color:#eee4c6}
@media(max-width:800px){.home-screen .home-orders{padding:22px}.home-flags{gap:22px;margin-bottom:18px}.home-flags .faction-flag{width:88px;height:53px}.home-screen .home-shade{background:linear-gradient(180deg,#18211e 0,#17221b10 105px,#17221b20 215px,#17201fe8 325px,#17201f 590px)}}
@media(max-height:520px) and (orientation:landscape){.home-screen .home-orders{padding:18px}.home-flags{gap:20px;margin-bottom:14px}.home-flags .faction-flag{width:72px;height:43px}.home-screen .home-primary,.home-screen .home-secondary{min-height:46px}.home-screen .home-shade{background:linear-gradient(90deg,#17201f20,#17201fa6 53%,#17201f 67%)}}

/* City holdings, weather and direct formation orders stay close to the map. */
.campaign-bar{padding-bottom:5px}.campaign-bar .stats{gap:16px}.victory-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 3px 11px}.victory-status p{margin:0;font-size:12px;color:#d9c697;line-height:1.4}.city-vp-track{height:5px;width:110px;flex:0 0 110px;overflow:hidden;border-radius:3px;background:#a05447}.city-vp-track span{display:block;height:100%;background:#85aec3}.victory-bands{list-style:none;padding:0;margin:12px 0 15px}.victory-bands li{padding:7px 9px;border-left:3px solid #a96557;margin:3px 0;background:#132630}.victory-bands li.axis{border-color:#86adbd}.victory-bands li.draw{border-color:#adab98}.victory-bands li.current{background:#304149;outline:1px solid #bba270}.victory-bands strong{display:block;font-size:12px;font-weight:600}.victory-bands span{display:block;font-size:11px;color:#bdcbd0;font-variant-numeric:tabular-nums}.season-label{display:inline-flex;align-items:center;gap:5px;border:1px solid #ac9260;border-radius:3px;padding:2px 7px;margin-top:6px;font:600 11px/1.4 system-ui;color:#e2ca95;background:#493e29;letter-spacing:.03em}.season-label:before{content:'WEATHER';font-size:8px;letter-spacing:.06em;opacity:.8}.season-label[data-weather=mud]{background:#46382e;border-color:#94795b;color:#e6caad}.season-label[data-weather=winter]{background:#243d4c;border-color:#7594a5;color:#cee3ec}#unit-actions.dig-order{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin:5px 0 10px}#unit-actions.dig-order[hidden]{display:none}#unit-actions.dig-order button{min-height:44px;min-width:100px;font-size:15px}#dig-help{font-size:12px;line-height:1.4;color:#c7d2d4;margin:0}.recovery-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px}.replacement-orders .recovery-buttons button{min-height:44px;font-size:13px}.replacement-orders #rest-help{color:#adbdc3}.formation-source{display:inline-flex;align-items:center;min-height:44px;font-size:12px;line-height:1.4;color:#cfccab;overflow-wrap:anywhere}.map-city-orders{grid-template-columns:minmax(0,1fr) auto}.map-city-orders[hidden]{display:none}#map-city-deploy[hidden],#city-deploy[hidden]{display:none}.city-orders #city-placement-status{flex-basis:100%;min-width:0}.city-orders #city-placement-status p{margin:0}.unit-period-photo figcaption{display:none}
@media(max-width:800px){.campaign-bar{flex-wrap:wrap;align-items:center}.campaign-bar>div:first-child{min-width:0}.campaign-bar .stats{gap:11px}.campaign-bar .stats span{font-size:9px;letter-spacing:.5px}.campaign-bar .stats strong{font-size:17px}.victory-status{gap:9px}.city-vp-track{width:76px;flex-basis:76px}.victory-status p{font-size:11px}.season-label{font-size:10px;padding:2px 6px;margin-top:4px}.season-label:before{font-size:8px}.map-city-orders>strong{font-size:13px}.victory-bands li{padding:7px 9px}}
@media(max-width:380px){.campaign-bar{gap:8px}.campaign-bar h2{font-size:16px}.campaign-bar .stats{gap:8px}.campaign-bar .stats span{font-size:8px}.campaign-bar .stats strong{font-size:16px}.victory-status{flex-wrap:wrap;gap:5px}.city-vp-track{flex:1;min-width:55px}}#army-strength-help{font-size:11px;line-height:1.5;color:#b6c7cd;margin:10px 0}#early-victory-details{line-height:1.6}.victory-status{justify-content:flex-end}.victory-status p{margin-right:auto}.victory-status p[hidden]{display:none}
@media(max-width:440px),(max-height:500px){}

/* Keep archived campaign routes visible without changing the command desk controls. */
.home-original{color:#ead59e}.home-archive-links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 10px}.home-archive-links .home-earlier{font-size:12px;padding-inline:4px}.save-map-routing{border:1px solid #627580;border-radius:5px;padding:8px 12px;margin:12px 0}.save-map-routing a{font-weight:650;color:#ead59e}.save-map-routing span{display:block}.save-archive-links{display:flex;flex-wrap:wrap;gap:0 20px}.home-earlier:focus-visible,.save-scope a:focus-visible{outline:3px solid #e8c47b;outline-offset:3px}

/* City-first arrivals: one formation choice above the repair allowance. */
.reinforcement-orders .arrival-orders>strong{display:block;color:#e6d3a5;font-size:15px;line-height:1.4;margin-bottom:8px;overflow-wrap:anywhere}.reinforcement-orders .reinforcement-list{display:grid;gap:6px}.reinforcement-orders .reinforcement-formation{display:block;text-align:left;min-height:46px;padding:10px 12px;line-height:1.35;color:#f2e7cb;border-color:#a28f62;background:#314852;overflow-wrap:anywhere}.reinforcement-orders .reinforcement-formation:focus-visible{outline:3px solid #e8c47b;outline-offset:2px}.reinforcement-orders .replacement-orders{border-top:1px solid #42575f;border-bottom:0;padding:12px 0 0;margin:12px 0 0;gap:8px}.reinforcement-orders .replacement-orders>button{min-height:46px}.city-depot-details{border-top:1px solid #4e646c;margin-top:9px;padding-top:8px}.city-depot-details[hidden]{display:none}.city-depot-details summary{min-height:36px;cursor:pointer;font-size:12px;color:#c4d3d7}.city-depot-details button{min-height:44px;font-size:12px}.city-depot-details p{font-size:12px;line-height:1.4;color:#c4d3d7;margin:7px 0 0}

/* 0.11.2: the phone viewport belongs to the map; commands open on demand. */
.phone-topbar,.phone-only{display:none}
#game-shell.phone-layout{height:var(--phone-height,100dvh);min-height:0;padding:0 max(6px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-left));display:grid;grid-template-rows:48px minmax(0,1fr) 52px;overflow:hidden}
.phone-layout #desktop-header,.phone-layout .campaign-bar,.phone-layout .victory-status,.phone-layout #map-battle{display:none!important}
.phone-layout main{display:block;padding:0;margin:0;max-width:none;min-height:0;overflow:hidden}
.phone-layout .theatre,.phone-layout .map-stage{position:static;height:100%;min-height:0;padding:0;overflow:hidden}
.phone-layout #map-viewport{height:100%;min-height:0;max-height:none;border:1px solid #52646b}
.phone-layout #message{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.phone-layout .phone-topbar{display:flex;align-items:center;gap:12px;min-width:0}
.phone-layout .phone-topbar button{min-height:44px;min-width:56px;padding:6px 9px;font-size:13px}
.phone-calendar{display:flex;flex-direction:column;min-width:128px;line-height:1.3;white-space:nowrap}
.phone-calendar strong{font-size:12px;font-weight:600}.phone-calendar span{font-size:11px;color:#cfbc91}
.phone-layout #phone-weather{margin:0;padding:3px 6px;font-size:10px;white-space:nowrap}
.phone-layout #phone-weather:before{content:none}
.phone-layout .mobile-command-bar{display:flex;align-items:center;gap:5px;position:static;min-width:0;padding:4px 0;background:#112630;border:0;box-shadow:none;z-index:auto;overflow:hidden}
.phone-layout .mobile-command-bar p{min-width:55px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3}
.phone-layout .mobile-command-bar button{min-height:44px;min-width:44px;padding:6px 10px;font-size:13px;white-space:nowrap}
.phone-layout .phone-only{display:block}
.phone-menu-dialog{width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 20px);padding:12px 16px;margin:auto;overscroll-behavior:contain}
.phone-menu-dialog::backdrop{background:#060e1770;backdrop-filter:none}
.phone-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:-12px;padding:0 0 8px;background:#152630;z-index:3}
.phone-menu-heading h2{font-size:19px;margin:0}.phone-menu-heading button{min-width:44px;min-height:44px;font-size:22px}
.phone-menu-dialog .header-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px;margin:0 0 10px}
.phone-menu-dialog .header-actions button{min-height:44px;padding:6px;font-size:13px}
.phone-menu-dialog .map-tools{margin:0 0 10px;padding:5px;border-radius:4px}.phone-menu-dialog .map-tools button{font-size:13px;min-width:44px}
.phone-menu-dialog aside{display:flex;gap:8px;max-height:none;overflow:visible;padding:0}
.phone-menu-dialog .panel{padding:10px 12px;margin:0}
.phone-menu-dialog .command{order:0}.phone-menu-dialog .command>.panel-heading,.phone-menu-dialog #phase-help,.phone-menu-dialog #end-turn{display:none}
.phone-menu-dialog .formation-top{position:static}.phone-menu-dialog .city-panel{margin:0 0 8px;padding:10px 12px}
.phone-menu-dialog .city-heading .eyebrow{display:none}.phone-menu-dialog #city-name{font-size:19px;margin:0}
.phone-menu-dialog #city-status{font-size:12px;margin:5px 0}
.phone-menu-dialog #next-unit{min-height:44px}.phone-menu-dialog .reinforcement-orders .replacement-orders{padding-top:8px;margin-top:8px}
.phone-menu-dialog #reinforcement-help,.phone-menu-dialog #replacement-help{font-size:12px;line-height:1.4;margin:7px 0}
.phone-menu-dialog .unit-commander img{max-height:90px}.phone-menu-dialog .panel-heading{font-size:11px}
.phone-menu-dialog #unit-detail-disclosure>summary{min-height:44px}
.phone-menu-dialog[data-view=general] #unit-panel,.phone-menu-dialog[data-view=general] #city-panel{display:none}
.phone-menu-dialog[data-view=unit] #phone-menu-tools,.phone-menu-dialog[data-view=unit] #city-panel,.phone-menu-dialog[data-view=unit] #command-panel,.phone-menu-dialog[data-view=unit] #campaign-details,.phone-menu-dialog[data-view=unit] #dispatches-panel{display:none}
.phone-menu-dialog[data-view=city] #phone-menu-tools,.phone-menu-dialog[data-view=city] #unit-panel,.phone-menu-dialog[data-view=city] #campaign-details,.phone-menu-dialog[data-view=city] #dispatches-panel{display:none}
@media(max-width:740px){.phone-layout .phone-topbar{gap:8px}.phone-calendar{min-width:118px}.phone-layout .mobile-command-bar button{padding-inline:7px;font-size:12px}.phone-layout #phone-weather{display:none}}
/* Date and weather share the title row; the Details tab returns the sidebar's space. */
#desktop-header{gap:18px;padding-block:8px;min-height:66px}
#header-calendar{margin-right:auto}#header-calendar>div{display:flex;align-items:center;gap:12px}#header-calendar h2{font:500 15px/1.3 system-ui;margin:0}#header-calendar .season-label{margin:0}
.desktop-menu-buttons{display:flex;gap:6px}#desktop-header .brand h1{font-size:22px}#desktop-header .brand span{display:none}
.campaign-bar{justify-content:flex-end}.campaign-bar .stats{flex-direction:row}.campaign-bar .stats div{flex-direction:row;align-items:center;gap:8px}.campaign-bar .stats strong{font-size:16px}
#game-shell.sidebar-collapsed main{grid-template-columns:minmax(0,1fr)}#game-shell.sidebar-collapsed #desktop-sidebar{display:none}
.phone-brand{font:700 14px/1 Georgia,serif;letter-spacing:.5px;white-space:nowrap}.phone-layout #phone-weather{display:inline-flex}.phone-layout #phone-menu{margin-left:auto}
.phone-menu-dialog[data-phone=false] #phone-menu-body:empty{display:none}.quick-manual p{line-height:1.5}.quick-manual h3{margin:12px 0 5px}.quick-manual{gap:24px}
@media(max-width:740px){.phone-brand{font-size:12px}.phone-calendar{min-width:108px}.phone-calendar strong{font-size:11px}.phone-layout .phone-topbar{gap:7px}.phone-layout #phone-weather{font-size:9px;padding:2px 4px}}
.other-map-save{display:flex;align-items:center;min-height:44px;border:1px solid #58707b;border-radius:4px;color:#e5d6b5;text-decoration:none;margin-bottom:8px;font-size:14px}
.manual-appendix{border-top:1px solid #4c6067;margin-top:12px;padding-top:10px}.manual-appendix summary{min-height:44px;padding:10px 0;cursor:pointer;font-size:14px}.manual-appendix a{color:#bcd8e6;display:inline-flex;align-items:center;min-height:44px}

.phone-layout .map-stage{padding-bottom:0!important}
/* 0.11.3: navigation is only menu items; game information has a separate sheet. */
.phone-menu-links{display:grid;gap:6px;margin-top:8px}.phone-menu-links button{min-height:44px;text-align:left;font-size:14px}
#phone-menu-dialog[data-phone=true] .header-actions{grid-template-columns:1fr}#phone-menu-dialog[data-phone=true] .header-actions button{text-align:left;padding-inline:12px}
#phone-menu-dialog[data-phone=true]{width:min(320px,calc(100% - 24px))}
.phone-detail-dialog{width:min(460px,calc(100% - 24px))}.phone-detail-dialog .phone-menu-heading{gap:8px}.phone-detail-dialog .phone-menu-heading h2{flex:1;font-size:17px}.phone-detail-dialog #phone-detail-back{font-size:12px;white-space:nowrap}
.phone-detail-dialog[data-view=campaign] #unit-panel,.phone-detail-dialog[data-view=campaign] #city-panel,.phone-detail-dialog[data-view=campaign] #command-panel,.phone-detail-dialog[data-view=campaign] #dispatches-panel{display:none}
.phone-detail-dialog[data-view=dispatches] #unit-panel,.phone-detail-dialog[data-view=dispatches] #city-panel,.phone-detail-dialog[data-view=dispatches] #command-panel,.phone-detail-dialog[data-view=dispatches] #campaign-details{display:none}
/* v0.11.4: full desktop controls; seven phone menu actions, one view at a time. */
#desktop-menu{display:none}.phone-layout .phone-calendar{background:transparent;border:0;box-shadow:none;padding:2px 0;text-align:left;min-height:44px}
#phone-map-controls,#phone-orders-view,#phone-campaign-summary{display:none}
.phone-detail-dialog[data-view=map] #phone-map-controls,.phone-detail-dialog[data-view=orders] #phone-orders-view,.phone-detail-dialog[data-view=campaign] #phone-campaign-summary{display:block}
.phone-detail-dialog[data-view=map] #phone-menu-body,.phone-detail-dialog[data-view=orders] #phone-menu-body{display:none}
.phone-detail-dialog #phone-orders-view p,.phone-detail-dialog #phone-campaign-summary p{font-size:14px;line-height:1.4;margin:4px 0 12px}
.phone-detail-dialog[data-view=unit][data-stage=reinforcements] .attack-control,.phone-detail-dialog[data-view=unit][data-stage=movement] .attack-control,.phone-detail-dialog[data-view=unit][data-stage=combat] #unit-actions{display:none}
.phone-detail-dialog #unit-panel>.panel-heading,.phone-detail-dialog #unit-panel>#next-unit{display:none}
.phone-detail-dialog .unit-commander{margin-top:12px}.phone-detail-dialog[data-view=campaign] #campaign-details{margin-top:12px}
#game-shell:not(.phone-layout){padding-bottom:0}#game-shell:not(.phone-layout) .mobile-command-bar{display:none}
#phone-menu-dialog[data-phone=true][open]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
#phone-menu-dialog[data-phone=true]>.phone-menu-heading{grid-column:1/-1}
#phone-menu-dialog[data-phone=true] #phone-menu-tools,#phone-menu-dialog[data-phone=true] .header-actions,#phone-menu-dialog[data-phone=true] .phone-menu-links{display:contents}
#phone-menu-dialog[data-phone=true] button{min-height:44px;margin:0;font-size:13px}

/* Stable play viewport: only the map, sidebar and open dialogs scroll. */
html:has(#game-shell:not([hidden])),body:has(#game-shell:not([hidden])){height:100%;overflow:hidden;overscroll-behavior:none}
#game-shell:not([hidden]){position:fixed;inset:0;width:100%;height:var(--play-height,100dvh);min-height:0;overflow:hidden;overscroll-behavior:none}
#game-shell:not(.phone-layout):not([hidden]){display:grid;grid-template-rows:auto minmax(0,1fr);padding:0}
#game-shell:not(.phone-layout)>main{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,288px);width:100%;max-width:none;min-height:0;padding:10px 12px;gap:12px;overflow:hidden}
#game-shell.sidebar-collapsed:not(.phone-layout)>main{grid-template-columns:minmax(0,1fr)}
#game-shell:not(.phone-layout) .theatre{position:static;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden}
#game-shell:not(.phone-layout) .map-stage{flex:1;min-height:0;height:auto;overflow:hidden}
#game-shell:not(.phone-layout) #map-viewport{width:100%;height:100%;min-height:0;max-height:none;overscroll-behavior:none}
#game-shell:not(.phone-layout) #desktop-sidebar{display:flex;flex-direction:column;min-height:0;max-height:none;height:100%;overflow:auto;overscroll-behavior:contain;padding:0 2px 0 0;scrollbar-width:thin}
#game-shell.sidebar-collapsed #desktop-sidebar{display:none}
#game-shell:not(.phone-layout) .campaign-bar{padding-bottom:7px}#game-shell:not(.phone-layout) .map-tools{padding:4px 7px;flex-shrink:0}
#game-shell:not(.phone-layout) #message{flex-shrink:0;min-height:0;max-height:42px;overflow:auto;overscroll-behavior:contain;margin:6px 0 0;padding:3px 8px;font-size:12px}
#desktop-header{min-height:56px;padding:5px 12px;gap:10px;background:linear-gradient(180deg,#263b46,#182c36);border-bottom:1px solid #6c7c7c;box-shadow:inset 0 -1px #0c1c25}
#desktop-header .brand h1{font-size:20px;letter-spacing:1.6px}#header-calendar h2{font-size:13px}#header-calendar>div{gap:8px}
#desktop-header .header-actions{gap:5px}#desktop-header button{min-height:34px;padding:5px 9px;font-size:12px;border-radius:3px;border-color:#566d77}
.phone-layout .phone-topbar{background:linear-gradient(180deg,#263b46,#182c36);border-bottom:1px solid #627777;padding-inline:3px;gap:8px}
#game-shell.phone-layout{grid-template-rows:44px minmax(0,1fr) 48px}
.phone-layout .phone-topbar button{min-height:44px;padding-block:3px}.phone-layout .mobile-command-bar{padding-block:2px}
dialog{max-height:calc(var(--play-height,100dvh) - 20px);overscroll-behavior:contain;overflow-y:auto;touch-action:pan-y pinch-zoom}
@media(any-pointer:coarse){#desktop-header button{min-height:44px}}
@media(max-width:800px){#game-shell:not(.phone-layout)>main{grid-template-columns:minmax(0,1fr) 220px;padding:6px;gap:7px}#game-shell.sidebar-collapsed:not(.phone-layout)>main{grid-template-columns:minmax(0,1fr)}#desktop-header{padding:4px 8px;gap:7px}#desktop-header .header-actions{gap:4px}}
