/* Appel 2.0 — stijl van het goedgekeurde proefje (~/Downloads/proefje-voordeur.html).
   Letterlijk overgenomen van :root t/m .reeks i.nu; .stage/.label/.phone (proefje-frame) weggelaten. */
:root{--bg:#0f1420;--bg2:#141b2a;--surface:#1a2233;--surface2:#212c42;--ink:#eaf0f8;--sub:#8ea0bd;--line:#2a3550;
--accent:#5bb8ff;--accent-ink:#04223b;--accent-soft:#1e3a5a;--good:#4ade80;--warn:#ffcf5b;--radius:20px}
*{box-sizing:border-box}
body{margin:0;background:#070a12;color:var(--ink);font-family:"Atkinson Hyperlegible",system-ui,sans-serif;font-size:17px;line-height:1.55}
h1,h2,h3,.kop{font-family:"Bricolage Grotesque",sans-serif;margin:0}
.top{display:flex;justify-content:space-between;align-items:center;color:var(--sub);font-size:14px;margin-bottom:14px}
.top b{color:var(--ink)}
.hallo{font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.01em}
.hallo span{color:var(--accent)}
.sub{color:var(--sub);margin:6px 0 16px;font-size:16px}
.kaart{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 14px;margin-bottom:12px}
.nu{background:linear-gradient(160deg,#1e3a5a,#16304a);border-color:#2d5a8a}
.tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.nu .titel{font-size:24px;font-weight:800;line-height:1.15}
.nu .meta{color:#bcd6f2;margin:6px 0 14px;font-size:15px}
.knop{display:block;width:100%;text-align:center;background:var(--accent);color:var(--accent-ink);font-family:"Bricolage Grotesque";font-weight:800;font-size:19px;padding:14px;border-radius:14px;border:0}
.knop.licht{background:var(--surface2);color:var(--ink);font-weight:700;font-size:16px;padding:12px}
.rij{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.rij:first-of-type{border-top:0}
.vink{width:34px;height:34px;border-radius:50%;border:2px solid var(--sub);flex:none;display:grid;place-items:center;font-weight:800;color:var(--accent-ink)}
.vink.af{background:var(--good);border-color:var(--good)}
.rij .t{flex:1;font-size:17px}
.rij .t small{display:block;color:var(--sub);font-size:15px}
.rij .tijd{color:var(--sub);font-size:14px;white-space:nowrap}
.kop2{display:flex;justify-content:space-between;align-items:baseline;margin:4px 2px 8px}
.kop2 h2{font-size:19px;font-weight:800}
.kop2 .teller{color:var(--sub);font-size:14px}
.toets{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.toets:first-of-type{border-top:0}
.toets .emo{font-size:22px;width:30px;text-align:center}
.toets .t{flex:1}
.toets .t b{display:block;font-size:16px}
.toets .t small{color:var(--sub);font-size:13px}
.balk{height:6px;background:var(--surface2);border-radius:4px;margin-top:6px;overflow:hidden}
.balk i{display:block;height:100%;background:var(--accent);border-radius:4px}
.dagen{font-family:"Bricolage Grotesque";font-weight:800;font-size:15px;color:var(--warn);white-space:nowrap}
.hero{background:linear-gradient(160deg,#1e3a5a,#12263d);border:1px solid #2d5a8a;border-radius:var(--radius);padding:18px 16px 16px;margin-bottom:12px}
.hero .tag{color:#9fd0ff}
.hero .groot{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em}
.hero .groot small{font-size:18px;font-weight:700;color:#bcd6f2;letter-spacing:0;margin-left:6px}
.hero .wat{font-size:17px;margin:8px 0 12px;color:#e6f1fb}
.hero .plan{display:flex;gap:6px;margin:10px 0 4px}
.hero .plan i{flex:1;height:10px;border-radius:5px;background:#2a4a6e}
.hero .plan i.af{background:var(--good)}
.hero .plan i.nu{background:var(--accent)}
.hero .uitleg{color:#bcd6f2;font-size:14px}
.voet{display:flex;gap:10px;margin-top:14px}
.voet a{flex:1;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 8px;color:var(--ink);text-decoration:none;font-size:15px;font-weight:700}
.reeks{display:flex;align-items:center;gap:8px;color:var(--sub);font-size:14px;margin:2px 4px 12px}
.reeks i{width:12px;height:12px;border-radius:50%;background:var(--surface2);display:inline-block}
.reeks i.ja{background:var(--good)}
.reeks i.nu{border:2px solid var(--accent)}

/* --- toegevoegd voor het echte scherm (geen telefoon-frame meer) --- */
body{background:var(--bg);min-height:100vh}
.app{max-width:520px;margin:0 auto;padding:18px 16px 40px}
.ochtend .speler{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:12px}
.ochtend .speler audio{width:100%}
.rooster{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.rooster span{background:var(--surface2);border-radius:999px;padding:6px 12px;font-size:14px}
.toetsdag{background:rgba(255,207,91,.12);border:1px solid rgba(255,207,91,.45);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}
.toetsdag .knop{background:var(--warn);color:#2a1e00;margin-top:10px}
.rij .foto{display:block;font-size:12px;color:var(--sub);margin-top:2px}
.rij a.t{color:inherit;text-decoration:none}
.meer{color:var(--sub);font-size:14px;padding:8px 4px}
details summary{cursor:pointer;font-family:"Bricolage Grotesque";font-weight:800;font-size:19px;list-style:none;display:flex;justify-content:space-between}
.leeg{color:var(--sub);padding:10px 4px 14px}
@media (max-width:380px){.hallo{font-size:26px}.hero .groot{font-size:34px}}

/* kleine aanvullingen: geen driehoekje bij <details>, knop-links als knop, vinkje bedienbaar met toetsenbord */
details{margin-bottom:14px}
details summary::-webkit-details-marker{display:none}
details summary .teller{font-family:"Atkinson Hyperlegible",system-ui,sans-serif;font-weight:400;font-size:14px;color:var(--sub)}
details summary .teller::after{content:" ▾"}          /* zichtbaar dat het opengaat */
details[open] summary .teller::after{content:" ▴"}
a.knop{text-decoration:none;box-sizing:border-box}
.vink{cursor:pointer}
.vink:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.rij .t a.t{display:inline-block}

/* --- fase 1a: toets-route (toets.html) --- */
.top .terug{color:var(--sub);text-decoration:none;font-weight:700}
.hero .stappen{display:flex;align-items:center;gap:0;margin:12px 0 6px}
.hero .stappen i{width:30px;height:30px;border-radius:50%;background:#2a4a6e;color:#bcd6f2;font-style:normal;font-family:"Bricolage Grotesque";font-weight:800;display:grid;place-items:center;flex:none}
.hero .stappen i.nu{background:var(--accent);color:var(--accent-ink)}
.hero .stappen i.af{background:var(--good);color:#06301a}
.hero .stappen b{flex:1;height:4px;background:#2a4a6e;border-radius:2px}
.kop2 .nr{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:15px;margin-right:8px;vertical-align:-3px}
.noot{color:var(--sub);font-size:14px;padding:2px 4px 14px}
.noot a{color:var(--accent);text-decoration:none;font-weight:700}
.rij.blok.nu .vink{border-color:var(--accent);color:var(--accent);font-size:13px}
.rij.blok.open .vink{border-color:var(--warn);color:var(--warn)}
.rij.blok.komt .t{color:#c9d4e6}
.route .knop{margin:2px 0 14px}
.bewijs .titel{font-size:22px;font-weight:800;line-height:1.15}
.bewijs .meta{color:var(--sub);margin:6px 0 14px;font-size:15px}
.bewijs.ok{border-color:var(--good)}
.bewijs.ok .meta b{color:var(--good)}
.hero .route{display:inline-block;margin-top:10px;color:#9fd0ff;font-weight:700;text-decoration:none;font-size:15px}

/* --- les naluisteren (les.html + lessen.html, Plaud NotePin-pijplijn) --- */
.speler{background:rgba(7,10,18,.35);border:1px solid #2d5a8a;border-radius:14px;padding:10px 12px;margin-top:12px}
.speler audio{width:100%;display:block}
.speler .uitleg{margin-top:6px}
.kaart.tekst p{margin:0 0 12px;font-size:17px;line-height:1.5}
.kaart.tekst p:last-child{margin-bottom:0}
.rij .t small.citaat{color:var(--sub);font-style:normal;margin-top:2px}
.rij .t small .onzeker{color:var(--warn)}
a.toets{text-decoration:none;color:inherit}
/* fase 1b: "oefen alleen dit →" onder een stof-onderdeel (standaard link-blauw was onleesbaar op donker) */
.rij .t small a{color:var(--accent);text-decoration:none;font-weight:700}
a.toets .t b{color:var(--ink)}
/* fase 1c: onderdeel "zit erin" (3x goed op rij) + coach-regel als het na 3x oefenen blijft misgaan */
.rij .t small b.zit{color:var(--good)}
.rij.beheerst .vink{border-color:var(--good)}
.rij .t small.coach{color:var(--warn);margin-top:3px}
.rij .t small.coach a{color:var(--warn)}

/* --- klasgenoot-feed (8-9-2026, Jamal "ga" op het proefje v2/feed.html): de voordeur als berichten-feed van Appel --- */
:root{--geel:#ffd166;--geel2:#f9a826;--geel-ink:#3a2300}
.dag{display:flex;align-items:center;gap:10px;color:var(--sub);font-size:13px;margin:6px 0 10px}
.dag::before,.dag::after{content:"";flex:1;height:1px;background:var(--line)}
.msg{display:flex;gap:12px;padding:10px 4px;border-radius:14px}
.msg .av{width:44px;height:44px;border-radius:50%;flex:none;object-fit:cover;background:var(--surface2);box-shadow:0 4px 14px rgba(247,127,0,.25)}
.msg .body{flex:1;min-width:0}
.msg .wie{display:flex;align-items:baseline;gap:8px;margin-bottom:3px;flex-wrap:wrap}
.msg .wie b{font-family:"Bricolage Grotesque";font-weight:800;font-size:17px;color:var(--geel)}
.msg .wie .badge{font-size:12px;font-weight:700;letter-spacing:.04em;background:var(--accent-soft);color:#9fd0ff;border-radius:6px;padding:2px 6px;text-transform:uppercase}
.msg .wie .tijd{color:var(--sub);font-size:13px;margin-left:auto;white-space:nowrap}
.msg .wie .spreek{background:transparent;border:0;color:var(--sub);font-size:15px;cursor:pointer;padding:2px 4px;line-height:1}
.msg .tekst{font-size:17px;line-height:1.55}
.msg .tekst b{color:var(--geel)}
.msg .tekst .vak{font-weight:700}
.msg .tekst .speler{margin-top:10px}
.msg .tekst .rooster{margin:10px 0 0}
.msg .tekst .toetsdag{margin-top:10px;margin-bottom:0}
.msg .tekst .kaart{margin-top:10px;margin-bottom:0}
.msg .tekst .kaart .toets .t b{color:var(--ink)}
.quote{border-left:3px solid var(--line);color:var(--sub);font-size:15px;padding:2px 0 2px 10px;margin:8px 0 2px;line-height:1.4}
.quote.geel{border-color:var(--geel)}
.pil{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;margin:8px 8px 0 0}
.pil.geel{color:var(--geel)}
.wijkaart{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px 14px 6px;margin-top:10px}
.wijkaart h3{font-size:18px;display:flex;justify-content:space-between;align-items:baseline}
.wijkaart h3 span{font-family:"Atkinson Hyperlegible";font-weight:400;color:var(--sub);font-size:13px}
.wijkaart .balk{height:8px;margin:8px 0 12px}
.wijkaart .balk i{background:linear-gradient(90deg,var(--geel),var(--geel2))}
.item{display:flex;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:16px}
.item:first-of-type{border-top:0}
.item.af{opacity:.55}
/* UX 9-9: één vinkje in de hele app = lege cirkel (zoals route en les), de vak-emoji staat vóór de tekst; 36px tikdoel */
.item .st{width:36px;height:36px;border-radius:50%;background:transparent;border:2px solid var(--sub);display:grid;place-items:center;font-size:17px;flex:none;cursor:pointer;color:#06301a;font-weight:800}
.item .st:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.item.af .st{background:var(--good);border-color:var(--good)}
.item .t{flex:1;min-width:0}
.item .t a.t{display:inline;color:inherit;text-decoration:none}
.item small{display:block;color:var(--sub);font-size:15px}
.item .t .emo{margin-right:6px}
.item small a{display:inline-block;padding:6px 0}
.item small a{color:var(--accent);text-decoration:none;font-weight:700}
.item .tijd{color:var(--sub);font-size:13px;white-space:nowrap}
.knoppen{display:flex;gap:10px;margin:12px 0 4px}
.ja{flex:1;text-align:center;background:linear-gradient(160deg,var(--geel),var(--geel2));color:var(--geel-ink);font-family:"Bricolage Grotesque";font-weight:800;font-size:18px;padding:14px;border-radius:16px;text-decoration:none;border:0}
.later{flex:0 0 auto;text-align:center;background:var(--surface2);color:#c9d2e6;font-weight:700;font-size:15px;padding:14px 16px;border-radius:16px;text-decoration:none;border:0;font-family:inherit}
.vrij{color:var(--sub);font-size:14px;margin:8px 0 6px;text-align:center}
.invoer{display:flex;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 12px;margin-top:16px}
.invoer a.spar{flex:1;color:var(--sub);text-decoration:none;font-size:15px}
.invoer a.spar b{color:var(--ink)}
.invoer a.ik{width:40px;height:40px;border-radius:12px;background:var(--surface2);display:grid;place-items:center;text-decoration:none;font-size:18px;flex:none}
.wijkaart details{margin:0}
.wijkaart details summary{font-size:16px;font-weight:700;padding:8px 0 4px}

/* --- UX-ronde 9-9 (Jamal akkoord op alle adviezen) --- */
.lesregel{border-top:1px solid var(--line);padding:8px 0}
.lesregel:first-of-type{border-top:0}
.lesregel summary{cursor:pointer;list-style:none;font-size:16px;font-weight:400;font-family:"Atkinson Hyperlegible",system-ui,sans-serif;display:flex;gap:8px;align-items:baseline}
.lesregel summary::-webkit-details-marker{display:none}
.lesregel summary .meer{margin-left:auto;color:var(--sub);font-size:13px;white-space:nowrap}
.lesregel[open] summary .meer::after{content:" ▴"}
.lesregel:not([open]) summary .meer::after{content:" ▾"}
.lesregel .uitklap{padding:6px 0 2px 0;font-size:16px}
.groep summary{cursor:pointer;list-style:none;color:var(--sub);font-size:15px;font-weight:400;font-family:"Atkinson Hyperlegible",system-ui,sans-serif;padding:8px 0 4px 48px}
.groep summary::-webkit-details-marker{display:none}
form.invoer{margin-top:16px}
.invoer input{flex:1;min-width:0;background:transparent;border:0;color:var(--ink);font:inherit;font-size:16px;outline:none}
.invoer input::placeholder{color:var(--sub)}
.invoer button.ik{border:0;cursor:pointer;font-family:inherit}
.invoer .ik.geel{background:linear-gradient(160deg,var(--geel),var(--geel2));color:var(--geel-ink)}
.top .thema{background:transparent;border:0;color:var(--sub);font-size:16px;cursor:pointer;margin-left:8px}
.straks{color:var(--sub);font-size:15px;margin-top:8px}
/* licht thema als optie (UX-review: BDA adviseert licht-niet-wit; Dani kiest zelf, standaard blijft donker) */
body.licht{--bg:#f3f5fa;--bg2:#ffffff;--surface:#ffffff;--surface2:#e8edf6;--ink:#141b2a;--sub:#4f5f7c;--line:#d5dceb;--accent:#1d6fb8;--accent-ink:#ffffff;--accent-soft:#dbeafe;--good:#1f9d55;--warn:#b7791f;--geel:#a16207;--geel2:#ca8a04;--geel-ink:#ffffff}
body.licht .hero{background:linear-gradient(160deg,#dbeafe,#eef4ff);border-color:#b6ccec}
body.licht .hero .tag,body.licht .hero .uitleg,body.licht .hero .wat,body.licht .hero .groot small{color:#1e3a5a}
body.licht .nu{background:linear-gradient(160deg,#dbeafe,#e8f0fb);border-color:#b6ccec}
body.licht .nu .meta{color:#2b4a6f}
body.licht .msg .wie .badge{color:#1d4f8a}
body.licht .item.af .st{color:#fff}

/* --- gedeelde kopbalk met navigatie (9-9-2026, na de test met Dani) --- */
.kopbalk{margin-bottom:14px}
.kopbalk .top{margin-bottom:8px}
.kopbalk .top .rechts{display:flex;align-items:center;gap:8px}
.kopbalk .top .thema{background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--sub);
  font-family:inherit;font-size:13px;font-weight:700;padding:6px 12px;cursor:pointer;white-space:nowrap;min-height:36px}
.paginatitel{font-family:"Bricolage Grotesque",sans-serif;font-size:26px;font-weight:800;line-height:1.1;margin:0 0 8px;letter-spacing:-.01em}
.kopbalk .terug{display:inline-block;color:var(--sub);text-decoration:none;font-weight:700;font-size:15px;margin-bottom:8px}
.nav{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-bottom:2px}
@media (min-width:560px){.nav{grid-template-columns:repeat(6,1fr)}}
.nav::-webkit-scrollbar{display:none}
.nav a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:9px 6px;color:var(--sub);
  font-size:14px;font-weight:700;white-space:nowrap}
.nav a span{font-size:19px;line-height:1}
.nav a.aan{background:var(--accent-soft);border-color:#2d5a8a;color:var(--ink)}
body.licht .nav a.aan{background:var(--accent-soft);border-color:#8fb6e0}
@media (max-width:380px){.paginatitel{font-size:23px}.nav a{font-size:13px;padding:8px 4px}}

/* 17-9: knop naar de speelse ochtendweergave (vandaag.html). Terugdraaien = dit blok weghalen. */
.vandaagknop{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);
  background:linear-gradient(160deg,rgba(255,207,91,.16),var(--surface));
  border:1px solid rgba(255,207,91,.45);border-left:3px solid var(--warn);
  border-radius:18px;padding:14px 16px;margin:0 0 14px}
.vandaagknop .e{font-size:26px;flex:none}
.vandaagknop .t{flex:1;min-width:0}
.vandaagknop .t b{display:block;font-family:"Bricolage Grotesque";font-weight:800;font-size:17px}
.vandaagknop .t small{display:block;color:var(--sub);font-size:14px;margin-top:2px}
.vandaagknop .p{flex:none;background:var(--warn);color:#2a1e00;border-radius:999px;
  padding:8px 14px;font-weight:800;font-size:14px}

/* ---- 2-10-2026: "Ook nog" (bijzaak) + de luisterknop ----
   Rol study buddy (Jamal 2-10): alleen toetswerk staat open. Huiswerk, lesverslagen,
   rooster en de week zitten hieronder, ingeklapt. Terugdraaien = dit blok weghalen. */
.luister{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--sub);font-size:15px}
.luister .spreek{background:var(--surface2);color:var(--ink);border:1px solid var(--line);border-radius:999px;
  width:40px;height:40px;flex:none;font-size:17px;cursor:pointer}
.bijzaak{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:0;margin:0 0 14px;overflow:hidden}
.bijzaak>summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:14px 16px;cursor:pointer;list-style:none}
.bijzaak>summary::-webkit-details-marker{display:none}
.bijzaak>summary::after{content:'▾';margin-left:auto;color:var(--sub);font-size:15px}
.bijzaak[open]>summary::after{content:'▴'}
.bz-label{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:13px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--sub)}
.bz-tel{color:var(--sub);font-size:14px;overflow-wrap:anywhere}
.bz-in{padding:0 16px 14px}
.bz-kopje{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:800;font-size:15px;
  color:var(--ink);margin:14px 0 6px}
.bz-in .vandaagknop{margin-top:4px}
.bz-in .wijkaart{margin-top:0}
