.event-map-panel{--map-surface:#faf9f5;--map-ink:#191919;--map-line:#c5c5bc;--map-muted:#66665f;--map-bg:#eeede8;--map-marker:#376859;margin-bottom:36px;border:1px solid var(--map-line);background:var(--map-surface);color:var(--map-ink);font-family:Helvetica,"Helvetica Neue",Arial,sans-serif}
.event-map-panel[data-theme=night]{--map-surface:#080808;--map-ink:#f5f5f0;--map-line:#494944;--map-muted:#b5b5af;--map-bg:#101010;--map-marker:#91c8b0;color-scheme:dark}
.event-map-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--map-line)}.map-eyebrow{display:block;font-size:9px;letter-spacing:1.2px;font-weight:700}.event-map-heading h2{font-size:24px;font-weight:700;letter-spacing:-.8px;margin:7px 0 0;line-height:1.1}.event-map-actions{display:flex;gap:8px}.event-map-panel button{padding:10px 12px;min-height:44px;border:1px solid var(--map-line);background:var(--map-surface);color:var(--map-ink);font-size:12px;font-weight:700;cursor:pointer}.event-map-panel button:disabled{opacity:.45;cursor:default}.event-map-panel button[aria-pressed=true]{background:var(--map-ink);color:var(--map-surface)}
.event-map-stage{position:relative;isolation:isolate}#event-map{height:440px;width:100%;background:var(--map-bg);z-index:0}.event-map-label{position:absolute;z-index:400;top:20px;left:20px;padding:14px 18px;background:var(--map-surface);border:1px solid var(--map-line);pointer-events:none}.event-map-label>span:last-child{display:block;font-size:12px;margin-top:7px}.event-map-footer{display:flex;align-items:center;gap:12px;justify-content:space-between;border-top:1px solid var(--map-line);padding:13px 20px;font-size:11px;color:var(--map-muted)}.event-map-footer p{margin:0}.map-key{display:flex;align-items:center;gap:7px;white-space:nowrap}.map-key i{width:9px;height:9px;background:var(--map-marker);border:1px solid var(--map-ink);border-radius:50%}.map-no-script{padding:16px;font-size:12px}
.event-map-panel .leaflet-container{font-family:Helvetica,Arial,sans-serif}.event-map-panel .leaflet-tile-pane{filter:grayscale(1) contrast(.88) brightness(1.06)}.event-map-panel[data-theme=night] .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.7) contrast(.9)}.event-map-panel .leaflet-bar{border:1px solid var(--map-line)!important;border-radius:0!important;box-shadow:0 2px 8px #0000000c!important}.event-map-panel .leaflet-bar a{border-radius:0!important;background:var(--map-surface);color:var(--map-ink);border-color:var(--map-line);width:36px;height:36px;line-height:36px}.event-map-panel .leaflet-top.leaflet-right{top:10px;right:10px}.event-map-panel .leaflet-control-attribution{background:var(--map-surface);color:var(--map-muted);font-size:10px}.event-map-panel .leaflet-container a{color:var(--map-ink)}.event-map-panel .leaflet-popup-content-wrapper,.event-map-panel .leaflet-popup-tip{background:var(--map-surface);color:var(--map-ink);border-radius:2px}.event-map-panel .leaflet-popup-content{max-height:230px;overflow:auto}.map-popup-event+.map-popup-event{border-top:1px solid var(--map-line);padding-top:12px;margin-top:12px}.map-popup-event a{display:block;font-size:14px;font-weight:700;text-decoration:underline}.map-popup-event p{font-size:11px;margin:6px 0}.map-popup-event small{color:var(--map-muted)}.event-location-marker{display:grid;place-items:center;border:3px solid var(--map-surface);border-radius:50%;background:var(--map-marker);color:var(--map-surface);box-shadow:0 2px 6px #0004;font:bold 12px Helvetica,Arial,sans-serif}.event-map-panel [hidden]{display:none!important}
@media(max-width:640px){#event-map{height:340px}.event-map-heading{padding:16px;align-items:flex-start;flex-direction:column}.event-map-heading h2{font-size:22px}.event-map-label{top:12px;left:12px;padding:10px}.event-map-label>span:last-child{display:none}.event-map-footer{padding:12px;flex-wrap:wrap}.event-map-actions{width:100%}.event-map-actions button{flex:1}}
/* Expand the same map into a modal, preserving its search, markers and view. */
html.map-modal-open{overflow:hidden}
.map-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--bg);color:var(--ink)}
.map-dialog::backdrop{background:#0009}
.map-dialog .map-expanded{display:flex;flex-direction:column;width:100%;height:100%;margin:0;border:0}
.map-expanded .event-map-heading,.map-expanded .event-map-footer{flex-shrink:0}
.map-expanded .event-map-stage{flex:1;min-height:0}
.map-expanded #event-map{height:100%}
.map-expanded .leaflet-popup-content{max-height:none;line-height:1.5}
.map-expanded .map-popup-event{padding:6px 2px}
.map-expanded .map-popup-event a{font-size:18px;line-height:1.3}
.map-expanded .map-popup-event p{font-size:13px}
.event-map-panel .leaflet-popup-content{overscroll-behavior:contain;overflow-wrap:anywhere}
.event-map-actions{flex-wrap:wrap}
#map-close{font-size:20px;line-height:1;min-width:44px}
@media(max-width:640px){.map-expanded .event-map-heading{gap:10px;padding:12px}.map-expanded .event-map-heading h2{font-size:18px}.map-expanded .event-map-label{display:none}.map-expanded .map-key{display:none}.map-expanded .event-map-footer{padding:8px 12px}.map-expanded .map-popup-event a{font-size:16px}.event-map-actions button{white-space:nowrap}}
.map-dates{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 20px;border-bottom:1px solid var(--map-line);flex-shrink:0;z-index:2}
.map-date-summary{margin-right:auto;font-size:12px;line-height:1.5}.map-date-summary strong,.map-date-summary span{display:block}.map-date-summary span{font-size:10px;color:var(--map-muted)}
.map-dates label{display:grid;gap:4px;font-size:11px;color:var(--map-muted)}
.map-dates input[type=date]{width:150px;min-height:40px;padding:8px;color:var(--map-ink);background:var(--map-surface);border-color:var(--map-line);font-size:12px;color-scheme:light}
.map-dates input[type=hidden]{display:none}
[data-theme=night] .map-dates input[type=date]{color-scheme:dark}
.map-calendar summary{padding:12px;border:1px solid var(--map-line);cursor:pointer;font-size:12px;min-height:44px}
.map-calendar-popover{position:absolute;right:20px;top:100%;width:300px;max-width:calc(100% - 24px);max-height:55vh;max-height:55dvh;overflow:auto;padding:12px;background:var(--map-surface);border:1px solid var(--map-line);box-shadow:0 10px 30px #0005;z-index:1000}
.map-calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:13px;margin-bottom:8px}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.calendar-weekdays{font-size:10px;color:var(--map-muted);margin-bottom:6px}
.event-map-panel .calendar-days button{padding:4px;min-height:34px;font-size:12px;border-color:transparent}
.event-map-panel .calendar-days .in-range{background:var(--map-bg);border-color:var(--map-line)}
.event-map-panel .calendar-days button:hover{border-color:var(--map-ink)}
#calendar-hint{font-size:11px;line-height:1.5;color:var(--map-muted)}
@media(max-width:640px){.map-dates{gap:8px;padding:10px 12px}.map-date-summary{flex-basis:100%}.map-dates label{flex:1;min-width:0}.map-dates input[type=date]{width:100%;min-width:0}.map-calendar-popover{right:12px}.map-expanded .map-date-summary span{display:none}}
