.iv-live-poll { max-width: 980px; padding-top: 40px; padding-bottom: 48px; }
.iv-live-poll > p { max-width: 760px; }
.iv-live-poll section { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--lt_gray); }
.iv-live-poll .iv-poll-meta { font: 13px/1.6 'JetBrains Mono', monospace; }
.iv-live-poll [hidden] { display: none !important; }
.iv-poll-controls, .iv-poll-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.iv-live-poll button { font: 12px/1.5 'JetBrains Mono', monospace; cursor: pointer; }
.iv-live-poll button { padding: 7px 10px; border: 1px solid var(--gray); border-radius: 3px; color: var(--brand_black); background: transparent; }
.iv-live-poll button[aria-pressed="true"] { background: var(--brand_black); color: var(--brand_white); }
#iv-poll-map svg { display: block; width: 100%; height: auto; max-height: 540px; touch-action: auto; }
#iv-poll-map { min-height: 260px; }
#iv-poll-trend { min-height: 360px; }
#iv-poll-map .iv-precinct { fill: var(--lt_gray); fill-opacity: .35; stroke: var(--gray); stroke-width: .5; vector-effect: non-scaling-stroke; }
#iv-poll-map .iv-county { fill: var(--lt_gray); fill-opacity: .35; stroke: var(--gray); stroke-width: .7; vector-effect: non-scaling-stroke; }
#iv-poll-map .iv-district { fill: none; stroke: var(--brand_black); stroke-width: 1.3; pointer-events: none; vector-effect: non-scaling-stroke; }
#iv-map-reset { margin-bottom: 14px; }
.iv-support-labels { display:flex; justify-content:space-between; gap:20px; margin:20px 0 12px; font:14px/1.5 'JetBrains Mono',monospace; }
.iv-support-labels > div:last-child { text-align:right; }
.iv-support-labels > div > span { display:block; color:var(--brand_black); font:600 20px/1.35 'IBM Plex Sans',sans-serif; }
.iv-support-labels strong { display:block; font:26px/1.4 'JetBrains Mono',monospace; }
.iv-polling-page .iv-support-labels strong { font-variant-numeric: tabular-nums; min-width: 6ch; }
.iv-poll-response-dot { opacity: 1; transform-box: fill-box; transform-origin: center; transition: opacity .24s ease, transform .24s ease; }
.iv-poll-response-dot.iv-poll-dot-entering { animation: iv-poll-dot-enter .3s ease-out both; animation-delay: var(--iv-poll-dot-delay, 0ms); }
.iv-poll-response-dot.iv-poll-dot-exiting { opacity: 0; transform: scale(.3); }
@keyframes iv-poll-dot-enter { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: scale(1); } }
.iv-support-bar { display:flex; height:36px; width:100%; }
.iv-support-segment { display:block; flex-shrink:0; height:100%; }
.iv-support-dem { --iv-support-party:var(--brand_blue); background:var(--iv-support-party); }
.iv-support-rep { --iv-support-party:var(--brand_red); background:var(--iv-support-party); }
.iv-support-probably { background:color-mix(in srgb,var(--iv-support-party) 70%,var(--brand_white)); }
.iv-support-possibly { background:color-mix(in srgb,var(--iv-support-party) 40%,var(--brand_white)); }
.iv-support-unknown { background:var(--gray); }
p.iv-support-unknown { background:none; text-align:center; margin:10px 0; font:12px/1.5 'JetBrains Mono',monospace; }
.iv-support-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; margin:12px 0 18px; font:12px/1.5 'JetBrains Mono',monospace; }
.iv-support-legend > span { display:inline-flex; align-items:center; }
.iv-support-legend i { display:inline-block; width:12px; height:12px; margin-right:3px; }
.iv-support-legend i + i { margin-right:7px; }
.iv-poll-swatch { display: inline-block; width: 20px; border-top: 3px solid; margin-right: 6px; vertical-align: middle; }
.iv-poll-legend { font: 12px/1.6 'JetBrains Mono', monospace; gap: 10px 22px; }
#iv-poll-trend svg { display: block; width: 100%; overflow: visible; }
#iv-poll-trend text { font: 11px 'JetBrains Mono', monospace; fill: var(--brand_black); }
#iv-poll-trend .domain, #iv-poll-trend .tick line { stroke: var(--gray); }
#iv-poll-status, #iv-map-warning { border-left: 3px solid var(--brand_orange, #cc5800); padding-left: 12px; }
@media (max-width: 600px) { .iv-live-poll { padding-top: 24px; } .iv-live-poll section { margin-top: 28px; }.iv-support-labels { font-size:12px; } .iv-support-labels strong { font-size:22px; } }
@media (max-width: 540px) { #iv-poll-trend { min-height: 300px; } }
.iv-map-menu-anchor { position: relative; z-index: 5; margin: 14px 0; }
.iv-map-menu-toggle { display: inline-flex; align-items: center; gap: 9px; }
.iv-map-menu-icon { display: inline-flex; flex-direction: column; justify-content: center; gap: 3px; width: 14px; }
.iv-map-menu-icon span { width: 14px; height: 2px; background: currentColor; }
.iv-map-menu[hidden] { display: none; }
.iv-map-menu { position: absolute; top: calc(100% + 8px); left: 0; width: min(440px, calc(100vw - 44px)); padding: 14px; background: var(--brand_white); color: var(--brand_black); border: 1px solid var(--gray); box-shadow: 0 5px 18px rgb(0 0 0 / 18%); }
.iv-map-menu-group + .iv-map-menu-group { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--lt_gray); }
.iv-map-menu-group h3 { margin: 0; text-align: left; font: 12px/1.5  }
.iv-map-menu .iv-poll-controls { gap: 4px; margin: 7px 0 0; }
.iv-map-menu .iv-poll-controls button { padding: 5px 7px; }
.iv-map-menu-toggle[aria-expanded="true"] { background: var(--brand_black); color: var(--brand_white); }
.iv-precinct-breakdown,.iv-county-breakdown { margin: 20px 0 4px; }
.iv-precinct-table-wrap,.iv-county-table-wrap { max-width: 100%; overflow-x: auto; }
:is(.iv-precinct-table-wrap,.iv-county-table-wrap) table { width:100%; min-width:580px; border-collapse:collapse; font:12px/1.4 'JetBrains Mono',monospace; }
:is(.iv-precinct-table-wrap,.iv-county-table-wrap) th,:is(.iv-precinct-table-wrap,.iv-county-table-wrap) td { padding:7px 9px; border-bottom:1px solid var(--lt_gray); text-align:right; white-space:nowrap; }
@media (prefers-reduced-motion: reduce) { .iv-poll-response-dot { transition: none; animation: none; } }
:is(.iv-precinct-table-wrap,.iv-county-table-wrap) thead th { color:var(--gray); font-weight:500; }
:is(.iv-precinct-table-wrap,.iv-county-table-wrap) th:first-child { text-align:left; }
:is(.iv-precinct-table-wrap,.iv-county-table-wrap) tbody th { font-weight:400; }
.iv-precinct-share,.iv-county-share { display:block; color:var(--gray); font:10px/1.35 'JetBrains Mono',monospace; }
#iv-precinct-table,#iv-county-table { table-layout: fixed; min-width: 540px; }
:is(#iv-precinct-table,#iv-county-table) th:first-child { width: 38%; }
:is(#iv-precinct-table,#iv-county-table) th:not(:first-child) { width: 15.5%; }
#iv-county-table thead th { white-space: normal; overflow-wrap: anywhere; }
:is(#iv-precinct-table,#iv-county-table) td:first-child,
:is(#iv-precinct-table,#iv-county-table) tbody th:first-child { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .iv-county-table-wrap { overflow-x: visible; }
  #iv-county-table { min-width: 0; table-layout: auto; }
  #iv-county-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  #iv-county-table tbody { display: block; }
  #iv-county-table tbody tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--lt_gray); }
  #iv-county-table tbody th, #iv-county-table tbody td { padding: 0; border: 0; white-space: normal; overflow-wrap: normal; }
  #iv-county-table tbody th:first-child { grid-column: 1 / 3; width: auto; font: 600 15px/1.4 'IBM Plex Sans', sans-serif; }
  #iv-county-table tbody td[data-column="responses"] { grid-column: 3; text-align: right; font-weight: 600; }
  #iv-county-table tbody td[data-column="responses"]::before { display: inline; margin-right: 6px; }
  #iv-county-table tbody td[data-column="dem"] { grid-row: 2; grid-column: 1; }
  #iv-county-table tbody td[data-column="rep"] { grid-row: 2; grid-column: 2; }
  #iv-county-table tbody td[data-column="unknown"] { grid-row: 2; grid-column: 3; }
  #iv-county-table tbody td[data-column="dem"], #iv-county-table tbody td[data-column="rep"], #iv-county-table tbody td[data-column="unknown"] { padding-top: 12px; text-align: left; }
  #iv-county-table tbody td::before { content: attr(data-label); display: block; color: var(--gray); font: 12px/1.3 'IBM Plex Sans', sans-serif; }
  #iv-county-table tbody td[data-column="dem"]::before, #iv-county-table tbody td[data-column="rep"]::before, #iv-county-table tbody td[data-column="unknown"]::before { min-height: 2.6em; }
  #iv-county-table .iv-county-count { display: block; font-size: 16px; line-height: 1.4; }
}
