@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#23372e;background:#f5f6f1;font-synthesis:none;font-size:14px;font-weight:450}.coalition{margin-top:20px}.coalition-picks{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid #dce1d8;background:#fff;color:inherit;border-radius:7px;padding:9px 13px;transition:background .15s}button:hover{background:#edf1e8}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c3d59b;outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:38px;font-weight:750;letter-spacing:-1.9px;line-height:1.3}h1>span{color:#849f50}h2{font-size:18px;font-weight:750;letter-spacing:-.55px}h3{font-size:15px}p{line-height:1.75}.shell{display:flex;min-height:100vh}.sidebar{width:226px;position:fixed;inset:0 auto 0 0;background:#142c27;color:#dce4d9;padding:36px 22px;display:flex;flex-direction:column;z-index:10}.brand{font-family:Manrope,sans-serif;font-size:26px;font-weight:800;display:flex;align-items:center;letter-spacing:-1.5px}.brand-mark{display:inline-flex;width:31px;height:34px;align-items:center;justify-content:center;font-family:serif;font-size:40px;line-height:1;color:#cfe2a0;margin-right:11px;margin-top:-4px}.brand-dot{color:#cee2a0}.sidebar-label{font-size:9px;letter-spacing:2px;color:#81978b;margin-top:59px;margin-left:12px;margin-bottom:15px}nav{display:flex;flex-direction:column;gap:8px}nav button{display:flex;align-items:center;gap:12px;background:none;border:0;color:#9eafa5;font-size:12px;text-align:left;padding:13px 12px;border-radius:6px}nav button svg:last-child:not(:first-child){margin-left:auto}nav button.active{background:#2a4136;color:#d2e5a8}nav button:hover{background:#233d32}.sidebar-note{border-top:1px solid #35473b;border-bottom:1px solid #35473b;padding:25px 10px;margin-top:63px;font-size:10px;color:#9eb394}.mini-live{width:6px;height:6px;background:#b3cf85;border-radius:50%;display:inline-block;margin-right:6px}.sidebar-note h3{color:#e3e9df;margin:14px 0 10px;font-size:17px}.sidebar-note p{color:#8b9e93;line-height:2;font-size:12px}.sidebar-bottom{margin-top:auto;padding:32px 8px 0;display:flex;flex-direction:column;gap:18px}.sidebar-bottom a{font-size:10px;color:#a7b7aa;display:flex;align-items:center;gap:7px}.sidebar-bottom small{color:#728d7c;font-size:9px}.main-wrap{margin-left:226px;flex:1;min-width:0}.topbar{height:70px;border-bottom:1px solid #e2e5db;display:flex;justify-content:space-between;align-items:center;padding:0 40px;background:#fafbf7;font-size:11px;color:#7a867d}.topbar>div:first-child{display:flex;align-items:center;gap:20px}.topbar-kicker{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#536451}.topbar-divider{height:13px;border-left:1px solid #d5dacd}.mode-switch{background:#edf0e6;padding:3px;border:1px solid #e2e5db;border-radius:7px;display:flex;gap:2px}.mode-switch button{font-size:10px;border:0;background:none;padding:6px 12px;display:flex;align-items:center;gap:5px}.mode-switch button.selected{background:#fff;box-shadow:0 1px 4px #162d2710}.dashboard{max-width:1560px;margin:auto;padding:37px 40px 0}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:#819077;margin-bottom:8px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.lede{font-size:12px;color:#7a857c;margin-top:8px}.status-pill{font-size:8px;font-weight:700;letter-spacing:1px;color:#547841;background:#eaf1e2;border:1px solid #dce7d2;padding:8px 10px;border-radius:5px;white-space:nowrap;display:flex;align-items:center;gap:7px}.status-pill>span{width:5px;height:5px;background:#7caa58;border-radius:50%}.status-pill.demo{background:#f3eedb;border-color:#e9dfbb;color:#968045}.status-pill.demo>span{background:#b5a058}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:10px;background:#f1ecda;color:#8d7950;padding:11px 15px;border:1px solid #e8dfc4;border-radius:7px;margin-top:23px}.demo-banner label{display:flex;align-items:center;gap:10px;white-space:nowrap}.demo-banner input{width:110px;accent-color:#839759}.stats{display:grid;grid-template-columns:1fr 1.3fr 1.1fr 1fr;margin:25px 0;border:1px solid #e0e4da;border-radius:9px;background:#fff;overflow:hidden}.stat{padding:20px 20px 18px;border-right:1px solid #e7eade;min-width:0}.stat:last-child{border:0}.stat>div{font-size:8px;font-weight:600;letter-spacing:.9px;color:#899181;display:flex;justify-content:space-between;gap:6px;min-height:20px}.stat>div svg{flex-shrink:0;color:#9aa78c}.stat>strong{display:block;font-family:Manrope,sans-serif;font-size:28px;letter-spacing:-1px;font-weight:750;white-space:nowrap;margin-top:10px}.stat>strong>span{font:450 13px DM Sans,sans-serif;letter-spacing:0;color:#9aa18f;margin-left:6px}.stat>small{display:block;font-size:9px;color:#99a08e;margin-top:7px}.dashboard-grid{display:grid;grid-template-columns:1.05fr 1.15fr;gap:20px;align-items:start}.card{background:#fff;border:1px solid #e0e4d9;border-radius:10px;padding:23px;box-shadow:0 2px 3px #192e2302;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:22px}.card-head .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:6px}.small-tag{font-size:8px;border:1px solid #e5e9de;padding:5px 7px;border-radius:4px;color:#8c9881;letter-spacing:.6px;white-space:nowrap}.party-card{grid-row:span 2}.table-head{display:grid;grid-template-columns:1fr 70px 70px;border-bottom:1px solid #edf0e8;padding:0 0 12px;font-size:8px;letter-spacing:1px;color:#97a18e}.table-head span:not(:first-child){text-align:right}.party-row{display:block;width:100%;border:0;background:none;border-radius:5px;padding:16px 0 12px;position:relative}.party-row:hover{background:#f8f9f5}.party-row.focused .party-label>span:last-child{color:#142b23}.party-label{display:flex;gap:10px;align-items:center;width:calc(100% - 134px);text-align:left}.party-badge{width:29px;height:29px;display:flex;align-items:center;justify-content:center;color:#fff;border-radius:7px;font-size:10px;font-weight:750;flex-shrink:0}.party-label>span:last-child{font-size:11px;font-weight:600;color:#65715e}.party-label small{display:flex;gap:2px;align-items:center;font-size:8px;font-weight:400;color:#8d9885;margin-top:4px}.party-numbers{position:absolute;right:0;top:17px;display:grid;grid-template-columns:70px 70px;text-align:right;align-items:start}.party-numbers strong{font-size:16px;font-family:Manrope,sans-serif;font-weight:750}.party-numbers strong small{font-size:9px;color:#88927e;margin-left:2px}.party-numbers>span{font-size:14px;color:#6f7f61}.party-numbers>span small{display:block;font-size:8px;color:#a1ab96;margin-top:3px}.party-track{height:5px;background:#f1f3eb;border-radius:5px;margin:11px 0 0 39px;position:relative}.party-track>div{height:100%;border-radius:5px;opacity:.85}.party-track>i{position:absolute;top:-3px;height:11px;width:2px;background:#43523a;border-radius:1px}.chart-note{display:flex;align-items:center;gap:7px;margin-top:24px;font-size:9px;color:#929a86}.legend-line{width:15px;height:4px;background:#a7b798;border-radius:2px}.legend-tick{height:9px;width:2px;background:#43523a;margin-left:9px}.muted{color:#8c9681}.fine{font-size:9px;line-height:1.8;margin-top:12px}.trend-number{font-family:Manrope,sans-serif;font-size:31px;font-weight:750;letter-spacing:-1px;margin-top:-5px}.trend-number>span{font-size:15px;margin-left:4px}.trend-number>small{font-size:10px;color:#8e9985;font-family:DM Sans,sans-serif;font-weight:400;margin-left:12px;letter-spacing:0}select{border:1px solid #e0e5d8;border-radius:5px;background:#fff;padding:6px 10px;color:#637159;font-size:11px}.trend-card{padding-bottom:15px}.ai-card{background:#f0f4e9;border-color:#dce5cf}.ai-label{font-size:9px;letter-spacing:1.2px;display:flex;align-items:center;gap:8px;color:#647e47;font-weight:700}.ai-engine{font-size:8px;color:#8d9c7b}.ai-card h2{font-size:19px;line-height:1.45;max-width:360px}.ai-card>p{font-size:11px;color:#7d8c70;margin-top:14px;line-height:1.9}.ai-footer{display:flex;align-items:center;font-size:8px;color:#8fa17e;border-top:1px solid #dfe7d5;padding-top:16px;margin-top:20px}.ai-footer button{display:flex;align-items:center;gap:4px;margin-left:auto;background:none;border:0;padding:0;font-size:9px;color:#5b7443}.ai-card>a{font-size:10px;display:block;margin-top:8px}.ai-card .observation{border-left:2px solid #a8be88;padding-left:12px}.threshold-card{align-self:stretch}.threshold-row{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:10px}.threshold-row>strong{width:20px}.threshold-row>span:last-child{width:42px;text-align:right}.dot{height:7px;width:7px;border-radius:50%;flex-shrink:0}.threshold-track{height:7px;flex:1;background:#f0f2e9;border-radius:3px;position:relative}.threshold-track>div{height:7px;border-radius:3px;opacity:.8}.threshold-track>i{position:absolute;left:50%;top:-5px;height:17px;border-left:1px dashed #66725e}.geography-card{margin-top:20px}.region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px}.region-row{border:0;border-bottom:1px solid #edf0e7;background:none;border-radius:0;padding:13px 0 12px}.region-row>div:first-child{display:flex;justify-content:space-between;font-size:10px}.region-row strong{font-size:10px;font-weight:550}.region-track{height:4px;background:#f0f2e9;border-radius:3px;margin:8px 0}.region-track span{display:block;height:100%;background:#9bb679;border-radius:3px}.region-row>small{display:flex;align-items:center;justify-content:space-between;font-size:8px;color:#9aa68d}.selected-region{background:#f4f7ee!important}.method-details{font-size:11px;color:#87917d;padding:18px 0}.method-details summary{display:flex;align-items:center;gap:8px;cursor:pointer}.method-details p{margin-top:12px}.district-table{margin-top:20px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:11px;margin-top:16px}td,th{padding:10px;border-bottom:1px solid #e6eadf;text-align:left}th{color:#8b987e;font-size:9px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e0e5d7;padding:22px 0;font-size:9px;color:#929d86;margin-top:18px}footer b{font:800 14px Manrope,sans-serif;color:#6c7a5d;margin-right:8px}footer a{display:inline-flex;align-items:center;gap:3px}.notice{padding:16px;background:#fff0d9;color:#8c6834;border:1px solid #ead8b7;border-radius:8px;margin:20px 0;font-size:12px}.waiting{margin:35px auto;text-align:center;max-width:650px;padding:60px 40px}.waiting svg{color:#9bac85}.waiting h2{font-size:25px;margin:20px 0}.waiting p{color:#859277;margin-bottom:24px}.primary{background:#203d2e;color:#e9f2e0;border-color:#203d2e;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary:hover{background:#31523c}.primary svg{color:inherit}.empty-chart{height:245px;display:flex;align-items:center;justify-content:center;color:#a1ad95;text-align:center;padding:30px;font-size:12px}.method-page{margin-top:25px;padding:35px}.method-page p{max-width:800px;color:#77866b;margin:16px 0;font-size:13px}.method-page h3{margin-top:30px}.method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:35px 0}.method-steps article{padding:20px;background:#f5f7ee;border-radius:8px}.method-steps article>span{font:750 30px Manrope;color:#b5c7a2}.method-steps h3{margin-top:15px}.method-steps p{font-size:12px}.method-page li{margin:12px 0;font-size:12px}.admin-page{max-width:1100px;margin:0 auto;padding:40px 25px}.back-link{display:flex;align-items:center;gap:7px;margin-bottom:40px;color:#76846a;font-size:12px}.admin-page .card{margin-top:25px}.login-card{max-width:500px}.login-card h2{margin:15px 0}.login-card p{font-size:12px;color:#7f8b74}form{display:flex;flex-direction:column;gap:15px;margin-top:20px}label{display:flex;flex-direction:column;gap:7px;font-size:12px}input{border:1px solid #d9e1cf;background:#fafbf6;border-radius:5px;padding:10px;color:#29422d}input[type=range]{padding:0}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:30px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-grid .card{margin:0}.admin-grid .wide{grid-column:1/-1}.admin-grid{margin-top:20px}pre{font:11px/1.7 monospace;background:#f5f7ef;padding:16px;overflow:auto;border-radius:5px}.checkbox{display:flex;flex-direction:row;align-items:center;gap:8px;margin:5px 0;font-size:11px}.checkbox input{accent-color:#496b35}.provider-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.provider{background:#f5f7ef;padding:15px;border-radius:8px}.provider button{font-size:10px;margin:10px 4px 0 0}.provider small{display:block;margin-top:5px;color:#8b987e}.oauth{padding:20px;background:#edf3e2;margin-top:20px}.oauth button{margin:15px 10px 0 0}.oauth a{display:flex;align-items:center;gap:6px;margin:15px 0;text-decoration:underline}@media(min-width:1450px){.dashboard-grid{grid-template-columns:1fr 1.1fr 1fr}.party-card{grid-row:span 2}.trend-card{grid-column:2/4}.ai-card{grid-column:2}.swing-card{grid-column:3}.threshold-card{grid-column:1/4}.threshold-card .threshold-row{max-width:600px}.stats{grid-template-columns:repeat(4,1fr)}}@media(max-width:1150px){.sidebar{width:190px;padding:30px 15px}.main-wrap{margin-left:190px}.dashboard{padding:28px 24px 0}.topbar{padding:0 24px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid #e7eade}.party-label>span:last-child{font-size:10px}.party-label{width:calc(100% - 112px)}.party-numbers{grid-template-columns:56px 56px}.table-head{grid-template-columns:1fr 56px 56px}.card{padding:18px}.title-row h1{font-size:32px}.status-pill{font-size:7px}.demo-banner{align-items:flex-start;flex-direction:column}.demo-banner label{width:100%;justify-content:space-between}}@media(max-width:820px){.sidebar{position:relative;inset:auto;width:auto;padding:15px 22px;flex-direction:row;align-items:center;gap:20px}.brand{font-size:24px}.brand-mark{font-size:30px;width:20px;height:24px;margin-right:7px}.sidebar-label,.sidebar-note,.sidebar-bottom{display:none}.shell{display:block}.main-wrap{margin:0}.sidebar nav{flex-direction:row;margin-left:auto;gap:3px}.sidebar nav button{font-size:0;padding:10px}.sidebar nav button>svg:last-child:not(:first-child){display:none}.topbar{height:52px}.dashboard{padding:24px 20px 0}.title-row{align-items:flex-start}.title-row h1{font-size:30px}.status-pill{font-size:6px;padding:7px}.dashboard-grid{grid-template-columns:1fr 1fr}.party-label{width:calc(100% - 105px);gap:6px}.party-label>span:last-child{font-size:9px}.party-numbers{grid-template-columns:53px 52px}.party-badge{width:25px;height:25px;font-size:9px}.party-numbers strong{font-size:14px}.table-head{grid-template-columns:1fr 53px 52px}.region-grid{gap:0 18px}.method-steps,.admin-grid{grid-template-columns:1fr}.admin-grid .wide{grid-column:auto}.provider-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.dashboard-grid{display:flex;flex-direction:column}.dashboard-grid>.card{width:100%}.party-card{order:1}.ai-card{order:2}.trend-card{order:3}.swing-card{order:4}.threshold-card{order:5}.stats{margin-top:18px;gap:0}.stat{padding:14px}.stat>strong{font-size:24px}.stat>div{font-size:7px}.stat>small{font-size:8px}.title-row{flex-direction:column;gap:12px}.title-row h1{font-size:31px}.title-row .status-pill{font-size:7px}.region-grid{grid-template-columns:1fr 1fr}.party-label>span:last-child{font-size:12px}.party-label{width:calc(100% - 140px)}.party-numbers{grid-template-columns:70px 70px}.party-numbers strong{font-size:17px}.table-head{grid-template-columns:1fr 70px 70px}.party-row{padding-top:17px;padding-bottom:16px}.party-track{margin-top:13px}.party-badge{width:30px;height:30px}.card{padding:20px}.topbar-kicker,.topbar-divider{display:none}.topbar{padding:0 20px;font-size:10px}.demo-banner{font-size:9px}.method-page{padding:23px}.provider-grid{grid-template-columns:1fr}footer{flex-direction:column;gap:10px}.sidebar{padding:15px 20px}}
