*{box-sizing:border-box}body{margin:0;background:#fff;color:#172033;font-family:Arial,Helvetica,sans-serif}.vtt-widget{max-width:920px;margin:0 auto;padding:20px;border:1px solid #d7dee8;border-radius:12px;background:#fff}.widget-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.kicker,.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:#58677a}.widget-head h2{margin:0;font-size:27px}.dek{line-height:1.5;color:#46566a;margin:13px 0 18px}.year-switch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.year-switch span{font-size:12px;color:#58677a;font-weight:700}.year-switch button,#reset{min-height:42px;border:1px solid #aeb9c8;background:#fff;border-radius:8px;padding:8px 14px;font-weight:700}.year-switch button.active{background:#172033;color:#fff}.current-race{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px;border:1px solid #cfd9e7;border-radius:10px;background:#f7f9fc}.current-race h3,.historical h3,.simulator h3,.issues h3{margin:0;font-size:21px}.current-copy{margin:6px 0 0;line-height:1.45}.date-box{flex:0 0 auto;text-align:center;padding:10px 14px;border-radius:9px;background:#fff;border:1px solid #dce2ea}.date-box span{display:block;font-size:11px;color:#58677a;text-transform:uppercase;font-weight:700}.date-box strong{display:block;margin-top:4px}.historical,.simulator,.issues{margin-top:16px;padding:16px;border:1px solid #dce2ea;border-radius:10px}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:end}.source{font-size:12px;color:#667487;margin:0}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.candidate-card{padding:14px;border-radius:9px;background:#f6f8fb;border:1px solid #e1e6ed}.candidate-card h4{font-size:18px;margin:3px 0 7px}.candidate-card .party,.candidate-card>span:last-child{display:block;font-size:12px;color:#58677a}.big-pct{display:block;font-size:28px;margin-bottom:2px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.metric{padding:12px;border-radius:9px;background:#f4f6f8;text-align:center}.metric span,.metric small{display:block;font-size:12px;color:#58677a}.metric strong{display:block;font-size:21px;margin:4px 0}.calculation{margin-top:10px;font-size:13px;color:#46566a}.calculation summary{cursor:pointer;font-weight:700;color:#172033}.sim-intro{color:#46566a;line-height:1.45}.swing-label{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#58677a;margin-top:14px}.swing-label output{font-weight:700;color:#172033;text-align:center}.simulator input[type=range]{width:100%;min-height:34px}.scenario-row{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;margin-top:7px}.scenario-row>div{background:#f4f6f8;border-radius:8px;padding:10px}.scenario-row span{display:block;font-size:11px;color:#58677a}.scenario-row strong{display:block;margin-top:3px}.historical.flipped{border-width:2px}.issues{text-align:center}.centered{text-align:center}.issue-chips{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;margin:13px 0}.issue-chips span{display:inline-block;padding:7px 11px;border-radius:999px;background:#eef3ff;color:#274690;font-weight:700;font-size:13px}.issues-note{margin:0 auto;max-width:680px;font-size:12px;line-height:1.45;color:#667487}.senate-note{margin-top:16px;padding:13px 14px;border-left:4px solid #9aa8bb;background:#f7f8fa;font-size:13px;line-height:1.5;color:#46566a}.senate-note strong{color:#172033}footer{margin-top:16px;padding-bottom:12px;font-size:12px;color:#667487}@media(max-width:650px){.vtt-widget{border-radius:0;padding:14px}.widget-head,.current-race,.section-heading{display:block}.year-switch{justify-content:flex-start;margin-top:12px}.date-box{margin-top:12px}.result-grid,.metrics,.scenario-row{grid-template-columns:1fr}.widget-head h2{font-size:23px}.source{margin-top:6px}.swing-label{font-size:11px}}
.state-picker{display:flex;flex-direction:column;gap:5px;min-width:190px}.state-picker label{font-size:12px;color:#58677a;font-weight:700}.state-picker select{min-height:42px;border:1px solid #aeb9c8;border-radius:8px;background:#fff;padding:8px 34px 8px 10px;font-weight:700;color:#172033}.year-switch{margin-top:14px}.year-switch>div{display:flex;gap:8px}.issues[hidden]{display:none}@media(max-width:650px){.state-picker{margin-top:12px;min-width:0}.state-picker select{width:100%}}

/* Half-width VTT presentation */
.vtt-widget.half-width{max-width:560px;width:100%;padding:16px}
.half-width .widget-head{display:block}
.half-width .state-picker{margin-top:12px;min-width:0}
.half-width .state-picker select{width:100%}
.half-width .year-switch{justify-content:flex-start;gap:8px}
.half-width .current-race{display:block}
.half-width .date-box{margin-top:12px}
.half-width .section-heading{display:block}
.half-width .source{margin-top:6px}
.half-width .scenario-row{grid-template-columns:1fr 1fr}
.half-width .scenario-row button{grid-column:1/-1}
@media(max-width:480px){.half-width .result-grid,.half-width .metrics,.half-width .scenario-row{grid-template-columns:1fr}.half-width .scenario-row button{grid-column:auto}}
/* Keep historical candidates and metrics side-by-side */
.half-width .result-grid,
.half-width .metrics{
  grid-template-columns:1fr 1fr !important;
}
/* Center and style Senate widget heading */
.half-width .widget-head{
  text-align:center;
}
.half-width.vtt-widget{
  background:#f5f9ff !important;
  border-color:#b8c7d9;
  border-bottom:3px solid #9aaec5;
}
.half-width .kicker{
  text-align:center;
  color:#c62828;
}

.half-width #widget-title{
  text-align:center;
  color:#c62828;
  text-transform:none;
}
.metrics > div {
  text-align: left;
}