@font-face{font-family:"Archivo";src:url("/fonts/archivo.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("/fonts/plex-sans.woff2") format("woff2");font-weight:100 700;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/plex-mono-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/plex-mono-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/plex-mono-600.woff2") format("woff2");font-weight:600;font-display:swap}
/* The Open Count — Scoreboard theme (dark). Loaded after each page's own styles. */
html{color-scheme:dark}
:root,:root[data-theme="dark"],:root[data-theme="light"]{
  --bg:#0b0f0e; --surface:#121917; --ink:#fcfcfb; --ink-2:#c6cfcc; --muted:#a9b4b1; --line:#263230; --axis:#3d4a47;
  --accent:#b79bf5; --accent-wash:#1d1830; --blue:#3987e5; --red:#e66767; --purple:#a678e8; --up:#5fd08f; --down:#f08a8a; --gold:#f0b24a;
  --s1:#5c9bf0; --s2:#f0884f; --rise:#e66767; --drop:#5c9bf0;
  --good:#3ec26a; --warning:#f0b24a; --serious:#ec835a; --critical:#e66767;
  --display:"Archivo","Arial Narrow",Arial,sans-serif; --body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0b0f0e; --surface:#121917; --ink:#fcfcfb; --ink-2:#c6cfcc; --muted:#a9b4b1; --line:#263230; --axis:#3d4a47;
  --accent:#b79bf5; --accent-wash:#1d1830; --s1:#5c9bf0; --s2:#f0884f; --rise:#e66767; --drop:#5c9bf0 } }
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--body);margin:0}
.wrap{max-width:1160px;margin:0 auto;padding-inline:24px;padding-block:0 64px;display:flex;flex-direction:column;gap:64px}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* masthead */
.masthead{margin-bottom:-16px}
.mast-strip{display:none}
.mast{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:22px 0;border-bottom:1px solid var(--line)}
.mast .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.mast .brand svg{width:40px;height:30px;flex:none}
.mast .brand span{font:800 20px/1 var(--display);font-stretch:112%;letter-spacing:-.015em}
.mnav{display:flex;flex-wrap:wrap;gap:4px 28px;font:500 13px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em}
.mnav a{color:var(--ink);text-decoration:none;padding:10px 0;border-bottom:2px solid transparent}
.mnav a:hover{color:var(--accent)}
.mnav a[aria-current="page"]{border-bottom-color:var(--purple)}

