.map-workspaces{display:flex;gap:8px;padding:10px 16px;background:#11232c;border-bottom:1px solid #344651;flex-shrink:0;overflow:auto}.map-workspaces button{white-space:nowrap;min-height:44px;font-size:13px;padding:9px 15px}.map-workspaces .selected,.map-tools .selected{background:#dcc28b;color:#152630;border-color:#dcc28b}.map-mode #content{display:flex;flex-direction:column}.map-mode .map-layout{flex:1;min-height:0;height:auto;grid-template-columns:minmax(0,1fr) 360px}.map-tools{position:absolute;top:14px;left:14px;right:58px;z-index:470;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.map-tools button{pointer-events:auto;background:#182e39f5;min-height:44px;font-size:13px;padding:10px 14px;box-shadow:0 2px 8px #0003}.map-bottom{position:absolute;bottom:30px;right:12px;display:flex;align-items:end;gap:6px;z-index:470}.map-bottom label{margin:0;font-size:10px;background:#142832eb;border-radius:5px;padding:4px 8px}.map-bottom select{font-size:12px;min-height:34px;padding:4px;border:0;background:transparent}.map-bottom button{font-size:11px;min-height:40px;background:#142832ed;padding:8px}.map-hint{max-width:60%;bottom:85px;background:#142832ed;font-size:13px;line-height:1.4;padding:10px 13px;pointer-events:none}.map-help{padding:16px;background:#1a303b;border:1px solid #3b515d;border-radius:9px;margin-bottom:18px}.map-help h2{font-size:22px;margin:8px 0}.map-help ol{padding-left:20px;font-size:14px;line-height:1.5;color:#c4d0d5;margin:10px 0}.map-help li{margin:8px 0}.map-help p{font-size:13px;color:#bfccd3;margin:10px 0 0}.selection-actions{display:grid;gap:8px;margin:18px 0}.selection-actions strong{color:var(--gold)}.unit-main-actions{display:grid;gap:8px;margin:18px 0}.unit-main-actions .primary{font-size:17px;min-height:50px}.unit-main-actions p{font-size:12px;color:var(--muted);margin:0}.paint-save{padding:16px;background:#20363d;border:1px solid #c5a66a;border-radius:10px}.paint-save label{margin-top:8px}.paint-save small{display:block;margin-top:14px}.autonomy-explainer{font-size:13px;background:#203640;border-left:3px solid #c5a66a;padding:12px;margin:16px 0;color:#c6d1d6}.autonomy-explainer b{display:block;color:#eedcb5}.saved-areas article{padding:12px 0;border-bottom:1px solid #384b56}.saved-areas small{display:block;margin:5px 0}.order-preview .actions{display:grid}.order-preview h2{line-height:1.3}.order-preview p{font-size:14px}.crosshair{cursor:crosshair!important}#paint-surface{position:absolute;inset:0;z-index:440;pointer-events:none;touch-action:none}#paint-surface.active{pointer-events:auto;cursor:crosshair}.map-mode #notice:not(:empty){position:fixed;left:20px;bottom:16px;max-width:min(520px,90vw);z-index:2400;border:1px solid #789883;border-radius:8px;box-shadow:0 4px 20px #0004;padding:12px 16px;font-size:14px;pointer-events:none}.map-mode .map-layout.expanded{height:100dvh}.map-mode .map-panel{scroll-behavior:smooth}.map-panel input,.map-panel select{font-size:14px}.map-panel .group-list{max-height:none}.map-panel .group-list label{font-size:14px;line-height:1.4}.map-panel .group-list button{min-height:42px}.map-tools button:disabled{opacity:.5}@media(max-width:800px){.map-workspaces{padding:7px;gap:5px}.map-workspaces button{font-size:12px;min-height:42px;padding:9px 12px}.map-mode .map-layout{grid-template-columns:1fr;grid-template-rows:55% 45%}.map-tools{top:8px;left:8px;right:52px;gap:4px;max-height:130px;overflow:auto}.map-tools button{font-size:11px;padding:7px 9px;min-height:40px}.map-bottom{bottom:23px;right:7px;gap:3px;max-width:97%}.map-bottom button{font-size:10px;padding:6px;min-height:38px}.map-bottom label{padding:2px 5px}.map-bottom select{font-size:10px;max-width:125px}.map-hint{font-size:11px;bottom:78px;left:8px;max-width:87%;padding:7px 9px}.map-help{padding:12px}.map-help ol{font-size:13px}.map-panel .unit-main-actions{grid-template-columns:1fr 1fr}.map-panel .unit-main-actions p{grid-column:1/-1}.map-panel .unit-main-actions .primary{font-size:14px}.map-mode #notice:not(:empty){left:10px;bottom:10px;font-size:12px;max-width:calc(100vw - 20px)}.map-mode .map-layout.expanded{grid-template-rows:62% 38%}}@media(prefers-reduced-motion:reduce){.map-mode .map-panel{scroll-behavior:auto}}
#world-map{z-index:0}.map-workspaces [aria-selected=true]{box-shadow:inset 0 -2px 0 #d8bb7f}.map-panel #new-state-name[hidden]{display:none}.map-panel .saved-areas{margin-top:20px}
.map-panel button.primary,.map-panel button.primary:hover,.map-tools button.selected{background:var(--gold);color:#15212a;border-color:var(--gold)}
.map-tools select,.map-tools label,.map-tools input{pointer-events:auto}.map-tools select{touch-action:manipulation}@media(max-width:800px){.map-workspaces button{font-size:11px;min-height:36px;padding:6px 8px}.map-tools{max-height:84px}.map-tools button{min-height:34px;padding:5px 7px;font-size:10px}.map-tools label{font-size:10px}.map-tools select{min-height:32px;font-size:11px;max-width:145px}.map-hint{display:none}.map-panel button{padding:7px 9px;min-height:36px}}

/* The sovereign-border editor owns one set of controls, separate from regions. */
.border-editing #map-tools,.border-editing #paint-surface{display:none!important}
.border-editing .map-hint{max-width:min(520px,70%)}
#border15-surface{position:absolute;inset:0;z-index:445;touch-action:none;cursor:crosshair}
#border15-cursor{position:absolute;z-index:446;border:2px solid #ffe09a;background:#ffd16626;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #17232e}
#border15-cursor.eraser{border-style:dashed;background:#f8717126;border-color:#ff9b9b}
.border-editor{padding:4px 2px 18px}.border-editor h2{font-size:23px;line-height:1.2;margin:12px 0}.border-editor p{font-size:13px;line-height:1.55}.border-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.border-title button{padding:7px 10px;font-size:12px}.border-target{padding:12px;background:#223941;border:1px solid #a48e64;border-radius:9px}.border-target span,.border-step{font-size:14px;font-weight:700}.border-step{margin:20px 0 10px}.border-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px}.border-tools button{min-height:44px;padding:10px 8px;font-size:13px}.border-tools .selected{background:#e8ce97;color:#132630;border-color:#e8ce97}.border-tools button:last-child{grid-column:1/-1}.border-tool-help{min-height:40px;color:#f3dca9}.border-history{display:flex;gap:5px;flex-wrap:wrap}.border-history button{flex:1;padding:8px 5px;font-size:12px;min-height:42px}.border-editor button:disabled{opacity:.4;cursor:not-allowed}.border-check{display:flex!important;align-items:flex-start;gap:8px;font-size:13px!important}.border-check input{width:18px!important;flex:none;margin:3px 0!important}.border-caption{color:#bacbd2}.border-save{display:grid;gap:9px;margin:16px 0}.border-save button{width:100%;white-space:normal;min-height:48px}.border-extra{border-top:1px solid #3b515d;padding:14px 0;font-size:13px}.border-extra summary{cursor:pointer;padding:4px 0;line-height:1.45}.border-extra select{width:100%}#border15-count{font-size:13px;line-height:1.5;background:#203640;padding:12px;border-radius:8px;margin:12px 0}#border15-size{font-size:13px}.border-editor [hidden],#border15-cursor[hidden]{display:none!important}
@media(max-width:800px){.border-editing .map-layout{grid-template-rows:minmax(240px,52%) minmax(0,48%)}.border-editing .map-panel{overflow:auto}.border-editing .map-hint{max-width:calc(100% - 24px);bottom:85px}.border-tools{grid-template-columns:repeat(3,minmax(0,1fr))}.border-tools button:last-child{grid-column:1/-1}.border-editor h2{font-size:21px}.border-target{margin:8px 0}.border-editor{padding:4px}.border-editing .map-bottom label:has(#route17-mode),.border-editing .map-bottom label:has(#route17-color){display:none}}
.border-editing .leaflet-interactive,.border-editing .leaflet-marker-icon{pointer-events:none!important}
.border-editing .unit-icon,.border-editing .battle-icon{visibility:hidden}
.border-editor select,.border-editor input{max-width:100%;min-width:0}.border-tools button{min-width:0;white-space:normal;overflow-wrap:anywhere}.border-save{position:relative;background:#101d26;padding:10px 0;border-top:1px solid #344651}.border-editing .map-bottom label:has(#route17-mode),.border-editing .map-bottom label:has(#route17-color){display:none}
.annotation-options{position:relative;background:#142832f5;border:1px solid #465d69;border-radius:7px;font-size:12px;padding:8px;max-width:260px}.annotation-options summary{cursor:pointer;min-height:26px;display:flex;align-items:center}.annotation-options label{display:flex;align-items:center;gap:7px}.annotation-options input{width:18px;height:18px}.annotation-options p{font-size:12px;line-height:1.4;max-width:240px}.map-bottom{flex-wrap:wrap;max-width:calc(100% - 20px)}.map-bottom #map-basemap{max-width:230px}@media(max-width:800px){.map-bottom{max-width:calc(100% - 14px)}.annotation-options{font-size:11px}.map-bottom #map-basemap{max-width:170px}}

.mobile-map-options{display:none}
@media(max-width:800px){
 .map-mode #map-bottom:not(.options-open)>:not(.mobile-map-options){display:none!important}
 .map-mode #map-bottom .mobile-map-options{display:block}
 .map-mode #map-bottom.options-open{max-height:65%;overflow:auto;background:#132832f5;padding:8px;border-radius:8px;pointer-events:auto}
 .map-mode #map-tools{max-height:116px;overflow:auto;pointer-events:auto}
 .map-mode #strategy-legend{display:none}
}

main>nav.tabs,.map-mode main>nav.tabs{flex-wrap:wrap;overflow:visible}
main>nav.tabs>button{font-size:12px;padding:8px 10px;min-height:38px}
.section-picker{display:none}
@media(max-width:900px){
 main>nav.tabs>button{display:none}
 main>nav.tabs .section-picker{display:flex;align-items:center;gap:12px;width:100%;margin:0;font-size:12px}
 .section-picker select{flex:1;min-width:0;max-width:100%;min-height:38px;padding:6px 10px}
}

#setup17-map-status{flex:none;padding:4px 12px;background:#192e37;border-bottom:1px solid #344651}#setup17-map-status button{min-height:32px;padding:5px 10px;font-size:12px;background:transparent;color:var(--gold)}

.border-editing .map-panel{scroll-behavior:auto}

/* Country-controlled counters; XX denotes a division, badge counts clustered units. */
.unit-icon:has(.formation-counter){background:transparent;border:0;box-shadow:none}
.formation-counter{position:relative;padding-top:10px;width:38px;height:34px;box-sizing:border-box;color:#f6f3dc;filter:drop-shadow(0 1px 2px #000)}
.formation-counter small{position:absolute;top:-4px;left:8px;font:bold 11px/14px system-ui;letter-spacing:2px;color:#fff;text-shadow:0 1px 2px #000}
.formation-counter svg{width:38px;height:24px;background:#132732;border:3px solid var(--formation-color);box-sizing:border-box;border-radius:2px;fill:none;stroke:#f5e9c7;stroke-width:2}
.formation-counter b{position:absolute;right:-12px;top:-7px;min-width:19px;padding:2px 4px;background:#132732;border:1px solid var(--formation-color);border-radius:8px;color:#fff;font:bold 11px/14px system-ui}
.unit-icon.picked:has(.formation-counter){outline:0}.unit-icon.picked .formation-counter svg{box-shadow:0 0 0 2px #fff}

/* Grouped navigation stays above the map and opens without shifting its camera. */
nav.tabs{position:relative;z-index:1100}
.nav-group{position:relative}
.nav-group summary{cursor:pointer;padding:8px 12px;border:1px solid var(--edge);border-radius:7px;font-size:12px;min-height:38px;background:var(--panel)}
.nav-group.active summary{border-color:var(--gold);color:var(--gold)}
.nav-group summary:focus-visible{outline:2px solid var(--gold)}
.nav-menu{position:absolute;top:calc(100% + 5px);left:0;min-width:240px;max-width:90vw;display:grid;gap:5px;padding:8px;background:var(--panel);border:1px solid var(--edge);border-radius:8px;box-shadow:0 8px 25px #0009}
.nav-menu button{justify-content:flex-start;text-align:left;font-size:13px}
nav.tabs>.nav-group:last-of-type .nav-menu{left:auto;right:0}
@media(max-width:900px){nav.tabs>.nav-group{display:none}}

/* Stable control slots: changing basemap never inserts/removes a row. */
.map-bottom{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(600px,calc(100% - 20px));align-items:stretch}
.map-bottom>*{min-width:0;max-width:100%;margin:0}.map-bottom label{display:flex;flex-direction:column;align-items:stretch}.map-bottom select{width:100%;max-width:100%!important;min-width:0}.map-bottom button{white-space:normal;overflow-wrap:anywhere}
#map-tile-status{grid-column:1/-1;order:100;height:3.8em;overflow:auto;line-height:1.25;background:#142832f5;padding:5px 8px}
@media(max-width:800px){.map-bottom{width:calc(100% - 14px);grid-template-columns:repeat(2,minmax(0,1fr))}.map-bottom .mobile-map-options{grid-column:1/-1}.map-bottom:not(.options-open){width:auto}.map-bottom.options-open{box-sizing:border-box}}
