/* =========================================== */
/* === GLOBALE STIJLEN EN LETTERTYPE === */
/* =========================================== */

/* Bespoke Sans Font Imports */
@font-face {
    font-family: 'Bespoke Sans';
    src: url('fonts/BespokeSans-Regular.woff2') format('woff2');
    font-weight: 400; /* Regular */
    font-style: normal;
}

@font-face {
    font-family: 'Bespoke Sans';
    src: url('fonts/BespokeSans-Medium.woff2') format('woff2');
    font-weight: 500; /* Medium, used for 500/600 */
    font-style: normal;
}

@font-face {
    font-family: 'Bespoke Sans';
    src: url('fonts/BespokeSans-Bold.woff2') format('woff2');
    font-weight: 700; /* Bold */
    font-style: normal;
}

html {
    overflow-x: hidden; /* HERSTELDE FIX: Voorkomt horizontale scrollbalk op root */
    height: 100%; /* FIX voor Sticky Context */
}

body {
    font-family: 'Bespoke Sans', sans-serif; /* AANGEPAST NAAR BESPOKE SANS */
    margin: 0;
    padding: 0;
    background-color: var(--color-bg-light); 
    color: var(--color-text);
    /* NIEUWE REGEL OM HORIZONTAAL SCROLLEN UIT TE SCHAKELEN */
    overflow-x: hidden; 
    
    position: relative; /* FIX: Zorgt voor de juiste 'sticky context' */
    height: 100%; /* FIX voor Sticky Context */
}

/* =========================================== */
/* === KLEUR VARIABELEN EN DARK MODE === */
/* =========================================== */
:root {
    /* Light Mode (STANDAARD) */
    --color-bg-light: #D1D3DF;
    --color-bg-paper: #EDEDF4;
    --color-text: #000;
    --color-text-secondary: #666; 
    --color-border: #ddd; 
    --color-shadow: rgba(0, 0, 0, 0.05);
    --color-highlight-bg: #FFE50F; /* Geel voor TTS highlight */
    --color-nav-hover: #eee; 
    --color-nav-inactive-text: #555; 
    --color-sidebar-active-bg: #f0f0f0; /* Achtergrond actieve sidebar item */
    --color-info-border: #ddd; 
    --color-header-text: #444; 
    --color-voice-dropdown-bg: #fff; /* Achtergrond custom dropdown */
    --color-voice-dropdown-shadow: rgba(0, 0, 0, 0.1); 
    --color-text-active-dark: white; /* Standaard wit, alleen relevant voor Dark Mode override */
    
    /* VARIABELEN VOOR NIEUWE KNOP STIJL */
    --button-color-dark: #0a1758; /* Gebruik Plyr's main color */
    --button-color-light: #ffffff; /* AANGEPAST: Expliciet wit voor de knop achtergrond in Light Mode */
    --button-color-text-initial: #0a1758;
    --button-color-text-hover: #ffffff;
    --button-color-arrow-bg: #0a1758;
    
    /* Plyr Accentkleur - Blijft Light Blue */
    --plyr-color-main: #0a1758; 
    --plyr-range-track-color: #e0e0e0; /* Standaard track kleur */
    
    /* NIEUWE STEUNKLEUREN (Uit Huisstijlkleuren.pdf) */
    --color-steun-bevlogenheid: #D31A80;   /* roze */
    --color-steun-optimisme: #F9820A; /* oranje */
    --color-steun-autonomie: #4FB6AC; /* groenblauw */
    --color-steun-toonaangevend: #8ECF61; /* zacht groen */
}

.dark-mode {
    /* Dark Mode Overrides */
    --color-bg-light: #18191a; 
    --color-bg-paper: #282a2b; 
    --color-text: #f0f0f0; 
    --color-text-secondary: #c0c0c0; 
    --color-border: #444; 
    --color-shadow: rgba(0, 0, 0, 0.6);
    --color-highlight-bg: #FFE50F; /* Geel blijft (voor leesbaarheid) */
    --color-nav-hover: #3a3c3d; 
    --color-nav-inactive-text: #c0c0c0;
    --color-sidebar-active-bg: #3a3c3d;
    --color-info-border: #555;
    --color-header-text: #ffffff;
    --color-voice-dropdown-bg: #333;
    --color-voice-dropdown-shadow: rgba(0, 0, 0, 0.8);
    --color-text-active-dark: #111111; /* Donkere tekst in Dark Mode */

    /* VARIABELEN VOOR NIEUWE KNOP STIJL IN DARK MODE */
    --button-color-dark: #4FB6AC; 
    --button-color-light: #282a2b; /* Gebruik Dark Mode paper */
    --button-color-text-initial: #4FB6AC;
    --button-color-text-hover: #111111; /* Donkere tekst op lichte hover */
    --button-color-arrow-bg: #4FB6AC;
    
    /* Plyr Dark Mode - AANGEPAST naar #4FB6AC (Licht Blauw) */
    --plyr-color-main: #4FB6AC; 
    /* NIEUWE PLYR CONTROLS OVERRIDES VOOR DARK MODE */
    /* De Controls achtergrond moet donker zijn (transparant of gelijk aan de container achtergrond) */
    --plyr-audio-controls-background: transparent; 
    
    /* De kleur van de controls (tekst, iconen) moet wit/licht zijn */
    --plyr-audio-control-color: var(--color-text); /* #f0f0f0 */
    --plyr-text-color: var(--color-text); /* #f0f0f0 - Voor tijdweergave */
    
    /* Zorg dat de voortgangsbalk (tijd) licht is in dark mode */
    --plyr-range-track-color: #555555; /* Blijft hetzelfde in je huidige CSS */
}

/* ------------------------------------ */


