:root {
    --bg-dashboard: #070d19;
    --bg-card: #0f172a;
    --bg-card-hover: #1e293b;
    --text-main: #f8fafc;
    --text-muted: #94a3b8;
    --text-extra-muted: #64748b;
    --accent-blue: #38bdf8;
    --border-color: #1e293b;
    --text-red: #f87171;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background-color: var(--bg-dashboard);
    color: var(--text-main);
    margin: 0;
    padding: 24px;
    line-height: 1.5;
}

.dashboard {
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dashboard-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 16px !important;
    margin-bottom: 24px !important; /* DIT GEEFT DE GEWENSTE TUSSENRUIMTE ONDER HET MENU! */
}

.dashboard-header h1 { margin: 0; font-size: 1.4rem; color: var(--text-main); }
.select-wrapper { display: flex; align-items: center; gap: 12px; }
.select-wrapper label { font-size: 0.9rem; color: var(--text-muted); }

#week-select {
    background-color: #1e293b;
    color: var(--text-main);
    border: 1px solid var(--border-color);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 0.9rem;
    cursor: pointer;
    outline: none;
}

.top-row { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 1024px) { .top-row { grid-template-columns: 2.2fr 1fr; } }

.card { background-color: var(--bg-card); border: 1px solid var(--border-color); border-radius: 16px; padding: 24px; }
.card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
h2 { font-size: 1.15rem; font-weight: 600; margin: 0; }
.muted { color: var(--text-muted); font-size: 0.85rem; }
.text-blue { color: var(--accent-blue); }
.text-red { color: var(--text-red); }

/* 🏆 VERNIEUWD PODIUM MET BEKERS BOVENIN */
.podium-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: flex-end;
    margin-top: 10px;
}

.podium-spot {
    background-color: rgba(30, 41, 59, 0.5);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 24px 20px 20px 20px; /* Meer ruimte aan de bovenkant */
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* 1e plaats krijgt een gouden gloed en extra nadruk */
.podium-spot.gold {
    padding: 40px 20px 20px 20px;
    background-color: rgba(30, 41, 59, 0.8);
    border-color: #f59e0b;
    box-shadow: 0 0 20px rgba(245, 158, 11, 0.15);
}
.podium-spot.silver { border-color: #94a3b8; }
.podium-spot.bronze { border-color: #b45309; }

/* De grote beker/medaille bovenin de kolom */
.medal {
    font-size: 3rem; /* Lekker groot om de ruimte te vullen */
    line-height: 1;
    margin-bottom: 16px;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
    animation: float 3s ease-in-out infinite; /* Subtiele zweef-animatie voor de winnaar */
}

/* Alleen de gouden beker laten zweven voor een extra premium effect */
.podium-spot.gold .medal {
    animation: float 4s ease-in-out infinite;
}

/* Tekst styling binnen de kolommen */
.place-label { 
    font-size: 0.75rem; 
    letter-spacing: 1.2px; 
    color: var(--text-muted); 
    font-weight: bold; 
    margin-bottom: 4px;
}
.podium-spot h3 { 
    margin: 8px 0; 
    font-size: 1.25rem; 
    color: var(--text-main);
}
.podium-spot .score { 
    font-size: 1.8rem; 
    font-weight: 800; 
    color: var(--accent-blue);
    margin-top: 2px;
}
.sub-label { 
    font-size: 0.75rem; 
    color: var(--text-extra-muted);
    margin-top: 2px;
}

/* ✨ EXTRA: Subtiele zweef-animatie voor de bekers */
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-6px); }
    100% { transform: translateY(0px); }
}

/* 📊 STATISTIEKEN GRID - COMPACT, VERDEELD & MET ADEMRUIMTE */
.stats-grid { 
    display: grid !important; 
    grid-template-columns: repeat(2, 1fr) !important; 
    gap: 20px !important; 
    margin-top: 24px !important; /* DIT DRUKT DE BALK LOS VAN DE BOVENSTE KOLOM! */
    margin-bottom: 24px !important; /* Ruimte naar de tabel onderin */
    width: 100% !important;
}

@media (min-width: 768px) { 
    .stats-grid { 
        grid-template-columns: repeat(7, 1fr) !important; 
    } 
}

.mini-card { 
    padding: 10px !important; 
    background-color: rgba(15, 23, 42, 0.6) !important; 
    margin-bottom: 0 !important;
    width: auto !important;
    display: flex !important;
    flex-direction: column !important; 
    align-items: flex-start !important; 
    gap: 4px !important; 
}

