.RaceCard_raceCard__MGq5i{padding:24px;height:100%;display:flex;flex-direction:column}.RaceCard_raceCardBorough__CwFq9{margin:0 0 4px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.RaceCard_raceCardTitle__z1q83{margin:0 0 6px}.RaceCard_raceCardSubtitle__x2bC8{margin:0;color:#666}.RaceCard_raceCardCandidates__dA0kA{display:flex;flex-direction:column;gap:16px;flex:1 1;margin-top:16px}.RaceCard_raceCardCandidate__IOvIx{display:flex;flex-direction:column;gap:8px}.RaceCard_candidateLink__QPvkc{color:inherit;text-decoration:none}.RaceCard_candidateLink__QPvkc:hover{text-decoration:underline}.RaceCard_candidateBarContainer__AWyGT{position:relative;width:100%;cursor:pointer}.RaceCard_candidateBarBackground__XtSph,.RaceCard_candidateBarWrapper__lIfkA{position:relative;width:100%}.RaceCard_candidateBar__YfLFs{position:absolute;top:0;left:0;height:100%;display:flex;align-items:center;transition:width .3s ease}.RaceCard_candidatePercentage__XzBIr{position:absolute;right:6px;color:white;white-space:nowrap;pointer-events:none}.RaceCard_candidatePercentageOutside__IyPZl{left:calc(100% + 6px);right:auto}.RaceCard_candidateHistoricalBarContainer__inBXG{position:relative;width:100%;height:4px;margin-top:6px;cursor:pointer}.RaceCard_candidateHistoricalBar__SFHSV{position:absolute;top:0;left:0;width:100%;height:4px}.RaceCard_historicalBarFill__38_am{position:absolute;top:0;left:0;height:4px;transition:width .3s ease}.RaceCard_candidateTooltip__IdCbF{display:flex;flex-direction:column;gap:2px;padding:8px 12px 12px}.ElectionSummary_summaryCard__N_dky{padding:24px;height:100%}.ElectionSummary_summaryTitle___pTw2{margin:0 0 8px}.ElectionSummary_arrondissementsGrid__3U9pv{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:48px;column-gap:48px;grid-row-gap:12px;row-gap:12px;overflow:visible}.ElectionSummary_arrondissementsColumn__RsF9X{display:flex;flex-direction:column;min-width:0;overflow:visible}.ElectionSummary_columnHeader__dlROR{display:flex;justify-content:flex-end;margin-bottom:16px;gap:12px}.ElectionSummary_yearLabel__BE1wj{width:60px;text-align:center}.ElectionSummary_arrondissementsList__CMHys{display:flex;flex-direction:column;gap:10px;min-width:0;overflow:visible}.ElectionSummary_boroughRow__ERQ46{display:flex!important;gap:12px;min-width:0;overflow:visible}.ElectionSummary_boroughName__hu_UF{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ElectionSummary_partyPill__tb8Io{display:flex!important;align-items:center!important;justify-content:center!important;min-width:60px!important;gap:2px}@media (max-width:800px){.ElectionSummary_arrondissementsGrid__3U9pv{grid-template-columns:1fr;column-gap:32px}.ElectionSummary_arrondissementsColumn__RsF9X:nth-child(2) .ElectionSummary_columnHeader__dlROR{display:none}}.Election_darkModeToggle__Qfce2{position:absolute;top:48px;right:48px;width:48px;height:48px;border:none;border-radius:50%;background:rgba(150,150,150,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1000;transition:background .2s ease}.Election_darkModeToggle__Qfce2:hover{background:rgba(255,255,255,.2)}.Election_darkModeToggle__Qfce2 img{filter:invert(0);transition:filter .2s ease}.force-dark-mode .Election_darkModeToggle__Qfce2 img{filter:invert(1)}.Election_summaryMayorGrid__nOLvV{display:grid;grid-template-columns:1fr 2.8fr;grid-gap:2em;gap:2em;margin-top:48px;margin-bottom:48px}.Election_electionRaces__LBhgs{margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:2em;gap:2em}@media (max-width:800px){.Election_electionRaces__LBhgs,.Election_summaryMayorGrid__nOLvV{grid-template-columns:1fr}}