/* =========================================== */
/* === HEADER (BOVENSTE BALK) === */
/* =========================================== */
.main-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 3vw; /* AANPASSING: 30px vervangen door 3vw */
    background-color: var(--color-bg-paper); 
    box-shadow: 0 1px 3px var(--color-shadow); 
    font-size: 1.1em;
    font-weight: 600;
    position: sticky; 
    top: 0;
    z-index: 1000;
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
}
.logo {
    font-size: 0.8em;
    font-weight: 700;
    color: var(--color-header-text); 
    display: flex; 
    align-items: center;
}
/* NIEUW: STIJL VOOR HET LOGO BEELD */
.logo img {
    height: 40px; /* Standaard hoogte voor desktop */
    vertical-align: middle;
    margin-right: 0px;
}
.experiment {
    color: #f44336; /* Rood accent */
    font-weight: 400;
}

/* Container voor knoppen (Dark Mode Toggle & Info) */
.header-controls { 
    display: flex;
    align-items: center;
    gap: 10px;
}
/* Styling voor de 'Laden...' span */
.main-header .info { 
    color: var(--color-text-secondary); 
    background-color: var(--color-bg-paper); 
    font-size: 0.8em;
    padding: 5px 10px;
    border: 1px solid var(--color-info-border); 
    border-radius: 4px;
    transition: background-color 0.2s, color 0.2s;
    flex-shrink: 0; 
    display: none !important;
}
/* Dark Mode Toggle Stijl */
#theme-toggle {
    border: none;
    background: none;
    padding: 0;
    font-size: 1.3em;
    color: var(--plyr-color-main); 
    cursor: pointer;
    transition: color 0.2s;
}

/* FIX: Dark Mode Toggle Kleuren AANPASSING (voor Font Awesome icon) */
.dark-mode #theme-toggle {
    color: var(--color-text); /* Lichte kleur in Dark Mode voor de Zon */
}
.dark-mode #theme-toggle:hover {
    color: var(--plyr-color-main); /* Blauw/Teal accentkleur bij hover in Dark Mode */
}
/* EINDE FIX */


/* =========================================== */
/* === NAVIGATIE (MODUS-KNOPPEN) === */
/* =========================================== */
.mode-nav {
    display: flex;
    justify-content: center;
    /* Geselecteerde gap is 20px voor de nieuwe knoppen */
    gap: 20px; 
    padding: 10px 3vw; /* AANPASSING: 30px vervangen door 3vw */
    background-color: var(--color-bg-paper);
    border-bottom: 1px solid var(--color-border);
    position: sticky; 
    /* FIX: Verlaagd naar 50px om precies onder de header te plakken en het gat te dichten */
    top: 50px; 
    z-index: 950; /* Zorgt ervoor dat content er niet doorheen schijnt */
    transform: translateZ(0);
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
}

/*
* ==========================================
* *** NIEUWE STIJLEN VOOR .nav-button ***
* ==========================================
*/
.nav-button {
    /* Oude stijlen overschreven of verwijderd */
    
    /* AANPASSING: BESPOKE SANS FONT TOEVOEGEN */
    font-family: 'Bespoke Sans', sans-serif; 
    
    /* Basisinstellingen voor de knop */
    display: inline-flex;
    align-items: stretch;
    border-radius: 50px;
    cursor: pointer;
    border: none;
    font-size: 1em; /* Relatief kleiner in de navbalk */
    font-weight: 500;
    background-color: var(--button-color-light);
    color: var(--button-color-text-initial);
    text-align: center;
    transition: all 0.3s ease;
    text-decoration: none;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Iets subtielere schaduw */
    padding: 0; /* Padding verplaatst naar .nav-button-text */
    
    /* Zorgt ervoor dat de tekst en de pijl uitgelijnd zijn */
    line-height: 1.2; 
}

/* Wrapper voor de tekst, nodig voor de padding */
.nav-button-text {
    flex-grow: 1;
    white-space: nowrap; 
    text-decoration: none;
    /* Padding is nu kleiner dan in de voorbeeld-HTML om te passen */
    padding: 10px 20px 10px 20px; 
}

/* Wrapper voor de pijl */
.nav-button-arrow-container {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--button-color-arrow-bg);
    color: var(--button-color-text-hover); 
    transition: all 0.3s ease;
    
    border-top-right-radius: 50px;
    border-bottom-right-radius: 50px;
    
    /* Zorgt voor de schuine rand */
    clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
    -webkit-clip-path: polygon(20% 0, 100% 0, 100% 100%, 0% 100%);
    
    margin-left: 0; 
    padding: 10px 20px 10px 10px; /* Kleinere padding om te passen */
}

/* De pijl zelf */
.nav-button-arrow {
    font-size: 1.2em;
}

/* ---------------------------------- */
/* ACTIEVE STAAT */
/* ---------------------------------- */
.nav-button.active {
    background-color: var(--button-color-arrow-bg); /* Hele knop wordt accentkleur */
    color: var(--button-color-text-hover); /* Tekst wordt wit/donker */
    border-color: var(--button-color-arrow-bg); /* Rand wordt accentkleur */
}

.nav-button.active .nav-button-text {
    text-decoration: none; /* Geen onderstreping in actieve staat */
    padding-right: 20px;
}

/* De pijl-container neutraliseren in actieve staat */
.nav-button.active .nav-button-arrow-container {
    background-color: transparent; /* Transparant maken */
    color: var(--button-color-text-hover); /* Pijl behoudt de kleur van de tekst */
    box-shadow: none;
}

/* Dark Mode Active Override */
.dark-mode .nav-button.active {
    background-color: var(--button-color-dark);
    color: var(--button-color-text-hover); /* Donkere tekst op lichte hover */
    border-color: var(--button-color-dark);
}
.dark-mode .nav-button.active .nav-button-arrow-container {
    color: var(--button-color-text-hover); 
}

