/* Compact atlas, retaining the existing map footprint. */
.map-detailed{--atlas-paper:#f6f1e5;--atlas-ink:#393c32;--atlas-edge:#baad95;--atlas-accent:#4a716c}
.map-detailed[hidden],.marble-map>.map-canvas[hidden]{display:none!important}
.map-explorer-bar{display:flex;align-items:end;gap:14px;padding:4px 24px 14px;flex-wrap:wrap}
.map-explorer-bar label,.map-palette-choice>span{display:block;font:600 12px/1.5 var(--sans,Arial,sans-serif);margin-bottom:5px;color:var(--muted)}
.map-place-search{flex:1;min-width:225px;margin:0}.map-place-search>div{display:flex;gap:6px}
.map-explorer-bar input,.map-explorer-bar select,.map-explorer-bar button,.map-explorer-foot button,.map-detail-status button{min-height:44px;border:1px solid color-mix(in srgb,var(--ink) 27%,var(--line));background:var(--panel);color:var(--ink);font:500 14px var(--sans,Arial,sans-serif);padding:8px 12px;border-radius:9px;box-sizing:border-box}
.map-explorer-bar input{min-width:0;flex:1;width:100%;font-size:16px}.map-explorer-bar button,.map-explorer-foot button,.map-detail-status button{cursor:pointer}
.map-explorer-bar button:hover,.map-explorer-foot button:hover,.map-detail-status button:hover{background:color-mix(in srgb,var(--accent,#48766b) 16%,var(--panel))}
.map-region-choice{margin:0!important}.map-region-choice select{display:block;margin-top:5px;max-width:190px;width:100%}.map-region-choice option{background:var(--paper,#fff);color:var(--ink)}
.map-palette-choice>div{display:flex;gap:0}.map-palette-choice button{border-radius:0}.map-palette-choice button:first-child{border-radius:9px 0 0 9px}.map-palette-choice button:last-child{border-radius:0 9px 9px 0;border-left:0}.map-palette-choice button[aria-pressed=true]{background:color-mix(in srgb,var(--accent,#48766b) 22%,var(--panel));box-shadow:inset 0 -2px 0 var(--accent,#48766b);font-weight:700}
.map-detail-viewport{position:relative;isolation:isolate;height:clamp(185px,50vw,440px);width:100%;background:#ddd9ca;color:var(--atlas-ink);z-index:0;scroll-margin-top:90px}
.map-detail-viewport.leaflet-container{font:14px/1.4 Arial,sans-serif}.map-detail-viewport .leaflet-tile-pane{filter:sepia(.3) saturate(.53) brightness(1.02) contrast(.95)}
.map-detailed .map-detail-viewport{background:#d1dcd8}.map-detailed[data-map-palette=natural] .map-detail-viewport{background:#b3d0d9}
[data-appearance=dark] .map-detailed .map-detail-viewport{background:#a1aaa3}
.map-explorer-bar :disabled,.map-explorer-foot :disabled{opacity:.55;cursor:wait}
[data-map-palette=natural] .leaflet-tile-pane{filter:saturate(.82)}
[data-appearance=dark] .map-detail-viewport .leaflet-tile-pane{filter:sepia(.28) saturate(.48) brightness(.79) contrast(.98)}
[data-appearance=dark] [data-map-palette=natural] .leaflet-tile-pane{filter:saturate(.78) brightness(.85)}
.map-detail-viewport .leaflet-control-zoom{border:1px solid #82775f!important;border-radius:12px;overflow:hidden;box-shadow:0 3px 9px #302a2633}
.map-detailed .map-detail-viewport .leaflet-control-zoom a{width:44px;height:44px;line-height:44px;background:#fffdf4;color:#3e5145;font-size:26px;border-color:#c9bda6}
.map-detail-viewport .leaflet-control-zoom a:hover{background:#ede4d1}.map-detail-viewport .leaflet-control-zoom a.leaflet-disabled{color:#9b9c95;background:#efebdf}
.map-detail-viewport .leaflet-control-attribution{background:#fffcf2ed;color:#443e34;font-size:11px;padding:2px 6px}.map-detail-viewport .leaflet-control-attribution a{color:#315b65}
.map-detail-viewport .leaflet-control-scale-line{background:#fffcf2de;border-color:#686253;color:#373f34;box-shadow:none}
.map-detail-viewport .leaflet-tooltip{border:1px solid #b7aa8e;background:#fffcf2;color:#3e473e;font-size:13px}
.map-opening{position:absolute;inset:0;display:grid;place-content:center;color:#3e473e;margin:0}
.map-explorer-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 24px;background:color-mix(in srgb,var(--paper) 65%,var(--panel));border-top:1px solid var(--line)}
.map-explorer-foot p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.map-explorer-foot button{flex-shrink:0;min-height:36px;font-size:12px;padding:5px 10px}
.map-search-status,.map-detail-status{margin:0;padding:0 24px;color:var(--muted);font-size:14px;line-height:1.5}.map-search-status:not(:empty),.map-detail-status:not(:empty){padding:9px 24px}.map-detail-status button{margin:4px;font-size:13px;min-height:40px}
.map-place-results{margin:0 24px 12px;padding:6px;max-height:240px;overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:1fr 1fr;gap:5px}.map-place-results[hidden]{display:none}
.map-place-results button{text-align:left;display:grid;gap:2px;padding:10px;min-height:52px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:14px/1.4 var(--sans,Arial,sans-serif);cursor:pointer}.map-place-results span{color:var(--muted);font-size:12px}.map-place-results button:hover{border-color:var(--ink)}.map-place-results .map-results-close{display:block;min-height:40px;text-align:center;grid-column:1/-1}
.map-detail-pin{border:0;background:none;width:44px;height:44px;display:grid;place-items:start center;position:relative;cursor:pointer;padding:3px 0;touch-action:manipulation}
.map-detail-pin:before{content:'';position:absolute;height:17px;width:3px;background:#675034;top:23px;transform:rotate(-8deg);box-shadow:2px 0 3px #fff9e8}
.map-detail-pin span{display:grid;place-items:center;position:relative;width:28px;height:28px;border-radius:50%;border:2px solid #fff8e5;color:#fff;font:700 13px Arial,sans-serif;background:radial-gradient(circle at 30% 22%,#d0fff0 0,#4aa69b 24%,#18554f 65%,#173a32);box-shadow:0 2px 5px #293d3880}
.map-detail-pin[data-own=true] span{background:radial-gradient(circle at 30% 22%,#fff7c7,#b78842 35%,#5e4021)}
.map-detail-pin:hover{filter:brightness(1.2)}.map-detail-marker{background:none;border:0}
.map-detailed button:focus-visible,.map-detailed input:focus-visible,.map-detailed select:focus-visible,.map-detail-viewport:focus-visible{outline:3px solid var(--club-gold,#b98a43);outline-offset:2px}
@media(max-width:700px){.map-explorer-bar{padding:0 16px 12px;gap:10px}.map-place-search{flex-basis:100%;min-width:0}.map-region-choice{flex:1}.map-region-choice select{max-width:none}.map-palette-choice{flex:0 1 auto}.map-explorer-bar button{padding:8px 11px}.map-explorer-foot{padding:6px 12px;gap:8px}.map-explorer-foot p{font-size:11px}.map-search-status:not(:empty),.map-detail-status:not(:empty){padding:8px 16px}.map-place-results{margin:0 16px 10px;grid-template-columns:1fr}.map-detail-viewport .leaflet-control-scale{display:none}}
@media(prefers-reduced-motion:reduce){.map-detail-viewport *{transition:none!important;animation:none!important}}

.map-state-summary{margin:8px 24px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink)}
.map-state-summary summary{cursor:pointer;padding:12px 14px;font:600 14px/1.5 var(--sans,Arial,sans-serif);min-height:44px;box-sizing:border-box}.map-state-summary summary span{font-weight:400;color:var(--muted)}
.map-state-content{padding:0 14px 14px}.map-state-content label{font:500 13px var(--sans,Arial,sans-serif);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.map-state-content select{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px;font-size:16px;max-width:100%}.map-state-content option{color:#26362d;background:#f6f1e5}
.map-state-help,.map-state-content [role=status]{font:13px/1.5 var(--sans,Arial,sans-serif);color:var(--muted)}.map-state-content [role=status]:empty{display:none}
.map-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:250px;overflow:auto}
.map-state-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);cursor:pointer;text-align:left;font:13px/1.4 var(--sans,Arial,sans-serif)}.map-state-row strong{white-space:nowrap;color:var(--accent)}
.map-state-row:hover{background:color-mix(in srgb,var(--accent) 12%,var(--paper))}
.map-state-count{border:1px solid #78664a;border-radius:14px;background:#fff7e4;color:#413824;font:600 11px/1.3 Arial,sans-serif;box-shadow:0 2px 4px #32280d30;padding:5px 9px;white-space:nowrap;cursor:pointer;min-height:28px;transform:translate(-50%,-50%)}
.map-state-count-marker{width:auto!important;height:auto!important}.map-state-count:focus-visible,.map-state-row:focus-visible{outline:3px solid var(--accent,#31665e);outline-offset:2px}
@media(pointer:coarse){.map-state-count{min-height:44px;min-width:44px}}
@media(max-width:600px){.map-state-summary{margin:8px 12px 12px}.map-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-state-row{font-size:12px}.map-state-content{padding:0 9px 9px}}

/* Keep the familiar map visible while placing a marble. */
.map-detailed[data-editing=true] .map-state-summary{display:none}
.map-detailed[data-editing=true] .leaflet-overlay-pane .leaflet-interactive{pointer-events:none!important}
.map-detailed[data-editing=true] .map-explorer-bar{gap:9px;padding-left:16px;padding-right:16px}
.map-detailed[data-editing=true] .map-place-search{flex-basis:100%}
.map-detailed[data-editing=true] .map-detail-viewport{cursor:crosshair}
.map-detailed[data-editing=true] .map-selected-pin{cursor:grab}
.map-detailed[data-editing=true] .map-selected-pin:active{cursor:grabbing}
.map-detailed .map-detail-pin[data-pin-color] span{background:radial-gradient(circle at 30% 22%,var(--pin-light),var(--pin-mid) 30%,var(--pin-dark) 80%)}

/* Smaller pin artwork; keep the 44px touch targets and the same map coordinates.
   Each component scales around the pin tip so the location does not move. */
.map-detail-pin span{transform:translateY(9.25px) scale(.75);transform-origin:50% 0}
.map-detail-pin:before{transform:translateY(4.25px) rotate(-8deg) scale(.75);transform-origin:50% 0}
.map-pin span{transform:translateY(9.5px) scale(.75);transform-origin:50% 0}
.map-pin:before{transform:translateY(4.5px) rotate(-8deg) scale(.75);transform-origin:50% 0}
.map-pin:after{transform:translateY(.25px) rotate(-18deg) scale(.75);transform-origin:50% 0}
@media(max-width:600px){
 .map-pin span{transform:translateY(6.75px) scale(.75)}
 .map-pin:before{transform:translateY(3px) rotate(-8deg) scale(.75)}
 .map-pin:after{transform:rotate(-18deg) scale(.75)}
}
