/* Named workspace panels keep mobile reordering independent of callback output. */
.tab3-preview-card {
    color: inherit;
    font-family: inherit;
    text-align: center;
}

.tab3-preview-card:focus-visible {
    outline: 3px solid var(--dashboard-primary, #185d9b);
    outline-offset: 2px;
}

@media (max-width: 767px) {
    .tab2-layout {
        display: flex !important;
        flex-direction: column;
        gap: 16px;
        height: auto !important;
        overflow: visible !important;
        padding: 12px;
    }

    .tab2-input-panel,
    .tab2-results-panel,
    .tab2-detail-panel {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        flex: 0 0 auto !important;
        padding: 16px !important;
        border: 1px solid var(--dashboard-border, #dce3e9) !important;
        border-radius: 16px;
        background: var(--dashboard-surface, #fff);
        box-shadow: 0 2px 8px rgb(30 48 70 / 4%);
    }

    .tab2-results-workspace,
    .tab2-results-columns {
        display: contents !important;
    }

    .tab2-input-title { order: 1; }
    .tab2-schoolforms { order: 2; margin-bottom: 16px !important; }
    .tab2-values-heading {
        order: 3;
        margin: 0 0 8px !important;
        font-size: 1rem;
        text-align: left !important;
    }
    .tab2-profile-controls { order: 4; }
    #tab2-warning { order: 5; }
    #tab2-warning:empty { display: none; }
    #tab2-input-profile {
        order: 6;
        text-align: left !important;
        font-size: 0.9rem !important;
        line-height: 1.5;
    }
    .tab2-profile-chart { order: 7; }

    .tab2-mobile-instructions {
        display: block !important;
        margin: 0;
        font-size: 0.875rem;
        line-height: 1.5;
        color: var(--dashboard-muted, #526173);
    }

    #tab2-pie-chart { height: 220px !important; }
    #tab2-detail-pie-graph { height: 270px !important; }

    #color-slider-legend {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        margin-top: 0 !important;
    }
    #color-slider-legend > div {
        gap: 10px !important;
        min-height: 24px;
    }
    #color-slider-legend > div > div { flex: 0 0 12px; }
    #color-slider-legend span { font-size: 0.875rem !important; }
    #color-slider-legend span:last-child {
        flex: 0 0 48px !important;
        text-align: right;
        font-variant-numeric: tabular-nums;
    }

    #tab2-similarity-scroll-container {
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
        padding-right: 0 !important;
    }
    #tab2-similarity-buttons-container { gap: 8px !important; }
    #tab2-similarity-buttons-container .btn {
        min-height: 48px;
        white-space: normal;
        line-height: 1.4;
        margin-bottom: 0 !important;
    }
    .tab2-delta-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .tab2-delta-cell { padding: 9px 10px !important; }
    .tab2-delta-cell > span {
        font-size: 0.875rem !important;
        line-height: 1.4 !important;
    }
    .tab2-delta-cell > span:first-child {
        white-space: normal !important;
        overflow-wrap: anywhere;
    }
    #tab2-detail-accordion-container { padding: 0 !important; }
    .tab2-detail-category-legend { margin: 0; }
    .tab2-detail-category-legend > .col-auto {
        width: 100%;
        padding: 0;
    }
    .tab2-detail-category-legend p { margin-bottom: 8px; }

    .tab3-page {
        height: auto !important;
        overflow: visible !important;
        padding: 12px !important;
    }
    .tab3-layout {
        display: flex !important;
        flex-direction: column;
        gap: 16px !important;
        height: auto !important;
        overflow: visible !important;
    }
    .tab3-layout > .map-pane,
    .tab3-layout > .tab3-right-container {
        display: contents !important;
    }
    .tab3-filter-panel,
    .tab3-preview-panel,
    .tab3-info-panel,
    .tab3-legend-panel {
        padding: 16px;
        border: 1px solid var(--dashboard-border, #dce3e9) !important;
        border-radius: 16px;
        background: var(--dashboard-surface, #fff) !important;
        min-width: 0;
    }
    .tab3-filter-panel { order: 1; }
    .tab3-filter-panel h2 {
        margin-bottom: 10px;
        font-size: 1.2rem;
        font-weight: 700;
    }
    .tab3-intro { margin: 0 0 16px; line-height: 1.5; }
    .tab3-filter-panel label { margin-bottom: 6px; font-weight: 600; }
    .tab3-map-panel {
        order: 2;
        flex: 0 0 auto !important;
        height: clamp(300px, 48svh, 420px);
        min-height: 300px !important;
        overflow: hidden;
        border: 1px solid var(--dashboard-border, #dce3e9);
        border-radius: 16px;
    }
    #tab3-map { height: 100% !important; }
    .tab3-preview-panel {
        order: 3;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding: 14px 0 4px;
    }
    .tab3-preview-heading {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 4px;
        padding: 0 14px 4px !important;
    }
    .tab3-preview-heading h5 { font-size: 1rem; font-weight: 700; }
    #tab3-preview-count { font-size: 0.875rem !important; }
    #tab3-preview {
        flex: 0 0 auto !important;
        min-height: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        gap: 10px !important;
        padding: 10px 14px 14px !important;
        scroll-snap-type: x proximity;
        scroll-padding-inline: 14px;
    }
    .tab3-preview-card {
        flex: 0 0 152px !important;
        width: 152px;
        min-width: 152px !important;
        max-width: 152px !important;
        height: auto !important;
        min-height: 132px;
        padding: 12px !important;
        scroll-snap-align: start;
    }
    .tab3-preview-name {
        display: block !important;
        overflow: visible !important;
        -webkit-line-clamp: unset !important;
        font-size: 0.875rem !important;
        line-height: 1.4 !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }
    .tab3-info-panel { order: 4; line-height: 1.5; overflow-wrap: anywhere; }
    .tab3-info-panel p:last-child { margin-bottom: 0; }
    .tab3-info-panel h4 { font-size: 1.2rem; }
    .tab3-info-panel h5 { font-size: 1rem; }
    .tab3-info-panel ul { padding-left: 20px; }
    .tab3-legend-panel { order: 5; }
    .tab3-info-divider { display: none; }
    .tab3-export-panel { order: 6; margin-bottom: 0 !important; }
    #tab3-export-btn { width: 100%; min-height: 48px; }

    /* --- Tab 1: Mobile reflow (Karte → Info → Quellen) ------------------- */
    #tab1-layout.tab1-workspace {
        flex-direction: column !important;
        height: calc(100dvh - var(--bottom-tabs-height, 0px)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    #tab1-layout > #map-container.tab1-map-container {
        width: 100% !important;
        flex: 0 0 auto !important;
        height: clamp(360px, 58svh, 500px) !important;
        min-height: 360px !important;
        overflow: hidden !important;
    }

    #tab1-layout #map {
        width: 100% !important;
        height: 100% !important;
    }

    #tab1-layout > #middle-container.tab1-info-container {
        width: 100% !important;
        flex: 0 0 auto !important;
        height: auto !important;
        overflow: visible !important;
        float: none !important;
        padding: 16px !important;
        border: 1px solid var(--dashboard-border, #d8dee5) !important;
        border-radius: 16px;
        background: var(--dashboard-surface, #fff) !important;
        box-shadow: 0 2px 8px rgb(30 48 70 / 4%) !important;
    }

    /* Touch-Ziele der Tab-1-Schulform-/Abschlussbuttons (>= 44px). */
    #tab1-layout #toggle-button-container .btn,
    #tab1-layout #toggle-button-container-BAMAST .btn {
        min-height: 44px !important;
    }

    /* Plotly-Pie auf volle Breite begrenzen und ~300px Höhe sicherstellen. */
    #tab1-layout #pie-chart-container {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 300px !important;
    }
    #tab1-layout .tab1-info-container .js-plotly-plot,
    #tab1-layout .tab1-info-container .plot-container {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Quellenbereich: aus fixed-Desktop-Position lösen und in Normalfluss bringen. */
    #tab1-layout > #sv-panel.tab1-sources-panel {
        width: 100% !important;
        position: static !important;
        inset: auto !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        transform: none !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        z-index: auto !important;
        margin-top: 16px !important;
        padding: 16px !important;
        border: 1px solid var(--dashboard-border, #d8dee5) !important;
        border-radius: 16px;
        background: var(--dashboard-surface, #fff) !important;
        box-shadow: 0 2px 8px rgb(30 48 70 / 4%) !important;
    }

    #tab1-layout > #sv-panel.tab1-sources-panel iframe,
    #tab1-layout > #sv-panel.tab1-sources-panel embed,
    #tab1-layout > #sv-panel.tab1-sources-panel object {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Quellen-Inhalte ebenfalls ohne Desktop-Fixhöhen. */
    #tab1-layout #sv-pdf-scroll {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    #tab1-layout .sv-list-content {
        max-height: none !important;
        overflow-y: visible !important;
    }
}
