/* Election night pages (election.php, Nov 1, 2026). Phone first: Your races is the first block on a phone. Party colors
   are the ones readers recognize, applied the same way to every candidate; color never carries meaning alone (the party
   is written beside every dot). */
/* 2.129.2 (Owner, Nov 4, 2026, 1:31 pm): the site's party colors, the same as every chart and story (--st-d, --st-r). */
.el-main{--el-dem:#1F4E9A;--el-rep:#B3261E;--el-oth:#8A857C}
.el-grp{font-size:.95rem;margin:12px 0 0;color:var(--ink,#1B1B1B)}
.el-ll small{color:var(--muted)}
.el-yours{border:2px solid var(--gold);border-radius:14px;padding:16px;background:#FBF3DE;color:var(--ink,#1B1B1B)}
.el-ask{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.el-ask input{flex:1 1 220px;min-width:0;font:inherit;font-size:1rem;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.el-ask .btn{flex:0 0 auto}
.el-for{margin:0 0 6px}
.el-change{font:inherit;font-size:.9rem;background:none;border:1px solid var(--line);color:#7A4F00;border-radius:8px;padding:2px 10px;cursor:pointer;margin-left:6px}
.el-list{list-style:none;margin:8px 0 12px;padding:0}
.el-list li{padding:8px 0;border-bottom:1px solid var(--line)}
.el-list li:last-child{border-bottom:0}
.el-dot{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:6px;vertical-align:baseline}
.el-dot.el-dem{background:var(--el-dem)}.el-dot.el-rep{background:var(--el-rep)}.el-dot.el-oth{background:var(--el-oth)}
.el-tag{display:inline-block;font-size:.85rem;font-weight:700;color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:2px 8px}
p.el-tag{display:block;width:fit-content}
.el-race,.el-live,.el-note{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:14px 16px;margin:14px 0}
.el-race h3,.el-live h3,.el-note h3{margin:0 0 4px;font-size:1.15rem}
.el-bvp,.el-stage{margin:0;color:#7A4F00;font-size:.95rem}
.el-tests{list-style:none;margin:10px 0;padding:0;font-size:.95rem}
.el-tests li{padding:4px 0 4px 18px;position:relative}
.el-tests li::before{content:"";position:absolute;left:0;top:.75em;width:9px;height:9px;border-radius:2px;background:var(--gold)}
.el-tests li.el-not{color:var(--muted)}
.el-tests li.el-not::before{background:transparent;border:1px solid var(--muted)}
.el-cands{list-style:none;margin:8px 0;padding:0;display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:720px){.el-cands{grid-template-columns:1fr 1fr}}
.el-cands li{border-top:1px solid var(--line);padding-top:8px;min-width:0}
.el-cn{font-weight:800;margin:0 0 4px}
.el-cn small{font-weight:600;color:var(--muted)}
.el-cands dl{margin:0;font-size:.92rem}
.el-cands dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.el-cands dd{margin:0}
.el-rules{font-size:.95rem;border-left:3px solid var(--gold);padding-left:10px}
.el-src{font-size:.82rem;color:var(--muted)}
.el-office{font-size:.92rem;margin:4px 0}
/* 699: Associated Press projection, a plain credited note above the count (no party color, no check mark) */
.el-proj{display:block;font-size:.88rem;margin:6px 0;padding:6px 10px;border-left:3px solid var(--line);background:var(--bg,transparent);color:var(--ink,inherit)}
.el-tbl{width:100%;border-collapse:collapse;font-size:.92rem;margin:8px 0;display:block;overflow-x:auto}
.el-tbl th,.el-tbl td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.el-tbl th[scope=row],.el-tbl thead th:first-child{text-align:left;white-space:normal}
.el-tbl small{color:var(--muted)}
.el-bars{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:820px){.el-bars{grid-template-columns:1fr 1fr}}
.el-bar{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--card)}
.el-bar h3{margin:0 0 4px}
.el-now{font-weight:700}
.el-meter{position:relative;display:flex;height:18px;border-radius:9px;overflow:hidden;background:var(--line);margin-top:8px}
.el-meter span{display:block;height:100%}
.el-meter .el-dem{background:var(--el-dem)}.el-meter .el-rep{background:var(--el-rep)}.el-meter .el-oth{background:var(--el-oth)}
.el-meter i{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.el-big b{font-size:2rem;color:#7A4F00;margin-right:4px}
.el-chips{list-style:none;margin:10px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.el-chips li a{display:block;border:1px solid var(--line);border-radius:10px;padding:7px 12px;background:var(--card);font-weight:700;text-decoration:none}
.el-links{display:flex;flex-wrap:wrap;gap:14px;list-style:none;padding:0}
@media (min-width:720px){.el-cols{columns:2;column-gap:24px}.el-cols li{break-inside:avoid}}
/* 2.129.5 (Owner, Nov 4, 2026, 8:20 pm): after Election Day a race card leads with its count; the candidates' records fold
   under it. "Ahead in the count" is a plain line, never a check mark or a call. */
.el-res{margin:8px 0 4px}
.el-ahead{display:block;font-size:.95rem;margin:4px 0}
.el-nores{font-weight:700;margin:8px 0}
.el-more{margin:8px 0 0;border-top:1px solid var(--line);padding-top:6px}
.el-more>summary{cursor:pointer;font-weight:700;font-size:.92rem;color:#7A4F00}
