.iv-approval-page main {padding-top: 42px; padding-bottom: 56px;}
.iv-approval-page [hidden] {display: none !important;}
.iv-approval-intro {max-width: 740px; font-size: 20px; line-height: 1.55;}
.iv-approval-date {font-family: 'JetBrains Mono', monospace; font-size: 12px; line-height: 1.6; color: var(--iv-page-muted); margin: 20px 0 30px;}
.iv-approval-nav, .iv-approval-chambers, .iv-approval-layers, .iv-approval-table-controls {display:flex; align-items: end; flex-wrap: wrap; gap: 12px;}
.iv-approval-nav {padding: 20px 0; border-top: 1px solid var(--iv-rule); border-bottom: 1px solid var(--iv-rule); margin-bottom: 30px;}
.iv-approval-nav > a {display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--iv-rule-strong);border-radius:0;background:transparent;color:var(--iv-ink);font:13px 'JetBrains Mono',monospace;text-decoration:none;white-space:nowrap;box-sizing:border-box;}
.iv-approval-nav > a:hover {border-color:var(--iv-ink);}
.iv-approval-page label {display:flex; flex-direction:column; gap:7px; font: 12px 'JetBrains Mono', monospace;}
.iv-approval-page select, .iv-approval-page input, .iv-approval-page button {font: 13px 'JetBrains Mono', monospace; color:var(--iv-ink);}
.iv-approval-page select, .iv-approval-page input {background:var(--iv-paper); border:1px solid var(--iv-rule-strong); border-radius: 0; min-height:44px; padding: 10px 12px; max-width:100%;}
.iv-approval-page button {background:transparent; border:1px solid var(--iv-rule-strong); border-radius:0; min-height:44px; padding: 10px 16px; cursor:pointer;}
.iv-approval-page button:hover {border-color:var(--iv-ink);}
.iv-approval-page button[aria-pressed="true"] {background:#000; color:#fff; border-color:#000;}
.iv-approval-tiles {display:block; width:100%; max-width:761px; height:auto; margin:28px auto 0; overflow:visible;}
.iv-approval-page .iv-approval-tile:focus-visible {outline:none;}
.iv-approval-tile-shape {fill:var(--iv-tile-color); pointer-events:all; stroke:var(--iv-rule); stroke-width:1.5; transition:filter 120ms ease,stroke-width 120ms ease;}
.iv-approval-tile-label {fill:var(--iv-tile-ink); font-family:var(--iv-font-mono); font-weight:750;}
.iv-approval-tile:hover .iv-approval-tile-shape {filter:brightness(.94); stroke:var(--iv-page-text); stroke-width:2.5;}
.iv-approval-legend {max-width:400px; margin:20px auto 0; font:11px 'JetBrains Mono',monospace;}
.iv-approval-legend strong {display:block; font-weight:500; margin-bottom:10px;}
.iv-approval-scale {height:12px; background:linear-gradient(to right,#8b56a8,#eeeae1,#2e7d66); border:1px solid var(--iv-rule-strong);}
.iv-approval-scale-labels {display:flex; justify-content:space-between; gap:8px; margin-top:7px;}
.iv-approval-scale-labels:last-child {font-size:10px;}
.iv-approval-chambers {margin:24px 0 16px;}
.iv-approval-layers {margin-bottom:18px;}
.iv-approval-workspace {min-height:300px;}
.iv-approval-map-column {min-width:0; max-width:900px; margin:0 auto;}
#iv-approval-map {width:100%; height:auto; display:block; touch-action:pan-y;}
.iv-approval-district {stroke:var(--iv-paper); stroke-width:.65px; vector-effect:non-scaling-stroke; cursor:default;}
.iv-approval-district:hover, .iv-approval-district:focus-visible {  outline:none;}
.iv-approval-district:hover {
  stroke: var(--iv-ink);
  stroke-width: 2px;
}

.iv-approval-outline {fill:var(--iv-panel); stroke:var(--iv-rule-strong); stroke-width:.6px; vector-effect:non-scaling-stroke; pointer-events:none;}
.iv-approval-hatch-bg {fill:var(--iv-paper);}
.iv-approval-hatch-line {stroke:var(--iv-page-muted); stroke-width:1.5;}
.iv-approval-hatch-key {display:flex; align-items:center; gap:8px; margin-top:14px;}
.iv-approval-hatch-key > span {width:24px;height:18px; background:repeating-linear-gradient(135deg,var(--iv-paper),var(--iv-paper) 4px,var(--iv-page-muted) 4px,var(--iv-page-muted) 5px);border:1px solid var(--iv-rule);}
.iv-approval-breakdown {margin-top:50px;}
.iv-approval-table-controls {margin:24px 0 20px;}
.iv-approval-table-scroll {max-height:560px; overflow-y:auto; border-bottom:1px solid var(--iv-rule);}
.iv-approval-range-table {width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; font:13px 'JetBrains Mono',monospace;}
.iv-approval-col-district {width:28%;}
.iv-approval-col-approve {width:14%;}
.iv-approval-col-disapprove {width:17%;}
.iv-approval-col-net {width:15%;}
.iv-approval-col-range {width:26%;}
.iv-approval-range-table th, .iv-approval-range-table td {padding:14px 12px; border-bottom:1px solid var(--iv-rule); text-align:right; white-space:normal; overflow-wrap:anywhere;}
.iv-approval-range-table th:first-child {text-align:left; padding-left:0;}
.iv-approval-range-table tbody th {font:500 15px/1.4 'IBM Plex Sans',sans-serif;}
.iv-approval-range-table thead th {position:sticky; top:0; z-index:1; background:var(--iv-paper); font-size:11px; font-weight:500; vertical-align:bottom;}
.iv-approval-range-table td:last-child, .iv-approval-range-table th:last-child {padding-right:2px;}
.iv-approval-range-table tbody tr[data-iv-district] {cursor:default;}
.iv-approval-range-table tbody tr[data-iv-district]:hover, .iv-approval-range-table tbody tr[data-iv-district]:focus-visible {background:var(--iv-panel);}
.iv-approval-range-table small {display:block; font:10px/1.5 'JetBrains Mono',monospace; margin-top:5px; white-space:normal;}
.iv-approval-range-table .iv-approval-unranked th {text-align:left; white-space:normal; font-size:11px; font-weight:500;}
.iv-approval-methodology {margin-top:60px;padding-top:35px;border-top:1px solid var(--iv-rule);}
.iv-approval-methodology > p {max-width:850px;font-size:15px;line-height:1.7;}
#iv-approval-error {margin:20px 0;}
#iv-approval-tooltip {position:fixed; z-index:1000; min-width:150px; max-width:min(260px,calc(100vw - 20px)); padding:10px 12px; border:1px solid var(--brand_black); border-radius:0; background:var(--brand_white); color:var(--brand_black); box-shadow:4px 4px 0 color-mix(in srgb,var(--brand_black) 16%,transparent); font:12px/1.4 var(--iv-font-mono); pointer-events:none;}
#iv-approval-tooltip strong, #iv-approval-tooltip span {display:block; color:var(--brand_black);}
#iv-approval-tooltip strong {padding-bottom:5px; border-bottom:1px solid var(--iv-rule-soft); font-size:13px; font-weight:650;}
#iv-approval-tooltip span {margin-top:5px;}
@media(max-width:800px) {
.iv-approval-workspace {min-height:0;}
}
@media(max-width:500px) {
.iv-approval-page main {padding-top:25px;}
.iv-approval-intro {font-size:17px;}
.iv-approval-date {font-size:11px;}
.iv-approval-nav {gap:10px;align-items:end;}
.iv-approval-nav label {flex:1;min-width:160px;}
.iv-approval-legend {font-size:10px;}
.iv-approval-table-controls {align-items:stretch;}
.iv-approval-table-controls label {flex:1;}
.iv-approval-chambers button, .iv-approval-layers button {flex:1;padding:10px;}
.iv-approval-range-table th, .iv-approval-range-table td {padding:12px 3px;}
.iv-approval-range-table {font-size:13px;}
.iv-approval-range-table tbody th {font-size:13px;}
.iv-approval-range-table thead th {font-size:11px; line-height:1.5;}
.iv-approval-col-district {width:22%;}
.iv-approval-col-approve {width:15%;}
.iv-approval-col-disapprove {width:20%;}
.iv-approval-col-net {width:15%;}
.iv-approval-col-range {width:28%;}
}
@media(prefers-reduced-motion:reduce) {.iv-approval-tile-shape {transition:none;}}

#iv-approval-state-title, #iv-approval-workspace {scroll-margin-top:120px;}

@media(max-width:360px) {.iv-approval-range-table {font-size:11px;} .iv-approval-range-table thead th {font-size:10px;}}

.iv-approval-history {margin-top:50px;scroll-margin-top:110px;}
.iv-approval-history-controls {display:flex;flex-wrap:wrap;gap:16px;margin:24px 0;}
.iv-approval-history-controls label:first-child {min-width:220px;max-width:100%;}
.iv-approval-history-values {display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px;font:12px/1.6 var(--iv-font-mono);min-height:54px;margin-bottom:12px;}
.iv-approval-history-values time {flex-basis:100%;color:var(--iv-page-muted);}
.iv-approval-history-values strong {font-size:18px;color:var(--iv-page-text);}
#iv-approval-history-comparison {border-bottom:2px dashed var(--iv-page-text);}
#iv-approval-history-chart {display:block;width:100%;height:auto;touch-action:pan-y;}
.iv-approval-history-grid line {stroke:var(--iv-rule);}
.iv-approval-history-grid text,.iv-approval-history-axis text {fill:var(--iv-page-muted);font:11px var(--iv-font-mono);}
.iv-approval-history-axis path,.iv-approval-history-axis line {stroke:var(--iv-rule-strong);}
.iv-approval-history-reference {stroke:var(--iv-rule-strong);stroke-dasharray:3 4;}
.iv-approval-history-band {fill:url(#iv-approval-history-band-sign);opacity:.16;}
.iv-approval-history-line {fill:none;stroke:url(#iv-approval-history-sign);stroke-width:2.5;}
.iv-approval-history-state-line {fill:none;stroke:var(--iv-page-text);stroke-width:1.6;stroke-dasharray:6 4;}
.iv-approval-history-cursor {stroke:var(--iv-page-muted);stroke-dasharray:2 3;}
.iv-approval-history-dot {stroke:var(--iv-paper);stroke-width:2;}
.iv-approval-district,.iv-approval-range-table tbody tr[data-iv-district] {cursor:pointer;}
.iv-approval-district.iv-approval-history-selected {stroke:var(--iv-orange);stroke-width:2.5;}
.iv-approval-range-table .iv-approval-history-selected {background:var(--iv-panel);}
@media(max-width:500px) {
  .iv-approval-history-controls label {flex:1;min-width:0;}
  .iv-approval-history-controls label:first-child {min-width:0;flex-basis:100%;}
  .iv-approval-history-values {gap:6px 12px;font-size:11px;}
}

/* Both national and district rows share one net-approval scale (-100 to +100). */
.iv-approval-col-entity {width:28%;}
.iv-approval-range-table th,.iv-approval-range-table td {vertical-align:middle;}
.iv-approval-range-table tbody th,.iv-approval-range-table tbody td {padding-top:2px;padding-bottom:2px;}
.iv-approval-range-table thead th:last-child {text-align:center;}
.iv-approval-range-table tbody tr:nth-child(even) {background:var(--iv-panel);}
.iv-approval-range-table tbody th:first-child {padding-left:12px;}
.iv-approval-range-table tbody th a {color:inherit;text-decoration:none;display:block;padding:0;}

.iv-approval-range-table [data-iv-state] {cursor:pointer;}
.iv-approval-range {height:40px;min-width:0;text-align:left;}
.iv-approval-range-track {position:relative;height:40px;margin:0 46px;}
.iv-approval-range-rail {display:none;}
.iv-approval-range-zero {display:none;}
.iv-approval-range-bar {position:absolute;top:24px;height:10px;left:var(--iv-range-left);width:var(--iv-range-width);min-width:1px;background:linear-gradient(to right,#8b56a8 0%,#8b56a8 var(--iv-range-zero),#2e7d66 var(--iv-range-zero),#2e7d66 100%);}
.iv-approval-range-low,.iv-approval-range-high {position:absolute;top:29px;white-space:nowrap;font:12px/1 var(--iv-font-mono);color:var(--iv-page-text);}
.iv-approval-range-low {left:var(--iv-range-left);transform:translate(calc(-100% - 8px),-50%);}
.iv-approval-range-high {left:calc(var(--iv-range-left) + var(--iv-range-width));transform:translate(8px,-50%);}
.iv-approval-range-point {position:absolute;left:var(--iv-range-point);top:0;bottom:10px;width:0;}
.iv-approval-range-point strong {position:absolute;top:1px;left:0;transform:translateX(-50%);font:600 15px/1 var(--iv-font-mono);color:var(--iv-page-text);white-space:nowrap;}
.iv-approval-range-point i {position:absolute;top:19px;height:20px;left:-1px;width:2px;background:var(--iv-page-text);}
@media(max-width:500px) {
  .iv-approval-col-entity {width:29%;}
  .iv-approval-range-table tbody th:first-child {padding-left:6px;}
  .iv-approval-range-table tbody th {font-size:13px;}
  .iv-approval-range-table td {padding-left:2px;padding-right:2px;}
  .iv-approval-range-track {margin:0 39px;}
  .iv-approval-range-low,.iv-approval-range-high {font-size:11px;}
  .iv-approval-range-point strong {font-size:13px;}
  .iv-approval-range-table thead th {font-size:10px;}
}

#iv-approval-national {scroll-margin-top:110px;}

.iv-approval-page :is(a,button), .iv-approval-page :is(a,button):is(:hover,:focus,:active,:visited) {text-decoration:none;}

.iv-approval-nav > a, .iv-approval-nav select {height:44px;min-height:44px;box-sizing:border-box;}
.iv-approval-range-table tbody tr:nth-child(even) {background:color-mix(in srgb,var(--iv-page-text) 5%,var(--iv-paper));}

.iv-approval-tile-net {fill:var(--iv-tile-ink);font-family:var(--iv-font-mono);font-weight:500;}

/* FiftyPlusOne's filled-button brand color: --color-purple-dark, verified 2026-10-03. */
.iv-approval-source {margin:-14px 0 30px;}
.iv-approval-page .iv-approval-source a {display:inline-flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;max-width:100%;min-height:44px;padding:10px 16px;border:1px solid #750092;border-radius:0;background:#750092;color:#fff;font:13px/1.5 var(--iv-font-mono);text-decoration:none;}
.iv-approval-page .iv-approval-source a:is(:visited,:hover,:focus,:active) {color:#fff;}
.iv-approval-page .iv-approval-source a:hover {filter:brightness(.9);text-decoration:none;}
