:root{color-scheme:dark;--bg:#080d15;--surface:#0e1622;--surface2:#111c29;--border:#203040;--text:#edf5fa;--muted:#95a7b9;--faint:#657d92;--cyan:#58e5d4;--violet:#b5a1ff;--amber:#f4c77d;--red:#ff969d;--font:'DM Sans',system-ui,sans-serif;--display:'Space Grotesk',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5}button,input,select{font:inherit}button,a,select,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button:disabled,select:disabled,input:disabled{opacity:.5;cursor:wait}button:disabled{cursor:default}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display)}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.skip{position:fixed;top:-60px;left:15px;z-index:30;padding:12px;background:var(--cyan);color:var(--bg)}.skip:focus{top:10px}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:225px;border-right:1px solid var(--border);background:#0a111b;padding:33px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:27px;letter-spacing:-1px;font-weight:700}.brand-mark{display:grid;place-items:center;width:42px;height:45px;background:linear-gradient(135deg,#58e5d423,#58e5d405);border:1px solid #58e5d446;color:var(--cyan);border-radius:9px;font-size:38px;line-height:1;letter-spacing:-4px;padding-right:4px}.brand-number{color:var(--cyan)}.brand small{display:block;font-family:var(--font);font-size:8px;color:var(--muted);letter-spacing:2.05px;line-height:2}.sidebar-label{font-size:9px;letter-spacing:1.5px;color:var(--faint);margin:52px 12px 16px}.navigation{display:flex;flex-direction:column;gap:7px}.nav-button{display:flex;align-items:center;gap:11px;padding:13px 12px;width:100%;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--muted);text-align:left;font-size:13px;white-space:nowrap;transition:background .2s,color .2s}.nav-button:hover{background:var(--surface2);color:var(--text)}.nav-button.active{background:linear-gradient(90deg,#58e5d416,#58e5d406);border-color:#58e5d426;color:var(--cyan)}.nav-icon{font-size:20px;width:20px;line-height:1}.nav-index{font:10px ui-monospace,monospace;margin-left:auto;color:var(--faint)}.sidebar-footer{margin-top:auto;padding:24px 9px 0}.engine-emblem{font:9px ui-monospace,monospace;letter-spacing:1px;color:var(--cyan);display:flex;align-items:center;gap:8px}.engine-emblem span{width:5px;height:5px;background:var(--cyan);box-shadow:0 0 10px #58e5d466}.sidebar-footer p{font-family:var(--display);font-size:18px;line-height:1.6;margin:16px 0 23px;color:var(--muted)}.sidebar-footer a{font-size:11px;color:var(--muted);display:block;border-top:1px solid var(--border);padding-top:18px}.sidebar-footer small{display:block;color:var(--faint);font:9px ui-monospace,monospace;margin-top:20px;letter-spacing:1.4px}.workspace{margin-left:225px}.topbar{height:76px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:12px;background:#0a1019}.breadcrumb{font:10px ui-monospace,monospace;letter-spacing:1.4px;display:flex;align-items:center;gap:12px;color:var(--muted)}.divider{color:#3b5063;margin:0 3px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px #58e5d444}.topbar-actions{display:flex;align-items:center;gap:18px}.connection{font-size:11px;color:var(--muted)}.connection.ok{color:var(--cyan)}.connection.error{color:var(--amber)}.button{border:1px solid #314457;background:#132030;color:var(--text);border-radius:7px;min-height:40px;padding:9px 14px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;transition:border-color .2s,background .2s}.button:hover{border-color:var(--cyan);background:#182c38}.button.small{min-height:33px;padding:5px 11px;font-size:11px}.button.small span{font-size:17px}.text-button{border:0;background:transparent;color:var(--cyan);font-size:12px;padding:8px 0;display:inline-flex;align-items:center;gap:14px;min-height:36px}.text-button:hover{text-decoration:underline;text-underline-offset:4px}main{max-width:1620px;margin:auto;padding:34px 38px 24px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.eyebrow{font:9px ui-monospace,monospace;letter-spacing:1.6px;color:var(--muted);line-height:1.7}.slash{color:var(--cyan);margin:0 5px}h1{font-weight:500;font-size:clamp(26px,2.2vw,36px);letter-spacing:-1.3px;line-height:1.3;margin-top:8px}h1 span{color:var(--cyan)}.heading-note{margin-top:8px;font-size:12px;color:var(--muted)}.seo-summary{display:flex;gap:14px;align-items:flex-start;margin:-6px 0 22px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:#0b1420;color:var(--muted);font-size:11px;line-height:1.65}.seo-summary strong{flex:0 0 auto;color:var(--cyan);font:10px ui-monospace,monospace;letter-spacing:.7px}.seo-summary span{max-width:980px}.match-control{min-width:200px;max-width:300px}.match-control label{display:block;font:9px ui-monospace,monospace;letter-spacing:1.3px;color:var(--faint);margin-bottom:8px}select,input[type=search]{width:100%;border:1px solid #2a3d50;background:#0e1824;color:var(--text);border-radius:6px;padding:11px 12px;font-size:12px;min-height:42px}select{padding-right:27px}.notice{padding:18px 20px;background:#132331;border:1px solid #2a4559;border-radius:8px;margin-bottom:20px;color:var(--muted)}.notice.error{border-color:#795b31;color:var(--amber)}.notice a{text-decoration:underline}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);border-radius:10px;background:#0c1521;margin-bottom:22px}.stat{padding:18px 22px;border-right:1px solid var(--border);min-width:0}.stat:last-child{border-right:0}.stat-label{font:9px ui-monospace,monospace;letter-spacing:1px;color:var(--muted);display:block}.stat strong{display:block;font:500 29px var(--display);letter-spacing:-.8px;margin:8px 0 4px;font-variant-numeric:tabular-nums}.stat strong.date-value{font-size:25px;line-height:36px}.stat-foot{font-size:10px;color:var(--faint)}.tiny-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:5px;vertical-align:middle}.cyan{background:var(--cyan)}.panel{position:relative;border:1px solid var(--border);background:linear-gradient(140deg,#101b28,#0d1520);border-radius:11px;padding:23px;margin-bottom:20px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}.panel h2{font-size:18px;font-weight:500;letter-spacing:-.4px;margin-top:4px}.tag{display:inline-flex;align-items:center;border:1px solid #a798ff42;border-radius:5px;background:#b5a1ff09;color:var(--violet);padding:6px 9px;font:9px ui-monospace,monospace;letter-spacing:.4px;white-space:nowrap}.tag.subtle{color:var(--muted);border-color:var(--border);background:#101a27}.tag.amber{color:var(--amber);border-color:#f4c77d30;background:#f4c77d07}.hero{background:radial-gradient(ellipse at 48% 60%,#2c37452b,transparent 60%),linear-gradient(120deg,#0e2028 0%,#0c1623 48%,#1b19302b 100%);padding:24px 28px 0;overflow:hidden}.hero:before{content:'';position:absolute;top:0;left:0;width:55%;height:1px;background:linear-gradient(90deg,var(--cyan),transparent)}.hero:after{content:'';position:absolute;right:0;bottom:0;width:40%;height:1px;background:linear-gradient(90deg,transparent,var(--violet))}.hero .panel-heading{margin-bottom:9px}.hero h2{font-size:22px}.match-hero{display:grid;grid-template-columns:minmax(0,1fr) 224px minmax(0,1fr);gap:18px;align-items:center;padding:21px 8px 30px}.candidate{min-width:0}.candidate-label{display:flex;align-items:center;gap:11px}.candidate-monogram{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;background:#58e5d413;color:var(--cyan);border:1px solid #58e5d42c;font:500 13px var(--display)}.candidate-b .candidate-monogram{color:var(--violet);background:#b5a1ff13;border-color:#b5a1ff2c}.candidate-label h3{font-size:18px;font-weight:500;line-height:1.3;letter-spacing:-.4px}.candidate-label .muted{font-size:10px}.probability{font:500 clamp(44px,5vw,78px) var(--display);font-variant-numeric:tabular-nums;letter-spacing:-3px;line-height:1.2;margin-top:16px;color:var(--cyan)}.candidate-b .probability{color:var(--violet)}.probability .percent-sign{font-size:.44em;letter-spacing:0;margin-left:4px}.probability-label{font-size:10px;color:var(--muted);margin-top:4px}.candidate-bottom{border-top:1px solid #38526844;margin-top:19px;padding-top:13px;display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--muted)}.candidate-bottom span:first-child{color:var(--text)}.candidate-b{text-align:right}.candidate-b .candidate-label{justify-content:flex-end}.candidate-b .candidate-monogram{order:2}.orbit{position:relative;width:224px;height:224px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0,transparent 34px,#3853691b 35px,transparent 36px);display:grid;place-items:center}.donut-chart{position:absolute;inset:0}.donut-chart svg{width:100%;height:100%;overflow:visible}.donut-chart circle{transition:stroke-dasharray .6s ease,stroke-dashoffset .6s ease}.orbit-center{position:relative;display:flex;flex-direction:column;text-align:center;pointer-events:none}.orbit-kicker{font:8px ui-monospace,monospace;letter-spacing:2px;color:var(--muted)}.orbit-center strong{font:500 37px var(--display);letter-spacing:-2px;margin-top:5px}.orbit-center>span:not(.orbit-kicker){font-size:10px;color:var(--muted)}.orbit-center .orbit-cross{margin-top:14px!important;color:var(--cyan)!important;font-size:19px!important;line-height:12px}.hero-bottom{border-top:1px solid #33495c55;padding:14px 0;display:flex;justify-content:space-between;gap:14px;font-size:9px;color:var(--muted)}.scope-note{font-size:10px;color:var(--muted);margin:-7px 4px 24px;line-height:1.7}.charts-grid{display:grid;grid-template-columns:1.12fr 1fr;gap:20px}.chart{width:100%;min-width:0}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart text{font-family:var(--font);fill:var(--muted);font-size:11px}.chart .axis-line{stroke:#273a4b;stroke-width:1}.chart .grid-line{stroke:#26384a;stroke-width:1;stroke-dasharray:3 5}.chart .tick-label{fill:var(--faint);font-size:10px}.chart .chart-name{fill:var(--text);font-size:11px}.chart .point-a{fill:var(--cyan)}.chart .point-b{fill:var(--violet)}.chart .axis-title{fill:var(--muted);font-size:10px}.chart .hit{fill:transparent;cursor:pointer}.chart .hit:focus{outline:none;stroke:var(--cyan);stroke-width:1}.chart .range-fill{fill:#58e5d423}.chart .range-line{stroke:var(--cyan);stroke-width:2}.chart .selected-row{fill:#58e5d40a}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin:-4px 0 10px}.chart-legend span{display:flex;gap:7px;align-items:center}.chart-legend i{display:block;width:7px;height:7px;border-radius:50%;background:var(--cyan)}.chart-legend span:nth-child(2) i{background:var(--violet)}.chart-note{font-size:11px;color:var(--muted);line-height:1.7;margin-top:13px}.interval-chart{padding-top:22px}.interval-explanation{display:flex;align-items:flex-start;gap:12px;border:1px solid #34475855;border-radius:7px;padding:14px;margin-top:16px;margin-bottom:12px;font-size:11px;color:var(--muted);line-height:1.7}.mini-cross{color:var(--amber);font:20px var(--display)}.controls{display:flex;gap:16px;margin-bottom:14px;align-items:flex-end}.controls label{display:block;font-size:11px;color:var(--muted);min-width:0}.controls .search-label{flex:1}.controls select,.controls input{display:block;margin-top:7px}.controls>label:last-child{width:180px}.table-scroll{overflow:auto;max-width:100%;margin-top:20px}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:left;font:9px ui-monospace,monospace;letter-spacing:.5px;color:var(--muted);padding:12px 10px;border-bottom:1px solid #3a5063}td{border-bottom:1px solid #26384977;padding:13px 10px;color:var(--muted)}td:first-child{color:var(--text)}td a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}.table-button{background:none;border:0;color:inherit;padding:0;text-align:left;font:inherit}.table-button:hover{color:var(--cyan)}tr.selected{background:#58e5d409}.poll-detail{background:#0b1723;border-left:2px solid var(--cyan);border-radius:0 5px 5px 0;padding:15px 17px;font-size:12px;color:var(--muted);line-height:1.8;margin-top:17px}.poll-detail strong{color:var(--text)}.poll-detail a{color:var(--cyan);text-decoration:underline}.poll-detail small{display:block;margin-top:6px;font-size:10px;overflow-wrap:anywhere}.range-label{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;margin-top:24px}.range-label output{color:var(--cyan);font-family:ui-monospace,monospace}input[type=range]{width:100%;accent-color:var(--cyan);margin:16px 0 18px;min-height:24px}.detail-line{font-size:12px;color:var(--text);padding-top:17px;border-top:1px solid var(--border);margin-top:15px;font-variant-numeric:tabular-nums}.facts{display:grid;gap:20px}.fact{display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid #24394b77;padding-bottom:15px;font-size:12px;color:var(--muted)}.fact strong{color:var(--text);font-family:var(--display);font-size:20px;font-weight:500;text-align:right}.method-callout{margin-top:24px;padding:18px;background:#f4c77d06;border:1px solid #f4c77d24;border-radius:8px}.method-callout p{font-size:12px;color:var(--muted);line-height:1.8;margin-top:13px}.limitations{padding:0;list-style:none;display:grid;gap:14px;font-size:12px;color:var(--muted)}.limitations li{padding-left:17px;position:relative}.limitations li:before{content:'+';position:absolute;left:0;color:var(--amber)}.pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:25px 0;gap:22px}.pipeline>div{border-top:1px solid #3c586c;padding-top:17px}.pipeline span{font:12px ui-monospace,monospace;color:var(--cyan)}.pipeline h3{margin:12px 0 7px;font-size:17px;font-weight:500}.pipeline p{font-size:12px;color:var(--muted);line-height:1.7}.manifest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:7px;overflow:hidden}.manifest>div{background:#0e1926;padding:16px;min-width:0}.manifest dt{font:9px ui-monospace,monospace;color:var(--muted);letter-spacing:1px;margin-bottom:9px}.manifest dd{font:11px ui-monospace,monospace;margin:0;overflow-wrap:anywhere;color:var(--text)}.footer{display:flex;gap:20px;justify-content:space-between;align-items:center;border-top:1px solid var(--border);margin-top:10px;padding-top:21px;color:var(--faint);font:9px ui-monospace,monospace;letter-spacing:.4px;flex-wrap:wrap}.footer-copyright{flex-basis:100%;padding-top:10px;border-top:1px solid #162534;color:var(--muted);overflow-wrap:anywhere}.footer-mark{font-size:19px;color:var(--cyan);vertical-align:middle;margin-right:6px}.footer a{color:var(--muted)}.chart-tooltip{position:fixed;z-index:50;pointer-events:none;background:#152535;border:1px solid #3e566b;color:var(--text);padding:10px 13px;border-radius:6px;box-shadow:0 12px 30px #0006;font-size:11px;max-width:260px;white-space:pre-line;line-height:1.7}.empty-chart{padding:50px 12px;text-align:center;color:var(--muted);font-size:12px}.view{animation:panel-in .25s ease}@keyframes panel-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.busy span{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){main{padding-top:42px}.match-hero{padding:30px 18px 38px}.orbit{width:244px;height:244px}.match-hero{grid-template-columns:1fr 244px 1fr}.probability{font-size:84px}}
@media(max-width:1200px){.sidebar{width:192px;padding:30px 14px}.workspace{margin-left:192px}.brand{font-size:24px}.brand small{font-size:7px}.brand-mark{width:36px;height:40px}.sidebar-label{font-size:8px;letter-spacing:1px}main{padding:27px 25px}.topbar{padding:0 25px}.page-heading{align-items:flex-start}.heading-note{max-width:380px}.match-control{min-width:175px;max-width:215px}.stat{padding:17px}.stat strong{font-size:26px}.stat-label{font-size:8px}.match-hero{grid-template-columns:1fr 180px 1fr;gap:10px}.orbit{width:180px;height:180px}.candidate-label h3{font-size:16px}.candidate-monogram{width:33px;height:33px}.candidate-label{gap:8px}.probability{font-size:57px}.hero{padding:22px 22px 0}.charts-grid{gap:16px;grid-template-columns:1fr 1fr}.panel{padding:20px}.hero-bottom{font-size:8px}.chart-note{font-size:10px}.orbit-center strong{font-size:30px}}
@media(max-width:980px){.sidebar{width:74px;padding:25px 12px}.brand>span:last-child,.sidebar-label,.sidebar-footer{display:none}.brand-mark{width:43px;height:43px}.navigation{margin-top:35px}.nav-button{justify-content:center;padding:13px 0}.nav-button>span:not(.nav-icon){display:none}.nav-icon{font-size:24px}.workspace{margin-left:74px}.page-heading{gap:18px}.stat strong{font-size:25px}.stat strong.date-value{font-size:21px}.stat-foot{font-size:9px}.charts-grid{grid-template-columns:1fr}.hero-bottom{font-size:9px}.candidate-label h3{font-size:18px}.probability{font-size:64px}.match-hero{grid-template-columns:1fr 200px 1fr}.orbit{width:200px;height:200px}.panel h2{font-size:20px}.chart text{font-size:12px}.sidebar .nav-button{min-height:47px}.nav-button{position:relative}.pipeline{gap:15px}}
@media(max-width:720px){.sidebar{position:static;width:auto;height:auto;padding:16px 19px 0;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:25px}.brand>span:last-child{display:block}.brand small{font-size:7px}.brand-mark{width:35px;height:38px;font-size:33px}.navigation{margin:18px -5px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.nav-button{padding:12px 5px;border-radius:6px 6px 0 0;min-height:44px;gap:6px;flex-direction:column;font-size:10px}.nav-button>span:not(.nav-icon){display:block}.nav-button .nav-index{display:none!important}.nav-icon{font-size:18px}.sidebar .nav-button{min-height:55px}.workspace{margin-left:0}.topbar{height:57px;padding:0 19px}.breadcrumb{font-size:8px;letter-spacing:.7px;gap:6px}.desktop-only{display:none}.topbar-actions{gap:9px}.connection{font-size:9px}.button.small{font-size:10px;padding:5px 8px}.page-heading{display:block;margin-bottom:20px}main{padding:24px 17px 22px}.eyebrow{font-size:8px;letter-spacing:1.1px}h1{font-size:28px;letter-spacing:-1px;max-width:420px}.heading-note{font-size:11px;margin-top:9px}.match-control{max-width:none;margin-top:21px}.match-control label{font-size:8px}select,input[type=search]{font-size:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.stat{padding:16px}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}.stat strong{font-size:28px}.stat-label{font-size:8px;letter-spacing:.8px}.stat strong.date-value{font-size:24px}.stat-foot{font-size:9px}.hero{padding:20px 17px 0}.hero .panel-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.hero .eyebrow{font-size:7px;letter-spacing:.8px}.hero h2{font-size:21px}.tag{font-size:8px;padding:5px 7px}.match-hero{grid-template-columns:1fr 1fr;gap:22px 15px;padding:23px 0 25px}.orbit{grid-row:2;grid-column:1/-1;justify-self:center;width:192px;height:192px;margin-top:-6px}.candidate-b{grid-column:2;grid-row:1}.candidate-label{gap:7px;min-height:42px}.candidate-label h3{font-size:15px}.candidate-monogram{display:none}.candidate-label .muted{font-size:9px}.probability{font-size:clamp(45px,10vw,65px);letter-spacing:-2px;margin-top:10px}.probability-label{font-size:9px;line-height:1.7}.candidate-bottom{font-size:9px;padding-top:12px;gap:7px}.hero-bottom{display:block;font-size:8px;padding:12px 0;line-height:1.8}.hero-bottom .mono{display:block;margin-top:4px}.scope-note{font-size:10px;margin-bottom:20px}.panel{padding:19px 16px;margin-bottom:16px}.hero{padding-bottom:0}.panel-heading{gap:10px;margin-bottom:18px}.panel h2{font-size:18px}.panel-heading>.button{font-size:10px;padding:8px}.charts-grid{gap:0}.chart-note{font-size:10px}.chart-legend{font-size:10px;gap:12px}.controls{gap:10px;flex-wrap:wrap}.controls .search-label{flex-basis:100%}.controls>label:last-child{width:100%}.poll-detail{font-size:11px;padding:12px}.pipeline{grid-template-columns:1fr 1fr;gap:22px 18px}.pipeline p{font-size:11px}.manifest{grid-template-columns:1fr}.view .panel-heading{flex-wrap:wrap}.footer{font-size:8px;gap:14px}.footer>span:nth-child(2){flex-basis:100%;order:3}.range-label{font-size:10px}.sidebar .nav-button.active{border-bottom-color:var(--cyan)}.method-callout{padding:14px}.method-callout p{font-size:11px}.facts{gap:15px}.chart-tooltip{max-width:220px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.controls,.match-control,button,.footer a{display:none!important}.workspace{margin:0}body{background:white;color:black}.panel,.stats{break-inside:avoid}.chart text{fill:black}}

.comparison-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:20px}.comparison-stage{border:1px solid var(--border,#263445);padding:18px;border-radius:12px}.comparison-stage h3{font-size:15px;line-height:1.5;min-height:45px}.comparison-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin-top:15px}.comparison-track{height:5px;background:#243344;border-radius:4px;margin-top:8px;overflow:hidden}.comparison-track span{height:100%;display:block}.comparison-stage p{font-size:12px;line-height:1.6;margin:18px 0 0}@media(max-width:800px){.comparison-stages{grid-template-columns:1fr}.comparison-stage h3{min-height:0}}

#comparison-provenance{overflow-wrap:anywhere}

/* Persisted artifact hashes must remain readable on narrow viewports. */
.archive-identity { overflow-wrap: anywhere; word-break: break-word; }

/* ========================================================================
   Editorial 2026: one civic-data reading system for Simple and Alpha Pro.
   Retained V1 foundations. V2 presentation overrides follow this layer.
   The official tally is deliberately outside every mode/publication gate.
   ======================================================================== */
:root {
  color-scheme: light;
  --bg: #f5f3ee;
  --surface: #fffefa;
  --surface2: #efeee8;
  --border: #d8dbd7;
  --text: #192f40;
  --muted: #596773;
  --faint: #626f78;
  --cyan: #187b80;
  --violet: #7763a6;
  --amber: #89611e;
  --red: #a34048;
  --font: 'DM Sans', system-ui, sans-serif;
  --display: 'Space Grotesk', system-ui, sans-serif;
  --editorial-serif: Georgia, 'Times New Roman', serif;
  --page-width: 1184px;
  --rule: #b7c3c6;
  --teal-wash: #eaf3f0;
  --violet-wash: #f0edf6;
  --amber-wash: #faf3e5;
  --header-height: 80px;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body, body[data-mode=simple] { background: var(--bg); color: var(--text); font-size: 15px; line-height: 1.6; }
body { text-rendering: optimizeLegibility; }
body > .ambient-grid { display: none; }
h1, h2, h3, h4, h5 { color: var(--text); }
button, a, select, input, summary { -webkit-tap-highlight-color: transparent; }
button, select, input[type=search], input[type=range], .button, .button.small, .text-button, .table-button { min-height: 44px; }
button, input, select { font: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid #345fbb;
  outline-offset: 4px;
  border-radius: 3px;
}
button:disabled, input:disabled, select:disabled { opacity: .58; }
a:hover { text-decoration: underline; text-underline-offset: 4px; }
.skip { z-index: 110; top: -100px; background: var(--text); color: white; border-radius: 5px; }
.skip:focus { top: 12px; }
summary { min-height: 44px; padding: 10px 0; cursor: pointer; color: var(--text); }
summary::marker { color: var(--faint); }
details[open] > summary { margin-bottom: 8px; }
.section-heading, .tally-heading, .easy-card-top, .panel-heading, .controls { min-width: 0; }
.archive-identity, .scope-note, .easy-source, .hero-bottom, .manifest dd { overflow-wrap: anywhere; }

/* The small masthead stays useful without taking over the screen. */
.modebar {
  position: sticky;
  top: 0;
  z-index: 80;
  min-height: var(--header-height);
  padding: 14px max(28px, calc((100vw - var(--page-width)) / 2));
  gap: 22px;
  background: #fffefa;
  border-bottom: 1px solid var(--border);
  color: var(--text);
}
.easy-brand { min-height: 44px; gap: 10px; color: var(--text); font-size: 27px; letter-spacing: -1.2px; line-height: 1.1; flex-shrink: 0; }
.easy-brand:hover { text-decoration: none; }
.easy-brand > span:first-child { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--text); color: var(--surface); font: 30px/1 var(--editorial-serif); padding-bottom: 3px; }
.easy-brand .brand-wordmark { display: inline; }
.easy-brand .brand-domain { color: var(--faint); margin-left: 0; font-weight: 400; }
.brand-caption { color: var(--muted); font-size: 12px; max-width: 150px; margin-right: auto; line-height: 1.5; }
.mode-switch { padding: 3px; border: 1px solid var(--border); background: var(--bg); border-radius: 7px; gap: 2px; flex-shrink: 0; }
.mode-switch button { border-radius: 4px; padding: 9px 17px; min-height: 44px; color: var(--muted); font-size: 13px; font-weight: 600; white-space: nowrap; }
.mode-switch button[aria-pressed=true] { background: var(--text); color: #fff; box-shadow: none; }
.mode-switch button:hover:not([aria-pressed=true]) { background: #e9ece8; color: var(--text); }
.install-button { padding: 10px 14px; min-height: 44px; border: 1px solid #cbd5d4; border-radius: 5px; background: transparent; color: var(--text); font-size: 12px; font-weight: 600; white-space: nowrap; }
.install-button:hover { background: var(--surface2); border-color: #84999e; }
.install-button > span { margin-right: 5px; }
.question-nav { display: flex; justify-content: center; gap: 24px; max-width: var(--page-width); padding: 5px 24px; margin: 0 auto; border-bottom: 1px solid var(--border); }
.question-nav a { display: flex; align-items: center; gap: 9px; min-height: 44px; color: var(--text); font-size: 12px; }
.question-nav a > span { color: var(--faint); font: 10px ui-monospace, monospace; }
body[data-mode=pro] .question-nav { display: none; }
.offline-banner { position: relative; top: auto; z-index: 3; background: var(--amber-wash); color: #715018; border-bottom: 1px solid #e5d3b0; font-size: 13px; }

/* 01. One canonical official scoreboard, visible before all model content. */
body > .totalization-strip {
  position: relative;
  width: calc(100% - 64px);
  max-width: var(--page-width);
  margin: 25px auto 0;
  padding: 23px 30px 13px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-top: 3px solid var(--text);
  border-radius: 5px;
  z-index: 1;
}
.tally-heading { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 28px; align-items: center; }
.tally-kicker { display: block; color: var(--muted); font: 600 10px/1.5 var(--font); letter-spacing: .13em; }
.tally-heading h2 { font: 500 clamp(24px, 2.5vw, 31px)/1.25 var(--display); letter-spacing: -.9px; margin: 6px 0 3px; }
.tally-caption { color: var(--muted); font-size: 12px; line-height: 1.5; }
.tally-round { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 12px; color: var(--muted); }
.tally-round select { width: 116px; min-height: 44px; padding: 8px 12px; border: 1px solid #c2cfcd; border-radius: 4px; background: var(--surface); color: var(--text); font-size: 14px; }
.tally-progress { display: flex; flex-direction: column; gap: 2px; text-align: right; color: var(--text); }
.tally-progress strong { font: 500 30px/1.1 var(--display); letter-spacing: -1.2px; font-variant-numeric: tabular-nums; }
.tally-progress span { color: var(--muted); font-size: 11px; line-height: 1.5; }
.tally-leaders { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 24px; margin: 22px 0 16px; }
.tally-candidate { display: block; border-left: 3px solid var(--cyan); padding: 3px 0 3px 15px; }
.tally-candidate-values { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 12px; }
.tally-candidate-values > span { color: var(--text); font-size: 15px; font-weight: 500; line-height: 1.35; overflow-wrap: anywhere; }
.tally-candidate strong { color: var(--cyan); font: 500 clamp(25px, 3vw, 38px)/1.2 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -1.3px; white-space: nowrap; }
.tally-votes { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; font-variant-numeric: tabular-nums; }
.tally-vote-track { width: 100%; height: 6px; background: #e7eae5; margin-top: 10px; overflow: hidden; border-radius: 1px; }
.tally-vote-track > span { display: block; height: 100%; background: var(--cyan); }
.tally-candidate:nth-child(2) .tally-vote-track > span { background: var(--violet); }
.tally-empty { grid-column: 1/-1; color: var(--muted); font-size: 13px; line-height: 1.7; }
.totalization-strip[data-stale=true] .tally-meta > span { color: #805b23; }
.tally-candidate:nth-child(2) { border-color: var(--violet); }
.tally-candidate:nth-child(2) strong { color: var(--violet); }
.tally-others { grid-column: 1/-1; color: var(--muted); font-size: 11px; }
.tally-track { background: #e8ebe6; height: 4px; border-radius: 0; }
.tally-track > span { background: var(--text); border-radius: 0; }
.tally-meta { display: flex; justify-content: space-between; gap: 10px 24px; align-items: center; margin-top: 10px; font-size: 11px; color: var(--muted); line-height: 1.6; }
.tally-meta > span { min-width: 0; }
.tally-meta a { display: inline-flex; align-items: center; min-height: 44px; gap: 6px; white-space: nowrap; color: var(--text); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.tally-cadence { color: var(--muted); font-size: 10px; line-height: 1.6; margin: 0 0 3px; }
.tally-details { margin-top: 0; font-size: 12px; color: var(--muted); line-height: 1.7; }
.tally-details summary { min-height: 44px; color: var(--text); font-size: 12px; }
.tally-details p { max-width: 85ch; margin: 10px 0; }
.tally-details a { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--cyan); text-decoration: underline; text-underline-offset: 4px; }
.tally-details td, .tally-details th { color: var(--text); border-color: var(--border); padding: 12px; }
.tally-details th { background: var(--surface2); }
.tally-benchmark { color: var(--muted); font-size: 12px; }
#tally-all { overflow: auto; max-width: 100%; }

/* The simple view reads like a short, clearly sourced election briefing. */
.simple-main { max-width: calc(var(--page-width) + 64px); margin: 0 auto; padding: 36px 32px 18px; }
.easy-intro { display: flex; align-items: flex-start; gap: 32px; justify-content: space-between; margin-bottom: 34px; padding: 0; }
.easy-intro h1 { margin: 7px 0 9px; font: 400 clamp(28px,3vw,39px)/1.12 var(--editorial-serif); color: var(--text); letter-spacing: -.9px; }
.easy-intro > div:first-child > p:last-child { max-width: 56ch; font-size: 14px; line-height: 1.7; color: var(--muted); }
.easy-kicker, .eyebrow { font-family: var(--font); font-size: 10px; font-weight: 600; letter-spacing: .13em; color: var(--muted); }
.easy-kicker { margin: 0 0 6px; }
.easy-refresh { margin: 0; gap: 8px; display: flex; flex-direction: column; align-items: flex-end; text-align: right; flex-shrink: 0; max-width: 285px; }
.easy-refresh p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.easy-refresh .install-button { margin-top: 2px; }
.editorial-section { margin-bottom: 40px; }
.section-heading { display: flex; gap: 17px; align-items: center; margin: 0 0 20px; padding-top: 20px; border-top: 1px solid var(--rule); }
.section-heading h2 { font: 500 clamp(25px,2.7vw,32px)/1.2 var(--display); letter-spacing: -1px; margin: 0; }
.section-number { align-self: flex-start; display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #bbc7c9; border-radius: 50%; flex-shrink: 0; color: var(--muted); font: 12px ui-monospace, monospace; margin-top: 5px; }
.section-aside { margin-left: auto; font-size: 12px; color: var(--muted); text-align: right; }
.easy-card { background: var(--surface); border: 1px solid var(--border); border-radius: 5px; padding: 28px 30px; margin-bottom: 18px; box-shadow: none; min-width: 0; }
.easy-card h2, .easy-card h3 { color: var(--text); font: 500 23px/1.3 var(--display); letter-spacing: -.6px; margin: 9px 0; }
.easy-card p { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 9px 0; }
.easy-card p strong { color: var(--text); }
.easy-card-top { display: flex; align-items: center; gap: 14px; justify-content: space-between; margin-bottom: 16px; }
.easy-label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; line-height: 1.6; font-weight: 600; letter-spacing: .09em; }
.label-dot { width: 6px; height: 6px; background: var(--text); border-radius: 50%; flex-shrink: 0; }
.easy-pill { background: var(--surface2); color: var(--muted); border-radius: 3px; border: 1px solid var(--border); padding: 4px 8px; font-size: 10px; font-weight: 500; white-space: nowrap; }
.easy-primary { border-top: 2px solid var(--text); }
.easy-primary h3 { font-size: clamp(22px,2.6vw,30px); line-height: 1.25; letter-spacing: -.9px; }
#simple-context { max-width: 86ch; }
.metric-caption { margin-top: 27px; color: var(--text); font-size: 12px; font-weight: 600; }
.easy-candidates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin: 15px 0 22px; }
.easy-candidate { display: flex; align-items: center; gap: 15px; min-width: 0; }
.easy-candidate:last-child { justify-content: flex-end; text-align: right; }
.easy-candidate > div:not(.easy-avatar) { min-width: 0; }
.easy-avatar { display: grid; place-items: center; width: 46px; height: 46px; background: var(--teal-wash); color: var(--cyan); border: 1px solid #bbd7d2; border-radius: 50%; font-size: 14px; flex-shrink: 0; }
.easy-candidate:last-child .easy-avatar { background: var(--violet-wash); color: var(--violet); border-color: #d5cbe3; }
.easy-candidate span { color: var(--text); font-size: 14px; font-weight: 500; line-height: 1.4; }
.easy-candidate strong { display: block; color: var(--cyan); font: 500 clamp(39px,5.5vw,62px)/1.15 var(--display); font-variant-numeric: tabular-nums; letter-spacing: -2.5px; margin-top: 5px; white-space: nowrap; }
.easy-candidate:last-child strong { color: var(--violet); }
.easy-vote-bar { height: 14px; border-radius: 2px; background: var(--surface2); gap: 3px; }
.easy-vote-bar > span { background: var(--cyan); }
.easy-vote-bar > span:last-child { background: var(--violet); }
.easy-card .easy-footnote, .easy-card .easy-source { color: var(--muted); font-size: 11px; line-height: 1.75; }
.easy-source { border-top: 1px solid var(--border); padding-top: 13px; margin-top: 20px !important; }
.easy-chance { display: grid; grid-template-columns: minmax(165px,.65fr) minmax(0,1.35fr); gap: 25px; align-items: center; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 20px 23px; margin: 24px 0 16px; }
.easy-chance > div > span { display: block; color: var(--muted); font-size: 12px; line-height: 1.5; }
.easy-chance strong { display: block; font: 500 37px/1.25 var(--display); color: var(--text); letter-spacing: -1.4px; margin: 4px 0; }
.easy-chance > div > span:last-child { color: var(--text); font-weight: 500; }
.easy-chance p { font-size: 13px; color: var(--muted); margin: 0; }
.easy-card .easy-caution { background: var(--amber-wash); border-left: 2px solid #ba904e; padding: 12px 15px; color: #78531c; font-size: 13px; line-height: 1.7; }
.easy-caution:empty { display: none; }
.regional-archive { border-top: 2px solid #9f9277; background: #fffdf8; }
.archive-pill { color: #775e32; background: #f7f0e2; border-color: #e6d8bd; }
.archive-intro { max-width: 78ch; }
#simple-regional-values, #pro-regional-values { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; padding: 20px 0; }
#simple-regional-values .comparison-row, #pro-regional-values .comparison-row { display: flex; flex-direction: column; gap: 6px; border-left: 3px solid var(--cyan); padding-left: 16px; margin: 0; }
#simple-regional-values .comparison-row:nth-child(2), #pro-regional-values .comparison-row:nth-child(2) { border-color: var(--violet); }
#simple-regional-values .comparison-row > span, #pro-regional-values .comparison-row > span { font-size: 14px; color: var(--text); }
#simple-regional-values strong, #pro-regional-values strong { font: 500 clamp(32px,4.4vw,49px)/1.2 var(--display); letter-spacing: -1.8px; color: var(--cyan); font-variant-numeric: tabular-nums; }
#simple-regional-values .comparison-row:nth-child(2) strong, #pro-regional-values .comparison-row:nth-child(2) strong { color: var(--violet); }
.analysis-disclosure, .easy-card .analysis-disclosure { border: 0; border-left: 2px solid #b4935d; background: var(--amber-wash); color: #785a2e; padding: 12px 16px; font-size: 13px; line-height: 1.75; }
.editorial-disclosure { border-top: 1px solid var(--border); margin-top: 19px; padding-top: 3px; font-size: 13px; color: var(--muted); }
.editorial-disclosure summary { font-weight: 500; color: var(--text); }
.editorial-disclosure .archive-identity { font-size: 11px; }
.scenario-section { padding-top: 14px; padding-bottom: 14px; }
.scenario-disclosure > summary { font: 500 18px/1.5 var(--display); display: flex; justify-content: space-between; align-items: center; gap: 18px; list-style: none; }
.scenario-disclosure > summary::-webkit-details-marker { display: none; }
.scenario-disclosure > summary::after { content: '+'; font: 24px/1 var(--display); color: var(--muted); }
.scenario-disclosure[open] > summary::after { content: '−'; }
.scenario-disclosure .easy-kicker { display: block; font: 600 10px/1.6 var(--font); letter-spacing: .1em; margin-bottom: 4px; }
.disclosure-body { padding-top: 8px; }
.easy-scenarios { gap: 16px; margin: 20px 0 12px; }
.easy-scenario { background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 19px; }
.easy-scenario h3 { color: var(--text); margin: 0 0 12px; font-size: 15px; letter-spacing: -.2px; }
.easy-scenario strong { color: var(--cyan); font: 500 30px/1.2 var(--display); letter-spacing: -.9px; margin-bottom: 6px; }
.easy-scenario span { color: var(--muted); font-size: 11px; line-height: 1.6; display: block; }

/* 03. A publication timeline, not an invented live trend. */
.changes-card { padding-top: 8px; }
.changes-list { margin: 0; padding: 0; list-style: none; counter-reset: changes; }
.changes-list > li { position: relative; padding: 21px 0 21px 34px; border-bottom: 1px solid var(--border); color: var(--muted); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.changes-list > li::before { content: ''; width: 8px; height: 8px; border: 2px solid #607b84; background: var(--surface); border-radius: 50%; position: absolute; left: 2px; top: 28px; }
.changes-list > li:not(:last-child)::after { content: ''; position: absolute; width: 1px; background: var(--border); left: 5px; top: 41px; bottom: -22px; }
.changes-list time, .changes-list .change-date, .changes-list small { display: block; color: var(--muted); font-size: 11px; margin-bottom: 4px; }
.changes-list strong, .changes-list h3 { color: var(--text); font-weight: 600; }
.changes-list h3 { font-size: 17px; margin: 0 0 5px; }
.changes-list p { margin: 4px 0; }
.change-content > strong { display: block; }
#simple-changes-note { margin-top: 17px; }
.easy-link, .easy-footer button { min-height: 44px; color: var(--text); font-size: 13px; font-weight: 600; padding: 10px 0; }
.easy-link:hover, .easy-footer button:hover { color: var(--cyan); text-decoration: underline; text-underline-offset: 4px; }
.easy-link > span { margin-left: 8px; }
.supporting-grid { gap: 20px; margin-top: 10px; }
.supporting-grid .easy-card { margin-bottom: 22px; }
.supporting-grid h2 { font-size: 23px; max-width: 26ch; }
.laboratory-card { background: #eceeea; }
.easy-first-row { color: var(--text); border-color: var(--border); gap: 16px; font-size: 13px; }
.easy-first-row strong { color: var(--text); font-size: 20px; }
.benchmark-values { margin-top: 18px; }
.benchmark-values:empty { display: none; }
.benchmark-values > div, .benchmark-values > article { padding: 12px 0; border-bottom: 1px solid var(--border); }
.benchmark-values strong { color: var(--text); font-variant-numeric: tabular-nums; }
.benchmark-values p, .benchmark-values span { font-size: 12px; line-height: 1.65; }
.benchmark-result > strong { display: block; font-size: 13px; font-weight: 600; }
.benchmark-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 11px 0; }
.benchmark-steps > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.benchmark-steps span { color: var(--muted); font-size: 11px; }
.benchmark-steps strong { color: var(--text); font: 500 clamp(16px,2vw,22px)/1.3 var(--display); white-space: nowrap; letter-spacing: -.5px; }
.benchmark-result > small { display: block; color: var(--muted); font-size: 11px; line-height: 1.65; }
.simple-reading-guide { margin: 8px 0 32px; border-top: 1px solid var(--rule); }
.easy-faq { padding: 7px 0; margin: 0; border: 0; border-bottom: 1px solid var(--border); background: transparent; border-radius: 0; }
.easy-faq summary { color: var(--text); font-size: 14px; font-weight: 500; }
.easy-faq .disclosure-body { padding: 0 0 14px 18px; max-width: 88ch; }
.easy-footer { display: flex; gap: 8px 24px; padding: 9px 0 26px; margin-top: 16px; border-top: 1px solid var(--border); color: var(--muted); font-size: 11px; }
.easy-footer > span { margin-left: 0; }
.easy-footer .footer-wordmark { color: var(--text); font-size: 19px; font-weight: 600; letter-spacing: -.8px; }
.easy-footer a { display: flex; align-items: center; min-height: 44px; color: var(--muted); margin-left: auto; }
.easy-footer button { color: var(--muted); font-size: 11px; }
#install-help { background: var(--surface); color: var(--text); border-radius: 8px; border: 1px solid var(--border); }
#install-help h2 { color: var(--text); font: 500 26px/1.25 var(--display); }
#install-help::backdrop { background: #132d4199; }
#install-help button { background: var(--text); color: white; border-radius: 4px; }

/* Pro retains every view and control in a light, compact analysis shell. */
body[data-mode=pro] .sidebar {
  position: static;
  inset: auto;
  width: calc(100% - 64px);
  max-width: var(--page-width);
  height: auto;
  padding: 16px 0 0;
  margin: 14px auto 0;
  border: 0;
  background: transparent;
  display: block;
}
.sidebar > .brand, .sidebar-label, .sidebar-footer { display: none; }
.navigation { display: flex; flex-direction: row; margin: 0; padding: 0 0 7px; gap: 7px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: #b7c4c5 transparent; }
.sidebar .nav-button { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 7px; min-height: 46px; padding: 10px 13px; width: auto; min-width: max-content; flex: 1; background: transparent; color: var(--muted); border: 1px solid transparent; border-radius: 4px; font-size: 12px; box-shadow: none; }
.sidebar .nav-button > span:not(.nav-icon) { display: inline; }
.sidebar .nav-button .nav-index { display: none !important; }
.nav-icon { color: inherit; font-size: 17px; width: 18px; }
.sidebar .nav-button:hover { background: #e9eeea; color: var(--text); }
.sidebar .nav-button.active { color: var(--surface); background: var(--text); border-color: var(--text); box-shadow: none; }
.workspace { margin: 0 auto; max-width: calc(var(--page-width) + 64px); }
.topbar { background: transparent; padding: 6px 32px; height: auto; min-height: 62px; border: 0; }
.breadcrumb { font: 10px/1.5 var(--font); color: var(--muted); letter-spacing: .08em; gap: 10px; }
.divider { color: #859698; }
.status-dot, .engine-emblem span { background: var(--cyan); box-shadow: none; }
.connection { font-size: 11px; }
.connection.ok { color: var(--cyan); }
.connection.error { color: var(--amber); }
.button, .button.small { background: var(--surface); color: var(--text); border: 1px solid #b9c8c9; border-radius: 4px; font-size: 12px; }
.button:hover { background: #eaf0ec; color: var(--text); border-color: #819b9f; box-shadow: none; }
.text-button { color: var(--cyan); font-size: 12px; }
#main { max-width: none; padding: 24px 32px 32px; }
.page-heading { align-items: center; margin-bottom: 26px; }
.page-heading h1 { font: 400 clamp(32px,3.4vw,45px)/1.15 var(--editorial-serif); letter-spacing: -1.2px; }
.page-heading h1 span { color: var(--text); }
.heading-note { max-width: 78ch; font-size: 13px; line-height: 1.75; margin-top: 13px; }
.heading-coordinate { color: var(--faint); font-size: 10px; }
.coordinate-mark { border-color: var(--border); background: transparent; color: var(--text); }
.context-strip { font: 11px/1.7 var(--font); border-color: var(--border); gap: 8px 20px; color: var(--muted); }
.context-title { color: var(--text); font-size: 10px; }
.seo-summary { background: var(--surface2); border-color: var(--border); color: var(--muted); font-size: 12px; }
.seo-summary strong { color: var(--text); }
.notice { background: #edf1ee; color: var(--muted); border: 1px solid #cad6d0; border-radius: 4px; font-size: 13px; }
.notice.error { background: var(--amber-wash); border-color: #d9c49f; color: var(--amber); }
.panel { padding: 27px 28px; margin-bottom: 22px; border: 1px solid var(--border); background: var(--surface); border-radius: 5px; box-shadow: none; }
.panel:focus-within { border-color: #7f9da2; }
.panel-heading { margin-bottom: 23px; }
.panel h2 { font-size: 24px; font-weight: 500; letter-spacing: -.7px; line-height: 1.3; }
.panel h3 { font-size: 18px; font-weight: 500; line-height: 1.5; }
.panel p { line-height: 1.75; }
.panel > p:not(.eyebrow):not(.chart-note) { font-size: 13px; }
.tag, .tag.subtle { background: var(--surface2); color: var(--muted); border-color: var(--border); border-radius: 3px; font: 10px/1.5 var(--font); white-space: normal; }
.tag.amber { background: var(--amber-wash); color: var(--amber); border-color: #e6d6b6; }
select, input[type=search], .match-control select { color: var(--text); background: var(--surface); border-color: #b8c8c9; border-radius: 4px; min-height: 44px; font-size: 14px; }
.match-control label { color: var(--muted); font: 10px/1.6 var(--font); letter-spacing: .08em; }
.hero { padding: 28px 30px 0; background: var(--surface); border-top: 2px solid var(--text); box-shadow: none; }
.hero::before, .hero::after, .orbit::before, .orbit::after, .orbit-center::before { content: none; display: none; }
.hero h2 { font-size: 27px; }
.hero-subheading { color: var(--muted); border-color: var(--border); font: 10px/1.6 var(--font); letter-spacing: .08em; }
.match-hero { grid-template-columns: minmax(0,1fr) 192px minmax(0,1fr); gap: 27px; padding: 31px 0 24px; }
.candidate-label h3 { font-size: 18px; }
.candidate-label .muted { font-size: 11px; }
.candidate-monogram { border-radius: 50%; background: var(--teal-wash); border-color: #b7d3cf; color: var(--cyan); }
.candidate-b .candidate-monogram { background: var(--violet-wash); border-color: #d3c8e2; color: var(--violet); }
.vote-share, .candidate-b .vote-share { font: 500 clamp(48px,5.8vw,76px)/1.1 var(--display); letter-spacing: -3.8px; text-shadow: none; }
.vote-share { color: var(--cyan); }
.candidate-b .vote-share { color: var(--violet); }
.vote-label { color: var(--muted); font-size: 11px; }
.candidate-bottom { color: var(--muted); border-color: var(--border); font-size: 11px; }
.chance-metric .probability { font-size: 26px; letter-spacing: -1px; }
.orbit { width: 192px; height: 192px; background: none; border: 0; box-shadow: none; }
.donut-chart svg { filter: none; }
.donut-chart circle[stroke="#233344"], .donut-chart circle[stroke="#263b4c"] { stroke: #e3e8e4; }
.orbit-center strong { font-size: 31px; line-height: 1.25; letter-spacing: -1px; }
.orbit-kicker { font-size: 8px; letter-spacing: .1em; }
.orbit-center > span:not(.orbit-kicker) { font-size: 10px; }
.orbit-center .orbit-cross { color: var(--muted) !important; font: 7px/1.5 var(--font) !important; letter-spacing: 0; margin-top: 8px !important; }
.vote-bar { background: var(--surface2); height: 11px; gap: 3px; border-radius: 2px; }
.vote-bar > span:first-child { background: var(--cyan); box-shadow: none; }
.vote-bar > span:last-child { background: var(--violet); }
.vote-bar::after { background: var(--text); height: 19px; }
.vote-scale, .vote-distribution p, .hero-bottom { font-size: 11px; }
.hero-bottom { border-color: var(--border); padding: 16px 0; }
.scope-note { color: var(--muted); font-size: 12px; line-height: 1.7; }
.stats { background: var(--surface); border-color: var(--border); border-radius: 4px; }
.stat { padding: 20px; }
.stat-label { color: var(--muted); font: 10px/1.6 var(--font); letter-spacing: .06em; }
.stat-foot { color: var(--muted); font-size: 11px; }
.stat strong { font-size: 31px; }
.charts-grid { gap: 22px; }
.chart text { fill: var(--muted); }
.chart .chart-name { fill: var(--text); }
.chart .grid-line, .chart .axis-line { stroke: #ccd6d5; }
.chart .range-fill { fill: #187b8022; }
.chart .range-line { stroke: var(--cyan); }
.chart .selected-row { fill: #187b800a; }
.chart-legend { font-size: 12px; color: var(--muted); gap: 16px; }
.chart-note { font-size: 12px; line-height: 1.75; }
.chart-tooltip { color: var(--text); background: var(--surface); border-color: var(--border); box-shadow: 0 5px 18px #192f401c; font-size: 12px; }
.interval-explanation, .poll-detail, .history-detail { color: var(--muted); background: var(--surface2); border-color: #c4d3ce; font-size: 12px; }
.poll-detail, .history-detail { border-left: 2px solid var(--cyan); }
.table-scroll { scrollbar-color: #9bb1b4 var(--surface2); }
table { color: var(--text); }
th { color: var(--muted); font: 600 11px/1.6 var(--font); letter-spacing: .02em; border-color: var(--rule); background: #f6f6f1; }
td { color: var(--muted); border-color: var(--border); font-size: 12px; }
tr.selected { background: var(--teal-wash); }
.table-button { min-height: 44px; }
.first-track, .comparison-track, .regional-track { background: #e7eae5; }
.first-track > span { background: var(--cyan); }
.first-row:nth-child(2) .first-track > span { background: var(--violet); }
.evidence-card, .shadow-card { background: var(--surface); border: 1px solid var(--border); border-radius: 4px; }
.evidence-card p, .shadow-card p { color: var(--muted); font-size: 13px; }
.shadow-state { background: var(--teal-wash); color: #236965; font-size: 11px; }
.shadow-state.waiting { background: var(--amber-wash); color: #785a2e; }
.shadow-results strong { color: var(--cyan); font-variant-numeric: tabular-nums; }
.shadow-experiment { border-color: var(--border); }
.shadow-experiment summary { color: var(--text); }
.shadow-experiment pre { color: var(--muted); }
.fact, .pipeline > div, .detail-line { border-color: var(--border); }
.fact strong { color: var(--text); }
.method-callout { background: var(--amber-wash); border-color: #e1d4b9; border-radius: 4px; }
.method-callout p { color: var(--muted); font-size: 13px; }
.manifest > div { background: var(--surface); }
.manifest dt { font: 600 10px/1.6 var(--font); letter-spacing: .04em; }
.manifest dd { color: var(--text); font-size: 12px; }
.limitations { font-size: 13px; line-height: 1.75; }
.history-controls label { font-size: 12px; }
.history-controls select { min-height: 44px; }
.history-deltas p { font-size: 12px; }
.history-records summary { color: var(--text); font-size: 13px; }
.election-card, .election-card.runoff-countdown { background: var(--surface); border-color: var(--border); border-top: 2px solid #607984; border-radius: 4px; padding: 20px 22px; }
.election-card.runoff-countdown { border-top-color: #8a7d9a; }
.election-card time { font-size: 23px; }
.election-card small, .countdown-number span { font-size: 11px; }
.countdown-number, .runoff-countdown .countdown-number { color: var(--text); }
.calendar-source { color: var(--muted); font-size: 11px; }
.post-election { border-color: var(--border); }
.post-election-chances strong { color: var(--cyan); }
.post-election-chances > div:last-child strong { color: var(--violet); }
.post-election td, .post-election th, .chance-scenario, #conservative-runoff { border-color: var(--border); }
.aggregate-runoff { background: var(--surface2); border-color: var(--border); border-radius: 4px; }
.classification-sources a { color: var(--cyan); min-height: 44px; display: inline-flex; align-items: center; }
.comparison-stage { border-radius: 4px; background: var(--surface); }
.reading-guide { border-color: var(--rule); gap: 36px; }
.reading-guide h2 { color: var(--text); font-family: var(--editorial-serif); font-size: 31px; }
.guide-questions details { border-color: var(--border); }
.guide-questions summary { color: var(--text); font-size: 13px; min-height: 44px; }
.guide-questions p { color: var(--muted); font-size: 13px; }
.footer { color: var(--muted); font: 11px/1.7 var(--font); }
.footer-copyright { font-size: 11px; border-color: var(--border); }

@media (max-width: 1080px) {
  .modebar { padding-inline: 25px; gap: 17px; }
  .brand-caption { max-width: 120px; font-size: 11px; }
  .sidebar .nav-button { padding-inline: 11px; font-size: 11px; }
  .easy-intro { gap: 22px; }
  .easy-refresh { max-width: 230px; }
  .match-hero { grid-template-columns: minmax(0,1fr) 160px minmax(0,1fr); gap: 20px; }
  .orbit { width: 160px; height: 160px; }
  .orbit-center strong { font-size: 25px; }
  .candidate-label h3 { font-size: 17px; }
  .vote-share, .candidate-b .vote-share { font-size: 60px; }
}
@media (max-width: 760px) {
  :root { --header-height: 72px; }
  .modebar { padding: 10px 20px; gap: 13px; min-height: 72px; }
  .easy-brand { font-size: 24px; }
  .easy-brand > span:first-child { width: 33px; height: 33px; font-size: 27px; }
  .brand-caption { display: none; }
  .mode-switch { margin-left: auto; }
  .mode-switch button { padding-inline: 11px; font-size: 12px; }
  #install-app { font-size: 11px; padding-inline: 10px; }
  .question-nav { gap: 25px; padding: 3px 20px; }
  .question-nav a { font-size: 11px; gap: 6px; }
  body > .totalization-strip { width: calc(100% - 40px); margin-top: 20px; padding: 20px 22px 10px; }
  .tally-heading { gap: 15px; grid-template-columns: minmax(0,1fr) auto; }
  .tally-heading-copy { grid-column: 1; }
  .tally-round { grid-column: 2; align-self: start; }
  .tally-round > select { width: 102px; }
  .tally-round { font-size: 0; gap: 0; }
  .tally-progress { grid-column: 1/-1; flex-direction: row; align-items: baseline; gap: 8px; margin: 0; text-align: left; }
  .tally-progress strong { font-size: 21px; letter-spacing: -.5px; }
  .tally-progress span { font-size: 11px; }
  .tally-heading h2 { font-size: 26px; }
  .tally-leaders { gap: 8px 17px; margin: 18px 0 12px; }
  .tally-candidate { padding-left: 11px; }
  .tally-candidate-values { grid-template-columns: 1fr; gap: 5px; }
  .tally-candidate-values > span { font-size: 13px; }
  .tally-candidate strong { font-size: 30px; }
  .tally-meta { align-items: flex-start; gap: 6px 15px; }
  .tally-meta > span { font-size: 10px; }
  .tally-meta a { font-size: 11px; min-height: 44px; margin-top: -8px; }
  .tally-details summary { font-size: 11px; }
  .simple-main { padding: 29px 20px 16px; }
  .easy-intro { margin-bottom: 28px; display: block; }
  .easy-intro h1 { font-size: 34px; }
  .easy-refresh { display: flex; flex-direction: row; justify-content: space-between; gap: 16px; max-width: none; align-items: center; text-align: left; margin-top: 20px; }
  .easy-refresh p { max-width: 55%; }
  .easy-refresh .install-button { margin: 0; }
  .section-heading { gap: 13px; margin-bottom: 17px; }
  .section-heading h2 { font-size: 27px; }
  .section-aside { display: none; }
  .easy-card { padding: 24px; }
  .easy-candidates { gap: 20px; }
  .easy-candidate { gap: 11px; }
  .easy-candidate strong { font-size: 45px; }
  .easy-avatar { width: 39px; height: 39px; font-size: 12px; }
  .easy-chance { padding: 19px; gap: 20px; }
  .easy-grid { grid-template-columns: 1fr; gap: 0; }
  .supporting-grid h2 { max-width: none; }
  .easy-footer a { margin-left: 0; }
  .easy-footer > span:nth-child(2) { margin-right: auto; }
  body[data-mode=pro] .sidebar { width: calc(100% - 40px); padding-top: 8px; margin-top: 16px; }
  .navigation { gap: 3px; }
  .sidebar .nav-button { font-size: 12px; min-height: 46px; padding: 10px 12px; flex: 0 0 auto; }
  .topbar { padding: 8px 20px; min-height: 60px; }
  .breadcrumb { gap: 6px; font-size: 9px; }
  .topbar-actions { gap: 8px; }
  #main { padding: 21px 20px 24px; }
  .page-heading h1 { font-size: 37px; }
  .panel { padding: 23px 22px; }
  .panel h2 { font-size: 22px; }
  .hero { padding: 23px 22px 0; }
  .hero .hero-heading { display: block; }
  .match-control { margin-top: 19px; width: 100%; max-width: none; }
  .match-hero { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px 20px; padding-top: 26px; }
  .candidate-b { grid-column: 2; grid-row: 1; }
  .candidate-monogram { display: none; }
  .candidate-label h3 { font-size: 17px; }
  .vote-share, .candidate-b .vote-share { font-size: clamp(43px,9vw,68px); letter-spacing: -2.5px; }
  .orbit { grid-column: 1/-1; grid-row: 2; justify-self: center; width: 172px; height: 172px; margin-top: 4px; }
  .orbit-center strong { font-size: 29px; }
  .chance-metric { flex-direction: column; align-items: flex-start; gap: 3px; }
  .candidate-b .chance-metric { align-items: flex-end; }
  .chance-metric .probability { font-size: 27px; }
  .charts-grid { grid-template-columns: 1fr; gap: 0; }
  .stat { padding: 17px; }
  .election-countdown { grid-template-columns: 1fr 1fr; gap: 14px; }
  .election-card, .election-card.runoff-countdown { padding: 17px; gap: 12px; flex-wrap: wrap; }
  .election-card time { font-size: 21px; }
  .election-card time > span { display: block; margin-left: 0; }
  .countdown-number { text-align: left; }
  .countdown-number strong { font-size: 36px; }
  .countdown-number.date-passed strong { font-size: 18px; }
  .reading-guide { grid-template-columns: 1fr; gap: 22px; }
  .history-controls { width: 100%; }
  .history-deltas p { width: 100%; margin: 0; }
  select, input[type=search], .match-control select { font-size: 16px; }
}
@media (max-width: 520px) {
  :root { --header-height: 115px; }
  .modebar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 12px; padding: 9px 16px 10px; }
  .easy-brand { font-size: 24px; gap: 8px; }
  .mode-switch { grid-row: 2; grid-column: 1/-1; width: 100%; margin: 0; padding: 2px; border-radius: 5px; }
  .mode-switch button { flex: 1; min-height: 40px; padding: 7px 10px; font-size: 12px; }
  .mode-switch button { min-height: 44px; }
  #install-app { grid-column: 2; grid-row: 1; min-height: 44px; font-size: 11px; padding-inline: 10px; }
  .question-nav { gap: 0; justify-content: space-between; padding-inline: 16px; }
  .question-nav a { min-height: 44px; font-size: 10px; gap: 5px; }
  .question-nav a > span { font-size: 9px; }
  body > .totalization-strip { width: calc(100% - 32px); margin-top: 16px; padding: 17px 17px 8px; }
  .tally-heading { gap: 12px 10px; }
  .tally-kicker { font-size: 9px; letter-spacing: .08em; }
  .tally-heading h2 { font-size: 23px; letter-spacing: -.75px; }
  .tally-caption { font-size: 10px; }
  .tally-round select { width: 96px; min-height: 44px; font-size: 16px; padding: 8px; }
  .tally-progress strong { font-size: 20px; }
  .tally-progress span { font-size: 10px; }
  .tally-leaders { gap: 9px 12px; margin-top: 16px; }
  .tally-candidate { padding-left: 10px; }
  .tally-candidate-values > span { font-size: 12px; min-height: 33px; display: flex; align-items: end; }
  .tally-votes { font-size: 10px; margin-top: 4px; }
  .tally-vote-track { height: 5px; margin-top: 8px; }
  .tally-candidate strong { font-size: 29px; letter-spacing: -1.1px; }
  .tally-others { font-size: 10px; }
  .tally-meta { flex-wrap: wrap; align-items: center; gap: 0; margin-top: 9px; }
  .tally-meta > span { flex-basis: 100%; font-size: 9px; }
  .tally-meta a { margin: 0; font-size: 11px; min-height: 44px; }
  .tally-details summary { padding-top: 8px; padding-bottom: 8px; font-size: 11px; }
  .simple-main { padding: 28px 16px 12px; }
  .easy-intro h1 { font-size: 31px; }
  .easy-intro > div:first-child > p:last-child { font-size: 13px; }
  .easy-refresh { gap: 12px; }
  .easy-refresh p { font-size: 10px; max-width: 54%; }
  .easy-refresh .install-button { padding: 9px 10px; font-size: 11px; }
  .easy-kicker { font-size: 9px; letter-spacing: .1em; }
  .section-heading { gap: 11px; padding-top: 19px; }
  .section-number { width: 30px; height: 30px; font-size: 10px; }
  .section-heading h2 { font-size: 25px; letter-spacing: -.8px; }
  .editorial-section { margin-bottom: 31px; }
  .easy-card { padding: 21px 19px; margin-bottom: 15px; border-radius: 4px; }
  .easy-card h2, .easy-card h3 { font-size: 22px; }
  .easy-primary h3 { font-size: 24px; }
  .easy-card p { font-size: 13px; line-height: 1.75; }
  .easy-card-top { align-items: flex-start; margin-bottom: 15px; gap: 8px; flex-wrap: wrap; }
  .easy-label { font-size: 9px; letter-spacing: .06em; }
  .easy-pill { font-size: 9px; padding: 3px 6px; }
  .metric-caption { margin-top: 23px; font-size: 11px; }
  .easy-candidates { gap: 15px; margin-top: 13px; margin-bottom: 18px; }
  .easy-avatar { display: none; }
  .easy-candidate span { font-size: 12px; min-height: 34px; display: flex; align-items: end; }
  .easy-candidate:last-child span { justify-content: flex-end; }
  .easy-candidate strong { font-size: clamp(33px,9vw,46px); letter-spacing: -1.7px; }
  .easy-vote-bar { height: 12px; }
  .easy-chance { grid-template-columns: 1fr; gap: 13px; padding: 17px; margin-top: 20px; }
  .easy-chance > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2px 12px; }
  .easy-chance strong { grid-column: 2; grid-row: 1/3; font-size: 34px; margin: 0; }
  .easy-chance > div > span { font-size: 11px; }
  .easy-chance > div > span:last-child { grid-column: 1; }
  .easy-chance p, .easy-card .easy-caution { font-size: 12px; }
  #simple-regional-values, #pro-regional-values { gap: 15px; padding: 19px 0; }
  #simple-regional-values .comparison-row, #pro-regional-values .comparison-row { padding-left: 11px; }
  #simple-regional-values .comparison-row > span, #pro-regional-values .comparison-row > span { font-size: 12px; min-height: 34px; display: flex; align-items: end; }
  #simple-regional-values strong, #pro-regional-values strong { font-size: clamp(29px,8.2vw,39px); letter-spacing: -1.3px; }
  .easy-card .analysis-disclosure { font-size: 12px; padding: 11px 13px; }
  .easy-card .easy-footnote, .easy-card .easy-source { font-size: 10px; }
  .editorial-disclosure summary { font-size: 12px; }
  .scenario-section { padding-top: 10px; padding-bottom: 10px; }
  .scenario-disclosure > summary { font-size: 17px; }
  .scenario-disclosure .easy-kicker { font-size: 9px; }
  .easy-scenarios { grid-template-columns: 1fr; gap: 10px; }
  .easy-scenario { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 6px 12px; align-items: center; padding: 16px; }
  .easy-scenario h3 { grid-row: 1/3; font-size: 14px; margin: 0; }
  .easy-scenario strong { font-size: 27px; margin: 0; }
  .easy-scenario span { font-size: 10px; }
  .changes-card { padding-top: 4px; }
  .changes-list > li { padding: 19px 0 19px 26px; font-size: 13px; }
  .changes-list > li::before { top: 26px; }
  .changes-list > li:not(:last-child)::after { top: 38px; bottom: -20px; }
  .changes-list h3 { font-size: 16px; }
  .changes-list p { font-size: 12px; }
  .benchmark-steps { gap: 9px; }
  .benchmark-steps strong { font-size: clamp(16px,5vw,20px); }
  .benchmark-steps span, .benchmark-result > small { font-size: 10px; }
  .easy-faq { padding: 7px 0; }
  .easy-faq summary { font-size: 13px; }
  .easy-footer { gap: 5px 17px; }
  .easy-footer > span:nth-child(2) { font-size: 10px; }
  .easy-footer a, .easy-footer button { font-size: 10px; }
  body[data-mode=pro] .sidebar { width: calc(100% - 32px); }
  .topbar { padding-inline: 16px; flex-wrap: wrap; gap: 0 8px; }
  .breadcrumb { font-size: 8px; }
  .connection { font-size: 10px; }
  .button.small { min-height: 44px; font-size: 11px; }
  #main { padding: 18px 16px 24px; }
  .page-heading h1 { font-size: 33px; }
  .heading-note { font-size: 12px; }
  .panel { padding: 21px 18px; }
  .panel h2 { font-size: 21px; }
  .hero { padding: 21px 18px 0; }
  .hero h2 { font-size: 24px; }
  .candidate-label h3 { font-size: 15px; }
  .candidate-label .muted { font-size: 10px; }
  .vote-share, .candidate-b .vote-share { font-size: clamp(39px,11vw,56px); letter-spacing: -2px; }
  .chance-metric > span { font-size: 10px; }
  .chance-metric .probability { font-size: 25px; }
  .vote-label, .candidate-bottom { font-size: 10px; }
  .hero-bottom { font-size: 10px; }
  .stat { padding: 16px 14px; }
  .stat-label { font-size: 9px; }
  .stat-foot { font-size: 10px; }
  .stat strong { font-size: 27px; }
  .election-countdown { grid-template-columns: 1fr; gap: 12px; }
  .election-card, .election-card.runoff-countdown { flex-wrap: nowrap; }
  .countdown-number { text-align: right; }
  .election-card time > span { display: inline; margin-left: 4px; }
  .reading-guide h2 { font-size: 28px; }
  .comparison-stage { padding: 17px; }
}
@media (max-width: 359px) {
  .tally-heading { grid-template-columns: 1fr; }
  .tally-heading-copy { grid-column: 1; }
  .tally-round { grid-row: 2; grid-column: 1; width: 96px; }
  .tally-progress { grid-row: 2; grid-column: 1; align-items: flex-end; justify-self: end; flex-direction: column; gap: 2px; }
  .tally-heading h2 { font-size: 24px; }
  .tally-candidate strong { font-size: 26px; }
  .question-nav a { font-size: 9px; gap: 4px; }
  .question-nav a > span { display: none; }
  .easy-card { padding-inline: 16px; }
  .easy-candidate strong { font-size: 33px; }
  .easy-refresh p { max-width: 48%; }
}
@media (prefers-reduced-motion: reduce) {
  html, *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  :root { --bg: white; --surface: white; --text: black; --muted: #333; }
  body { background: white; }
  .modebar, .question-nav, .easy-refresh, .sidebar, .topbar { display: none !important; }
  body > .totalization-strip { width: 100%; margin: 0; break-inside: avoid; }
  .simple-main, #main { padding: 20px 0; }
  .easy-card, .panel { box-shadow: none; break-inside: avoid; }
  .vote-share, .probability { text-shadow: none; }
}

/* ========================================================================
   Vibrant V2: a contemporary civic-data interface, independent of V1.
   Keep this layer last. Dark official results and light model cards have
   separate accessible palettes; presentation never changes publication state.
   ======================================================================== */
:root {
  --bg: #f4f6ff;
  --surface: #ffffff;
  --surface2: #f1f1ff;
  --border: #d8def0;
  --rule: #bbc6e0;
  --text: #14213f;
  --muted: #53617b;
  --faint: #53617b;
  --cyan: #00777c;
  --violet: #7044d9;
  --blue: #2457f5;
  --amber: #87520c;
  --red: #a52e47;
  --teal-wash: #e9f9f6;
  --violet-wash: #f1f1ff;
  --amber-wash: #fff4df;
  --official-bg: #101f46;
  --official-card: #192c55;
  --official-muted: #c3d0ee;
  --official-teal: #2ee4cd;
  --official-violet: #bea6ff;
  --page-width: 1240px;
  --header-height: 84px;
  --editorial-serif: 'Space Grotesk', system-ui, sans-serif;
}
body, body[data-mode=simple] { background: var(--bg); }
button, select, input[type=search] { min-width: 44px; }
h1, h2, h3, h4, h5 { font-family: var(--display); }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid var(--blue); outline-offset: 4px; border-radius: 6px;
}
.modebar { background: var(--surface); border-bottom: 1px solid var(--border); gap: 24px; }
.easy-brand { font-size: 30px; font-weight: 700; letter-spacing: -1.4px; }
.easy-brand > span:first-child { width: 44px; height: 44px; border-radius: 14px; background: var(--blue); color: #fff; font: 700 34px/1 var(--display); padding: 0 0 3px; }
.easy-brand .brand-domain { color: var(--blue); font-weight: 600; }
.brand-caption { max-width: 190px; font-size: 13px; }
.mode-switch { padding: 4px; gap: 3px; background: var(--bg); border-radius: 14px; }
.mode-switch button { border-radius: 10px; font-size: 13px; padding-inline: 18px; }
.mode-switch button[aria-pressed=true] { background: var(--blue); color: #fff; box-shadow: 0 3px 8px #2457f51a; }
.mode-switch button:hover:not([aria-pressed=true]) { background: #e4eaff; }
.install-button, .button, .button.small { border-color: #b6c3e0; border-radius: 12px; background: var(--surface); color: var(--text); }
.install-button:hover, .button:hover { background: #e9eeff; border-color: var(--blue); }
#install-app { color: var(--blue); background: #f0f3ff; border-color: #d2dcff; }
.question-nav { width: calc(100% - 64px); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 0; border: 0; margin: 24px auto 0; }
.question-nav a { min-width: 0; min-height: 84px; gap: 14px; padding: 15px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: 18px; text-decoration: none; }
.question-nav a:hover { border-color: var(--blue); background: #edf2ff; }
.question-nav a > .question-step { width: 36px; height: 36px; display: grid; place-items: center; flex-shrink: 0; border-radius: 11px; background: #eaf0ff; color: var(--blue); font: 700 13px/1 var(--display); }
.question-nav a:nth-child(2) > .question-step { background: var(--violet-wash); color: var(--violet); }
.question-nav a:nth-child(3) > .question-step { background: var(--teal-wash); color: var(--cyan); }
.question-nav a > .question-copy { display: block; min-width: 0; color: var(--text); font-family: var(--font); }
.question-copy strong { display: block; font-size: 14px; font-weight: 700; line-height: 1.35; }
.question-copy small { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; margin-top: 4px; }
.question-nav a > .question-arrow { margin-left: auto; font: 18px/1 var(--display); color: var(--blue); }

/* The shared TSE panel is the highest-contrast anchor in either mode. */
body > .totalization-strip { margin-top: 24px; padding: 30px 32px 17px; border: 1px solid var(--official-bg); border-radius: 26px; background: var(--official-bg); color: #fff; box-shadow: 0 12px 28px #14213f12; }
.tally-heading { gap: 32px; }
.tally-kicker { color: var(--official-teal); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.tally-heading h2 { color: #fff; font: 600 clamp(27px,3vw,38px)/1.17 var(--display); letter-spacing: -1.2px; margin: 8px 0 7px; }
.tally-caption, .tally-round, .tally-progress span, .tally-votes, .tally-empty, .tally-others, .tally-meta, .tally-cadence, .totalization-strip .tally-details, .tally-benchmark { color: var(--official-muted); }
.tally-caption { font-size: 13px; }
.tally-round { flex-direction: column; align-items: flex-start; gap: 7px; font-size: 12px; }
.tally-round select { width: 130px; background: var(--official-card); color: #fff; border-color: #7b8dab; border-radius: 11px; font-size: 14px; color-scheme: dark; }
.tally-progress { color: #fff; padding-left: 28px; border-left: 1px solid #435577; }
.tally-progress strong { font-weight: 600; font-size: 42px; letter-spacing: -1.5px; }
.tally-progress span { font-size: 12px; }
.tally-leaders { gap: 14px 20px; margin: 28px 0 20px; }
.tally-candidate { padding: 20px 23px 18px; border: 1px solid #435577; border-top: 4px solid var(--official-teal); background: var(--official-card); border-radius: 16px; }
.tally-candidate:nth-child(2) { border-color: #435577; border-top-color: var(--official-violet); }
.tally-candidate-values { grid-template-columns: minmax(0,1fr) auto; gap: 15px; }
.tally-candidate-values > span { color: #fff; font-size: 18px; font-weight: 600; }
.tally-candidate strong, .tally-candidate:nth-child(2) strong { color: #fff; font-weight: 600; font-size: clamp(35px,4vw,54px); letter-spacing: -2px; }
.tally-votes { font-size: 12px; margin-top: 6px; }
.tally-vote-track { height: 7px; border-radius: 8px; background: #435577; margin-top: 17px; }
.tally-vote-track > span { background: var(--official-teal); border-radius: inherit; }
.tally-candidate:nth-child(2) .tally-vote-track > span { background: var(--official-violet); }
.tally-empty, .tally-leaders > span:not(.tally-others) { grid-column: 1/-1; padding: 24px; background: var(--official-card); color: var(--official-muted); border: 1px solid #435577; border-radius: 14px; font-size: 14px; }
.tally-others { font-size: 12px; padding-top: 2px; }
.tally-track { height: 5px; background: #435577; border-radius: 6px; }
.tally-track > span { background: #fff; border-radius: inherit; }
.tally-meta { margin-top: 10px; font-size: 12px; gap: 12px; }
.tally-meta a { color: #fff; font-size: 12px; }
.totalization-strip[data-stale=true] .tally-meta > span { color: #ffdc99; }
.tally-cadence { font-size: 11px; }
.totalization-strip .tally-details { margin-top: 12px; border-top: 1px solid #435577; padding-top: 2px; }
.totalization-strip .tally-details summary { color: #fff; font-size: 13px; }
.totalization-strip .tally-details summary::marker { color: var(--official-muted); }
.totalization-strip .tally-details a { color: var(--official-teal); }
.totalization-strip .tally-details th, .totalization-strip .tally-details td { color: #fff; border-color: #435577; }
.totalization-strip .tally-details th { background: var(--official-card); }
.totalization-strip :is(button,a,summary,input,select):focus-visible { outline-color: var(--official-teal); }

/* A larger headline and two distinct cards make each model's identity clear. */
.simple-main { padding-top: 48px; }
.easy-intro { margin-bottom: 44px; gap: 32px; align-items: center; }
.easy-intro h1 { font: 700 clamp(34px,4.6vw,58px)/1.04 var(--display); color: var(--text); letter-spacing: -2.3px; margin: 12px 0 15px; max-width: 15ch; }
.easy-intro > div:first-child > p:last-child { font-size: 16px; line-height: 1.7; max-width: 52ch; }
.easy-kicker, .eyebrow { color: var(--blue); font-weight: 700; }
.easy-refresh { padding: 18px 20px; background: #eaf0ff; border-radius: 18px; max-width: 295px; }
.easy-refresh p { font-size: 12px; }
.easy-refresh .install-button { background: var(--blue); color: #fff; border-color: var(--blue); padding-inline: 17px; }
.easy-refresh .install-button:hover { background: #1945cc; border-color: #1945cc; }
.editorial-section { margin-bottom: 48px; }
.section-heading { border: 0; padding-top: 0; gap: 15px; margin-bottom: 22px; }
.section-number { width: 46px; height: 46px; margin-top: 0; align-self: center; border: 0; border-radius: 14px; color: var(--blue); background: #e2eaff; font: 700 16px/1 var(--display); }
#simple-changes .section-number { background: #dcf6f0; color: var(--cyan); }
.section-heading h2 { font-weight: 600; font-size: clamp(27px,3vw,36px); line-height: 1.2; }
.section-aside { background: #e7ecff; color: #244498; padding: 8px 12px; border-radius: 10px; font-size: 12px; }
.forecast-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,450px),1fr)); gap: 22px; align-items: stretch; }
.forecast-grid > .easy-card { margin-bottom: 22px; }
.easy-card { border-radius: 22px; padding: 30px; border-color: var(--border); box-shadow: 0 4px 12px #14213f04; }
.easy-card h2, .easy-card h3 { font-weight: 600; }
.easy-card p { font-size: 14px; }
.easy-primary { border-top: 5px solid var(--blue); }
.easy-primary h3 { font-size: clamp(25px,2.8vw,34px); }
.easy-card-top { gap: 10px; flex-wrap: wrap; }
.easy-label { color: var(--blue); font-weight: 700; font-size: 10px; }
.label-dot { width: 7px; height: 7px; background: var(--blue); }
.easy-pill, .tag, .tag.subtle { background: #eaf0ff; color: #244498; border: 1px solid #d2dcff; border-radius: 8px; font-size: 11px; padding: 5px 9px; }
.metric-caption { font-size: 13px; margin-top: 25px; }
.easy-candidates { gap: 20px; margin: 16px 0 20px; }
.easy-candidate { align-items: flex-start; gap: 11px; }
.easy-avatar { width: 40px; height: 40px; font-size: 13px; border: 0; border-radius: 12px; }
.easy-candidate span { font-size: 14px; font-weight: 600; }
.easy-candidate strong { font-size: clamp(38px,4vw,52px); font-weight: 600; letter-spacing: -2px; }
.easy-vote-bar { height: 12px; border-radius: 10px; }
.easy-chance { background: var(--surface2); border: 0; border-radius: 16px; padding: 20px; grid-template-columns: minmax(0,1fr); gap: 12px; }
.easy-chance > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 14px; align-items: center; }
.easy-chance strong { grid-column: 2; grid-row: 1/3; font-size: 40px; font-weight: 600; color: var(--violet); margin: 0; }
.easy-chance > div > span:last-child { grid-column: 1; }
.easy-chance p { font-size: 13px; }
.easy-card .easy-caution { border-radius: 0 12px 12px 0; border-left: 3px solid #98600e; color: var(--amber); }
.easy-card .easy-footnote, .easy-card .easy-source { font-size: 12px; }
.regional-archive { background: var(--surface2); border-top: 5px solid var(--violet); }
.regional-archive .easy-label { color: var(--violet); }
.archive-pill { color: #5c3b9d; background: #e8e1fc; border-color: #c9baeb; }
#simple-regional-values, #pro-regional-values { gap: 18px; }
#simple-regional-values .comparison-row, #pro-regional-values .comparison-row { border-left-width: 4px; padding-left: 12px; }
#simple-regional-values strong, #pro-regional-values strong { font-size: clamp(32px,3.6vw,44px); font-weight: 600; }
.analysis-disclosure, .easy-card .analysis-disclosure { color: var(--amber); border-left: 3px solid #98600e; border-radius: 0 12px 12px 0; }
.scenario-section { padding-block: 17px; background: #f9faff; }
.scenario-disclosure > summary { font-size: 20px; font-weight: 600; }
.scenario-disclosure > summary::after { width: 34px; height: 34px; flex-shrink: 0; display: grid; place-items: center; border-radius: 10px; color: var(--blue); background: #e5ebff; }
.easy-scenario { border-radius: 16px; background: var(--surface); }
.easy-scenario h3 { font-size: 15px; }
.easy-scenario strong { font-weight: 600; }
.changes-card { padding-top: 10px; }
.changes-list > li { padding-left: 39px; }
.changes-list > li::before { width: 12px; height: 12px; border: 3px solid var(--blue); background: #eaf0ff; top: 27px; }
.changes-list > li:not(:last-child)::after { width: 2px; left: 7px; top: 43px; background: #ccd8ff; }
.easy-link, .easy-footer button { color: var(--blue); }
.supporting-grid { gap: 22px; }
.benchmark-card { border-top: 5px solid var(--cyan); }
.benchmark-card > .easy-kicker { color: var(--cyan); }
.laboratory-card { background: #e9edff; border-top: 5px solid var(--violet); }
.laboratory-card > .easy-kicker { color: var(--violet); }
.benchmark-steps { gap: 8px; }
.benchmark-steps > div { background: var(--bg); border-radius: 10px; padding: 10px; }
.benchmark-steps strong { font-size: clamp(17px,1.8vw,22px); font-weight: 600; }
.simple-reading-guide { border: 0; display: grid; gap: 12px; }
.easy-faq { border: 1px solid var(--border); border-radius: 16px; background: var(--surface); padding: 10px 22px; }
.easy-faq summary { font-weight: 600; font-size: 15px; }
.easy-footer { padding-top: 20px; }
.easy-footer .footer-wordmark { font-weight: 700; color: var(--blue); }
#install-help { border-radius: 24px; }
#install-help button { background: var(--blue); border-radius: 12px; }

/* Alpha Pro uses the same rounded, bright visual system. */
body[data-mode=pro] .sidebar { margin-top: 24px; padding: 0; }
.navigation { padding: 6px; border: 1px solid var(--border); border-radius: 17px; background: var(--surface); gap: 5px; }
.sidebar .nav-button { border-radius: 11px; font-weight: 600; }
.sidebar .nav-button:hover { background: #edf2ff; }
.sidebar .nav-button.active { background: var(--blue); border-color: var(--blue); color: #fff; }
.page-heading h1 { font: 700 clamp(36px,4vw,54px)/1.09 var(--display); letter-spacing: -2px; }
.page-heading h1 span { color: var(--blue); }
.heading-coordinate { display: none; }
.divider { color: var(--muted); }
.panel { border-radius: 22px; padding: 30px; }
.panel h2, .panel h3 { font-weight: 600; }
.panel:focus-within { border-color: #7a93d2; }
.hero { border-top: 5px solid var(--blue); padding: 30px 30px 0; }
.hero h2 { font-size: 30px; }
.candidate-monogram, .candidate-b .candidate-monogram { border-radius: 12px; border: 0; }
.vote-share, .candidate-b .vote-share { font-weight: 600; }
.vote-bar { height: 13px; border-radius: 10px; }
.stats { border-radius: 18px; }
.stat { padding: 23px; }
.stat strong { font-weight: 600; }
.notice, .interval-explanation, .poll-detail, .history-detail, .method-callout, .aggregate-runoff { border-radius: 14px; }
.notice { background: #eaf0ff; border-color: #c3d2ff; }
select, input[type=search], .match-control select { border-radius: 10px; }
.evidence-card, .shadow-card, .comparison-stage { border-radius: 16px; }
.evidence-card, .shadow-card { background: var(--surface); }
.election-card, .election-card.runoff-countdown { border-radius: 18px; border-top-width: 4px; border-top-color: var(--blue); }
.election-card.runoff-countdown { background: var(--surface2); border-top-color: var(--violet); }
th { background: #f1f4fd; }
.chart .range-fill { fill: #00777c22; }
.chart .selected-row { fill: #00777c0a; }
.chart-tooltip { border-radius: 12px; }
.first-track, .comparison-track, .regional-track { border-radius: 7px; background: #e5e9f5; }
.reading-guide h2 { font-family: var(--display); font-weight: 600; }

@media (max-width: 1080px) {
  .brand-caption { max-width: 130px; font-size: 12px; }
  .modebar { gap: 16px; }
  .question-nav a { padding-inline: 14px; gap: 10px; }
  .question-nav a > .question-arrow { display: none; }
  .question-copy strong { font-size: 13px; }
  .tally-candidate-values { grid-template-columns: 1fr; gap: 7px; }
  .tally-candidate strong, .tally-candidate:nth-child(2) strong { font-size: 50px; }
  .forecast-grid { grid-template-columns: 1fr; }
  .easy-primary .easy-chance { grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 24px; }
}
@media (max-width: 760px) {
  :root { --header-height: 78px; }
  .modebar { min-height: 78px; gap: 12px; }
  .easy-brand { font-size: 25px; }
  .easy-brand > span:first-child { width: 38px; height: 38px; border-radius: 12px; font-size: 29px; }
  .mode-switch button { padding-inline: 12px; }
  .question-nav { width: calc(100% - 40px); gap: 10px; margin-top: 18px; }
  .question-nav a { padding: 12px; gap: 10px; flex-direction: column; align-items: flex-start; border-radius: 14px; }
  .question-nav a > .question-step { width: 28px; height: 28px; border-radius: 8px; font-size: 11px; }
  .question-copy strong { font-size: 12px; }
  .question-copy small { display: none; }
  body > .totalization-strip { padding: 25px 22px 16px; margin-top: 20px; border-radius: 22px; }
  .tally-heading { gap: 18px 14px; }
  .tally-heading h2 { font-size: 29px; }
  .tally-round { font-size: 11px; }
  .tally-round select { width: 110px; }
  .tally-progress { border-left: 0; padding-left: 0; font-size: 12px; flex-direction: row; align-items: baseline; }
  .tally-progress strong { font-size: 26px; }
  .tally-leaders { gap: 12px; margin-top: 22px; }
  .tally-candidate { padding: 16px; border-radius: 14px; }
  .tally-candidate-values > span { font-size: 15px; min-height: 40px; display: flex; align-items: end; }
  .tally-candidate strong, .tally-candidate:nth-child(2) strong { font-size: clamp(32px,6.5vw,44px); }
  .tally-votes { font-size: 11px; }
  .tally-meta { flex-wrap: wrap; gap: 0; }
  .tally-meta > span { flex-basis: 100%; font-size: 11px; }
  .tally-meta a { margin-top: 0; font-size: 12px; }
  .totalization-strip .tally-details summary { font-size: 12px; }
  .simple-main { padding-top: 36px; }
  .easy-intro { margin-bottom: 32px; }
  .easy-intro h1 { font-size: clamp(38px,7vw,50px); letter-spacing: -1.8px; max-width: 18ch; }
  .easy-intro > div:first-child > p:last-child { font-size: 15px; }
  .easy-refresh { max-width: none; padding: 15px 17px; border-radius: 15px; }
  .easy-refresh p { max-width: 55%; font-size: 12px; }
  .section-heading h2 { font-size: 29px; }
  .section-number { width: 40px; height: 40px; font-size: 14px; border-radius: 12px; }
  .easy-card { padding: 25px; border-radius: 19px; }
  .easy-candidate strong { font-size: 47px; }
  .easy-primary .easy-chance { grid-template-columns: 1fr; }
  .benchmark-steps > div { padding: 10px; }
  .easy-faq { padding: 9px 19px; }
  .panel { border-radius: 19px; padding: 25px; }
  .hero { padding: 25px 25px 0; }
  .page-heading h1 { font-size: 40px; }
}
@media (max-width: 520px) {
  :root { --header-height: 126px; }
  .modebar { min-height: 126px; padding: 10px 16px; gap: 8px 12px; }
  .mode-switch { border-radius: 12px; padding: 3px; }
  .mode-switch button { min-height: 44px; font-size: 13px; border-radius: 9px; }
  #install-app { font-size: 12px; padding-inline: 12px; }
  .question-nav { width: calc(100% - 32px); gap: 8px; margin-top: 16px; }
  .question-nav a { padding: 11px 9px; min-height: 92px; gap: 8px; }
  .question-nav a > .question-step { display: grid; }
  .question-copy strong { font-size: 11px; line-height: 1.4; }
  body > .totalization-strip { width: calc(100% - 32px); padding: 21px 16px 13px; border-radius: 20px; }
  .tally-heading { grid-template-columns: minmax(0,1fr) auto; gap: 16px 10px; }
  .tally-heading-copy { grid-column: 1/-1; }
  .tally-kicker { font-size: 10px; }
  .tally-heading h2 { font-size: 29px; }
  .tally-caption { font-size: 12px; }
  .tally-round { grid-row: 2; grid-column: 2; justify-self: end; align-items: flex-end; font-size: 0; gap: 0; }
  .tally-round select { width: 107px; min-height: 44px; font-size: 16px; padding: 8px; }
  .tally-progress { grid-row: 2; grid-column: 1; flex-direction: column; align-items: flex-start; justify-self: start; gap: 3px; }
  .tally-progress strong { font-size: 26px; }
  .tally-progress span { font-size: 11px; }
  .tally-leaders { gap: 10px; margin: 20px 0 16px; }
  .tally-candidate { padding: 13px 10px; border-top-width: 3px; border-radius: 12px; }
  .tally-candidate-values { gap: 9px; }
  .tally-candidate-values > span { font-size: 13px; min-height: 37px; }
  .tally-candidate strong, .tally-candidate:nth-child(2) strong { font-size: clamp(27px,7.8vw,39px); letter-spacing: -1.3px; }
  .tally-votes { font-size: 10px; }
  .tally-vote-track { margin-top: 14px; height: 6px; }
  .tally-others, .tally-cadence { font-size: 11px; }
  .tally-empty, .tally-leaders > span:not(.tally-others) { padding: 18px; font-size: 13px; }
  .simple-main { padding-top: 32px; }
  .easy-intro h1 { font-size: 40px; max-width: 14ch; }
  .easy-intro > div:first-child > p:last-child { font-size: 14px; }
  .easy-refresh { gap: 10px; padding: 14px; }
  .easy-refresh p { max-width: 51%; font-size: 11px; }
  .easy-refresh .install-button { padding-inline: 10px; font-size: 11px; }
  .easy-kicker { font-size: 10px; letter-spacing: .07em; }
  .section-heading { gap: 12px; padding-top: 0; margin-bottom: 18px; }
  .section-heading h2 { font-size: 26px; }
  .section-number { width: 36px; height: 36px; font-size: 13px; }
  .editorial-section { margin-bottom: 35px; }
  .forecast-grid { gap: 0; }
  .forecast-grid > .easy-card { margin-bottom: 18px; }
  .easy-card { padding: 23px 19px; border-radius: 18px; }
  .easy-primary h3 { font-size: 27px; }
  .easy-card h2 { font-size: 24px; }
  .easy-card p { font-size: 13px; }
  .easy-label { font-size: 10px; }
  .easy-pill { font-size: 10px; }
  .easy-candidates { gap: 14px; }
  .easy-candidate span { font-size: 12px; }
  .easy-candidate strong { font-size: clamp(32px,9.5vw,44px); letter-spacing: -1.5px; }
  .easy-chance { padding: 17px; }
  .easy-chance strong { font-size: 35px; }
  .easy-chance > div > span { font-size: 12px; }
  .easy-card .easy-footnote, .easy-card .easy-source { font-size: 11px; }
  #simple-regional-values, #pro-regional-values { gap: 13px; }
  #simple-regional-values strong, #pro-regional-values strong { font-size: clamp(29px,8.4vw,38px); letter-spacing: -1.3px; }
  .scenario-section { padding-block: 13px; }
  .scenario-disclosure > summary { font-size: 18px; }
  .changes-card { padding-top: 7px; }
  .changes-list > li { padding-left: 30px; }
  .changes-list > li::before { top: 25px; }
  .changes-list > li:not(:last-child)::after { top: 42px; }
  .benchmark-steps { gap: 7px; }
  .benchmark-steps > div { padding: 8px 5px; }
  .benchmark-steps strong { font-size: clamp(15px,4.7vw,20px); }
  .benchmark-steps span, .benchmark-result > small { font-size: 11px; }
  .easy-faq { padding: 8px 17px; }
  .easy-faq summary { font-size: 14px; }
  .easy-footer a, .easy-footer button { font-size: 11px; }
  .panel { padding: 23px 19px; border-radius: 18px; }
  .hero { padding: 23px 19px 0; }
  .hero h2 { font-size: 25px; }
  .page-heading h1 { font-size: 36px; letter-spacing: -1.5px; }
}
@media (prefers-reduced-motion: reduce) {
  html, *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  :root { --bg: #fff; --surface: #fff; --surface2: #fff; --text: #000; --muted: #333; --cyan: #000; --violet: #000; --blue: #000; }
  body > .totalization-strip { background: #fff; color: #000; border-color: #999; border-radius: 0; box-shadow: none; }
  .totalization-strip :is(h2,strong,span,small,p,label,summary,a,th,td) { color: #000 !important; }
  .tally-candidate, .totalization-strip .tally-details th { background: #fff; }
  .forecast-grid { display: block; }
  .easy-card, .panel { box-shadow: none; }
}