/* ---------------------------------- */
/* HOVER STAAT (niet-actief) */
/* ---------------------------------- */
.nav-button:hover:not(.active) {
    background-color: var(--button-color-arrow-bg);
    color: var(--button-color-text-hover);
}

.nav-button:hover:not(.active) .nav-button-text {
    text-decoration: underline; 
    padding-right: 20px; 
}

.nav-button:hover:not(.active) .nav-button-arrow-container {
    background-color: transparent;
    color: var(--button-color-text-hover); 
}

/* ---------------------------------- */
/* INACTIEVE TAB STAAT (overrulet alles) */
/* ---------------------------------- */
.nav-button.inactive-tab {
    /* Visuele deactivatie - Gebruikt de variabele --color-nav-inactive-text */
    color: var(--color-nav-inactive-text, #555) !important; 
    background-color: var(--color-bg-paper) !important;
    border-color: var(--color-border) !important;
    
    /* Maak de knop iets transparanter om de inactieve staat te benadrukken */
    opacity: 0.6 !important; 
    
    /* Zorg dat de cursor en klikgebeurtenissen niet mogelijk zijn (hoewel JS dit al regelt) */
    cursor: not-allowed !important; 
    pointer-events: none !important; 
    
    /* Zorg dat de pijl-container ook gedeactiveerd wordt */
    box-shadow: none !important;
}

.nav-button.inactive-tab .nav-button-arrow-container {
    background-color: var(--color-nav-inactive-text, #555) !important;
    color: var(--color-bg-paper) !important;
}
/*
* ==========================================
* *** EINDE NIEUWE STIJLEN ***
* ==========================================
*/


/* =========================================== */
/* === HOOFD CONTAINER LAYOUT (AANGEPAPAST) === */
/* =========================================== */
.main-container {
    display: block; 
    /* VERWIJDERD: max-width: 1400px; */ 
    width: 100%; /* Zorgt dat het de volle schermbreedte pakt */
    margin: 0 auto;
    padding: 20px 3vw; /* AANPASSING: 30px vervangen door 3vw */
    min-height: calc(100vh - 110px); 
    
    /* FIX: Compensatie voor de vaste speler onderaan de pagina */
    padding-bottom: 100px; 
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
}

/* =========================================== */
/* === SIDEBAR (INHOUDSOPGAVE) - AANGEPAST VOOR EMBEDDING IN IMMERSIVE-PLAYER === */
/* =========================================== */
.sidebar {
    /* Alleen layout en spacing behouden, GEEN BOX STIJLEN. */
    flex: 0 0 auto; 
    width: 100%;
    padding: 0; 
    border-right: none; 
    margin-top: 5px; /* AANPASSING: Minder afstand tot de Summary/Titel */
    margin-bottom: 0; 
    
    /* Box stijlen verwijderd/geneutraliseerd */
    background-color: transparent;
    border-radius: 0;
    box-shadow: none;
    border: none;
    
    box-sizing: border-box; 
    max-width: 100%; 
}

/* -------------------- */
/* STIJLEN VOOR DE SUMMARY DIE NU DE TITEL IS */
/* -------------------- */

/* Verberg de standaard details marker en stel flexbox in voor de pijl */
.toc-container-wrapper summary { 
    list-style: none;
    list-style-type: none;
    cursor: pointer;
    display: flex; /* Zodat de pijl rechts kan staan */
    justify-content: space-between; /* Zodat de pijl rechts staat */
    align-items: center;
    padding-right: 10px; /* Ruimte voor de pijl */
    isolation: isolate;
}

/* Verberg de standaard browser pijl/marker */
.toc-container-wrapper summary::-webkit-details-marker,
.toc-container-wrapper summary::marker { 
    display: none;
    content: none;
}

/* Pas de titel stijl aan */
.toc-container-wrapper .article-title {
    /* Houdt de originele H2 stijlen */
    margin-top: 0;
    margin-bottom: 0; 
    color: var(--color-text);
    cursor: pointer; 
    flex-grow: 1; /* Zodat de titel de ruimte inneemt en de pijl naar rechts duwt */
}


/* Pijltje toevoegen via ::after (Gesloten status) */
.toc-container-wrapper:not([open]) summary::after { 
    content: '\25BC'; /* Naar beneden wijzende driehoek (gesloten) */
    font-size: 0.7em;
    color: var(--color-text);
    position: relative; 
    padding-left: 10px;
    margin-top: 5px; /* Lijn uit met de titel tekst */
}

/* Pijltje wijzigen bij Open status */
.toc-container-wrapper[open] summary::after { 
    content: '\25B2'; /* Naar boven wijzende driehoek (open) */
    font-size: 0.7em;
    color: var(--color-text);
    position: relative; 
    padding-left: 10px;
    margin-top: 5px; /* Lijn uit met de titel tekst */
}

/* -------------------- */

.sidebar ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sidebar li {
    padding: 5px 0;
    font-size: 0.9em;
    color: var(--color-text-secondary);
    border-radius: 4px;
    cursor: pointer;
}
.sidebar li a {
    text-decoration: none;
    color: var(--color-text);
    display: block;
    padding: 5px 10px;
}

.dark-mode .sidebar li a {
    color: var(--color-text); /* Zal nu de lichte kleur van dark mode zijn (#f0f0f0) */
}

.sidebar li a:hover,
.sidebar li a:focus {
    background-color: var(--color-steun-bevlogenheid);
    color: var(--button-color-light);
}

.dark-mode .sidebar li a:hover,
.dark-mode .sidebar li a:focus {
    background-color: var(--color-steun-autonomie);
}

.sidebar .active-item {
    font-weight: 600;
    color: var(--plyr-color-main);
    background-color: var(--color-sidebar-active-bg); 
}

/* --- NIEUWE STIJL VOOR DE VERTICALE BALK BIJ ACTIEVE LINK (gevraagd) --- */
.sidebar .active-item a {
    /* De verticale balk: 3px brede rand links, met de accentkleur. AANGEPAST NAAR --color-steun-bevlogenheid */
    border-left: 4px solid var(--color-steun-toonaangevend); 
    
    /* Corrigeer de padding: 10px (standaard) - 3px (rand) = 7px */
    padding-left: 7px; 
    
    /* Zorg dat de afronding van de actieve achtergrond zichtbaar blijft */
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
    
    /* De achtergrond en kleur overschrijven om consistentie met de border te garanderen */
    color: var(--plyr-color-main); 
    background-color: var(--color-sidebar-active-bg);
}
/* ------------------------------------------------------------- */

.sidebar.hidden {
    display: none;
}

/* =========================================== */
/* === CONTENT GEBIED (MAIN) === */
/* =========================================== */
.content-area {
    flex-grow: 1;
    padding-left: 0; /* AANPASSING: Oude padding-left: 30px; verwijderd */
}

/* Modus Weergave Toggling */
.mode-view {
    display: none;
    flex-direction: column; /* AANPASSING: Nieuwe flow: Speler > TOC > Tekst */
    max-width: 800px; /* Centreer de content-kolom */
    margin: 0 auto;
}
.mode-view.active {
    display: flex; /* AANPASSING: Oude: display: block; */
}

/* =========================================== */
/* === IMMERSIEVE TEKST MODUS STIJLEN === */
/* =========================================== */
#immersieve-tekst {
    /* OUDE REGELS:
    max-width: 100%; 
    margin: 0;
    WORDEN VERWIJDERD OM .mode-view MAX-WIDTH: 800px EN MARGIN: 0 auto EFFECTIEF TE MAKEN */
}


/* NIEUW: WRAPPER VOOR STICKY TITEL/SPELER/TOC */
#immersive-header-block {
    position: sticky;
    /* (Header 50px + Nav 50px) + TopPlayerContainer (~80px) = 180px */
    top: 240px; 
    z-index: 850; /* Lager dan #top-player-container (900), hoger dan content */
    max-width: 100%; 
    margin: 0 auto; 
    transform: translateZ(0); 
    box-sizing: border-box; 
}


