/* Shared map component (public site + case management) */
:root { --lmap-ink: #0E1B2E; --lmap-muted: #64748B; --lmap-line: #DCE3EC; --lmap-ocean: #0A2340; }
/* Map (shared component) */
.lmap { position: relative; width: 100%; height: 100%; }
.lmap svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.lmap__loading { display: grid; place-items: center; height: 100%; color: #9FB3C9; font-size: 14px; }
.lmap--light .lmap__loading { color: var(--lmap-muted); }
.lmap__county { cursor: pointer; outline: none; transition: filter .15s; }
.lmap__county:hover, .lmap__county:focus { filter: brightness(1.12); }
.lmap__ring { animation: lmap-ring 2.4s ease-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes lmap-ring { 0% { r: 3; opacity: .9; } 100% { r: 26; opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .lmap__ring { animation: none; } }
.lmap__arclabel { font: 600 10px "Public Sans", system-ui, sans-serif; fill: #DCE6F2; paint-order: stroke; stroke: var(--lmap-ocean); stroke-width: 3px; }
.lmap--light .lmap__arclabel { fill: var(--lmap-ink); stroke: #fff; }
.lmap__label { font: 600 11px "Public Sans", system-ui, sans-serif; fill: #E9F0F8; paint-order: stroke; stroke: #0B2340; stroke-width: 3px; stroke-linejoin: round; }
.lmap--light .lmap__label { fill: var(--lmap-ink); stroke: #fff; }
.lmap__num { font: 800 11px "Archivo", system-ui, sans-serif; font-stretch: 110%; fill: #fff; paint-order: stroke; stroke: rgba(11,35,64,.85); stroke-width: 3px; }
.lmap--light .lmap__num { fill: var(--lmap-ink); stroke: #fff; }
.lmap__tip { position: absolute; z-index: 10; pointer-events: none; background: #fff; color: var(--lmap-ink); border-radius: 8px; padding: 12px 14px; min-width: 190px; box-shadow: 0 10px 30px rgba(3, 15, 30, .35); font-size: 13px; transition: opacity .12s; }
.lmap__tip strong { font-family: "Archivo", system-ui, sans-serif; font-size: 16px; display: block; }
.lmap__tip dl { display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; margin: 8px 0 0; }
.lmap__tip dt { color: var(--lmap-muted); }
.lmap__tip dd { margin: 0; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.lmap__risk { display: inline-block; margin-top: 4px; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #EEF2F7; color: #3B4A5E; text-transform: capitalize; }
.lmap__risk--high { background: #FDE8E4; color: #9F2F1F; }
.lmap__risk--critical { background: #FBD9DE; color: #8E0B21; }
.lmap__legend { position: absolute; right: 0; top: 0; display: grid; gap: 4px; font-size: 12px; color: #B8C7D9; background: rgba(10,35,64,.6); padding: 10px 12px; border-radius: 8px; backdrop-filter: blur(4px); }
.lmap--light .lmap__legend { color: #3B4A5E; background: rgba(255,255,255,.9); border: 1px solid var(--lmap-line); }
.lmap__legend-title { font-weight: 700; color: inherit; }
.lmap__legend-bar { display: flex; height: 8px; width: 150px; border-radius: 4px; overflow: hidden; }
.lmap__legend-bar i { flex: 1; }
.lmap__legend-range { display: flex; justify-content: space-between; font-variant-numeric: tabular-nums; }
.lmap__legend-keys { display: flex; gap: 12px; margin-top: 2px; }
.lmap__legend-keys i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }

@media (max-width: 560px) { .lmap__legend { position: static; margin-top: 8px; } }
