/* The shared site.css owns typography, colours, navigation and footer. */
.wallace-layout{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);grid-template-areas:"heading heading" "sidebar map" "info info";grid-template-rows:auto minmax(440px,65svh) auto;margin:auto}
.map-header{grid-area:heading;padding:28px 0 22px;border-bottom:1px solid var(--line)}
.map-header h1{font-size:clamp(28px,3vw,40px);line-height:1.15;letter-spacing:-.025em;margin:0;text-wrap:initial}
.map-credit{font-size:12px;color:var(--muted);margin-top:8px}.map-credit p{margin:0}
.map-explanation{max-width:1080px;font-size:15px;line-height:1.45;color:var(--muted);margin-top:12px}.map-explanation p{margin:0}
.map-sidebar{grid-area:sidebar;min-width:0;min-height:0;overflow:auto;padding:18px 18px 18px 0;border-right:1px solid var(--line);overscroll-behavior:contain}
.map-sidebar .sub{color:var(--muted);font-size:13px;line-height:1.42;margin-bottom:9px}
.map-sidebar .embedded{font-size:11px;line-height:1.4;color:var(--muted);background:var(--soft);border-left:3px solid var(--accent);padding:7px 9px;margin:9px 0 12px}
.map-sidebar .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0 14px}
.map-sidebar .stat{background:var(--soft);border-radius:8px;padding:7px 4px;text-align:center}.map-sidebar .stat b{display:block;color:var(--accent);font-size:18px}.map-sidebar .stat span{font-size:10px;line-height:1.15;display:block}
.map-sidebar .search-label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}
.map-sidebar input[type=search]{width:100%;min-width:0;min-height:44px;border:1px solid var(--line);border-radius:4px;padding:9px 10px;font:inherit;font-size:16px;background:var(--paper);color:var(--ink)}
.map-sidebar .filters{display:grid;gap:6px;margin:11px 0 13px}.map-sidebar .filter{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.4}.map-sidebar .filter.special{border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.map-sidebar .filter input{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent)}.map-sidebar .filter small{color:var(--muted);margin-left:auto}
.map-sidebar .dot{width:11px;height:11px;border-radius:50%;flex:none}
.wallace-row{border-top:1px solid var(--line);padding:10px 2px;cursor:pointer;line-height:1.45}.wallace-row:hover,.wallace-row:focus{background:var(--soft)}.wallace-row strong{font-size:13px}.wallace-row .meta{color:var(--muted);font-size:11.5px;margin-top:3px}
.wallace-layout .bad{color:#b12b1f;font-weight:700}.wallace-layout .unknown,.wallace-layout .legacy{color:var(--muted)}
:root[data-theme="dark"] .map-sidebar .bad{color:#ff9b8f}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) .map-sidebar .bad{color:#ff9b8f}}
#map{grid-area:map;min-width:0;min-height:0;height:100%;width:100%;font-family:inherit;z-index:0}
#map .marker{width:16px;height:16px;border-radius:50%;border:2px solid white;box-shadow:0 1px 4px #0007}#map .marker.off{outline:3px solid #b42318}#map .marker.supplementary{border-color:#3c3426;border-style:dashed}#map .marker.white{border-color:#555}
#map .leaflet-popup-content{line-height:1.45}#map .leaflet-popup-content h3{margin:0 0 5px;font-size:20px}#map .popup-note{display:block;margin-top:7px;color:#554f48}#map .popup-line{margin-top:4px}
#map .leaflet-popup-content-wrapper,#map .leaflet-popup-tip{background:#fff;color:#25332e}#map .leaflet-popup-content h3,#map .leaflet-popup-content a{color:#006d9f}#map .leaflet-popup-content .bad{color:#a1251c}#map .leaflet-popup-content .unknown{color:#69635b}
#map .leaflet-control-attribution{color:#333;background:#fffffff0}#map .leaflet-control-attribution a{color:#006d9f}
.map-sidebar #footer{font-size:10.5px;color:var(--muted);line-height:1.45;margin-top:14px}
.application-info{grid-area:info;margin:0;padding:24px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.5}
.application-info p{max-width:1020px;margin:0 0 8px}.application-info a{font-weight:700;text-underline-offset:3px}.data-note{font-size:12px;margin-top:16px}
@media(max-width:850px){.wallace-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "map" "sidebar" "info";grid-template-rows:auto minmax(300px,48svh) auto auto}.map-header{padding:24px 0}.map-explanation{font-size:14px}.map-sidebar{padding:18px 0;max-height:65svh;border-right:0;border-bottom:1px solid var(--line)}.application-info{padding:22px 0}}

.wallace-back{font-size:14px;margin-bottom:20px}

/* Consent and all fountain details remain usable without Leaflet or external tiles. */
.wallace-layout{grid-template-rows:auto auto auto;align-items:start}
.map-sidebar{max-height:850px;max-height:80svh}
.map-region{grid-area:map;min-width:0;padding:20px 0 20px 24px}
.map-region #map{height:540px;height:65svh;min-height:320px;max-height:750px}
.map-region h2{font-size:clamp(25px,2.5vw,32px);margin:24px 0 16px;line-height:1.15}
.map-region p{font-size:16px;line-height:1.55}
.map-preview{margin:0}.map-preview img{width:100%;max-height:260px;object-fit:contain;object-position:left;background:var(--soft)}
.map-preview figcaption{font-size:12px;margin-top:6px;color:var(--muted)}
.map-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0 14px;font-size:14px}
#map-status:empty{display:none}
.wallace-row summary{cursor:pointer}.wallace-row summary strong{display:inline}.wallace-row .meta{display:block;margin-left:20px}.wallace-row .dot{display:inline-block;margin-right:7px}
.fountain-details{font-size:13px;padding:14px 0 8px;overflow-wrap:anywhere}.fountain-details h3{font-size:18px;line-height:1.25;margin-bottom:12px}.fountain-details .popup-note{display:block;margin:10px 0}
.show-on-map{display:block;border:1px solid var(--line);background:var(--soft);color:var(--accent);padding:10px 12px;font:inherit;margin-top:14px}
@media(max-width:850px){.wallace-layout{grid-template-areas:"heading" "map" "sidebar" "info";grid-template-rows:auto auto auto auto}.map-region{padding:0 0 24px}.map-sidebar{max-height:65svh}.map-region #map{height:48svh}.map-region h2{font-size:27px}}

/* Keep the search focus visible inside the scrolling sidebar. */
.map-sidebar input[type=search]:focus-visible{outline-offset:-3px}
.map-consent-heading{display:flex;align-items:center;gap:20px;margin:24px 0 16px}
.map-consent-heading h2{margin:0;min-width:0}
.map-consent-heading .btn{flex-shrink:0}
@media(max-width:850px){.map-consent-heading{flex-direction:column;align-items:flex-start;gap:14px}}
