/* A map first, one useful choice next, source depth on demand. */
.election-desk .ed-coverage-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(17rem,1fr);gap:2rem;align-items:center;padding:.5rem 0 1.5rem;border-bottom:1px solid var(--ed-line)}
.election-desk .ed-country-figure .ed-map{max-height:24rem}
.election-desk .ed-map-key{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem 1.1rem;font-size:.875rem;line-height:1.5;margin:.75rem 0}
.election-desk .ed-map-key>span{display:inline-flex;align-items:center;gap:.4rem}
.election-desk .ed-map-key i,.election-desk .ed-tile-count i{display:inline-block;width:.65rem;height:.65rem;flex:none;border:1px solid #526257;border-radius:50%;background:#e8eddf}
.election-desk .ed-map-key .ed-key-loaded,.election-desk .is-loaded .ed-tile-count i{background:#a8c2a5;border-color:#244a38}
.election-desk .ed-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.election-desk .ed-score-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}
.election-desk .ed-score-grid>div:first-child{grid-column:1/-1;border-bottom:1px solid var(--ed-line);padding-bottom:.8rem}
.election-desk .ed-score-grid b{font:500 2rem/1.1 Fraunces,Georgia,serif;letter-spacing:-.035em}
.election-desk .ed-score-grid>div:first-child b{font-size:3rem}
.election-desk .ed-score-grid span{font-size:.875rem;line-height:1.5;color:var(--ed-muted)}
.election-desk .ed-score-grid meter{width:100%;height:.55rem;margin-top:.35rem;border:0;background:var(--ed-soft);border-radius:1rem}
.election-desk meter::-webkit-meter-bar{background:var(--ed-soft);border:0}.election-desk meter::-webkit-meter-optimum-value{background:var(--ed-green)}.election-desk meter::-moz-meter-bar{background:var(--ed-green)}
.election-desk .ed-coverage-score .ed-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;margin:1rem 0 .5rem}
.election-desk .ed-coverage-score .ed-picker label{grid-column:1/-1;font-size:1rem}
.election-desk .ed-atlas-section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 1rem}
.election-desk .ed-atlas-section-title h2{margin:0}
.election-desk .ed-atlas-section-title a{font-size:.875rem}
.election-desk .ed-atlas-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.election-desk .ed-state-tile{display:grid;grid-template-columns:3.5rem minmax(0,1fr);grid-template-rows:1fr auto;column-gap:.75rem;align-items:center;min-height:6rem;border:1px solid var(--ed-line);padding:.8rem;border-radius:.5rem;text-decoration:none;background:var(--ed-panel)}
.election-desk .ed-state-tile>svg{width:3.5rem;height:3.5rem;grid-row:1/3;fill:#c5ccc0;stroke:#526257;stroke-width:.6;vector-effect:non-scaling-stroke}
.election-desk .ed-state-tile.is-loaded{background:#edf1e7;border-color:#8fa18c}
.election-desk .ed-state-tile.is-loaded>svg{fill:#6d8d68;stroke:#244a38}
.election-desk .ed-tile-name{font-size:1rem;font-weight:650;line-height:1.3}
.election-desk .ed-tile-count{display:flex;align-items:center;gap:.35rem;font-size:.875rem;line-height:1.5;color:var(--ed-muted)}
.election-desk .ed-state-tile:hover,.election-desk .ed-state-tile:focus-visible{border-color:var(--ed-green);box-shadow:0 0 0 2px var(--ed-green)}
.election-desk .ed-state-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0}
.election-desk .ed-state-title{display:flex;align-items:center;gap:.75rem;min-width:0}
.election-desk .ed-state-title>svg{width:3.5rem;height:3.5rem;fill:var(--ed-green);flex:none}
.election-desk .ed-state-title h1{font-size:clamp(1.75rem,4vw,2.75rem);margin:0;max-width:none}
.election-desk .ed-change-state{position:relative;flex:none}
.election-desk .ed-change-state>summary{font-size:1rem;min-height:44px}
.election-desk .ed-change-state[open]{z-index:4}
.election-desk .ed-change-state .ed-picker{position:absolute;right:0;top:100%;width:min(19rem,calc(100vw - 2.5rem));padding:1rem;background:var(--ed-panel);border:1px solid var(--ed-line);box-shadow:0 6px 20px #20362a18;grid-template-columns:1fr}
.election-desk .ed-state-header+.ed-tabs{margin:.5rem 0 .75rem}
.election-desk .ed-state-atlas{border:1px solid var(--ed-line);border-radius:.6rem;background:var(--ed-panel);padding:1.25rem;margin:0 0 1.5rem;scroll-margin-top:.5rem}
.election-desk .ed-atlas-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.35rem 1rem}
.election-desk .ed-atlas-heading h2{margin:0;font-size:1.5rem}
.election-desk .ed-atlas-source{font-size:.875rem;color:var(--ed-muted)}
.election-desk .ed-map-layers{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0}
.election-desk .ed-map-layers a{padding:.35rem .65rem;border:1px solid var(--ed-line);border-radius:.35rem;font-size:1rem;min-height:44px}
.election-desk .ed-map-layers a[aria-current]{background:var(--ed-green);color:var(--ed-panel);border:1px solid var(--ed-green)}
.election-desk .ed-state-map-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(15rem,1fr);gap:1.25rem;align-items:start}
.election-desk .ed-map-surface{position:relative;background:#f0f1e9;border-radius:.4rem}
.election-desk .ed-boundaries{display:block;width:100%;height:auto;min-height:12rem;touch-action:pan-y;cursor:default;border-radius:.4rem}
.election-desk .ed-boundaries[data-zoomed]{touch-action:none;cursor:grab}
.election-desk .ed-boundaries .ed-state-outline{fill:#fafbf6;stroke:#677a63;stroke-width:1.3;vector-effect:non-scaling-stroke;pointer-events:none}
.election-desk .ed-boundaries .ed-area{fill:#dce2d4;stroke:#6f8069;stroke-width:.7;vector-effect:non-scaling-stroke;transition:fill .12s ease}
.election-desk .ed-boundaries .ed-area.has-race{fill:#acc5a5;stroke:#3e5b39}
.election-desk .ed-boundaries a:hover .ed-area,.election-desk .ed-boundaries a:focus .ed-area{fill:#e4bc76;stroke:#6d4618;stroke-width:2}
.election-desk .ed-boundaries .ed-area.is-selected{fill:#e4bc76;stroke:#6d4618;stroke-width:2}
.election-desk .ed-boundaries a:focus{outline:none}
.election-desk .ed-map-tools{display:flex;flex-wrap:wrap;gap:.25rem;padding:.35rem;position:absolute;right:.35rem;bottom:.35rem;background:var(--ed-panel);border:1px solid var(--ed-line);border-radius:.4rem}
.election-desk .ed-map-tools[hidden]{display:none}
.election-desk .ed-map-tools button{min-width:44px;min-height:44px;padding:.3rem .6rem;border:1px solid var(--ed-line);background:var(--ed-panel);color:var(--ed-green);border-radius:.25rem;font-family:inherit;font-weight:600;font-size:1rem;line-height:1.2;cursor:pointer}
.election-desk .ed-map-tools button:first-child,.election-desk .ed-map-tools button:nth-child(2){font-size:1.25rem}
.election-desk .ed-area-picker{display:grid;gap:.5rem}
.election-desk .ed-area-picker label{font-size:1rem;font-weight:600}
.election-desk .ed-area-picker select{max-width:100%;min-width:0}
.election-desk .ed-area-answer{margin-top:1.25rem;border-top:1px solid var(--ed-line);padding-top:1rem}
.election-desk .ed-area-answer h3{font:500 1.6rem/1.2 Fraunces,Georgia,serif;margin:.5rem 0}
.election-desk .ed-mapped-race{display:flex;flex-direction:column;gap:.35rem;text-decoration:none;border:1px solid #8fa18c;border-radius:.4rem;padding:.75rem;margin:.75rem 0;min-height:44px;background:var(--ed-soft)}
.election-desk .ed-mapped-race b{font-size:1.125rem;line-height:1.4}
.election-desk .ed-mapped-race span{font-size:.875rem}
.election-desk .ed-map-evidence{border-top:1px solid var(--ed-line);margin-top:.75rem}
.election-desk .ed-map-evidence summary{font-size:.875rem}
.election-desk .ed-map-receipt{display:flex;flex-direction:column;gap:.2rem;border-bottom:1px solid var(--ed-line);padding:.65rem 0;font-size:.875rem;line-height:1.5}
.election-desk .ed-map-receipt code{font-size:.875rem;overflow-wrap:anywhere;word-break:break-all}
.election-desk .ed-roster-title{display:flex;align-items:center;gap:.6rem;font-size:1.625rem}
.election-desk .ed-roster-title span{font-family:inherit;font-weight:500;font-size:1rem;line-height:1.4;padding:.2rem .6rem;border-radius:1rem;background:var(--ed-soft)}
@media(max-width:1050px){.election-desk .ed-atlas-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.election-desk .ed-coverage-hero{grid-template-columns:1fr;gap:.75rem}.election-desk .ed-score-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.election-desk .ed-score-grid>div:first-child{grid-column:auto;border:0;padding:0}.election-desk .ed-score-grid b,.election-desk .ed-score-grid>div:first-child b{font-size:2rem}.election-desk .ed-state-map-layout{grid-template-columns:1fr}.election-desk .ed-map-detail{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.election-desk .ed-area-answer{margin:0;padding:0;border:0}.election-desk .ed-country-figure .ed-map{max-height:20rem}}
@media(max-width:560px){.election-desk .ed-atlas-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.election-desk .ed-state-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:.75rem;min-height:10rem}.election-desk .ed-state-tile>svg{height:3.5rem;width:3.5rem}.election-desk .ed-tile-count{margin-top:auto}.election-desk .ed-state-atlas{padding:.75rem}.election-desk .ed-map-detail{grid-template-columns:1fr}.election-desk .ed-atlas-heading h2{font-size:1.375rem}.election-desk .ed-map-layers{gap:.3rem}.election-desk .ed-map-layers a{padding:.35rem .5rem;font-size:.875rem}.election-desk .ed-coverage-score .ed-picker{grid-template-columns:1fr}.election-desk .ed-state-header{flex-wrap:wrap;gap:.35rem}.election-desk .ed-state-title>svg{width:2.5rem;height:2.5rem}.election-desk .ed-state-title{gap:.5rem}.election-desk .ed-area-answer{border-top:1px solid var(--ed-line);padding-top:.75rem}.election-desk .ed-boundaries{min-height:13rem}.election-desk .ed-map-tools{position:static;width:max-content;max-width:100%;margin-left:auto}.election-desk .ed-map-key{gap:.35rem .7rem}}
@media(prefers-reduced-motion:reduce){.election-desk .ed-boundaries .ed-area{transition:none}}

.election-desk .ed-map .has-roster{fill:#6d8d68}
.election-desk .ed-district-label{font-family:system-ui,sans-serif;font-weight:650;fill:#20362a;paint-order:stroke;stroke:#fffef9;stroke-width:3;stroke-linejoin:round;pointer-events:none;text-anchor:middle;dominant-baseline:central;font-size:var(--map-label-size,34px)}

.election-desk .ed-change-state{margin-left:auto}
.election-desk .ed-state-header+.ed-tabs a{padding-inline:.65rem}
@media(max-width:560px){.election-desk .ed-change-state[open]{flex-basis:100%}.election-desk .ed-change-state[open] .ed-picker{position:static;width:100%;max-width:none;margin:0}.election-desk .ed-change-state>summary{text-align:right}}


/* Compact marks inside full-size tap areas. */
.election-desk .ed-map-layers{gap:0 .4rem;margin:.35rem 0}
.election-desk .ed-map-layers a{padding:0;border:0;background:transparent;min-height:44px;font-size:.875rem;line-height:1.25}
.election-desk .ed-map-layers a span{display:inline-flex;align-items:center;padding:.25rem .6rem;min-height:32px;border:1px solid var(--ed-line);border-radius:.3rem;background:var(--ed-panel)}
.election-desk .ed-map-layers a[aria-current]{border:0;background:transparent;color:var(--ed-green)}
.election-desk .ed-map-layers a[aria-current] span{border-color:var(--ed-green);background:var(--ed-green);color:var(--ed-panel)}
.election-desk .ed-map-layers a:hover span{border-color:var(--ed-green)}
.election-desk .ed-state-header+.ed-state-tabs{gap:.4rem;margin:.25rem 0 .75rem;border-bottom:1px solid var(--ed-line)}
.election-desk .ed-state-tabs a{padding:.25rem .6rem;background:transparent;border:0;border-radius:0;min-height:44px;font-size:1rem}
.election-desk .ed-state-tabs a[aria-current]{color:var(--ed-green);background:transparent;border:0;border-bottom:2px solid var(--ed-green)}

/* Inspectable shapes, with a persistent card that never covers the map. */
.election-desk .ed-map-preview{display:grid;grid-template-columns:3.5rem minmax(0,1fr) 44px;gap:.65rem .75rem;align-items:center;background:var(--ed-panel);border:1px solid var(--ed-line);border-radius:.5rem;padding:.75rem;margin-top:.6rem}
.election-desk .ed-map-preview[hidden]{display:none}
.election-desk .ed-preview-shape{width:3.5rem;height:3.5rem;fill:var(--ed-green);stroke:var(--ed-green);stroke-width:1;vector-effect:non-scaling-stroke}
.election-desk .ed-preview-heading{min-width:0}
.election-desk .ed-preview-heading h3{font:500 1.25rem/1.25 Fraunces,Georgia,serif;margin:.15rem 0;overflow-wrap:anywhere}
.election-desk .ed-preview-heading .ed-caption{font-size:.875rem}
.election-desk .ed-preview-close{grid-column:3;grid-row:1;align-self:start;width:44px;min-height:44px;padding:0;font-size:1.5rem;border:1px solid var(--ed-line);border-radius:.3rem;background:var(--ed-panel);color:var(--ed-green)}
.election-desk .ed-preview-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .75rem}
.election-desk .ed-preview-facts>div{display:flex;flex-direction:column}
.election-desk .ed-preview-facts b{font-size:1.5rem;font-weight:500;line-height:1.2}
.election-desk .ed-preview-facts span{font-size:.875rem;line-height:1.5}
.election-desk .ed-preview-facts>.ed-preview-scope{grid-column:1/-1}
.election-desk .ed-preview-facts>b{grid-column:1/-1;font-size:1.125rem}
.election-desk .ed-map-preview>.ed-primary{grid-column:1/-1;justify-self:start;min-height:44px;font-size:1rem}
.election-desk .ed-map-detail>.ed-map-preview{margin:0 0 1rem;grid-column:1/-1}
.election-desk .ed-map-detail:has(>.ed-map-preview:not([hidden]))>.ed-area-answer{display:none}
.election-desk .ed-boundaries a[data-inspected] .ed-area,.election-desk .ed-map a[data-inspected] path{fill:#e4bc76;stroke:#6d4618;stroke-width:2;vector-effect:non-scaling-stroke}
