.mapping-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:18px}.mapping-panel h2{margin:0 0 7px}.mapping-panel h3{font-size:13px;margin:5px 0 13px;color:var(--ink)}#mapping-map{height:610px;min-height:400px;border-radius:8px;background:#25322f;z-index:0}.mapping-list{overflow:auto;max-height:610px}.mapping-list h3:not(:first-child){margin-top:23px}.mapping-hole{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#242426;color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:12px 10px;margin-bottom:8px;cursor:pointer;font:inherit}.mapping-hole:hover,.mapping-hole:focus-visible{border-color:#16b99a;background:#2c3431}.mapping-hole strong{font-size:13px}.mapping-hole small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.mapping-hole.missing{border-style:dashed}.map-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.map-dot.east{background:#16b99a}.map-dot.west{background:#f29b44}.map-legend{display:flex;gap:22px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:16px}.map-legend span{display:flex;align-items:center;gap:8px}.mapping-panel .map-hole-label{background:#172420ed;border:1px solid #5c7368;color:white;box-shadow:0 2px 7px #0005;font-weight:650;font-size:11px}.map-popup{min-width:230px;color:#172420}.map-popup h3{color:#172420;margin:0 0 8px;font-size:17px}.map-popup p{margin:7px 0}.map-popup dl{display:grid;grid-template-columns:1fr 1.4fr;gap:8px 12px;margin:15px 0;font-size:12px}.map-popup dd{margin:0;font-weight:600}.map-popup dt{color:#5f6e69}.map-popup .button{background:#edf6f1;color:#146e59;border-color:#aac9ba}.mapping-panel .leaflet-control-layers{color:#172420}.mapping-panel .leaflet-container a{color:#176f96}.mapping-panel .leaflet-control-attribution{font-size:10px}.mapping-panel .leaflet-control-zoom a{color:#172420}@media(max-width:1100px){.mapping-layout{grid-template-columns:minmax(0,1fr) 205px}}@media(max-width:800px){.mapping-layout{grid-template-columns:1fr}#mapping-map{height:470px}.mapping-list{max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:8px}.mapping-list h3,.mapping-list>p{grid-column:1/-1}.mapping-hole{margin:0}.mapping-panel .panel-head{gap:14px}.map-popup{min-width:200px}}@media(max-width:450px){.mapping-list{grid-template-columns:1fr}#mapping-map{height:420px}}

/* Leaflet sizes its vector SVG in pixels; dashboard chart SVG rules must not shrink it. */
#mapping-map .leaflet-overlay-pane>svg{width:auto;height:auto;max-width:none;max-height:none}
