:root{--tse-blue:#3455a4;--tse-blue-dark:#243e83;--tse-green:#5f8f3e;--tse-surface:#eef2fb}
.p-election{position:relative;margin:24px 0 40px;border:1px solid rgba(52,85,164,.24);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);box-shadow:0 8px 28px rgba(28,23,16,.08)}
.p-election::before{content:"";display:block;height:5px;background:linear-gradient(90deg,var(--terracota) 0 28%,var(--saffron) 28% 38%,var(--tse-blue) 38% 82%,var(--tse-green) 82%)}
.p-election--home{margin:14px 0 18px;border-radius:var(--r-md);box-shadow:0 4px 16px rgba(28,23,16,.06)}.p-election--home::before{height:4px}.p-election-strip{display:flex;min-height:84px;padding:14px 18px;align-items:center;gap:20px;background:linear-gradient(100deg,#fff 0%,var(--tse-surface) 100%)}.p-election-strip__copy{display:flex;min-width:0;flex:1;align-items:center;gap:18px}.p-election-strip__copy>.p-election__eyebrow{flex:0 0 auto}.p-election-strip__copy h2{margin:0;font-family:var(--ed);font-size:22px;line-height:1.1;color:var(--ink)}.p-election-strip__copy p{margin:4px 0 0;color:var(--ink-70);font-size:13px;line-height:1.35}.p-election-strip__countdown{display:flex;flex:0 0 auto;gap:5px}.p-election-strip__countdown>span{display:flex;min-width:44px;height:44px;padding:0 5px;align-items:center;justify-content:center;border:1px solid rgba(52,85,164,.22);border-radius:var(--r-sm);background:#fff;color:var(--tse-blue-dark)}.p-election-strip__countdown strong{font-size:18px;line-height:1;font-variant-numeric:tabular-nums}.p-election-strip__countdown small{margin-left:3px;font-size:9px;font-weight:800;line-height:1;text-transform:uppercase}.p-election-strip__waiting{align-self:center;color:var(--tse-blue-dark);font-size:12px}.p-election-strip__action{display:flex;flex:0 0 auto;align-items:center;gap:10px}.p-election-strip__action>a{display:inline-flex;min-height:44px;padding:0 17px;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--tse-blue-dark);color:#fff;font-size:12px;font-weight:800;white-space:nowrap}.p-election-strip__action>a:hover,.p-election-strip__action>a:focus-visible{background:var(--ink)}
.p-election__teaser{min-height:260px;padding:32px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;background:radial-gradient(circle at 90% 20%,rgba(95,143,62,.13),transparent 28%),linear-gradient(135deg,#fff 0%,var(--tse-surface) 100%)}
.p-election__teaser-copy{max-width:720px}.p-election__eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--tse-blue-dark);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.p-election__eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--breaking);box-shadow:0 0 0 4px rgba(200,26,26,.12);animation:p-election-pulse 1.8s ease-in-out infinite}
.p-election__teaser h2,.p-election__livehead h2{font-family:var(--ed);font-size:clamp(29px,4vw,48px);line-height:1.08;margin:12px 0;color:var(--ink)}
.p-election__teaser p,.p-election__livehead p{max-width:680px;color:var(--ink-70);font-size:16px;line-height:1.65}
.p-election__trust,.p-election__meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px;font-size:12px;color:var(--ink-60)}
.p-election__source{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;background:#fff;border:1px solid rgba(52,85,164,.28);border-radius:999px;color:var(--tse-blue-dark);font-size:11px;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.p-election__source>span{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--tse-blue) 0 55%,var(--tse-green) 55%)}
.p-election__countdown{display:grid;grid-template-columns:repeat(4,86px);gap:8px}.p-election__countdown>span{display:flex;min-height:94px;flex-direction:column;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(52,85,164,.22);border-radius:var(--r-md);box-shadow:var(--shadow)}.p-election__countdown strong{color:var(--tse-blue-dark);font-variant-numeric:tabular-nums;font-size:30px;line-height:1}.p-election__countdown small{margin-top:8px;color:var(--ink-60);font-size:10px;font-weight:800;text-transform:uppercase}.p-election__waiting{grid-column:1/-1;max-width:360px;text-align:center;font-size:15px!important;line-height:1.45!important}
.p-election__livehead{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;padding:30px 32px 22px;background:linear-gradient(135deg,#fff,var(--tse-surface))}.p-election__livehead h2{font-size:clamp(28px,3.4vw,42px)}.p-election__livehead .p-election__meta{justify-content:flex-end;text-align:right}.p-election__meta strong{font-variant-numeric:tabular-nums;color:var(--ink)}
.p-election__races{padding:0 32px 28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.p-election--page .p-election__races{grid-template-columns:repeat(2,minmax(0,1fr))}.p-election__race{padding:22px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}.p-election__race header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.p-election__race header p{color:var(--tse-blue);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.p-election__race h3{margin-top:3px;font-family:var(--ed);font-size:21px}.p-election__race header>strong{color:var(--tse-blue-dark);font-size:20px;font-variant-numeric:tabular-nums}.p-election__sections{margin:10px 0 16px;color:var(--ink-60);font-size:12px}.p-election__candidate{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:12px 0;border-top:1px solid var(--line)}.p-election__rank{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--tse-surface);color:var(--tse-blue-dark);font-size:12px;font-weight:800}.p-election__candidate-main{position:relative;min-width:0}.p-election__candidate-main>div{display:flex;min-width:0;padding-right:72px;align-items:baseline;gap:8px}.p-election__candidate-main strong{font-size:14px}.p-election__candidate-main>div span{flex:0 0 auto;color:var(--ink-60);font-size:11px}.p-election__candidate-main>b{position:absolute;top:1px;right:0;font-size:14px;font-variant-numeric:tabular-nums}.p-election__bar{display:block;height:5px;margin-top:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.p-election__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--tse-blue),var(--tse-green));border-radius:4px}.p-election__candidate-status{display:inline-block;margin-top:7px;color:var(--tse-blue-dark);font-size:10px;font-weight:800;text-transform:uppercase}.p-election__cta{display:flex;min-height:48px;align-items:center;justify-content:center;margin:0 32px 28px;border-radius:var(--r-sm);background:var(--tse-blue-dark);color:#fff;font-size:13px;font-weight:800}.p-election__cta:hover{background:var(--ink)}
.p-election__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.p-election__stats div{min-width:0}.p-election__stats dt{color:var(--ink-60);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.p-election__stats dd{margin:4px 0 0;color:var(--ink);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.p-election-page{padding-top:24px;padding-bottom:64px}.p-election-page__crumb{display:flex;gap:8px;align-items:center;color:var(--ink-60);font-size:12px}.p-election-page__crumb a:hover{text-decoration:underline}.p-election-page__head{max-width:850px;padding:34px 0 12px}.p-election-page__head>p{color:var(--terracota-d);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.p-election-page__head h1{font-family:var(--ed);font-size:clamp(36px,6vw,64px);line-height:1.06;margin:8px 0 12px}.p-election-page__head span{color:var(--ink-70);font-size:17px}.p-election-page__about{max-width:760px;margin:48px auto 0;padding:26px;border-top:3px solid var(--tse-blue);background:var(--surface-2);border-radius:0 0 var(--r-md) var(--r-md)}.p-election-page__about h2{font-family:var(--ed);font-size:22px}.p-election-page__about p{margin:10px 0;color:var(--ink-70)}.p-election-page__about a{color:var(--tse-blue-dark);font-weight:800;text-decoration:underline;text-underline-offset:3px}
@keyframes p-election-pulse{50%{box-shadow:0 0 0 8px rgba(200,26,26,0)}}
@media(min-width:960px){.p-election--page .p-election__race:nth-child(n+3){grid-column:1/-1}.p-election--page .p-election__race:nth-child(n+3) ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}}
@media(max-width:980px){.p-election-strip{flex-wrap:wrap}.p-election-strip__copy{flex-basis:calc(100% - 230px)}.p-election-strip__action .p-election__source{display:none}}
@media(max-width:860px){.p-election__teaser{grid-template-columns:1fr}.p-election__countdown{grid-template-columns:repeat(4,1fr)}.p-election__livehead{display:block}.p-election__livehead .p-election__meta{justify-content:flex-start;text-align:left}.p-election__races,.p-election--page .p-election__races{grid-template-columns:1fr}}
@media(max-width:560px){.p-election{margin:16px 0 32px;border-radius:var(--r-md)}.p-election--home{margin:10px 0 14px}.p-election-strip{min-height:0;padding:14px;gap:12px}.p-election-strip__copy{display:block;flex-basis:100%}.p-election-strip__copy>.p-election__eyebrow{margin-bottom:7px}.p-election-strip__copy h2{font-size:20px}.p-election-strip__copy p{font-size:12px}.p-election-strip__countdown{flex:1}.p-election-strip__countdown>span{min-width:0;flex:1}.p-election-strip__action{margin-left:auto}.p-election-strip__action>a{padding:0 15px}.p-election__teaser,.p-election__livehead{padding:24px 20px}.p-election__teaser{gap:24px;min-height:0}.p-election__teaser h2,.p-election__livehead h2{font-size:29px}.p-election__countdown{gap:5px}.p-election__countdown>span{min-height:76px}.p-election__countdown strong{font-size:23px}.p-election__countdown small{font-size:8px}.p-election__races{padding:0 14px 20px}.p-election__race{padding:17px}.p-election__race h3{font-size:18px}.p-election__race header>strong{font-size:16px}.p-election__candidate-main>div{display:block;padding-right:67px}.p-election__candidate-main>div span{display:block;margin-top:3px}.p-election__cta{margin:0 14px 20px}.p-election-page{padding-top:16px}.p-election-page__head{padding-top:26px}.p-election-page__head span{font-size:16px}}
@media(prefers-reduced-motion:reduce){.p-election__eyebrow i{animation:none}}