/* .immersive-player {
    /* Nu binnen de 800px kolom, hoeft niet meer gecentreerd te worden */
    width: 100%;
    background-color: var(--color-bg-paper);
    padding: 20px;
    border-radius: 8px 8px 0 0; /* AANGEPAST: Afronding alleen boven */
    box-shadow: 0 2px 5px var(--color-shadow);
    margin-bottom: 0; /* AANGEPAST: Geen marge meer, het uitklapmenu sluit direct aan */
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
    max-width: 100%; /* FIX: Garandeert dat het niet breder wordt dan de container */
    
    /* VERWIJDERD/GENEUTRALISEERD: De ouder (#immersive-header-block) is nu sticky */
    /* position: sticky; */
    /* top: 120px; */ 
}
 */

/* Laadstatus visuele indicatie */
.immersive-player.loading {
    border: 2px dashed var(--plyr-color-main);
    min-height: 100px; 
}

/* Artikel Titel (NU DE SUMMARY) */
.article-title {
    font-size: 1.5em;
    margin-top: 0;
    margin-bottom: 0; 
    color: var(--color-text);
    cursor: pointer; 
}


/* AANPASSING START: Custom Dropdown Stijlen (ALGEMEEN) */
.custom-select-dropdown {
    position: relative; 
    /* max-width en flex-grow zijn verhuisd naar de fixed-player-bar sectie */
}
.custom-select-dropdown summary {
    list-style: none;
    padding: 5px 10px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background-color: var(--color-bg-paper);
    color: var(--color-text);
    cursor: pointer;
    font-size: 1em;
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style-type: none;
}
.custom-select-dropdown summary::-webkit-details-marker,
.custom-select-dropdown summary::marker {
    display: none;
    content: none;
}
.custom-select-dropdown summary::after {
    content: '\25BC'; /* Down arrow */
    font-size: 0.8em;
    padding-left: 10px;
    transition: transform 0.2s;
}
.custom-select-dropdown[open] summary::after {
    content: '\25B2'; /* Up arrow */
    transform: none; 
}
.custom-select-dropdown ul {
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    padding: 5px 0;
    margin: 2px 0 0 0;
    background-color: var(--color-voice-dropdown-bg);
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 8px var(--color-voice-dropdown-shadow);
    border-radius: 4px;
    z-index: 20;
    min-width: 180px;
}
.custom-select-dropdown li {
    padding: 5px 10px;
    cursor: pointer;
    font-size: 0.95em;
    color: var(--color-text);
}
.custom-select-dropdown li:hover {
    background-color: var(--color-nav-hover);
}
.custom-select-dropdown li.selected {
    font-weight: 600;
    color: var(--plyr-color-main);
}
/* AANPASSING EINDE: Custom Dropdown Stijlen */


/* =========================================== */
/* === TEKST WEERGAVE STIJLEN === */
/* =========================================== */
.text-display-area {
    /* Nu binnen de 800px kolom, hoeft niet meer gecentreerd te worden */
    width: 100%;
    background-color: var(--color-bg-paper);
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 5px var(--color-shadow);
    line-height: 1.8;
    font-size: 1.1em;
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
    max-width: 100%; /* FIX: Garandeert dat het niet breder wordt dan de container */
    margin-top: 0; /* NIEUWE FIX */
}