.mini-card .label { 
    display: block !important; 
    font-size: 0.75rem !important; 
    color: var(--text-muted) !important; 
}

.mini-card .value { 
    display: block !important; 
    font-size: 1.25rem !important; 
    font-weight: bold !important; 
}

/* 📋 TABEL STYLING */
.table-wrapper { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 0.85rem; text-align: left; }
th { color: var(--text-muted); font-weight: 500; padding: 12px 8px; border-bottom: 1px solid var(--border-color); }
td { padding: 12px 8px; border-bottom: 1px solid rgba(30, 41, 59, 0.5); color: #cbd5e1; }
tr:hover td { background-color: var(--bg-card-hover); }
.total-score { font-weight: bold; color: var(--accent-blue); }
.deviation { font-size: 0.75rem; color: #f87171; margin-left: 4px; }
.deviation.zero { color: #4ade80; }

/* KNMI & KOMPAS */
.badge { var(--border-color); padding: 4px 8px; border-radius: 6px; font-size: 0.75rem; font-weight: bold; background: #1e293b;}
.knmi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.knmi-item { background: rgba(30, 41, 59, 0.4); border: 1px solid var(--border-color); padding: 12px; border-radius: 12px; display: flex; flex-direction: column; }
.knmi-druk-item { grid-column: span 2; }
.knmi-item .icon { font-size: 1.2rem; margin-bottom: 4px; }
.knmi-item .label { font-size: 0.75rem; color: var(--text-muted); }
.knmi-item .value { font-size: 1.1rem; font-weight: bold; margin-top: 2px; }

.compass-wrapper { display: flex; justify-content: flex-start; margin-bottom: 6px; }
.compass-dial { width: 24px; height: 24px; border: 2px solid var(--text-muted); border-radius: 50%; position: relative; background: rgba(255, 255, 255, 0.05); }
.compass-dial::before { content: ''; position: absolute; top: 2px; left: 50%; transform: translateX(-50%); width: 2px; height: 3px; background-color: var(--text-muted); }
.compass-needle { width: 2px; height: 100%; position: absolute; left: 50%; top: 0; margin-left: -1px; transform: rotate(0deg); transition: transform 0.8s ease-out; }
.compass-needle::before { content: ''; position: absolute; top: 2px; left: 0; width: 2px; height: 10px; background-color: #f87171; border-radius: 1px; }
.compass-needle::after { content: ''; position: absolute; bottom: 2px; left: 0; width: 2px; height: 10px; background-color: #f8fafc; border-radius: 1px; }

/* Styling voor de Tab-knoppen */
.header-left {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

@media (min-width: 640px) {
    .header-left {
        flex-direction: row;
        align-items: center;
        gap: 24px;
    }
}

.tabs-wrapper {
    display: flex;
    background-color: #1e293b;
    padding: 4px;
    border-radius: 8px;
    border: 1px solid var(--border-color);
}

.tab-btn {
    background: none;
    border: none;
    color: var(--text-muted);
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.tab-btn:hover {
    color: var(--text-main);
}

.tab-btn.active {
    background-color: var(--accent-blue);
    color: #070d19;
}
#user-ranks-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 10px;
}
/* Grafiek Container */
.chart-container {
    position: relative;
    width: 100%;
    height: 300px;
    margin-top: 15px;
}
/* 🛠️ COUPLING SCHAKELAAR (SLOOPSIGNAAL VOOR BALKEN) */

/* Als de schakelaar op 'algemeen' of 'user' staat, gooi het podium en de stats-grid ONMIDDELLIJK DICHT! */
#main-dashboard-container.mode-algemeen ~ .top-row,
#main-dashboard-container.mode-algemeen ~ .stats-grid,
#main-dashboard-container.mode-algemeen ~ .dashboard .top-row,
#main-dashboard-container.mode-algemeen ~ .dashboard .stats-grid,
#main-dashboard-container.mode-user ~ .top-row,
#main-dashboard-container.mode-user ~ .stats-grid,
#main-dashboard-container.mode-user ~ .dashboard .top-row,
#main-dashboard-container.mode-user ~ .dashboard .stats-grid {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
}
/* 🎯 USER STATS: AUTOMATISCHE COMPACTE KOLOMMEN */
#user-stats-section .knmi-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
}

@media (min-width: 640px) {
    #user-stats-section .knmi-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    /* Blok 1 (Juist geraden) -> Netjes verdeeld over 4 kolommen */
    #user-stats-section section:nth-of-type(1) .knmi-grid {
        grid-template-columns: repeat(4, 1fr) !important; 
    }
    
    /* Blok 3 (Scores Statistieken) -> Netjes verdeeld over 3 kolommen */
    #user-stats-section section:nth-of-type(3) .knmi-grid {
        grid-template-columns: repeat(3, 1fr) !important; 
    }
}

/* 🎯 USER STATS: AUTOMATISCHE COMPACTE KOLOMMEN */
#user-stats-section .knmi-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 16px !important;
}

@media (min-width: 640px) {
    #user-stats-section .knmi-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    /* Blok 1 (Juist geraden) -> Grote, strakke kolommen */
    #user-stats-section section:nth-of-type(1) .knmi-grid {
        grid-template-columns: repeat(4, 1fr) !important; 
    }
    
    /* Blok 3 (Scores Statistieken) -> Grote, strakke kolommen */
    #user-stats-section section:nth-of-type(3) .knmi-grid {
        grid-template-columns: repeat(3, 1fr) !important; 
    }
}

