/* =========================================
   APP WRAPPER
========================================= */
.app {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
    padding: 32px 40px 60px;
    box-sizing: border-box;
}

/* =========================================
   HEADER — right-aligned
========================================= */
.header {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}

/* =========================================
   MAIN 3-COLUMN GRID
========================================= */
.main-body {
    display: grid;
    grid-template-columns: 220px 1fr 280px;
    grid-template-areas: "left center right";
    gap: 24px;
    align-items: start;
}

/* ─── LEFT column ───────────────────────── */
.stats-col {
    grid-area: left;
    display: flex;
    flex-direction: column;
    gap: 20px;
    min-width: 0;
}

/*
 * stats-grid: JS setzt display:grid mit repeat(4,1fr).
 * Wir überschreiben NUR grid-template-columns → 1 Spalte = vertikal.
 * display selbst NICHT anfassen — JS muss show/hide steuern.
 */
.stats-col #statsGrid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    margin-bottom: 0 !important;
    width: 100%;
}

/* ─── CENTER column ─────────────────────── */
.center-col {
    grid-area: center;
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0;
}

.center-col .grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 14px;
}

/* ─── RIGHT column ──────────────────────── */
.dashboard-col {
    grid-area: right;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/*
 * dashboard-row: JS setzt display:grid mit repeat(3,1fr).
 * Nur grid-template-columns überschreiben → 1 Spalte = vertikal.
 */
.dashboard-col #dashboardRow {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-bottom: 0 !important;
    width: 100%;
}

/* =========================================
   TABLET
========================================= */
@media (max-width: 1100px) {
    .app { padding: 24px 28px 48px; }
    .main-body {
        grid-template-columns: 190px 1fr 240px;
        gap: 18px;
    }
}

@media (max-width: 900px) {
    .main-body {
        grid-template-columns: 1fr 1fr;
        grid-template-areas:
            "left  right"
            "center center";
        gap: 16px;
    }
}

/* =========================================
   MOBILE
========================================= */
@media (max-width: 600px) {
    .app { padding: 14px 16px 40px; }
    .main-body {
        grid-template-columns: 1fr;
        grid-template-areas:
            "left"
            "center"
            "right";
    }
    .center-col .grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