/* NIEUWE BELANGRIJKE REGEL: Garandeert dat de hoofdtekst altijd zichtbaar is (overrulet oude JS toggles) */
.text-display-area,
.text-display-area:not(.hidden) {
    display: block !important;
}

/* Klikbare elementen in de tekst */
.text-display-area p, .text-display-area h2, .text-display-area h3 {
    cursor: pointer;
    transition: background-color 0.1s;
    padding: 2px 0;
}

/* --- TTS Highlight Styling --- */
.text-display-area .speaking {
    background-color: var(--color-highlight-bg);
    border-radius: 4px;
    padding: 2px 5px;
    margin: -2px -5px;
    display: inline-block;
}
/* Blok-elementen highlight */
.text-display-area p.speaking, .text-display-area li.speaking, .text-display-area article h2.speaking, .text-display-area article h3.speaking {
    background-color: var(--color-highlight-bg);
    border-radius: 4px;
    transition: background-color 0.1s linear;
    padding: 2px 5px;
    margin: 0;
}
/* Tekstkleur aanpassing in Dark Mode voor gele highlight */
.dark-mode .text-display-area .speaking, .dark-mode .text-display-area p.speaking, .dark-mode .text-display-area li.speaking, .dark-mode .text-display-area article h2.speaking, .dark-mode .text-display-area article h3.speaking {
    color: black; /* Tekst in de highlight blijft leesbaar */
}
/* EINDE TTS Highlight */


/* =========================================== */
/* === SPELER WRAPPER FIX VOOR CONTROLS UITLIJNING (NIEUW) === */
/* =========================================== */
.player-wrapper {
    display: flex;
    align-items: center; /* Verticale uitlijning */
    gap: 10px; /* Ruimte tussen speler en snelheidsknop */
}

.player-wrapper .plyr {
    flex-grow: 1;
    /* Zorgt dat Plyr de resterende ruimte inneemt */
    flex-shrink: 1; 
    min-width: 0; /* Essentieel voor flexbox in mobiele weergave */
}

.player-wrapper .plyr-control-style {
    /* Zorgt dat de snelheidsknop altijd zijn ruimte behoudt en niet naar de volgende regel springt */
    flex-shrink: 0;
    flex-basis: auto;
}


/* =========================================== */
/* === SPELER OVERLAYS EN LAADSTATEN === */
/* =========================================== */
/* Overlay bovenop de speler tijdens laden/genereren */
.player-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 600;
    color: #555;
    cursor: not-allowed;
    opacity: 1;
    z-index: 10;
    transition: opacity 0.3s ease;
}
.dark-mode .player-overlay {
    background-color: rgba(30, 30, 30, 0.95);
    color: #aaa;
}
.player-overlay.hidden {
    opacity: 0;
    pointer-events: none;
    z-index: -1;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0s 0.3s;
}

/* Spinner in de overlay */
.player-overlay::after {
    content: '';
    width: 20px;
    height: 20px;
    border: 3px solid #ddd;
    border-top-color: var(--plyr-color-main);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-top: 10px;
}
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* =========================================== */
/* === PODCAST MODUS STIJLEN (AANGEPAST) === */
/* =========================================== */

.transcript-area {
    width: 100%;
    background-color: var(--color-bg-paper);
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 2px 5px var(--color-shadow);
    line-height: 1.8;
    font-size: 1.1em;
    box-sizing: border-box;
    max-width: 100%;
    margin-top: 0;
}
.dark-mode .transcript-area {
    background-color: var(--color-bg-paper);
}

/* Styling voor elk transcript segment (klikbaar) */
.transcript-area .segment {
    cursor: pointer;
    display: inline;
    padding: 2px 0;
    transition: background-color 0.1s;
    /* FIX 1: Verwijder de onderstreping bij hover */
    text-decoration: none; 
}
/* FIX 1: Verwijder de onderstreping bij hover */
.transcript-area .segment:hover {
    text-decoration: none;
}

/* Highlight voor het actieve transcript segment */
.transcript-area .segment.highlighted {
    background-color: var(--color-highlight-bg);
    color: var(--color-text);
    border-radius: 4px;
    padding: 2px 5px;
    margin: -2px -5px;
}

/* FIX 2: Zorgt voor leesbaarheid in Dark Mode (Wit op Geel is niet goed leesbaar) */
.dark-mode .transcript-area .segment.highlighted {
    /* De variabele --color-text-active-dark is bedoeld voor donkere tekst in Dark Mode, maar 'black' is duidelijker voor geel. */
    color: black !important; /* Dwing de tekstkleur naar zwart als het is gehighlight */
}

/* =========================================== */
/* === VASTE SPELER BALK STIJLEN (AANGEPAST) === */
/* =========================================== */
#fixed-player-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%; /* Maak de balk 100% breed */
    box-sizing: border-box; /* HERSTELDE FIX: Voorkomt overloop */
    /* VERWIJDERD: max-width: 1400px; left: 50%; transform: translateX(-50%); */
    background-color: var(--color-bg-paper);
    box-shadow: 0 -2px 5px var(--color-shadow);
    z-index: 100;
    padding: 10px 3vw; /* AANPASSING: 30px vervangen door 3vw */
    
    display: flex;
    align-items: center;
}
#fixed-player-bar .player-content {
    flex-grow: 1; 
    display: flex;
    align-items: center;
}
#fixed-player-bar.hidden-player-bar {
    display: none;
}
.hidden-player-content {
    display: none !important; 
}

.plyr-control-style:hover {
    background-color: var(--color-nav-hover);
    border-color: var(--plyr-color-main);
}
.dark-mode .plyr-control-style {
    box-shadow: 0 0 3px rgba(56, 73, 128, 0.5);
}

plyr-control-style plyr__control {
    color: var(--color-text) !important;
}

