/* A quieter basemap, crisp overlays and comfortably sized controls. */
body[data-map-style="calm"] .leaflet-tile-pane{filter:saturate(.36) contrast(.94) brightness(1.04)}
body[data-map-style="calm"] #map{background:#e9eee6}
.square-marker{height:auto!important}
.square-label{background:#fffffc;border:1px solid #adbaad;border-radius:15px;padding:10px 9px;box-shadow:0 3px 16px #24423720;color:#173e33;min-height:48px;display:flex;flex-direction:column;justify-content:center}
.square-label strong{font-size:13px;letter-spacing:-.1px}.square-label small{font-size:11px;color:#546858;margin-top:4px}
.hide-map-areas .square-marker{display:none}
.map-view-button{box-shadow:0 4px 18px #173e3020;border:1px solid #fff;border-radius:28px;font-size:15px;min-height:48px;padding:10px 16px;background:#fffffc}.map-view-button svg{width:20px}
.map-legend{position:absolute;bottom:108px;right:24px;z-index:700;background:#fffffc;padding:9px 13px;border-radius:13px;box-shadow:0 3px 14px #173e3014;display:flex;align-items:center;gap:8px;font-size:12px;color:#385847;pointer-events:none}
.map-legend-line,.map-legend-blue{width:20px;height:4px;background:#26785d;border-radius:3px}.map-legend-blue{background:#415bd6;margin-left:5px}
.social-map-marker{background:none;border:0}.social-map-marker:focus-visible{outline:3px solid #ca8d20;outline-offset:5px;border-radius:15px}
.map-event-pill,.map-checkin-pill{min-height:48px;width:100%;background:#fffaf0;border:1px solid #c7ac78;border-radius:14px;box-shadow:0 3px 13px #173e3020;display:flex;gap:9px;align-items:center;padding:8px 10px;color:#644d24}
.map-event-pill svg{width:22px;height:22px}.map-event-pill>span:last-child,.map-checkin-pill>span:last-child{min-width:0;flex:1}.map-event-pill strong,.map-checkin-pill strong{display:block;font:700 13px/1.2 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-event-pill small,.map-checkin-pill small{display:block;font:12px/1.3 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:3px}
.map-checkin-pill{background:#f2eff8;border-color:#b3a0c2;color:#52376a}.map-badge{font-size:24px;line-height:1}
.guiding .social-map-marker,.map-picking .social-map-marker,.route-ready .social-map-marker,body[data-screen="arrival"] .social-map-marker{display:none}
.guiding .map-legend,.map-picking .map-legend,.guiding #mapView,.map-picking #mapView{display:none}
#mapViewDialog,#checkinDialog{width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:26px;border-radius:24px;background:#fffef8;border:1px solid #dce4d8;overflow:auto;overscroll-behavior:contain}
#mapViewDialog h2,#checkinDialog h2{font-size:29px;margin-bottom:12px}#mapViewDialog p,#checkinDialog p{font-size:16px;line-height:1.5}#mapViewDialog::backdrop,#checkinDialog::backdrop{background:#112c2360}
.map-style-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.map-style-choices button{display:flex;flex-direction:column;text-align:left;align-items:stretch;padding:8px;border:2px solid #dce4db;gap:4px;background:#fff}.map-style-choices button[aria-pressed=true]{border-color:#174b3b;background:#edf3e7}.map-style-choices strong{padding:3px 4px 0}.map-style-choices small{font-size:12px;font-weight:400;padding:0 4px 5px;color:#506652}.map-style-sample{height:58px;border-radius:8px;background-color:#e4e8df;background-image:linear-gradient(22deg,transparent 45%,#fff 46%,#fff 53%,transparent 54%),linear-gradient(115deg,transparent 45%,#6a8d77 46%,#6a8d77 49%,transparent 50%),linear-gradient(70deg,transparent 64%,#c8dce2 65%)}.map-style-sample.original{background-color:#d7e9b7;background-image:linear-gradient(22deg,transparent 45%,#fff 46%,#fff 53%,transparent 54%),linear-gradient(115deg,transparent 45%,#328363 46%,#328363 49%,transparent 50%),linear-gradient(70deg,transparent 64%,#a9d3df 65%)}
.map-layer-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #e1e7dc;margin:0;min-height:65px}.map-layer-row strong{display:block;font-size:16px}.map-layer-row small{display:block;font-size:13px;font-weight:400;color:#586a60;margin-top:4px}.map-layer-row input{width:26px;height:26px;flex:none;accent-color:#174b3b}
.checkin-receipt{background:#eeedf4;border:1px solid #dbd5e4;border-radius:22px;padding:23px;text-align:center;margin:20px 0;color:#49385a}.checkin-receipt .eyebrow{display:block;font-size:10px;margin-top:12px}.checkin-receipt h3{font-size:25px;line-height:1.2;margin:12px 0}.checkin-receipt p{font-size:17px;color:#574d62;margin-bottom:16px}.checkin-receipt strong,.checkin-receipt small{display:block;font-size:14px;margin-top:5px}.checkin-badge{font-size:44px;line-height:1}.checkin-caution{font-size:16px;line-height:1.5}.checkin-saved{border-bottom:1px solid var(--border);padding-bottom:6px}.checkin-open{width:100%;text-align:left;justify-content:flex-start;border:0;background:transparent;padding:14px 0;gap:12px}.checkin-open strong,.checkin-open small{display:block}.checkin-open strong{font-size:17px}.checkin-open small{font-size:13px;font-weight:400;margin-top:4px;color:#617060}.checkin-small-badge{font-size:30px}.checkin-popup button{display:block;margin-top:8px;width:100%;font-size:14px}.checkin-popup{min-width:210px}
#checkinLink{font-size:14px}#newMeetup{background:#edf3e7;color:#174b3b;border-color:#dce5d6;margin-top:14px}.larger-text .checkin-receipt p,.larger-text .checkin-caution{font-size:19px}
@media(max-width:700px){.map-view-button{padding:10px 13px;font-size:14px}.map-legend{display:none}.full-map .map-legend{display:flex;bottom:150px;right:16px;font-size:11px;gap:6px}.expanded:not(.full-map) .map-controls{display:none}.square-label{min-height:46px;padding:7px!important}.square-label strong,body:not(.full-map) .square-label strong{font-size:12px}.map-event-pill strong,.map-checkin-pill strong{font-size:13px}#mapViewDialog,#checkinDialog{padding:22px}.checkin-open small{font-size:14px}}
@media(prefers-reduced-motion:reduce){.leaflet-zoom-animated{transition:none!important}}
/* At community scale, one compact symbol per layer avoids stacked cards. */
.map-overview .event-map-marker{width:32px!important;height:32px!important;margin-left:65px!important;margin-top:-12px!important}
.map-overview .checkin-map-marker{width:32px!important;height:32px!important;margin-left:100px!important;margin-top:-12px!important}
.map-overview .map-event-pill,.map-overview .map-checkin-pill{width:32px;height:32px;min-height:32px;padding:6px;border-radius:50%;gap:0;justify-content:center}
.map-overview .map-event-pill>span:last-child,.map-overview .map-checkin-pill>span:last-child{display:none}
.map-overview .map-event-pill svg{width:18px;height:18px}.map-overview .map-badge{font-size:20px}
@media(max-width:700px){.map-controls #overview{display:none}}
/* Leaflet's general SVG viewport rule must not collapse UI icons inside markers. */
#map .map-event-pill svg{width:22px;height:22px}
#map .map-event-pill>span:first-child{flex:none}
.map-overview #map .map-event-pill svg{width:18px;height:18px}
.map-legend[hidden]{display:none}
@media(max-width:700px){.full-map .map-legend{display:none}}
