:root{--ink:#1a1a1a;--line:#c9c9c9;--accent:#14467c;--keep:#eef5ee;--change:#fdf3e7;--nofight:#f2f2f2}
*{box-sizing:border-box}
body{font-family:Georgia,'Times New Roman',serif;color:var(--ink);margin:0;background:#fff;line-height:1.45}
.wrap{max-width:980px;margin:0 auto;padding:20px 16px 60px}
header.site{border-bottom:3px double var(--ink);padding:14px 0 10px;margin-bottom:18px}
header.site .brand{font-size:30px;font-weight:bold;letter-spacing:.5px}
header.site .brand a{color:var(--ink);text-decoration:none}
h1{font-size:26px;margin:6px 0}
h2{font-size:21px;border-bottom:2px solid var(--ink);padding-bottom:4px;margin-top:34px}
h3{font-size:17px;margin:0 0 6px}
.meta{color:#444;font-size:14px}
.note{background:#f7f7f7;border:1px solid var(--line);padding:10px 12px;font-size:15px}
table.grid{border-collapse:collapse;width:100%;margin:12px 0}
table.grid th,table.grid td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top;font-size:15px}
table.grid th{background:#ececec}
.race{border:1px solid var(--ink);margin:22px 0;padding:14px}
.race .lvl{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#555}
.race .seats{font-weight:bold}
.change-line{font-style:italic;background:#f7f7f7;border-left:4px solid var(--accent);padding:8px 10px}
.cands{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:10px}
.cand{border:1px solid var(--line);padding:10px 12px}
.cand .nm{font-weight:bold;font-size:16px}
.cand .pty{color:#444;font-size:14px}
.box{border:1px solid var(--line);padding:8px 10px;margin-top:8px}
.box h4{margin:0 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.04em}
.box ol{margin:0;padding-left:20px}
.box.change{background:var(--change)}
.box.keep{background:var(--keep)}
.box.nofight{background:var(--nofight)}
.flag{font-size:14px;background:#fff8e1;border:1px solid #e0c97a;padding:8px 10px;margin-top:8px}
.proposal{border:1px solid var(--ink);margin:22px 0;padding:14px}
.ballot-words{font-style:italic;border-left:4px solid #888;padding:6px 10px;background:#fafafa}
.yn{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.footer-note{font-size:14px;color:#333}
.area-card{border:2px solid var(--accent);padding:12px 14px;margin:12px 0}
.states{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;font-size:15px}
.states a{color:var(--accent)}
.sources{font-size:14px}
.sources li{margin-bottom:5px}
a{color:var(--accent)}
.small{font-size:13px;color:#555}