/* =========================================== */
/* === MEDIA QUERIES (MOBIELE SPECIFIEK) === */
/* =========================================== */
@media (max-width: 768px) {
    .main-header {
        padding: 10px 15px;
    }
    
    /* NIEUW: LOGO AFBEELDING OP MOBIEL KLEINER MAKEN */
    .logo img {
        height: 40px; /* Kleinere hoogte voor mobiel */
    }
    
    .mode-nav {
        padding: 10px 15px;
        /* AANPASSING MOBIEL: Header is 50px hoog, top 50px is prima */
        top: 50px; 
        gap: 10px; /* Kleinere gap op mobiel */
    }
    .main-container {
        padding: 10px 15px;
        /* Zorgt dat de fixed bar niet de content afsnijdt */
        padding-bottom: 100px;
    }
    
    /* Nieuwe knoppen op mobiel */
    .nav-button {
        /* Laat knoppen flexen op mobiel */
        flex-grow: 1;
        font-size: 0.9em;
    }
    .nav-button .nav-button-text {
        padding: 8px 10px 8px 15px;
    }
    .nav-button .nav-button-arrow-container {
        padding: 8px 15px 8px 8px;
    }
    .nav-button:hover:not(.active) .nav-button-text {
        padding-right: 15px; 
    }
    .nav-button.active .nav-button-text {
        padding-right: 15px;
    }
    
    /* Pas de mobiele speler aan */
    .immersive-player {
        padding: 10px;
    }
    .article-title {
        font-size: 1.3em;
        margin-top: 5px;
    }
    
    /* Vaste balk op mobiel */
    #fixed-player-bar {
        padding: 5px 15px;
    }
    
    /* Snelheidsknop op mobiel */
    .plyr-control-style {
        padding: 5px;
        font-size: 0.8em;
    }

    #fixed-player-bar .custom-select-dropdown summary {
        margin-top: 5px; /* Pas marges aan voor mobiel */
        margin-bottom: 5px;
    }
    #fixed-player-bar .custom-select-dropdown ul {
        width: 150px;
        left: auto;
        right: 0; /* Klapt nu rechts uit */
    }
    
    /* Sidebar aanpassingen op mobiel (nu ingebed in .immersive-player) */
    .sidebar {
        display: block;
        flex: 0 0 auto;
        width: 100%;
        padding-right: 0;
        border-right: none;
        border-bottom: none; /* Verwijder de scheidingslijn, zit nu in de box */
        margin-top: 5px; /* Minder ruimte op mobiel */
        margin-bottom: 0;
        /* Visuele stijlen voor de mobiele sidebar geneutraliseerd */
        background-color: transparent; 
        box-shadow: none; 
        padding: 0; /* Verwijder padding */
        border-radius: 0;
    }
    
    /* Sidebar Details/Summary stijlen voor mobiel */
    .toc-container-wrapper summary { 
        pointer-events: auto;
        list-style: none;
        display: flex;
        justify-content: space-between;
        align-items: center;
        cursor: pointer;
        font-weight: 700;
        margin-bottom: 0;
    }
    
    /* FIX: Verberg de inhoud van de details tag als deze gesloten is */
    .toc-container-wrapper > :not(summary) { 
        display: none !important;
    }
    .toc-container-wrapper[open] > :not(summary) { 
        display: block !important;
    }
    
    #top-player-container {
        /* FIX MOBIEL: Header 50px + Nav 50px = 100px. Direct aansluiten. */
        top: 100px;
        padding: 10px; /* Minder padding op mobiel */
    }
    
    /* NIEUW: WRAPPER VOOR STICKY TITEL/SPELER/TOC */
    #immersive-header-block {
        top: 260px; 
    }
    
    /* FIX: Toon de totale duur van de speler op mobiel */
    .plyr__controls .plyr__time--current,
    .plyr__controls .plyr__time--duration {
        display: inline-block !important; /* Zorgt dat beide tijden zichtbaar zijn */
        font-size: 0.9em !important; /* Iets kleiner lettertype op mobiel */
        font-weight: 600;
        margin-top: 5px !important;
    }
    
    .plyr__controls .plyr__time--current {
        order: 3 !important; /* Na de progress bar (order 2) */
        margin-right: 5px !important; /* Ruimte voor de duur */
        padding-left: 0 !important;
    }
    
    .plyr__controls .plyr__time--duration {
        order: 4 !important; /* Na de huidige tijd */
        margin-left: 5px !important;
        padding-right: 0 !important;
    }

    /* AANVULLENDE FIX: De Plyr-controls-rij centreren op mobiel. */
    .plyr__controls {
        justify-content: center !important; 
    }

    /* NIEUWE FIX: Zorgt dat de hoofdbedieningselementen van Plyr niet wegvallen op zeer kleine schermen */
    .plyr__controls .plyr__control[data-plyr="rewind"],
    .plyr__controls .plyr__control[data-plyr="fast-forward"],
    .plyr__controls .plyr__control[data-plyr="play"],
    .plyr__controls .plyr__control[data-plyr="pause"] {
        flex-shrink: 0 !important;
    }
    
}

/* =========================================== */
/* === FIX: STIJL VOOR INACTIEVE TABS === */
/* =========================================== */

