.midterms-page{--map-safe-d:#1f3d94;--map-lean-d:#6b8fdd;--map-tossup:#cfc08e;--map-lean-r:#ea7b7b;--map-safe-r:#ad1d2b;--map-lead-i:#c9992e;--map-none:#d3d9e3;--map-nodata:#c4cbd8;--map-stroke:#fff;--map-hover:#111827;--tip-bg:#fff;max-width:1460px;margin:0 auto;padding:28px 20px 64px}[data-theme=dark] .midterms-page{--map-none:#1d2a3d;--map-nodata:#2a3a54;--map-stroke:#000a18;--map-hover:#fff;--tip-bg:#0d1726}.mt-head h1{color:var(--text-primary);margin:0 0 6px;font-size:28px;font-weight:700}.mt-sub{color:var(--text-secondary);max-width:640px;margin:0 0 22px;font-size:14.5px;line-height:1.55}.mt-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.mt-tabs{gap:8px;display:flex}.mt-tab{border:1px solid var(--card-border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:7px 18px;font-family:inherit;font-size:13.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.mt-tab:hover:not(:disabled):not(.active){background:var(--card-hover-bg);color:var(--text-primary)}.mt-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.mt-tab:disabled{opacity:.55;cursor:default}.mt-error{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-secondary);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13.5px}.mt-map-loading{aspect-ratio:975/610;background:var(--skeleton-bg);width:100%;color:var(--text-tertiary);border-radius:10px;justify-content:center;align-items:center;font-size:13.5px;display:flex}.mt-headline{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.mt-headline-d,.mt-headline-r{font-size:17px;font-weight:600}.mt-headline-d{color:var(--map-lean-d)}.mt-headline-r{color:var(--map-lean-r)}.mt-headline-d strong,.mt-headline-r strong{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.mt-headline-mid{color:var(--text-tertiary);font-size:13px;font-weight:600}.mt-bar{border-radius:7px;height:34px;margin-bottom:26px;display:flex;position:relative;overflow:hidden}.mt-seg{justify-content:center;align-items:center;min-width:0;transition:width .35s;display:flex}.mt-seg span{color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #00000040;font-size:13px;font-weight:700}.mt-seg-hold{background-image:repeating-linear-gradient(45deg,#ffffff17 0 6px,#0000 6px 12px)}.mt-marker{border-left:2px solid var(--text-primary);opacity:.85;width:0;position:absolute;top:0;bottom:0}.mt-marker:before,.mt-marker:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;position:absolute;left:-5px}.mt-marker:before{border-top:5px solid var(--text-primary);top:-1px}.mt-marker:after{border-bottom:5px solid var(--text-primary);bottom:-1px}.mt-seg.r-safe-d,.em-dot.r-safe-d{background-color:var(--map-safe-d)}.mt-seg.r-lean-d,.em-dot.r-lean-d{background-color:var(--map-lean-d)}.mt-seg.r-tossup,.em-dot.r-tossup{background-color:var(--map-tossup)}.mt-seg.r-lean-r,.em-dot.r-lean-r{background-color:var(--map-lean-r)}.mt-seg.r-safe-r,.em-dot.r-safe-r{background-color:var(--map-safe-r)}.mt-seg.r-lead-i,.em-dot.r-lead-i{background-color:var(--map-lead-i)}.em-dot.r-none{background-color:var(--map-none)}.em-dot.r-nodata{background-color:var(--map-nodata)}.em-wrap{position:relative}.em-svg{width:100%;height:auto;display:block}.em-st{stroke:var(--map-stroke);stroke-width:1px;stroke-linejoin:round;cursor:pointer;transition:filter .12s}.em-st:hover{filter:brightness(1.1)}.em-st.r-safe-d{fill:var(--map-safe-d)}.em-st.r-lean-d{fill:var(--map-lean-d)}.em-st.r-tossup{fill:var(--map-tossup)}.em-st.r-lean-r{fill:var(--map-lean-r)}.em-st.r-safe-r{fill:var(--map-safe-r)}.em-st.r-lead-i{fill:var(--map-lead-i)}.em-st.r-none{fill:var(--map-none);cursor:default}.em-st.r-none:hover{filter:brightness(1.04)}.em-st.r-nodata{fill:var(--map-nodata)}.dm-district{stroke-width:.5px}.dm-statemesh{fill:none;stroke:var(--map-stroke);stroke-width:1.3px;stroke-linejoin:round;pointer-events:none}.em-hover-stroke.dm-hover{stroke-width:1.6px}.em-hover-stroke{fill:none;stroke:var(--map-hover);stroke-width:2px;stroke-linejoin:round;pointer-events:none}.em-box-hover{stroke:var(--map-hover);stroke-width:2px}.em-leader{stroke:var(--text-tertiary);stroke-width:1px}.em-label{fill:#fff;paint-order:stroke;stroke:#0f172a66;stroke-width:2px;stroke-linejoin:round;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.em-label-sub{font-size:10px;font-weight:600}.em-label-none{fill:var(--text-tertiary);stroke:none}.em-label-ext{fill:var(--text-secondary);stroke:none;font-size:10.5px}.em-tip{z-index:6;pointer-events:none;background:var(--tip-bg);border:1px solid var(--card-border);min-width:122px;box-shadow:0 6px 18px var(--shadow-color);border-radius:8px;padding:6px 9px 7px;position:absolute}.em-tip-title{color:var(--text-primary);font-size:12px;font-weight:700}.em-tip-sub{color:var(--text-secondary);font-size:10.5px}.em-tip-rating{color:var(--text-primary);align-items:center;gap:6px;margin-top:4px;font-size:11px;font-weight:600;display:flex}.em-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}.em-tip-rating .em-dot{width:8px;height:8px}.em-tip-hint{color:var(--text-tertiary);margin-top:3px;font-size:9.5px}.em-tip-odds{font-variant-numeric:tabular-nums;gap:10px;margin-top:3px;font-size:12.5px;font-weight:700;display:flex}.em-tip-d{color:var(--map-lean-d)}.em-tip-r{color:var(--map-lean-r)}.em-tip-i{color:var(--map-lead-i)}.em-tip-vrow{color:var(--text-tertiary);white-space:nowrap;font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;margin-top:3px;font-size:10px;display:flex}.em-tip-vrow.on{color:var(--text-primary);font-weight:600}.em-tip-vrow span:first-child{min-width:52px}.mt-legend{flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:20px;display:flex}.mt-legend-item{color:var(--text-secondary);align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.mt-caption{text-align:center;max-width:720px;color:var(--text-tertiary);margin:10px auto 0;font-size:12px;line-height:1.5}@media (max-width:640px){.midterms-page{padding:20px 14px 48px}.mt-head h1{font-size:23px}.mt-toolbar{flex-wrap:wrap}.mt-headline-d,.mt-headline-r{font-size:14px}.mt-headline-d strong,.mt-headline-r strong{font-size:18px}.mt-bar{height:28px}.mt-seg span{font-size:11px}}.mt-seo{padding-top:8px;padding-bottom:72px}.mt-seo h2{color:var(--text-primary);margin:36px 0 10px;font-size:20px;font-weight:700}.mt-seo>p{color:var(--text-secondary);max-width:720px;margin:0 0 14px;font-size:14.5px;line-height:1.65}.mt-faq{flex-direction:column;gap:18px;max-width:720px;display:flex}.mt-faq-item h3{color:var(--text-primary);margin:0 0 6px;font-size:15px;font-weight:600}.mt-faq-item p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.race-page{max-width:880px}.race-crumb{color:var(--text-secondary);margin-bottom:14px;font-size:13px}.race-crumb a{color:var(--text-secondary);text-decoration:none}.race-crumb a:hover{text-decoration:underline}.race-page h1{color:var(--text-primary);margin:0 0 8px;font-size:26px;font-weight:700}.race-odds{border:1px solid var(--border-color,#80808040);border-radius:12px;max-width:560px;margin:18px 0 8px;padding:22px 24px}.race-odds-empty{color:var(--text-secondary);font-size:14px}.race-odds-headline{gap:36px;margin-bottom:10px;display:flex}.race-odds-big{flex-direction:column;display:flex}.race-odds-num{font-size:40px;font-weight:700;line-height:1.1}.race-d .race-odds-num{color:var(--map-lean-d)}.race-r .race-odds-num{color:var(--map-lean-r)}.race-i .race-odds-num{color:#8a8f98}.race-odds-label{color:var(--text-secondary);font-size:13px}.race-odds-rating{color:var(--text-primary);margin-bottom:14px;font-size:14px;font-weight:600}.race-odds-venues{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.race-odds-venue{color:var(--text-secondary);gap:12px;font-size:13.5px;display:flex}.race-odds-venue strong{color:var(--text-primary);min-width:84px;font-weight:600}.race-odds-vol{margin-left:auto}.race-odds-cta{color:var(--text-primary);border:1px solid var(--border-color,#80808059);border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.race-odds-cta:hover{border-color:var(--text-primary)}.race-markets h2,.race-about h2{color:var(--text-primary);margin:28px 0 8px;font-size:18px;font-weight:700}.race-markets ul{margin:0;padding-left:18px}.race-markets li{color:var(--text-secondary);font-size:14px;line-height:1.7}.race-markets a{color:inherit}.race-about p{color:var(--text-secondary);max-width:720px;margin:0 0 12px;font-size:14.5px;line-height:1.65}.race-links a{color:var(--text-primary);margin-right:18px}.mt-directory{flex-direction:column;gap:4px;max-width:720px;display:flex}.mt-directory details{border-bottom:1px solid var(--border-color,#8080802e);padding:6px 0}.mt-directory summary{cursor:pointer;color:var(--text-primary);font-size:14.5px;font-weight:600;list-style-position:inside}.mt-dir-count{color:var(--text-secondary);margin-left:8px;font-size:12px;font-weight:500}.mt-dir-links,.race-district-links{flex-wrap:wrap;gap:8px 14px;padding:10px 2px 6px;display:flex}.mt-dir-links a,.race-district-links a{color:var(--text-secondary);white-space:nowrap;font-size:13.5px;text-decoration:none}.mt-dir-links a:hover,.race-district-links a:hover{color:var(--text-primary);text-decoration:underline}
