/* Two views, one explorer. Leaflet stays inside the map's existing style boundary. */
.pnm-map-views{position:absolute;z-index:4;top:18px;left:22px;display:flex;gap:3px;padding:4px;background:#fff;border-radius:28px;box-shadow:var(--pnm-shadow)}
.pnm .pnm-map-views button{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;min-height:42px;border-radius:24px;font-size:12px;font-weight:550}
.pnm .pnm-map-views button[aria-pressed=true]{background:var(--pnm-ink);color:#fff}
.pnm .pnm-map-views button:not([aria-pressed=true]):hover{background:#e9f1f2}
.pnm .pnm-map-views svg{width:17px;height:17px}
.pnm .pnm-districts{top:79px}
.pnm .pnm-layer-controls{top:80px}
.pnm[data-view=geographic] .pnm-districts{max-width:calc(100% - 95px);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#bed0d3 transparent}
.pnm[data-view=geographic] .pnm-districts button{flex:none;white-space:nowrap}
.pnm .pnm-locate{position:absolute;z-index:4;right:20px;top:20px;display:flex;align-items:center;gap:9px;min-height:46px;padding:11px 15px;border-radius:24px;background:#fff;box-shadow:var(--pnm-shadow);font-size:12px;font-weight:550}
.pnm .pnm-locate:hover{background:#e9f1f2}
.pnm .pnm-locate[aria-pressed=true]{background:#1e6cbb;color:#fff}
.pnm .pnm-locate[data-state=loading]{cursor:progress}
.pnm-geographic{position:absolute;inset:0;isolation:isolate;z-index:0;background:#e8efdf;font-family:inherit}
.pnm-geographic .leaflet-pane{font-family:inherit}
.pnm .pnm-geographic .leaflet-pane>svg{max-width:none}
.pnm .pnm-geographic img.leaflet-tile{max-width:none!important;max-height:none!important;border-radius:0;box-shadow:none}
.pnm .pnm-geographic .leaflet-control-attribution{font-family:inherit;font-size:9px;line-height:1.5;color:#294b50;background:#fffffff2;padding:2px 5px;max-width:100%;text-align:right}
.pnm .pnm-geographic .leaflet-control-attribution a{color:#244f5a;text-decoration:underline}
.pnm .pnm-geographic .leaflet-bottom.leaflet-right{max-width:100%}
.pnm .pnm-geographic .leaflet-control-scale{margin:0 0 12px 20px}
.pnm .pnm-geographic .leaflet-control-scale-line{font-size:10px;color:#264952;border-color:#264952;background:#ffffffe8}
.pnm-geo-tooltip{font-family:inherit;font-size:12px;color:#233e47;border:0;background:#fff;box-shadow:0 4px 14px #233e4722;padding:7px 10px;border-radius:5px}
.pnm .pnm-geo-pin{background:none;border:0}
.pnm-geo-pin-inner{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#264c56;color:#fff;border:3px solid #fff;box-shadow:0 4px 10px #233e4733}
.pnm .pnm-geo-pin.is-selected .pnm-geo-pin-inner{background:#bf2d30}
.pnm .pnm-geo-pin svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none}
.pnm-geo-user-dot{width:18px;height:18px;border:3px solid #fff;background:#1673d1;border-radius:50%;box-shadow:0 3px 8px #16467b44}
.pnm .pnm-geo-message{position:absolute;z-index:4;left:22px;bottom:82px;max-width:min(440px,calc(100% - 105px));padding:11px 14px;background:#fff;border-radius:8px;box-shadow:var(--pnm-shadow);font-size:12px;line-height:1.5;color:#233e47}
.pnm .pnm-geo-message[data-kind=error]{color:#8b3326}
.pnm[data-view=geographic] .pnm-legend{bottom:29px}
.pnm .pnm-zoom{bottom:179px}
@media(max-width:700px){
  .pnm .pnm-map-views{left:12px;top:12px;padding:3px;gap:0;max-width:calc(100% - 80px)}
  .pnm .pnm-map-views button{min-height:44px;padding:9px 12px;gap:6px;font-size:12px}
  .pnm .pnm-map-views svg{width:16px;height:16px}
  .pnm .pnm-locate{right:12px;top:15px;min-height:44px;width:44px;padding:11px;justify-content:center}
  .pnm .pnm-locate span{display:none}
  .pnm .pnm-districts{top:73px;left:12px;right:12px;max-width:calc(100% - 24px)}
  .pnm[data-view=geographic] .pnm-districts{right:12px;max-width:calc(100% - 24px);justify-content:flex-start;scrollbar-width:none}
  .pnm .pnm-layer-controls{right:12px;top:133px}
  .pnm[data-view=geographic] .pnm-layer-controls{top:76px}
  .pnm .pnm-geographic .leaflet-control-attribution{font-size:8px;line-height:1.35;padding:3px 5px}
  .pnm .pnm-geographic .leaflet-control-scale{margin:0 0 118px 12px}
  .pnm[data-view=geographic] .pnm-mobile-explore{bottom:31px}


  .pnm .pnm-geo-message{left:12px;bottom:148px;max-width:calc(100% - 85px);font-size:12px}
}
@media(max-width:360px){
  .pnm .pnm-map-views button{padding-inline:9px;font-size:11px}
  .pnm .pnm-map-views svg{width:15px;height:15px}
  .pnm .pnm-districts button{padding-inline:5px}
}

/* Secondary controls share a disclosure on phones; the canvas gets the space. */
.pnm-map-options{display:contents}
.pnm .pnm-options-toggle,.pnm-options-head{display:none}
.pnm-extra-controls{position:absolute;right:20px;bottom:89px;z-index:3;display:flex;flex-direction:column;background:#fff;border-radius:8px;box-shadow:var(--pnm-shadow);overflow:hidden}
.pnm .pnm-extra-controls button{display:flex;align-items:center;justify-content:center;width:43px;height:43px;padding:10px}
.pnm .pnm-extra-controls button+button{border-top:1px solid #e5ecec}
.pnm .pnm-extra-controls button:hover{background:#e9f1f2}
.pnm-extra-controls span{display:none}
.pnm .pnm-detail-maps{display:block;margin-top:14px;font-size:12px;text-decoration:underline;text-underline-offset:3px;min-height:44px;padding:12px 0}
@media(max-width:700px){
  .pnm .pnm-map-views{max-width:calc(100% - 24px)}
  .pnm .pnm-map-views button{padding-inline:14px}
  .pnm .pnm-locate{top:auto;right:12px;bottom:190px;border-radius:8px}
  .pnm .pnm-zoom,.pnm[data-view=geographic] .pnm-zoom{right:12px;bottom:90px}
  .pnm .pnm-zoom button{width:44px;height:44px}
  .pnm .pnm-mobile-explore,.pnm[data-view=geographic] .pnm-mobile-explore{left:12px;right:118px;bottom:30px;min-height:44px;height:44px;padding:10px;gap:7px;font-size:12px}
  .pnm .pnm-mobile-explore .pnm-explore-label{font-size:12px;font-weight:550;color:inherit}
  .pnm .pnm-mobile-explore [data-map-mobile-count]{display:none}
  .pnm .pnm-options-toggle{position:absolute;right:12px;bottom:30px;z-index:5;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;width:96px;padding:10px 8px;background:#fff;border-radius:8px;box-shadow:var(--pnm-shadow);font-size:12px;font-weight:550}
  .pnm .pnm-options-toggle[aria-expanded=true]{background:var(--pnm-ink);color:#fff}
  .pnm .pnm-map-options{display:none;position:absolute;z-index:6;bottom:84px;right:12px;left:12px;max-height:calc(100% - 105px);overflow:auto;overscroll-behavior:contain;background:#fff;border-radius:12px;padding:6px 14px 12px;box-shadow:var(--pnm-shadow);scrollbar-width:thin;scrollbar-color:#bed0d3 transparent}
  .pnm[data-options=true] .pnm-map-options{display:block}
  .pnm-options-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}
  .pnm-options-head strong{font-size:14px;font-weight:550}
  .pnm .pnm-options-head button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:10px;margin-right:-8px}
  .pnm .pnm-map-options .pnm-legend{position:static;display:grid;grid-template-columns:1fr 1fr;max-width:none;padding:0;margin:4px 0 8px;gap:2px;background:none;border-radius:0}
  .pnm .pnm-map-options .pnm-legend button,.pnm .pnm-map-options .pnm-legend-closed{font-size:12px;gap:8px;min-height:44px;padding:8px}
  .pnm .pnm-map-options .pnm-layer-controls{position:static;border-top:1px solid var(--pnm-line);padding-top:6px}
  .pnm .pnm-map-options .pnm-layer-controls button{width:100%;min-height:44px;box-shadow:none;border-radius:4px;padding:10px 8px;font-size:12px}
  .pnm .pnm-map-options .pnm-layer-controls span{display:inline}
  .pnm .pnm-extra-controls{position:static;display:flex;flex-direction:row;gap:8px;box-shadow:none;border-radius:0;margin-top:6px;border-top:1px solid var(--pnm-line);padding-top:6px}
  .pnm .pnm-extra-controls button{flex:1;width:auto;height:auto;min-height:44px;padding:10px 4px;gap:6px;border:0;font-size:11px}
  .pnm .pnm-extra-controls span{display:inline}
  .pnm .pnm-geo-message{bottom:90px;max-width:calc(100% - 86px)}
}
