/* Election workspaces use the homepage's editorial canvas. Geographic fills,
   party identities, vote bars and result-status colours remain data-driven. */
.civic-editorial{--paper:#f7f6f1;--ink:#1d302f;--muted:#62706a;--line:#c9cec5;--card:#fffefa;--accent:#254fd5;--blue:#254fd5;--orange:#dd5636;--serif:'Libre Caslon Display',Georgia,serif;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}
.civic-editorial .outlook{--ink:#1d302f;--muted:#62706a;--line:#c9cec5;--blue:#254fd5;--red:#d34245}
.civic-editorial .masthead{background:transparent;border:0;position:relative;top:auto;z-index:50;isolation:isolate;box-shadow:none}
.civic-editorial .masthead:before{display:none}
.civic-editorial .masthead .edition{color:var(--ink);line-height:1.5}
.civic-editorial .masthead .mast-row{justify-content:flex-start}
.civic-editorial .masthead .mast-row p{color:var(--ink);max-width:none}
.civic-editorial .masthead .wordmark{color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-weight:700}
.civic-editorial .masthead .navigation{margin:0;background:transparent;box-shadow:none;border-radius:0;width:auto;position:relative;display:flex;align-items:stretch;gap:0}
.civic-editorial .masthead .navigation a{color:var(--ink);text-decoration:none;line-height:1.5}
.civic-editorial .masthead .navigation a[aria-current],.civic-editorial .masthead .current-group{color:var(--orange)}
.civic-editorial .masthead .navigation a:hover{color:var(--blue)}
.civic-editorial .masthead .navigation summary span{font-size:12px;color:inherit}
.civic-editorial .masthead .dropdown{background:var(--paper);color:var(--ink);z-index:5}
.civic-editorial .masthead .dropdown a{min-height:44px;align-items:center}
.civic-editorial .masthead .dropdown .label{color:var(--muted);font-weight:700}
.civic-editorial .masthead .search-shortcut{color:var(--ink)}
.civic-editorial .wrap{max-width:1360px;margin:auto;padding:35px 42px 0}
.civic-editorial .intro,.civic-editorial.us-election .intro{background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--ink);border-radius:0;box-shadow:none;padding:0 0 30px;margin:0 0 28px;overflow:visible;gap:35px;align-items:center}
.civic-editorial.us-election .intro:after{display:none}
.civic-editorial .intro h1,.civic-editorial.us-election .intro h1{font-family:var(--serif);font-weight:400;font-size:clamp(48px,5.5vw,76px);line-height:1.02;letter-spacing:-1.8px;color:var(--ink);max-width:840px;margin:19px 0 18px}
.civic-editorial .intro h1 .hero-accent,.civic-editorial.us-election .intro .hero-accent{color:var(--ink)}
.civic-editorial .intro p,.civic-editorial.us-election .intro p{color:var(--muted);font-size:13px;line-height:1.8;max-width:620px}
.civic-editorial .eyebrow,.civic-editorial.us-election .intro .eyebrow{font-family:'DM Sans',Arial,sans-serif;color:var(--orange);font-size:10px;letter-spacing:1.2px;font-weight:700}
.civic-editorial .hero-tags,.civic-editorial.us-election .hero-tags{gap:0;margin:20px 0 0}
.civic-editorial .hero-tags span,.civic-editorial.us-election .hero-tags span{background:transparent;color:var(--muted);border:0;border-right:1px solid var(--line);border-radius:0;font-size:9px;padding:0 12px;letter-spacing:.2px;line-height:1.5;font-weight:500}
.civic-editorial .hero-tags span:first-child{padding-left:0}
.civic-editorial .hero-tags span:last-child{border-right:0}
.civic-editorial .intro .election-countdown,.civic-editorial.us-election .intro .election-countdown,.civic-editorial .election-note{background:transparent;border:0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line);box-shadow:none;border-radius:0;padding:18px 0;min-width:245px;max-width:100%;color:var(--ink)}
.civic-editorial .countdown-units{gap:15px;margin:15px 0}
.civic-editorial .countdown-units>div,.civic-editorial.us-election .countdown-units>div{background:transparent;border:0;border-right:1px solid var(--line);padding:0 15px 0 0;border-radius:0;min-width:0}
.civic-editorial .countdown-units>div:last-child{border-right:0;padding-right:0}
.civic-editorial .countdown-units strong,.civic-editorial.us-election .countdown-units strong{font-family:var(--serif);font-size:43px;font-weight:400;letter-spacing:-1px;color:var(--ink);line-height:1}
.civic-editorial .countdown-units span,.civic-editorial.us-election .countdown-units span{color:var(--muted);font-size:8px;letter-spacing:1px;text-transform:uppercase}
.civic-editorial .countdown-caption,.civic-editorial.us-election .countdown-caption{font-size:10px;color:var(--muted);line-height:1.7}
.civic-editorial button,.civic-editorial input,.civic-editorial select{font-family:'DM Sans',Arial,sans-serif;border-color:var(--line);border-radius:2px;color:var(--ink);background:var(--card);box-shadow:none}
.civic-editorial button{font-size:12px;min-height:44px}
.civic-editorial button:hover{background:#e8ede1;border-color:#899782}
.civic-editorial button.primary,.civic-editorial button[aria-pressed=true],.civic-editorial .outlook button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white}
.civic-editorial input::placeholder{color:#7b837b}
.civic-editorial button:focus-visible,.civic-editorial a:focus-visible,.civic-editorial summary:focus-visible,.civic-editorial input:focus-visible,.civic-editorial select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.civic-editorial label,.civic-editorial .small,.civic-editorial .label{color:var(--muted)}
.civic-editorial .panel,.civic-editorial #detail,.civic-editorial .maplayout>section:first-child,.civic-editorial .bc-map-panel,.civic-editorial .bc-detail,.civic-editorial .bc-sources,.civic-editorial.us-election .us-map-panel,.civic-editorial.us-election .us-detail,.civic-editorial.us-election .us-directory,.civic-editorial.us-election .us-about{border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:0;background:var(--card);background-image:none;box-shadow:none}
.civic-editorial h2,.civic-editorial .panelhead h2,.civic-editorial .results-panel h2,.civic-editorial #detail h2,.civic-editorial .outlook h2,.civic-editorial.us-election .us-detail h2,.civic-editorial.us-election .us-directory h2,.civic-editorial .mayor-overview .panelhead h2{font-family:var(--serif);font-weight:400;font-size:32px;letter-spacing:-.7px;line-height:1.1;color:var(--ink)}
.civic-editorial .bc-detail h2{font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.1}
.civic-editorial .controls,.civic-editorial .directory-controls,.civic-editorial .mayor-controls,.civic-editorial .bc-controls,.civic-editorial.us-election .us-controls{background:transparent;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:18px 0;box-shadow:none}
.civic-editorial .controls input,.civic-editorial .ontario-map-search input{background:var(--card)}
.civic-editorial .notice,.civic-editorial .awaiting,.civic-editorial .ontario-map-status,.civic-editorial .outlook-status,.civic-editorial .bc-pending,.civic-editorial.us-election .us-empty-state{background:#e8ede1;border:0;border-left:2px solid #8ca36f;border-radius:0;color:#465b42;box-shadow:none}
.civic-editorial .notice a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.civic-editorial .coverage-stats,.civic-editorial .summary.compact,.civic-editorial.us-election .coverage-stats{gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin:26px 0;background:transparent}
.civic-editorial .coverage-stats>div,.civic-editorial .summary.compact>.panel,.civic-editorial.us-election .coverage-stats>div{background:transparent!important;background-image:none;border:0!important;border-right:1px solid var(--line)!important;border-radius:0!important;box-shadow:none;padding:22px 24px}
.civic-editorial .coverage-stats>div:last-child,.civic-editorial .summary.compact>.panel:last-child{border-right:0!important}
.civic-editorial .coverage-stats strong,.civic-editorial .compact .big{font-family:var(--serif);font-size:48px;font-weight:400;letter-spacing:-1.5px;color:var(--ink)!important}
.civic-editorial .coverage-stats .label,.civic-editorial .summary .label,.civic-editorial .coverage-stats .small,.civic-editorial.us-election .coverage-stats .small{color:var(--muted)}
.civic-editorial .tag{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:0}
.civic-editorial .ontario-map-canvas,.civic-editorial .map,.civic-editorial #bc-map,.civic-editorial.us-election #us-map,.civic-editorial .outlook-map-canvas,.civic-editorial .outlook-boundary-section>svg{background:#e8ede6;border-color:var(--line);border-radius:0}
.civic-editorial .ontario-map-tools button,.civic-editorial .maptools button,.civic-editorial .bc-map-tools button{background:var(--paper);border-color:var(--line);color:var(--ink);border-radius:0}
.civic-editorial .ontario-map-tools button[aria-pressed=true]{background:var(--blue);color:white}
.civic-editorial .municipality,.civic-editorial .race-card,.civic-editorial.us-election .us-race-card{background:var(--card);background-image:none;border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:0;box-shadow:none}
.civic-editorial .municipality strong,.civic-editorial .race-card h3,.civic-editorial.us-election .us-race-card h3{font-family:var(--serif);font-size:25px;font-weight:400;letter-spacing:-.3px;color:var(--ink)}
.civic-editorial .municipality:hover,.civic-editorial .municipality[aria-pressed=true],.civic-editorial.us-election .us-race-card:hover{background:#eef0e6;border-color:#8ca36f;color:var(--ink);box-shadow:none}
.civic-editorial .municipality:after{color:var(--orange)}
.civic-editorial .about-grid>div,.civic-editorial .us-feature-grid article,.civic-editorial .us-feature-grid article:nth-child(n){border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;background-image:none;box-shadow:none;padding:18px 0}
.civic-editorial .about-grid h3{font-family:'DM Sans',Arial,sans-serif;color:var(--ink);font-weight:600}
.civic-editorial .us-feature-grid h3{font-family:var(--serif);font-size:31px;font-weight:400}
.civic-editorial .about-grid a,.civic-editorial .snapshot-source a,.civic-editorial .us-feature-grid a,.civic-editorial .outlook-method a{color:var(--blue);text-underline-offset:3px}
.civic-editorial .candidate-row .number,.civic-editorial .candidate-line .number{color:var(--ink)}
.civic-editorial table th,.civic-editorial .tablepanel th,.civic-editorial .mayor-table th,.civic-editorial .outlook th{background:var(--paper);color:var(--muted);font-family:'DM Sans',Arial,sans-serif;font-weight:600;letter-spacing:.9px}
.civic-editorial table td,.civic-editorial table th{border-color:var(--line)}
.civic-editorial .tablepanel tbody tr:hover,.civic-editorial .mayor-table tbody tr:hover{background:#eef0e6}
.civic-editorial .mayor-place{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.3px;color:var(--ink)}
.civic-editorial .rehearsal-controls{background:#f4e9ce;border-color:#d9c9a2;border-radius:0;box-shadow:none}
.civic-editorial .section-nav,.civic-editorial.us-election .us-section-tabs{background:transparent;gap:0;border:0;border-bottom:1px solid var(--ink);border-radius:0;box-shadow:none;padding:0;margin-bottom:25px}
.civic-editorial .section-nav a,.civic-editorial.us-election .us-section-tabs a{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:15px 20px;color:var(--muted);font-size:12px;font-weight:600;text-decoration:none;box-shadow:none}
.civic-editorial .section-nav a[aria-current=page],.civic-editorial.us-election .us-section-tabs a[aria-selected=true]{color:var(--blue);background:transparent;border-color:var(--blue)}
.civic-editorial .section-nav a:hover,.civic-editorial.us-election .us-section-tabs a:hover{background:#e8ede1;color:var(--ink)}
.civic-editorial.us-election .us-office-cards{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.civic-editorial.us-election .us-office-cards button,.civic-editorial.us-election .us-office-cards button:nth-child(n){background:transparent;color:var(--ink);border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none}
.civic-editorial.us-election .us-office-cards button[aria-pressed=true]{background:#e8ede1;color:var(--ink);box-shadow:inset 0 -3px var(--blue)}
.civic-editorial.us-election .us-office-cards strong{font-family:var(--serif);font-weight:400;font-size:35px;color:var(--ink)}
.civic-editorial .outlook-scenario,.civic-editorial .outlook-chamber-card,.civic-editorial .outlook-joint,.civic-editorial .outlook-map-card,.civic-editorial .outlook-race-detail,.civic-editorial .outlook-race-card,.civic-editorial .outlook-insight,.civic-editorial .outlook-history,.civic-editorial .outlook-simulation,.civic-editorial .outlook-polls,.civic-editorial .outlook-history-card,.civic-editorial .outlook-generic,.civic-editorial .outlook-approval,.civic-editorial .outlook-boundary-section,.civic-editorial .outlook-vote-simulator,.civic-editorial .outlook-vote-summary>article{background:var(--card);background-image:none;border:1px solid var(--line);border-radius:0;box-shadow:none}
.civic-editorial .outlook-chamber-card:before{background:var(--ink);height:2px}
.civic-editorial .outlook-party-side>strong{font-family:var(--serif);font-weight:400;letter-spacing:-2px}
.civic-editorial .outlook-joint h2{font-size:29px}
.civic-editorial .outlook-joint-item strong,.civic-editorial .outlook-generic strong,.civic-editorial .outlook-approval>strong,.civic-editorial .outlook-vote-summary strong{font-family:var(--serif);font-weight:400}
.civic-editorial .outlook-officeholder,.civic-editorial .us-incumbent-summary,.civic-editorial .bc-history-stats>div{background:#eef0e6;border-color:var(--line);border-radius:0;color:var(--ink)}
.civic-editorial .outlook-initials{border-radius:0;background:#e8ede1;color:var(--ink)}
.civic-editorial .outlook-race-card:hover{border-color:#8ca36f;box-shadow:none;background:#f1f2e9}
.civic-editorial .outlook-open-race,.civic-editorial.us-election .us-race-open{background:var(--blue);color:#fff;border-color:var(--blue);border-radius:0}
.civic-editorial .outlook-segments,.civic-editorial .outlook-jump-nav{border-radius:0;background:transparent}
.civic-editorial .outlook-segments button,.civic-editorial .outlook-jump-nav button{border-radius:0}
.civic-editorial .bc-last-winner{background:#eef0e6;border-color:var(--line);border-radius:0}
.civic-editorial .bc-last-winner h3{font-family:var(--serif);font-size:29px;font-weight:400}
.civic-editorial .bc-history-stats dd{font-family:var(--serif);font-size:29px;font-weight:400;color:var(--ink)}
.civic-editorial .tip,.civic-editorial .ontario-map-tooltip,.civic-editorial .bc-hover,.civic-editorial .us-hover,.civic-editorial .outlook-hover{background:#fffef6ed;border:1px solid #bfc7b7;border-radius:1px;box-shadow:4px 6px 0 #1d302f12;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;backdrop-filter:blur(16px)}
.civic-editorial .tip h3,.civic-editorial .bc-hover h3,.civic-editorial .us-hover h3,.civic-editorial .outlook-hover>strong{font-family:var(--serif);font-weight:400;font-size:25px;color:var(--ink)}
.civic-editorial{--glass-shine:radial-gradient(ellipse at var(--glass-x,35%) var(--glass-y,20%),#fffffffa 0%,#ffffffb8 18%,#e8ede140 48%,#ffffff08 75%),linear-gradient(125deg,#ffffffcc,#e8ede140 38%,#ffffff99 52%,#b6c3a230)}
.civic-editorial :is(.panel,.municipality,.race-card,.coverage-stats>div,.election-countdown,.about-grid>div).glass-lit{background-color:#fffef6b3;box-shadow:inset 0 2px #fff,inset 0 -1px #ffffffd9,0 0 0 1px #b6c3a2,0 12px 28px #1d302f17!important}
.civic-editorial :is(button:not(.tile),.section-nav a).glass-lit{box-shadow:inset 0 2px #fff,inset 0 -1px #ffffffc4,0 0 0 1px #b6c3a2,0 8px 20px #1d302f20!important}
.civic-editorial footer{border-top:2px solid var(--ink);color:var(--muted);font-size:10px;margin-top:35px;padding:24px 0 30px;background:transparent}
.civic-editorial footer strong{color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-weight:700;font-size:22px;letter-spacing:-1px}
@media(max-width:1050px){.civic-editorial .shell{padding-left:25px;padding-right:25px}.civic-editorial .wrap{padding-left:25px;padding-right:25px}.civic-editorial .navigation>a,.civic-editorial .navigation summary{padding-left:17px;padding-right:17px}.civic-editorial .intro h1,.civic-editorial.us-election .intro h1{font-size:57px}}
@media(max-width:680px){.civic-editorial .shell,.civic-editorial .wrap{padding-left:20px;padding-right:20px}.civic-editorial .wrap{padding-top:26px}.civic-editorial .edition{font-size:8px;letter-spacing:.7px}.civic-editorial .mast-row{gap:20px;padding:18px 0}.civic-editorial .wordmark{font-size:60px;letter-spacing:-5px;gap:12px}.civic-editorial .mark{transform:scale(.8) rotate(-10deg);transform-origin:left center}.civic-editorial .mast-row p{display:none}.civic-editorial .search-shortcut{font-size:11px}.civic-editorial .search-shortcut span{margin-left:9px}.civic-editorial .masthead .navigation{display:grid;grid-template-columns:1fr 1fr 1fr}.civic-editorial .navigation>a,.civic-editorial .navigation summary,.civic-editorial .navigation>a:first-child{font-size:11px;padding:13px 8px;gap:7px;justify-content:center;min-height:48px}.civic-editorial .navigation>a:nth-last-child(-n+2){border-top:1px solid var(--line)}.civic-editorial .navigation>a:nth-last-child(2){grid-column:1/3;justify-content:flex-start;padding-left:8px}.civic-editorial .navigation>a:last-child{grid-column:3/4;white-space:nowrap}.civic-editorial .navigation details{position:static}.civic-editorial .dropdown{left:0;right:0;min-width:0;top:48px;padding:10px 20px}.civic-editorial .dropdown a{min-height:44px;align-items:center}.civic-editorial .intro,.civic-editorial.us-election .intro{display:block;padding-bottom:25px;margin-bottom:24px}.civic-editorial .intro h1,.civic-editorial.us-election .intro h1{font-size:48px;line-height:1.03;letter-spacing:-1.3px;margin:15px 0}.civic-editorial .intro p,.civic-editorial.us-election .intro p{font-size:12px}.civic-editorial .intro .election-countdown,.civic-editorial.us-election .intro .election-countdown{margin-top:25px;min-width:0;width:100%;padding:15px 0;border-top:1px solid var(--line)}.civic-editorial .countdown-units{display:flex;gap:0;margin:12px 0}.civic-editorial .countdown-units>div,.civic-editorial.us-election .countdown-units>div{flex:1;padding:0 15px;margin-right:0}.civic-editorial .countdown-units>div:first-child{padding-left:0}.civic-editorial .countdown-units strong,.civic-editorial.us-election .countdown-units strong{font-size:37px}.civic-editorial h2,.civic-editorial .panelhead h2,.civic-editorial .outlook h2{font-size:28px}.civic-editorial .panel{padding:18px}.civic-editorial .coverage-stats>div,.civic-editorial .summary.compact>.panel{padding:17px 15px}.civic-editorial .coverage-stats>div:first-child,.civic-editorial .summary.compact>.panel:first-child{border-right:0!important;border-bottom:1px solid var(--line)!important}.civic-editorial .coverage-stats strong,.civic-editorial .compact .big{font-size:40px}.civic-editorial .municipality strong,.civic-editorial.us-election .us-race-card h3{font-size:24px}.civic-editorial .section-nav a,.civic-editorial.us-election .us-section-tabs a{font-size:10px;padding:14px 8px;line-height:1.5;white-space:normal;min-height:48px}.civic-editorial .mayor-table tr,.civic-editorial .mayor-table tr:nth-child(n){border:1px solid var(--line);border-top:2px solid var(--ink);border-radius:0;background:var(--card);box-shadow:none}.civic-editorial .outlook-chamber-card{padding:20px}.civic-editorial footer{gap:15px;line-height:1.6}.civic-editorial .hero-tags{row-gap:8px}}
@media(prefers-reduced-motion:reduce){.civic-editorial *{scroll-behavior:auto;transition:none!important}}
