@font-face{font-family:abril-titling;src:url('/fonts/abril-titling/AbrilTitlingEb.ttf') format('truetype');font-weight:700;font-display:swap}*{box-sizing:border-box}html,body{margin:0;padding:0;background:#fff}body{font-family:Inter,Arial,sans-serif;color:#303030}.er-root{width:100%;padding:0 1px 8px}.er-root h2{font-family:abril-titling,Georgia,serif;font-size:25px;font-weight:700;color:#111;margin:0 0 14px;line-height:1.25}.er-root h2 span{font-family:Inter,Arial,sans-serif;font-size:22px}.er-table{border:1px solid #dedede;box-shadow:0 2px 3px #00000016}.er-status{background:#f1f1f1;min-height:31px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 18px;font-size:12px;color:#777}.er-status strong{color:#222;font-size:11px;white-space:nowrap}.er-head,.er-row{display:grid;grid-template-columns:35% 21% 17% 27%;align-items:center}.er-head{height:34px;border-bottom:1px solid #dedede;color:#777;font-size:12px;padding:0 0}.er-head span{padding-left:14px}.er-head span:nth-child(3){text-align:right;padding-left:0;padding-right:9px}.er-row{min-height:51px;border-bottom:1px solid #dedede;position:relative;font-size:15px}.er-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--er-color)}.er-r{--er-color:#c83b40}.er-d{--er-color:#3271c5}.er-l{--er-color:#b78b49}.er-i{--er-color:#8b65aa}.er-o{--er-color:#9299a3}.er-name{display:flex;align-items:center;gap:10px;padding:5px 8px 5px 19px;min-width:0;min-height:50px}.er-photo{width:39px;height:39px;flex:0 0 39px;border-radius:50%;overflow:hidden;background:#e8e8e8;position:relative}.er-photo:before{content:"";position:absolute;top:8px;left:13px;width:13px;height:13px;background:#b4b4b4;border-radius:50%}.er-photo:after{content:"";position:absolute;bottom:-5px;left:6px;width:27px;height:24px;background:#b4b4b4;border-radius:50%}.er-photo img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}.er-candidate{min-width:0;overflow-wrap:anywhere}.er-party{padding:5px 7px;color:#777}.er-votes{text-align:right;padding-right:9px;font-variant-numeric:tabular-nums}.er-percent{display:flex;align-items:center;gap:8px;padding:5px 19px 5px 6px}.er-pct-text{font-weight:700;min-width:47px;text-align:right;font-variant-numeric:tabular-nums}.er-track{height:5px;flex:1;min-width:15px}.er-bar{display:block;height:5px;background:var(--er-color)}.er-winner .er-name{background:var(--er-color);color:#fff}.er-winner:before{display:none}.er-winner .er-check{font-weight:800}.er-total{display:grid;grid-template-columns:56% 17% 27%;min-height:50px;align-items:center;color:#777;font-size:15px}.er-total span:first-child{padding-left:calc(19px + 39px + 10px)}.er-total span:last-child{text-align:right;padding-right:9px}.er-note{font-size:11px;color:#777;margin:9px 0}.er-empty{padding:20px;color:#777}@media(max-width:560px){.er-root h2{font-size:22px}.er-head,.er-row{grid-template-columns:minmax(0,47%) minmax(0,17%) minmax(0,16%) minmax(0,20%)}.er-head span{padding-left:6px}.er-head span:first-child{padding-left:13px}.er-name{gap:6px;padding-left:11px;padding-right:3px}.er-photo{width:30px;height:30px;flex-basis:30px}.er-row{font-size:12px}.er-party{font-size:11px;padding:3px}.er-votes{padding-right:3px}.er-percent{gap:3px;padding:3px 5px 3px 1px;flex-direction:column;align-items:stretch}.er-pct-text{min-width:0;text-align:left}.er-track{width:100%;flex:none}.er-total{grid-template-columns:64% 16% 20%;font-size:13px}.er-total span:first-child{padding-left:14px}.er-status{padding:7px 9px;font-size:10px}.er-status strong{font-size:9px}}

/* Election-night refinements, scoped exclusively to the results view */
.er-photo:before,.er-photo:after{content:none!important;display:none!important}
.er-photo{background:#e5e5e5}
.er-incumbent-note{font-size:11px;color:#777;margin:4px 0 8px}
@media(max-width:560px){.er-percent .er-track{display:none!important}.er-percent{flex-direction:row;align-items:center}.er-pct-text{text-align:left}}

/* NYT-style incumbent legend: full-width row inside table, aligned to left. */
.er-incumbent-key{border-top:1px solid #dedede;padding:8px 19px;color:#777;font:12px/1.3 Inter,Arial,sans-serif;background:#fff}
@media(max-width:560px){.er-incumbent-key{padding-left:13px}}

/* Nov. 2: only the election-results widget is affected. */
.er-photo-placeholder{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0}
.er-photo img{position:absolute;inset:0;z-index:2;background:#e5e5e5}
.er-party-short{display:none}
@media(max-width:560px){
 .er-head,.er-row{grid-template-columns:minmax(0,42%) minmax(0,14%) minmax(0,23%) minmax(0,21%)}
 .er-row{font-size:13.5px;min-height:57px}
 .er-name{min-height:56px;gap:6px;padding-left:10px;padding-right:2px}
 .er-photo{width:33px;height:33px;flex-basis:33px}
 .er-candidate{font-size:13.5px;line-height:1.25}
 .er-party{font-size:12px;padding:3px 2px;color:#666}
 .er-party-full{display:none}
 .er-party-short{display:inline}
 .er-votes{font-size:13px;padding-right:5px}
 .er-percent{padding:4px 9px 4px 2px;justify-content:flex-end}
 .er-pct-text{font-size:14px;min-width:0;text-align:right}
 .er-head{font-size:11px}
 .er-head span:nth-child(4){text-align:right;padding-right:9px}
 .er-total{grid-template-columns:56% 23% 21%}
 .er-total span:last-child{padding-right:5px}
}

/* Mobile-only breathing room between the four results columns. */
@media(max-width:560px){
 .er-head,.er-row{grid-template-columns:minmax(0,39fr) minmax(0,16fr) minmax(0,25fr) minmax(0,20fr);column-gap:6px;padding-right:8px}
 .er-name{padding-right:3px;min-width:0}
 .er-party{min-width:0;padding-left:3px;padding-right:2px;white-space:nowrap}
 .er-votes{min-width:0;padding-right:2px;white-space:nowrap;font-size:12.5px}
 .er-percent{min-width:0;padding-left:2px;padding-right:1px;white-space:nowrap}
 .er-pct-text{font-size:13px}
 .er-head span{padding-left:2px}
 .er-head span:first-child{padding-left:12px}
 .er-head span:nth-child(3){padding-right:2px}
 .er-head span:nth-child(4){padding-right:1px}
}

/* Additional results views: levy cards and grouped City Council wards */
.er-special{padding-bottom:3px}
.er-special .er-table{margin-bottom:18px}
.er-levy-intro{padding:18px 20px 12px}
.er-levy-intro>span{color:#777;font-size:13px}
.er-levy-intro h3{font:700 18px/1.35 Inter,Arial,sans-serif;margin:5px 0 9px;color:#333}
.er-levy-intro p{font:14px/1.5 Georgia,serif;color:#666;margin:0}
.er-levy-choices{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #dedede;border-bottom:1px solid #dedede}
.er-levy-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:43px;padding:10px 18px;font-size:13px;color:#444}
.er-levy-choice+ .er-levy-choice{border-left:1px solid #dedede}
.er-levy-choice strong{font-weight:600}
.er-levy-for{background:#f1f8f9;color:#287d8c}
.er-levy-for.is-winner{background:#369aaa;color:white}
.er-levy-for.is-winner strong{color:white}
.er-levy-against{background:#fff}
.er-levy-votes{display:flex;justify-content:space-between;gap:12px;padding:9px 18px;color:#777;font-size:12px}
.er-levy-footer{border-top:1px solid #eee;padding:8px 18px;color:#777;font-size:11px}
.er-ward h3{margin:0;background:#f1f1f1;border-top:1px solid #dedede;border-bottom:1px solid #dedede;padding:12px 18px;font:700 15px/1.3 Inter,Arial,sans-serif}
.er-ward:first-of-type h3{border-top:0}
.er-ward-more summary{cursor:pointer;list-style:none;text-align:center;padding:13px;background:#fafafa;color:#666;font-size:13px}
.er-ward-more summary::-webkit-details-marker{display:none}
.er-ward-more summary:hover{background:#f0f0f0}
.er-ward-more[open] summary{border-bottom:1px solid #dedede}
.er-ward-table .er-row{min-height:51px}
.er-ward-table .er-incumbent-key{margin-top:0}
@media(max-width:560px){
.er-levy-intro{padding:14px 12px 10px}
.er-levy-choice{padding:10px 12px;min-width:0;font-size:12px}
.er-levy-votes{padding:9px 12px;flex-wrap:wrap;font-size:11px}
.er-levy-footer{padding:8px 12px}
.er-ward h3{padding:10px 12px}
}

/* Ballot measures: NYT-inspired proportional two-choice bar, isolated to levy cards. */
.er-special .er-levy{margin-bottom:18px;background:#fff}
.er-special .er-levy-intro{padding:18px 20px 12px}
.er-special .er-levy-intro>span{font:13px/1.4 Inter,Arial,sans-serif;color:#777}
.er-special .er-levy-intro h3{font:700 15px/1.35 Inter,Arial,sans-serif;margin:2px 0 10px;color:#333}
.er-special .er-levy-intro p{font:16px/1.3 Georgia,serif;color:#777;margin:0;max-width:80ch}
.er-special .er-levy-choices{display:grid;grid-template-columns:minmax(0,var(--er-for-share)) minmax(0,1fr);grid-template-columns:var(--er-for-share) minmax(0,1fr);min-height:34px;border-top:1px solid #dedede;border-bottom:1px solid #dedede}
.er-special .er-levy-choice{min-width:0;min-height:34px;padding:7px 18px;display:flex;align-items:center;justify-content:space-between;gap:6px;font:12px/1.4 Inter,Arial,sans-serif;white-space:nowrap}
.er-special .er-levy-choice span{overflow:hidden;text-overflow:ellipsis}
.er-special .er-levy-choice strong{font-weight:400}
.er-special .er-levy-for{background:#3c9aaa;color:#fff}
.er-special .er-levy-for.is-winner{background:#3c9aaa;color:#fff}
.er-special .er-levy-against{background:#fff;color:#444;border-left:1px solid #dedede}
.er-special .er-levy-check{font-weight:800;flex:none}
.er-special .er-levy-footer{border:0;padding:7px 20px 18px;color:#777;font:12px/1.4 Inter,Arial,sans-serif}
@media(max-width:560px){
 .er-special .er-levy-intro{padding:15px 14px 12px}
 .er-special .er-levy-intro p{font-size:14px;line-height:1.4}
 .er-special .er-levy-choice{padding:7px 9px;font-size:11px}
 .er-special .er-levy-footer{padding:8px 14px 15px;font-size:11px}
}

/* Exact vote-share geometry: the For segment occupies precisely its percentage
   of the full track; Against receives the remaining percentage. */
.er-special .er-levy-choices {
  display: grid;
  grid-template-columns: minmax(0, var(--er-for-share)) minmax(0, calc(100% - var(--er-for-share)));
  width: 100%;
  overflow: hidden;
}
.er-special .er-levy-choice { min-width: 0; box-sizing: border-box; }

/* Declared ballot measure outcomes: For in teal, Against in orange. */
.er-special .er-levy-for:not(.is-winner){background:#fff;color:#444}
.er-special .er-levy-for.is-winner{background:#3c9aaa;color:#fff}
.er-special .er-levy-against.is-winner{background:#e66c43;color:#fff;border-left-color:#e66c43}
.er-special .er-levy-against:not(.is-winner){background:#fff;color:#444}
/* Keep segment widths determined by reported vote percentages. */
.er-special .er-levy-choices{grid-template-columns:minmax(0,var(--er-for-share)) minmax(0,calc(100% - var(--er-for-share)))}

/* Ward heading and the existing candidate-guide ward map, results view only. */
.er-special .er-ward-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;background:#f1f1f1;border-top:1px solid #dedede;border-bottom:1px solid #dedede;padding:8px 14px}
.er-special .er-ward-heading h3{margin:0;padding:0;border:0;background:transparent;font:700 15px/1.35 Inter,Arial,sans-serif}
.er-special .er-ward-map-button{border:0;background:transparent;color:#3e5a9d;font:600 12px/1.4 Inter,Arial,sans-serif;text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:4px 0}
.er-special .er-ward-map-button:hover{color:#263f7b}
.er-ward-map-dialog{position:fixed;left:50%;transform:translateX(-50%);margin:0;border:0;border-radius:12px;background:white;padding:16px;width:min(94vw,760px);max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 15px 55px #0005;color:#303030}
.er-ward-map-dialog::backdrop{background:#0009}
.er-ward-map-dialog .er-map-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.er-ward-map-dialog .er-map-top strong{font:700 18px Inter,Arial,sans-serif}
.er-ward-map-dialog .er-map-top button{width:34px;height:34px;border:0;border-radius:50%;background:#eee;font-size:24px;cursor:pointer}
.er-ward-map-dialog img{display:block;width:100%;height:auto;max-height:60dvh;object-fit:contain}
.er-ward-map-dialog p{font:12px/1.4 Inter,Arial,sans-serif;color:#777}
@media(max-width:560px){.er-special .er-ward-heading{padding:8px 10px}.er-special .er-ward-map-button{font-size:11px}.er-ward-map-dialog{width:calc(100% - 14px);padding:10px}}


/* Results ward map: identical understated link placement to the municipal candidate guide. */
.er-special .er-ward-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;background:#f1f1f1}
.er-special .er-ward-heading h3{flex:0 1 auto}
.er-special .er-ward-map-button{appearance:none;display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:4px 0!important;margin:0!important;color:#3e5a9d!important;font:400 13px/1.4 Inter,Arial,sans-serif!important;text-decoration:underline!important;text-underline-offset:3px!important;cursor:pointer}
.er-special .er-ward-map-button:hover{color:#293f74!important}
.er-special .er-ward-map-button span{font-size:14px;text-decoration:none}
.er-ward-map-dialog{border:0;border-radius:14px;padding:0;width:min(900px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.er-ward-map-dialog .er-map-top{display:flex;align-items:center;justify-content:space-between;margin:0;padding:10px 16px;border-bottom:1px solid #e3e9f0}
.er-ward-map-dialog p{margin:10px 16px;color:#555;font:13px/1.5 Inter,Arial,sans-serif}
.er-ward-map-dialog iframe{display:block;width:100%;height:min(65dvh,600px);border:0}
.er-ward-map-dialog::backdrop{background:rgba(20,35,60,.75)}
@media(max-width:560px){.er-special .er-ward-map-button{font-size:12px!important}}

.er-special .er-ward-map-button .er-external-icon{width:15px;height:15px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}


/* Precise candidate-guide map-link proportions: prevent the SVG from expanding
   to fill the flex row, and keep the label and icon together on one line. */
.er-special .er-ward-heading{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
.er-special .er-ward-heading h3{flex:0 0 auto!important;min-width:0}
.er-special .er-ward-map-button{
  display:inline-flex!important;flex:0 0 auto!important;align-items:center!important;
  justify-content:flex-end!important;gap:4px!important;width:auto!important;
  min-width:0!important;max-width:none!important;white-space:nowrap!important;
  text-align:right!important;line-height:1.4!important;
}
.er-special .er-ward-map-button .er-map-link-label{
  display:inline!important;white-space:nowrap!important;flex:0 0 auto!important;
  font:inherit!important;text-decoration:underline!important;text-underline-offset:3px!important;
}
.er-special .er-ward-map-button svg.er-external-icon{
  display:inline-block!important;position:static!important;
  width:12px!important;height:12px!important;min-width:12px!important;max-width:12px!important;
  min-height:12px!important;max-height:12px!important;flex:0 0 12px!important;
  margin:0!important;padding:0!important;vertical-align:middle!important;
  fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;
}
@media(max-width:380px){
  .er-special .er-ward-heading{gap:5px!important;padding-left:8px!important;padding-right:8px!important}
  .er-special .er-ward-map-button{font-size:11px!important}
  .er-special .er-ward-heading h3{font-size:13px!important}
}


/* Ward results only: mobile-first column balance. Candidate names receive the
   largest share; party sits closer to votes, with a real gutter between cells. */
@media (max-width:560px){
  .er-special:not(.er-levy) .er-ward .er-head,
  .er-special:not(.er-levy) .er-ward .er-row{
    grid-template-columns:minmax(0, 1fr) minmax(0, 53px) minmax(0, 48px) minmax(0, 43px)!important;
    column-gap:8px!important;
    padding-right:10px!important;
  }
  .er-special .er-ward .er-name{min-width:0!important;padding-left:12px!important;padding-right:0!important;gap:7px!important}
  .er-special .er-ward .er-candidate{min-width:0!important;font-size:13px!important;line-height:1.35!important;overflow-wrap:break-word!important;word-break:normal!important}
  .er-special .er-ward .er-photo{width:29px!important;height:29px!important;flex:0 0 29px!important}
  .er-special .er-ward .er-party{min-width:0!important;padding:0!important;font-size:11px!important;white-space:nowrap!important;text-align:left!important}
  .er-special .er-ward .er-votes{min-width:0!important;padding:0!important;font-size:12px!important;text-align:right!important;white-space:nowrap!important}
  .er-special .er-ward .er-percent{min-width:0!important;padding:0!important;justify-content:flex-end!important}
  .er-special .er-ward .er-pct-text{font-size:12px!important;min-width:0!important;text-align:right!important;white-space:nowrap!important}
  .er-special .er-ward .er-head span{min-width:0!important;padding:0!important;font-size:11px!important}
  .er-special .er-ward .er-head span:first-child{padding-left:12px!important}
  .er-special .er-ward .er-head span:nth-child(3),
  .er-special .er-ward .er-head span:nth-child(4){text-align:right!important;padding:0!important}
}
@media(max-width:360px){
  .er-special:not(.er-levy) .er-ward .er-head,
  .er-special:not(.er-levy) .er-ward .er-row{
    grid-template-columns:minmax(0,1fr) 44px 43px 38px!important;
    column-gap:6px!important;padding-right:7px!important;
  }
  .er-special .er-ward .er-photo{width:25px!important;height:25px!important;flex-basis:25px!important}
  .er-special .er-ward .er-name{gap:5px!important}
  .er-special .er-ward .er-party{font-size:10px!important}
}

/* Wider candidate names on mobile; compact party and numerical columns.
   Overrides earlier mobile rules for the combined ward tables only. */
@media (max-width:560px){
  .er-special:not(.er-levy) .er-ward .er-head,
  .er-special:not(.er-levy) .er-ward .er-row{
    grid-template-columns:minmax(0,1fr) 38px 44px 40px!important;
    column-gap:7px!important;
    padding-right:9px!important;
  }
  .er-special .er-ward .er-party{font-size:11px!important;letter-spacing:-.15px!important;white-space:nowrap!important}
  .er-special .er-ward .er-name{padding-right:0!important}
  .er-special .er-ward .er-votes,.er-special .er-ward .er-percent{min-width:0!important}
}
@media(max-width:360px){
  .er-special:not(.er-levy) .er-ward .er-head,
  .er-special:not(.er-levy) .er-ward .er-row{
    grid-template-columns:minmax(0,1fr) 36px 40px 36px!important;
    column-gap:5px!important;
    padding-right:7px!important;
  }
  .er-special .er-ward .er-party{font-size:10px!important}
}

/* Consistent election-result presentation across ALL individual and grouped races. */
.er-candidate .er-incumbent-mark{display:inline-block;font-size:1.34em;font-weight:700;line-height:.8;vertical-align:-.12em;margin-left:1px}
.er-ward-more > summary{font-weight:750!important;color:#333!important}
@media(max-width:560px){
 .er-root:not(.er-levy) .er-head,.er-root:not(.er-levy) .er-row,.er-special:not(.er-levy) .er-ward .er-head,.er-special:not(.er-levy) .er-ward .er-row{grid-template-columns:minmax(0,1fr) 39px 48px 45px!important;column-gap:7px!important;padding-right:9px!important}
 .er-root:not(.er-levy) .er-name,.er-special .er-ward .er-name{min-width:0!important;gap:7px!important;padding-left:11px!important;padding-right:0!important}
 .er-root:not(.er-levy) .er-photo,.er-special .er-ward .er-photo{width:37px!important;height:37px!important;flex:0 0 37px!important}
 .er-root:not(.er-levy) .er-candidate,.er-special .er-ward .er-candidate{font-size:14px!important;line-height:1.35!important;overflow-wrap:break-word!important;word-break:normal!important}
 .er-root:not(.er-levy) .er-party,.er-special .er-ward .er-party{min-width:0!important;padding:0!important;font-size:11.5px!important;white-space:nowrap!important;text-align:left!important}
 .er-root:not(.er-levy) .er-votes,.er-special .er-ward .er-votes{min-width:0!important;padding:0!important;font-size:13.5px!important;text-align:right!important;white-space:nowrap!important}
 .er-root:not(.er-levy) .er-percent,.er-special .er-ward .er-percent{min-width:0!important;padding:0!important;justify-content:flex-end!important}
 .er-root:not(.er-levy) .er-pct-text,.er-special .er-ward .er-pct-text{min-width:0!important;font-size:13.5px!important;text-align:right!important;white-space:nowrap!important}
 .er-root:not(.er-levy) .er-head span,.er-special .er-ward .er-head span{min-width:0!important;padding:0!important;font-size:11.5px!important}
 .er-root:not(.er-levy) .er-head span:first-child,.er-special .er-ward .er-head span:first-child{padding-left:11px!important}
 .er-root:not(.er-levy) .er-head span:nth-child(3),.er-root:not(.er-levy) .er-head span:nth-child(4),.er-special .er-ward .er-head span:nth-child(3),.er-special .er-ward .er-head span:nth-child(4){text-align:right!important}
}
@media(max-width:360px){
 .er-root:not(.er-levy) .er-head,.er-root:not(.er-levy) .er-row,.er-special:not(.er-levy) .er-ward .er-head,.er-special:not(.er-levy) .er-ward .er-row{grid-template-columns:minmax(0,1fr) 37px 42px 40px!important;column-gap:5px!important;padding-right:6px!important}
 .er-root:not(.er-levy) .er-photo,.er-special .er-ward .er-photo{width:34px!important;height:34px!important;flex-basis:34px!important}
 .er-root:not(.er-levy) .er-candidate,.er-special .er-ward .er-candidate{font-size:13.5px!important}
 .er-root:not(.er-levy) .er-party,.er-special .er-ward .er-party{font-size:10.5px!important}
}

/* Incumbent asterisks: center glyph vertically beside names and in legend. */
.er-candidate .er-incumbent-mark{
  display:inline-block!important;vertical-align:middle!important;
  position:relative;top:.12em!important;
  font-size:1.34em!important;line-height:1!important;
  margin-left:1px!important;
}
.er-incumbent-key .er-legend-star{
  display:inline-block;vertical-align:middle;position:relative;top:.10em;
  font-size:19px;font-weight:700;line-height:1;
  margin-right:2px;
}

/* Winner checkmarks: subtle outlined circle, with more separation from names. */
.er-root .er-candidate .er-check{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:19px!important;
  height:19px!important;
  min-width:19px!important;
  margin-left:9px!important;
  padding:0!important;
  border:1.5px solid currentColor!important;
  border-radius:50%!important;
  background:transparent!important;
  color:inherit!important;
  font-family:Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  vertical-align:middle!important;
  transform:translateY(-1px)!important;
  box-sizing:border-box!important;
}
@media(max-width:560px){
  .er-root .er-candidate .er-check{
    width:18px!important;height:18px!important;min-width:18px!important;
    margin-left:7px!important;font-size:11px!important;
  }
}

/* Final winner treatment: white badge, party-color checkmark. */
.er-root .er-winner .er-candidate .er-check {
  background:#fff!important;
  border:0!important;
  color:var(--er-color)!important;
  font-size:13px!important;
  font-weight:900!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  transform:translateY(-1px)!important;
}
@media(max-width:560px){
  .er-root .er-winner .er-candidate .er-check {
    width:19px!important;
    height:19px!important;
    min-width:19px!important;
    font-size:12px!important;
  }
}

/* Final winner badge: lightly translucent white, with a genuinely thicker SVG check. */
.er-root .er-winner .er-candidate .er-check {
  background:rgba(255,255,255,.86)!important;
}
.er-root .er-winner .er-candidate .er-check svg {
  display:block!important;
  width:14px!important;
  height:14px!important;
  min-width:14px!important;
  flex:none!important;
  overflow:visible!important;
  color:var(--er-color)!important;
}
@media(max-width:560px) {
  .er-root .er-winner .er-candidate .er-check svg {
    width:13px!important;
    height:13px!important;
    min-width:13px!important;
  }
}

/* Candidate profile links: preserve existing colors, typography, sizing and layout. */
.er-root .er-name > a.er-profile-link,
.er-root .er-name > a.er-profile-link:link,
.er-root .er-name > a.er-profile-link:visited,
.er-root .er-name > a.er-profile-link:hover,
.er-root .er-name > a.er-profile-link:active {
 display:flex!important;
 flex:1 1 auto!important;
 align-items:center!important;
 gap:inherit!important;
 min-width:0!important;
 align-self:stretch!important;
 color:inherit!important;
 font:inherit!important;
 text-decoration:none!important;
 background:transparent!important;
 border:0!important;
 box-shadow:none!important;
}
.er-root .er-name > a.er-profile-link .er-candidate {color:inherit!important;text-decoration:none!important}
.er-root .er-name > a.er-profile-link:focus-visible{outline:2px solid currentColor;outline-offset:-2px}


/* Larger candidate portraits in all election-night results tables. */
.er-root .er-row .er-photo{width:56px;height:56px;flex:0 0 56px}
.er-root .er-row{min-height:69px}
.er-root .er-row .er-name{min-height:68px}
.er-root .er-total span:first-child{padding-left:calc(19px + 56px + 10px)}
@media(max-width:560px){
  .er-root .er-row .er-photo,
  .er-root.er-special .er-ward .er-row .er-photo{width:48px!important;height:48px!important;flex:0 0 48px!important}
  .er-root .er-row{min-height:70px}
  .er-root .er-row .er-name{min-height:69px}
}
@media(max-width:360px){
  .er-root .er-row .er-photo,
  .er-root.er-special .er-ward .er-row .er-photo{width:44px!important;height:44px!important;flex:0 0 44px!important}
}