/* 📋 OUTPUT DIRECTIE: Alleen toepassen op Blok 1 (Juist geraden) en Blok 3 (Scores) */
#user-stats-section section:nth-of-type(1) .knmi-item,
#user-stats-section section:nth-of-type(3) .knmi-item {
    padding: 16px !important;
    background-color: rgba(15, 23, 42, 0.6) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 12px !important;
    display: flex !important;
    flex-direction: column !important; /* Getal ONDER de tekst */
    align-items: flex-start !important;
    gap: 4px !important;
    width: auto !important;
    height: auto !important;
}

#user-stats-section #user-ranks-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(75px, 1fr)) !important; /* Kleine, compacte breedte per tegeltje */
    gap: 10px !important;
    width: 100% !important;
}

#user-stats-section #user-ranks-grid .knmi-item {
    padding: 12px 8px !important; /* Lekkere compacte opvulling voor een tegeltje */
    background-color: rgba(15, 23, 42, 0.4) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    display: flex !important;
    flex-direction: column !important; /* Tekst boven, getal onder */
    align-items: center !important; /* Netjes gecentreerd zoals op je allereerste foto */
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
}

/* Algemene tekst- en getal-instellingen voor alle user-items */
#user-stats-section .knmi-item .label {
    display: block !important;
    font-size: 0.75rem !important;
    color: var(--text-muted) !important;
    font-weight: 500 !important;
}

#user-stats-section .knmi-item .value {
    display: block !important;
    font-size: 1.25rem !important;
    font-weight: bold !important;
    margin-top: 2px !important;
}
/* Zorgt ervoor dat de mini-cards in het Plaatsnoteringen Overzicht compact blijven */
#user-stats-section .stats-grid .mini-card {
    max-width: 220px !important;
    width: 60% !important;
}
/* 🏆 COGELVRIJ COMPACT ALGEMEEN KLASSEMENT ZONDER GATEN */
.mode-algemeen table {
    max-width: 750px !important; /* Dwingt de hele tabel in een supercompacte breedte */
    width: 100% !important;
    margin: 0 auto !important; /* Centreert de compacte tabel netjes op het scherm */
    table-layout: fixed !important; /* Zorgt dat de kolombreedtes exact gerespecteerd worden */
}

/* Strakke breedteverdeling per kolom */
.mode-algemeen th:nth-child(1), .mode-algemeen td:nth-child(1) { width: 75px !important; text-align: left; }   /* Positie */
.mode-algemeen th:nth-child(2), .mode-algemeen td:nth-child(2) { width: 180px !important; text-align: left; }  /* Voorspeller */
.mode-algemeen th:nth-child(3), .mode-algemeen td:nth-child(3) { width: 85px !important; text-align: center; }  /* Trend */
.mode-algemeen th:nth-child(4), .mode-algemeen td:nth-child(4) { width: 120px !important; text-align: center; } /* Weken Actief */
.mode-algemeen th:nth-child(5), .mode-algemeen td:nth-child(5) { width: 140px !important; text-align: right; }  /* Totale Punten */
.mode-algemeen th:nth-child(6), .mode-algemeen td:nth-child(6) { width: 120px !important; text-align: right; padding-right: 15px !important; } /* Verschil */

/* Zorgt dat lange namen netjes afkappen en niet de tabel slopen */
.mode-algemeen td:nth-child(2) strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
