/* =========================================================
   D — Expanded Turnout / Mobilization Study
   ========================================================= */


/* =========================================================
   Visibility
   ========================================================= */

.turnout-detail {
    display: none;
}


.dashboard-panel--turnout.dashboard-panel--expanded
.turnout-dynamic-chart {
    display: none !important;
}


.dashboard-panel--turnout.dashboard-panel--expanded
.turnout-detail {
    display: flex !important;
    flex: 1;
    flex-direction: column;

    width: 100%;

    min-width: 0;
    min-height: 0;
}


.dashboard-panel--turnout.dashboard-panel--expanded
.dashboard-panel__body--turnout {
    display: flex;
    flex-direction: column;

    min-width: 0;
    min-height: 0;

    overflow: auto;
}


/* =========================================================
   Intro
   ========================================================= */

.turnout-detail__intro {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 1rem;

    margin-bottom: 0.5rem;
}


.turnout-detail__eyebrow {
    margin-bottom: 0.12rem;

    color: var(
        --dashboard-text-soft,
        #98a2b3
    );

    font-size: 0.43rem;
    font-weight: 750;

    letter-spacing: 0.04em;

    text-transform: uppercase;
}


.turnout-detail__title {
    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.68rem;
    font-weight: 800;
}


.turnout-detail__scope {
    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.49rem;
    font-weight: 750;
}


/* =========================================================
   Legend
   ========================================================= */

.turnout-detail__legend {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 0.75rem;

    margin-bottom: 0.7rem;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.47rem;
    font-weight: 700;
}


.turnout-detail__legend span {
    display: inline-flex;
    align-items: center;

    gap: 0.28rem;
}


.turnout-detail__key {
    display: inline-block;

    width: 9px;
    height: 9px;

    border-radius: 2px;
}


.turnout-detail__key--jlp {
    background: #16875d;
}


.turnout-detail__key--pnp {
    background: #f47a23;
}


.turnout-detail__key--other {
    background: #8a94a6;
}


.turnout-detail__key--nonvote {
    background: #dce2e9;
}


/* =========================================================
   Electorate Bars
   ========================================================= */

.turnout-detail__bars {
    display: grid;

    gap: 0.7rem;
}


.turnout-detail__bar-row {
    display: grid;

    grid-template-columns:
        105px
        minmax(
            300px,
            1fr
        )
        minmax(
            320px,
            auto
        );

    align-items: center;

    gap: 0.7rem;
}


.turnout-detail__bar-meta {
    display: grid;

    gap: 0.1rem;
}


.turnout-detail__bar-meta strong {
    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.58rem;
}


.turnout-detail__bar-meta span {
    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.44rem;
}


.turnout-detail__electorate-bar {
    display: flex;

    height: 26px;

    overflow: hidden;

    background: #eef1f5;

    border-radius: 0.35rem;
}


.turnout-detail__segment {
    height: 100%;
}


.turnout-detail__segment--jlp {
    background: #16875d;
}


.turnout-detail__segment--pnp {
    background: #f47a23;
}


.turnout-detail__segment--other {
    background: #8a94a6;
}


.turnout-detail__segment--nonvote {
    background: #dce2e9;
}


.turnout-detail__bar-values {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(
                0,
                1fr
            )
        );

    gap: 0.4rem;
}


.turnout-detail__value {
    display: grid;

    gap: 0.08rem;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.4rem;
}


.turnout-detail__value strong {
    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.49rem;
}


.turnout-detail__value--jlp strong {
    color: #16875d;
}


.turnout-detail__value--pnp strong {
    color: #f47a23;
}


/* =========================================================
   Compare Summary
   ========================================================= */

.turnout-detail__compare {
    margin-top: 1rem;

    overflow: hidden;

    border: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );

    border-radius: 0.5rem;
}


.turnout-detail__compare-head,
.turnout-detail__compare-row {
    display: grid;

    grid-template-columns:
        minmax(
            220px,
            1fr
        )
        110px
        110px
        110px;

    gap: 0.5rem;

    align-items: center;

    padding:
        0.48rem
        0.6rem;
}


.turnout-detail__compare-head {
    color: var(
        --dashboard-text-muted,
        #667085
    );

    background: var(
        --dashboard-background,
        #f7f9fb
    );

    font-size: 0.43rem;
    font-weight: 750;
}


.turnout-detail__compare-row {
    color: var(
        --dashboard-text,
        #344054
    );

    border-top: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );

    font-size: 0.49rem;
}


/* =========================================================
   Delta
   ========================================================= */

.turnout-detail__delta {
    font-weight: 750;
}


.turnout-detail__delta--up {
    color: #16875d;
}


.turnout-detail__delta--down {
    color: #d65f16;
}


.turnout-detail__delta--flat {
    color: var(
        --dashboard-text-muted,
        #667085
    );
}


