: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}}
