/* Scoped map layer: no changes to the existing game/nav/save CSS. */
.map-atlas,.reference-map,.atlas-dialog{--map-accent:#ed8d75;--map-bg:#12171c;--map-line:#364047;--map-ink:#f6f3eb;--map-muted:#b4bdc4;color:var(--map-ink);font-family:inherit;box-sizing:border-box}
.map-atlas *,.reference-map *,.atlas-dialog *{box-sizing:border-box}
.map-atlas{margin:20px 0 24px;padding:20px;border:1px solid var(--map-line);border-top:2px solid #ed8d75;background:linear-gradient(115deg,#1a2027,#101519)}
.map-atlas-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.map-atlas-heading small,.map-toolbar small,.atlas-dialog-head small{display:block;color:var(--map-accent);font-size:10px;font-weight:700;letter-spacing:1.8px}
.map-atlas-heading h2{font-size:clamp(17px,2vw,23px);margin:5px 0 0;line-height:1.4}
.map-atlas-heading>span{font-size:12px;color:var(--map-muted);flex-shrink:0}
.map-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.map-gallery-card{min-width:0;padding:0;background:#10151a;color:var(--map-ink);border:1px solid var(--map-line);border-radius:6px;text-align:left;cursor:pointer;overflow:hidden;font-family:inherit}
.map-gallery-card.is-current{border-color:var(--map-accent);box-shadow:inset 0 -2px var(--map-accent)}
.map-card-image{display:block;position:relative;overflow:hidden;aspect-ratio:1.65}
.map-card-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .22s ease}
.map-gallery-card:hover .map-card-image img{transform:scale(1.04)}
.map-card-image>span{position:absolute;top:8px;left:8px;max-width:calc(100% - 16px);padding:5px 8px;background:#111c;color:#ecf0f3;font-size:9px;font-weight:800;letter-spacing:1px}
.is-current .map-card-image>span{color:#101519;background:var(--map-accent)}
.map-card-copy{display:flex;flex-direction:column;gap:4px;padding:12px}
.map-card-copy small{font-size:9px;color:var(--map-muted);letter-spacing:.7px}
.map-card-copy strong{font-size:14px;line-height:1.4;word-break:normal;overflow-wrap:anywhere}
.map-card-copy em{font-size:11px;color:var(--map-accent);font-style:normal;margin-top:4px}
.map-atlas-note,.map-caution{font-size:11px;color:var(--map-muted);line-height:1.7;margin:12px 0 0;letter-spacing:0;text-transform:none}
.reference-map{margin:0;border:1px solid var(--map-line);border-radius:8px;overflow:hidden;background:var(--map-bg);width:100%;min-width:0;text-align:left}
.map-toolbar{padding:12px;display:flex;align-items:center;gap:5px;flex-wrap:wrap;background:#171e24}
.map-toolbar>div{flex:1 1 125px;min-width:0}
.map-toolbar small{font-size:8px;letter-spacing:1px;margin-bottom:4px}
.map-toolbar strong{font-size:14px;line-height:1.5}
.map-toolbar button,.map-caption button,.atlas-tabs button{font:inherit;font-size:12px;min-height:44px;min-width:44px;border:1px solid #45505a;background:#212a32;color:var(--map-ink);border-radius:4px;padding:8px;cursor:pointer}
.map-toolbar button:disabled{opacity:.4;cursor:not-allowed}
.map-zoom-label{font-size:10px;color:var(--map-muted);min-width:31px;text-align:center;font-variant-numeric:tabular-nums}
.map-viewport{position:relative;width:100%;aspect-ratio:var(--map-aspect);overflow:hidden;background:#080d13;touch-action:pan-y}
.map-viewport[data-zoomed="true"]{touch-action:none;cursor:grab}
.map-viewport[data-zoomed="true"]:active{cursor:grabbing}
.map-scene{position:relative;width:100%;height:100%;transform-origin:0 0;will-change:transform}
.map-original-art{display:block!important;position:static!important;width:100%!important;height:100%!important;object-fit:fill!important;border-radius:0;pointer-events:none;user-select:none}
.map-ring-overlay,.map-pins{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map-pin{position:absolute;transform:translate(-50%,-50%) scale(var(--pin-scale,1));display:grid;place-items:center;width:24px;height:24px;min-width:24px;min-height:24px;clip-path:circle(50%);border:0;background:transparent;padding:0;color:#101820;pointer-events:auto;cursor:pointer;touch-action:inherit}
.reference-map .map-pin:active{transform:translate(-50%,-50%) scale(var(--pin-scale,1))}
.reference-map .map-pin:focus-visible{outline:2px solid #ffd58b;outline-offset:-3px}
.map-pin-number{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#edf2ed;color:#101820;border:2px solid #101820;box-shadow:0 0 0 1px #ffffff80;font:bold 10px/1 ui-monospace,monospace}
.map-pin.is-taken .map-pin-number,.map-location-row.is-taken .map-pin-number{background:#ff817b;color:#1b1112}
.map-pin.is-own .map-pin-number,.map-location-row.is-own .map-pin-number{background:#6ce0d0;color:#09201c}
.map-pin.is-selected .map-pin-number{background:#fff8c2;box-shadow:0 0 0 3px #111a,0 0 0 5px var(--map-accent)}
.map-pins-hidden .map-pins{visibility:hidden}
.map-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;color:var(--map-muted);font-size:10px;line-height:1.5}
.map-caption button{font-size:11px;white-space:nowrap}
.reference-map>.map-caution{padding:0 12px 12px}
.map-selection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-top:1px solid var(--map-line);background:#1b242b}
.map-selection>div{min-width:0;display:flex;flex-direction:column;gap:5px}
.map-selection small{font-size:9px;letter-spacing:1.5px;color:var(--map-accent)}
.map-selection strong{font-size:16px;line-height:1.5}
.map-selection span{font-size:11px;line-height:1.5;color:var(--map-muted);overflow-wrap:anywhere}
.map-confirm{font:inherit;font-size:12px;font-weight:750;min-height:48px;padding:10px 15px;border:1px solid var(--map-accent);border-radius:4px;background:var(--map-accent);color:#12171c;cursor:pointer;white-space:normal;min-width:132px}
.map-confirm:disabled{opacity:.45;cursor:not-allowed}
.map-location-details{border-top:1px solid var(--map-line);padding:0 12px 12px}
.map-location-details>summary{font-size:13px;cursor:pointer;min-height:44px;padding:14px 0;color:var(--map-ink)}
.map-location-details>summary span{float:right;color:var(--map-muted);font-size:11px}
.map-search-label{display:block;font-size:11px;color:var(--map-muted);margin:0 0 10px}
.map-search-label input{display:block;width:100%;font:inherit;font-size:14px;padding:10px;margin-top:6px;min-height:44px;color:var(--map-ink);background:#0f161d;border:1px solid #45515d;border-radius:4px}
.map-location-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:260px;overflow:auto;overscroll-behavior:contain}
.map-location-row{display:flex;gap:8px;align-items:center;min-height:48px;padding:8px;min-width:0;font:inherit;text-align:left;font-size:12px;border:1px solid #39434c;background:#161e25;color:var(--map-ink);cursor:pointer;border-radius:4px}
.map-location-row>.map-pin-number{flex:0 0 21px}
.map-location-row>span:last-child{min-width:0;overflow-wrap:anywhere}
.map-location-row small{display:block;font-size:9px;color:var(--map-muted);line-height:1.4;margin-top:2px}
.map-location-row.is-selected{border-color:var(--map-accent);background:#263139}
.map-location-row[hidden],.map-no-results[hidden]{display:none!important}
.map-no-results{font-size:12px;padding:12px;color:var(--map-muted)}
.map-digest-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px 12px;background:#080e13;font:700 11px ui-monospace,monospace;color:#eceddc}
.map-digest-bar .squad-out{color:#ff9d94}
.map-image-error{display:none;position:absolute;inset:30% 16px auto;padding:16px;border:1px solid #d18f60;background:#1e1a18;color:#fff2e2;font-size:13px;line-height:1.7}
.is-map-missing .map-image-error{display:block}.is-map-missing .map-pins,.is-map-missing .map-ring-overlay{visibility:hidden}
.map-draft-boards{display:grid;clear:both;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
.map-draft-hint{grid-column:1/-1;font-size:12px;line-height:1.7;color:#bbc5cd;margin:0}
.map-enhanced-draft .map-legacy-options{display:none!important}
#dialog.draft-dialog:has(.map-enhanced-draft){width:min(1200px,96vw);max-width:96vw}
.map-mode-draft .map-selection{flex-wrap:wrap}.map-mode-draft .map-confirm{width:100%}
.map-mode-preview .map-viewport{max-height:none}
.tactical-preview:has(.reference-map){padding:0!important;min-height:0!important;aspect-ratio:auto;background:none!important}
.tactical-preview:has(.reference-map)>.map-preview-caption{position:static!important;background:#141b21!important;padding:10px 12px!important;transform:none!important}
.tactical-preview:has(.reference-map) .map-preview-caption span{font-size:10px}
.atlas-dialog{width:min(1040px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:20px;background:#10161c;border:1px solid #49545e;border-top:3px solid #ec8972;border-radius:10px;overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 100px #000a}
.atlas-dialog::backdrop{background:#050b10df;backdrop-filter:blur(4px)}
.atlas-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.atlas-dialog-head h2{font-size:26px;margin:6px 0}
.atlas-dialog-head p{font-size:12px;color:var(--map-muted);margin:0;line-height:1.6}
.atlas-dialog-head button{display:grid;place-items:center;flex:0 0 44px;height:44px;border:1px solid #53616c;background:#1b252e;color:#eee;border-radius:5px;font-size:26px;cursor:pointer}
.atlas-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:14px}
.atlas-tabs button{font-size:12px;padding:10px 5px;white-space:normal}
.atlas-tabs [aria-pressed="true"]{border-color:#eb917a;color:#ffbdab;background:#362622}
.atlas-dialog .map-mode-atlas{max-width:780px;margin:auto}
.map-atlas :focus-visible,.reference-map :focus-visible,.atlas-dialog :focus-visible{outline:3px solid #ffd58b;outline-offset:2px}
@media(min-width:900px){.atlas-dialog .map-mode-atlas{display:grid;grid-template-columns:minmax(0,1fr) 250px;max-width:none}.atlas-dialog .map-toolbar,.atlas-dialog .map-caption,.atlas-dialog .map-caution{grid-column:1/-1}.atlas-dialog .map-viewport{grid-column:1;grid-row:2/4;align-self:start}.atlas-dialog .map-selection{grid-column:2;grid-row:2;align-items:flex-start;min-height:116px}.atlas-dialog .map-location-details{grid-column:2;grid-row:3;border-left:1px solid var(--map-line);padding-bottom:0}.atlas-dialog .map-location-details .map-location-list{grid-template-columns:1fr;max-height:390px}.atlas-dialog .map-selection strong{font-size:17px}}
@media(max-width:700px){.map-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-atlas{padding:14px;margin:16px 0}.map-atlas-heading{display:block}.map-atlas-heading>span{display:block;margin-top:7px}.map-card-image{aspect-ratio:1.5}.map-card-copy{padding:10px}.map-atlas-note{font-size:10px}.map-draft-boards{grid-template-columns:minmax(0,1fr)}.atlas-dialog{padding:12px;width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.atlas-dialog-head h2{font-size:22px}.atlas-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.map-location-list{grid-template-columns:1fr;max-height:228px}.map-mode-draft .map-selection strong{font-size:15px}.map-toolbar{padding:8px;gap:3px}.map-toolbar>div{flex:1 0 100%;margin-bottom:5px}.map-toolbar small{font-size:9px}.map-toolbar strong{font-size:15px}.map-toolbar button{min-height:44px}.map-caption{padding:8px}.map-caption>span{max-width:55%}.map-selection{padding:12px}}
@media(prefers-reduced-motion:reduce){.map-card-image img{transition:none}.map-scene{will-change:auto}}