/* =========================================================
   Accordion
   ========================================================= */

.turnout-detail__accordion {
    margin-top: 0.9rem;

    overflow: hidden;

    border: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );

    border-radius: 0.5rem;
}


.turnout-detail__accordion-button {
    display: grid;

    grid-template-columns:
        18px
        auto
        1fr;

    align-items: center;

    gap: 0.4rem;

    width: 100%;

    padding:
        0.62rem
        0.7rem;

    color: var(
        --dashboard-text,
        #344054
    );

    background: var(
        --dashboard-background,
        #f7f9fb
    );

    border: 0;

    cursor: pointer;

    font: inherit;

    text-align: left;
}


.turnout-detail__accordion-button strong {
    font-size: 0.51rem;
}


.turnout-detail__accordion-note {
    justify-self: end;

    color: var(
        --dashboard-text-soft,
        #98a2b3
    );

    font-size: 0.41rem;
    font-weight: 650;
}


.turnout-detail__accordion-arrow {
    display: inline-block;

    transition:
        transform
        120ms
        ease;
}


.turnout-detail__accordion.is-open
.turnout-detail__accordion-arrow {
    transform: rotate(90deg);
}


.turnout-detail__accordion-content {
    max-height: 430px;

    overflow: auto;

    background: var(
        --dashboard-surface,
        #ffffff
    );
}


/* =========================================================
   Deep Header
   ========================================================= */

.turnout-detail__deep-head {
    display: grid;

    grid-template-columns:
        auto
        minmax(
            0,
            1fr
        )
        auto;

    align-items: center;

    gap: 0.7rem;

    padding:
        0.55rem
        0.65rem;

    border-bottom: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );
}


.turnout-detail__back {
    padding:
        0.32rem
        0.48rem;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    background: transparent;

    border: 1px solid
        var(
            --dashboard-border,
            #dfe5ec
        );

    border-radius: 0.35rem;

    cursor: pointer;

    font: inherit;
    font-size: 0.42rem;
    font-weight: 750;
}


.turnout-detail__deep-context {
    display: grid;

    gap: 0.08rem;

    min-width: 0;
}


.turnout-detail__deep-context strong {
    overflow: hidden;

    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.5rem;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.turnout-detail__deep-context span {
    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.4rem;
}


/* =========================================================
   Cluster / PD Tabs
   ========================================================= */

.turnout-detail__deep-tabs {
    display: inline-flex;

    padding: 2px;

    background: var(
        --dashboard-background,
        #f2f5f8
    );

    border-radius: 0.38rem;
}


.turnout-detail__deep-tab {
    padding:
        0.32rem
        0.5rem;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    background: transparent;

    border: 0;
    border-radius: 0.3rem;

    cursor: pointer;

    font: inherit;
    font-size: 0.41rem;
    font-weight: 750;
}


.turnout-detail__deep-tab.is-active {
    color: var(
        --dashboard-text,
        #344054
    );

    background: var(
        --dashboard-surface,
        #ffffff
    );
}


/* =========================================================
   Drill Links
   ========================================================= */

.turnout-detail__drill {
    display: inline-flex;
    align-items: center;

    gap: 0.35rem;

    padding: 0;

    color: var(
        --dashboard-text,
        #344054
    );

    background: transparent;

    border: 0;

    cursor: pointer;

    font: inherit;
    font-weight: 750;
}


.turnout-detail__drill:hover {
    text-decoration: underline;
}


.turnout-detail__drill span {
    color: var(
        --dashboard-text-soft,
        #98a2b3
    );
}


/* =========================================================
   Tables
   ========================================================= */

.turnout-detail__table-wrap {
    width: 100%;

    overflow: auto;
}


.turnout-detail__table {
    width: 100%;

    min-width: 850px;

    border-collapse: collapse;

    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.48rem;
}


.turnout-detail__table--compare {
    min-width: 1700px;
}


.turnout-detail__table th,
.turnout-detail__table td {
    padding:
        0.52rem
        0.58rem;

    border-bottom: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );

    text-align: right;

    white-space: nowrap;
}


.turnout-detail__table th:first-child,
.turnout-detail__table td:first-child {
    text-align: left;
}


.turnout-detail__table thead th {
    position: sticky;

    top: 0;

    z-index: 2;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    background: var(
        --dashboard-background,
        #f7f9fb
    );

    font-size: 0.41rem;
    font-weight: 750;
}


.turnout-detail__table tbody tr:last-child td {
    border-bottom: 0;
}


.turnout-detail__table tbody tr:hover {
    background: var(
        --dashboard-background,
        #f8fafc
    );
}


.turnout-detail__jlp {
    color: #16875d;

    font-weight: 750;
}


.turnout-detail__pnp {
    color: #f47a23;

    font-weight: 750;
}


/* =========================================================
   Deep Warning / Mock Note
   ========================================================= */

