.elmap-root{--elmap-stroke:color-mix(in srgb, var(--foreground) 22%, var(--border));--elmap-fill:color-mix(in srgb, var(--wave) 55%, var(--surface));--elmap-fill-hover:color-mix(in srgb, var(--accent) 18%, var(--surface));--elmap-fill-active:color-mix(in srgb, var(--accent) 28%, var(--surface));--elmap-dim-opacity:.38}.elmap-toolbar{border:1px solid var(--border);background:var(--surface);border-radius:1rem;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.elmap-toolbar-group{flex-direction:column;gap:.35rem;min-width:0;display:flex}.elmap-toolbar-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.65rem;font-weight:600}.elmap-btn-row{flex-wrap:wrap;gap:.35rem;display:flex}.elmap-btn{border:1px solid var(--border);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:9999px;padding:.35rem .65rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.elmap-btn:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.elmap-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.elmap-btn[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 14%, var(--surface));border-color:var(--accent);color:var(--foreground)}.elmap-search{align-items:center;gap:.35rem;display:flex}.elmap-search input{border:1px solid var(--border);background:var(--background);min-width:10rem;color:var(--foreground);border-radius:.5rem;padding:.4rem .6rem;font-size:.8rem}.elmap-search input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.elmap-layout{align-items:start;gap:1.25rem;display:grid}@media (min-width:1024px){.elmap-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}}.elmap-map-wrap{border:1px solid var(--border);background:color-mix(in srgb, var(--wave) 22%, var(--surface));border-radius:1rem;min-height:280px;position:relative;overflow:hidden}.elmap-map-inner{aspect-ratio:1000/780;z-index:0;max-height:min(72vh,640px);position:relative}.elmap-svg{width:100%;height:100%;display:block}.elmap-svg.elmap-reduced-motion .elmap-area{transition:none}.elmap-area{fill:var(--elmap-fill);stroke:var(--elmap-stroke);stroke-width:.35px;cursor:pointer;transition:fill .18s,opacity .18s,stroke .18s}.elmap-area:hover,.elmap-area.is-hover{fill:var(--elmap-fill-hover);stroke:color-mix(in srgb, var(--accent) 55%, var(--elmap-stroke))}.elmap-area.is-active{fill:var(--elmap-fill-active);stroke:var(--accent);stroke-width:.55px}.elmap-area.is-dimmed{opacity:var(--elmap-dim-opacity)}.elmap-tooltip{z-index:50;border:1px solid var(--border);background:var(--surface-elevated);max-width:18rem;box-shadow:0 8px 28px color-mix(in srgb, var(--foreground) 12%, transparent);pointer-events:none;border-radius:.5rem;padding:.5rem .65rem;font-size:.75rem;line-height:1.35;position:fixed}.elmap-tooltip h3{color:var(--foreground);margin:0 0 .2rem;font-size:.8rem;font-weight:700}.elmap-tooltip p{color:var(--muted);margin:0}.elmap-panel{border:1px solid var(--border);background:var(--surface);border-radius:1rem;padding:1rem 1.1rem}.elmap-panel h3{color:var(--foreground);margin:0 0 .35rem;font-size:1.05rem;font-weight:700}.elmap-crumb{color:var(--muted);margin-bottom:.35rem;font-size:.72rem}.elmap-meta{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.5rem;font-size:.72rem;font-weight:600}.elmap-desc{color:var(--muted);margin:.5rem 0 .75rem;font-size:.8rem;line-height:1.45}.elmap-candidate-list{flex-direction:column;gap:.65rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.elmap-candidate{border:1px solid var(--border);background:var(--background);border-radius:.5rem;padding:.5rem .6rem}.elmap-candidate-party{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:.65rem;font-weight:700}.elmap-candidate-name{color:var(--foreground);margin-top:.15rem;font-size:.85rem;font-weight:600}.elmap-candidate-alliance{color:var(--muted);margin-top:.2rem;font-size:.68rem}.elmap-candidate a{color:var(--accent);margin-top:.35rem;font-size:.68rem;font-weight:600;display:inline-block}.elmap-candidate a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.elmap-hook{color:var(--foreground);margin:0 0 .65rem;font-size:.8rem;line-height:1.4}.elmap-fact-line{color:var(--muted);margin:0 0 .5rem;font-size:.72rem}.elmap-past{border-top:1px solid var(--border);margin-top:.85rem;padding-top:.85rem}.elmap-past h4{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;font-size:.65rem;font-weight:700}.elmap-past-row{color:var(--foreground);margin:.35rem 0 0;font-size:.75rem;line-height:1.45}.elmap-past-row span{color:var(--muted)}.elmap-past a{color:var(--accent);margin-top:.35rem;font-size:.68rem;font-weight:600;display:inline-block}.elmap-past-links{flex-wrap:wrap;gap:.35rem 1rem;margin-top:.25rem;display:flex}.elmap-cta{color:var(--accent);align-items:center;margin-top:.5rem;font-size:.8rem;font-weight:600;text-decoration:none;display:inline-flex}.elmap-cta:hover{text-decoration:underline}.elmap-legend{border:1px dashed var(--border);background:color-mix(in srgb, var(--background) 80%, var(--surface));border-radius:.75rem;margin-top:1rem;padding:.75rem 1rem}.elmap-legend h4{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.65rem;font-weight:700}.elmap-legend-grid{color:var(--foreground);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.35rem .75rem;font-size:.72rem;display:grid}.elmap-legend-item{align-items:center;gap:.4rem;display:flex}.elmap-swatch{border:1px solid var(--border);border-radius:2px;flex-shrink:0;width:.65rem;height:.65rem}.elmap-swatch.spa{background:color-mix(in srgb, #0f766e 45%, var(--surface))}.elmap-swatch.nda{background:color-mix(in srgb, #b45309 45%, var(--surface))}.elmap-swatch.tvk{background:color-mix(in srgb, #7c3aed 45%, var(--surface))}.elmap-swatch.ntk{background:color-mix(in srgb, #64748b 45%, var(--surface))}.elmap-attribution{color:var(--muted);margin-top:.75rem;font-size:.65rem;line-height:1.4}.elmap-error{text-align:center;color:var(--muted);padding:1.5rem;font-size:.85rem}.elmap-error button{margin-top:.75rem}@media (max-width:1023px){.elmap-panel{order:3}}
