/* ═══════════════════════════════════════════
   map.css — Map View, Leaflet Overrides, Site Popups
   ═══════════════════════════════════════════ */

#map-container{height:100%;width:100%;position:relative}
#map{height:100%;width:100%;position:relative;z-index:1}

/* Overview always visible; site popup host sits above it (sibling layer, not inside #map). */
.map-overlay{position:absolute;top:12px;left:12px;z-index:2;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:14px 18px;min-width:260px;max-height:calc(100vh - 120px);overflow-y:auto}
.map-overlay h3{font-size:13px;margin-bottom:8px;color:var(--cyan);display:none}
.map-search-wrap{margin-bottom:10px}
.map-search-wrap input{width:100%;padding:8px 10px 8px 30px;background:var(--bg3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%236b7280' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E") no-repeat 8px center;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;outline:none;transition:border .2s}
.map-search-wrap input:focus{border-color:var(--cyan)}
.map-search-wrap input::placeholder{color:var(--gray)}
.map-filter-row{display:flex;gap:6px;margin-bottom:10px}
.map-filter-row select{flex:1;padding:6px 8px;background:var(--bg3);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:11px;outline:none;cursor:pointer;appearance:auto}
.map-filter-row select:focus{border-color:var(--cyan)}
.map-overlay .row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:3px}
.map-overlay .row .k{color:var(--text2)}.map-overlay .row .v{font-weight:600}

.map-popup-host{position:absolute;z-index:3;pointer-events:none;max-width:calc(100% - 24px)}
.map-site-popup-card{pointer-events:auto;position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 14px 14px;box-shadow:0 8px 24px rgba(0,0,0,.45);max-width:min(720px,calc(100vw - 48px))}
.map-site-popup-card--wide{min-width:min(620px,calc(100vw - 48px))}
.map-site-popup-close{position:absolute;top:4px;right:6px;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--text2);font-size:18px;line-height:1;cursor:pointer;padding:0;z-index:2}
.map-site-popup-close:hover{color:var(--text);background:rgba(255,255,255,.08)}
.map-site-popup-card .site-popup h4{padding-right:18px}
.map-site-popup-tip{position:absolute;left:var(--tip-x,50%);bottom:-10px;width:18px;height:10px;transform:translateX(-50%);pointer-events:none}
.map-site-popup-tip::before,.map-site-popup-tip::after{content:'';position:absolute;left:50%;transform:translateX(-50%);border-left:9px solid transparent;border-right:9px solid transparent}
.map-site-popup-tip::before{bottom:0;border-top:10px solid var(--border)}
.map-site-popup-tip::after{bottom:1px;border-top:9px solid var(--bg2)}
.map-site-popup-card--below .map-site-popup-tip{bottom:auto;top:-10px;transform:translateX(-50%) rotate(180deg)}

/* ── Map markers ── */
.map-marker-wrap{position:relative;width:14px;height:14px}
.map-marker-dot{width:14px;height:14px;border-radius:50%;border:2px solid #fff}
.map-marker-dot.loading{background:#6b7280;box-shadow:0 0 6px rgba(107,114,128,.4)}
.map-marker-dot.active{background:#22c55e;box-shadow:0 0 4px rgba(34,197,94,.35)}
.map-marker-dot.inactive{background:#f59e0b;box-shadow:0 0 6px rgba(245,158,11,.45)}
.map-marker-badge{position:absolute;top:-7px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--cyan);color:#000;font-size:10px;font-weight:700;line-height:16px;text-align:center;border:1px solid rgba(255,255,255,.85);box-shadow:0 1px 4px rgba(0,0,0,.35);pointer-events:none}

/* ── Leaflet ── */
.leaflet-control-zoom{display:none!important}

/* ── Site popup content ── */
.site-popup{min-width:200px}
.site-popup h4{font-size:13px;margin-bottom:6px;color:var(--cyan)}
.site-popup-addr{font-size:var(--fs-xs);color:var(--text2);margin-bottom:6px}
.site-popup .row{display:flex;justify-content:space-between;font-size:11px;margin-bottom:2px}
.site-popup .row .k{color:var(--text2)}.site-popup .row .v{font-weight:600}
.site-popup .enter{display:inline-block;margin-top:8px;padding:5px 14px;background:var(--cyan);color:#000;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;border:none;text-decoration:none}
.site-popup .enter:hover{opacity:.85}
.site-popup-multi{min-width:0}
.site-popup-multi h4{margin-bottom:8px}
.site-popup-table-wrap{max-height:320px;overflow:auto;margin-top:4px}
.site-popup-table{width:100%;border-collapse:collapse;font-size:11px}
.site-popup-table th,.site-popup-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.site-popup-table th{color:var(--text2);font-weight:600;white-space:nowrap;background:var(--bg3);position:sticky;top:0;z-index:1}
.site-popup-table tbody tr:hover{background:rgba(6,182,212,.08)}
.site-popup-link{color:var(--cyan);font-weight:700;text-decoration:none}
.site-popup-link:hover{text-decoration:underline}
.site-popup-row{cursor:pointer}

/* ── Map stat sections ── */
.map-stat-section{margin-bottom:12px}
.map-stat-section+.map-stat-section{padding-top:10px;border-top:1px solid var(--border)}
.map-stat-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--cyan);margin-bottom:6px}
.map-stat-subtitle{font-size:11px;color:var(--text3);margin:-2px 0 8px;line-height:1.35;word-break:break-word}
.map-stat-subtitle-active{color:var(--text2)}
.map-stat-section-footer{margin-top:4px;padding-top:10px;border-top:1px dashed var(--border)}
.map-stat-hint{font-size:10px;color:var(--text3);line-height:1.4;margin-top:2px;padding:0 6px}
.map-stat-section-overview .map-stat-item{cursor:default}
.map-stat-section-overview .map-stat-item:hover{background:transparent}
.map-stat-item,.map-stat-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 6px;margin:0 -6px;border-radius:4px}
.map-stat-k{color:var(--text2)}
.map-stat-v{font-weight:600}
.map-stat-muted{color:var(--text3);font-weight:400}
.map-stat-row{cursor:pointer;transition:background .15s}
.map-stat-row:hover{background:rgba(255,255,255,.06)}
.map-stat-active{background:rgba(0,255,209,.12) !important;border-left:3px solid var(--cyan);padding-left:8px}

@keyframes map-loading-pulse{0%,100%{opacity:.3}50%{opacity:1}}
.map-stat-loading{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:map-loading-pulse .8s infinite;margin-left:2px}
.map-stat-loading::before,.map-stat-loading::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:map-loading-pulse .8s infinite;margin-left:4px}
.map-stat-loading::before{animation-delay:.15s}
.map-stat-loading::after{animation-delay:.3s}
