.turnout-page .primary-race-panel {
    margin-top: 0;
}

.turnout-map-head {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 1.25rem 1.25rem 0.6rem;
}

.turnout-map-head > div:first-child {
    min-width: 0;
}

.turnout-map-head h3 {
    padding: 0;
}

.turnout-map-controls {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 0.65rem;
    justify-content: start;
    align-items: start;
    margin-bottom: 0.2rem;
}

.turnout-toggle-group {
    display: grid;
    gap: 0.22rem;
}

.turnout-toggle-label {
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.turnout-segmented {
    display: inline-flex;
    border: 1px solid var(--border);
    border-radius: 999px;
    overflow: hidden;
    background: color-mix(in srgb, var(--fg) 4%, var(--bg));
    min-width: 184px;
}

.turnout-toggle-btn {
    flex: 1 1 0;
    border: 0;
    background: transparent;
    color: var(--muted);
    font: inherit;
    font-size: 0.82rem;
    line-height: 1.1;
    padding: 0.38rem 0.68rem;
    cursor: pointer;
    white-space: nowrap;
    text-align: center;
    transition: background 0.15s ease, color 0.15s ease;
}

.turnout-toggle-btn + .turnout-toggle-btn {
    border-left: 1px solid var(--border);
}

.turnout-toggle-btn:hover {
    color: var(--fg);
}

.turnout-toggle-btn.active {
    background: #0f766e;
    color: #ffffff;
}

#turnout-map,
#turnout-density-map {
    width: 100%;
    background: color-mix(in srgb, var(--fg) 5%, var(--bg));
}

#turnout-map {
    height: 600px;
}

#turnout-density-map {
    height: 620px;
}

.turnout-summary-list {
    display: grid;
    gap: 0.9rem;
}

.turnout-summary-row {
    display: grid;
    gap: 0.18rem;
}

.turnout-summary-label {
    color: var(--muted);
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.turnout-summary-value {
    font-size: 1.05rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.turnout-summary-detail {
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

.turnout-legend-meta {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.55rem;
    color: var(--muted);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

.turnout-popup {
    min-width: 210px;
}

.turnout-popup .primary-popup-title {
    font-size: 0.95rem;
}

.turnout-popup-grid {
    display: grid;
    gap: 0.25rem;
    margin-top: 0.55rem;
    font-size: 0.8rem;
}

.turnout-popup-row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.turnout-popup-row span:last-child {
    font-weight: 600;
    color: var(--fg);
}

.turnout-density-peak-label {
    color: var(--muted);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.turnout-density-peak-name {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.turnout-density-peak-detail {
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.45;
    font-variant-numeric: tabular-nums;
}

.turnout-notes-section {
    margin-top: 1rem;
}

@media (max-width: 900px) {
    .turnout-map-controls {
        grid-auto-flow: row;
        justify-content: start;
    }
}

@media (max-width: 640px) {
    .turnout-map-controls {
        width: 100%;
        gap: 0.75rem;
    }

    .turnout-toggle-group {
        width: 100%;
    }

    .turnout-segmented {
        width: 100%;
        min-width: 0;
    }

    .turnout-toggle-btn {
        flex: 1 1 0;
        text-align: center;
    }

    .turnout-legend-meta {
        flex-direction: column;
        gap: 0.2rem;
    }
}
