.sbm-map-wrap{display:grid;gap:12px;width:100%}
.sbm-map-svg{position:relative;width:100%;overflow:visible}
.sbm-map-svg svg{width:100% !important;height:auto !important;display:block;max-width:100%}
.sbm-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.sbm-legend li{display:flex;align-items:center;gap:6px;padding:2px 6px;border:1px solid #e2e8f0;border-radius:6px;background:#fff}
.sbm-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid rgba(0,0,0,.15)}
.sbm-map-svg [data-name]{fill:#f1f5f9;stroke:#334155;stroke-width:.6;transition:fill .2s ease;touch-action:manipulation}
.sbm-map-svg [data-name].sbm-hit{cursor:pointer}
.sbm-map-svg [data-name]:hover{filter:brightness(1.05)}
.sbm-tooltip{position:fixed;pointer-events:none;padding:8px 10px;background:#111;border-radius:8px;line-height:1.25;z-index:99999;box-shadow:0 2px 10px rgba(0,0,0,.3);
  color:var(--sbm-tip-color,#fff); font-size:var(--sbm-tip-size,13px); text-shadow:var(--sbm-tip-shadow,none);}
/* County labels */
.sbm-county-label{font:var(--sbm-label-size,12px)/1.2 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;fill:var(--sbm-label-text,#111);text-anchor:middle;pointer-events:none;opacity:.98}
.sbm-label-bg{fill:var(--sbm-label-bg,rgba(17,24,39,.75));opacity:var(--sbm-label-bg-opacity,.85);pointer-events:none}
@media (max-width:640px){
  .sbm-legend{gap:6px}
  .sbm-legend li{font-size:12px}
  .sbm-county-label,.sbm-label-bg{display:none}
}
