/* Audirium Academy — consumenten-laag (ingang 2): bewijs, mijn-dashboard, inloggen.
   Standalone designsysteem (laadt geen academy.css). Licht + donker. Uit Fable's mockups. */
:root{
  --navy:#0A0E27; --navy-fixed:#0A0E27; --accent:#D04A02; --bronze:#b0894e;
  /* Tekstvariant van het accent — zie academy.css (WCAG 1.4.3: 4,5:1 op klein formaat). */
  --bronze-ink: color-mix(in srgb, var(--bronze) 78%, #000); --paper:#faf8f5;
  --ink:#1c2033; --stone:#6b7186; --mist:#e4e6ee; --good:#2f7d5b; --surface:#fff;
  --serif:'IBM Plex Serif',Georgia,serif; --sans:-apple-system,'Segoe UI',Roboto,sans-serif;
  --radius:2px; color-scheme: light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --paper:#0d1020; --surface:#161a2e; --ink:#eef0f8; --stone:#9aa0b8; --mist:#454d7a; --navy:#f5f1e8; }
}
:root[data-theme="dark"]{ --paper:#0d1020; --surface:#161a2e; --ink:#eef0f8; --stone:#9aa0b8; --mist:#454d7a; --navy:#f5f1e8; }
*{ box-sizing:border-box; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.5; }
a{ color:inherit; }

/* ---- header / footer ---- */
.c-header{ background:var(--surface); border-bottom:1px solid var(--mist); padding:.9rem 1.5rem; display:flex; align-items:center; justify-content:space-between; }
.wordmark{ font-family:var(--serif); font-weight:700; font-size:1.1rem; color:var(--navy); text-decoration:none; }
.wordmark span{ color:var(--accent); }
.hdr-right{ display:flex; align-items:center; gap:1rem; }
.hdr-link{ font-size:.85rem; color:var(--stone); text-decoration:none; display:inline-block; padding:.5rem 0; }
.hdr-link:hover{ color:var(--accent); }
.avatar{ width:2.1rem; height:2.1rem; border-radius:50%; background:var(--navy-fixed); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-weight:700; font-size:.85rem; }
.c-footer{ text-align:center; font-size:.8rem; color:var(--stone); padding:2rem 1.5rem 3rem; }
.c-footer a{ color:inherit; }

/* ---- generieke knoppen / spinner ---- */
.btn{ display:inline-block; background:var(--accent); color:#fff; font-weight:700; font-size:.92rem; padding:.85rem 1.4rem; border-radius:var(--radius); text-decoration:none; border:none; cursor:pointer; text-align:center; }
.btn:hover{ background:#e35a11; }
.btn-outline{ display:inline-block; border:1.5px solid var(--mist); color:var(--ink); font-weight:700; font-size:.9rem; padding:.75rem 1.3rem; border-radius:var(--radius); text-decoration:none; text-align:center; }
.btn-outline:hover{ border-color:var(--accent); color:var(--accent); }
.textlink{ color:var(--accent); text-decoration:none; font-weight:600; display:inline-block; padding:.4rem 0; }
.textlink:hover{ text-decoration:underline; }
.spinner{ width:18px; height:18px; border:2px solid var(--mist); border-top-color:var(--accent); border-radius:50%; animation:spin .8s linear infinite; display:inline-block; vertical-align:middle; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.loading{ display:flex; align-items:center; justify-content:center; gap:10px; color:var(--stone); padding:30px; }

/* ---- bewijs-pagina ---- */
.c-main{ max-width:640px; margin:2.25rem auto; padding:0 1.25rem; }
.card{ background:var(--surface); border:1px solid var(--mist); border-radius:12px; padding:2.2rem 2rem; }
.badge{ display:inline-block; background:rgba(208,74,2,.1); color:var(--accent); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 14px; border-radius:999px; }
.card h1{ font-family:var(--serif); font-size:1.55rem; line-height:1.32; color:var(--navy); margin:.9rem 0 1.1rem; }
.center{ text-align:center; }
.explain{ display:flex; gap:.7rem; background:var(--paper); border:1px solid var(--mist); border-radius:8px; padding:.9rem 1rem; text-align:left; font-size:.85rem; color:var(--stone); line-height:1.55; margin-bottom:1.5rem; }
.explain b{ color:var(--ink); }
.explain .ic{ color:var(--bronze-ink); flex:none; margin-top:2px; }
.b-box{ background:var(--paper); border:1px solid var(--mist); border-radius:8px; padding:1rem 1.15rem; text-align:left; margin:0 0 1.5rem; }
.b-box-t{ font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--bronze-ink); margin-bottom:.6rem; }
.b-tbl{ width:100%; border-collapse:collapse; }
.b-tbl th{ text-align:left; font-size:.85rem; color:var(--stone); font-weight:400; padding:.35rem 0; }
.b-tbl td{ text-align:right; font-size:.9rem; color:var(--ink); font-weight:700; padding:.35rem 0; }
.mono{ font-family:'Courier New',monospace; font-weight:400; }
.btn-row{ display:flex; flex-direction:column; gap:.7rem; margin-bottom:1.4rem; }
.verify{ font-size:.82rem; color:var(--stone); line-height:1.6; text-align:center; }
.verify a{ color:var(--accent); text-decoration:none; }
.verify .code{ background:var(--mist); border-radius:4px; padding:1px 6px; font-family:'Courier New',monospace; }

/* upsell / kantelpunt (donkere kaart) */
.upsell{ background:linear-gradient(155deg,var(--navy-fixed),#171c3f); color:#fff; border-radius:12px; padding:1.9rem 2rem; margin-top:1.25rem; position:relative; overflow:hidden; }
.upsell::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 90% 0%, rgba(208,74,2,.3), transparent 55%); }
.upsell > *{ position:relative; z-index:1; }
.upsell-ic{ width:2.2rem; height:2.2rem; border-radius:50%; background:rgba(208,74,2,.22); color:#f0b48a; display:flex; align-items:center; justify-content:center; margin-bottom:.9rem; }
.upsell h2{ font-family:var(--serif); font-size:1.25rem; margin:0 0 .55rem; }
.upsell p{ font-size:.87rem; color:#c9cce0; margin:0 0 1rem; line-height:1.6; }
.upsell ul{ list-style:none; padding:0; margin:0 0 1.3rem; }
.upsell li{ font-size:.86rem; color:#e4e6f2; padding:.28rem 0 .28rem 1.6rem; position:relative; }
.upsell li::before{ content:"\2713"; position:absolute; left:0; color:#5fca94; font-weight:700; }
.upsell-actions{ display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.upsell-note{ font-size:.75rem; color:#8f93b0; margin-top:1rem; }
.b-more{ text-align:center; margin-top:1.5rem; }

/* ---- login / inloggen ---- */
.login-wrap{ max-width:440px; margin:3rem auto; padding:0 1.25rem; }
.login-card{ background:var(--surface); border:1px solid var(--mist); border-radius:12px; padding:2.4rem 2.2rem; }
.login-card h1{ font-family:var(--serif); font-size:1.5rem; color:var(--navy); margin:0 0 .5rem; text-align:center; }
.login-card .sub{ color:var(--stone); font-size:.9rem; text-align:center; margin:0 0 1.7rem; line-height:1.5; }
.field-lbl{ display:block; font-size:.82rem; font-weight:700; color:var(--ink); margin-bottom:.4rem; }
.field{ width:100%; font-size:.95rem; padding:.8rem 1rem; border:1px solid var(--mist); border-radius:8px; background:var(--paper); color:var(--ink); font-family:var(--sans); }
.field:focus{ outline:none; border-color:var(--bronze); box-shadow:0 0 0 3px rgba(176,137,78,.35); }
.field-error{ border-color:#c0392b; }
.login-card .btn{ width:100%; margin-top:.9rem; }
.login-note{ display:flex; gap:.6rem; font-size:.82rem; color:var(--stone); line-height:1.55; margin-top:1rem; }
.login-note .ic{ color:var(--bronze-ink); flex:none; margin-top:2px; }
.login-sep{ display:flex; align-items:center; gap:1rem; color:var(--stone); font-size:.82rem; margin:1.5rem 0; }
.login-sep::before,.login-sep::after{ content:""; flex:1; height:1px; background:var(--mist); }
.login-alt{ text-align:center; font-size:.85rem; color:var(--stone); line-height:1.5; }
.login-ok{ text-align:center; }
.login-ok .ok-ic{ width:3rem; height:3rem; margin:0 auto 1rem; border-radius:50%; background:rgba(47,125,91,.14); color:var(--good); display:flex; align-items:center; justify-content:center; font-size:1.5rem; }
.login-ok h1{ font-family:var(--serif); font-size:1.35rem; color:var(--navy); margin:0 0 .6rem; }
.login-ok p{ color:var(--stone); font-size:.9rem; line-height:1.6; margin:0; }

/* ---- LMS-dashboard (mijn) ---- */
.dash{ max-width:920px; margin:0 auto; padding:2.25rem 1.5rem 4rem; }
.welcome h1{ font-family:var(--serif); font-size:1.65rem; margin:0; color:var(--navy); }
.welcome p{ margin:.25rem 0 0; color:var(--stone); font-size:.92rem; }
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.75rem 0 2.25rem; }
.stat{ background:var(--surface); border:1px solid var(--mist); border-radius:8px; padding:1.1rem 1.2rem; }
.stat .num{ font-family:var(--serif); font-size:1.6rem; color:var(--navy); font-weight:700; }
.stat .lbl{ font-size:.78rem; color:var(--stone); margin-top:.15rem; }
.dsec{ margin-bottom:2.5rem; }
.sec-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:1rem; }
.sec-head h2{ font-family:var(--serif); font-size:1.2rem; margin:0; color:var(--navy); }
.sec-head a{ font-size:.83rem; color:var(--accent); text-decoration:none; }
.continue-card{ background:linear-gradient(155deg,var(--navy-fixed),#171c3f); color:#fff; border-radius:10px; padding:1.9rem 2rem; position:relative; overflow:hidden; }
.continue-card::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 92% 0%, rgba(208,74,2,.32), transparent 55%); }
.cc-inner{ position:relative; z-index:1; }
.cc-eyebrow{ font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; color:#f0b48a; font-weight:700; margin-bottom:.5rem; }
.cc-title{ font-family:var(--serif); font-size:1.4rem; margin:0 0 .3rem; }
.cc-sub{ font-size:.87rem; color:#c9cce0; margin:0 0 1.2rem; }
.cc-actions{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.btn-cc{ background:var(--accent); color:#fff; font-weight:700; font-size:.9rem; padding:.8rem 1.3rem; border-radius:var(--radius); text-decoration:none; }
.btn-cc:hover{ background:#e35a11; }
.cert-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1rem; }
.cert-card{ background:var(--surface); border:1px solid var(--mist); border-radius:8px; padding:1.1rem 1.15rem; display:flex; flex-direction:column; gap:.4rem; }
.cert-badge{ width:2rem; height:2rem; border-radius:50%; background:rgba(176,137,78,.15); color:var(--bronze-ink); display:flex; align-items:center; justify-content:center; margin-bottom:.2rem; }
.cert-card h3{ font-family:var(--serif); font-size:.98rem; margin:0; color:var(--navy); line-height:1.3; }
.cert-meta{ font-size:.78rem; color:var(--stone); }
.cert-links{ display:flex; gap:1rem; margin-top:.35rem; }
.cert-links a{ font-size:.78rem; color:var(--accent); text-decoration:none; font-weight:600; display:inline-block; padding:.35rem 0; }
.rec-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1rem; }
.rec-card{ background:var(--surface); border:1px solid var(--mist); border-radius:8px; padding:1.2rem 1.25rem; display:flex; flex-direction:column; }
.rec-tag{ display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:.25rem .55rem; border-radius:999px; margin-bottom:.7rem; width:fit-content; }
.tag-free{ background:rgba(47,125,91,.13); color:var(--good); }
.tag-premium{ background:rgba(176,137,78,.16); color:var(--bronze-ink); }
.rec-card h3{ font-family:var(--serif); font-size:1.02rem; margin:0 0 .35rem; color:var(--navy); }
.rec-card p{ font-size:.83rem; color:var(--stone); margin:0 0 1rem; flex:1; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; line-clamp:4; overflow:hidden; }
.rec-card .go{ align-self:flex-start; font-size:.85rem; font-weight:700; color:var(--accent); text-decoration:none; border:1px solid var(--mist); padding:.5rem .9rem; border-radius:var(--radius); }
.rec-card .go:hover{ border-color:var(--accent); }
.discover{ background:var(--surface); border:1px dashed var(--mist); border-radius:8px; padding:1.5rem 1.75rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.discover h3{ font-family:var(--serif); font-size:1.05rem; margin:0 0 .25rem; color:var(--navy); }
.discover p{ margin:0; font-size:.85rem; color:var(--stone); }
.discover a{ background:var(--navy); color:var(--paper); text-decoration:none; font-size:.85rem; font-weight:700; padding:.75rem 1.2rem; border-radius:var(--radius); white-space:nowrap; }
.empty-note{ color:var(--stone); font-size:.9rem; }
.err-ic{ width:2.8rem; height:2.8rem; margin:0 auto 1rem; border-radius:50%; background:rgba(208,74,2,.1); color:var(--accent); font-size:1.5rem; font-weight:800; display:flex; align-items:center; justify-content:center; }

@media (max-width:640px){
  .stats{ grid-template-columns:repeat(3,1fr); gap:.55rem; }
  .card,.login-card{ padding:1.6rem 1.25rem; }
}

/* Reviewer-aanmelding (/academy/reviewer) - stappenlijst, toestemmingsvinkje en
   het 'optioneel'-label bij een veld. Volgt de bestaande .field/.login-*-conventies. */
.rev-steps{ margin:0 0 1.6rem; padding-left:1.15rem; color:var(--stone); font-size:.88rem; line-height:1.65; }
.rev-steps li{ margin-bottom:.3rem; }
.rev-steps li::marker{ color:var(--accent); font-weight:700; }
.field-lbl .opt{ font-weight:400; color:var(--stone); }
textarea.field{ resize:vertical; min-height:5.5rem; line-height:1.55; }
.rev-check{ display:flex; align-items:flex-start; gap:.6rem; margin:1.1rem 0 1.4rem;
  font-size:.84rem; color:var(--stone); line-height:1.55; cursor:pointer; }
.rev-check input{ margin-top:.2rem; flex:0 0 auto; accent-color:var(--accent); }
/* Meerdere velden onder elkaar (alleen op de reviewer-pagina; de login heeft er maar een). */
#rev .field{ margin-bottom:1.05rem; }
#rev .field-lbl{ margin-top:.2rem; }