/* type */
h1{font:900 clamp(40px,6vw,76px)/.96 var(--display);font-stretch:112%;letter-spacing:-.03em;margin:0;text-wrap:balance}
h2{font:800 clamp(26px,3vw,34px)/1.08 var(--display);font-stretch:108%;letter-spacing:-.015em;margin:0;text-wrap:balance}
h3{font-family:var(--display);font-stretch:104%}
.eyebrow{font:400 13px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.eyebrow b{font-weight:400;color:var(--purple)}
.lede{color:var(--ink-2);max-width:60ch;margin:0;font-size:19px;line-height:1.5}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
header.top{display:flex;flex-direction:column;gap:18px;padding-top:24px}
.asof{display:flex;flex-wrap:wrap;gap:6px 18px;font:400 12.5px/1.5 var(--mono);color:var(--muted)}
.asof span+span::before{content:"/ ";color:var(--purple)}

/* tracker structure */
#app{display:flex;flex-direction:column;gap:64px}
section{display:flex;flex-direction:column;gap:20px;scroll-margin-top:72px}
.sec-head{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:28px}
.sec-head p{margin:0;color:var(--ink-2);max-width:68ch}
nav.jump{background:var(--bg);border-block:1px solid var(--line);margin-inline:0;padding-inline:0}
nav.jump ul{gap:4px 24px;padding:12px 0}
nav.jump a{padding:6px 0;border-radius:0;font:500 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}
nav.jump a:hover{background:none;color:var(--accent)}
.panel,.scores,.herobox,.four,.three,.topic,.tbl,.card{border-radius:0!important}
.panel{background:var(--surface);border:0;padding:24px;gap:14px}
.panel>h3:first-child{font:800 19px/1.25 var(--display);font-stretch:106%;margin:0}
.scores,.herobox{background:var(--surface);border:0;border-top:6px solid var(--purple)}
.hero-score{padding:28px 24px;border-right-color:var(--line);gap:14px}
.herobox .hero-score{border-right:0}
.hero-score .big{font:800 clamp(76px,11vw,120px)/.9 var(--display);font-stretch:108%;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.four,.three{background:var(--line);border:0;gap:1px}
.four{margin-top:1px}
.score{background:var(--surface);border-right:0;padding:24px;gap:10px}
.score .v{font:800 42px/1 var(--display);font-stretch:106%;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.topic{background:var(--surface);border:0;padding:24px;gap:14px}
.tbl{background:var(--surface);border:0}
table{border-collapse:collapse}
th{font:400 11px/1.4 var(--mono)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important;border-bottom:1px solid var(--line)!important;background:none!important}
td{border-bottom-color:var(--line)!important}
td strong{font-weight:600}
input,select,button{border-radius:0!important}
input,select{background:var(--bg);color:var(--ink);border:1px solid var(--axis)}
.filters button,.seg button{background:var(--bg);color:var(--ink-2);border:1px solid var(--axis)}
.filters button[aria-pressed="true"],.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.note{color:var(--muted);line-height:1.55}
.bar{background:var(--line)}
.parts{gap:6px;font-size:12.5px}
.parts li{gap:12px;align-items:baseline}
.parts li .num{white-space:nowrap;flex:none}
.hero-score .of{white-space:nowrap}
@media (min-width:761px){.scores{grid-template-columns:minmax(0,1fr) minmax(0,2.2fr)} .scores .score{padding:24px 18px} .scores .hero-score .big{font-size:clamp(60px,6.6vw,88px)}}
@media (max-width:760px){.scores{grid-template-columns:minmax(0,1fr)} .scores .hero-score{border-right:0;border-bottom:1px solid var(--line)} .three,.four{grid-template-columns:minmax(0,1fr)}}

/* home */
.hero{display:flex;flex-direction:column;gap:28px;padding:40px 0 0}
.hero h1{font-size:clamp(38px,6.7vw,86px);text-wrap:normal;line-height:.96;letter-spacing:-.035em;font-stretch:116%}
.hero h1 em{font-style:normal;color:var(--purple)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.tile{background:var(--bg);padding:28px 24px;display:flex;flex-direction:column;gap:14px;min-width:0}
.tile .k{font:400 12px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.tile .n{font:800 clamp(48px,5.2vw,66px)/1 var(--display);font-stretch:106%;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.tile .w{font-size:14px;line-height:1.4;color:var(--ink-2)}
.tile .w.better{color:var(--up)} .tile .w.worse{color:var(--down)}
.tilesrc{margin:14px 0 0;font:400 12.5px/1.5 var(--mono);color:var(--muted)}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px}
.trio a{display:flex;flex-direction:column;gap:14px;padding:32px;background:var(--surface);border-top:6px solid var(--blue);text-decoration:none;color:var(--ink)}
.trio a:nth-child(2){border-top-color:var(--purple)} .trio a:nth-child(3){border-top-color:var(--red)}
.trio .n{font:400 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.trio .t{font:800 32px/1.05 var(--display);font-stretch:110%;letter-spacing:-.02em}
.trio p{margin:0;color:var(--ink-2)}
.trio .go{margin-top:auto;padding-top:14px;font:500 14px var(--mono);color:var(--ink)}
.trio a:hover .go{color:var(--accent)}
.signup{display:flex;flex-wrap:wrap;gap:24px 48px;align-items:center;padding:40px;background:var(--purple);color:#0b0f0e}
.signup>div{flex:1 1 340px;min-width:0}
.signup h2{font-weight:900;font-size:clamp(28px,3.4vw,38px);color:#0b0f0e}
.signup p{margin:10px 0 0;color:#0b0f0e;font-size:17px;line-height:1.5}
.signup a{color:#0b0f0e}
.signup iframe{display:block;width:100%;max-width:480px;height:150px;border:2px solid #0b0f0e;background:#fff}
.rules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px 40px}
.rules li{color:var(--ink-2);font-size:15.5px;line-height:1.55}
.rules strong{display:block;font:800 18px/1.25 var(--display);font-stretch:106%;color:var(--ink);margin-bottom:8px}
.foot{border-top:1px solid var(--line);padding-top:28px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;font:400 13px/1.7 var(--mono);color:var(--muted)}
.foot a{color:var(--ink-2)}
.foot .soc{display:flex;flex-wrap:wrap;gap:4px 18px}
@media (max-width:640px){
  .wrap{gap:48px;padding-inline:18px} #app{gap:48px}
  .mnav{gap:2px 18px;font-size:11.5px;letter-spacing:.08em} .eyebrow{letter-spacing:.12em;font-size:12px}
  .signup{padding:28px 22px} .trio a{padding:26px 22px} .panel,.topic,.score,.hero-score{padding:20px 18px}
  .hero{padding-top:24px}
}

/* news */
.trio{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.trio a{padding:28px 24px}
.trio .t{font-size:26px}
.trio a:nth-child(4){border-top-color:var(--gold)}
.loading{color:var(--ink-2)}
.cov{display:flex;flex-direction:column;gap:20px}
.covcard{background:var(--surface);padding:28px;display:flex;flex-direction:column;gap:20px}
.covcard h3{margin:0;font:800 24px/1.15 var(--display);font-stretch:108%;letter-spacing:-.015em}
.covnum{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.covnum li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-2)}
.covnum li.k{font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.covnum strong{color:var(--ink)}
.covlink{margin:0;color:var(--ink-2)}
.sides{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.side{display:flex;flex-direction:column;gap:10px;padding:18px 18px 20px;background:var(--bg);border-top:4px solid var(--axis);min-width:0}
.side.left{border-top-color:var(--blue)} .side.right{border-top-color:var(--red)}
.side .lean{font:500 11.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.side.left .lean{color:#8bb8f5} .side.right .lean{color:#f29a9a}
.side a{color:var(--ink);font:600 17px/1.35 var(--body);text-decoration:none;overflow-wrap:anywhere}
.side a:hover{color:var(--accent);text-decoration:underline}
.side .by{font:400 12.5px/1.4 var(--mono);color:var(--muted)}
.side .none{color:var(--muted);font-size:15px}
.rel{list-style:none;margin:0;padding:0;background:var(--surface)}
.rel li{display:grid;grid-template-columns:72px minmax(0,220px) minmax(0,1fr);gap:6px 20px;padding:14px 24px;border-bottom:1px solid var(--line);align-items:baseline}
.rel li:last-child{border-bottom:0}
.rel .when{color:var(--muted);font-size:13px}
.rel .src{font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.rel a{color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.rel a:hover{color:var(--accent);text-decoration:underline}
.covmethod{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.covmethod p{margin:0;color:var(--ink-2)}
.covmethod ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--ink-2)}
@media (max-width:640px){.covcard{padding:20px 18px} .rel li{grid-template-columns:minmax(0,1fr);gap:2px;padding:14px 18px}}

/* search */
.mast{align-items:center}
.msearch{position:relative;flex:1 1 240px;max-width:380px;min-width:0}
.msearch input{width:100%;min-height:44px;padding:0 14px;background:var(--surface);color:var(--ink);border:1px solid var(--axis);font:400 15px var(--body)}
.msearch input::placeholder{color:var(--muted)}
.msearch input:focus{border-color:var(--purple);outline:0}
.sres{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;min-width:min(420px,calc(100vw - 36px));max-height:70vh;overflow-y:auto;background:var(--surface);border:1px solid var(--axis);box-shadow:0 18px 40px rgba(0,0,0,.55);display:flex;flex-direction:column}
.sres[hidden]{display:none}
.sres a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:12px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.sres a:hover,.sres a:focus{background:var(--accent-wash)}
.sres .st{font-weight:600;font-size:15px}
.sres .sd{grid-column:1;font:400 13px/1.4 var(--mono);color:var(--ink-2)}
.sres .sk{grid-column:2;grid-row:1 / span 2;align-self:center;font:400 10.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:right;max-width:110px}
.sres .sm{padding:12px 14px;font-size:13.5px;color:var(--muted)}
@media (max-width:860px){.msearch{order:3;flex-basis:100%;max-width:none}}
.sres a.ans{border-left:4px solid var(--purple);background:var(--accent-wash)}
.sres a.ans .st{font-size:16px;line-height:1.35}
.sres a.ans .sk{color:var(--accent)}

/* history charts */
.hgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px}
.hcard{background:var(--surface);padding:24px;display:flex;flex-direction:column;gap:12px;min-width:0}
.hh{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px}
.hh h3{margin:0;font:800 18px/1.25 var(--display);font-stretch:106%}
.hr{font-size:13px;color:var(--ink-2)} .hr strong{color:var(--ink)}
.hcard svg{width:100%;height:auto;display:block;touch-action:pan-y}
.hx{font:400 11px var(--mono);fill:var(--muted)} .hv{font:600 12px var(--mono);fill:var(--ink)}
.hb{margin:0;font-size:14px;color:var(--ink-2)} .hb strong{color:var(--ink)}
.hcard .note{margin:0;font-size:12.5px}
.hcard details summary{cursor:pointer;font:500 12.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);padding:6px 0}
.hyt{overflow-x:auto} .hyt table{width:100%;min-width:560px} .hyt th,.hyt td{padding:6px 8px;text-align:right;font-size:12px}
.hbig{overflow-x:auto} .hbig table{width:100%;min-width:980px} .hbig th,.hbig td{padding:10px 10px;text-align:left;vertical-align:top} .hbig .r{text-align:right;white-space:nowrap}
.hbig td:first-child{min-width:230px} .hbig .sub{display:block;font-size:12px;color:var(--muted);font-weight:400}

/* comparison-date bar */
.basebar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:18px 20px;background:var(--surface);border-left:4px solid var(--purple);margin-top:-32px}
.basebar .bl{font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bopts{display:flex;flex-wrap:wrap;gap:10px}
.bopts button,.bsel{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;background:var(--bg);color:var(--ink);border:1px solid var(--axis);font:500 14px var(--body);cursor:pointer}
.bopts button small{font:400 12px var(--mono);color:var(--muted)}
.bopts button[aria-pressed="true"],.bsel.on{border-color:var(--purple);box-shadow:inset 0 0 0 1px var(--purple)}
.bsel span{color:var(--ink-2)}
.bsel select,.bsel input{min-height:32px;background:var(--surface);color:var(--ink);border:1px solid var(--axis);padding:0 8px;font:400 14px var(--mono);color-scheme:dark}
.bnow{flex:1 1 100%;font-size:13.5px;color:var(--ink-2)}
@media (max-width:640px){.basebar{margin-top:-20px;padding:16px} .mnav{gap:2px 14px}}
nav.jump{position:sticky;top:0;z-index:5;overflow-x:auto}
nav.jump ul{display:flex;list-style:none;margin:0;white-space:nowrap}
nav.jump a{display:block;text-decoration:none}

/* ballot */
.trio{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.trio a{padding:30px 28px} .trio .t{font-size:30px}
.trio a:nth-child(4){border-top-color:var(--gold)} .trio a:nth-child(5){border-top-color:var(--up)} .trio a:nth-child(6){border-top-color:var(--axis)}
.bfilter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 20px;padding:20px 24px;background:var(--surface);border-left:4px solid var(--purple)}
.bfilter label{display:flex;flex-direction:column;gap:8px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);flex:1 1 220px;max-width:340px}
.bfilter select,.bfilter input{min-height:46px;padding:0 12px;background:var(--bg);color:var(--ink);border:1px solid var(--axis);font:400 16px var(--body);letter-spacing:0;text-transform:none;width:100%}
.bfilter #bcount{color:var(--ink-2);font-size:13.5px;padding-bottom:14px}
.bcard{gap:18px}
.bhead{display:flex;flex-direction:column;gap:8px}
.btag{font:500 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.btype{font-size:13.5px;color:var(--muted)}
.bsum{margin:0;font-size:17px;line-height:1.5;color:var(--ink)}
.bfacts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.bfacts li{display:grid;grid-template-columns:190px minmax(0,1fr);gap:6px 20px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:15px;line-height:1.5}
.bfacts li>span:first-child{font:400 11.5px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sides.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.side.for{border-top-color:var(--up)} .side.against{border-top-color:var(--gold)}
.side.for .lean{color:var(--up)} .side.against .lean{color:var(--gold)}
.side .arg{margin:0;font-size:15.5px;line-height:1.5;color:var(--ink)}
.side .arg+.arg{padding-top:12px;border-top:1px solid var(--line)}
.side .arg .by{display:block;margin-top:6px}
.blinks{margin:0;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px}
.bnone{margin:0;padding:20px 24px;background:var(--surface);color:var(--ink-2)}
@media (max-width:640px){.bfacts li{grid-template-columns:minmax(0,1fr);gap:2px} .bfilter{padding:16px}}

.subbtn{display:inline-block;min-height:52px;padding:0 26px;border:2px solid #0b0f0e;background:#0b0f0e;color:#fcfcfb;font:800 16px var(--display);cursor:pointer}
.subbtn:hover{background:#fcfcfb;color:#0b0f0e}
.signup .fine{font-size:13.5px;margin-top:12px}
.prose{display:flex;flex-direction:column;gap:36px;max-width:76ch}
.prose h2{font-size:24px;margin-bottom:10px}
.prose p,.prose li{color:var(--ink-2);margin:0 0 10px;line-height:1.6}
.prose ul{margin:0;padding-left:20px}

/* explained */
.trio a.wide{grid-column:1/-1;border-top-color:var(--ink)}
.gdefs{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.gdefs>div{background:var(--surface);padding:22px 24px;scroll-margin-top:80px}
.gdefs dt{font:800 18px/1.25 var(--display);font-stretch:106%;margin-bottom:8px}
.gdefs dd{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.55}
.gsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line)}
.gsteps li{display:flex;gap:20px;background:var(--surface);padding:20px 24px;align-items:flex-start}
.gsteps .gn{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--purple);color:#0b0f0e;font-weight:600;font-size:17px}
.gsteps strong{font:800 18px/1.25 var(--display);font-stretch:106%}
.gsteps p{margin:6px 0 0;color:var(--ink-2);font-size:15.5px;line-height:1.55}
.hbig td{color:var(--ink-2)} .hbig td strong{color:var(--ink)}
.gdefs{gap:16px;background:none;border:0}

/* past officials */
.osub{margin:28px 0 0;font:800 22px/1.2 var(--display);font-stretch:108%}
.osubp{margin:-8px 0 0;color:var(--ink-2)}
#elections-body{display:flex;flex-direction:column;gap:18px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.pcard{background:var(--surface);padding:24px;display:flex;flex-direction:column;gap:12px}
.pcard h4{margin:0;font:800 26px/1.1 var(--display);font-stretch:108%}
.pterm{margin:0;color:var(--ink-2);font-size:15px}
.pcard .bfacts li{grid-template-columns:120px minmax(0,1fr);font-size:14.5px}
.pd{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;background:var(--axis);vertical-align:1px}
.pd.d{background:var(--blue)} .pd.r{background:var(--red)}
.olist{display:flex;flex-direction:column;gap:2px}
.orow{background:var(--surface)}
.orow button,.orow.static{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:4px 20px;width:100%;padding:14px 20px;background:none;border:0;color:var(--ink);text-align:left;font:inherit;cursor:pointer;align-items:baseline}
.orow.static{cursor:default}
.orow button:hover{background:var(--accent-wash)}
.orow.open>button{border-left:4px solid var(--purple);padding-left:16px}
.onm{font-weight:600;font-size:16px} .osv{color:var(--ink-2);font-size:14px}
.odet{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px 32px;padding:8px 20px 24px}
.odet h4{margin:0 0 10px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.og{margin:14px 0 6px;font:500 12px var(--mono);color:var(--accent)}
.odet .vlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.odet .vlist li{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;font-size:14px;line-height:1.4}
.odet .vote{font:600 12.5px var(--mono);color:var(--ink-2)} .odet .vote.y{color:var(--up)} .odet .vote.n{color:var(--down)}
.vsub{color:var(--muted);font-size:12.5px}
.odet .hyt th,.odet .hyt td{font-size:13px}
@media (max-width:640px){.orow button,.orow.static{grid-template-columns:minmax(0,1fr);padding:14px 16px}}
#pst{max-height:460px;overflow:auto}
#pst thead th{position:sticky;top:0;background:var(--surface)!important}
.pbio{margin:0;color:var(--ink-2);font-size:15px;line-height:1.5}
.obio{display:block;margin-top:6px;color:var(--ink-2);font-size:14px;line-height:1.5}
.sres .sd{white-space:normal;line-height:1.45}
.pcard .bfacts strong{color:var(--ink)}

.reclist{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.reclist li{display:grid;grid-template-columns:110px minmax(0,1fr) 96px;gap:8px 18px;align-items:start;padding:14px 20px;background:var(--surface);font-size:15px;line-height:1.45}
.reclist .rd,.reclist .rn{font:400 12.5px/1.5 var(--mono);color:var(--muted)} .reclist .rn{text-align:right}
@media(max-width:640px){.reclist li{grid-template-columns:1fr;gap:4px;padding:14px 16px}.reclist .rn{text-align:left}.reclist .rd br,.reclist .rn br{display:none}}

.totop{position:fixed;right:20px;bottom:20px;z-index:40;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:1px solid var(--purple);background:var(--bg);color:var(--ink);font:500 13px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s;box-shadow:0 6px 24px rgba(0,0,0,.45)}
.totop.on{opacity:1;visibility:visible;transform:none}
.totop:hover,.totop:focus-visible{background:var(--purple);color:var(--bg)}
@media(max-width:640px){.totop{right:14px;bottom:14px}}
@media(prefers-reduced-motion:reduce){.totop{transition:none}}
@media print{.totop{display:none}}

[data-ctx="states"]{display:block;margin-top:56px}[data-ctx="states"]:empty{display:none}[data-ctx="states"] section+section{margin-top:56px}
.hbig th .sub{display:block;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);font-size:11.5px}

/* collapsible sections (fold.js, used on History and Explained) */
section.fold{gap:0}
section.fold .sec-head{padding-bottom:4px}
section.fold .sec-head h2{margin:0}
.fold-btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;cursor:pointer;font:inherit;color:inherit}
.fold-btn:hover{color:var(--accent)}
.fold-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.fold-ico{flex:none;width:30px;height:30px;border:1px solid var(--axis);position:relative}
.fold-ico::before,.fold-ico::after{content:"";position:absolute;left:8px;right:8px;top:14px;height:2px;background:currentColor}
.fold-ico::after{transform:rotate(90deg);transition:transform .15s}
section.fold.open .fold-ico::after{transform:rotate(0)}
.fold-body{display:flex;flex-direction:column;gap:20px;padding-top:20px}
section.fold:not(.open) > .fold-body{display:none}
#app:has(section.fold){gap:28px}
.fold-all{display:flex;gap:18px;margin-bottom:-36px;font:500 12.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em}
.fold-all button{all:unset;cursor:pointer;color:var(--ink-2);padding:6px 0;border-bottom:1px solid var(--axis)}
.fold-all button:hover{color:var(--accent);border-color:var(--accent)}
.fold-all button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media print{section.fold:not(.open) > .fold-body{display:flex}.fold-ico,.fold-all{display:none}}

/* ---------- visual layer (viz.js + page accents) ---------- */
body{--sec:var(--purple);--sec-rgb:166,120,232}
body.sec-afford,body.sec-news{--sec:var(--gold);--sec-rgb:240,178,74}
body.sec-econ,body.sec-home{--sec:var(--purple);--sec-rgb:166,120,232}
body.sec-seat{--sec:var(--ink);--sec-rgb:252,252,251}
body.sec-ballot{--sec:var(--s2);--sec-rgb:240,136,79}
body.sec-hist{--sec:var(--up);--sec-rgb:95,208,143}
body.sec-expl,body.sec-about{--sec:var(--muted);--sec-rgb:169,180,177}
/* page header: accent bar, soft glow, faint grid */
header.top,.hero{position:relative;isolation:isolate;padding:36px 36px 34px!important;border-top:6px solid var(--sec);
  background:radial-gradient(110% 140% at 100% 0%,rgba(var(--sec-rgb),.20),transparent 55%),radial-gradient(80% 120% at 0% 100%,rgba(166,120,232,.12),transparent 60%),var(--surface)}
header.top::before,.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:40px 40px;opacity:.4;
  -webkit-mask-image:linear-gradient(90deg,transparent 35%,#000);mask-image:linear-gradient(90deg,transparent 35%,#000)}
header.top .eyebrow b{color:var(--sec)}
@media (max-width:640px){header.top,.hero{padding:26px 20px 24px!important}}
/* sparklines */
.spark{display:block;width:100%;height:auto;overflow:visible}
.tsp{color:var(--purple);margin-top:auto}
.tsp .spark{height:40px}
.tspark{display:block;width:90px;height:22px;margin-top:6px;color:var(--sec)}
.tspark .spark{height:22px}
/* at-a-glance cards */
.glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.gcard{display:flex;flex-direction:column;gap:6px;padding:18px 20px 16px;background:var(--surface);border-left:3px solid var(--sec);min-width:0}
.gk{font-size:13.5px;line-height:1.35;color:var(--ink-2);min-height:2.7em}
.gv{font:600 32px/1.1 var(--mono);color:var(--ink)}
.gchip{align-self:flex-start;font:500 11.5px/1.3 var(--mono);padding:4px 8px;background:var(--line);color:var(--ink-2)}
.gchip.better{background:rgba(62,194,106,.14);color:#86e2a7}
.gchip.worse{background:rgba(230,103,103,.15);color:#f4a3a3}
.gsp{color:var(--sec);margin-top:8px}
.gsp .spark{height:48px}
.gsrc,.gas{font:400 10.5px/1.4 var(--mono);color:var(--muted)}
/* news thumbnails */
.covcard.has-thumb{display:grid;grid-template-columns:270px minmax(0,1fr);column-gap:24px;align-items:start}
.covcard.has-thumb>*:not(.thumb){grid-column:2}
.covcard.has-thumb>.thumb{grid-column:1;grid-row:1/span 6}
.thumb{display:flex;flex-direction:column;gap:6px;padding:18px;color:var(--sec);border:1px solid rgba(var(--sec-rgb),.38);
  background:linear-gradient(160deg,rgba(var(--sec-rgb),.16),rgba(var(--sec-rgb),.02) 70%)}
.thumb .tk{font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.thumb .tv{font:600 40px/1.05 var(--mono);color:var(--ink)}
.thumb .td{font-size:13px;color:var(--ink-2);margin-bottom:6px}
.thumb .spark{height:64px}
.thumb .ts{font:400 10.5px/1.4 var(--mono);color:var(--muted)}
.tmk{display:flex;flex-direction:column;gap:5px;margin:6px 0;font-size:13px;color:var(--ink-2)}
.tmk .num{font:500 12px var(--mono);color:var(--ink)}
.tbar{display:flex;gap:2px;height:14px}
.tbar i{display:block;height:100%;border-radius:3px}
.tbar .d{background:var(--blue)} .tbar .r{background:var(--red)}
@media (max-width:760px){.covcard.has-thumb{display:flex}.covcard.has-thumb>h3{order:-2}.covcard.has-thumb>.thumb{order:-1}}
/* release source badges */
.rel li:has(.agb){grid-template-columns:48px 72px minmax(0,220px) minmax(0,1fr);align-items:center}
.agb{display:grid;place-items:center;width:44px;height:44px;font:600 11.5px/1 var(--mono);letter-spacing:.04em;color:var(--accent);background:var(--accent-wash);border:1px solid rgba(183,155,245,.35)}
@media (max-width:760px){.rel li:has(.agb){grid-template-columns:44px minmax(0,1fr)}.rel li:has(.agb)>*:not(.agb){grid-column:2}.rel li:has(.agb)>.agb{grid-row:1/span 3}}
/* subtle lift on cards and panels */
.trio a,.side,.gcard{transition:transform .15s ease,box-shadow .15s ease}
.trio a:hover,.side:hover{transform:translateY(-3px);box-shadow:0 10px 24px -14px rgba(0,0,0,.8)}
@media (prefers-reduced-motion:reduce){.trio a,.side,.gcard{transition:none}.trio a:hover,.side:hover{transform:none}}

/* ---------- glossary links (terms.js) ---------- */
a.gl{color:inherit;text-decoration:underline dotted;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1.5px;cursor:help}
a.gl:hover,a.gl:focus-visible{color:var(--accent);text-decoration-style:solid}
.glpop{position:absolute;z-index:50;display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#1a2321;border:1px solid var(--axis);border-top:3px solid var(--accent);box-shadow:0 16px 40px -16px rgba(0,0,0,.9);font-size:14px;line-height:1.5}
.glpop[hidden]{display:none}
.glpop .glt{font:800 16px/1.2 var(--display);font-stretch:106%;color:var(--ink)}
.glpop .gld{color:var(--ink-2)}
.glpop a{font:500 12px/1.3 var(--mono);color:var(--accent)}
.gdefs>div:target{outline:2px solid var(--accent);outline-offset:-2px}

/* ---------- ballot: cost and benefit panel ---------- */
details.cb{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--sec)}
details.cb>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding:14px 18px}
details.cb>summary::-webkit-details-marker{display:none}
details.cb>summary::after{content:"+";font:600 20px/1 var(--mono);color:var(--sec);margin-left:auto}
details.cb[open]>summary::after{content:"–"}
details.cb>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cb-t{font:800 17px/1.25 var(--display);font-stretch:106%;color:var(--ink)}
.cb-s{font:400 12px/1.4 var(--mono);color:var(--muted);flex:1 1 220px}
.cb-body{display:flex;flex-direction:column;gap:18px;padding:4px 18px 18px}
.cb-cols,.cb-recs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.cb-col{background:var(--surface);padding:14px 16px;border-top:3px solid var(--axis)}
.cb-col h4,.cb-recol h4,.cb-rh{margin:0 0 8px;font:500 11.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.cb-col ul,.cb-imp{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--ink-2);font-size:14.5px;line-height:1.5}
.cb-rows{margin:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.cb-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:6px 20px;padding:12px 0;border-bottom:1px solid var(--line)}
.cb-row dt{font:500 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}
.cb-row dd{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}
.cb-row dd p,.cb-row dd ul{margin:0}
.cb-row dd>*+*{margin-top:8px}
.cb-calc{color:var(--muted);font-size:13px}
.cb-srcl{font-size:12.5px;color:var(--muted)}
.cb-bars{display:flex;flex-direction:column;gap:6px;max-width:560px}
.cb-bars>div{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;column-gap:10px}
.cb-bars span{font:400 12px var(--mono);color:var(--muted)}
.cb-bars .trk{display:flex;align-items:center;min-width:0}
.cb-bars i{display:block;height:16px;background:var(--sec);border-radius:0 3px 3px 0}
.cb-bars i.lo{border-radius:0}
.cb-bars i.hi{background:repeating-linear-gradient(135deg,rgba(var(--sec-rgb),.85) 0 4px,rgba(var(--sec-rgb),.35) 4px 8px)}
.cb-bars b{font-size:12.5px;color:var(--ink);padding-left:8px;white-space:nowrap}
.cb-record{display:flex;flex-direction:column;gap:10px}
.cb-ri{margin:0;color:var(--ink-2);font-size:14px}
.cb-recol{display:flex;flex-direction:column;gap:10px}
.cb-recol.met h4{color:#86e2a7}.cb-recol.short h4{color:#f4c27a}
.cb-rec{background:var(--surface);padding:14px 16px;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.5;color:var(--ink-2);border-left:3px solid var(--axis)}
.cb-recol.met .cb-rec{border-left-color:rgba(62,194,106,.6)}.cb-recol.short .cb-rec{border-left-color:rgba(240,178,74,.7)}
.cb-rec strong{color:var(--ink);font-size:15px}
.cb-rec p{margin:0}
.cb-now{background:var(--bg);padding:8px 10px}
.cb-now span{display:block;font:500 10.5px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.cb-rec a{font:400 12px var(--mono);color:var(--accent)}
.cb-src{margin:0;font-size:12.5px;color:var(--muted)}
@media (max-width:640px){.cb-row{grid-template-columns:1fr}.cb-body{padding:4px 12px 14px}details.cb>summary{padding:12px}}

/* ---------- ballot: who is paying ---------- */
details.mo{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--purple)}
details.mo>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:14px 18px}
details.mo>summary::-webkit-details-marker{display:none}
details.mo>summary::after{content:"+";font:600 20px/1 var(--mono);color:var(--purple);margin-left:auto}
details.mo[open]>summary::after{content:"–"}
details.mo>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mo-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}
.mo-col{display:flex;flex-direction:column;gap:10px}
.mo-col h4{margin:0;font:500 11.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);padding-bottom:6px;border-bottom:2px solid var(--axis)}
.mo-c{background:var(--surface);padding:12px 14px}
.mo-cn{margin:0 0 8px;font-weight:600;font-size:14px;line-height:1.35;color:var(--ink)}
.mo-id{font:400 11px var(--mono);color:var(--muted)}
.mo-c ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mo-c li{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(40px,1fr) auto;gap:10px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.mo-n{overflow-wrap:anywhere;line-height:1.35}
.mo-note{display:block;font-size:12px;color:var(--muted)}
.mo-bar{display:block;height:8px;background:var(--line)}
.mo-bar i{display:block;height:100%;background:var(--purple)}
.mo-a{font-size:12.5px;color:var(--ink);text-align:right;white-space:nowrap}
.mo-none{margin:0;color:var(--muted);font-size:14px}
.mo-notes{margin:0;padding-left:18px;color:var(--muted);font-size:12.5px;display:flex;flex-direction:column;gap:4px}
@media (max-width:640px){.mo-c li{grid-template-columns:minmax(0,1fr) auto}.mo-bar{grid-column:1/-1;order:3}details.mo>summary{padding:12px}}

/* ---------- search page (find.js) ---------- */
body.sec-search{--sec:var(--purple);--sec-rgb:166,120,232}
.sres a.all{background:var(--accent-wash);border-bottom:1px solid var(--line)}
.sres a.all .st{color:var(--accent)}
.fx-form{display:flex;flex-direction:column;gap:8px;max-width:720px}
.fx-form>div{display:flex;gap:8px}
.fx-form input{flex:1;min-width:0;font:400 17px/1.2 var(--body);padding:14px 16px;background:var(--bg);color:var(--ink);border:1px solid var(--axis)}
.fx-form input:focus{outline:2px solid var(--accent);outline-offset:0}
.fx-form button{font:600 13px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:0 20px;background:var(--purple);color:#0b0f0e;border:0;cursor:pointer}
.fx-form button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.fx-count{margin:0;font:400 13px/1.5 var(--mono);color:var(--muted)}
.fx-count a{margin:0 2px}
#app:has(.fx-prof),#app:has(.fx-groups){gap:24px}
.fx-prof{background:var(--surface);border-top:6px solid var(--sec);padding:26px 28px;display:flex;flex-direction:column;gap:16px}
.fx-billcard{border-top-color:var(--gold)}
.fx-ph{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.fx-ph h2{flex:1 1 auto}
.fx-pk{width:100%;font:500 11.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--sec)}
.fx-billcard .fx-pk{color:var(--gold)}
.fx-party-tag{font:500 12px/1 var(--mono);padding:6px 10px;border:1px solid var(--axis);color:var(--ink-2)}
.fx-party-tag.pD{border-color:var(--blue);color:#8bb8f5}.fx-party-tag.pR{border-color:var(--red);color:#f29a9a}
.fx-roles{margin:0;padding-left:18px;color:var(--ink);display:flex;flex-direction:column;gap:2px}
.fx-bio{margin:0;color:var(--ink-2);max-width:75ch}
.fx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.fx-stat{background:var(--bg);padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.fx-stat .num{font:600 30px/1.1 var(--mono);color:var(--ink)}
.fx-sl{font-size:14px;color:var(--ink-2)}
.fx-ss{font:400 11.5px/1.4 var(--mono);color:var(--muted)}
details.fx-list{background:var(--bg);border:1px solid var(--line)}
details.fx-list>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;padding:14px 16px;font:800 17px/1.25 var(--display);font-stretch:106%}
details.fx-list>summary::-webkit-details-marker{display:none}
details.fx-list>summary .num{font:500 13px var(--mono);color:var(--muted)}
details.fx-list>summary::after{content:"+";margin-left:auto;font:600 20px/1 var(--mono);color:var(--sec)}
details.fx-list[open]>summary::after{content:"–"}
details.fx-list>summary:focus-visible,details.fx-item>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
details.fx-list>.fx-muted{padding:0 16px}
.fx-rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.fx-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2)}
details.fx-item{border-bottom:1px solid var(--line)}
details.fx-item>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:11px 16px;align-items:baseline}
details.fx-item>summary::-webkit-details-marker{display:none}
details.fx-item>summary:hover .fx-t{color:var(--accent)}
details.fx-item>summary::after{content:"Details +";grid-column:2;grid-row:1;font:500 11.5px var(--mono);color:var(--muted);white-space:nowrap}
details.fx-item[open]>summary::after{content:"Close –"}
details.fx-item[open]{background:var(--surface)}
.fx-t{color:var(--ink);font-weight:600;font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.fx-sub{grid-column:1/-1;font:400 12.5px/1.45 var(--mono);color:var(--muted)}
.fx-body{padding:4px 16px 16px;display:flex;flex-direction:column;gap:10px;font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.fx-body p,.fx-prof p{margin:0}
.fx-kv{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.fx-kv>div{background:var(--bg);padding:10px 12px}
.fx-kv dt{font:500 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.fx-kv dd{margin:0;color:var(--ink);font-size:14.5px}
.fx-h{margin:4px 0 0;font:500 11.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.fx-vote{background:var(--bg);border-left:3px solid var(--axis);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.fx-vh{color:var(--ink)}
.fx-party{display:flex;flex-direction:column;gap:6px;max-width:620px}
.fx-pr{display:grid;grid-template-columns:110px minmax(80px,1fr) auto;gap:10px;align-items:center;font-size:13px}
.fx-yn{display:flex;height:10px;background:var(--line)}
.fx-yn i{display:block;height:100%}.fx-yn .y{background:var(--up)}.fx-yn .n{background:var(--down)}
.fx-pr .num{font-size:12px;color:var(--ink-2);white-space:nowrap}
.fx-muted,.fx-aka{color:var(--muted);font-size:13px}
.fx-src,.fx-on{font-size:13px}
.fx-on{color:var(--muted)}
.fx-more{margin:10px 16px 14px;font:500 12px var(--mono);padding:8px 12px;background:none;color:var(--accent);border:1px solid var(--axis);cursor:pointer}
.fx-money{display:flex;flex-direction:column;gap:8px}
.fx-groups{display:flex;flex-direction:column;gap:10px}
.fx-gh{font-size:22px;margin:6px 0 2px}
@media (max-width:640px){.fx-prof{padding:20px 16px}.fx-pr{grid-template-columns:90px 1fr}.fx-pr .num{grid-column:1/-1}.fx-form>div{flex-direction:column}.fx-form button{padding:12px}}
a.dlink{color:inherit;text-decoration:none;border-bottom:1px solid var(--axis)}
a.dlink:hover,a.dlink:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}
a.dext{font:400 11.5px var(--mono);color:var(--muted);margin-left:6px}
.fx-bars{display:flex;flex-direction:column;gap:6px;max-width:720px}
.fx-bars>div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) auto;gap:10px;align-items:center;font-size:13.5px;color:var(--ink-2)}
.fx-bars>div>span{overflow-wrap:anywhere;line-height:1.35}
.fx-bars i{display:block;height:9px;background:var(--purple);min-width:2px}
.fx-bars b{font-size:12.5px;color:var(--ink);white-space:nowrap}
@media (max-width:640px){.fx-bars>div{grid-template-columns:minmax(0,1fr) auto}.fx-bars i{grid-column:1/-1;order:3}}
details.mo-sub{grid-column:1/-1;margin:2px 0 6px}
details.mo-sub>summary{cursor:pointer;font:500 12px/1.4 var(--mono);color:var(--accent);list-style:none}
details.mo-sub>summary::-webkit-details-marker{display:none}
details.mo-sub>summary::before{content:"▸ "}
details.mo-sub[open]>summary::before{content:"▾ "}
details.mo-sub ol{list-style:none;margin:6px 0 4px;padding:8px 10px;background:var(--bg);display:flex;flex-direction:column;gap:4px}
details.mo-sub li{display:flex !important;justify-content:space-between;gap:10px;font-size:12.5px}
details.mo-sub li b{font-size:12px;white-space:nowrap}
/* layout fixes from the desktop/phone review */
@media (min-width:900px){.glance-sec[data-n="6"] .glance,.glance-sec[data-n="3"] .glance{grid-template-columns:repeat(3,1fr)}}
.payrow{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:900px){.payrow{grid-template-columns:minmax(0,520px) minmax(0,1fr);align-items:stretch}}
.paycmp{display:flex;flex-direction:column;gap:14px}
.pcrow{display:grid;grid-template-columns:80px minmax(0,1fr) auto;gap:12px;align-items:center}
.pcl{font:500 12px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.pctrk{display:flex;height:22px;background:var(--bg)}
.pctrk i{display:block;height:100%}.pctrk .pi{background:var(--sec)}.pctrk .es{background:var(--axis)}
.pcrow b{font-size:15px;color:var(--ink)}
.pcdl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.pcdl>div{background:var(--bg);padding:10px 12px}
.pcdl dt{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.pcdl dd{margin:0;color:var(--ink);font-size:14.5px}
/* Seat Check tables become stacked cards on phones */
@media (max-width:640px){
  #votes .tbl table,#votes .tbl tbody,#votes .tbl tr,#votes .tbl td,
  #races .tbl table,#races .tbl tbody,#races .tbl tr,#races .tbl td,
  #officials .tbl table,#officials .tbl tbody,#officials .tbl tr,#officials .tbl td{display:block;width:auto;min-width:0 !important;white-space:normal !important}
  #votes .tbl thead,#races .tbl thead,#officials .tbl thead{display:none}
  #votes .tbl,#races .tbl,#officials .tbl{overflow:visible}
  #votes .tbl tr,#races .tbl tr,#officials .tbl tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:14px 14px;border-bottom:1px solid var(--line)}
  #votes .tbl td,#races .tbl td,#officials .tbl td{padding:0 !important;border:0 !important;text-align:left !important}
  #votes .tbl td:nth-child(1){font:400 12px var(--mono);color:var(--muted)}
  #votes .tbl td:nth-child(2){font:500 12px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
  #votes .tbl td:nth-child(n+3){grid-column:1/-1}
  #races .tbl td:nth-child(1){font-weight:700;color:var(--ink)}
  #races .tbl td:nth-child(n+2){grid-column:1/-1}
  #races .tbl td:nth-child(4),#races .tbl td:nth-child(6){grid-column:auto}
  #officials .tbl td:nth-child(1){grid-column:1/-1;font-weight:700}
  #officials .tbl td:nth-child(n+2){font-size:13.5px;color:var(--ink-2)}
}
@media (max-width:640px){#races .tbl td:nth-child(6):not(:empty)::before{content:"Market, D win: ";font:400 12px var(--mono);color:var(--muted)}}
/* home: election countdown */
.countdown{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px 28px;align-items:center;max-width:820px;padding:20px 22px;background:rgba(11,15,14,.55);border:1px solid var(--line);border-left:4px solid var(--gold)}
.countdown[hidden]{display:none}
.cd-n{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding-right:24px;border-right:1px solid var(--line)}
.cd-n .num{font:800 clamp(54px,7vw,84px)/.9 var(--display);font-stretch:108%;letter-spacing:-.03em;color:var(--gold)}
.cd-n span:last-child{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.cd-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.cd-k{font:500 11.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.cd-t strong{font:800 24px/1.15 var(--display);font-stretch:106%;color:var(--ink)}
.cd-t>span:not(.cd-k){color:var(--ink-2);font-size:15px}
.cd-t p{margin:4px 0 0;color:var(--ink-2);font-size:14.5px}
.cd-l{display:flex;flex-wrap:wrap;gap:6px 18px;font:500 12.5px var(--mono)}
@media (max-width:560px){.countdown{grid-template-columns:1fr;padding:16px}.cd-n{flex-direction:row;align-items:baseline;gap:10px;padding:0 0 12px;border-right:0;border-bottom:1px solid var(--line)}}
