.NycElectionDistrictMap_shell__bGE0W{position:relative;border:1px solid var(--border-soft);border-radius:var(--r-lg);background:var(--bg-elev);overflow:hidden}.NycElectionDistrictMap_head__fqREs{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1rem .8rem;border-bottom:1px solid var(--border-soft)}.NycElectionDistrictMap_title__B4051{margin:0;color:var(--ink);font-size:1.05rem;font-weight:550}.NycElectionDistrictMap_meta__n2Dp3{margin:.24rem 0 0;color:var(--ink-dim);font-size:.82rem}.NycElectionDistrictMap_controls__8uI7P{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem 1rem;border-bottom:1px solid var(--border-soft)}.NycElectionDistrictMap_candidateControl___Aa1l,.NycElectionDistrictMap_control__lkYOR,.NycElectionDistrictMap_zoomButton__amiCS{min-height:44px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-elev-2);color:var(--ink-dim);font:inherit;font-size:.78rem;cursor:pointer}.NycElectionDistrictMap_candidateControl___Aa1l,.NycElectionDistrictMap_control__lkYOR{padding:.5rem .7rem}.NycElectionDistrictMap_candidateControl___Aa1l:hover,.NycElectionDistrictMap_control__lkYOR:hover,.NycElectionDistrictMap_zoomButton__amiCS:hover{border-color:var(--border-strong);color:var(--ink)}.NycElectionDistrictMap_candidateControl___Aa1l:focus-visible,.NycElectionDistrictMap_control__lkYOR:focus-visible,.NycElectionDistrictMap_zoomButton__amiCS:focus-visible{outline:2px solid var(--cyan-dim);outline-offset:2px}.NycElectionDistrictMap_active__aqKhA{border-color:var(--cyan-dim);background:var(--cyan-faint);color:var(--ink);font-weight:550}.NycElectionDistrictMap_candidateControls__GuiO7{display:flex;flex-wrap:wrap;gap:.4rem;width:100%;padding-top:.25rem}.NycElectionDistrictMap_candidateSwatch__dZGko{display:inline-block;width:.68rem;height:.68rem;margin-right:.38rem;border-radius:999px;vertical-align:-.04rem}.NycElectionDistrictMap_mapWrap__LLM3D{position:relative;min-height:520px;overflow:hidden;background:var(--bg-deep);touch-action:pan-y;cursor:grab}.NycElectionDistrictMap_mapWrap__LLM3D[data-zoomed=true]{cursor:grab}.NycElectionDistrictMap_mapWrap__LLM3D[data-dragging=true]{cursor:grabbing}.NycElectionDistrictMap_mapHost__QZgHI{position:absolute;inset:0}.NycElectionDistrictMap_svg__Mxt2r{display:block;width:100%;height:100%;shape-rendering:geometricPrecision}.NycElectionDistrictMap_ed__24cio{stroke:none;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:opacity .12s ease,stroke .12s ease}.NycElectionDistrictMap_mapWrap__LLM3D[data-zoomed=true] .NycElectionDistrictMap_ed__24cio{stroke:color-mix(in srgb,var(--bg-deep) 72%,transparent);stroke-width:.3px}.NycElectionDistrictMap_ed__24cio:focus-visible,.NycElectionDistrictMap_ed__24cio:hover,.NycElectionDistrictMap_selectedEd__GTlKr{opacity:.86;stroke:color-mix(in srgb,var(--ink) 72%,transparent);stroke-width:1px}.NycElectionDistrictMap_ed__24cio:focus-visible{outline:none;stroke:var(--ink);stroke-width:1.15px}.NycElectionDistrictMap_boroughBoundary__USxRW{fill:none;stroke:color-mix(in srgb,var(--ink-dim) 48%,transparent);stroke-width:.55px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.NycElectionDistrictMap_contestBoundary__2vMx4{fill:none;stroke:color-mix(in srgb,var(--ink) 68%,transparent);stroke-width:1.1px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.NycElectionDistrictMap_zoomControls___eAlk{position:absolute;right:.75rem;top:.75rem;display:grid;grid-template-columns:repeat(3,44px);gap:.28rem;z-index:4}.NycElectionDistrictMap_zoomButton__amiCS{width:44px;padding:0;background:var(--bg-elev)}.NycElectionDistrictMap_tooltip__fNg00{position:absolute;z-index:6;width:min(320px,calc(100% - 1.5rem));padding:.75rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);pointer-events:none}.NycElectionDistrictMap_tooltipTitle__TIEj_{margin:0 0 .18rem;color:var(--ink);font-size:.9rem;font-weight:550}.NycElectionDistrictMap_tooltipMeta__x8NRV{margin:0 0 .6rem;color:var(--ink-dim);font-size:.74rem}.NycElectionDistrictMap_tooltipRows__XmVRT{display:grid;gap:.28rem}.NycElectionDistrictMap_tooltipRow__gS4Qw{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.55rem;align-items:baseline;font-size:.76rem}.NycElectionDistrictMap_tooltipName__r1Esl{min-width:0;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.NycElectionDistrictMap_summaryValue__3sU1g,.NycElectionDistrictMap_tooltipShare__3_WLU,.NycElectionDistrictMap_tooltipVotes__vAOAh{font-variant-numeric:tabular-nums}.NycElectionDistrictMap_tooltipVotes__vAOAh{color:var(--ink)}.NycElectionDistrictMap_tooltipShare__3_WLU{color:var(--ink-dim);min-width:4.4ch;text-align:right}.NycElectionDistrictMap_tooltipSummary__0mMql{display:flex;justify-content:space-between;gap:.75rem;margin-top:.58rem;padding-top:.55rem;border-top:1px solid var(--border-soft);color:var(--ink-dim);font-size:.72rem}.NycElectionDistrictMap_legend__Zhqml{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center;padding:.72rem 1rem;border-top:1px solid var(--border-soft)}.NycElectionDistrictMap_legendItem__gD1an{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-dim);font-size:.76rem}.NycElectionDistrictMap_legendSwatch__wUlcr{width:.75rem;height:.75rem;border-radius:.2rem}.NycElectionDistrictMap_legendNote__A_Y7M{color:var(--ink-faint);font-size:.72rem}.NycElectionDistrictMap_stateMessage__h0y3r{display:grid;min-height:520px;place-items:center;padding:2rem;color:var(--ink-dim);text-align:center}.NycElectionDistrictMap_tableDetails__RzHln{border-top:1px solid var(--border-soft)}.NycElectionDistrictMap_tableDetails__RzHln summary{padding:.85rem 1rem;color:var(--ink-dim);cursor:pointer}.NycElectionDistrictMap_tableScroll__ZPZnM{max-height:420px;overflow:auto;border-top:1px solid var(--border-soft)}.NycElectionDistrictMap_table__LYyA9{width:100%;border-collapse:collapse;font-size:.75rem}.NycElectionDistrictMap_table__LYyA9 td,.NycElectionDistrictMap_table__LYyA9 th{padding:.48rem .65rem;border-bottom:1px solid var(--border-soft);text-align:left}.NycElectionDistrictMap_table__LYyA9 th{position:sticky;top:0;z-index:1;background:var(--bg-elev-2);color:var(--ink-dim);font-weight:500}.NycElectionDistrictMap_table__LYyA9 td{color:var(--ink)}.NycElectionDistrictMap_numeric__uw2fS{text-align:right!important;font-variant-numeric:tabular-nums}@media (max-width:700px){.NycElectionDistrictMap_head__fqREs{display:block}.NycElectionDistrictMap_mapWrap__LLM3D,.NycElectionDistrictMap_stateMessage__h0y3r{min-height:430px}.NycElectionDistrictMap_controls__8uI7P{overflow-x:auto;flex-wrap:nowrap}.NycElectionDistrictMap_candidateControls__GuiO7{flex-wrap:nowrap;min-width:-moz-max-content;min-width:max-content}.NycElectionDistrictMap_tooltip__fNg00{left:.75rem!important;right:.75rem;top:auto!important;bottom:.75rem;width:auto}}@media (prefers-reduced-motion:reduce){.NycElectionDistrictMap_ed__24cio{transition:none}}.NycElectionDistrictMap_staticBase__x2bm8{display:flex;flex-direction:column;gap:10px;align-items:center;padding:12px 0}.NycElectionDistrictMap_staticBase__x2bm8 .NycElectionDistrictMap_svg__Mxt2r{max-height:420px}.NycElectionDistrictMap_staticOutline__9iSsv{fill:var(--surface-inset);stroke:var(--border-strong);stroke-width:1.2px;vector-effect:non-scaling-stroke}.ContestCandidateBoard_board__DSfNF{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-elev);padding:16px 18px 14px}.ContestCandidateBoard_caption__lYzdN{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--ink-faint)}.ContestCandidateBoard_list__rc2L3{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.ContestCandidateBoard_extra__zeVxk{display:none}.ContestCandidateBoard_showAll__AeMtx .ContestCandidateBoard_extra__zeVxk{display:block}.ContestCandidateBoard_row___pj4E{display:grid;grid-template-columns:12px minmax(0,1fr) minmax(60px,15%) 84px 54px 16px;align-items:center;gap:12px;width:100%;padding:9px 10px;border:1px solid transparent;border-radius:var(--r-sm);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .18s var(--ease-quick),border-color .18s var(--ease-quick)}.ContestCandidateBoard_row___pj4E:hover{background:var(--surface-hover)}.ContestCandidateBoard_row___pj4E:focus-visible{outline:none;box-shadow:0 0 0 3px var(--cyan-faint);border-color:var(--cyan-dim)}.ContestCandidateBoard_row___pj4E[aria-pressed=true]{background:var(--bg-elev-2);border-color:var(--border-strong)}.ContestCandidateBoard_swatch__K9OR1{width:11px;height:11px;border-radius:2px}.ContestCandidateBoard_identity__cWbN7{min-width:0;display:flex;flex-direction:column;gap:1px}.ContestCandidateBoard_name__J6l99{font-size:14.5px;font-weight:400;line-height:1.25;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ContestCandidateBoard_lines__ph1iv{font-size:11.5px;line-height:1.3;color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ContestCandidateBoard_bar__6BLno{display:block;height:5px;border-radius:100px;background:var(--surface-inset);overflow:hidden}.ContestCandidateBoard_barFill__8YEKf{display:block;height:100%;border-radius:100px}.ContestCandidateBoard_share__eBJyP,.ContestCandidateBoard_votes__7VOPx{font-variant-numeric:tabular-nums;text-align:right;font-size:13px;color:var(--ink-dim)}.ContestCandidateBoard_share__eBJyP{font-weight:500}.ContestCandidateBoard_win__ye3ab{font-size:12px;text-align:center;color:var(--status-success)}.ContestCandidateBoard_more__YenYm{display:block;width:100%;margin-top:8px;padding:9px 10px;border:0;border-top:1px solid var(--border-soft);background:none;color:var(--ink-dim);font:inherit;font-size:12.5px;text-align:left;cursor:pointer;transition:color .18s var(--ease-quick)}.ContestCandidateBoard_more__YenYm:hover{color:var(--ink)}.ContestCandidateBoard_more__YenYm:focus-visible{outline:none;box-shadow:0 0 0 3px var(--cyan-faint);border-radius:var(--r-sm)}@media (max-width:620px){.ContestCandidateBoard_row___pj4E{grid-template-columns:11px minmax(0,1fr) 76px 50px 14px;gap:10px}.ContestCandidateBoard_bar__6BLno{display:none}}@media (prefers-reduced-motion:reduce){.ContestCandidateBoard_more__YenYm,.ContestCandidateBoard_row___pj4E{transition:none}}