/* Zorgt ervoor dat elke navigatieknop met de klasse 'inactive-tab' visueel grijs wordt. */
.nav-button.inactive-tab, 
.tab-button.inactive-tab {
    /* Visuele deactivatie - Gebruikt de variabele --color-nav-inactive-text */
    color: var(--color-nav-inactive-text, #555) !important; 
    background-color: var(--color-bg-paper) !important;
    border-color: var(--color-border) !important;
    
    /* Maak de knop iets transparanter om de inactieve staat te benadrukken */
    opacity: 0.6 !important; 
    
    /* Zorg dat de cursor en klikgebeurtenissen niet mogelijk zijn (hoewel JS dit al regelt) */
    cursor: not-allowed !important; 
    pointer-events: none !important; 
    
    /* Zorg dat de pijl-container ook gedeactiveerd wordt */
    box-shadow: none !important;
}

/* Zorg dat de :hover en :focus stijlen niet werken op inactieve knoppen */
.nav-button.inactive-tab:hover,
.tab-button.inactive-tab:hover,
.nav-button.inactive-tab:focus,
.tab-button.inactive-tab:focus {
    background-color: var(--color-bg-paper) !important;
    color: var(--color-nav-inactive-text, #555) !important;
    border-color: var(--color-border) !important;
}

/* =========================================== */
/* === NIEUWE FIXES VOOR SIDEBAR EN OVERLAP === */
/* =========================================== */

/* FIX: SCROLL OFFSET VOOR ANKERS (OPLOSSING VOOR OVERLAP) */

/* AANPASSING 3: Compensatie voor header (~60px) + nav (~50px) + marge = ~110px. 120px blijft een veilige marge. */
.text-display-area h2:before,
.text-display-area h3:before {
    content: "";
    display: block;
    height: 120px; 
    margin-top: -120px;
    visibility: hidden;
    pointer-events: none;
}

/* NIEUWE STIJL VOOR DE ARTIKEL SECTIES CONTAINER (INHOUD VAN DIT ARTIKEL) */
/* Dit is nu de ul binnen de aside.sidebar */
.sidebar ul {
    margin-top: 10px; /* Ruimte onder de summary */
    padding-top: 5px;
    border-top: 1px solid var(--color-border);
}

/* Styling voor de actieve sectie link (hoogtepunt) */
.sidebar .article-sections-list a.active-section {
    font-weight: 600;
    color: var(--plyr-color-main);
    background-color: var(--color-sidebar-active-bg); 
}

/* Fix voor inspringen van H3 secties */
.sidebar .article-sections-list .toc-h3 a {
    padding-left: 20px;
}

/* =========================================== */
/* === NIEUWE STIJL VOOR STANDALONE TOC (INHOUDSOPGAVE) === */
/* =========================================== */

.toc-container-wrapper.toc-standalone {
    width: 100%;
    background-color: var(--color-bg-paper);
    padding: 10px 20px; /* Iets minder padding dan de speler */
    border-radius: 0 0 8px 8px; /* Afronding alleen aan de onderkant */
    box-shadow: 0 2px 5px var(--color-shadow); /* Houd de schaduw */
    margin-bottom: 20px; /* Ruimte onder de TOC en boven de tekst */
    box-sizing: border-box;
    max-width: 100%;
}

/* Zorg ervoor dat de title padding klopt in de standalone versie */
.toc-container-wrapper.toc-standalone summary {
    padding-right: 10px; /* Zorgt dat de pijl nog steeds rechts staat */
}


/* =========================================== */
/* === PLYR SPELER AANPASSINGEN (GROTE KNOP) - AANGEPAST VOOR CENTRERING === */
/* =========================================== */

/* De controls container: gebruik flexbox om de elementen te ordenen */
.plyr__controls {
    display: flex;
    flex-wrap: wrap; 
    
    /* FIX 1: Dwing alle items op de HOOFD CONTROLS RIJ naar het midden. */
    justify-content: center !important; 
    
    /* FIX 2 & 3: Neutraliseer ongewenste marges/padding. */
    padding: 10px 0 !important; 
    margin: 0 !important;
    width: 100% !important;
}

/* FIX 4: Zorg dat de elementen in de controls-rij (behalve de progressiebalk)
          niet de 'flex-grow' van Plyr erven, zodat ze bij elkaar blijven. */
.plyr__controls .plyr__controls__item {
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
}

/* FIX 5: Neutraliseer de Plyr default 'margin-right: auto' op het eerste item, 
          dit is de belangrijkste fix voor asymmetrische uitlijning. */
.plyr__controls .plyr__controls__item:first-child {
    margin-left: 0px !important; /* Zorg voor gelijke marge als de andere knoppen */
    margin-right: 5px !important;
}

/* De progressiebalk moet nog steeds de volledige breedte innemen (order 2) */
.plyr__controls .plyr__progress__container {
    order: 2 !important;     
    width: 100% !important;   
    flex-basis: 100% !important; 
    margin-top: 15px !important; 
    margin-left: 0 !important;
    margin-right: 0 !important;
}


/* Grotere knop voor de centrale Play/Pauze knop */
.plyr__controls .plyr__control[data-plyr="play"], 
.plyr__controls .plyr__control[data-plyr="pause"] {
    transform: scale(2.5); 
    margin: 0 10px; 
    padding: 10px;
    transition: transform 0.2s;
    background: none !important; 
    color: var(--plyr-color-main) !important; 
}
/* Visuele feedback voor de grote Play/Pauze knop bij hover/focus */
.plyr__controls .plyr__control[data-plyr="play"]:hover,
.plyr__controls .plyr__control[data-plyr="pause"]:hover {
    transform: scale(2.2);
    color: var(--color-text-main) !important;
}

/* NIEUW: Stijl voor de twee extra knoppen naast de Play-knop (bijvoorbeeld restart en settings) */
.plyr__controls .plyr__control[data-plyr="restart"],
.plyr__controls .plyr__control[data-plyr="settings"] {
    transform: scale(1.5); /* Maak ze 50% groter dan standaard (net als rewind/fast-forward) */
    margin: 0 10px; 
    color: var(--color-text-secondary);
}

/* Aanpassingen voor de Terugspoel- en Vooruitspoelknoppen */
.plyr__controls .plyr__control[data-plyr="rewind"],
.plyr__controls .plyr__control[data-plyr="fast-forward"] {
    transform: scale(1.5); /* Maak ze 50% groter dan standaard */
    margin: 0 10px; 
    color: var(--color-text-main);
}


/* Nieuwe order voor Tijdweergave: Dwing ze naar de tweede regel, na de progressiebalk (order 2) */
.plyr__controls .plyr__time {
    order: 3 !important; /* Zet ze na de progressiebalk (order 2) */
    font-size: 1.1em;
    padding: 0 00px;
    margin-top: 5px; /* Optionele ruimte onder de slider */
    font-weight: 600;}

/* Volume element (blijft op de eerste rij met order 1) */
.plyr__controls .plyr__volume {
    font-size: 0.9em;
    padding: 0 10px;
}

.plyr__controls .plyr__menu {
    order: 5 !important; /* Hoge order, dwingt de knop naar de rechterkant van de knoppenrij */
    font-size: 0.9em;
    padding: 0 10px;
}



/* =========================================== */
/* === NIEUWE FIX VOOR STICKY SPELER CONTAINER === */
/* =========================================== */
#top-player-container {
    /* Zorg ervoor dat deze container de sticky eigenschappen heeft */
    position: sticky; 
    
    /* FIX: Plak direct onder de Navigatiebalk (Header 50px + Nav 50px = 100px) */
    top: 100px; 
    
    /* Z-index: Hogere prioriteit dan de content, maar lager dan header/nav (die > 900 hebben) */
    z-index: 900; 
    
    /* Optioneel: Voeg visuele stijl toe (gelijk aan .immersive-player) */
    width: 100%;
    background-color: var(--color-bg-paper);
    
    /* FIX: Verwijder border-radius om naadloos onder de mode-nav te passen */
    border-radius: 0; 

    /* Behoud de schaduw om de speler van de content eronder te scheiden */
    box-shadow: 0 2px 5px var(--color-shadow); 
    
    /* FIX: Verwijder de marge aan de onderkant, zodat de TOC direct aansluit */
    margin-bottom: 0; 

    /* Essentiële fixes voor de sticky werking */
    transform: translateZ(0);
    overflow: hidden;
    box-sizing: border-box; 
}


/* ** NIEUWE STIJL VOOR SNELHEIDSKNOP ** */
/* Gebruikt de 'plyr-control-style' klasse voor consistente styling */
.plyr-control-style { 
    /* Basisstijl voor knop in de vaste balk, zoals Plyr-knoppen */
    background: none;
    border: none;
    color: var(--plyr-color-main); /* Gebruikt de accentkleur */
    cursor: pointer;
    font-size: 1em;
    font-weight: 600; 
    /* Afmetingen voor uitlijning met Plyr-knoppen */
    min-width: 60px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    border-radius: 4px;
    transition: background-color 0.2s;
    flex-shrink: 0; 
    /* Verticale marge om uit te lijnen met Plyr-controls padding van 10px */
    margin-top: 10px;
    margin-bottom: 10px;
} 

.plyr-control-style:hover { 
    background-color: var(--plyr-range-track-color); 
} 

.dark-mode .plyr-control-style:hover { 
    background-color: #555555; 
    /* FIX: Zorg dat de tekstkleur donker is bij hover */
    color: var(--color-text-active-dark) !important; 
}

.plyr-control-style:focus { 
    outline: none; 
    /* Focus ring kleur gebaseerd op Plyr standaard */
    box-shadow: 0 0 0 3px rgba(56, 73, 128, 0.5); 
}

/* =========================================== */
/* === FIX: SCROLLEN IN TOC MENU (GEOPTIMALISEERD) === */
/* =========================================== */

/* De hoogte van de sidebar moet gebaseerd zijn op de beschikbare ruimte
   om te voorkomen dat de algemene scrollbar twee keer verschijnt. */
.toc-container-wrapper[open] .sidebar {
    /* VERLAAGD van 300px naar 280px */
    max-height: calc(100vh - 280px); /* Pas deze waarde aan indien nodig */
    
    overflow-y: auto; 
    position: relative; 
    -webkit-overflow-scrolling: touch;
}

/* --- Mobiele Optimalisatie (max-width: 768px) --- */
@media (max-width: 768px) {
    .toc-container-wrapper[open] .sidebar {
        /* VERLAAGD van 200px naar 180px */
        max-height: calc(100vh - 350px); /* Iets meer ruimte op mobiel */
    }
}

.toc-container-wrapper summary { 
    /* Maak z-index bruikbaar. Dit is cruciaal. */
    position: relative; 
    
    /* Forceer een hoge Z-index om boven renderlaag-conflicten te komen. */
    z-index: 2; 

    /* Hint voor de browser: deze eigenschappen zullen dynamisch veranderen. */
    /* Dit zorgt ervoor dat de browser voldoende geheugen en resources alloceert voor soepele updates. */
    will-change: content, transform;
}

/* Specifieke linkstijl voor artikelen in Dark Mode (incl. focus) */
.dark-mode .text-display-area a, 
.dark-mode .text-display-area a:visited,
.dark-mode .transcript-area a,
.dark-mode .transcript-area a:visited {
    color: var(--plyr-color-main); /* De accentkleur #4FB6AC */
    text-decoration: underline;
}

/* Hover en Focus dezelfde kleur geven */
.dark-mode .text-display-area a:hover,
.dark-mode .text-display-area a:focus,
.dark-mode .transcript-area a:hover,
.dark-mode .transcript-area a:focus {
    color: var(--color-text); /* Lichtgrijs/wit */
    outline: none; /* Optioneel: verwijdert de standaard browser focus-ring als je de kleur genoeg vindt */
}