.election-cockpit .electoral-tooltip{background:var(--bg-elevated);border-color:var(--border-default);z-index:10;width:270px;max-width:calc(100% - 16px);box-shadow:none;border-radius:11px;gap:12px;padding:13px;font-size:11px}.electoral-tooltip header{align-items:flex-start;gap:9px;display:flex}.tooltip-uf{background:var(--bg-hover);border-radius:5px;justify-content:center;align-items:center;min-width:27px;height:23px;font-size:10px;font-weight:600;color:var(--text-primary)!important;display:inline-flex!important}.electoral-tooltip header>div{flex:1;min-width:0}.electoral-tooltip header strong{font-size:15px;font-weight:600;font-family:var(--font-editorial);display:block}.electoral-tooltip header small{margin-top:4px;font-size:10px;display:block}.tooltip-candidates{flex-direction:column;gap:12px;display:flex}.tooltip-candidate{grid-template-columns:32px 1fr auto;align-items:center;gap:8px;display:grid!important}.tooltip-candidate img,.map-portrait-fallback{object-fit:cover;background:var(--bg-hover);border-radius:5px;width:32px;height:36px}.map-portrait-fallback{justify-content:center;align-items:center;font-size:16px;color:var(--text-primary)!important;display:flex!important}.tooltip-candidate>span{min-width:0;display:block!important}.tooltip-candidate strong{font-size:11px;font-weight:500;line-height:1.25;display:block}.tooltip-candidate small{margin-top:4px;font-size:9px;display:block}.tooltip-candidate>b{color:var(--text-primary);font-size:14px;font-weight:600}.electoral-tooltip dl{border-top:1px solid var(--border-subtle);color:var(--text-muted);grid-template-columns:1fr auto;gap:7px;margin:0;padding-top:10px;font-size:10px;display:grid}.electoral-tooltip dd{color:var(--text-secondary);text-align:right;margin:0}.electoral-tooltip p{color:var(--text-secondary);font-size:11px;line-height:1.5}.map-coverage{color:var(--text-muted);pointer-events:none;font-size:8px;position:absolute;bottom:63px;left:72px}.cockpit-map .map-detail-status{bottom:63px;left:8px}.cockpit-map .map-coverage{bottom:74px;left:45px}.map-candidate-legend{z-index:4;background:var(--bg-overlay);border:1px solid var(--border-subtle);max-width:280px;color:var(--text-secondary);border-radius:10px;padding:8px 10px;font-size:9px;position:absolute;top:8px;right:8px}.map-candidate-legend>b{margin-bottom:5px;font-size:10px;font-weight:500;display:block}.map-candidate-legend>div{gap:1px;height:5px;display:flex}.map-candidate-legend i{border-radius:0;flex:1;height:5px}.map-candidate-legend>span{justify-content:space-between;gap:12px;margin-top:4px;display:flex}.map-candidate-legend small{font-size:8px}.map-panel:has(.map-candidate-legend)>.map-legend{display:none}.map-panel:has(.cockpit-map[data-municipal=true])>.map-legend{top:45px}.map-panel:not([data-local=true]):has(.cockpit-map[data-municipal=true])>.map-panel-top{top:45px}.cockpit-map[data-hover=true] canvas{cursor:pointer}.cockpit-map canvas:active{cursor:grabbing}.map-callout-lines{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.map-callout-lines line{stroke:var(--border-active);stroke-width:.7px}.map-callouts{z-index:2}@media (max-width:768px){.map-coverage{display:none}.map-candidate-legend{max-width:250px;top:100px}.map-panel:has(.cockpit-map[data-municipal=true])>.map-legend{top:95px}.map-panel:not([data-local=true]):has(.cockpit-map[data-municipal=true])>.map-panel-top{top:58px}}
.round-band{margin:16px 16px 0}.band-wide{background:#141413;border:1px solid #ffffff14;border-radius:12px;grid-template-columns:70px minmax(0,1fr) 70px;align-items:start;gap:18px;padding:12px 18px 16px;display:grid;position:relative;overflow:hidden}.band-photo{border-radius:6px;width:70px;height:70px;display:block;overflow:hidden}.band-photo img{color:#0000;object-fit:cover;object-position:top;width:100%;height:100%;font-size:0;display:block}.band-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:6px;display:grid}.band-name{color:#fff;white-space:nowrap;margin:0;font-size:20px;font-weight:700}.band-name small{color:var(--side);letter-spacing:.02em;margin:0 4px;font-size:11px;font-weight:400}.band-name.is-right{text-align:right}.band-headline{color:#eeede8;font:400 22px/1.15 var(--font-sans);text-align:center;white-space:nowrap;margin:0}.band-bar{background:#2a2a28;border-radius:6px;justify-content:space-between;height:40px;display:flex;position:relative}.band-fill{background:var(--side);color:#fff;white-space:nowrap;border-radius:6px 0 0 6px;align-items:center;gap:14px;height:100%;padding:0 14px;display:flex;overflow:hidden}.band-fill.is-right{border-radius:0 6px 6px 0;justify-content:flex-end}.band-fill b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.band-fill b small{font-size:14px}.band-fill em{opacity:.85;font-size:12px;font-style:normal}.band-half{background:#fff;width:2px;position:absolute;top:-8px;bottom:-8px;left:50%;transform:translate(-50%)}.band-half i{color:#fff;background:#1b1b1a;border:1px solid #ffffff40;border-radius:5px;padding:2px 5px;font-size:11px;font-style:normal;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.band-right-column{flex-direction:column;align-items:center;display:flex}.band-counted{color:#87877e;white-space:nowrap;margin:6px 0 0;font-size:12px}.band-counted b{color:#31c97a}.band-progress{background:#31c97a;border-radius:0 4px 4px 0;height:4px;position:absolute;bottom:0;left:0}.band-card{background:#161615;border:1px solid #ffffff14;border-radius:16px;padding:16px;display:none}.band-card-top{color:#b6b5ae;justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.band-pill{color:#eeede8;background:#262624;border-radius:8px;align-items:center;gap:7px;padding:5px 10px;font-size:12px;display:inline-flex}.band-pill i{background:#fff;border-radius:50%;width:6px;height:6px}.band-card-counted{align-items:center;gap:10px;margin:12px 0 10px;display:flex}.band-card-counted b{color:#31c97a;font-size:26px}.band-card-counted span{color:#d8d7d0;flex-direction:column;font-size:13px;line-height:1.3;display:flex}.band-card-counted small{color:#87877e;font-size:12px}.band-card-progress{background:#2a2a28;border-radius:999px;height:10px;margin-bottom:14px;overflow:hidden}.band-card-progress span{background:#31c97a;border-radius:999px;height:100%;display:block}.band-card .band-headline{text-align:left;white-space:normal}.band-card-sides{grid-template-columns:1fr 1fr;gap:12px;margin-top:22px;display:grid}.band-card-side{flex-direction:column;display:flex}.band-card-side.is-right{text-align:right;align-items:flex-end}.band-card-side b{color:#fff;font-size:14px}.band-card-side small{color:var(--side);font-size:12px}.band-card-side strong{color:#fff;font-variant-numeric:tabular-nums;align-items:flex-start;margin-top:6px;font-size:34px;font-weight:300;line-height:1;display:inline-flex}.band-card-side sup{color:var(--side);vertical-align:baseline;margin:5px 0 0 2px;font-size:13px;line-height:1}.band-card-side span{color:#87877e;margin-top:4px;font-size:12px}.band-card-bar{justify-content:space-between;height:8px;margin-top:18px;display:flex;position:relative}.band-card-bar span{border-radius:999px;height:100%;display:block}.band-card-bar i{background:#fff;width:2px;position:absolute;top:-5px;bottom:-5px;left:50%;transform:translate(-50%)}@media (max-width:900px){.band-wide{display:none}.band-card{display:block}}.band-headline-name{color:color-mix(in srgb, var(--side) 78%, #fff)}.election-cockpit .round-band{font-family:var(--font-sans);flex-shrink:0;margin:14px 16px 0}.election-cockpit .band-name small{color:var(--side)}.election-cockpit .band-fill b small{color:inherit}.election-cockpit .band-half i,.election-cockpit .band-pill i{width:auto;height:auto;display:block}.election-cockpit .band-pill i{border-radius:50%;width:6px;height:6px}.election-cockpit .band-card-counted small,.election-cockpit .band-card-side small{font-size:12px}.election-cockpit .band-card-side small{color:var(--side)}@media (max-width:1279px) and (min-width:769px){.election-cockpit .round-band{margin:10px 10px 0}}@media (max-width:768px){.election-cockpit .round-band{order:0;margin:10px 10px 0}}
.race-column{scrollbar-width:thin;flex-direction:column;gap:10px;min-height:0;display:flex;overflow-y:auto}.race-card{color:#eeede8;font-family:var(--font-sans);background:#151514;border:1px solid #ffffff14;border-radius:12px;flex-shrink:0;padding:14px}.race-card-top{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:8px;padding-bottom:10px;display:flex}.election-cockpit .race-card h1,.election-cockpit .race-card h2{color:#eeede8;font:600 15px/1.2 var(--font-sans);letter-spacing:0;margin:0}.race-tag{color:#b6b5ae;white-space:nowrap;background:#262624;border-radius:5px;padding:2px 7px;font-size:10px}.race-facts,.race-stats{margin:0}.race-facts div{justify-content:space-between;gap:10px;margin-top:9px;font-size:12px;display:flex}.race-facts dt{color:#b6b5ae}.race-facts dd{color:#d8d7d0;text-align:right;margin:0}.race-facts dd b{color:#fff}.race-others{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.race-others li{align-items:center;gap:10px;display:flex}.race-photo{background:var(--side);width:36px;height:36px;box-shadow:0 0 0 2px var(--side);border-radius:50%;flex:none;display:block;overflow:hidden}.race-photo img{color:#0000;object-fit:cover;object-position:top;width:100%;height:100%;font-size:0;display:block}.race-who{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.race-who b{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.election-cockpit .race-who small{color:color-mix(in srgb, var(--side) 75%, #fff);font-size:11px}.race-others strong{color:#fff;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.race-rest{color:#87877e;font-size:12px;margin:12px 0 0!important}.race-all{color:#eeede8;border-bottom:1px solid #ffffff59;margin-top:10px;padding-bottom:3px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.race-all:hover{border-color:#eeede8}.race-stats{border-top:1px solid #ffffff12;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:8px;margin-top:14px;padding-top:12px;display:grid}.race-stats dt{color:#87877e;white-space:nowrap;font-size:10px}.race-stats dd{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;margin:3px 0 0;font-size:15px;font-weight:600}.race-chart-card{flex-direction:column;flex:1;min-height:230px;display:flex}.race-legend{color:#d8d7d0;flex-wrap:wrap;gap:14px;margin:8px 0 10px;padding:0;font-size:11px;list-style:none;display:flex}.race-legend li{align-items:center;gap:6px;display:flex}.race-legend li:before{content:"";background:var(--side);border-radius:2px;width:12px;height:3px}.race-chart{flex-direction:column;flex:1;min-height:150px;display:flex;position:relative}.race-chart-grid{flex-direction:column;flex:1;justify-content:space-between;padding-left:30px;display:flex}.race-chart-grid span{border-top:1px solid #ffffff0f;position:relative}.race-chart-grid span.is-half{border-top:1px dashed #ffffff38}.election-cockpit .race-chart-grid small{color:#6f6f67;font-size:9px;position:absolute;top:-7px;left:-30px}.race-chart p{text-align:center;place-items:center;padding:0 10px;line-height:1.5;display:grid;position:absolute;inset:0 0 18px 30px;color:#87877e!important;margin:0!important;font-size:11px!important}.race-chart-axis{justify-content:space-between;padding:6px 0 0 30px;display:flex}.election-cockpit .race-chart-axis small{color:#6f6f67;font-size:9px}.race-facts dd small{color:#87877e;margin-top:2px;font-size:11px;display:block}.race-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.race-stats dt{white-space:normal;line-height:1.25}.race-stats dd{font-size:14px}.race-stats div:nth-child(2){text-align:center}.race-stats div:nth-child(3){text-align:right}.race-chart-axis{box-sizing:border-box;height:18px}.race-chart-plot{position:absolute;inset:0 0 18px 30px}.race-chart-plot svg{width:100%;height:100%;display:block;overflow:visible}.election-cockpit .race-chart-plot i{border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #151514}.race-note{color:#e0b84a!important;margin:10px 0 0!important;font-size:11px!important}@media (max-width:768px){.race-column{order:1;margin:10px;overflow:visible}}.race-share{flex-direction:column;align-items:flex-end;display:flex}.election-cockpit .race-share small,.race-share small{color:#87877e;font-size:10px}
.region-board{color:#eeede8;font-family:var(--font-sans);background:#151514;border:1px solid #ffffff14;border-radius:12px;flex-shrink:0;padding:14px 14px 12px}.election-cockpit .context-panel.has-region-board>.region-board>h2,.region-board h2{color:#eeede8;font:600 15px/1.2 var(--font-sans);letter-spacing:0;align-items:baseline;gap:8px;margin:0 0 10px;display:flex}.election-cockpit .region-board h2 small,.region-board h2 small{color:#b6b5ae;background:#262624;border-radius:5px;padding:2px 6px;font-size:10px;font-weight:400}.region-board ul{margin:0;padding:0;list-style:none}.region-board li+li{border-top:1px solid #ffffff0f}.rb-row{justify-content:space-between;align-items:center;gap:6px;padding:7px 0;display:flex}.rb-name{flex-direction:column;gap:2px;min-width:0;display:flex}.rb-name b{color:#fff;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.election-cockpit .rb-name small,.rb-name small{color:#87877e;white-space:nowrap;font-size:11px}.rb-score{flex-shrink:0;align-items:center;gap:7px;display:flex}.rb-score.is-empty{color:#87877e}.rb-photo{background:var(--side);border-radius:50%;width:28px;height:28px;display:block;overflow:hidden}.rb-photo img{color:#0000;object-fit:cover;object-position:top;width:100%;height:100%;font-size:0;display:block}.rb-figures{flex-direction:column;gap:4px;width:72px;display:flex}.rb-top{justify-content:space-between;align-items:baseline;display:flex}.election-cockpit .rb-top small,.rb-top small{color:var(--side);font-size:10px;font-weight:700}.rb-top b{color:#fff;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.rb-bar{background:#2e2e2c;border-radius:2px;height:4px;display:block;position:relative}.election-cockpit .rb-bar i,.rb-bar i{background:var(--side);border-radius:2px;width:0;height:100%;display:block}.rb-bar em{background:#fff;width:2px;position:absolute;top:-3px;bottom:-3px;left:50%;transform:translate(-50%)}.rb-globe{fill:none;stroke:#b6b5ae;stroke-width:1.2px;width:14px;height:14px}.rb-exterior{background:#1d1d1b;border:1px solid #ffffff0f;border-radius:9px;margin-top:8px;padding:2px 10px}.election-cockpit .context-panel.has-region-board{background:0 0;border:0;flex-direction:column;gap:10px;padding:0;display:flex;overflow:visible}.election-cockpit .context-panel.has-region-board>.update-feed{background:#151514;border:1px solid #ffffff14;border-radius:12px;flex:1;margin:0;padding:14px}.election-cockpit button.rb-exterior{width:100%;min-height:0;color:inherit;font:inherit;text-align:left;cursor:pointer;display:block}.election-cockpit button.rb-exterior:hover{background:#232320;border-color:#ffffff2e}