.turnout-detail__deep-warning {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 0.25rem;

    min-height: 160px;

    padding: 1rem;

    text-align: center;
}


.turnout-detail__deep-warning strong {
    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.54rem;
}


.turnout-detail__deep-warning span {
    max-width: 500px;

    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.45rem;
    line-height: 1.45;
}


.turnout-detail__mock-note {
    padding:
        0.45rem
        0.65rem;

    color: var(
        --dashboard-text-soft,
        #8a95a6
    );

    border-top: 1px solid
        var(
            --dashboard-border,
            #e5e9ef
        );

    font-size: 0.4rem;
}


/* =========================================================
   Footer Note
   ========================================================= */

.turnout-detail__note {
    margin-top: auto;

    padding-top: 0.6rem;

    color: var(
        --dashboard-text-soft,
        #8a95a6
    );

    font-size: 0.42rem;
    line-height: 1.45;
}


/* =========================================================
   Local / Empty
   ========================================================= */

.turnout-detail__local,
.turnout-detail__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 0.25rem;

    min-height: 140px;

    padding: 1rem;

    text-align: center;
}


.turnout-detail__local strong {
    color: var(
        --dashboard-text,
        #344054
    );

    font-size: 0.58rem;
}


.turnout-detail__local span,
.turnout-detail__empty {
    color: var(
        --dashboard-text-muted,
        #667085
    );

    font-size: 0.46rem;
    line-height: 1.45;
}


/* =========================================================
   Dark Mode
   ========================================================= */

[data-theme="dark"]
.turnout-detail__title,

[data-theme="dark"]
.turnout-detail__bar-meta strong,

[data-theme="dark"]
.turnout-detail__value strong,

[data-theme="dark"]
.turnout-detail__deep-context strong,

[data-theme="dark"]
.turnout-detail__drill,

[data-theme="dark"]
.turnout-detail__deep-warning strong,

[data-theme="dark"]
.turnout-detail__local strong {
    color: #f4f7fb;
}


[data-theme="dark"]
.turnout-detail__segment--nonvote {
    background: #344054;
}


[data-theme="dark"]
.turnout-detail__compare,

[data-theme="dark"]
.turnout-detail__accordion {
    border-color: #2d394c;
}


[data-theme="dark"]
.turnout-detail__compare-head,

[data-theme="dark"]
.turnout-detail__accordion-button {
    background: #111927;
}


[data-theme="dark"]
.turnout-detail__compare-row,

[data-theme="dark"]
.turnout-detail__deep-head,

[data-theme="dark"]
.turnout-detail__mock-note {
    border-color: #2d394c;
}


[data-theme="dark"]
.turnout-detail__accordion-content {
    background: #172033;
}


[data-theme="dark"]
.turnout-detail__deep-tabs {
    background: #111927;
}


[data-theme="dark"]
.turnout-detail__deep-tab.is-active {
    color: #f4f7fb;

    background: #253146;
}


[data-theme="dark"]
.turnout-detail__table {
    color: #dce3ec;

    background: #172033;
}


[data-theme="dark"]
.turnout-detail__table th,
[data-theme="dark"]
.turnout-detail__table td {
    border-color: #2d394c;
}


[data-theme="dark"]
.turnout-detail__table thead th {
    color: #aab4c3;

    background: #111927;
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 1050px) {

    .turnout-detail__bar-row {
        grid-template-columns:
            90px
            minmax(
                250px,
                1fr
            );
    }


    .turnout-detail__bar-values {
        grid-column:
            2 /
            -1;
    }


    .turnout-detail__deep-head {
        grid-template-columns:
            auto
            1fr;
    }


    .turnout-detail__deep-tabs {
        grid-column:
            1 /
            -1;
    }

}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 700px) {

    .turnout-detail__intro {
        align-items: flex-start;
        flex-direction: column;

        gap: 0.2rem;
    }


    .turnout-detail__bar-row {
        grid-template-columns: 1fr;
    }


    .turnout-detail__bar-values {
        grid-column: auto;

        grid-template-columns:
            repeat(
                2,
                minmax(
                    0,
                    1fr
                )
            );
    }


    .turnout-detail__compare {
        overflow-x: auto;
    }


    .turnout-detail__compare-head,
    .turnout-detail__compare-row {
        min-width: 500px;

        grid-template-columns:
            minmax(
                150px,
                1fr
            )
            70px
            70px
            80px;
    }


    .turnout-detail__accordion-button {
        grid-template-columns:
            18px
            1fr;
    }


    .turnout-detail__accordion-note {
        display: none;
    }


    .turnout-detail__deep-head {
        display: flex;
        align-items: stretch;
        flex-direction: column;
    }


    .turnout-detail__deep-tabs {
        width: 100%;
    }


    .turnout-detail__deep-tab {
        flex: 1;
    }

}