/* Live election results (elections.php). Warm whites and the site's gold; party blue and red. */
.abe-page{background:#fbf9f4}
.abe-wrap{padding-top:170px;padding-bottom:40px!important}
/* Yiddish: digits come from Heebo (a digits-only subset loaded by elections.php), letters stay albtrs. */
.lang_yi .abe-page .headline{font-family:Heebo,albtrs!important}
.abe{--abe-font:albtrs;--abe-ink:#2f2b22;--abe-muted:#857d6b;--abe-line:#ece5d3;--abe-gold:#debc62;
	--abe-gold-deep:#9a7a1c;--abe-gold-soft:#faf3df;--abe-d:#1d4ed8;--abe-r:#b91c1c;--abe-top:80px;
	--abe-shadow:0 1px 2px rgba(80,64,20,.06),0 8px 24px rgba(80,64,20,.08);
	--abe-ff:var(--abe-font);color:var(--abe-ink);max-width:1200px;margin:0 auto;font-family:var(--abe-ff),'Segoe UI',Arial,sans-serif;font-size:15px}
.abe[data-lang=yi]{--abe-ff:Heebo,var(--abe-font)}
.abe *{box-sizing:border-box}
.abe button,.abe select{font:inherit;cursor:pointer}
.abe h2,.abe h3,.abe h4{margin:0;color:var(--abe-ink);font-weight:700}
.abe h2,.abe h3,.abe h4,.abe h2 *,.abe h3 *,.abe h4 *{font-family:var(--abe-ff),'Segoe UI',Arial,sans-serif!important}
.abe bdi{unicode-bidi:isolate}
.abe svg text{font-family:var(--abe-ff),'Segoe UI',Arial,sans-serif}

/* sticky bar: live status + results/forecast switch */
.abe-bar-wrap{position:sticky;top:var(--abe-top);z-index:50;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;
	width:max-content;max-width:100%;margin:0 auto 22px;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(255,255,255,.88);
	-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 0 1px var(--abe-line);transition:box-shadow .25s}
.abe[dir=rtl] .abe-bar-wrap{padding:6px 14px 6px 6px}
.abe-bar-wrap.is-stuck{box-shadow:0 0 0 1px var(--abe-line),0 10px 30px rgba(80,64,20,.16)}
.abe-status{display:flex;align-items:center;gap:8px;color:var(--abe-muted);font-size:14px;white-space:nowrap}
.abe-live{display:inline-flex;align-items:center;gap:6px;color:#c0262d;font-weight:700}
.abe-live i{width:8px;height:8px;border-radius:50%;background:#e23b3b;animation:abe-pulse 1.6s infinite}
.abe.is-stale .abe-live{color:var(--abe-muted)}
.abe.is-stale .abe-live i{background:#b5ae9c;animation:none}
@keyframes abe-pulse{0%{box-shadow:0 0 0 0 rgba(226,59,59,.55)}70%{box-shadow:0 0 0 8px rgba(226,59,59,0)}100%{box-shadow:0 0 0 0 rgba(226,59,59,0)}}
.abe-seg{position:relative;display:grid;grid-template-columns:1fr 1fr;background:var(--abe-gold-soft);border-radius:999px;padding:3px}
.abe-seg button{position:relative;z-index:1;border:0;background:none;color:var(--abe-gold-deep);padding:7px 24px;border-radius:999px;font-size:15px;font-weight:700;transition:color .25s}
.abe-seg button.on{color:var(--abe-ink)}
.abe-seg-thumb{position:absolute;top:3px;bottom:3px;width:calc(50% - 3px);border-radius:999px;
	background:linear-gradient(180deg,#ecd28c,#debc62);box-shadow:0 2px 8px rgba(154,122,28,.35);transition:transform .3s cubic-bezier(.3,.7,.3,1)}
.abe[dir=ltr] .abe-seg-thumb{left:3px}
.abe[dir=rtl] .abe-seg-thumb{right:3px}
.abe[dir=ltr] .abe-seg[data-on=forecast] .abe-seg-thumb{transform:translateX(100%)}
.abe[dir=rtl] .abe-seg[data-on=forecast] .abe-seg-thumb{transform:translateX(-100%)}
@media (prefers-reduced-motion:reduce){.abe-live i{animation:none}.abe-seg-thumb{transition:none}}

.abe-notice{background:#fff8e6;border:1px solid var(--abe-gold);border-radius:12px;padding:10px 14px;margin:0 0 16px;text-align:center}
.abe-notice button{background:var(--abe-gold);color:var(--abe-ink);border:0;border-radius:6px;padding:4px 12px;margin-inline-start:8px}
.abe-loading{text-align:center;padding:60px 0;color:var(--abe-muted)}

/* cards */
.abe-card,.abe-chamber,.abe-race{background:#fff;border-radius:14px;box-shadow:var(--abe-shadow)}
.abe-card{padding:16px 18px;margin-bottom:22px;position:relative}
.abe-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.abe h2{font-size:22px}
.abe-section{text-align:center;margin:4px 0 14px!important;font-size:21px!important}

/* chambers */
.abe-chambers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}
.abe-chamber{padding:16px 18px 12px;text-align:center}
.abe-chamber h3{font-size:15px;letter-spacing:.12em;color:var(--abe-muted);margin-bottom:6px}
.abe-ch-nums{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;font-size:12.5px;margin-bottom:34px}
.abe-ch-nums span{display:flex;flex-direction:column;gap:3px;font-weight:700}
.abe-ch-nums b{font-size:32px;line-height:1;font-variant-numeric:tabular-nums}
.abe-d{color:var(--abe-d);align-items:flex-start}
.abe-r{color:var(--abe-r);align-items:flex-end}
.abe-m{color:var(--abe-gold-deep);align-items:center}
.abe-meter{position:relative}
.abe-bar{display:flex;height:16px;border-radius:999px;overflow:hidden;background:#d5d8de;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.abe-bar span{flex-basis:0;min-width:0;transition:flex-grow .6s}
.abe-bar span+span{box-shadow:-1px 0 0 rgba(255,255,255,.7)}
.abe-majority{position:absolute;top:-4px;bottom:-4px;left:50%;width:2px;margin-left:-1px;background:var(--abe-ink);border-radius:2px;opacity:.7}
.abe-callout{position:absolute;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;background:#fff7dd;
	border:1px solid var(--abe-gold);color:var(--abe-gold-deep);border-radius:8px;padding:2px 9px;font-size:12.5px;font-weight:700;line-height:1.5}
.abe[dir=rtl] .abe-callout{transform:translateX(50%)}
.abe-callout b{color:var(--abe-ink)}
.abe-callout::after{content:"";position:absolute;top:100%;left:50%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--abe-gold)}
.abe-towin{font-size:12px;color:var(--abe-muted);margin-top:7px;font-weight:700;letter-spacing:.03em}
.abe-arc{display:block;width:100%;max-width:330px;margin:8px auto 0;overflow:visible}
.abe-arc circle{transition:fill .5s}
.abe-arc-maj{stroke:var(--abe-ink);stroke-width:1.2;stroke-dasharray:2 1.5;opacity:.6}
.abe-arc-v{font-size:14px;font-weight:700;text-anchor:middle}
.abe-arc-s{font-size:7px;fill:var(--abe-muted);text-anchor:middle}
.abe-ch-note{font-size:11.5px;color:var(--abe-muted);margin-top:6px}
/* flips + see-all, at the bottom of each chamber card */
.abe-chamber{display:flex;flex-direction:column}
.abe-flips{margin-top:12px;padding-top:12px;border-top:1px dashed var(--abe-line)}
.abe-flips-head{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--abe-muted);margin-bottom:7px}
.abe-flips-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;font-size:13px}
.abe-fl{border-radius:999px;padding:2px 10px;font-weight:700}
.abe-fl b{font-size:15px}
.abe-fl-D{background:#e6edfd;color:var(--abe-d)}
.abe-fl-R{background:#fbe7e7;color:var(--abe-r)}
.abe-fl-I{background:#efe9fd;color:#6d28d9}
.abe-fl-net{color:var(--abe-gold-deep);font-weight:700}
.abe-flips-none{font-size:13px;color:var(--abe-muted)}
.abe-flips-seats{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-top:9px}
.abe-seat{border:1.5px solid transparent;border-radius:6px;padding:1px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1.6}
.abe-seat-D{background:var(--abe-d)}
.abe-seat-R{background:var(--abe-r)}
.abe-seat-I{background:#7c3aed}
.abe-seat.is-lead{background:#fff}
.abe-seat-D.is-lead{border-color:var(--abe-d);color:var(--abe-d)}
.abe-seat-R.is-lead{border-color:var(--abe-r);color:var(--abe-r)}
.abe-seat-I.is-lead{border-color:#7c3aed;color:#7c3aed}
.abe-seat:hover{filter:brightness(1.1);box-shadow:0 2px 6px rgba(0,0,0,.15)}
.abe-seat-more{font-size:12px;color:var(--abe-muted);align-self:center}
.abe-all{margin-top:auto;padding-top:14px;border:0;background:none;color:var(--abe-gold-deep);font-weight:700;font-size:14px}
.abe-all:hover{text-decoration:underline}

/* featured races */
.abe-featured{margin-bottom:24px}
.abe-feat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.abe-race.abe-feat{padding:16px 18px;cursor:pointer;border-top:5px solid var(--abe-gold)}
.abe-feat header h3{font-size:18px;flex:1}
.abe-feat .abe-cand{font-size:16px;padding:8px 0}
.abe-feat .abe-pct{font-size:22px;font-weight:700}
.abe-feat .abe-cbar{height:8px}

/* map + feed */
.abe-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:22px}
.abe-tabs{display:flex;gap:6px}
.abe-tabs button,.abe-filters button{border:1px solid var(--abe-line);background:#fff;color:var(--abe-ink);border-radius:999px;padding:5px 15px;font-size:14px;transition:background .2s,border-color .2s}
.abe-tabs button:hover,.abe-filters button:hover{border-color:var(--abe-gold)}
.abe-tabs button.on,.abe-filters button.on{background:var(--abe-gold-soft);border-color:var(--abe-gold);color:var(--abe-gold-deep);font-weight:700}
.abe-map{position:relative;border-radius:10px;overflow:hidden;background:#fcfbf8;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.abe-map.is-zoomed{touch-action:none;cursor:grab}
.abe-map.is-zoomed:active{cursor:grabbing}
.abe-map svg{display:block;width:100%;height:auto}
.abe-g-states path,.abe-g-districts path{stroke:#fff;stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .4s}
.abe-g-districts path{stroke-width:.4}
.abe-g-borders{display:none;pointer-events:none}
.abe-g-borders path{fill:none;stroke:#fff;stroke-width:1.6;vector-effect:non-scaling-stroke}
.abe-map.is-house .abe-g-borders{display:inline}
.abe-map:not(.is-house) .abe-g-districts{display:none}
.abe-g-states path.has-race,.abe-g-districts path{cursor:pointer}
.abe-g-states path.has-race:hover,.abe-g-districts path:hover{stroke:var(--abe-ink);stroke-width:1.5}
.abe-g-states path.sel{stroke:var(--abe-gold-deep);stroke-width:3}
.abe-g-districts path.sel{stroke:var(--abe-gold-deep);stroke-width:1}
.abe-g-labels{pointer-events:none}
.abe-g-labels text{fill:var(--abe-ink);font-weight:700;stroke:rgba(255,255,255,.85);paint-order:stroke;stroke-linejoin:round}
.abe-lead{stroke:var(--abe-muted)}
.abe-zoom{position:absolute;top:10px;inset-inline-end:10px;z-index:3;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;box-shadow:var(--abe-shadow),0 0 0 1px var(--abe-line);background:#fff}
.abe-zoom button{width:34px;height:34px;border:0;background:#fff;color:var(--abe-ink);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center}
.abe-zoom button+button{border-top:1px solid var(--abe-line)}
.abe-zoom button:hover:not(:disabled){background:var(--abe-gold-soft);color:var(--abe-gold-deep)}
.abe-zoom button:disabled{color:#cfc8b6;cursor:default}
.abe-map-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;background:rgba(255,255,255,.95);
	border:1px solid var(--abe-line);border-radius:10px;padding:8px 16px;font-size:14px;box-shadow:var(--abe-shadow);pointer-events:none}
.abe-legend{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;font-size:12.5px;color:var(--abe-muted);margin-top:10px}
.abe-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-inline-end:5px;vertical-align:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.abe-tip{position:absolute;z-index:5;pointer-events:none;background:#fff;color:var(--abe-ink);border-radius:10px;padding:9px 13px;font-size:13px;min-width:180px;
	box-shadow:0 10px 30px rgba(60,48,15,.2),0 0 0 1px var(--abe-line);border-top:3px solid var(--abe-gold)}
.abe-tip b{display:block;margin-bottom:3px}
.abe-tip-rt{color:var(--abe-gold-deep);font-size:12px;margin-bottom:2px}
.abe-tip-c{display:flex;align-items:center;gap:6px}
.abe-tip-c i{width:9px;height:9px;border-radius:50%;flex:none}
.abe-tip-c span{margin-inline-start:auto;padding-inline-start:12px;font-weight:700}
.abe-tip-pr{color:var(--abe-muted);font-size:12px;margin-top:3px}

.abe-feed-card{display:flex;flex-direction:column}
.abe-feed{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:560px;flex:1}
.abe-ev{display:flex;gap:10px;padding:9px 6px;border-bottom:1px solid var(--abe-line);cursor:pointer;font-size:14px;line-height:1.45;border-radius:6px}
.abe-ev:hover{background:var(--abe-gold-soft)}
.abe-ev time{color:var(--abe-muted);font-size:12px;white-space:nowrap;padding-top:2px}
.abe-ev-D b{color:var(--abe-d)}
.abe-ev-R b{color:var(--abe-r)}
.abe-empty{color:var(--abe-muted);font-size:14px;padding:10px 0;list-style:none}

/* race list */
.abe-sort{font-weight:400;font-size:14px;color:var(--abe-muted);margin:0}
.abe-sort select{margin-inline-start:6px;border:1px solid var(--abe-line);border-radius:8px;padding:3px 8px;background:#fff;color:var(--abe-ink)}
.abe-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;scroll-margin-top:150px}
.abe-filters .abe-chip{background:var(--abe-gold);border-color:var(--abe-gold);color:var(--abe-ink)}
.abe-races{scroll-margin-top:calc(var(--abe-top) + 120px);display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.abe-race{padding:12px 14px;box-shadow:0 0 0 1px var(--abe-line);border-top:4px solid #d5d8de}
.abe-race.abe-st-counting{border-top-color:var(--abe-gold)}
.abe-race.abe-st-called{border-top-color:#6b8f5e}
.abe-race header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.abe-race header h4{flex:1;font-size:16px}
.abe-stat{font-size:12px;color:var(--abe-muted);white-space:nowrap;background:#f4f2ec;border-radius:999px;padding:1px 9px}
.abe-stat-counting{background:var(--abe-gold-soft);color:var(--abe-gold-deep)}
.abe-stat-called{background:#e8f1e3;color:#3f6a32;font-weight:700}
.abe-tag{font-size:11px;background:#f3efe2;color:#7a6320;border-radius:4px;padding:1px 6px;font-weight:400}
.abe-flip{font-size:11px;background:var(--abe-gold);color:var(--abe-ink);border-radius:4px;padding:1px 6px;font-weight:700;white-space:nowrap}
.abe-cand{display:grid;grid-template-columns:12px 1fr auto auto;grid-template-areas:"sw name pct votes" ". bar bar bar";align-items:center;column-gap:8px;row-gap:4px;padding:5px 0;font-size:14px}
.abe-cand.won .abe-name{font-weight:700}
.abe-sw{grid-area:sw;width:10px;height:10px;border-radius:50%}
.abe-name{grid-area:name;min-width:0}
.abe-name small{color:var(--abe-muted);font-weight:400;margin-inline-start:4px}
.abe-check{color:#3f8a2f}
.abe-pct{grid-area:pct;font-weight:700;font-variant-numeric:tabular-nums}
.abe-pct.is-chance{color:var(--abe-gold-deep)}
.abe-votes{grid-area:votes;color:var(--abe-muted);font-size:12.5px;font-variant-numeric:tabular-nums;min-width:62px;text-align:end}
.abe-cbar{grid-area:bar;height:5px;background:#f0ede5;border-radius:3px;overflow:hidden}
.abe-cbar span{display:block;height:100%;border-radius:3px;transition:width .5s}
.abe-toggle{border:0;background:none;color:var(--abe-gold-deep);padding:2px 0;font-size:13px}
.abe-race footer{margin-top:8px;padding-top:8px;border-top:1px dashed var(--abe-line);font-size:12.5px;color:var(--abe-muted)}
.abe-more{display:block;margin:18px auto 0;background:#fff;color:var(--abe-gold-deep);border:1px solid var(--abe-gold);border-radius:999px;padding:8px 30px;font-weight:700}
.abe-more:hover{background:var(--abe-gold-soft)}
.abe-source{text-align:center;color:var(--abe-muted);font-size:13px;margin-top:6px}
.abe-source a{color:var(--abe-gold-deep);text-decoration:underline}

.abe-callout ,.abe-majority{
    display: none;
}
@media (max-width:991px){
	.abe-grid{grid-template-columns:1fr}
	.abe-feed{max-height:340px}
	.abe-chambers,.abe-feat-grid{grid-template-columns:1fr;max-width:520px;margin-left:auto;margin-right:auto}
}
@media (max-width:767px){
	.abe-card,.abe-chamber{padding:14px}
	.abe-races{grid-template-columns:1fr}
	.abe-ch-nums b{font-size:26px}
	.abe-bar-wrap{border-radius:18px;padding:6px!important}
	.abe-seg button{padding:6px 18px}
}
