/* ============================================================
   Pukkelokko versie 2 — Fotocockpit
   Designsysteem 1:1 overgenomen uit de mockup (oklch + echte fonts)
   ============================================================ */
:root{
  --bg: oklch(0.952 0.012 245);
  --bg-2: oklch(0.934 0.014 245);
  --surface: oklch(0.997 0.003 245);
  --surface-2: oklch(0.975 0.008 245);
  --ink: oklch(0.20 0.024 262);
  --ink-2: oklch(0.42 0.022 260);
  --muted: oklch(0.58 0.018 258);
  --faint: oklch(0.72 0.014 256);
  --line: oklch(0.915 0.012 252);
  --line-2: oklch(0.88 0.014 252);
  --accent-h: 256;
  --accent: oklch(0.58 0.20 var(--accent-h));
  --accent-press: oklch(0.50 0.20 var(--accent-h));
  --accent-soft: oklch(0.94 0.045 var(--accent-h));
  --accent-ink: oklch(0.40 0.16 var(--accent-h));
  --cyan: oklch(0.74 0.13 205);
  --cyan-soft: oklch(0.95 0.045 205);
  --warm: oklch(0.70 0.165 42);
  --warm-soft: oklch(0.95 0.05 55);
  --warm-ink: oklch(0.52 0.15 42);
  --green: oklch(0.62 0.15 150);
  --green-soft: oklch(0.94 0.05 150);
  --green-ink: oklch(0.45 0.12 150);
  /* foto-status selectiepalet */
  --fs-paar:#ff7e67; --fs-genoeg:#347474; --fs-veel:#42b883; --slate:#35495e; --pink:#ff3d81;
  --red: oklch(0.62 0.22 25);
  --radius: 18px; --radius-sm: 12px; --radius-lg: 26px;
  --shadow-sm: 0 1px 2px oklch(0.55 0.04 260 / 0.06), 0 1px 1px oklch(0.55 0.04 260 / 0.04);
  --shadow: 0 6px 22px -10px oklch(0.45 0.06 262 / 0.22), 0 2px 6px -3px oklch(0.45 0.06 262 / 0.12);
  --shadow-lg: 0 24px 60px -22px oklch(0.40 0.08 262 / 0.40);
  --disp: "Bricolage Grotesque", system-ui, sans-serif;
  --body: "Hanken Grotesk", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --rail-w: 240px;
  --glass: oklch(0.952 0.012 245 / 0.84);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--bg);color:var(--ink);font-family:var(--body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{min-height:100vh;min-height:100dvh}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.disp{font-family:var(--disp)}

/* ---------- App-shell ---------- */
.app{display:flex;min-height:100vh;min-height:100dvh}
.sidebar{width:var(--rail-w);flex:0 0 var(--rail-w);border:1px solid var(--line);background:var(--surface);
  display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:12px;height:calc(100vh - 24px);z-index:500;
  margin:12px 0 12px 12px;border-radius:22px;box-shadow:0 8px 30px -20px rgba(0,0,0,.3)}
.brand{display:flex;align-items:center;justify-content:center;gap:13px;padding:6px 8px 20px;text-decoration:none;color:inherit;border-radius:14px;transition:opacity .13s}
a.brand:hover{opacity:.82}
/* breed festivalhelpertje-logo: geen cirkel/crop, gewoon het logo zelf — groot en gecentreerd */
.brand .logo-img{width:auto;height:74px;border-radius:0;overflow:visible;flex:none;box-shadow:none}
.brand .logo-img img,.brand .logo-img picture{width:auto;height:100%;object-fit:contain;display:block}
.brand .logo-img.geen-logo{width:60px;height:60px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:800;font-size:26px}
.brand .logo-img.geen-logo::after{content:"F"}
.login .logo-img{width:auto;height:96px}
.login .logo-img.geen-logo{width:96px;font-size:44px}
/* de naam staat al in het logo zelf — tekst ernaast enkel tonen als het logo ontbreekt */
.brand:has(.logo-img:not(.geen-logo)) .naam{display:none}
.brand .naam{font-family:var(--disp);font-weight:800;font-size:23px;line-height:1.03;letter-spacing:-.03em}
.brand .sub{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:600}
.nav-search{position:relative;margin:0 4px 16px}
.nav-search .ns-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color .14s}
.nav-search input{width:100%;appearance:none;-webkit-appearance:none;border:1.5px solid var(--line);border-radius:13px;background:var(--bg-2);padding:12px 13px 12px 40px;cursor:text;
  font:650 14px var(--body);color:var(--ink);outline:0;box-shadow:none;transition:.14s}
.nav-search input::placeholder{color:var(--faint);font-weight:600}
.nav-search input:hover{border-color:var(--line-2)}
.nav-search input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.nav-search input:focus + .nav-search-results,.nav-search:focus-within .ns-ic{color:var(--accent)}
.nav-search input::-webkit-search-decoration,.nav-search input::-webkit-search-cancel-button{display:none}
.nav-search input:focus{border-color:var(--line);background:var(--surface);outline:0;box-shadow:none}
.nav-search-results{position:absolute;left:0;top:calc(100% + 8px);z-index:1500;width:min(660px,calc(100vw - 280px));padding:11px;border:1px solid var(--line);
  border-radius:18px;background:var(--surface);box-shadow:0 28px 70px -20px oklch(0.25 0.05 260/.5);display:grid;gap:6px;max-height:calc(100vh - 150px);overflow-y:auto}
.nav-search-results[hidden]{display:none!important}
.nav-search-results a{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px;border-radius:14px}
/* zoekresultaat met los hartje ernaast om de band op je lijstje te zetten */
.nav-result-wrap{display:flex;align-items:stretch;gap:6px}
.nav-result-wrap .nav-result{flex:1;min-width:0}
.nav-result-hart{flex:none;align-self:center;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--red);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.13s}
.nav-result-hart:hover{border-color:color-mix(in oklch,var(--red) 45%,var(--line));background:color-mix(in oklch,var(--red) 7%,#fff)}
.nav-result-hart.aan{background:var(--red);border-color:var(--red);color:#fff}
.nav-result-hart:active{transform:scale(.92)}
.nav-search-results a:hover{background:var(--bg-2)}
.nav-result-img{width:66px;height:66px;border-radius:14px;background:var(--bg-2) center/cover no-repeat;box-shadow:0 0 0 1px var(--line);align-self:start}
.nav-result-main{min-width:0}
.nav-search-results b{display:block;font-family:var(--disp);font-size:25px;font-weight:900;line-height:1.0;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-search-results small{display:block;margin-top:6px;color:var(--muted);font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-result-crew{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.nav-result-crew em{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line-2);
  color:var(--ink-2);font-style:normal;font-size:11px;font-weight:850;line-height:1}
/* artiest-zoek bovenaan het mobiele "Meer"-menu */
.botmore-search{margin:2px 0 10px}
/* meldingen-schakelaar (wekker) — gedeeld door profiel + Meer-menu */
.np-switch{position:relative;width:52px;height:30px;border-radius:999px;border:0;background:var(--line-2);cursor:pointer;flex:none;transition:background .18s}
.np-switch i{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:left .18s}
.np-switch[aria-checked="true"]{background:var(--green)}
.np-switch[aria-checked="true"] i{left:25px}
.np-switch[disabled]{opacity:.55;cursor:not-allowed}
/* notificaties-kaart bovenaan het "Meer"-menu (uitklapbaar) */
.botmore-wekker{margin:0 0 14px;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm)}
.botmore-wekker .bw-rij{display:flex;align-items:center;gap:13px}
.botmore-wekker .bw-ic{width:42px;height:42px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;transition:background .18s,color .18s}
.botmore-wekker .bw-ic.aan{background:var(--green-soft);color:var(--green-ink)}
.botmore-wekker .bw-tx{flex:1;min-width:0;text-align:left;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit}
.botmore-wekker .bw-tx b{display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:850;letter-spacing:-.01em;line-height:1.2}
.botmore-wekker .bw-tx>span{display:block;margin:3px 0 0;font-size:12px;line-height:1.4;color:var(--muted)}
.botmore-wekker .bw-chev{font-size:13px;color:var(--muted);transition:transform .2s}
.botmore-wekker.open .bw-chev{transform:rotate(180deg)}
.botmore-wekker .bw-tijd{margin-top:13px;padding-top:13px;border-top:1px solid var(--line-2)}
.botmore-wekker .bw-tijd[hidden]{display:none}
.botmore-wekker .bw-tijd-lbl{display:block;font-size:12.5px;font-weight:800;color:var(--ink-2);margin-bottom:9px}
.botmore-wekker .bw-tijd-keuze{display:flex;flex-wrap:wrap;gap:8px}
/* gedetailleerde voorhandtijd-keuze (enkel op de profielpagina) */
.np-tijd{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2)}
.np-tijd-lbl{display:block;font-size:13px;font-weight:800;color:var(--ink-2);margin-bottom:9px}
.np-tijd-keuze{display:flex;flex-wrap:wrap;gap:8px}
.np-tijd-btn{flex:1 1 auto;min-width:62px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink-2);
  padding:9px 8px;font-family:var(--mono);font-weight:800;font-size:13px;cursor:pointer;transition:.13s}
.np-tijd-btn:hover{border-color:var(--slate);background:var(--bg-2)}
.np-tijd-btn.aan{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 3px var(--accent-soft)}
/* fotografen in de zoekresultaten: duidelijk leesbare chips (groen = al geschoten) */
.botmore-search .nav-result-crew{gap:6px;margin-top:8px}
.botmore-search .nav-result-crew em{padding:6px 11px;font-size:12.5px;background:var(--bg-2);border:1px solid var(--line);color:var(--ink)}
.botmore-search .nav-result-crew em .navc-cam{opacity:.7;width:13px;height:13px}
.botmore-search .nav-result-crew em.done{background:var(--green-soft);border-color:color-mix(in oklch,var(--green) 40%,var(--line));color:var(--green-ink);font-weight:850}
.botmore-search .nav-result-status{margin-right:0;font-size:10.5px;padding:6px 10px}
.botmore-search .nav-search-results{position:static;width:auto;border:0;box-shadow:none;background:transparent;padding:8px 0 0;max-height:none;display:grid;gap:6px}
.botmore-search .nav-search-results a{grid-template-columns:52px minmax(0,1fr) auto;gap:11px;padding:10px 8px}
.botmore-search .nav-result-img{width:52px;height:52px;border-radius:12px}
.botmore-search .nav-search-results b{font-size:19px}
.botmore-search .nav-search-results small{font-size:12px;margin-top:3px}
.nav-result-crew em.empty{color:var(--muted);background:var(--bg-2)}
.nav-result-crew em .navc-cam{opacity:.5;flex:none}
.nav-result-crew em.done{background:var(--green-soft);border-color:transparent;color:var(--green-ink)}
.nav-result-crew em.done .navc-cam{opacity:.85;color:var(--green-ink)}
.nav-result-crew em.done .navc-check{flex:none;color:var(--green-ink)}
.nav-result-status{align-self:center;margin-right:13px;white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.nav-result-status.ok{background:var(--green-soft);color:var(--green-ink)}
.nav-result-status.deels{background:var(--warm-soft,oklch(0.95 0.06 70));color:var(--warm-ink,#9a5b12)}
.nav-result-status.todo{background:var(--bg-2);color:var(--muted)}
.nav-result-status.warn{background:oklch(0.96 0.035 25);color:var(--red)}
.nav-search-empty{padding:9px;color:var(--muted);font-size:12.5px;font-weight:700}
.navlabel{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);
  font-weight:700;padding:6px 12px;margin-top:10px}
.nav a{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:12px;
  font-size:16px;font-weight:550;color:var(--ink-2);margin:2px 0}
.nav a .ic{width:20px;height:20px;color:var(--muted);flex:0 0 20px}
.nav a:hover{background:var(--bg-2)}
.nav a.actief{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.nav a.actief .ic{color:var(--accent)}
.nav a .badge{margin-left:auto;background:var(--accent);color:#fff;font-size:11px;font-weight:700;
  min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px}
.nav a .stip{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--red)}
.rail-bottom{margin-top:auto;padding-top:10px;flex:none}
/* lage schermen: menu scrollt in het midden, onderbalk blijft netjes staan */
.sidebar .brand,.sidebar .nav-search{flex:none}
.sidebar .nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;margin-right:-8px;padding-right:8px}
.sidebar .nav::-webkit-scrollbar{width:5px}
.sidebar .nav::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:99px}
@media(max-height:820px){
  .brand{padding:2px 8px 12px}
  .brand .logo-img{height:56px}
  .sidebar{padding:16px 16px 14px}
  .sidebar .nav a{padding-top:8px;padding-bottom:8px}
  .sidebar .navlabel{margin-top:10px}
}
.avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-size:13px;font-weight:700;color:#fff;flex:0 0 34px}
.sidebar .user{display:flex;align-items:center;gap:8px;padding:9px 8px 2px;border-top:1px solid var(--line)}
.sidebar .user .avatar{width:26px;height:26px;font-size:10.5px;flex:0 0 26px}
.user .nm{font-size:12px;font-weight:600;line-height:1.2;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.user .uitlog{flex:0 0 auto;color:var(--faint);width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.user .uitlog:hover{background:var(--bg-2);color:var(--ink-2)}
.user .uitlog .ic{width:15px;height:15px}
.user-hoofd{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-decoration:none;color:inherit;border-radius:9px;padding:3px 5px;transition:.13s}
.user-hoofd:hover,.user-hoofd.actief{background:var(--bg-2)}
.user-meta{min-width:0;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.user-meta .nm{flex:none;width:100%}
.user-fest-tag{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:10px;font-weight:800;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ufs-dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--green);box-shadow:0 0 0 2px color-mix(in oklch,var(--green) 28%,transparent)}
/* mini "volgend concert" — compact zoals een Mijn lijstje-rij */
/* 1-lijns ticker die voorbij scrolt */
.mini-next{display:flex;align-items:center;gap:8px;padding:5px 2px;margin-bottom:8px;color:inherit;overflow:hidden;background:none;border:0;box-shadow:none}
.mini-next .mn-pls{width:5px;height:5px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.6);animation:puls 2s infinite}
.mini-next .mn-track{flex:1 1 auto;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mini-next .mn-scroll{display:inline-flex;white-space:nowrap;animation:mnTicker 9s linear infinite;will-change:transform}
.mini-next:hover .mn-scroll{animation-play-state:paused}
.mini-next .mn-item{display:inline-flex;align-items:center;gap:6px;padding-right:30px;font-size:12px;font-weight:600;color:var(--ink-2)}
.mini-next .mn-item b{font-family:var(--disp);font-weight:900;letter-spacing:-.02em;color:var(--ink)}
.mini-next .mn-item .dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px}
.mini-next .mn-fase{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 7px;font-size:9.5px;font-weight:950;line-height:1;text-transform:uppercase;letter-spacing:.04em}
.mini-next .mn-fase.mn-nu{background:var(--fs-veel);color:#fff}
.mini-next .mn-fase.mn-straks{background:color-mix(in oklch,var(--pink) 12%,#fff);color:var(--pink);border:1px solid color-mix(in oklch,var(--pink) 24%,var(--line))}
.mini-next .mn-nog{border-radius:999px;background:var(--ink);color:#fff;padding:2px 7px;font-family:var(--mono);font-size:10px;font-weight:900;line-height:1}
@keyframes mnTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* "gefotografeerd"-toggle */
.fs-wrap{position:relative;display:inline-flex;flex:0 0 auto;z-index:12}
.fs-wrap::after{content:"";display:none;position:absolute;right:100%;top:0;bottom:0;width:14px}
.fs-wrap:hover::after,.fs-wrap:focus-within::after{display:block}
.fs-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:20px;
  min-height:30px;padding:5px 12px 5px 8px;font-size:11.5px;font-weight:800;color:var(--muted);background:var(--surface);cursor:pointer;
  white-space:nowrap;transition:.12s;flex:0 0 auto}
.fs-chip .fc-ic{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--faint);display:flex;align-items:center;
  justify-content:center;font-size:10px;line-height:1;color:#fff}
.fs-chip.st-gefotografeerd{color:#fff;background:var(--fs-veel);border-color:var(--fs-veel)}
.fs-chip.st-te_laat{color:#fff;background:var(--red);border-color:var(--red)}
.fs-chip.st-gemist{color:#fff;background:var(--slate);border-color:var(--slate)}
.fs-chip.st-gefotografeerd .fc-ic,.fs-chip.st-te_laat .fc-ic,.fs-chip.st-gemist .fc-ic{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.22)}
.fs-chip.st-markeer .fc-ic{display:none}
.fs-chip.st-markeer:hover{border-color:var(--fs-veel);color:var(--fs-veel);background:var(--green-soft)}
.fs-chip:hover{border-color:var(--slate)}
/* duidelijke hover-uitleg onder het vinkje (komt over de schema-kaart heen) */
.fs-chip::before{content:"";position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);
  background:var(--ink);color:#fff;font-size:11.5px;font-weight:750;white-space:nowrap;padding:6px 11px;border-radius:9px;
  opacity:0;visibility:hidden;transition:.14s;pointer-events:none;z-index:90;box-shadow:0 8px 20px rgba(0,0,0,.3);letter-spacing:-.01em}
.fs-chip.st-markeer::before{content:"Ik heb dit concert gefotografeerd"}
.fs-chip.st-gefotografeerd::before{content:"Gefotografeerd ✓ — klik om te wijzigen"}
.fs-chip.st-gemist::before,.fs-chip.st-te_laat::before{content:"Klik om te wijzigen"}
.fs-chip:hover::before,.fs-chip:focus-visible::before{opacity:1;visibility:visible}
.sch-block:has(.fs-chip:hover){overflow:visible;z-index:60}
/* dikkere rand wanneer dit concert op mijn lijstje staat */
.sch-block.mijn{box-shadow:0 2px 12px rgba(0,0,0,.34),inset 0 0 0 4px var(--red),inset 0 0 48px color-mix(in oklch,var(--red) 52%,transparent)!important}
/* opties schuiven horizontaal naar links uit bij hover */
.fs-options{position:absolute;right:calc(100% + 9px);top:50%;z-index:80;display:flex;gap:5px;padding:5px;border:1px solid var(--line);
  border-radius:13px;background:var(--surface);box-shadow:var(--shadow-lg);white-space:nowrap;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-50%) translateX(12px);transition:opacity .18s ease,transform .22s cubic-bezier(.2,.9,.3,1.1),visibility .22s}
.fs-wrap:hover .fs-options,.fs-wrap:focus-within .fs-options{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%) translateX(0)}
.fs-option{padding:7px 11px;border-radius:9px;color:var(--ink-2);font-size:12px;font-weight:800;background:var(--bg-2);white-space:nowrap;transition:.12s}
.fs-option:hover{background:var(--ink);color:#fff}
@media(max-width:680px){.fs-options{right:auto;left:0;top:calc(100% + 6px);transform:translateY(-8px);flex-wrap:wrap;max-width:240px}
  .fs-wrap:hover .fs-options,.fs-wrap:focus-within .fs-options{transform:translateY(0)}}
.laadbalk{height:10px;border-radius:6px;background:var(--bg-2);overflow:hidden;display:flex}
.laadbalk i{height:100%;display:block;transition:width .8s cubic-bezier(.3,.8,.3,1)}
.laadbalk i.veel{background:var(--fs-veel)} .laadbalk i.genoeg{background:var(--fs-genoeg)}
.laadbalk i.paar{background:var(--fs-paar)}

/* ---------- Main ---------- */
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:14px;padding:15px 30px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--glass);backdrop-filter:blur(14px) saturate(1.4);z-index:20}
.editie-sel{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:7px 14px;box-shadow:var(--shadow-sm)}
.editie-sel .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.editie-sel .t{font-family:var(--disp);font-weight:700;font-size:14px;letter-spacing:-.02em}
.editie-sel .s{font-size:11px;color:var(--muted)}
.topbar .spacer{flex:1}
.pill-live{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-2);
  background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:6px 13px}
.pill-live .dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:puls 2s infinite}
@keyframes puls{0%{box-shadow:0 0 0 0 oklch(0.62 0.22 25/.45)}70%{box-shadow:0 0 0 7px oklch(0.62 0.22 25/0)}100%{box-shadow:0 0 0 0 oklch(0.62 0.22 25/0)}}
.bel{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2)}

.content{padding:30px 44px;max-width:980px;width:100%;margin:0}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:700}
h1.groet{font-family:var(--disp);font-size:clamp(34px,4.4vw,50px);font-weight:800;letter-spacing:-.035em;margin:8px 0 6px;line-height:.98}
.lead{font-size:15.5px;color:var(--muted)}
.lead b{color:var(--ink-2);font-weight:700}
.sectiekop{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 14px}
.sectiekop h2{font-family:var(--disp);font-size:21px;font-weight:700;letter-spacing:-.025em}
.sectiekop h2 span{font-family:var(--body);color:var(--faint);font-weight:600;font-size:13px;margin-left:8px}
.sectiekop a{font-size:13px;font-weight:600;color:var(--accent)}
.sectiekop-weetje{align-items:center;justify-content:flex-start;gap:11px}
.weetje-ververs{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line-2);background:var(--surface);color:var(--muted);border-radius:50%;cursor:pointer;flex:none;transition:transform .3s ease,border-color .13s,color .13s}
.weetje-ververs svg{display:block;width:15px;height:15px}
.weetje-ververs:hover{border-color:var(--accent);color:var(--accent);transform:rotate(-180deg)}

/* ---------- Kaart / pills ---------- */
.kaart{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:4px 9px;border-radius:7px}
.tag .ic{width:12px;height:12px}
.tag.blauw{background:var(--accent);color:#fff}
.tag.blauw-z{background:var(--accent-soft);color:var(--accent-ink)}
.tag.grijs{background:var(--warm-soft);color:var(--warm-ink)}
.tag.groen{background:var(--green-soft);color:var(--green-ink)}
.dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;display:inline-block}

/* ---------- Profiel ---------- */
.content.profile-screen{max-width:760px}
.profile-card{padding:24px;border-radius:26px}
.profile-grip{display:none}
.profile-head{display:flex;align-items:center;gap:17px;margin-bottom:18px}
.profile-avatar{width:68px;height:68px;flex:0 0 68px;font-size:23px;box-shadow:0 14px 30px -18px currentColor}
.profile-title{min-width:0}
.profile-title h1.groet{font-size:34px;margin:5px 0 5px;line-height:.96}
.profile-title .lead{max-width:520px;line-height:1.42}
.profile-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 18px}
.profile-summary>div{min-width:0;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);padding:12px}
.profile-summary span{display:block;font-family:var(--mono);font-size:10.5px;font-weight:800;color:var(--muted);letter-spacing:0;text-transform:uppercase}
.profile-summary b{display:block;margin-top:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--disp);font-size:18px;font-weight:900;letter-spacing:-.03em;color:var(--ink)}
.profile-message{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:var(--green-soft);color:var(--green-ink);font-size:14px;font-weight:800}
.profile-form{display:grid;gap:0;border-top:1px solid var(--line);padding-top:18px}
.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.profile-form-grid-color{grid-template-columns:minmax(0,1fr) 128px}
.profile-form .veld{margin-bottom:13px}
.profile-form input[type=color]{height:46px;padding:5px;cursor:pointer}
.profile-save{margin-top:2px}

/* progress-ring */
.ring{position:relative;width:62px;height:62px;flex:0 0 62px}
.ring .num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.ring .num b{font-family:var(--disp);font-size:18px;font-weight:800;letter-spacing:-.03em}
.ring .num s{font-size:10px;color:var(--muted);text-decoration:none}

/* ---------- Hero: volgende opdracht ---------- */
.hero{padding:22px 24px;display:flex;gap:20px;align-items:stretch}
.hero .body{flex:1;min-width:0}
.hero .tags{display:flex;gap:8px;margin-bottom:13px}
.hero h3{font-family:var(--disp);font-size:clamp(34px,5vw,58px);font-weight:700;letter-spacing:-.035em;line-height:.96;overflow-wrap:anywhere}
.hero .meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-top:12px}
.hero .meta b{color:var(--ink-2);font-weight:700}
.hero .meta .tm{font-family:var(--mono);color:var(--ink-2);font-size:12.5px}
.waarschuw{display:flex;align-items:center;gap:9px;background:var(--warm-soft);color:var(--warm-ink);
  border-radius:11px;padding:9px 13px;font-size:13px;font-weight:600;margin-top:15px}
.waarschuw .ic{width:16px;height:16px;flex:0 0 16px}
.hero .rechts{flex:0 0 168px;border-left:1px dashed var(--line-2);padding-left:20px;
  display:flex;flex-direction:column;justify-content:center}
.countdown{font-family:var(--mono);font-size:44px;font-weight:700;letter-spacing:-.04em;line-height:1}
.countdown .sep{color:var(--faint);animation:knip 1s steps(1) infinite}
@keyframes knip{50%{opacity:.25}}
.hero .rechts a{margin-top:14px;font-size:13px;font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:5px}
.hero .rechts a .ic{width:15px;height:15px}

/* ---------- Mijn dag: tijdlijn ---------- */
.tijdlijn{display:flex;flex-direction:column}
.rij{display:flex;gap:16px;align-items:center;padding:13px 6px;border-radius:14px;position:relative}
.rij:hover{background:var(--surface)}
.rij.nu{background:var(--surface);border:1px solid var(--accent);box-shadow:var(--shadow)}
.rij.nu{box-shadow:0 0 0 3px var(--accent-soft),0 14px 34px -22px var(--accent),var(--shadow)}
.rij.nu .tijd .s{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;background:var(--red);color:#fff;font-weight:900}
.rij.nu .tijd .s::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.6);animation:nuBlink 1.2s infinite}
.rij .tijd{flex:0 0 60px;text-align:right}
.rij .tijd .u{font-family:var(--mono);font-size:15px;font-weight:600;letter-spacing:-.02em}
.rij .tijd .e{font-family:var(--mono);font-size:12px;color:var(--faint);margin-top:1px}
.rij .tijd .s{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.rij .spoor{flex:0 0 16px;display:flex;justify-content:center;align-self:stretch;position:relative}
.rij .spoor::before{content:"";position:absolute;top:-13px;bottom:-13px;width:2px;background:var(--line)}
.rij:first-child .spoor::before{top:50%}
.rij:last-child .spoor::before{bottom:50%}
.rij .knoop{width:15px;height:15px;border-radius:50%;background:var(--surface);border:2px solid var(--faint);
  z-index:1;align-self:center;display:flex;align-items:center;justify-content:center}
.rij .knoop.klaar{background:var(--green);border-color:var(--green)}
.rij .knoop.klaar svg{width:9px;height:9px;color:#fff}
.rij .knoop.bezig{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.rij .rij-foto{width:72px;height:72px;border-radius:50%;flex:0 0 72px;background:var(--bg-2) center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 0 0 1px var(--line)}
.rij .body{flex:1;min-width:0}
.rij .body .ttl{display:flex;align-items:center;gap:9px}
.rij .body .ttl b{font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rij .body .sub{display:block;color:var(--warm-ink);font-size:13px;margin-top:7px;font-weight:800;line-height:1.4;
  white-space:pre-line;padding:6px 9px;border-radius:10px;background:var(--warm-soft);width:max-content;max-width:100%}
.rij .chev{color:var(--faint);flex:0 0 18px}

/* ---------- Actiekaarten ---------- */
.acties{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.actie{display:flex;align-items:center;gap:13px;padding:15px}
.actie .ico{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:0 0 40px}
.actie .ico .ic{width:19px;height:19px}
.actie .ico.up{background:var(--warm-soft);color:var(--warm-ink)}
.actie .ico.bel{background:var(--accent-soft);color:var(--accent-ink)}
.actie .ico.ok{background:var(--green-soft);color:var(--green-ink)}
.actie .tx{flex:1;min-width:0}
.actie .tx b{font-size:14px;font-weight:700;display:block}
.actie .tx s{font-size:12px;color:var(--muted);text-decoration:none}
.actie .st{flex:0 0 auto;color:var(--faint)}
.actie .st .check{width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center}
.actie .st .check .ic{width:15px;height:15px}

/* ---------- Festivalschema (schermvullend) ---------- */
.sch-kop{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:0 30px 12px}
.sch-top-tools{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:min(100%,620px)}
.sch-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.sch-bar #sch-zoek{width:200px;border-radius:20px;padding:8px 14px}
.sch-toggle{display:inline-flex;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px}
.sch-toggle a{display:inline-flex;align-items:center;justify-content:center;width:42px;height:38px;border-radius:9px;color:var(--ink-2);transition:.14s}
.sch-toggle a:hover{color:var(--ink);background:var(--surface)}
.sch-toggle a.actief{background:var(--ink);color:#fff}
.sch-day-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.sch-day-progress{position:relative;z-index:70}
.sch-day-progress>summary{list-style:none;cursor:pointer}
.sch-day-progress>summary::-webkit-details-marker{display:none}
.sch-day-stats{display:inline-flex;align-items:stretch;gap:0;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.sch-day-progress[open]>.sch-day-stats{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-sm)}
.sch-day-stats span{min-width:112px;padding:8px 12px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.sch-day-stats span:last-child{border-right:0}
.sch-day-stats b{font-family:var(--disp);font-size:22px;line-height:.95;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.sch-day-stats small{font-size:10.5px;line-height:1.1;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:var(--muted)}
.sch-day-stats small em{display:block;margin-top:2px;font-style:normal;font-size:9px;letter-spacing:.04em;color:var(--faint)}
.sch-day-stats .toegewezen b{color:var(--accent)}
.sch-day-stats .gedaan b{color:var(--fs-veel)}
.sch-day-panel{
  position:absolute;right:0;top:calc(100% + 9px);width:min(430px,calc(100vw - 32px));max-width:90vw;
  padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lg)
}
.sdp-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px;padding:2px 2px 10px;border-bottom:1px solid var(--line-2)}
.sdp-head b{font-family:var(--disp);font-size:19px;font-weight:900;letter-spacing:-.03em}
.sdp-head span{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:800}
.sdp-list{display:grid;gap:6px;max-height:min(430px,58vh);overflow:auto;padding-right:2px}
.sdp-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.7fr);gap:10px;align-items:center;text-align:left;
  border:1px solid var(--line-2);border-radius:12px;background:var(--surface-2);padding:9px 10px;color:var(--ink);cursor:pointer}
.sdp-row:hover{border-color:var(--accent);background:var(--accent-soft)}
.sdp-main{min-width:0}
.sdp-main b{display:block;font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdp-main small{display:block;margin-top:2px;color:var(--muted);font-size:11.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdp-crew{justify-self:end;max-width:100%;border-radius:999px;padding:5px 8px;background:#fff;border:1px solid var(--line);font-size:11px;font-weight:900;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdp-crew.geen{color:var(--red);background:oklch(0.98 0.02 25);border-color:oklch(0.9 0.08 25)}
.sdp-empty{padding:18px 12px;border:1px dashed var(--line-2);border-radius:12px;color:var(--muted);font-weight:900;text-align:center}
.sch-block.sch-pulse,.mob-sch-card.sch-pulse{animation:schemaPulse 1.2s ease}
@keyframes schemaPulse{0%,100%{filter:none}25%{filter:brightness(1.22);box-shadow:0 0 0 4px rgba(255,255,255,.82),0 0 0 8px var(--accent-soft),var(--shadow-lg)}}
.sch-admin-actions{display:inline-flex;gap:7px;align-items:center}
.sch-admin-actions button{border:0;border-radius:13px;padding:10px 13px;font-size:13px;font-weight:900;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .14s,filter .14s}
.sch-admin-actions button:hover{transform:translateY(-1px);filter:brightness(1.03)}
.sch-admin-add{background:var(--accent);color:#fff}
.sch-admin-edit{background:var(--ink);color:#fff}
.sch-scroll{overflow:auto;background:var(--surface);position:relative;cursor:grab;height:calc(100vh - 196px);min-height:440px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;user-select:none}
/* podia-volgorde eerst toepassen, dan tonen — geen zichtbare herschikking bij laden */
.sch-scroll.cols{transition:opacity .16s ease}
.sch-scroll.cols.volgorde-laden{opacity:0;animation:schReveal 0s linear .5s forwards}
@keyframes schReveal{to{opacity:1}}
.sch-scroll.grabbing{cursor:grabbing}
.sch-grid{position:relative}
/* gedeelde kop */
.sch-head{position:sticky;top:0;z-index:30;display:flex;background:var(--surface);border-bottom:1px solid var(--line)}
.sch-corner{position:sticky;left:0;z-index:31;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--faint);font-weight:700;background:var(--surface);border-right:1px solid var(--line)}
/* COLS */
.sch-col-head{flex:0 0 auto;display:flex;align-items:center;padding:0 16px;border-right:1px solid var(--line)}
.sch-col-head b{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;font-size:16px;line-height:1.0;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sch-body{position:relative;display:flex}
.sch-gutter{position:sticky;left:0;z-index:20;flex:0 0 auto;background:var(--surface);border-right:1px solid var(--line)}
.sch-gutter .ghour{position:absolute;left:0;right:0;padding-left:10px;font-family:var(--mono);font-size:11px;color:var(--muted);border-top:1px solid var(--line-2);transform:translateY(-1px)}
.sch-col{position:relative;flex:0 0 auto;border-right:1px solid var(--line)}
.sch-col .gline{position:absolute;left:0;right:0;height:1px;background:var(--line-2);opacity:.6}
/* ROWS */
.sch-ruler{position:relative;flex:0 0 auto}
.sch-ruler .rtick{position:absolute;top:0;bottom:0;padding-top:14px;padding-left:7px;font-family:var(--mono);font-size:11px;color:var(--muted);border-left:1px solid var(--line-2)}
.sch-rows-body{position:relative}
.sch-scroll.rows .sch-rows-body{display:grid;gap:0;padding:8px 0 12px}
.sch-row{display:flex;border-bottom:1px solid var(--line)}
/* rijen-modus: één scheidingslijn onder elke stage (geen dubbele lijn / smalle tussenrij meer) */
.sch-scroll.rows .sch-row{border:0;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--surface) 88%,var(--bg-2))}
.sch-row-label{position:sticky;left:0;z-index:6;flex:0 0 auto;display:flex;align-items:center;padding:0 14px;background:var(--surface);border-right:1px solid var(--line)}
.sch-row-label b{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;font-size:17px;line-height:1.0;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sch-row-track{position:relative;flex:0 0 auto}
.sch-row-track .gline-v{position:absolute;top:0;bottom:0;width:1px;background:var(--line-2);opacity:.6}
/* blok (neutraal, geen podiumkleur) */
.sch-block{position:absolute;left:3px;right:3px;border-radius:11px;overflow:hidden;cursor:pointer;color:#fff;text-align:left;
  border:0;padding:0;box-shadow:0 1px 3px rgba(0,0,0,.22),0 0 0 1px rgba(20,24,33,.12);
  transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .18s,opacity .18s}
.sch-block:hover{transform:translateY(-4px) scale(1.025);box-shadow:0 16px 30px rgba(0,0,0,.38),0 0 0 1.5px var(--ink);z-index:8}
.sch-block.bezig{box-shadow:0 4px 18px rgba(0,0,0,.34),0 0 0 3px var(--red),0 0 0 7px oklch(0.62 0.22 25/.16);z-index:7}
.sch-block.bezig::before{content:"NU";position:absolute;top:7px;left:8px;z-index:5;padding:3px 7px;border-radius:999px;background:var(--red);color:#fff;
  font-family:var(--mono);font-size:9px;font-weight:900;letter-spacing:.06em;box-shadow:0 6px 18px rgba(0,0,0,.35);animation:nuPulse 1.4s ease-in-out infinite}
.sch-block.bezig .bg{background:linear-gradient(180deg,rgba(255,61,129,.16) 0%,transparent 34%,rgba(0,0,0,.34) 62%,rgba(0,0,0,.9) 100%)}
.sch-block.zoek-hit,.mob-sch-card.zoek-hit{animation:zoekHit 1.7s ease}
@keyframes zoekHit{0%,100%{box-shadow:inherit}25%,75%{box-shadow:0 0 0 4px var(--accent),0 18px 34px rgba(0,0,0,.34)}}
.sch-block.dim{opacity:.16;filter:grayscale(.5)}
.sch-block .bb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--bg-2);transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .2s}
.sch-block:hover .bb{transform:scale(1.08);filter:saturate(1.1)}
.sch-block .bg{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,transparent 34%,rgba(0,0,0,.34) 62%,rgba(0,0,0,.88) 100%)}
.sch-block .bin{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:9px 11px}
.sch-block .bt{font-family:var(--mono);font-size:10.5px;font-weight:700;color:rgba(255,255,255,.92);text-shadow:0 1px 4px rgba(0,0,0,.8)}
.sch-block .bn{font-family:var(--disp);font-weight:900;letter-spacing:-.025em;font-size:21px;line-height:.92;
  text-shadow:0 2px 14px rgba(0,0,0,.85);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sch-scroll.rows .sch-block .bn{font-size:23px}
.sch-block .bf{margin-top:6px;min-width:0;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.sch-block .bf-tag{display:inline-flex;align-items:center;gap:4px;max-width:100%;background:#fff;
  border-radius:999px;padding:2px 7px 2px 4px;font-size:8.5px;font-weight:850;color:#1b2230;letter-spacing:0;
  box-shadow:0 2px 7px rgba(0,0,0,.38);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .16s,box-shadow .16s}
.sch-block .bf-tag .bf-dot{flex:0 0 auto;width:12px;height:12px;border-radius:50%;background:var(--ft-color,var(--pink));box-shadow:inset 0 0 0 2px rgba(255,255,255,.85)}
.sch-block .bf-num{
  flex:0 0 auto;
  min-width:14px;
  height:14px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--pink);
  color:#fff;
  font-family:var(--mono);
  font-size:8px;
  font-weight:950;
  line-height:1;
}
.sch-block .bf-tag svg{display:none}
.sch-block .bf-cam{flex:0 0 auto;display:inline-flex;align-items:center;color:var(--pink)}
.sch-block .bf-cam svg{display:block!important;width:11px;height:11px}
.sch-block .bf-tag .bf-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sch-block .bf-more{border:0;cursor:pointer;background:rgba(255,255,255,.92);color:var(--pink);max-width:54px;justify-content:center}
.sch-block .bf-more.open{max-width:100%;white-space:normal;text-align:left;color:var(--ink);border-radius:9px}
.sch-block .bf-tag.verwijderbaar{cursor:pointer}
.sch-block .bf-tag .bf-x{border:0;background:var(--red);color:#fff;width:0;height:16px;padding:0;border-radius:50%;
  font-size:10px;line-height:1;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;opacity:0;transition:.17s;cursor:pointer;flex:0 0 auto}
/* ✕ verschijnt zodra je over de fotograaf-tag gaat (of tikt op touch) */
.sch-block .bf-tag.verwijderbaar:hover,.sch-block .bf-tag.toon-x{box-shadow:0 3px 12px rgba(0,0,0,.5)}
.sch-block .bf-tag.verwijderbaar:hover .bf-x,.sch-block .bf-tag.toon-x .bf-x{width:16px;margin-left:3px;opacity:1}
.sch-block .bf-tag .bf-x:hover{filter:brightness(1.15);transform:scale(1.1)}
.sch-block.mijn{box-shadow:0 2px 12px rgba(0,0,0,.34),inset 0 0 0 4px var(--red),inset 0 0 48px color-mix(in oklch,var(--red) 52%,transparent)}
.sch-block.mijn::after{content:"JIJ";position:absolute;top:7px;right:7px;z-index:3;background:var(--accent);color:#fff;
  font-family:var(--mono);font-size:8.5px;font-weight:700;padding:2px 6px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.35)}
/* Reeds gespeeld ("done") + door jou geselecteerd: enkel een dunne, vage rode rand, geen rood vlak. */
.sch-block.klaar.mijn{box-shadow:0 2px 12px rgba(0,0,0,.34),inset 0 0 0 3px color-mix(in oklch,var(--red) 42%,transparent)!important}
/* now-lijn */
.sch-now{position:absolute;z-index:16;background:var(--pink);box-shadow:0 0 14px var(--pink);pointer-events:none;transition:top 9.5s linear,left 9.5s linear}
.mts-now{transition:left 9.5s linear}
.sch-now.now-h{right:0;height:2px}
.sch-now.now-v{top:0;bottom:0;width:2px}
.sch-now .now-flag{position:absolute;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.04em;color:#fff;
  background:var(--pink);padding:2px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.3)}
.sch-now.now-h .now-flag{right:8px;top:-10px}
.sch-now.now-v{z-index:34}
.sch-now.now-v .now-flag{left:50%;transform:translateX(-50%);top:4px;z-index:35}
/* hover-card */
.sch-hover{position:fixed;width:306px;z-index:900;background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 22px 55px -14px rgba(20,24,40,.5),0 6px 18px -8px rgba(20,24,40,.32);overflow:hidden;
  opacity:0;visibility:hidden;pointer-events:none;transform-origin:top left;transform:scale(.72);
  transition:opacity .19s ease,transform .3s cubic-bezier(.2,.9,.3,1.12),left .13s cubic-bezier(.22,.7,.3,1),top .13s cubic-bezier(.22,.7,.3,1),visibility .3s}
.sch-hover.plaats{transition:opacity .19s ease,transform .3s cubic-bezier(.2,.9,.3,1.12),visibility .3s}
.sch-hover.aan{opacity:1;visibility:visible;pointer-events:auto;transform:scale(1)}
.sch-hover-close{position:absolute;right:9px;top:9px;z-index:5;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.56);color:#fff;font-size:20px;line-height:1;display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.22)}
.sch-hover-close:hover{background:var(--red)}
.sch-hover .hc-genre{position:absolute;left:12px;right:12px;bottom:9px;display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.sch-hover .hc-genre span{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);padding:3px 8px;border-radius:999px}
.sch-hover .hc-speler{margin-top:12px;display:none}
.sch-hover .hc-speler-kop{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.sch-hover .hc-embed{width:100%;height:152px;border:0;border-radius:12px;display:block;box-shadow:0 4px 14px -6px rgba(20,24,40,.35)}
.sch-hover .hc-photo{position:relative;height:150px;background:var(--bg-2)}
.sch-hover .hc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.sch-hover .hc-grad{position:absolute;inset:0;background:linear-gradient(transparent 36%,rgba(0,0,0,.62))}
.sch-hover .hc-pod{position:absolute;left:13px;bottom:10px;font-size:11px;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.05em;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.sch-hover .hc-body{padding:13px 15px}
.sch-hover .hc-naam{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;font-size:22px;line-height:1.0;color:var(--ink)}
.sch-hover .hc-meta{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:6px}
.sch-hover .hc-blurb{font-size:12.5px;color:var(--ink-2);margin-top:9px;line-height:1.5}
.sch-hover .hc-crew{font-size:12px;color:var(--ink-2);margin-top:9px;border-top:1px solid var(--line-2);padding-top:9px}
.artist-modal[hidden]{display:none}
body.artist-modal-open{overflow:hidden;overscroll-behavior:none}
.artist-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:28px;overscroll-behavior:contain}
.artist-modal-backdrop{position:absolute;inset:0;background:oklch(0.18 0.025 260/.58);backdrop-filter:blur(6px);opacity:var(--artist-backdrop-opacity,1);transition:opacity .2s ease}
.artist-sheet{position:relative;z-index:1;width:min(920px,100%);max-height:min(940px,calc(100dvh - 36px));overflow-y:auto;overflow-x:hidden;transition:max-height .25s ease;
  border-radius:22px;background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid var(--line);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.artist-sheet .artist-grid,.artist-sheet .artist-main,.artist-sheet .am-onder,.artist-sheet .am-onder-links,.artist-sheet .am-onder-rechts{min-width:0;max-width:100%}
.artist-close{position:absolute;right:14px;top:14px;z-index:6;width:38px;height:38px;border:0;border-radius:50%;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);color:#fff;cursor:pointer;
  font-size:22px;line-height:1;display:grid;place-items:center;transition:.14s;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.artist-close:hover{background:rgba(0,0,0,.65);transform:rotate(90deg)}
.artist-hero{position:relative;height:208px;background:var(--bg-2);overflow:hidden}
.artist-hero img{width:100%;height:100%;object-fit:cover;display:block}
.artist-hero-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.82))}
.artist-hero-copy{position:absolute;left:24px;right:24px;bottom:22px;color:#fff}
.artist-hero-copy span{display:inline-flex;margin-bottom:9px;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.18);
  font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;backdrop-filter:blur(5px)}
.artist-hero-copy h2{font-family:var(--disp);font-size:clamp(34px,6vw,58px);font-weight:900;letter-spacing:-.045em;line-height:.92;overflow-wrap:anywhere}
.artist-hero-copy p{margin-top:9px;font-family:var(--mono);font-size:13px;color:oklch(0.88 0.02 256)}
.artist-info-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.78fr);gap:24px;padding:24px 26px 26px}
.artist-info-grid h3{font-family:var(--disp);font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.artist-info-grid p{color:var(--ink-2);font-size:14.5px;line-height:1.6;white-space:pre-line}
.artist-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.artist-chips span{padding:5px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.artist-listen{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-2)}
.artist-listen iframe{width:100%;height:152px;border:0;border-radius:14px;box-shadow:var(--shadow-sm);background:var(--bg-2)}
.artist-media-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.artist-media-actions a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 11px;background:var(--ink);color:#fff;
  font-size:12px;font-weight:900}
.artist-video-links{margin-top:13px}
.artist-video-links>span{display:block;margin-bottom:7px;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);font-weight:900}
.artist-video-links>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.artist-video-links a{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line);
  color:var(--ink-2);font-size:12px;font-weight:900;text-align:center}
.artist-video-links a:hover{border-color:var(--red);color:var(--red);background:oklch(0.98 0.02 25)}
.artist-video-links+iframe{margin-top:13px}
/* Ingebedde video's */
.artist-videos-wrap{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2)}
.artist-videos-wrap h3 .av-sub{font-family:var(--body);font-size:12px;font-weight:600;color:var(--faint);letter-spacing:0;margin-left:7px}
.artist-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:11px;position:relative;min-height:30px}
.av-item{position:relative;border-radius:13px;overflow:hidden;background:#000;box-shadow:var(--shadow-sm);aspect-ratio:16/10}
.av-item iframe{width:100%;height:100%;border:0;display:block}
.av-item .av-cat{position:absolute;left:8px;top:8px;z-index:2;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);padding:3px 8px;border-radius:999px;pointer-events:none}
.av-loader{grid-column:1/-1;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12.5px;font-weight:600;padding:6px 2px}
.av-loader i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:avBlink 1s infinite ease-in-out}
.av-loader i:nth-child(2){animation-delay:.16s}.av-loader i:nth-child(3){animation-delay:.32s}
@keyframes avBlink{0%,80%,100%{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
.artist-side{display:grid;gap:8px;align-content:start}
.artist-crew,.artist-festival-notes,.artist-personal-note,.artist-history-wrap{padding:13px 0 0;border:0;border-top:1px solid var(--line-2);border-radius:0;background:transparent}
.artist-crew{color:var(--muted);font-size:13px;font-weight:700}
.artist-crew-tags{display:flex;gap:6px;flex-wrap:wrap}
.artist-crew-tag{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 8px;border-radius:999px;background:var(--surface-2);
  border:1px solid var(--line);color:var(--ink-2);font-size:12px;font-weight:900}
.artist-crew-tag svg{width:13px;height:13px;flex:0 0 13px}
.artist-crew-tag button{width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:12px;line-height:1}
.artist-empty-crew{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--bg-2);color:var(--muted);font-size:12px;font-weight:900}
.artist-add-crew{display:block;margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:14px;background:var(--surface)}
.artist-add-crew select{min-width:0;flex:1;border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:8px 10px;font:700 13px var(--body);color:var(--ink)}
.artist-add-crew button{width:38px;border-radius:11px;background:var(--accent);color:#fff;font-size:22px;font-weight:900;line-height:1}
.artist-mini-facts{display:grid;gap:7px}
.artist-mini-facts div{padding:9px 10px;border-radius:11px;background:var(--surface);border:1px solid var(--line-2)}
.artist-mini-facts b{display:block;color:var(--ink);font-size:12.5px}
.artist-mini-facts span{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}
.artist-history{display:grid;gap:7px}
.artist-history div{padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.artist-history b{display:block;font-size:13px}
.artist-history span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
@media(max-width:860px){.artist-modal{padding:12px}.artist-hero{height:220px}.artist-info-grid{grid-template-columns:1fr;padding:18px}.artist-video-links>div{grid-template-columns:1fr}.artist-sheet{max-height:calc(100dvh - 24px)}}

/* ===== Artiest-popup: Sidebar-layout ===== */
.artist-sheet-sidebar{width:min(1040px,100%)}
.artist-sheet-sidebar .artist-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0;align-items:stretch}
.artist-sheet-sidebar .artist-main{padding:26px;min-width:0}
.artist-sheet-sidebar .artist-rail{background:linear-gradient(168deg,oklch(0.37 0.042 256),oklch(0.30 0.034 262));border-left:0;color:#fff;padding:24px 22px;display:flex;flex-direction:column;gap:22px;align-content:start;box-shadow:inset 22px 0 34px -26px rgba(0,0,0,.7)}
/* donkere (navy) rail — inhoud licht */
.artist-sheet-sidebar .artist-rail h3{color:rgba(255,255,255,.55)}
.artist-sheet-sidebar .artist-rail .artist-crew,.artist-sheet-sidebar .artist-rail .artist-festival-notes,.artist-sheet-sidebar .artist-rail .artist-personal-note,.artist-sheet-sidebar .artist-rail .artist-history-wrap{border-top-color:rgba(255,255,255,.12)}
.artist-sheet-sidebar .artist-rail .artist-crew-tag{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
.artist-sheet-sidebar .artist-rail .artist-crew-add-tag,.artist-sheet-sidebar .artist-rail .am-add-note-tag{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.artist-sheet-sidebar .artist-rail .artist-add-crew{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.artist-sheet-sidebar .artist-rail .am-foto-optie{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
.artist-sheet-sidebar .artist-rail .am-foto-zoek{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.artist-sheet-sidebar .artist-rail .am-foto-optie:hover{border-color:#fff;color:#fff}
.artist-sheet-sidebar .artist-rail .artist-history{gap:10px}
.artist-sheet-sidebar .artist-rail .artist-history div{background:none;border:0;border-radius:0;padding:0;color:#fff}
.artist-sheet-sidebar .artist-rail .artist-history b{font-size:13px;font-weight:700}
.artist-sheet-sidebar .artist-rail .artist-history span,.artist-sheet-sidebar .artist-rail .am-note-text,.artist-sheet-sidebar .artist-rail .artist-empty-crew{color:rgba(255,255,255,.62)}
.artist-sheet-sidebar .artist-rail .artist-lijst-knop{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.artist-sheet-sidebar .artist-rail .artist-lijst-knop.aan{background:color-mix(in oklch,var(--red) 32%,transparent);border-color:color-mix(in oklch,var(--red) 55%,transparent)}
/* foto: kleiner, met naam/stage/uur erop */
/* foto tegen de randen (edge-to-edge bovenaan de kaart) */
.artist-sheet-sidebar .artist-foto{position:relative;height:210px;border-radius:0;overflow:hidden;background:var(--bg-2);margin:-26px -26px 18px}
.artist-sheet-sidebar .artist-foto img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.artist-foto-grad{position:absolute;inset:0;background:linear-gradient(transparent 32%,rgba(10,12,18,.86))}
.artist-foto-tx{position:absolute;left:20px;right:20px;bottom:14px;color:#fff}
/* groot hartje rechtsboven op de foto */
.am-foto-hart{position:absolute;top:14px;right:14px;z-index:5;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);color:var(--red);line-height:1;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:0 16px;transition:.15s;box-shadow:0 5px 16px rgba(0,0,0,.28)}
.am-foto-hart:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,0,0,.32)}
.am-foto-hart .amfh-ic{color:var(--red)}
.am-foto-hart .amfh-tx{color:var(--red)}
.am-foto-hart.aan{background:var(--red);color:#fff}
.am-foto-hart.aan .amfh-ic,.am-foto-hart.aan .amfh-tx{color:#fff}
/* play-knop op de foto — enkel mobiel */
.am-foto-play{display:none}
.artist-sheet-sidebar .artist-foto .artist-pod{display:inline-block;font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.2);color:#fff;backdrop-filter:blur(3px);margin-bottom:8px}
.artist-sheet-sidebar .artist-foto h2{font-family:var(--disp);font-weight:950;font-size:clamp(34px,3.8vw,52px);letter-spacing:-.04em;line-height:.92;margin:0;overflow-wrap:anywhere;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.artist-sheet-sidebar .artist-foto .artist-time{display:block;margin-top:8px;font-family:var(--mono);font-size:12.5px;color:rgba(255,255,255,.85)}
/* genres mee op de foto */
.artist-chips-foto{margin-top:10px}
.artist-chips-foto span{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(3px);text-shadow:0 1px 6px rgba(0,0,0,.4)}
.artist-sheet-sidebar .artist-rail h3{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
/* fotograaf toevoegen — nette stapel in de smalle kolom */
.artist-sheet-sidebar .artist-crew-add-tag{display:inline-grid;place-items:center;width:34px;height:34px;padding:0;text-align:center;margin-top:2px;font-size:20px;line-height:1;border-radius:50%}
.artist-sheet-sidebar .artist-crew-add-tag.leeg{display:inline-flex;align-items:center;gap:8px;width:auto;height:auto;padding:9px 15px 9px 12px;border-radius:999px;font-size:13px;font-weight:800}
.artist-crew-add-tag.leeg .acat-plus{font-size:18px;line-height:1;margin-top:-1px}
.artist-sheet-sidebar .artist-add-crew{margin-top:9px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:11px}
.artist-sheet-sidebar .am-foto-zoek{width:100%;margin-bottom:9px}
.artist-sheet-sidebar .am-foto-opties{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;max-height:230px;overflow:auto}
.artist-sheet-sidebar .am-foto-optie{display:inline-flex;align-items:center;gap:6px;width:auto;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg-2);font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;font-family:inherit}
.artist-sheet-sidebar .am-foto-optie:hover{border-color:var(--accent);color:var(--accent)}
.artist-sheet-sidebar .am-foto-optie b{flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}
.artist-sheet-sidebar .am-foto-optie>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* hartje "aan mijn lijstje" */
.artist-lijst-knop{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;border:1px solid var(--line-2);border-radius:13px;background:var(--surface);color:var(--ink);font-weight:750;font-size:13.5px;padding:11px 14px;cursor:pointer;font-family:inherit;transition:.13s}
.artist-lijst-knop .hart{font-size:18px;line-height:1;color:var(--red)}
.artist-lijst-knop.aan{background:color-mix(in oklch,var(--red) 12%,var(--surface));border-color:color-mix(in oklch,var(--red) 42%,transparent)}
.artist-lijst-knop[disabled]{opacity:.6;cursor:default}
/* fotografen onder elkaar */
.artist-sheet-sidebar .artist-crew-tags{flex-direction:column;gap:7px}
.artist-sheet-sidebar .artist-crew-tag{display:flex;width:100%;max-width:100%;align-items:center;gap:9px;padding:8px 11px;border-radius:11px;background:var(--surface);border:1px solid var(--line)}
.artist-sheet-sidebar .artist-crew-tag>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.artist-sheet-sidebar .artist-crew-add-tag{align-self:flex-start;margin-top:2px}
/* Wist je dat? in de popup */
.artist-weetjes{margin:18px 0 4px}
.artist-weetjes .aw-kop{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin-bottom:10px}
.artist-weetjes .aw-kop h3{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0}
.am-weetje-nieuw{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line-2);background:var(--surface);color:var(--muted);border-radius:50%;cursor:pointer;font-family:inherit;transition:transform .3s ease,border-color .13s,color .13s}
.am-weetje-nieuw svg{width:13px;height:13px}
.am-weetje-nieuw:hover{border-color:var(--accent);color:var(--accent);transform:rotate(-180deg)}
.am-weetje-nieuw svg{display:block}
.artist-weetje{margin:0;padding:0;font-size:14px;line-height:1.55;color:var(--ink-2);text-align:left}
.aw-lamp{font-size:14px}
@media(max-width:860px){
  .artist-weetjes .aw-kop h3{color:rgba(255,255,255,.6)}
  .artist-weetje{color:rgba(255,255,255,.82)}
  .am-weetje-nieuw{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
}
@media(max-width:860px){
  /* mobiel: foto edge-to-edge bovenaan, dan fotografen, dan de tekst */
  .artist-sheet-sidebar .artist-grid{display:flex;flex-direction:column;gap:0}
  .artist-sheet-sidebar .artist-main,.artist-sheet-sidebar .artist-rail{display:contents}
  .artist-sheet-sidebar .artist-foto{order:1;height:220px;border-radius:0;margin:0 0 14px}
  .artist-sheet-sidebar .artist-lijst-knop{order:2;margin:0 16px 12px}
  .artist-sheet-sidebar .artist-crew{order:3;padding:0 16px}
  .artist-sheet-sidebar .am-ik-foto{order:3}
  .artist-sheet-sidebar .am-status{order:3;padding:0 16px}
  .artist-sheet-sidebar .artist-festival-notes{order:4;margin:14px 16px 0}
  .artist-sheet-sidebar .am-blurb-wrap{order:5;padding:14px 16px 0}
  .artist-sheet-sidebar .artist-chips{order:6;padding:8px 16px 0}
  .artist-sheet-sidebar .am-onder{display:contents}
  .artist-sheet-sidebar .artist-media-vol{order:7;padding:4px 16px 0}
  .artist-sheet-sidebar .artist-weetjes{order:8;padding:4px 16px 0}
  .artist-sheet-sidebar .am-add-note-tag{order:9;margin:12px 16px 0}
  .artist-sheet-sidebar .artist-personal-note{order:10;padding:0 16px}
  .artist-sheet-sidebar .artist-history-wrap{order:11;padding:8px 16px 0}
  /* Video's én de Spotify/YouTube/Insta-iconen hadden geen 'order' → vielen op order:0 en
     zweefden boven de foto. Nu allebei netjes onderaan, ná de rest van de kaart. */
  .artist-sheet-sidebar .am-videos-blok{order:12;padding:12px 16px 14px;margin-top:8px;border-top:1px solid rgba(255,255,255,.12)}
  .artist-sheet-sidebar .am-listen-links.am-listen-onder{order:13;margin:0;padding:4px 16px 22px;justify-content:center}
  /* play-knop op de foto (mobiel) — rechtsonder */
  .am-foto-play{display:grid;position:absolute;right:14px;bottom:14px;z-index:5;width:54px;height:54px;border-radius:50%;border:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);color:#fff;font-size:21px;place-items:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.4)}
  .artist-sheet-sidebar .artist-foto h2{font-size:25px}
  .artist-sheet-sidebar .artist-rail h3{color:rgba(255,255,255,.6)}
  .artist-lijst-knop{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.16);color:#fff}
  .artist-lijst-knop.aan{background:color-mix(in oklch,var(--red) 30%,transparent);border-color:color-mix(in oklch,var(--red) 50%,transparent)}
  .artist-sheet-sidebar .artist-crew-tag{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.13);color:#fff}
  .artist-sheet-sidebar .artist-add-crew{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
  .artist-sheet-sidebar .am-foto-optie{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);color:#fff}
}
@media(max-width:860px){.sch-kop{padding:0 16px 10px}.sch-top-tools{align-items:stretch;width:100%}.sch-bar,.sch-day-tools{justify-content:flex-start}.sch-day-progress{width:100%}.sch-day-stats{width:100%}.sch-day-stats span{flex:1;min-width:0}.sch-day-panel{left:0;right:auto;width:100%;max-width:none}.sdp-row{grid-template-columns:1fr}.sdp-crew{justify-self:start}.sch-admin-actions{width:100%}.sch-admin-actions button{flex:1}.dagen{padding:0 16px 12px!important}.sch-scroll{height:calc(100vh - 230px)}}
/* ---------- Generieke panelen ---------- */
.paneel{padding:20px 22px;margin-bottom:14px}
.paneel h3{font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.lege{padding:40px;text-align:center;color:var(--ink-2);font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.015em;line-height:1.4}

/* FAQ */
.faq-h{display:flex;align-items:center;gap:10px;margin:26px 0 10px}
.faq-h .ic{width:20px;height:20px;color:var(--accent)}
.faq-h h2{font-family:var(--disp);font-size:18px;font-weight:700;letter-spacing:-.025em}
details.qa{border-bottom:1px solid var(--line)}
details.qa summary{list-style:none;cursor:pointer;padding:14px 4px;font-weight:600;font-size:15px;
  display:flex;justify-content:space-between;gap:12px}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary .plus{color:var(--faint);transition:transform .2s;flex:0 0 18px}
details.qa[open] summary .plus{transform:rotate(45deg)}
details.qa .a{padding:0 4px 16px;color:var(--ink-2);font-size:14px;line-height:1.6}

/* checklist */
.chk-cat{margin:22px 0 8px;display:flex;align-items:center;gap:9px}
.chk-cat .pn{width:9px;height:9px;border-radius:50%}
.chk-cat h2{font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:-.02em}
.chk-cat .tel{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:600;margin-left:auto}
.chk{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1px solid var(--line-2);cursor:pointer;transition:background .14s,transform .14s}
.chk:last-child{border-bottom:none}
.chk:hover{background:var(--bg-2)}
.chk:focus-visible{outline:3px solid var(--accent-soft);outline-offset:-3px;background:var(--surface)}
.chk .box{width:23px;height:23px;border-radius:7px;border:2px solid var(--faint);flex:0 0 23px;
  display:flex;align-items:center;justify-content:center;color:#fff;transition:.15s}
.chk.af .box{background:var(--green);border-color:var(--green)}
.chk .box svg{width:13px;height:13px;opacity:0}
.chk.af .box svg{opacity:1}
.chk .tx{min-width:0}
.chk .tx b{font-size:14.5px;font-weight:600;display:block}
.chk.af .tx b{color:var(--muted);text-decoration:line-through}
.chk .tx s{font-size:12.5px;color:var(--muted);text-decoration:none}

/* ---------- Dagkiezer ---------- */
.dagen{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.sch-layout-bar{display:flex;justify-content:flex-end;align-items:center;padding:0 44px 8px;margin-top:-2px}
/* dagen (aparte witte kaartjes) + indeling-iconen op één lijn, links uitgelijnd onder de titel */
.sch-dagrij{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:0 30px 10px}
.sch-dagrij .dagen{margin:0;padding:0 !important;display:flex;gap:8px;flex-wrap:wrap;background:none;border:0}
.sch-dagrij .sch-layout-bar{padding:0;margin:0;flex:none}
.sch-dagrij-r{display:flex;align-items:center;gap:9px;flex:none}
.sch-dagrij-r .sch-edit-knop{padding:7px 12px;font-size:12.5px;border-radius:9px;gap:6px}
.sch-dagrij-r .sch-edit-knop svg{width:14px;height:14px}
/* groot zoek/naam-veld in de schema-editor (zelfde grootte bij toevoegen & wijzigen) */
.schema-editor-sheet #se-zoek,.schema-editor-sheet #sch-add-form input[name="titel"]{width:100%;font-size:16px;padding:14px 16px;border-radius:13px;font-weight:600}
/* Mobiel: de dag-rij onderaan verdwijnt — dag wisselen, lay-out, wijzigen en snel toewijzen zitten nu bovenaan in de balk. */
@media(max-width:860px){.sch-dagrij{display:none !important}}
.sch-col-head.sleepbaar{cursor:grab;gap:8px;border-radius:9px;transition:background .12s,box-shadow .12s}
.sch-col-head.sleepbaar .sch-greep{opacity:.5;font-size:16px;letter-spacing:-2px;flex:none;color:var(--muted);transition:.12s}
.sch-col-head.sleepbaar:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px color-mix(in oklch,var(--accent) 40%,var(--line))}
.sch-col-head.sleepbaar:hover .sch-greep{opacity:1;color:var(--accent)}
.sch-col-head.sleepbaar:active{cursor:grabbing}
.sch-col-head.sleept{opacity:.6;cursor:grabbing;background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}
.sch-col.kolom-sleept{background:color-mix(in oklch,var(--accent) 8%,transparent);box-shadow:inset 0 0 0 2px color-mix(in oklch,var(--accent) 45%,transparent)}
.sch-scroll.aan-het-slepen .sch-col-head.sleepbaar:not(.sleept){background:var(--bg-2)}
.sch-col-head.extra-col-head{justify-content:space-between;gap:6px;background:color-mix(in oklab,#7c5cff 12%,var(--surface))}
.sch-col-head.extra-col-head b{color:#6b46ff}
.extra-head-add{border:0;width:25px;height:25px;border-radius:7px;background:#7c5cff;color:#fff;font-size:18px;font-weight:800;cursor:pointer;line-height:1;flex:none;display:grid;place-items:center}
.extra-head-add:hover{filter:brightness(1.1);transform:scale(1.05)}
.sch-col.extra-col{background:color-mix(in oklab,#7c5cff 4%,transparent)}
/* Notion-achtig, subtiel — eigen agenda-blokje (losgekoppeld van .sch-block, geen artiest/Spotify-logica) */
.extra-blok{position:absolute;left:3px;right:3px;display:flex;flex-direction:column;gap:1px;padding:5px 9px;cursor:pointer;
  text-align:left;border-radius:8px;overflow:hidden;font-family:inherit;
  border:1px solid color-mix(in oklab,var(--kl) 26%,var(--line));border-left:3px solid var(--kl);
  background:color-mix(in oklab,var(--kl) 12%,var(--surface));color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.05)}
.sch-scroll.cols .extra-blok{top:calc(var(--mt) * var(--ppm) * 1px);height:calc(var(--md) * var(--ppm) * 1px - 1px)}
.extra-blok .eb-tijd{font-family:var(--mono);font-size:10px;font-weight:700;color:color-mix(in oklab,var(--kl) 58%,var(--ink))}
.extra-blok .eb-titel{font-weight:700;font-size:12.5px;line-height:1.14;color:var(--ink);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.extra-blok .eb-personen{font-size:10px;font-weight:750;color:color-mix(in oklab,var(--kl) 72%,var(--ink));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.extra-blok .eb-loc{font-size:10px;font-weight:600;color:var(--muted);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.extra-blok:hover{background:color-mix(in oklab,var(--kl) 19%,var(--surface));z-index:3}
.extra-blok.gedeeld{cursor:default;border-style:dashed}
.extra-blok.smal{padding:3px 6px}
.extra-blok.smal .eb-tijd{font-size:9px}
.extra-blok.smal .eb-titel{font-size:11px;-webkit-line-clamp:2}
.extra-blok.smal .eb-personen{font-size:9px}
.extra-blok.smal .eb-loc{font-size:9px}
.ml-extra-item .mei-loc{font-weight:600;font-size:12.5px;color:var(--muted);margin-left:4px}
.ml-extra-item .mei-gedeeld{font-size:13px;flex:none}
.ml-extra-item .mei-notitie{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--kl);background:color-mix(in oklab,var(--kl) 16%,var(--surface));border:1px solid color-mix(in oklab,var(--kl) 30%,var(--line));
  border-radius:5px;padding:1px 6px;margin-right:8px;vertical-align:middle}
.ml-extra-item.st-bezig{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.ml-extra-item.st-klaar{opacity:.6}
.ml-extra-item .mei-live{font-size:11.5px;font-weight:800;border-radius:999px;padding:3px 10px;flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ml-extra-item .mei-live.mei-bezig{background:var(--green-soft);color:var(--green-ink)}
.ml-extra-item .mei-live.mei-komt{background:var(--bg-2);color:var(--muted)}
.ml-extra-item .mei-live.mei-klaar{background:var(--bg-2);color:var(--faint)}
.ml-extra-item .mei-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:liveBolPuls 1.4s infinite}
.nu-live-extra{border-left:3px solid var(--kl);padding-left:12px}
.nu-live-extra .nle-tag{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.2);color:#fff;border-radius:5px;padding:1px 7px;margin-right:9px;vertical-align:middle}
.sch-block .b-opm{display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;background:rgba(255,255,255,.92);color:#1b2230;border-radius:5px;padding:1px 6px;margin-top:3px;width:max-content;max-width:100%;box-shadow:0 1px 3px rgba(0,0,0,.25)}
/* live bijgewerkt (fotograaf toegevoegd zonder herladen): zacht groen oplichten */
@keyframes liveBijgewerkt{0%{box-shadow:0 0 0 0 color-mix(in oklch,var(--green) 55%,transparent)}30%{box-shadow:0 0 0 4px color-mix(in oklch,var(--green) 30%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
.sch-block.live-bijgewerkt,.mob-sch-card.live-bijgewerkt,.mts-event.live-bijgewerkt{animation:liveBijgewerkt 1.5s ease-out}
/* vervangings-chips (geannuleerd ↔ vervangend concert) */
.b-vervangt,.b-vervangen{display:inline-flex;align-items:center;max-width:100%;width:max-content;margin-top:3px;border-radius:5px;padding:1px 6px;font-size:9px;font-weight:900;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b-vervangt{background:var(--green);color:#fff}
.b-vervangen{background:rgba(255,255,255,.92);color:var(--red)}
.mte-crew + .b-vervangt,.mte-crew + .b-vervangen{margin-top:5px}
.msc-body .b-vervangt,.msc-body .b-vervangen{font-size:11px;padding:2px 8px;margin-top:4px;border-radius:7px}
.tag.opm-tag{background:#fde68a !important;color:#8a5a08 !important}
.ml-extra{margin-top:18px}
.ml-extra-kop{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.ml-extra-kop h2{font-family:var(--disp);font-weight:800;font-size:18px;margin:0;letter-spacing:-.01em}
.ml-extra-add{display:inline-flex;align-items:center;gap:7px;border:0;cursor:pointer;font-family:inherit;font-weight:800;
  font-size:14px;color:#fff;background:linear-gradient(135deg,var(--accent),#7c5cff);padding:10px 18px;border-radius:13px;
  box-shadow:0 10px 22px -10px #7c5cff;transition:transform .12s,box-shadow .12s}
.ml-extra-add:hover{transform:translateY(-2px);box-shadow:0 14px 26px -10px #7c5cff}
.ml-extra-add .plus{font-size:20px;line-height:1;margin-top:-2px}
.ml-extra-lijst{display:flex;flex-direction:column;gap:8px}
.ml-extra-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;font-family:inherit;
  border:1.5px solid color-mix(in oklab,var(--kl) 40%,var(--line));border-left:5px solid var(--kl);
  background:color-mix(in oklab,var(--kl) 9%,var(--surface));border-radius:13px;padding:12px 14px;transition:.12s}
.ml-extra-item:hover{transform:translateY(-1px);box-shadow:0 8px 18px -10px var(--kl)}
.ml-extra-item .mei-tijd{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--kl);flex:none}
.ml-extra-item .mei-titel{font-weight:700;font-size:13.5px;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ml-extra-item .mei-pot{opacity:.4;font-size:14px;flex:none}
.ml-extra-leeg{font-size:13px;color:var(--muted);padding:4px 2px}
.ml-leeg{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;padding:34px 20px 30px;margin-top:6px}
.ml-leeg-emoji{font-size:48px;line-height:1;filter:drop-shadow(0 8px 16px rgba(0,0,0,.12));margin-bottom:4px}
.ml-leeg-titel{font-family:var(--disp);font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-.015em}
.ml-leeg-sub{font-size:13.5px;color:var(--muted);max-width:320px;line-height:1.45}
.nav-radje .nav-radje-ic{color:var(--pink);animation:radDraaiIcoon 6s linear infinite}
@keyframes radDraaiIcoon{to{transform:rotate(360deg)}}
.dagen a{padding:8px 14px;border-radius:11px;border:1px solid var(--line);background:var(--surface);
  font-size:13px;font-weight:700;color:var(--ink-2);box-shadow:var(--shadow-sm);text-align:center;line-height:1.25}
.dagen a small{display:block;font-family:var(--mono);font-size:10.5px;color:var(--faint);font-weight:500;margin-top:1px}
.dagen a.actief{background:var(--ink);color:#fff;border-color:var(--ink)}
.dagen a.actief small{color:oklch(1 0 0/.6)}

/* ---------- Artiest-modal ---------- */
.modal{position:fixed;inset:0;background:oklch(0.2 0.03 260/.45);backdrop-filter:blur(3px);
  display:none;align-items:flex-end;justify-content:center;z-index:60}
.modal.open{display:flex}
@media(min-width:861px){.modal{align-items:center}}
.modal .sheet{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:460px;
  padding:24px;box-shadow:var(--shadow-lg);animation:omhoog .25s ease;max-height:calc(var(--vvh,100dvh) - 14px);overflow-y:auto;overscroll-behavior:contain;
  /* iOS-toetsenbord: schuif de sheet mee omhoog zodat hij boven het toetsenbord eindigt */
  margin-bottom:max(0px, calc(100dvh - var(--vvh,100dvh)))}
@media(min-width:861px){.modal .sheet{border-radius:var(--radius-lg)}}
@keyframes omhoog{from{transform:translateY(30px);opacity:.6}to{transform:translateY(0);opacity:1}}
/* open modal (bv. schema bewerken): bottom-nav weg zodat je tot onderaan kan scrollen */
body:has(.modal.open) .botnav{display:none!important}
/* Tijdens een artiestkaart wordt de pagina ge-scroll-lockt (body krijgt position:fixed + top:-Ypx).
   Op iOS/WebKit haakt een position:fixed onderbalk dan vast aan die verschoven body → het menu
   verschijnt 'in het midden'. Verberg de onderbalk zolang die scroll-lock actief is. */
body[data-artist-scroll-lock="1"] .botnav,
body.artist-modal-open .botnav{display:none!important}
/* Pull-to-refresh: eigen "trek omlaag om te verversen" — werkt ook in de PWA (waar de browser
   dat zelf niet doet) en op elke pagina. */
.ptr-ind{position:fixed;top:max(8px,env(safe-area-inset-top));left:50%;transform:translateX(-50%) translateY(-64px);z-index:2147483000;
  width:42px;height:42px;border-radius:50%;background:var(--surface);box-shadow:0 10px 24px -8px rgba(0,0,0,.34);
  display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .2s ease}
.ptr-ind.zicht{opacity:1}
.ptr-spin{width:22px;height:22px;border-radius:50%;border:3px solid color-mix(in oklch,var(--line) 80%,transparent);border-top-color:var(--accent)}
.ptr-ind.klaar .ptr-spin{border-top-color:var(--green)}
.ptr-ind.laden .ptr-spin{animation:ptrSpin .7s linear infinite}
@keyframes ptrSpin{to{transform:rotate(360deg)}}
@media(max-width:860px){.schema-editor-body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}}
.modal .greep{width:40px;height:4px;border-radius:2px;background:var(--line);margin:-8px auto 16px}
.modal h3{font-family:var(--disp);font-size:24px;font-weight:700;letter-spacing:-.03em}
.modal .m-meta{font-family:var(--mono);font-size:13px;color:var(--muted);margin-top:6px}
.modal .m-genre{display:inline-block;margin-top:12px;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);padding:4px 10px;border-radius:7px}
.modal .m-tekst{margin-top:14px;font-size:14px;line-height:1.6;color:var(--ink-2)}
.modal .m-acties{display:flex;gap:10px;margin-top:18px}
.modal .m-acties a{flex:1;text-align:center;padding:12px;border-radius:12px;font-weight:700;font-size:14px}
.modal .m-sluit{background:var(--bg-2);color:var(--ink-2)}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login{width:100%;max-width:380px}
.login .brand{justify-content:center;padding-bottom:8px}
.login .logo{width:48px;height:48px;font-size:28px;border-radius:14px}
.login h1{font-family:var(--disp);font-size:25px;font-weight:800;text-align:center;letter-spacing:-.03em}
.login p.sub{text-align:center;color:var(--muted);font-family:var(--disp);font-weight:700;font-size:15.5px;letter-spacing:-.015em;line-height:1.35;margin:4px 0 22px}
.veld{margin-bottom:13px}
.veld label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.veld input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;
  background:var(--surface);font-family:inherit;color:var(--ink);outline:none;transition:.15s}
.veld input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.knop{width:100%;background:var(--ink);color:#fff;border-radius:12px;padding:13px;font-size:15px;font-weight:700;transition:.15s}
.knop:hover{opacity:.92}
.veld-in{border:1px solid var(--line);border-radius:11px;padding:11px 13px;font-size:14.5px;font-family:inherit;background:var(--surface);color:var(--ink);outline:none}
.veld-in:focus{border-color:var(--accent)}
.mod-tabs{display:flex;gap:6px;background:var(--bg-2);border-radius:12px;padding:4px}
.mt-tab{flex:1;border:0;background:none;border-radius:9px;padding:9px;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;transition:.15s;font-family:inherit}
.mt-tab.actief{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px oklch(0.2 0.03 260/.1)}
.se-lijst{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-top:10px}
.se-res{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:10px 13px;cursor:pointer;transition:.13s}
.se-res:hover{border-color:var(--accent);background:var(--bg-2)}
.se-res b{font-size:14.5px;font-weight:700;color:var(--ink)}
.se-res span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.se-gekozen{font-family:var(--disp);font-size:20px;font-weight:700;letter-spacing:-.02em}
.schema-editor-sheet{max-width:620px!important;padding:0!important;overflow:hidden;max-height:calc(var(--vvh,100dvh) - 14px);display:flex;flex-direction:column}
.schema-editor-head{flex:0 0 auto}
.schema-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 18px;background:linear-gradient(135deg,var(--ink),oklch(0.32 0.06 260));color:#fff}
.schema-editor-head span{display:inline-flex;margin-bottom:6px;border-radius:999px;background:rgba(255,255,255,.13);padding:4px 8px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.schema-editor-head h3{font-size:26px;color:#fff;margin:0}
.schema-editor-head p{max-width:460px;margin-top:5px;font-size:13px;line-height:1.45;color:oklch(0.88 0.02 255)}
.schema-editor-close{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;line-height:1;display:grid;place-items:center}
.schema-editor-close:hover{background:rgba(255,255,255,.22)}
.schema-editor-body{padding:20px 24px 24px;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.fout{background:oklch(0.95 0.04 25);color:oklch(0.5 0.2 25);border-radius:11px;padding:11px 14px;font-size:13.5px;font-weight:600;margin-bottom:14px;text-align:center}

/* ---------- Volledige breedte (schema) ---------- */
.content.vol{max-width:none;padding:22px 0 0}
.content.vol > .vol-kop{padding:0 40px}
/* schema vult het scherm exact → maar één scrollbalk (de schema-scroll zelf) */
.app:has(.content.vol){height:100vh}
.main:has(.content.vol){height:100vh;overflow:hidden}
.content.vol{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.content.vol .sch-kop,.content.vol > .dagen{flex:0 0 auto}
.content.vol #sch-scroll{flex:1 1 auto;height:auto!important;min-height:0}

/* ---------- Map: schermvullende kaart-iframe binnen de cockpit-shell ---------- */
.content.vol.map-vol{padding:0;flex:1 1 auto;min-height:0;height:100%}
.map-embed-wrap{position:relative;flex:1 1 auto;min-height:0;height:100%;display:flex}
.map-embed{flex:1 1 auto;width:100%;height:100%;min-height:0;border:0;display:block;background:#dfe7ef}
.map-geen{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:5;
  background:rgba(27,34,48,.92);color:#fff;padding:10px 16px;border-radius:999px;font-size:12.5px;font-weight:700;
  box-shadow:0 10px 30px -12px rgba(20,24,34,.6);backdrop-filter:blur(6px);white-space:nowrap;max-width:calc(100% - 24px)}
.schema-wrap{width:100%}
.schema-scroll.pan{cursor:grab;user-select:none}
.schema-scroll.pan.grijpt{cursor:grabbing}
.schema-scroll{border-left:none;border-right:none;border-radius:0}

/* schema hover-kaartje */
.blok{transition:filter .12s, transform .12s}
.blok:hover{filter:brightness(1.06)}
.blok-pop{position:fixed;z-index:80;width:230px;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden;pointer-events:none;opacity:0;transform:translateY(4px);
  transition:opacity .12s, transform .12s}
.blok-pop.aan{opacity:1;transform:translateY(0)}
.blok-pop .foto{width:100%;height:120px;object-fit:cover;display:block;background:var(--bg-2)}
.blok-pop .pop-in{padding:11px 13px}
.blok-pop .pop-t{font-family:var(--disp);font-weight:700;font-size:15px;letter-spacing:-.02em;line-height:1.15}
.blok-pop .pop-m{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px}
.blok-pop .pop-g{display:inline-block;margin-top:8px;font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent-ink);background:var(--accent-soft);padding:3px 8px;border-radius:6px}
.blok-pop .pop-mij{color:var(--ink);background:var(--warm-soft);}

/* ---------- Weer-widget ---------- */
.weer{display:inline-flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line);
  border-radius:14px;padding:11px 16px;box-shadow:var(--shadow-sm)}
.weer .ico{width:34px;height:34px;border-radius:10px;background:var(--cyan-soft);color:var(--cyan);
  display:flex;align-items:center;justify-content:center}
.weer .ico .ic{width:20px;height:20px}
.weer .tmp{font-family:var(--disp);font-weight:800;font-size:20px;letter-spacing:-.03em}
.weer .om{font-size:11.5px;color:var(--muted);line-height:1.3}
.weer .om b{color:var(--ink-2);font-weight:700;display:block;font-size:12.5px}

/* ---------- Affiche (poster) ---------- */
.affiche{background:var(--ink);border-radius:var(--radius-lg);padding:30px 28px 34px;text-align:center;position:relative;overflow:hidden}
.affiche::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 50% at 12% -8%, var(--accent), transparent 60%),
  radial-gradient(55% 45% at 92% 0%, var(--fs-paar), transparent 60%),
  radial-gradient(60% 55% at 80% 112%, var(--fs-veel), transparent 62%);opacity:.32}
.affiche > *{position:relative;z-index:1}
.aff-edition{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:oklch(0.82 0.03 256)}
.aff-titel{font-family:var(--disp);font-weight:800;letter-spacing:-.04em;color:#fff;font-size:clamp(34px,6vw,64px);line-height:.94;margin:6px 0 16px}
.aff-rij{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;color:#fff}
.aff-rij .pn{font-family:var(--disp);letter-spacing:-.02em;line-height:1;background:none;border:none;color:#fff;cursor:default}
.aff-rij .pn.hover-bron{cursor:help;transition:transform .14s,color .14s}
.aff-rij .pn.hover-bron:hover{transform:translateY(-2px);color:#fff}
.aff-photo{display:inline-block;width:34px;height:34px;border-radius:50%;vertical-align:middle;margin-right:8px;background:center/cover no-repeat;
  box-shadow:0 0 0 2px rgba(255,255,255,.82),0 5px 16px rgba(0,0,0,.35)}
.aff-heads .pn-head{font-weight:800;font-size:clamp(20px,2.8vw,32px)}
.aff-mains .pn-main{font-weight:700;font-size:clamp(14px,1.5vw,18px);color:oklch(0.94 0.02 256)}
.aff-clubs .pn-club{font-weight:600;font-size:12.5px;color:oklch(0.80 0.03 256)}
.aff-dot{color:var(--accent);font-size:13px}.aff-dot.sm{color:oklch(0.6 0.03 256)}.aff-dot.xs{color:oklch(0.5 0.03 256);font-size:11px}
.aff-rule{height:1px;background:rgba(255,255,255,.16);max-width:340px;margin:14px auto}
.aff-mains{margin-bottom:12px}

.weather-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;align-items:center;margin-top:14px;padding:2px 0 4px;max-width:100%}
.weather-now{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.weather-now span{font-size:34px;line-height:1}
.weather-now b{font-family:var(--disp);font-size:42px;font-weight:900;letter-spacing:-.05em;color:var(--ink)}
.weather-now small{color:var(--muted);font-size:14px;font-weight:700}
.weather-hours{display:flex;align-items:center;gap:7px;min-width:0;max-width:100%;overflow:hidden;flex-wrap:wrap;padding-bottom:0}
.weather-hours::-webkit-scrollbar{display:none}
.weather-hours span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:27px;height:27px;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.weather-hours i{font-style:normal;font-size:17px;line-height:1}
.weather-line{flex:1 0 100%;margin:0;color:var(--muted);font-size:11.5px;font-weight:700;line-height:1.25;max-width:520px}
@media(max-width:720px){
  .weather-head{grid-template-columns:auto minmax(0,1fr);gap:5px 10px;margin-top:10px;align-items:center}
  .weather-now{gap:5px}
  .weather-now span{font-size:24px}
  .weather-now b{font-size:30px}
  .weather-now small{font-size:11.5px}
  .weather-hours{display:grid;grid-template-columns:repeat(6,22px);gap:4px;align-items:center;overflow:visible}
  .weather-hours span{width:22px;height:22px;box-shadow:none}
  .weather-hours i{font-size:14px}
  .weather-line{grid-column:1 / -1;max-width:none;font-size:10.5px;line-height:1.2;margin-top:1px}
}

/* ---------- Vandaag-top ---------- */
.dag-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dag-top .dt-links{min-width:0;flex:1}
.weer-kaart{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 15px;box-shadow:var(--shadow-sm);min-width:170px}
.weer-kaart .wk-nu{display:flex;align-items:center;gap:8px}
.weer-kaart .wk-em{font-size:20px}
.weer-kaart .wk-nu b{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.03em}
.weer-kaart .wk-t{font-size:12.5px;color:var(--muted)}
.weer-kaart .wk-uren{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2);font-family:var(--mono);font-size:11px;color:var(--faint)}
@media(max-width:680px){.weer-kaart{width:100%}}

/* hero-kaart: volgend concert + voortgang + mijn dag in één */
.hero-card{padding:0;overflow:hidden}
.hero-card .hero{
  padding:22px 24px;color:#fff;
  background:
    radial-gradient(circle at 16% 0%,color-mix(in oklch,var(--cyan) 24%,transparent),transparent 34%),
    radial-gradient(circle at 86% 18%,color-mix(in oklch,var(--warm) 18%,transparent),transparent 36%),
    linear-gradient(135deg,var(--ink),oklch(0.25 0.038 248) 58%,oklch(0.19 0.028 260));
}
.hero-card .hero h3{color:#fff}
.hero-card .hero .meta{color:oklch(0.84 0.018 245)}
.hero-card .hero .meta b,.hero-card .hero .meta .tm{color:#fff}
.hero-card .hero .rechts{border-color:rgba(255,255,255,.18)}
.hero-card .hero .countdown{color:#fff}
.hero-card .hero .countdown .sep{color:var(--cyan)}
.hero-card .hero .cd-wrap .eyebrow{color:oklch(0.82 0.08 205)}
.hero-card .hero .waarschuw{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.14)}
.hero-card .hero-prog{padding:6px 24px 0}
.hero-card .hero-prog .vb-top{display:flex;align-items:baseline;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:9px}
.hero-card .hero-prog .vb-top b{font-family:var(--disp);font-weight:800;color:var(--ink);font-size:15px;letter-spacing:-.02em}
.hero-card .hero-prog .vb-rest{font-weight:600;color:var(--fs-genoeg)}
.hero-card .hero-prog .laadbalk{margin:0 -24px;border-radius:0;height:8px}
.hero-card .straks-blok{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 24px 2px}
.next-unified{margin:14px 24px 2px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.next-unified summary{list-style:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer}
.next-unified summary::-webkit-details-marker{display:none}
.next-peek{overflow:visible}
.next-peek-btn{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.next-peek-btn:hover{background:var(--accent-soft)}
.nu-label{font-size:10.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.nu-dots{letter-spacing:.08em}
.nu-stack{display:flex;gap:8px;min-width:0;overflow:hidden}
.nu-stack>span{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:50%;font-size:12.5px;font-weight:800;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nu-stack b{font-family:var(--mono);font-size:11px;color:var(--muted)}
.nu-stack i{width:7px;height:7px;border-radius:50%;flex:0 0 7px}
.nu-more{padding:5px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:900;white-space:nowrap}
.nu-chevron{display:flex;color:var(--muted);transition:transform .18s}
.nu-chevron .ic{width:16px;height:16px}
.next-unified[open] .nu-chevron{transform:rotate(90deg)}
.next-unified-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px;border-top:1px solid var(--line-2)}
.next-unified-list .straks-rij{margin-top:12px}
.straks-rij{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:var(--shadow-sm);color:inherit}
.straks-rij:hover{border-color:color-mix(in oklch,var(--accent) 28%,var(--line));background:var(--accent-soft)}
.straks-rij.nu{background:color-mix(in oklch,var(--red) 8%,var(--surface));border-color:color-mix(in oklch,var(--red) 30%,var(--line))}
.straks-tijd{min-width:52px}
.straks-tijd b{display:block;font-family:var(--mono);font-size:14px;color:var(--ink)}
.straks-tijd span{display:block;margin-top:2px;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--muted);white-space:nowrap}
.straks-body{min-width:0}
.straks-body strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--disp);font-size:15px;letter-spacing:-.01em}
.straks-body span{display:flex;align-items:center;gap:6px;min-width:0;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}
.straks-body i{display:inline-block;width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.straks-chev{display:flex;color:var(--muted)}
.straks-chev .ic{width:16px;height:16px}
.hero-card .dag-uit{margin:0}
.hero-card .dag-uit summary{border:none;border-radius:0;box-shadow:none;background:transparent;padding-top:15px}
.hero-card .dag-uit .tijdlijn{border:none;border-radius:0;background:transparent;padding:0 18px 8px}
.dag-meer{margin-left:auto;padding:5px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:800}
.dag-meer + .chev2{margin-left:0}
@media(max-width:680px){.hero-card .straks-blok{grid-template-columns:1fr;padding-left:16px;padding-right:16px}.straks-rij{padding:11px 12px}.next-unified{margin-left:16px;margin-right:16px}.next-unified summary,.next-peek-btn{grid-template-columns:1fr auto}.nu-label{grid-column:1/-1}.nu-stack{flex-direction:column}.nu-stack>span{max-width:100%}.next-unified-list{grid-template-columns:1fr}}
/* live-strook: vlakvullende geanimeerde voortgang van het lopende optreden */
.hero-card .live-strook{position:relative;padding-top:14px}
.hero-card .live-strook .laadbalk{height:7px;border-radius:0;margin:0 -1px;background:oklch(0.92 0.02 25)}
.hero-card .live-strook .laadbalk i.pulse{background:linear-gradient(90deg,var(--red),var(--pink));box-shadow:0 0 10px var(--pink)}
.hero-card .live-strook .ls-label{position:absolute;right:14px;top:-4px;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--red)}
.tag.live{background:var(--red);color:#fff;animation:puls 2s infinite}
.tag.live{box-shadow:0 0 0 4px oklch(0.62 0.22 25/.14)}
/* weerlijn (plat, onder titel) */
.weer-lijn{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--muted)}
.weer-lijn .wl-nu{font-size:14px;color:var(--ink-2)}
.weer-lijn .wl-nu b{font-family:var(--disp);font-weight:800;font-size:18px;letter-spacing:-.02em;margin:0 2px}
.weer-lijn .wl-u{font-family:var(--mono);font-size:12px;color:var(--faint)}
.weer-lijn .wl-u::before{content:"";display:inline-block;width:1px;height:11px;background:var(--line);margin-right:16px;vertical-align:-1px}

/* uitschuifbaar dag-lijstje */
.dag-uit{margin-top:18px}
.dag-uit summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 16px;
  background:var(--surface);border:1px solid var(--line);border-radius:13px;font-family:var(--disp);font-weight:700;font-size:15.5px;letter-spacing:-.01em;box-shadow:var(--shadow-sm)}
.dag-uit summary::-webkit-details-marker{display:none}
.dag-uit summary .ic{width:18px;height:18px;color:var(--accent)}
.dag-uit summary .chev2{margin-left:2px;color:var(--muted);display:flex;transition:transform .2s}
.dag-uit[open] summary .chev2{transform:rotate(90deg)}
.dag-uit[open] summary{border-radius:13px 13px 0 0}
.dag-uit .tijdlijn{border:1px solid var(--line);border-top:none;border-radius:0 0 13px 13px;padding:6px 16px;background:var(--surface)}
.rij.geweest{opacity:.5}
/* "Mijn dag" op vandaag = link naar mijn lijstje (zelfde balk-look, pijltje rechts) */
.dag-uit-link{margin-top:18px;text-decoration:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 16px;background:var(--surface);border:1px solid var(--line);border-radius:13px;font-family:var(--disp);font-weight:700;font-size:15.5px;letter-spacing:-.01em;box-shadow:var(--shadow-sm);color:var(--ink)}
.dag-uit-link .ic{width:18px;height:18px;color:var(--accent);flex:none}
.dag-uit-link .dul-tel{color:var(--muted);font-weight:600;font-size:13px}
.dag-uit-link .chev2{margin-left:auto;color:var(--muted);display:flex}
.dag-uit-link .chev2 .ic{width:17px;height:17px;color:var(--muted)}
.dag-uit-link:hover{border-color:var(--slate)}
.dag-uit-link:active{background:var(--bg-2)}
.rij.geweest:hover{opacity:.75}
.nu-divider{display:flex;align-items:center;gap:10px;margin:8px 0 4px;color:var(--fs-paar);font-family:var(--mono);
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.nu-divider::after{content:"";flex:1;height:1px;background:var(--fs-paar);opacity:.35}

/* ---------- Weerstrip (plat, geen kader) ---------- */
.weer-strip{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--muted)}
.weer-strip .nu{font-size:14px;color:var(--ink-2)}
.weer-strip .nu b{font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:-.02em;margin:0 2px}
.weer-strip .u{font-family:var(--mono);font-size:12px;color:var(--faint)}
.weer-strip .u::before{content:"";display:inline-block;width:1px;height:11px;background:var(--line);margin-right:18px;vertical-align:-1px}

/* ---------- Compact voortgangsblok ---------- */
.voortgang-blok{margin-top:20px}
.voortgang-blok .vb-mot{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;font-size:15.5px;color:var(--ink);margin-bottom:9px}
.voortgang-blok .vb-top{display:flex;align-items:baseline;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:7px}
.voortgang-blok .vb-top b{font-family:var(--disp);font-weight:800;color:var(--ink);font-size:15px;letter-spacing:-.02em}
.voortgang-blok .vb-rest{font-weight:600;color:var(--fs-genoeg)}

/* ---------- FAQ met hoofdstuk-navigatie ---------- */
.faq-layout{display:grid;grid-template-columns:200px 1fr;gap:26px;align-items:start;margin-top:20px}
.faq-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:2px}
.faq-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.faq-nav a .ic{width:16px;height:16px;color:var(--muted)}
.faq-nav a:hover{background:var(--bg-2)}
.faq-nav a.actief{background:var(--accent-soft);color:var(--accent-ink)}
.faq-nav a.actief .ic{color:var(--accent)}
.faq-sec{scroll-margin-top:20px;margin-bottom:30px}
.faq-sec .sec-kop{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.faq-sec .sec-kop .em{width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center}
.faq-sec .sec-kop .em .ic{width:19px;height:19px}
.faq-sec .sec-kop h2{font-family:var(--disp);font-size:20px;font-weight:700;letter-spacing:-.025em}
.faq-sec .sec-kop p{font-size:12.5px;color:var(--muted)}
.faq-tekst{columns:2;column-gap:34px}
.faq-tekst p{break-inside:avoid;margin-bottom:15px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.faq-tekst p b{display:block;font-family:var(--disp);font-weight:700;letter-spacing:-.01em;font-size:14.5px;color:var(--ink);margin-bottom:2px}
@media(max-width:760px){.faq-tekst{columns:1}}

/* ---------- Checklist 2-koloms ---------- */
.chk-grid{columns:2;column-gap:20px;margin-top:6px}
.chk-blok{break-inside:avoid;margin-bottom:18px}
.chk-voortgang{height:6px;border-radius:3px;background:var(--bg-2);overflow:hidden;margin:18px 0 6px}
.chk-voortgang i{display:block;height:100%;background:var(--green);border-radius:3px;transition:width .3s}
@media(max-width:760px){
  .chk-grid{columns:1;column-gap:0;margin-top:10px}
  .chk-blok{margin-bottom:16px}
  .chk-cat{margin:18px 2px 9px}
  .chk-cat h2{font-size:17px}
  .chk-cat .tel{font-size:12.5px}
  .chk-voortgang{height:5px;margin:9px 0 8px}
  .chk-blok>.kaart{border-radius:16px;overflow:hidden;box-shadow:none}
  .chk{min-height:56px;align-items:flex-start;gap:12px;padding:14px;border-bottom-color:var(--line)}
  .chk:active{transform:scale(.99)}
  .chk .box{width:27px;height:27px;flex-basis:27px;border-radius:9px;margin-top:1px}
  .chk .box svg{width:15px;height:15px}
  .chk .tx b{font-size:15px;line-height:1.25}
  .chk .tx s{display:block;margin-top:3px;font-size:12.5px;line-height:1.35}
}
@media(max-width:380px){
  .chk{padding:13px 12px}
  .chk .tx b{font-size:14.5px}
}

/* ---------- Feedback ---------- */
.fb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:6px 0 16px}
.fb-chip{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid var(--line);border-radius:13px;
  background:var(--surface);box-shadow:var(--shadow-sm);font-size:14px;font-weight:600;cursor:pointer;transition:.12s}
.fb-chip:hover{border-color:var(--accent);background:var(--accent-soft)}
.fb-chip.gekozen{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.fb-chip .e{font-size:18px}
textarea.veld-tx{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 15px;font-size:15px;
  font-family:inherit;background:var(--surface);color:var(--ink);outline:none;min-height:120px;resize:vertical}
textarea.veld-tx:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* ---------- Admin ---------- */
.admin-head{margin:14px 0 22px}
.fest-kies{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.fest-kies .fk-l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.fest-kies select{font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.02em;color:var(--ink);
  border:1px solid var(--line);border-radius:11px;padding:9px 16px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;max-width:100%}
.fest-kies select:hover{border-color:var(--slate)}
.admin-head .admin-tabs{margin:0}
.admin-tabs{display:flex;gap:6px;overflow-x:auto;margin:16px 0 22px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.admin-tabs a{flex:0 0 auto;padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink-2);
  background:var(--surface);border:1px solid var(--line);white-space:nowrap}
.admin-tabs a:hover{border-color:var(--slate)}
.admin-tabs a.actief{background:var(--ink);color:#fff;border-color:var(--ink)}
.admin-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.admin-tbl th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--line)}
.admin-tbl td{padding:11px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.admin-tbl tr:hover td{background:var(--bg-2)}
.admin-tbl .nm{font-weight:600}
.mini-knop{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:9px;font-size:12.5px;font-weight:600;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer}
.mini-knop:hover{border-color:var(--slate)}
.mini-knop.prim{background:var(--accent);color:#fff;border-color:var(--accent)}
.mini-knop.warm{background:var(--fs-paar);color:#fff;border-color:var(--fs-paar)}
.mini-knop.groen{background:var(--fs-veel);color:#fff;border-color:var(--fs-veel)}
.mini-knop.rood{background:var(--red);color:#fff;border-color:var(--red)}
select.veld-sel,input.veld-in{border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:13px;font-family:inherit;background:var(--surface);color:var(--ink);outline:none}
select.veld-sel:focus,input.veld-in:focus{border-color:var(--accent)}
.badge-rol{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:6px}
.badge-rol.admin{background:var(--slate);color:#fff}
.badge-rol.baas{background:var(--accent-soft);color:var(--accent-ink)}
.badge-rol.fotograaf{background:var(--bg-2);color:var(--ink-2)}
.admin-kaart{padding:0;overflow:hidden}
.admin-scroll{overflow-x:auto}
.admin-form-rij{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px;border-bottom:1px solid var(--line-2)}

/* ---------- Bands-beheer ---------- */
.bands-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
@media(max-width:900px){.bands-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.bands-grid{grid-template-columns:1fr}}
.band-kaart{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px;box-shadow:var(--shadow-sm)}
.band-kaart .bk-top{display:flex;align-items:center;gap:11px;min-width:0}
.band-kaart .bk-foto{width:48px;height:48px;border-radius:11px;flex:0 0 48px;background:var(--bg-2) center/cover no-repeat;
  display:flex;align-items:center;justify-content:center;font-size:20px}
.band-kaart .bk-info{min-width:0}
.band-kaart .bk-info b{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;font-size:15px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.band-kaart .bk-info small{font-size:11.5px;color:var(--muted)}
.band-kaart .bk-acties{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.band-kaart .bk-acties .mini-knop{padding:5px 9px;font-size:11.5px}
.band-kaart .bk-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}

/* ---------- Statistieken / festival-live ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.stat{padding:16px 18px}
.stat .sv{font-family:var(--disp);font-weight:800;font-size:30px;letter-spacing:-.03em;line-height:1}
.stat .sl{color:var(--muted);font-size:12.5px;margin-top:5px}
.twee-kol{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
@media(max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr)}.twee-kol{grid-template-columns:1fr;gap:0}}

.live-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}
.live-kaart{padding:15px 17px;border-left:4px solid var(--pk);position:relative}
.live-kaart .lk-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.live-kaart .lk-podium{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink-2)}
.live-kaart .lk-tijd{font-family:var(--mono);font-size:11.5px;color:var(--faint)}
.live-kaart .lk-titel{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;font-size:19px;line-height:1.05;margin:8px 0 10px;
  overflow-wrap:anywhere}
.live-kaart .lk-onder{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.live-kaart .lk-fot{font-size:12.5px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.live-kaart .lk-status{flex:0 0 auto;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:3px 9px;border-radius:7px;background:var(--warm-soft);color:var(--warm-ink)}
.live-kaart .lk-status.ok{background:var(--green-soft);color:var(--green-ink)}
.podium-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:760px){.live-grid{grid-template-columns:1fr}.podium-grid{grid-template-columns:1fr 1fr}}

/* ---------- Live persoonlijk ---------- */
.nu-hero{
  padding:20px 22px;color:#fff;border-radius:var(--radius);position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 14% 0%,color-mix(in oklch,var(--cyan) 26%,transparent),transparent 34%),
    radial-gradient(circle at 94% 12%,color-mix(in oklch,var(--warm) 18%,transparent),transparent 38%),
    linear-gradient(135deg,var(--ink),oklch(0.25 0.038 248) 58%,oklch(0.19 0.028 260));
}
.nu-hero .eyebrow{color:var(--cyan)}
.nu-hero h3{font-family:var(--disp);font-size:26px;font-weight:700;letter-spacing:-.03em;margin-top:8px}
.nu-hero .meta{color:oklch(0.82 0.02 256);font-size:13px;margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nu-hero .meta .tm{font-family:var(--mono)}
.nu-hero .grootcd{font-family:var(--mono);font-size:40px;font-weight:700;letter-spacing:-.04em;margin-top:14px;display:flex;align-items:baseline;gap:22px;flex-wrap:wrap}
.nu-hero .grootcd .cd-clock{display:inline-flex;align-items:baseline;gap:0;white-space:nowrap}
.nu-hero .grootcd .sep{color:var(--cyan);animation:knip 1s steps(1) infinite}
.nu-hero .grootcd .cd-unit{font-family:var(--body);font-size:16px;font-weight:900;letter-spacing:0;margin-left:6px;color:var(--cyan)}
.nu-hero .grootcd .cd-label{font-family:var(--body);font-size:.9em;font-weight:900;color:#fff;letter-spacing:-.03em}
/* Mijn lijstje — meerdere live concerten tegelijk; balk meteen onder de timing */
.nu-live .eyebrow{color:var(--green)}
.nu-live-lijst{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.nu-live-item.artist-click{cursor:pointer}
.nu-live-item{border-radius:15px;padding:12px 13px;background:rgba(255,255,255,.05);transition:background .14s}
.nu-live-item.artist-click:active{background:rgba(255,255,255,.1)}
.nu-live-item h3{font-family:var(--disp);font-size:23px;font-weight:800;letter-spacing:-.03em;margin:0;line-height:1.08}
.nu-live-item .meta{color:oklch(0.82 0.02 256);font-size:13px;margin-top:6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nu-live-item .meta .tm{font-family:var(--mono)}
.nu-live-bar{position:relative;height:8px;border-radius:999px;background:rgba(255,255,255,.15);overflow:visible;margin-top:9px}
.nu-live-bar i{position:relative;display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--cyan));box-shadow:0 0 14px color-mix(in oklch,var(--green) 60%,transparent);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.nu-live-bar i::after{content:"";position:absolute;right:-6px;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--cyan);box-shadow:0 0 0 4px rgba(255,255,255,.16),0 0 16px color-mix(in oklch,var(--cyan) 65%,transparent);transform:translateY(-50%);animation:liveBolPuls 1.3s ease-in-out infinite}
@keyframes liveBolPuls{0%,100%{box-shadow:0 0 0 3px rgba(255,255,255,.2),0 0 12px color-mix(in oklch,var(--cyan) 55%,transparent)}50%{box-shadow:0 0 0 7px rgba(255,255,255,.06),0 0 22px color-mix(in oklch,var(--cyan) 85%,transparent)}}
.nu-live-nog{white-space:nowrap}
/* LIVE-badge: het zwarte kader is enkel voor wat NU speelt → grote pulserende bol + live-icoon */
.nu-live-badge{display:flex;align-items:center;gap:9px;font-family:var(--body);font-weight:950;letter-spacing:.05em;text-transform:uppercase;font-size:12.5px;color:var(--green)}
.nu-live-badge .nlb-bol{flex:none;width:14px;height:14px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 color-mix(in oklch,var(--green) 60%,transparent);animation:nlbPuls 1.35s ease-out infinite}
.nu-live-badge .nlb-ic{flex:none;color:var(--green)}
.nu-live-badge .nlb-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes nlbPuls{0%{box-shadow:0 0 0 0 color-mix(in oklch,var(--green) 55%,transparent)}70%{box-shadow:0 0 0 10px transparent}100%{box-shadow:0 0 0 0 transparent}}
/* "Het geheimpje" — speels complimentbannertje op Vandaag, verschijnt zo nu en dan */
.geheim-banner{margin-top:14px;border-radius:16px;overflow:hidden;opacity:0;transform:translateY(-6px);transition:opacity .32s ease,transform .32s ease;
  background:linear-gradient(135deg,color-mix(in oklch,var(--accent) 13%,#fff),color-mix(in oklch,var(--pink) 12%,#fff));
  border:1.5px solid color-mix(in oklch,var(--accent) 26%,var(--line))}
.geheim-banner.in{opacity:1;transform:none}
.geheim-teaser{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:13px 15px;font-family:inherit}
.geheim-banner .gb-emoji{font-size:22px;flex:none;line-height:1}
.geheim-teaser .gb-emoji{animation:gbWiggle 2.6s ease-in-out infinite;transform-origin:60% 80%}
@keyframes gbWiggle{0%,90%,100%{transform:rotate(0)}92%{transform:rotate(-13deg)}95%{transform:rotate(11deg)}98%{transform:rotate(-6deg)}}
.gb-tease-tx{display:flex;flex-direction:column;line-height:1.16;min-width:0}
.gb-tease-tx b{font-family:var(--disp);font-size:16px;font-weight:900;color:var(--ink);letter-spacing:-.01em}
.gb-tease-tx small{font-size:12.5px;color:var(--ink-2);font-weight:650}
.geheim-teaser .gb-chev{margin-left:auto;font-size:23px;line-height:1;color:var(--accent);font-weight:800;transition:transform .15s}
.geheim-teaser:hover .gb-chev{transform:translateX(3px)}
.geheim-open{display:flex;flex-direction:column;gap:13px;padding:15px 16px}
.gb-zin-rij{display:flex;align-items:flex-start;gap:12px}
.gb-zin{flex:1;margin:0;font-family:var(--disp);font-size:17px;font-weight:800;line-height:1.32;color:var(--ink);letter-spacing:-.01em}
.gb-acties{display:flex;gap:8px}
.gb-nog,.gb-dicht{border:0;border-radius:10px;padding:9px 13px;font-family:inherit;font-weight:850;font-size:13px;cursor:pointer;transition:.12s}
.gb-nog{flex:1;background:var(--accent);color:#fff}
.gb-nog:hover{filter:brightness(1.05)}
.gb-dicht{background:rgba(0,0,0,.06);color:var(--ink-2)}
.gb-dicht:hover{background:rgba(0,0,0,.1)}
/* Volgende-concert hero = LICHT kader (geen zwart kader; dat is voorbehouden voor LIVE) */
.nu-hero:not(.nu-live){
  color:var(--ink);border:1.5px solid var(--line);
  background:
    radial-gradient(circle at 16% 0%,color-mix(in oklch,var(--accent) 13%,transparent),transparent 42%),
    linear-gradient(135deg,var(--surface),var(--bg-2) 92%);
}
.nu-hero:not(.nu-live) .eyebrow{color:var(--accent)}
.nu-hero:not(.nu-live) h3{color:var(--ink)}
.nu-hero:not(.nu-live) .meta{color:var(--muted)}
.nu-hero:not(.nu-live) .meta b{color:var(--ink-2)!important}
.nu-hero:not(.nu-live) .grootcd{color:var(--ink)}
.nu-hero:not(.nu-live) .grootcd .cd-unit,.nu-hero:not(.nu-live) .grootcd .sep{color:var(--accent)}
.nu-hero:not(.nu-live) .grootcd .cd-label{color:var(--muted)!important}
.nu-hero:not(.nu-live) .hero-card-loader{border-top-color:var(--line)}
.nu-hero:not(.nu-live) .hero-card-loader-top span{color:var(--muted)}
.nu-hero:not(.nu-live) .hero-card-loader-top b{color:var(--ink-2)}
.nu-hero:not(.nu-live) .hero-card-loader-track{background:var(--bg-2)}
.hero-urgent-loader{display:none;margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.14)}
.hero-urgent-loader.aan{display:block}
.hero-urgent-loader span{display:block;margin-bottom:8px;color:oklch(0.86 0.03 205);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.hero-urgent-loader div{height:9px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.hero-urgent-loader i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--warm),var(--pink));box-shadow:0 0 16px var(--pink);
  transition:width .55s cubic-bezier(.2,.8,.2,1);animation:rushPulse .8s ease-in-out infinite}
.hero-card-loader{margin-top:16px;padding:14px 0 2px;border:0;border-top:1px solid rgba(255,255,255,.16);border-radius:0;background:none;box-shadow:none}
.hero-card-loader-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.hero-card-loader-top span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:oklch(0.86 0.03 210);font-size:11px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.hero-card-loader-top b{flex:0 0 auto;font-family:var(--mono);font-size:12px;font-weight:900;color:#fff}
.hero-card-loader-track{position:relative;height:12px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.hero-card-loader-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green),var(--warm));box-shadow:0 0 18px color-mix(in oklch,var(--cyan) 70%,transparent);transition:width .75s cubic-bezier(.18,.8,.22,1)}
.hero-card-loader-track em{position:absolute;top:0;bottom:0;width:26px;border-radius:999px;background:rgba(255,255,255,.68);filter:blur(6px);animation:rushGlint 2.4s ease-in-out infinite}
.hero-card-loader.is-close .hero-card-loader-track i{background:linear-gradient(90deg,var(--warm),var(--red),var(--pink));animation:rushPulse .8s ease-in-out infinite}
.hero-card-loader.is-now .hero-card-loader-track i{background:linear-gradient(90deg,var(--green),var(--cyan),var(--warm))}
@keyframes rushGlint{0%{left:-28px;opacity:0}25%{opacity:.9}100%{left:100%;opacity:0}}
@keyframes rushPulse{50%{filter:brightness(1.35);box-shadow:0 0 18px var(--pink)}}

/* ---------- Toast ---------- */
#__toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:#fff;font-weight:600;font-size:13.5px;padding:11px 18px;border-radius:12px;box-shadow:var(--shadow-lg);
  z-index:99999;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
#__toast.toon{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- Mobiel ---------- */
.botnav{display:none}
@media(max-width:860px){
  .sidebar{display:none}.topbar{display:none}
  .content{padding:18px 16px 96px}
  h1.groet{font-size:30px}
  .hero{flex-direction:column;gap:0}
  .hero .rechts{flex:auto;border-left:none;border-top:1px dashed var(--line-2);padding-left:0;padding-top:16px;
    margin-top:16px;flex-direction:row;align-items:baseline;justify-content:space-between}
  .acties{grid-template-columns:1fr}
  .botnav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--glass);
    backdrop-filter:blur(16px) saturate(1.4);border-top:1px solid var(--line);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:30}
  .botnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;
    font-weight:600;color:var(--muted);position:relative}
  .botnav a .ic{width:23px;height:23px}
  .botnav a.actief{color:var(--accent)}
  .botnav a .badge{position:absolute;top:-4px;right:50%;margin-right:-22px;background:var(--red);color:#fff;
    font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}
}

/* ---------- Extra (mijn lijstje × + bf-tag naam) ---------- */
.sch-block .bf-tag .bf-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rij .rij-x{flex:0 0 auto;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--faint);font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.12s}
.rij .rij-x:hover{border-color:var(--red);color:var(--red);background:oklch(0.97 0.03 25)}
.ml-meta,.ml-crew{display:none}

/* ---------- Mijn-lijstje teller (2 bolletjes: gefotografeerd / nog) ---------- */
.lijst-tel{margin-left:auto;display:inline-flex;gap:4px}
.lijst-tel span{font-size:11.5px;font-weight:800;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 7px;color:#fff;line-height:1}
.lijst-tel .lt-done{background:#23b06d}
.lijst-tel .lt-todo{background:#ef7a5a}

/* ---------- Hartje + vinkje op schema-blokken ---------- */
.sch-block .b-acts{position:absolute;top:7px;right:7px;z-index:4;display:flex;align-items:flex-start;gap:5px}
.sch-block .b-acts button{position:relative;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;
  line-height:1;cursor:pointer;background:rgba(0,0,0,.48);backdrop-filter:blur(5px);color:rgba(255,255,255,.86);box-shadow:0 4px 16px rgba(0,0,0,.28);transition:transform .12s,background .15s}
.sch-block .b-acts button:hover{transform:scale(1.1)}
.sch-block .b-heart{width:42px;height:42px;font-size:24px}
.sch-block .b-check{width:28px;height:28px;margin-top:3px;font-size:13px}
.sch-block .b-check::after{content:attr(data-tip);position:absolute;right:calc(100% + 7px);top:50%;transform:translateY(-50%) translateX(4px) scale(.96);opacity:0;pointer-events:none;
  white-space:nowrap;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;box-shadow:0 8px 24px rgba(0,0,0,.28);transition:opacity .14s,transform .14s}
.sch-block .b-check:hover::after{opacity:1;transform:translateY(-50%) translateX(0) scale(1)}
.sch-block .b-heart.aan{background:var(--pink);color:#fff;box-shadow:0 0 0 5px color-mix(in oklch,var(--pink) 26%,transparent),0 10px 24px rgba(0,0,0,.32)}
.sch-block .b-check.aan{background:var(--fs-veel);color:#fff}
.sch-block.mijn::after{content:none}

/* ---------- Schema zoom (cols, via --ppm) ---------- */
.content.vol{position:relative}
.sch-scroll.cols .sch-body,.sch-scroll.cols .sch-gutter,.sch-scroll.cols .sch-col{height:calc(var(--span) * var(--ppm) * 1px)}
.sch-scroll.cols .ghour{top:calc(var(--m) * var(--ppm) * 1px)}
.sch-scroll.cols .gline{top:calc(var(--m) * var(--ppm) * 1px)}
.sch-scroll.cols .sch-block{top:calc(var(--mt) * var(--ppm) * 1px);height:calc(var(--md) * var(--ppm) * 1px - 1px)}
.sch-scroll.cols .sch-now{top:calc(var(--m) * var(--ppm) * 1px)}
.sch-scroll.cols .ghour,.sch-scroll.cols .gline,.sch-scroll.cols .sch-block,.sch-scroll.cols .sch-now,.sch-scroll.cols .sch-body,.sch-scroll.cols .sch-gutter,.sch-scroll.cols .sch-col{transition:top .38s cubic-bezier(.4,.7,.3,1),height .38s cubic-bezier(.4,.7,.3,1)}
.sch-zoom{position:absolute;right:30px;bottom:22px;z-index:40;display:flex;flex-direction:column;gap:3px}
.sch-zoom button{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);
  font-size:22px;font-weight:600;color:var(--ink-2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s}
.sch-zoom button:hover{border-color:var(--accent);color:var(--accent)}

/* ---------- Schema-editor (FAB) ---------- */
.sch-zoom{left:30px!important;right:auto!important}
.sch-fab{position:absolute;right:30px;bottom:22px;z-index:45;width:56px;height:56px;border-radius:50%;background:var(--ink);color:#fff;
  font-size:23px;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s}
.sch-fab:hover{transform:scale(1.06)}
body.bewerken .sch-fab{background:var(--accent)}
.sch-add-btn{position:absolute;right:98px;bottom:33px;z-index:45;background:var(--accent);color:#fff;border-radius:999px;padding:11px 18px;
  font-weight:700;font-size:14px;box-shadow:var(--shadow-lg);cursor:pointer;display:none}
body.bewerken .sch-add-btn{display:block}
body.bewerken .sch-block{outline:1.5px dashed rgba(255,255,255,.55);outline-offset:-2px}
body.bewerken .sch-block .b-acts{display:none}

/* ---------- Live notificaties ---------- */
#__notif{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:360px}
.notif{background:var(--surface);color:var(--ink);font-size:14.5px;font-weight:800;padding:14px 17px;border-radius:16px;box-shadow:var(--shadow-lg);
  border:1px solid var(--line);border-left:4px solid var(--pink);line-height:1.35;opacity:0;transform:translateX(24px) scale(.96);transition:opacity .3s,transform .3s cubic-bezier(.2,.8,.2,1)}
.notif.aan{opacity:1;transform:translateX(0) scale(1)}
.site-notif-stack{position:fixed;right:20px;top:18px;z-index:1200;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}
.site-notif{pointer-events:auto;position:relative;overflow:hidden;border:1px solid color-mix(in oklch,var(--accent) 24%,var(--line));
  border-radius:20px;background:linear-gradient(135deg,var(--surface) 0%,color-mix(in oklch,var(--accent) 9%,var(--surface)) 100%);
  box-shadow:0 22px 50px -22px oklch(0.20 0.05 260/.5);padding:13px 14px;opacity:0;transform:translateY(-18px) scale(.98);cursor:pointer;
  transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}
.site-notif.show{opacity:1;transform:translateY(0) scale(1)}
.site-notif::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--accent)}
.site-notif.admin::before{background:linear-gradient(180deg,var(--accent),var(--pink))}
.site-notif.live::before{background:var(--fs-veel)}
/* herinnering vóór je optreden = opvallend geel, met emoji's */
.site-notif.reminder{border-color:#f1cf45;background:linear-gradient(135deg,#fffdf2 0%,#fdeeb4 100%)}
.site-notif.reminder::before{background:linear-gradient(180deg,#ffd64a,#f5a623)}
.site-notif.reminder .site-notif-mark{background:linear-gradient(135deg,#ffd64a,#f5a623);color:#5a4708}
.site-notif.reminder .site-notif-copy b{color:#463804}
.site-notif.reminder .site-notif-copy p{color:#6a5816;font-weight:750}
.site-notif.reminder .site-notif-copy small{color:#8a7320}
.site-notif.reminder .site-notif-actions a{background:#3a2f06}
.site-notif-head{display:flex;align-items:flex-start;gap:12px;padding-left:4px}
.site-notif-mark{flex:0 0 auto;width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}
.site-notif-mark .ic{width:20px;height:20px}
.site-notif-copy{min-width:0;flex:1}
.site-notif-copy b{display:block;font-family:var(--disp);font-size:17px;font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--ink)}
.site-notif-copy p{margin:5px 0 0;color:var(--ink-2);font-size:14px;font-weight:650;line-height:1.38}
.site-notif-copy small{display:block;margin-top:6px;color:var(--faint);font-family:var(--mono);font-size:11px;font-weight:700}
.site-notif-close{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);
  font-size:19px;line-height:1;cursor:pointer}
.site-notif-list{display:flex;flex-direction:column;gap:7px;margin:12px 0 0 46px}
.site-notif-row{display:grid;grid-template-columns:56px minmax(0,1fr);gap:9px;align-items:center;border:1px solid var(--line-2);border-radius:14px;padding:8px 10px;background:color-mix(in oklch,var(--surface) 74%,var(--bg))}
.site-notif-row time{font-family:var(--mono);font-size:12px;font-weight:900;color:var(--ink)}
.site-notif-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:850;color:var(--ink-2)}
.site-notif-row em{display:block;margin-top:1px;font-style:normal;font-size:11.5px;font-weight:800;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-notif-actions{display:flex;gap:8px;margin:13px 0 0 46px;flex-wrap:wrap}
.site-notif-actions a,.site-notif-actions button{border:0;border-radius:13px;padding:10px 12px;background:var(--ink);color:#fff;font-size:13px;font-weight:900;cursor:pointer}
.site-notif-actions button{background:var(--accent)}
.site-notif-actions a.light{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.site-notif.preview{position:relative;opacity:1;transform:none;box-shadow:var(--shadow);max-width:none}
.site-notif.preview .site-notif-close{display:none}

/* ---------- Admin notificaties ---------- */
.admin-notify-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:16px;align-items:start;margin-bottom:24px}
.admin-notify-form{padding:18px}
.notify-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}
.notify-form-head h2{font-family:var(--disp);font-size:26px;letter-spacing:-.035em;margin:0 0 4px}
.notify-form-head p{margin:0;color:var(--muted);font-size:13.5px;font-weight:700;line-height:1.4}
.notify-form-head>.ic{width:34px;height:34px;color:var(--accent)}
.admin-notify-form label{display:flex;flex-direction:column;gap:7px;margin-top:12px;font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.admin-notify-form textarea.veld-in{min-height:124px;resize:vertical;line-height:1.45}
.notify-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.notify-preview-card{padding:18px;position:sticky;top:18px}
.notify-preview-card>.eyebrow{display:block;margin-bottom:12px}
.notify-admin-list{display:flex;flex-direction:column;gap:10px}
.notify-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:15px 17px}
.notify-admin-row b{font-family:var(--disp);font-size:20px;font-weight:800;letter-spacing:-.03em;color:var(--ink)}
.notify-admin-row p{margin:5px 0 8px;color:var(--ink-2);font-size:14px;font-weight:650;line-height:1.45}
.notify-admin-row div>span{font-family:var(--mono);font-size:11.5px;color:var(--faint);font-weight:700}
.notify-admin-tags{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.admin-message.error{background:var(--warm-soft);color:var(--warm-ink);border-color:color-mix(in oklch,var(--warm) 32%,transparent);box-shadow:0 12px 30px -18px color-mix(in oklch,var(--warm) 70%,transparent)}
.admin-message.error::before{content:"!";background:var(--warm)}

/* ---------- Testpagina artiestenkaarten ---------- */
.content.artist-card-lab{max-width:1320px}
.acl-head{margin-bottom:20px}
.acl-head h1{margin:5px 0 6px}
.acl-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:stretch}
.acl-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-sm);min-height:260px}
.acl-card h2{font-family:var(--disp);font-weight:900;letter-spacing:-.045em;line-height:.95;color:var(--ink)}
.acl-card p{color:var(--ink-2);line-height:1.4}
.acl-poster{min-height:520px;color:#fff;background:#111}
.acl-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05)}
.acl-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.78))}
.acl-poster-copy{position:absolute;inset:auto 22px 22px;z-index:2}
.acl-poster-copy span,.acl-player-copy span,.acl-label{display:inline-flex;border-radius:999px;padding:6px 10px;background:color-mix(in oklch,var(--pk) 18%,#fff);color:color-mix(in oklch,var(--pk) 60%,var(--ink));font-family:var(--mono);font-size:11px;font-weight:900;text-transform:uppercase}
.acl-poster h2{margin:12px 0 8px;color:#fff;font-size:clamp(44px,6vw,78px)}
.acl-poster p{color:rgba(255,255,255,.82);font-size:18px;font-weight:850}
.acl-poster a,.acl-ticket a{display:inline-flex;margin-top:16px;border-radius:14px;padding:11px 14px;background:var(--pk);color:#fff;font-weight:900}
.acl-split{display:grid;grid-template-columns:42% 1fr;gap:0;min-height:360px}
.acl-split img{width:100%;height:100%;object-fit:cover}
.acl-split>div{padding:22px;display:flex;flex-direction:column;justify-content:center}
.acl-split h2{font-size:42px;margin:14px 0 10px}
.acl-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.acl-meta b,.acl-meta span{border-radius:999px;padding:7px 10px;background:var(--bg-2);font-family:var(--mono);font-size:12px;font-weight:900}
.acl-crew{display:flex;gap:6px;flex-wrap:wrap;margin-top:15px}
.acl-crew em{font-style:normal;border-radius:999px;padding:7px 10px;background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:900}
.acl-ticket{display:grid;grid-template-columns:116px minmax(0,1fr);gap:18px;align-items:center;padding:22px;background:linear-gradient(135deg,color-mix(in oklch,var(--pk) 12%,#fff),#fff)}
.acl-ticket::before,.acl-ticket::after{content:"";position:absolute;top:50%;width:34px;height:34px;border-radius:50%;background:var(--bg);transform:translateY(-50%)}
.acl-ticket::before{left:-18px}.acl-ticket::after{right:-18px}
.acl-ticket-time{display:grid;place-items:center;aspect-ratio:1;border-radius:20px;background:var(--pk);color:#fff}
.acl-ticket-time b{font-family:var(--disp);font-size:34px;font-weight:900;letter-spacing:-.04em}
.acl-ticket-time span{font-family:var(--mono);font-size:11px;font-weight:900}
.acl-ticket-main span{font-family:var(--mono);font-size:11px;font-weight:900;text-transform:uppercase;color:var(--muted)}
.acl-ticket h2{font-size:36px;margin:8px 0 6px}
.acl-ticket a{grid-column:1/-1;justify-self:start;background:var(--ink)}
.acl-crew-card{padding:22px;display:flex;flex-direction:column;justify-content:space-between;background:var(--ink);color:#fff}
.acl-crew-card h2{font-size:38px;color:#fff}
.acl-crew-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.acl-crew-top span{border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.12);font-size:12px;font-weight:900;white-space:nowrap}
.acl-avatar-row{display:flex;margin:24px 0}
.acl-avatar-row i{width:56px;height:56px;margin-left:-10px;border-radius:50%;display:grid;place-items:center;background:var(--pk);color:#fff;border:4px solid var(--ink);font-family:var(--mono);font-size:15px;font-style:normal;font-weight:900}
.acl-avatar-row i:first-child{margin-left:0}
.acl-crew-card p{color:rgba(255,255,255,.74);font-family:var(--mono);font-size:13px;font-weight:800}
.acl-status{align-self:flex-start;border-radius:999px;padding:9px 12px;background:rgba(255,255,255,.12);font-weight:900}
.acl-status.ok{background:var(--fs-veel);color:#fff}
.acl-player{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:center;padding:24px;background:color-mix(in oklch,var(--pk) 8%,var(--surface))}
.acl-record{position:relative;aspect-ratio:1;border-radius:50%;background:var(--ink);padding:18px;box-shadow:inset 0 0 0 18px rgba(255,255,255,.08)}
.acl-record img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.acl-record::after{content:"";position:absolute;inset:50% auto auto 50%;width:26px;height:26px;border-radius:50%;background:#fff;transform:translate(-50%,-50%)}
.acl-player h2{font-size:40px;margin:14px 0 8px}
.acl-wave{display:flex;align-items:end;gap:5px;height:42px;margin-top:18px}
.acl-wave i{width:9px;border-radius:999px;background:var(--pk)}
.acl-wave i:nth-child(1){height:18px}.acl-wave i:nth-child(2){height:34px}.acl-wave i:nth-child(3){height:24px}.acl-wave i:nth-child(4){height:40px}.acl-wave i:nth-child(5){height:21px}.acl-wave i:nth-child(6){height:31px}
.acl-progress{padding:24px;display:flex;flex-direction:column;justify-content:space-between;min-height:320px;background:linear-gradient(180deg,#fff,color-mix(in oklch,var(--pk) 10%,#fff))}
.acl-progress h2{font-size:42px;margin:14px 0 8px}
.acl-progress-line{height:15px;border-radius:999px;background:color-mix(in oklch,var(--pk) 13%,#fff);overflow:hidden}
.acl-progress-line i{display:block;width:var(--pct);height:100%;border-radius:999px;background:linear-gradient(90deg,var(--pk),color-mix(in oklch,var(--pk) 45%,var(--warm)))}
.acl-progress-foot{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.acl-progress-foot b{font-family:var(--disp);font-size:48px;font-weight:900;color:var(--pk);letter-spacing:-.05em}
.acl-progress-foot span{font-size:13px;font-weight:900;color:var(--muted);text-transform:uppercase}

@media(max-width:900px){
  .acl-grid{grid-template-columns:1fr}
  .acl-poster{min-height:430px}
  .acl-split,.acl-player{grid-template-columns:1fr}
  .acl-split img{height:260px}
  .acl-ticket{grid-template-columns:94px minmax(0,1fr)}
  .acl-ticket-time b{font-size:28px}
}

/* ---------- Testpagina menuvarianten ---------- */
.content.menu-layout-lab{max-width:1360px}
.menu-test-title{margin-bottom:20px}
.menu-test-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.menu-test-card{padding:14px}
.menu-test-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.menu-test-head>span{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:#fff;font-family:var(--mono);font-size:12px;font-weight:900}
.menu-test-head b{display:block;font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:-.03em}
.menu-test-head small{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;font-weight:750}
.menu-phone{position:relative;border:1px solid var(--line);border-radius:24px;background:var(--bg);padding:12px;min-height:235px;overflow:hidden}
.menu-phone-screen{display:grid;gap:9px;padding:10px 8px 86px}
.menu-phone-screen span{display:block;height:34px;border-radius:13px;background:color-mix(in oklch,var(--line) 50%,#fff)}
.menu-phone-screen span:nth-child(2){width:74%}
.menu-phone-screen span:nth-child(3){width:56%}
.menu-proto{position:absolute;left:12px;right:12px;bottom:12px;min-height:62px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;align-items:center;padding:7px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 42px -28px oklch(0.20 0.04 260/.55)}
.menu-proto a{position:relative;min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:14px;color:var(--muted);font-size:10.5px;font-weight:900;line-height:1;text-align:center}
.menu-proto a .ic{width:22px;height:22px}
.menu-proto a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu-proto a em{position:absolute;top:-5px;right:8px;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;background:var(--green);color:#fff;border:2px solid #fff;font-family:var(--mono);font-size:9px;font-style:normal;font-weight:900}
.mt-clean a.actief{color:var(--ink);background:var(--cyan-soft)}
.mt-clean a.actief::before{content:"";position:absolute;top:4px;width:18px;height:3px;border-radius:999px;background:var(--cyan)}
.mt-pill a.actief{background:var(--ink);color:#fff}
.mt-bubble{background:transparent;border:0;box-shadow:none}
.mt-bubble a{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.mt-bubble a.actief{border-color:var(--green);color:var(--green-ink);background:var(--green-soft)}
.mt-line{border-radius:8px;border-left:0;border-right:0;box-shadow:none}
.mt-line a{border-radius:0}
.mt-line a.actief{color:var(--ink)}
.mt-line a.actief::before{content:"";position:absolute;top:-8px;left:12px;right:12px;height:4px;border-radius:999px;background:var(--green)}
.mt-cards{background:var(--surface-2);border-radius:18px}
.mt-cards a{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.mt-cards a.actief{border-color:var(--cyan);color:var(--ink)}
.mt-dot a.actief{color:var(--ink)}
.mt-dot a.actief::after{content:"";position:absolute;bottom:3px;width:6px;height:6px;border-radius:50%;background:var(--green)}
.mt-square{border-radius:15px}
.mt-square a{border-radius:10px}
.mt-square a.actief{background:var(--green);color:#fff}
.mt-under a.actief{color:var(--ink)}
.mt-under a.actief span{border-bottom:3px solid var(--cyan);padding-bottom:3px}
.mt-ticket a{background:var(--surface-2)}
.mt-ticket a::before{content:"";position:absolute;left:-5px;top:50%;width:10px;height:10px;border-radius:50%;background:#fff;transform:translateY(-50%)}
.mt-ticket a.actief{background:var(--cyan-soft);color:var(--ink)}
.mt-ticket-cut a{overflow:visible;background:#fff;border:1px solid var(--line);border-radius:13px}
.mt-ticket-cut a::before,.mt-ticket-cut a::after{content:"";position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:var(--bg);border:1px solid var(--line);transform:translateY(-50%);z-index:2}
.mt-ticket-cut a::before{left:-7px}
.mt-ticket-cut a::after{right:-7px}
.mt-ticket-cut a.actief{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}
.mt-ticket-strip{gap:0;padding:7px 9px;border-radius:16px}
.mt-ticket-strip a{background:#fff;border-radius:0;border-right:1px dashed var(--line-2)}
.mt-ticket-strip a:first-child{border-radius:12px 0 0 12px}
.mt-ticket-strip a:last-child{border-right:0;border-radius:0 12px 12px 0}
.mt-ticket-strip a.actief{background:var(--ink);color:#fff}
.mt-ticket-punch a{background:#fff;border:1px solid var(--line);border-radius:13px;padding-top:9px}
.mt-ticket-punch a::before{content:"";position:absolute;top:5px;left:50%;width:7px;height:7px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 1px var(--line);transform:translateX(-50%)}
.mt-ticket-punch a.actief{border-color:var(--warm);background:var(--warm-soft);color:var(--warm-ink)}
.mt-ticket-tag a{--tag-border:var(--line);overflow:visible;background:var(--surface-2);border:1px solid var(--tag-border);border-radius:9px 18px 18px 9px}
.mt-ticket-tag a::after{content:"";position:absolute;right:-7px;top:50%;width:16px;height:16px;background:inherit;border-top:1px solid var(--tag-border);border-right:1px solid var(--tag-border);transform:translateY(-50%) rotate(45deg);border-radius:3px;pointer-events:none}
.mt-ticket-tag a.actief{--tag-border:var(--cyan);background:var(--cyan-soft);color:var(--ink)}
.mt-ticket-stub{background:#fff;border-style:dashed}
.mt-ticket-stub a{background:transparent;border-radius:10px}
.mt-ticket-stub a+a{border-left:1px dashed var(--line)}
.mt-ticket-stub a.actief{background:var(--green-soft);color:var(--green-ink);transform:rotate(-2deg) translateY(-3px);box-shadow:0 10px 18px -16px var(--green)}
.mt-ticket-active a{background:transparent;border-radius:12px}
.mt-ticket-active a.actief{overflow:visible;background:#fff;color:var(--ink);border:1px solid var(--warm);box-shadow:0 8px 20px -18px var(--warm)}
.mt-ticket-active a.actief::before,.mt-ticket-active a.actief::after{content:"";position:absolute;top:50%;width:11px;height:11px;border-radius:50%;background:var(--bg);transform:translateY(-50%)}
.mt-ticket-active a.actief::before{left:-6px}
.mt-ticket-active a.actief::after{right:-6px}
.mt-ring a.actief{color:var(--green-ink)}
.mt-ring a.actief .ic{border:2px solid var(--green);border-radius:50%;padding:3px;width:29px;height:29px}
.mt-chip{display:flex;grid-template-columns:none;gap:7px;justify-content:center}
.mt-chip a{flex:0 1 auto;min-height:44px;flex-direction:row;padding:0 11px;border:1px solid transparent}
.mt-chip a .ic{width:18px;height:18px}
.mt-chip a.actief{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}
.mt-rail{left:44px;right:44px;border-radius:999px}
.mt-rail a.actief{background:var(--cyan-soft);color:var(--ink)}
.mt-mono a span{font-family:var(--mono);font-size:9.5px;text-transform:uppercase}
.mt-mono a.actief{color:var(--ink);box-shadow:inset 0 -3px 0 var(--green)}
.mt-lift a.actief{background:var(--green);color:#fff;transform:translateY(-10px);box-shadow:0 16px 24px -18px var(--green)}
.mt-split{grid-template-columns:1fr 1.15fr 1fr .9fr .72fr}
.mt-split a{background:var(--surface-2)}
.mt-split a:last-child{border-left:1px solid var(--line)}
.mt-split a.actief{background:var(--ink);color:#fff}
.mt-glassdock{min-height:70px;gap:4px;padding:8px;border-radius:999px;border-color:color-mix(in oklch,var(--green) 18%,var(--line));background:color-mix(in oklch,#fff 76%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 24px 52px -30px oklch(0.24 0.04 140/.46);backdrop-filter:blur(18px) saturate(1.35)}
.mt-glassdock a{min-height:54px;border-radius:999px;color:oklch(0.30 0.025 150);font-size:10.8px}
.mt-glassdock a .ic{width:25px;height:25px;stroke-width:2.35}
.mt-glassdock a.actief{background:color-mix(in oklch,var(--green) 16%,#fff);color:var(--green-ink);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--green) 24%,transparent),0 16px 30px -24px var(--green)}
.mt-glassdock-bold a{font-size:11.5px}
.mt-glassdock-bold a .ic{width:29px;height:29px;stroke-width:2.55}
.mt-glassdock-bold a.actief{background:color-mix(in oklch,var(--cyan) 15%,#fff);color:var(--ink)}
.menu-phone-subdemo{min-height:330px}
.menu-phone-subdemo .menu-phone-screen{padding-bottom:154px}
.menu-sub-preview{position:absolute;left:16px;right:16px;bottom:92px;border:1px solid color-mix(in oklch,var(--green) 18%,var(--line));border-radius:22px;padding:12px;background:color-mix(in oklch,#fff 88%,transparent);box-shadow:0 20px 44px -30px var(--ink);backdrop-filter:blur(16px)}
.menu-sub-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}
.menu-sub-head b{font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:-.035em;color:var(--ink)}
.menu-sub-head small{font-size:10px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.menu-sub-groups{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.menu-sub-groups>div{display:grid;gap:5px;min-width:0}
.menu-sub-groups em{font-style:normal;font-size:9.5px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.menu-sub-groups a{display:flex;align-items:center;gap:7px;min-height:34px;padding:7px 8px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink-2);font-size:11px;font-weight:900;min-width:0}
.menu-sub-groups a .ic{width:17px;height:17px;color:var(--green-ink);flex:0 0 17px}
.menu-sub-groups a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt-sub-b .menu-sub-preview{left:34px;right:34px;border-radius:18px}
.mt-sub-b .menu-sub-groups a{min-height:30px;border-radius:10px;padding:6px 7px}
.mt-sub-c .menu-sub-groups{grid-template-columns:1fr}
.mt-sub-c .menu-sub-preview{bottom:90px}
.mt-sub-c .menu-sub-groups>div{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.mt-sub-c .menu-sub-groups em{grid-column:1/-1}
.mt-sub-c .menu-sub-groups a{flex-direction:column;justify-content:center;gap:4px;text-align:center;min-height:50px}

@media(max-width:1060px){.menu-test-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.menu-test-grid{grid-template-columns:1fr}.menu-phone{min-height:220px}}

/* ---------- Lay-out hub ---------- */
.content.layout-hub{max-width:1180px}
.layout-hub-head{margin-bottom:18px}
.layout-hub-head h1{margin:5px 0 6px}
.layout-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.layout-hub-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px;border-radius:20px}
.layout-hub-card:hover{border-color:color-mix(in oklch,var(--hub) 45%,var(--line));transform:translateY(-1px)}
.layout-hub-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:color-mix(in oklch,var(--hub) 13%,var(--surface));color:color-mix(in oklch,var(--hub) 82%,var(--ink))}
.layout-hub-icon .ic{width:28px;height:28px}
.layout-hub-copy{min-width:0}
.layout-hub-copy b{display:block;font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.layout-hub-copy small{display:block;margin-top:5px;color:var(--muted);font-size:13.5px;font-weight:750;line-height:1.35}
.layout-hub-card em{font-style:normal;border-radius:999px;padding:7px 10px;background:var(--bg-2);color:var(--ink-2);font-family:var(--mono);font-size:11px;font-weight:900;white-space:nowrap}
.layout-subnav{display:flex;gap:7px;flex-wrap:wrap;margin:-6px 0 18px}
.layout-subnav a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:900;box-shadow:var(--shadow-sm)}
.layout-subnav a:hover{border-color:var(--slate)}
.layout-subnav a.actief{background:var(--ink);border-color:var(--ink);color:#fff}

/* ---------- Map pagina ---------- */
.content.map-screen{max-width:1160px}
.map-head{margin-bottom:18px}
.map-head h1{margin:4px 0 4px}
.map-card{position:relative;overflow:hidden;padding:0;border-radius:22px}
.map-image-wrap{position:relative;overflow:hidden;background:#111827}
.map-image-wrap img{display:block;width:100%;height:min(58dvh,520px);min-height:340px;object-fit:contain;background:#111827}
.map-pin{position:absolute;left:var(--x);top:var(--y);z-index:2;display:flex;align-items:center;gap:7px;max-width:190px;transform:translate(-50%,-100%);pointer-events:none}
.map-pin i{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--pk);box-shadow:0 10px 22px rgba(0,0,0,.28)}
.map-pin b{min-width:0;max-width:160px;border:1px solid rgba(255,255,255,.64);border-radius:999px;padding:6px 9px;background:rgba(255,255,255,.92);box-shadow:0 14px 32px rgba(0,0,0,.18);color:#111827;font-size:12px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.street-vibe-map{position:relative;isolation:isolate;overflow:hidden;width:100%;height:min(58dvh,520px);min-height:340px;background:#101923;color:#fff}
.street-vibe-map::before{content:"";position:absolute;inset:0;z-index:-2;background:
  linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px) 0 0/44px 44px,
  linear-gradient(0deg,rgba(255,255,255,.045) 1px,transparent 1px) 0 0/44px 44px,
  linear-gradient(135deg,#111827 0%,#0f2b32 44%,#271c35 100%)}
.street-vibe-map::after{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(115deg,transparent 0 44px,rgba(255,255,255,.035) 44px 47px,transparent 47px 94px);mix-blend-mode:screen}
.svm-layer{position:absolute;inset:0;z-index:0}
.svm-lane{position:absolute;left:-8%;right:-8%;height:58px;border-top:2px solid rgba(255,255,255,.16);border-bottom:2px solid rgba(255,255,255,.11);
  background:repeating-linear-gradient(90deg,transparent 0 34px,rgba(255,255,255,.3) 34px 52px,transparent 52px 88px),linear-gradient(90deg,rgba(255,126,103,.22),rgba(0,167,183,.18),rgba(88,208,91,.16));
  box-shadow:0 18px 34px rgba(0,0,0,.16)}
.svm-lane-a{top:18%;transform:rotate(-11deg)}
.svm-lane-b{top:47%;height:70px;transform:rotate(8deg);background:repeating-linear-gradient(90deg,transparent 0 30px,rgba(255,255,255,.26) 30px 48px,transparent 48px 84px),linear-gradient(90deg,rgba(255,183,3,.22),rgba(255,61,129,.16),rgba(0,167,183,.18))}
.svm-lane-c{top:71%;transform:rotate(-4deg);opacity:.82}
.svm-zone{position:absolute;z-index:1;display:grid;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:12px 16px;background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);font-family:var(--mono);font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.svm-zone-main{left:9%;top:13%;min-width:116px;min-height:76px;color:#ffd6c8}
.svm-zone-food{right:9%;top:43%;min-width:104px;min-height:68px;color:#ffe6a1}
.svm-zone-press{left:13%;bottom:12%;min-width:108px;min-height:64px;color:#c4f5d7}
.svm-title{position:absolute;left:18px;top:17px;z-index:4;display:grid;gap:5px;max-width:min(360px,calc(100% - 96px))}
.svm-title span{font-family:var(--mono);font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.14em;color:#7fe0e8}
.svm-title b{font-family:var(--disp);font-size:34px;font-weight:900;line-height:.9;letter-spacing:-.045em;text-shadow:0 10px 26px rgba(0,0,0,.28)}
.svm-compass{position:absolute;right:16px;top:16px;z-index:4;width:42px;height:42px;border:1px solid rgba(255,255,255,.22);border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.1);backdrop-filter:blur(8px);font-family:var(--mono);font-size:13px;font-weight:950;color:#fff}
.svm-stage{position:absolute;left:var(--x);top:var(--y);z-index:3;display:grid;grid-template-columns:18px minmax(0,1fr);gap:4px 8px;align-items:center;max-width:190px;
  transform:translate(-50%,-50%);padding:8px 10px;border:1px solid rgba(255,255,255,.28);border-radius:16px;background:rgba(255,255,255,.92);color:#0f1724;box-shadow:0 18px 38px rgba(0,0,0,.22);backdrop-filter:blur(10px)}
.svm-stage i{grid-row:1/3;width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--pk);box-shadow:0 0 0 2px color-mix(in oklch,var(--pk) 42%,transparent)}
.svm-stage b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:950;color:#101923}
.svm-stage small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;font-weight:850;color:#667085}
.street-vibe-map--mini{height:170px;min-height:170px;border-radius:13px}
.street-vibe-map--mini .svm-title b{font-size:18px}
.street-vibe-map--mini .svm-title{left:12px;top:11px}
.street-vibe-map--mini .svm-compass{display:none}
.street-vibe-map--mini .svm-stage{max-width:118px;padding:6px 8px;border-radius:13px}
.street-vibe-map--mini .svm-stage b{font-size:11px}
.street-vibe-map--mini .svm-stage small,.street-vibe-map--mini .svm-zone{display:none}
.street-vibe-map--strip{height:150px;min-height:150px;border-radius:13px}
.street-vibe-map--strip .svm-title b{font-size:20px}
.street-vibe-map--strip .svm-compass,.street-vibe-map--strip .svm-stage small{display:none}
.street-vibe-map--strip .svm-stage{max-width:112px;padding:6px 8px;border-radius:13px}
.street-vibe-map--strip .svm-zone{font-size:9px;padding:8px 10px}
.map-card-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-top:1px solid var(--line);background:var(--surface)}
.map-card-bar span{display:flex;align-items:center;gap:9px;min-width:0;color:var(--ink);font-weight:900}
.map-card-bar span .ic{width:20px;height:20px;color:var(--cyan)}
.map-card-bar em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal;border-radius:999px;padding:9px 12px;background:var(--bg-2);color:var(--ink-2);font-size:13px;font-weight:900}
.map-podia-pop{position:absolute;right:15px;top:15px;z-index:30}
.map-podia-pop>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:46px;border:1px solid rgba(255,255,255,.70);border-radius:16px;padding:10px 13px;background:rgba(255,255,248,.82);color:#151511;box-shadow:0 14px 34px -22px rgba(0,0,0,.48);backdrop-filter:blur(18px) saturate(1.2);font-size:13px;font-weight:950;cursor:pointer}
.map-podia-pop>summary::-webkit-details-marker{display:none}
.map-podia-pop>summary .ic{width:24px;height:24px;stroke-width:0}
.map-podia-list{position:absolute;right:0;top:calc(100% + 9px);width:min(310px,calc(100vw - 30px));max-height:min(420px,62dvh);overflow:auto;display:grid;gap:7px;padding:12px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(255,255,248,.94);box-shadow:0 28px 72px -30px rgba(24,26,20,.58);backdrop-filter:blur(20px) saturate(1.18)}
.map-podia-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 7px;border-bottom:1px solid rgba(32,34,28,.10)}
.map-podia-head b{font-family:var(--disp);font-size:22px;font-weight:950;letter-spacing:-.035em;color:#151511}
.map-podia-head span{min-width:26px;height:26px;border-radius:999px;display:grid;place-items:center;background:rgba(222,235,220,.78);color:#087653;font-family:var(--mono);font-size:11px;font-weight:950}
.map-podia-list p{padding:12px;color:var(--muted);font-weight:850}
.map-podium-item{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;border:1px solid rgba(32,34,28,.10);border-radius:14px;background:rgba(255,255,255,.58)}
.map-podium-item i{width:12px;height:28px;border-radius:999px;flex:0 0 12px}
.map-podium-item span{min-width:0}
.map-podium-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:950;color:#151511}
.map-podium-item small{display:block;margin-top:2px;color:#6d7167;font-size:12px;font-weight:850}
.map-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:14px;margin-top:14px}
.map-panel{padding:16px;border-radius:18px}
.map-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.map-panel-head b{font-family:var(--mono);min-width:28px;height:26px;border-radius:999px;display:grid;place-items:center;background:var(--bg-2);font-size:12px}
.map-stage-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.map-stage-row{display:flex;align-items:center;gap:10px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.map-stage-row i{width:12px;height:12px;border-radius:4px;flex:0 0 12px}
.map-stage-row span{min-width:0}
.map-stage-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:950;color:var(--ink)}
.map-stage-row small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}
.map-shortcuts{display:grid;gap:8px;align-content:start}
.map-shortcuts a{display:flex;align-items:center;gap:11px;min-height:58px;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);color:var(--ink-2)}
.map-shortcuts a .ic{width:23px;height:23px;color:var(--cyan);flex:0 0 23px}
.map-shortcuts a b{display:block;color:var(--ink);font-weight:950}
.map-shortcuts a small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}
@media(max-width:760px){
  .content.map-screen{padding-left:0;padding-right:0}
  .map-head,.map-grid{padding-left:16px;padding-right:16px}
  .map-card{border-left:0;border-right:0;border-radius:0}
  .street-vibe-map{height:calc(100dvh - 176px);min-height:520px}
  .map-image-wrap{overflow:visible}
  .map-image-wrap img{height:auto;min-height:0;max-height:none;object-fit:contain}
  .map-pin b{max-width:120px;font-size:11.5px}
  .map-card-bar{align-items:flex-start;flex-direction:column;padding-left:16px;padding-right:16px}
  .map-grid{grid-template-columns:1fr}
}

/* ---------- Admin map ---------- */
.admin-map-page{--map-accent:var(--cyan)}
.admin-map-layout{display:grid;grid-template-columns:minmax(290px,.36fr) minmax(0,1fr);gap:14px;align-items:start}
.admin-map-stack{display:grid;gap:14px}
.admin-map-card{padding:16px;border-radius:18px}
.admin-map-editor-card{min-width:0}
.admin-map-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.admin-map-card-head h2{margin:2px 0 0;font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.035em;color:var(--ink)}
.admin-map-count{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;padding:6px 10px;background:var(--bg-2);color:var(--ink-2);font-family:var(--mono);font-size:11px;font-weight:900;white-space:nowrap}
.admin-map-form{display:grid;gap:10px}
.admin-map-form .field{display:grid;gap:6px}
.admin-map-form .field span{font-size:12px;color:var(--muted);font-weight:850}
.admin-map-form .mini-knop,.admin-map-upload .mini-knop{justify-content:center;min-height:40px}
.admin-map-mini{overflow:hidden;margin-top:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.admin-map-mini .street-vibe-map{border-radius:0}
.admin-map-mini>span{display:flex;align-items:center;justify-content:center;min-height:40px;border-top:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:900}
.admin-map-upload{display:grid;gap:10px}
.admin-map-drop{position:relative;display:grid;place-items:center;gap:7px;min-height:152px;padding:16px;border:1.5px dashed color-mix(in oklch,var(--cyan) 44%,var(--line));border-radius:16px;background:color-mix(in oklch,var(--cyan) 8%,var(--surface-2));text-align:center;cursor:pointer}
.admin-map-drop:hover{border-color:var(--cyan);background:color-mix(in oklch,var(--cyan) 12%,var(--surface))}
.admin-map-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.admin-map-drop>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff;color:var(--cyan);box-shadow:var(--shadow-sm)}
.admin-map-drop .ic{width:24px;height:24px}
.admin-map-drop b{font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:-.03em;color:var(--ink)}
.admin-map-drop small{max-width:230px;color:var(--muted);font-size:12px;font-weight:800;line-height:1.35}
.admin-map-danger{margin-top:10px}
.admin-map-danger button{width:100%;min-height:38px;border:1px solid color-mix(in oklch,var(--red) 28%,var(--line));border-radius:12px;background:oklch(0.975 0.018 25);color:var(--red);font-weight:900;cursor:pointer}
.admin-map-empty{display:grid;gap:5px;min-height:340px;place-content:center;text-align:center;border:1px dashed var(--line);border-radius:16px;background:var(--surface-2);color:var(--muted)}
.admin-map-empty b{font-family:var(--disp);font-size:26px;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.admin-map-workbench{display:grid;grid-template-columns:220px minmax(0,1fr);gap:13px;align-items:start}
.admin-map-stage-palette{display:grid;gap:7px;max-height:620px;overflow:auto;padding-right:3px;overscroll-behavior:contain}
.admin-map-stage-palette button{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;min-height:54px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--ink);text-align:left;cursor:pointer}
.admin-map-stage-palette button:hover{border-color:var(--slate)}
.admin-map-stage-palette button.actief{border-color:color-mix(in oklch,var(--cyan) 55%,var(--line));background:#fff;box-shadow:0 10px 26px rgba(18,32,52,.08)}
.admin-map-stage-palette i{width:12px;height:12px;border-radius:4px}
.admin-map-stage-palette span{min-width:0}
.admin-map-stage-palette b{display:block;font-size:13.5px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-map-stage-palette small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-map-stage-palette em{border-radius:999px;padding:4px 6px;background:var(--green-soft);color:var(--green-ink);font-size:9.5px;font-style:normal;font-weight:950;text-transform:uppercase}
.admin-map-canvas{position:relative;overflow:hidden;min-height:430px;border:1px solid var(--line);border-radius:18px;background:#111827;touch-action:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.admin-map-canvas::after{content:"Klik op de kaart om het geselecteerde podium te plaatsen";position:absolute;left:14px;bottom:14px;z-index:3;max-width:min(420px,calc(100% - 28px));border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 11px;background:rgba(17,24,39,.78);backdrop-filter:blur(10px);color:#fff;font-size:12px;font-weight:850;pointer-events:none}
.admin-map-canvas img{display:block;width:100%;height:min(62dvh,620px);min-height:430px;object-fit:contain;user-select:none;-webkit-user-drag:none}
.admin-map-pin{position:absolute;z-index:4;display:flex;align-items:center;gap:7px;max-width:210px;transform:translate(-50%,-100%);border:0;background:transparent;color:#111827;cursor:grab;touch-action:none}
.admin-map-pin:active{cursor:grabbing}
.admin-map-pin i{width:22px;height:22px;border:4px solid #fff;border-radius:50%;background:var(--pk);box-shadow:0 12px 26px rgba(0,0,0,.32)}
.admin-map-pin span{max-width:176px;border:1px solid rgba(255,255,255,.66);border-radius:999px;padding:7px 10px;background:rgba(255,255,255,.94);box-shadow:0 14px 34px rgba(0,0,0,.2);font-size:12.5px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-map-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:13px}
.admin-map-actions .mini-knop{min-height:40px}
@media(max-width:980px){
  .admin-map-layout{grid-template-columns:1fr}
  .admin-map-workbench{grid-template-columns:1fr}
  .admin-map-stage-palette{display:flex;max-height:none;overflow-x:auto;padding:0 0 5px}
  .admin-map-stage-palette button{flex:0 0 210px}
}
@media(max-width:680px){
  .admin-map-card{padding:14px;border-radius:16px}
  .admin-map-card-head h2{font-size:22px}
  .admin-map-canvas,.admin-map-canvas img{min-height:360px}
  .admin-map-canvas img{height:58dvh}
  .admin-map-canvas::after{display:none}
  .admin-map-pin span{max-width:118px}
  .admin-map-actions .mini-knop{flex:1 1 160px}
}

/* ---------- Testpagina live layouts ---------- */
.content.live-layout-lab{max-width:1380px}
.llt-head{margin-bottom:20px}
.llt-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:16px;align-items:start}
.llt-card{padding:17px;border-radius:18px}
.llt-wide{grid-column:1/-1}
.llt-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.llt-card-head h2{margin:4px 0 0;font-family:var(--disp);font-size:30px;line-height:.98;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.llt-card-head>b{display:inline-flex;align-items:center;min-height:34px;border-radius:999px;padding:7px 11px;background:var(--bg-2);color:var(--ink-2);font-family:var(--mono);font-size:12px;font-weight:900;white-space:nowrap}
.llt-live-list,.llt-mini-list,.llt-table-list{display:grid;gap:8px}
.llt-live-row{position:relative;display:grid;grid-template-columns:82px minmax(0,1fr) minmax(190px,.34fr);gap:13px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-left:5px solid var(--pk);border-radius:15px;background:#fff;box-shadow:0 1px 5px rgba(20,31,48,.05)}
.llt-live-row time{display:grid;gap:3px;align-content:center;color:var(--ink)}
.llt-live-row time b{font-family:var(--mono);font-size:18px;font-weight:900;line-height:1}
.llt-live-row time span{font-size:11.5px;font-weight:850;color:var(--muted);white-space:nowrap}
.llt-row-main{min-width:0}
.llt-row-title{display:flex;align-items:center;gap:9px;min-width:0}
.llt-row-title h3{font-family:var(--disp);font-size:23px;font-weight:900;line-height:1;letter-spacing:-.035em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.llt-row-title em{flex:0 0 auto;border-radius:999px;padding:4px 8px;background:var(--green-soft);color:var(--green-ink);font-family:var(--mono);font-size:10px;font-style:normal;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.llt-live-row.is-soon .llt-row-title em{background:var(--warm-soft);color:var(--warm-ink)}
.llt-row-main small{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.llt-row-main small i{width:9px;height:9px;border-radius:3px;background:var(--pk);flex:0 0 9px}
.llt-row-bar{height:7px;margin-top:9px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.llt-row-bar i{display:block;width:var(--pct);height:100%;border-radius:inherit;background:var(--pk)}
.llt-row-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.llt-person-tag,.llt-empty-tag{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;padding:4px 8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:11.5px;font-weight:900;line-height:1.1}
.llt-empty-tag{color:var(--muted);background:var(--bg-2)}
.llt-photo-cell{display:grid;gap:4px;justify-items:end;text-align:right;align-self:stretch;align-content:center;padding:9px 11px;border-radius:13px;background:var(--bg-2);border:1px solid var(--line-2)}
.llt-photo-cell b{font-size:13px;font-weight:950;color:var(--ink);line-height:1.15}
.llt-photo-cell span{font-family:var(--mono);font-size:10.5px;font-weight:800;color:var(--muted)}
.llt-photo-cell.ok{background:var(--green-soft);border-color:color-mix(in oklch,var(--green) 25%,var(--line));color:var(--green-ink)}
.llt-photo-cell.ok b{color:var(--green-ink)}
.llt-flow{background:linear-gradient(180deg,#fff,var(--surface-2))}
.llt-split{background:oklch(0.955 0.018 245)}
.llt-split-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:15px}
.llt-live-row.compact{grid-template-columns:70px minmax(0,1fr);gap:10px}
.llt-live-row.compact .llt-photo-cell{grid-column:1/-1;justify-items:start;text-align:left}
.llt-update-feed{display:grid;gap:8px}
.llt-update{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:11px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 1px 5px rgba(20,31,48,.05)}
.llt-update>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-family:var(--mono);font-size:12px;font-weight:900}
.llt-update.ok>span{background:var(--green)}
.llt-update p{margin:0;color:var(--ink-2);font-size:13.5px;font-weight:760;line-height:1.35}
.llt-update p b{color:var(--ink);font-weight:950}
.llt-update small{display:block;margin-top:3px;color:var(--faint);font-family:var(--mono);font-size:11px;font-weight:850}
.llt-table{background:#fff}
.llt-table-row{display:grid;grid-template-columns:52px minmax(0,1.2fr) minmax(95px,.7fr) minmax(90px,.7fr) minmax(120px,.9fr);gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line-2)}
.llt-table-row:first-child{border-top:0}
.llt-table-row time{font-family:var(--mono);font-size:12px;font-weight:900;color:var(--ink)}
.llt-table-row b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-weight:950;color:var(--ink)}
.llt-table-row span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px;font-weight:850}
.llt-table-row .llt-row-bar{margin-top:0}
.llt-table-row em{justify-self:end;text-align:right;font-style:normal;color:var(--green-ink);font-size:12px;font-weight:900}
.llt-phone{background:var(--ink);border-color:oklch(0.30 0.03 250);color:#fff}
.llt-phone .llt-card-head h2{color:#fff}
.llt-phone .llt-card-head .eyebrow{color:rgba(255,255,255,.54)}
.llt-phone-frame{border:1px solid rgba(255,255,255,.12);border-radius:28px;background:rgba(255,255,255,.06);padding:12px;display:grid;gap:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.llt-phone-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 4px 8px;color:#fff}
.llt-phone-top b{font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.04em}
.llt-phone-top span{font-family:var(--mono);font-size:12px;font-weight:900;color:rgba(255,255,255,.62)}
.llt-phone-row{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;padding:11px;border-radius:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12)}
.llt-phone-row>div:first-child{display:flex;align-items:center}
.llt-avatar{width:34px;height:34px;margin-left:-8px;border-radius:50%;display:grid;place-items:center;background:var(--pk);border:2px solid var(--ink);color:#fff;font-family:var(--mono);font-size:11px;font-weight:900}
.llt-avatar:first-child{margin-left:0}
.llt-avatar.muted{background:rgba(255,255,255,.18)}
.llt-avatar.more{background:#fff;color:var(--ink)}
.llt-phone-row span{min-width:0}
.llt-phone-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:15px;font-weight:950}
.llt-phone-row small{display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.64);font-size:12px;font-weight:850}
.llt-phone-row .llt-row-bar{grid-column:1/-1;margin-top:0;background:rgba(255,255,255,.13)}

@media(max-width:1100px){.llt-grid,.llt-split-grid{grid-template-columns:1fr}.llt-card,.llt-wide{grid-column:auto}}
@media(max-width:720px){
  .llt-live-row{grid-template-columns:64px minmax(0,1fr);align-items:start}
  .llt-photo-cell{grid-column:1/-1;justify-items:start;text-align:left}
  .llt-table-row{grid-template-columns:48px minmax(0,1fr);gap:7px}
  .llt-table-row span,.llt-table-row .llt-row-bar,.llt-table-row em{grid-column:2}
  .llt-table-row em{justify-self:start;text-align:left}
}

/* ---------- Testpagina artiestdetail-popups ---------- */
.content.artist-detail-lab{max-width:1440px}
.adl-head{margin-bottom:18px}
.adl-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.adl-card{--pad:18px;position:relative;overflow:hidden;display:grid;grid-template-columns:210px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:16px;min-height:390px;padding:var(--pad);border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-sm)}
.adl-nr{position:absolute;right:14px;top:12px;z-index:4;font-family:var(--mono);font-size:11px;font-weight:900;color:var(--faint)}
.adl-photo{position:relative;min-height:190px;border-radius:18px;background:var(--bg-2);overflow:hidden}
.adl-photo img{width:100%;height:100%;object-fit:cover;display:block}
.adl-main{min-width:0;align-self:center;position:relative;z-index:2}
.adl-label{display:inline-flex;border-radius:999px;padding:6px 10px;background:color-mix(in oklch,var(--pk) 16%,#fff);color:color-mix(in oklch,var(--pk) 72%,var(--ink));font-family:var(--mono);font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.adl-card h2{margin:12px 0 9px;font-family:var(--disp);font-size:clamp(34px,4vw,54px);font-weight:900;letter-spacing:-.055em;line-height:.92;color:var(--ink);overflow-wrap:anywhere}
.adl-copy{max-width:60ch;color:var(--ink-2);font-size:14.5px;font-weight:650;line-height:1.48}
.adl-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}
.adl-meta b,.adl-meta span{display:inline-flex;border-radius:999px;padding:7px 10px;background:var(--bg-2);color:var(--ink-2);font-size:12px;font-weight:900}
.adl-meta b{background:color-mix(in oklch,var(--pk) 12%,#fff);color:color-mix(in oklch,var(--pk) 70%,var(--ink))}
.adl-crew{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.adl-crew span{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-size:12px;font-weight:900}
.adl-actions{grid-column:1/-1;display:flex;gap:9px;align-items:center;flex-wrap:wrap;position:relative;z-index:3}
.adl-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:999px;padding:10px 13px;font-size:13px;font-weight:950}
.adl-play{background:var(--ink);color:#fff}
.adl-play i{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor}
.adl-video{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}
.adl-video b{width:23px;height:17px;border-radius:5px;background:var(--red);position:relative}
.adl-video b::after{content:"";position:absolute;left:9px;top:4px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #fff}
.adl-stage{grid-template-columns:1fr;align-content:end;color:#fff;min-height:540px;padding:0;background:#111}
.adl-stage .adl-photo{position:absolute;inset:0;border-radius:0}
.adl-stage .adl-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.78))}
.adl-stage .adl-main,.adl-stage .adl-actions{padding:0 24px 22px}
.adl-stage h2,.adl-stage .adl-copy{color:#fff}.adl-stage .adl-copy{color:rgba(255,255,255,.82)}
.adl-stage .adl-meta b,.adl-stage .adl-meta span,.adl-stage .adl-crew span{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.14);color:#fff}
.adl-stage .adl-play{background:var(--warm);color:var(--ink)}
.adl-compact{grid-template-columns:120px minmax(0,1fr);min-height:280px;border-radius:18px}
.adl-compact .adl-photo{min-height:120px;border-radius:16px}.adl-compact h2{font-size:34px}.adl-compact .adl-copy{font-size:13.5px}
.adl-crew-first{grid-template-columns:minmax(0,1fr) 210px}
.adl-crew-first .adl-photo{grid-column:2;grid-row:1 / span 2}.adl-crew-first .adl-main{grid-column:1;grid-row:1}.adl-crew-first .adl-actions{grid-column:1}
.adl-crew-first .adl-crew span{background:color-mix(in oklch,var(--green) 12%,#fff);border-color:color-mix(in oklch,var(--green) 25%,var(--line));color:var(--green-ink)}
.adl-player-first{background:color-mix(in oklch,var(--pk) 8%,var(--surface));grid-template-columns:180px minmax(0,1fr)}
.adl-player-first .adl-photo{border-radius:50%;min-height:180px;aspect-ratio:1;padding:14px;background:var(--ink)}
.adl-player-first .adl-photo img{border-radius:50%}
.adl-player-first .adl-play{min-width:160px;background:var(--pk);color:#fff}
.adl-player-first .adl-play::after{content:"";width:80px;height:16px;background:repeating-linear-gradient(90deg,currentColor 0 5px,transparent 5px 10px);opacity:.42;border-radius:999px}
.adl-video-strip{grid-template-columns:1fr;min-height:440px}
.adl-video-strip .adl-photo{height:190px}.adl-video-strip .adl-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr}.adl-video-strip .adl-actions a{border-radius:16px;min-height:76px}
.adl-editorial{grid-template-columns:minmax(0,1.2fr) 190px;background:var(--surface);border-radius:8px}
.adl-editorial .adl-photo{grid-column:2;grid-row:1/span 2;border-radius:4px}.adl-editorial .adl-main{grid-column:1;grid-row:1}.adl-editorial .adl-actions{grid-column:1}
.adl-editorial h2{font-size:56px}.adl-editorial .adl-label{background:transparent;padding-left:0;color:var(--pk)}
.adl-command{background:var(--bg-2);grid-template-columns:1fr}
.adl-command .adl-photo{display:none}.adl-command .adl-main{padding-left:18px;border-left:6px solid var(--pk)}
.adl-command .adl-meta b,.adl-command .adl-meta span,.adl-command .adl-crew span{background:#fff}
.adl-ticket{grid-template-columns:150px minmax(0,1fr);border-radius:22px;background:linear-gradient(135deg,color-mix(in oklch,var(--pk) 11%,#fff),#fff)}
.adl-ticket::before,.adl-ticket::after{content:"";position:absolute;top:50%;width:34px;height:34px;border-radius:50%;background:var(--bg);transform:translateY(-50%)}.adl-ticket::before{left:-17px}.adl-ticket::after{right:-17px}
.adl-ticket .adl-photo{display:grid;place-items:center;min-height:150px;background:var(--pk);color:#fff}.adl-ticket .adl-photo img{opacity:.28}.adl-ticket .adl-photo::after{content:"LIVE";position:absolute;font-family:var(--mono);font-weight:900;letter-spacing:.12em}
.adl-appsheet{grid-template-columns:1fr;max-width:460px;margin-inline:auto;border-radius:30px;padding:12px;background:#fff}
.adl-appsheet .adl-photo{height:260px;border-radius:24px}.adl-appsheet .adl-main{padding:6px 8px}.adl-appsheet h2{font-size:42px}.adl-appsheet .adl-actions{padding:0 8px 8px}
.adl-split-dark{background:var(--ink);border-color:oklch(0.30 0.03 250);color:#fff}
.adl-split-dark h2,.adl-split-dark .adl-copy{color:#fff}.adl-split-dark .adl-copy{color:rgba(255,255,255,.76)}
.adl-split-dark .adl-label,.adl-split-dark .adl-meta b,.adl-split-dark .adl-meta span,.adl-split-dark .adl-crew span,.adl-split-dark .adl-video{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14);color:#fff}
.adl-split-dark .adl-play{background:var(--cyan);color:var(--ink)}

@media(max-width:1100px){.layout-hub-grid,.adl-grid{grid-template-columns:1fr}.adl-appsheet{max-width:none}}
@media(max-width:680px){
  .layout-hub-grid{grid-template-columns:1fr}.layout-hub-card{grid-template-columns:48px minmax(0,1fr);padding:16px}.layout-hub-card em{grid-column:2}
  .adl-card,.adl-compact,.adl-crew-first,.adl-player-first,.adl-editorial,.adl-ticket{grid-template-columns:1fr;min-height:0}
  .adl-card .adl-photo,.adl-crew-first .adl-photo,.adl-editorial .adl-photo{grid-column:auto;grid-row:auto;height:220px}
  .adl-card .adl-main,.adl-crew-first .adl-main,.adl-editorial .adl-main{grid-column:auto;grid-row:auto}
  .adl-card .adl-actions,.adl-crew-first .adl-actions,.adl-editorial .adl-actions{grid-column:auto}
  .adl-video-strip .adl-actions{grid-template-columns:1fr}
}

/* ---------- Admin-kop herontwerp ---------- */
.fest-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.fest-pick{display:flex;align-items:center;gap:11px}
.fest-pick .fk-l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:700}
.fest-pick select{font-family:var(--disp);font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--ink);
  border:1px solid var(--line);border-radius:12px;padding:9px 16px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;max-width:100%}
.fest-pick select:hover{border-color:var(--slate)}
.ed-dots{display:flex;gap:6px;flex-wrap:wrap}
.ed-dots a{padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:700;font-family:var(--mono);
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);transition:.12s}
.ed-dots a:hover{border-color:var(--slate)}
.ed-dots a.aan{background:var(--ink);color:#fff;border-color:var(--ink)}
.ed-dots-lbl{align-self:center;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:800;margin-right:2px}
.ed-dots a.ed-add{padding:6px 11px;color:var(--accent);border-color:var(--accent-soft);background:var(--accent-soft);font-weight:800}
.ed-dots a.ed-add:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
/* Editie-kiezer: huidig jaar + 'Wijzig van editie'-dropdown */
.ed-pick{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.ed-huidig{font-family:var(--disp);font-weight:800;font-size:19px;letter-spacing:-.02em}
.ed-wissel{position:relative}
.ed-wissel>summary{list-style:none;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent-ink);background:var(--accent-soft);padding:7px 13px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}
.ed-wissel>summary::-webkit-details-marker{display:none}
.ed-wissel>summary::after{content:"\25BE";font-size:10px}
.ed-wissel[open]>summary{background:var(--accent);color:#fff}
.ed-wissel-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:13px;
  box-shadow:0 24px 60px -22px oklch(0.4 0.08 262/.4);padding:7px;min-width:200px;max-height:60vh;overflow:auto;display:grid;gap:3px}
.ed-wissel-kop{font-size:9.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:7px 9px 4px}
.ed-wissel-menu a{font-family:var(--mono);font-size:13px;font-weight:700;padding:8px 11px;border-radius:9px;color:var(--ink-2)}
.ed-wissel-menu a:hover{background:var(--bg-2)}
.ed-wissel-menu a.aan{background:var(--ink);color:#fff}
.ed-wissel-bewerk{font-family:var(--body)!important;font-weight:800!important;color:var(--accent-ink)!important;background:var(--accent-soft)}
.ed-wissel-add{color:var(--accent)!important;font-family:var(--body)!important;font-weight:800!important;border-top:1px solid var(--line);margin-top:3px;border-radius:0 0 9px 9px}
.admin-tabs .at-lbl{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:0 2px;align-self:center;flex:0 0 auto}
.admin-tabs .at-div{width:1px;height:22px;background:var(--line);margin:0 6px;align-self:center;flex:0 0 auto}

/* ---------- Admin + live herontwerp ---------- */
.content.admin-screen{max-width:1180px}
.content.live-screen{max-width:1440px}
.admin-page,.live-dashboard{padding-bottom:28px}
.admin-hero,.live-hero{
  display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px;
  padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--surface-2));
  box-shadow:var(--shadow-sm)
}
.admin-hero h1,.live-hero h1{font-size:36px;margin:6px 0 6px}
.admin-hero-action,.admin-primary-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:11px 15px;
  background:var(--ink);color:#fff;font-weight:800;font-size:13px;white-space:nowrap;box-shadow:var(--shadow)
}
.admin-hero-action .ic,.admin-primary-button .ic{width:17px;height:17px}
.admin-primary-button{width:100%;border:0;margin-top:14px}
.admin-message{
  display:flex;align-items:center;gap:11px;
  margin:0 0 16px;padding:13px 16px;border-radius:15px;background:var(--green-soft);color:var(--green-ink);
  font-size:14px;font-weight:800;border:1px solid color-mix(in oklch,var(--green) 28%,transparent);
  box-shadow:0 12px 30px -18px color-mix(in oklch,var(--green) 70%,transparent);
  animation:adminMsgIn .34s cubic-bezier(.2,.85,.3,1)
}
.admin-message::before{content:"✓";flex:none;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:900}
.admin-message.fade-out{opacity:0;transform:translateY(-7px);transition:opacity .42s ease,transform .42s ease}
@keyframes adminMsgIn{from{opacity:0;transform:translateY(-9px) scale(.99)}to{opacity:1;transform:none}}

.admin-context{
  display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:16px;align-items:center;
  padding:16px;border:1px solid var(--line);border-radius:17px;background:var(--surface);box-shadow:var(--shadow-sm);
  margin-bottom:12px
}
.admin-context-main{min-width:0}
.admin-context-label{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:800}
.admin-context-title{
  font-family:var(--disp);font-weight:800;font-size:23px;letter-spacing:-.03em;line-height:1.02;margin-top:5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.admin-context-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12.5px}
.admin-context-meta span{display:inline-flex;align-items:center;gap:6px}
.admin-context-meta span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.admin-live-dot{color:var(--green-ink);font-weight:800}
.admin-live-dot::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-soft);order:-1}
.fest-pick{display:flex;align-items:flex-start;flex-direction:column;gap:5px;min-width:210px}
.fest-pick label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:800}
.fest-pick select{width:100%;font-size:16px;border-radius:11px}
.ed-dots{grid-column:1 / -1}
.ed-dots a{display:inline-flex;align-items:center;gap:7px}
.ed-dots a span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:inherit;opacity:.78}
.admin-content-tabs{grid-column:1 / -1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line-2)}
.admin-content-tabs>span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-weight:900;flex:0 0 auto}
.admin-content-tabs>div{display:flex;gap:6px;flex-wrap:wrap;min-width:0}
.admin-content-tabs a{display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;border-radius:10px;background:var(--bg-2);border:1px solid var(--line);
  color:var(--ink-2);font-size:13px;font-weight:800;white-space:nowrap;box-shadow:var(--shadow-sm)}
.admin-content-tabs a:hover{border-color:var(--slate)}
.admin-content-tabs a.actief{background:var(--ink);border-color:var(--ink);color:#fff}
.admin-tabs{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:6px;margin:0;gap:4px;box-shadow:var(--shadow-sm)}
.admin-tabs a{box-shadow:none;border-color:transparent;color:var(--ink-2);font-weight:700;padding:9px 16px;border-radius:11px;transition:background .14s,color .14s}
.admin-tabs a:hover{background:var(--bg-2);color:var(--ink)}
.admin-tabs a.actief{background:var(--ink);color:#fff;box-shadow:0 7px 16px -7px oklch(0.3 0.05 262/.55)}
/* Schema: view-toggle, nette bevestig-popup en toasts (gedeeld door beide views) */
.sch-viewseg{display:inline-flex;gap:4px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:16px}
.sch-viewseg a{padding:8px 18px;border-radius:9px;font-weight:700;font-size:13.5px;color:var(--ink-2)}
.sch-viewseg a:hover{background:var(--surface)}
.sch-viewseg a.actief{background:var(--ink);color:#fff}
.sch-confirm{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:oklch(0.2 0.03 260/.5);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s}
.sch-confirm.aan{opacity:1}
.sch-confirm .sc-doos{width:min(380px,calc(100vw - 32px));background:var(--surface);border-radius:18px;box-shadow:var(--shadow-lg);padding:22px;text-align:center;transform:scale(.95);transition:transform .18s}
.sch-confirm.aan .sc-doos{transform:scale(1)}
.sc-ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin:0 auto 13px;background:oklch(0.96 0.045 25);color:var(--red);font-size:22px}
.sc-tekst{font-size:15px;font-weight:600;color:var(--ink);line-height:1.42;margin-bottom:18px}
.sc-acties{display:flex;gap:9px;justify-content:center}
.sch-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);z-index:320;display:flex;align-items:center;gap:9px;background:var(--ink);color:#fff;font-weight:700;font-size:13.5px;padding:12px 18px;border-radius:13px;box-shadow:0 16px 40px -12px rgba(0,0,0,.5);opacity:0;transition:opacity .25s,transform .25s;max-width:90vw}
.sch-toast.aan{opacity:1;transform:translate(-50%,0)}
.sch-toast>span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--green);color:#fff;font-size:12px;flex:0 0 20px}
.sch-toast.fout>span{background:var(--red)}

/* Festival-werkblad: alle items van het festival in één paneel met eigen achtergrondkleur (= één geheel) */
.fest-paneel{background:oklch(0.962 0.022 248);border:1px solid oklch(0.9 0.025 248);border-radius:22px;padding:20px 24px 26px;margin-bottom:24px}
.fest-paneel .admin-context::after{background:oklch(0.89 0.03 248)}
/* context als doorlopende kop binnen het paneel */
.admin-context{border:0;box-shadow:none;background:transparent;padding:4px 2px 0;border-radius:0;margin-bottom:34px;position:relative}
.admin-context::after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:1px;background:var(--line)}
.admin-context-label{color:var(--accent);font-weight:900}
.admin-context-title{font-size:44px;line-height:.98;margin-top:3px}
.admin-content-tabs{margin-top:14px}
/* sectietitel onder de tab-balk is overbodig (de actieve tab zegt het al) — weg op festival-pagina's */
.fest-paneel > h1.groet,
.fest-paneel > h1.fotog-titel,
.fest-paneel .studio-title{display:none!important}
.fest-paneel > p.lead{display:none}
.fest-paneel .eyebrow,.fest-paneel .studio-head .eyebrow,.fest-paneel .studio-sub{display:none!important}

.admin-metrics{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin:12px 0 16px;padding:0 2px;color:var(--muted);font-size:13px}
.admin-metrics span{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.admin-metrics b{font-family:var(--disp);font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.live-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.live-metrics.compact{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin:12px 0 16px;padding:11px 14px;border:1px solid var(--line);
  border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm)}
.live-metrics.compact span{display:inline-flex;align-items:baseline;gap:6px;color:var(--ink-2);font-size:13px;font-weight:800;white-space:nowrap}
.live-metrics.compact span+span::before{content:"";width:1px;height:20px;background:var(--line);margin:0 14px}
.live-metrics.compact b{font-family:var(--disp);font-size:22px;font-weight:900;letter-spacing:-.04em;color:var(--ink);line-height:1}
.live-metrics.compact small{color:var(--muted);font-size:12px;font-weight:700;margin-left:2px}
.admin-metric,.live-metric{
  padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);
  min-width:0
}
.admin-metric span,.live-metric span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:800}
.admin-metric b,.live-metric b{
  display:block;font-family:var(--disp);font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.admin-metric small,.live-metric small{display:block;margin-top:6px;color:var(--muted);font-size:12.5px}

.festival-admin-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}
.festival-create-card{padding:18px;position:sticky;top:18px}
.create-copy h2,.list-head h2,.panel-head h2{
  font-family:var(--disp);font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-top:4px
}
.create-copy p{color:var(--muted);font-size:13.5px;line-height:1.45;margin-top:8px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:15px}
.form-grid.compact{grid-template-columns:1.4fr .55fr 1fr 1fr 1fr;margin-top:14px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field span{font-size:11.5px;font-weight:800;color:var(--ink-2)}
.field.wide{grid-column:auto}.field.small{max-width:none}
.field .veld-in{width:100%;min-width:0}
.list-head,.panel-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px
}
.list-head>span,.panel-head>span{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:700;white-space:nowrap}
.festival-list{min-width:0}
.festival-card{padding:16px;margin-bottom:12px;border-radius:16px;box-shadow:var(--shadow-sm)}
.festival-card.is-active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft),var(--shadow-sm)}
.festival-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.festival-kicker{font-size:11px;color:var(--muted);font-family:var(--mono);font-weight:700}
.festival-card h3{
  font-family:var(--disp);font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-top:5px;overflow-wrap:anywhere
}
.festival-card h3 span{color:var(--muted);font-weight:700}
.festival-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.festival-facts span{
  display:inline-flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--line-2);
  border-radius:9px;padding:6px 9px;color:var(--muted);font-size:12px;font-weight:700
}
.festival-facts b{font-family:var(--mono);color:var(--ink-2);font-size:12px}
.festival-card-actions{display:flex;gap:8px;align-items:center;margin-top:14px}
.festival-fact-button{display:inline-flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--line-2);
  border-radius:9px;padding:6px 9px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}
.festival-fact-button:hover{border-color:var(--accent);color:var(--accent)}
.festival-fact-button b{font-family:var(--mono);color:var(--ink-2);font-size:12px}
.festival-photog-preview{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.festival-photog-tag,.festival-photog-more{display:inline-flex;align-items:center;gap:6px;max-width:190px;border-radius:999px;padding:5px 8px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font-size:11.5px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.festival-photog-tag i{width:9px;height:9px;border-radius:50%;flex:0 0 9px}
.festival-photog-more{cursor:pointer;background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.festival-photog-panel{display:none;margin-top:13px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);animation:userDetailSlide .18s ease-out}
.festival-photog-panel.open{display:block}
.festival-photog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:11px;border-bottom:1px solid var(--line-2)}
.festival-photog-head b{display:block;font-family:var(--disp);font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.festival-photog-head span{display:block;margin-top:3px;color:var(--muted);font-size:12.5px}
.festival-photog-add{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}
.festival-photog-add select{min-width:230px;max-width:100%}
.festival-photog-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.festival-photog-list em{color:var(--faint);font-size:13px;font-style:normal}
.festival-photog-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.festival-photog-chip>span{display:flex;align-items:center;gap:7px;min-width:0}
.festival-photog-chip i{width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.festival-photog-chip b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;color:var(--ink)}
.festival-photog-chip small{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.festival-photog-chip form{flex:0 0 auto}
.schema-import-card{padding:18px 20px;margin-bottom:16px}
.schema-import-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.schema-import-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--bg-2);font-size:24px;flex:0 0 42px}
.schema-import-head b{display:block;font-family:var(--disp);font-weight:800;letter-spacing:-.02em;font-size:20px}
.schema-import-head span{display:block;color:var(--muted);font-size:13px;margin-top:2px;line-height:1.35}
.schema-import-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);gap:14px;align-items:stretch}
.schema-dropzone,.schema-text-import{
  border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:13px;min-width:0
}
.schema-dropzone{display:grid;grid-template-rows:1fr auto;gap:11px}
.schema-dropzone.is-dragging{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px color-mix(in oklch,var(--accent) 14%,transparent)}
.schema-file-input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.schema-drop-label{
  min-height:154px;border:1.5px dashed var(--line);border-radius:12px;background:var(--surface);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:7px;text-align:center;padding:18px;cursor:pointer;transition:.14s
}
.schema-drop-label:hover{border-color:var(--accent)}
.schema-drop-title{font-family:var(--disp);font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.schema-drop-meta{font-size:12.5px;color:var(--muted)}
.schema-file-name{max-width:100%;margin-top:4px;padding:6px 9px;border-radius:999px;background:var(--bg-2);color:var(--ink-2);font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schema-text-import{display:flex;flex-direction:column;gap:10px}
.schema-text-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.schema-text-top b{font-family:var(--disp);font-size:18px;font-weight:800;letter-spacing:-.02em}
.schema-text-import textarea{width:100%;min-height:154px;resize:vertical;line-height:1.35;font-family:var(--mono);font-size:12.5px}
.settings-overview-grid{display:grid;grid-template-columns:1fr;gap:14px}
.settings-card{padding:16px;border-radius:16px;box-shadow:var(--shadow-sm)}
.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.settings-card h2{font-family:var(--disp);font-size:21px;font-weight:800;letter-spacing:-.03em;margin:0}
.settings-card p{margin:5px 0 0;color:var(--muted);font-size:13.5px;line-height:1.35}
.settings-list{display:grid;gap:7px}
.settings-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.75fr) auto;gap:12px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.settings-row b{display:block;font-size:13.5px;color:var(--ink)}
.settings-row span{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.settings-row code{justify-self:start;max-width:100%;padding:5px 8px;border-radius:8px;background:var(--surface);border:1px solid var(--line-2);font-family:var(--mono);font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- FAQ beheer ---------- */
.faq-admin-hero .lead{max-width:650px}
.faq-admin-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}
.faq-admin-side{position:sticky;top:18px;padding:18px;border-radius:17px;box-shadow:var(--shadow-sm)}
.faq-admin-side-head span{display:block;font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:900}
.faq-admin-side-head h2{font-family:var(--disp);font-size:23px;font-weight:900;letter-spacing:-.03em;line-height:1.05;margin-top:6px}
.faq-admin-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}
.faq-admin-stats div{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.faq-admin-stats b{display:block;font-family:var(--disp);font-size:28px;font-weight:900;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.faq-admin-stats span{display:block;margin-top:5px;color:var(--muted);font-size:12px;font-weight:800}
.faq-create-form{display:grid;gap:10px;padding-top:14px;border-top:1px solid var(--line-2)}
.faq-create-form .field{gap:5px}
.faq-admin-list{display:grid;gap:14px;min-width:0}
.faq-empty-state{padding:28px 20px;text-align:center;color:var(--muted);font-weight:800;border-style:dashed;background:var(--surface-2)}
.faq-admin-chapter{padding:0;overflow:hidden;border-radius:17px;box-shadow:var(--shadow-sm)}
.faq-chapter-head{
  display:grid;grid-template-columns:54px minmax(0,1fr) 74px auto;gap:11px;align-items:end;
  padding:14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--surface-2))
}
.faq-icon-field{text-align:center;font-size:20px;font-weight:900;height:42px}
.faq-title-field,.faq-order-field,.faq-question-main label{display:flex;flex-direction:column;gap:5px;min-width:0}
.faq-title-field span,.faq-order-field span,.faq-question-main span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:900}
.faq-title-field input{font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:-.03em}
.faq-order-field input{text-align:center;font-family:var(--mono);font-weight:900}
.faq-chapter-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.faq-count-pill{display:inline-flex;align-items:center;height:31px;border-radius:999px;padding:0 10px;background:var(--accent-soft);color:var(--accent-ink);font-size:11.5px;font-weight:900;white-space:nowrap}
.faq-question-list{display:grid;gap:8px;padding:12px 14px 0}
.faq-question-empty{padding:14px;border:1px dashed var(--line-2);border-radius:13px;background:var(--surface-2);color:var(--muted);font-size:13px;font-weight:800}
.faq-question-card{
  display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:start;
  padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface)
}
.faq-question-main{display:grid;gap:8px;min-width:0}
textarea.veld-in{border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:13px;font-family:inherit;background:var(--surface);color:var(--ink);outline:none}
textarea.veld-in:focus{border-color:var(--accent)}
.faq-question-main textarea{min-height:84px;resize:vertical;line-height:1.42}
.faq-question-actions{display:flex;flex-direction:column;gap:6px}
.faq-question-new{
  display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:start;
  margin:12px 14px 14px;padding:12px;border:1px dashed var(--line);border-radius:14px;background:var(--surface-2)
}
.faq-question-new>div{display:grid;gap:8px;min-width:0}
.faq-question-new textarea{min-height:64px;resize:vertical}
.faq-new-order{text-align:center;font-family:var(--mono);font-weight:900}

@media(max-width:1180px){
  .faq-admin-layout{grid-template-columns:1fr}
  .faq-admin-side{position:static}
  .faq-create-form{grid-template-columns:80px minmax(0,1fr) 110px;align-items:end}
  .faq-create-form .admin-primary-button{grid-column:1 / -1}
}

.user-detail-row{display:none}
.user-detail-row.open{display:table-row}
.user-detail-row td{padding:0 14px 14px!important;background:var(--bg)}
.user-detail-panel{overflow:hidden;margin-top:-2px;padding:14px 4px 8px;border:0;border-top:1px solid var(--line-2);border-radius:0;background:none;box-shadow:none;animation:userDetailSlide .18s ease-out}
/* Detail-paneel: grote ronde foto + naam + rol-tags */
.ud-top{display:flex;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line-2)}
.ud-foto{position:relative;width:72px;height:72px;flex:0 0 72px;border-radius:50%;cursor:pointer;overflow:hidden;display:block}
.ud-foto-vlak{position:absolute;inset:0;border-radius:50%;background-position:center;background-size:cover;background-repeat:no-repeat;display:grid;place-items:center;color:#fff;font-family:var(--disp);font-weight:800;font-size:24px}
.ud-foto-overlay{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:rgba(12,18,28,.55);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;opacity:0;transition:opacity .15s}
.ud-foto:hover .ud-foto-overlay{opacity:1}
.ud-id{min-width:0;display:flex;flex-direction:column;gap:5px}
.ud-id b{font-family:var(--disp);font-size:19px;letter-spacing:-.02em;line-height:1}
.ud-id>span{color:var(--muted);font-size:13px}
.ud-rollen{display:flex;gap:6px;margin-top:3px}
.ud-rol{border:1px solid var(--line-2);background:var(--surface);color:var(--muted);cursor:pointer;font-family:inherit;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:7px;padding:5px 11px;transition:.12s}
.ud-rol:hover:not(:disabled):not(.aan){border-color:var(--slate);color:var(--ink)}
.ud-rol.aan{border-color:transparent;cursor:default}
.ud-rol:disabled{cursor:default}
.ud-grid3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.user-aanmeld{margin:12px 0 4px;padding:12px 0;border-top:1px solid var(--line-2)}
.user-aanmeld .ua-rij{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.user-aanmeld .ua-hint{font-size:12px;color:var(--muted)}
.user-aanmeld .ua-uit{display:flex;gap:8px;margin-top:9px}
.user-aanmeld .ua-uit[hidden]{display:none}
.user-aanmeld .ua-link{flex:1;min-width:0;font-family:var(--mono);font-size:12px;color:var(--accent-ink)}
.user-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.user-detail-head b{display:block;font-family:var(--disp);font-size:17px;letter-spacing:-.02em}
.user-detail-head span{display:block;color:var(--muted);font-size:13px}
.user-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}
.user-detail-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.user-detail-grid span,.user-detail-festivals>span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.user-detail-grid b{display:flex;align-items:center;gap:7px;min-width:0;color:var(--ink);font-size:13.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.user-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--surface)}
.user-detail-festivals{margin-top:12px;padding:12px;border:1px dashed var(--line-2);border-radius:12px;background:var(--surface-2)}
.user-detail-festivals>div{display:flex;gap:6px;flex-wrap:wrap}
.user-detail-festivals em{color:var(--faint);font-size:13px;font-style:normal}
.user-admin-card{padding:0;overflow:hidden}
.user-admin-card .admin-scroll{overflow-x:visible}
.user-admin-table{table-layout:fixed}
.user-admin-table th:nth-child(1){width:38%}
.user-admin-table th:nth-child(2){width:150px}
.user-admin-table th:nth-child(3){width:170px}
.user-admin-table th:nth-child(4){width:100px}
.user-admin-table th:nth-child(5){width:250px}
.user-main-cell{display:flex;align-items:center;gap:10px;min-width:0}
.user-main-text{display:block;min-width:0}
.user-main-text b{display:block;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-main-text b em{color:var(--faint);font-style:normal;font-weight:500}
.user-main-text small{display:block;margin-top:2px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-access-summary{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid var(--line);border-radius:999px;background:var(--surface);padding:6px 10px;cursor:pointer;color:var(--ink-2);box-shadow:var(--shadow-sm)}
.user-access-summary:hover{border-color:var(--accent);color:var(--accent)}
.user-access-summary b{min-width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--mono);font-size:12px;font-weight:900}
.user-access-summary span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-weight:800}
.user-festival-editor{border-style:solid}
.user-festival-head{display:flex!important;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.user-festival-head>div{min-width:220px}
.user-festival-head p{margin:3px 0 0;color:var(--muted);font-size:12.5px;line-height:1.35}
.user-festival-add{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}
.user-festival-add select{min-width:230px;max-width:100%}
.user-festival-list{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px!important}
.user-festival-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.user-festival-chip.actief{border-color:var(--green);background:var(--green-soft)}
.user-festival-chip div{min-width:0}
.user-festival-chip b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:13px}
.user-festival-chip small{display:block;margin-top:2px;color:var(--muted);font-size:12px}
.user-festival-chip form{flex:0 0 auto}
@keyframes userDetailSlide{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

.live-hero{align-items:center}
.live-signal{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:oklch(0.96 0.035 25);
  color:var(--red);font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:900
}
.live-signal i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 oklch(0.62 0.22 25/.45);animation:puls 2s infinite}
.live-clock{
  min-width:154px;padding:14px 16px;border-radius:16px;background:var(--ink);color:#fff;text-align:right;box-shadow:var(--shadow)
}
.live-clock span{display:block;font-family:var(--mono);font-size:32px;font-weight:800;letter-spacing:-.04em;line-height:1}
.live-clock small{display:block;color:oklch(0.82 0.02 256);font-size:11.5px;margin-top:5px}
.live-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:16px;align-items:start}
.live-combined-panel{min-width:0}
.live-combined-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px;align-items:start}
.live-subhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--line-2)}
.live-subhead span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:900}
.live-subhead b{font-family:var(--mono);min-width:24px;height:22px;border-radius:999px;display:grid;place-items:center;background:var(--bg-2);color:var(--ink-2);font-size:12px}
.live-side-stack{display:flex;flex-direction:column;gap:16px}
.live-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.live-panel{padding:17px;border-radius:16px;box-shadow:var(--shadow-sm)}
.panel-head.compact{margin-bottom:10px}
.live-empty{padding:28px 16px;border:1px dashed var(--line-2);border-radius:13px;background:var(--surface-2);color:var(--muted);font-weight:700;text-align:center}
.live-empty.small{padding:18px 12px;font-size:13px;line-height:1.35}
.live-now-list{display:grid;gap:12px}
.live-now-card{
  padding:15px;border:1px solid var(--line);border-left:5px solid var(--pk);border-radius:14px;background:var(--surface-2);
  overflow:hidden
}
.live-now-card{box-shadow:0 0 0 3px oklch(0.62 0.22 25/.08),var(--shadow-sm)}
.live-now-card::before{content:"LIVE";display:inline-flex;margin-bottom:7px;padding:3px 7px;border-radius:999px;background:var(--red);color:#fff;
  font-family:var(--mono);font-size:9px;font-weight:900;letter-spacing:.08em;animation:nuPulse 1.4s ease-in-out infinite}
.lnc-top,.lnc-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}
.stage-name{display:flex;align-items:center;gap:7px;min-width:0;color:var(--ink-2);font-size:12px;font-weight:900}
.stage-name i,.attention-row>i,.next-row>i,.coverage-row span i{width:9px;height:9px;border-radius:50%;flex:0 0 9px}
.time-chip{font-family:var(--mono);font-size:11.5px;color:var(--muted);font-weight:800;white-space:nowrap}
.live-now-card h3{font-family:var(--disp);font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1.03;margin:9px 0;overflow-wrap:anywhere}
.live-progress{height:7px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:11px}
.live-progress i{display:block;width:var(--pct);height:100%;background:linear-gradient(90deg,var(--pk),var(--accent));border-radius:inherit}
.crew-line{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:13px;font-weight:700}
.live-crew-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;overflow:visible;white-space:normal}
.live-crew-tags.small{margin-top:6px}
.live-photog-tag,.live-empty-tag{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;background:#fff;border:1px solid var(--line);
  color:var(--ink-2);font-size:11.5px;font-weight:900;box-shadow:var(--shadow-sm)}
.live-empty-tag{color:var(--muted);background:var(--surface-2)}
.status-pill{
  flex:0 0 auto;border-radius:999px;padding:5px 9px;background:var(--warm-soft);color:var(--warm-ink);
  font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.05em
}
.status-pill.ok{background:var(--green-soft);color:var(--green-ink)}
.status-pill.warn{background:oklch(0.96 0.035 25);color:var(--red)}
.attention-list,.next-list,.coverage-list,.team-list{display:flex;flex-direction:column}
.attention-row,.next-row,.coverage-row,.team-row{
  display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--line-2);min-width:0
}
.attention-row:first-child,.next-row:first-child,.coverage-row:first-child,.team-row:first-child{border-top:0}
.attention-row span,.next-row span{min-width:0;flex:1}
.attention-row b,.next-row b{display:block;font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attention-row small,.next-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-row time{font-family:var(--mono);font-weight:900;color:var(--ink-2);font-size:12px;width:42px;flex:0 0 42px}
.coverage-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.85fr);gap:14px}
.coverage-row>div:first-child{min-width:0}
.coverage-row span{display:flex;align-items:center;gap:8px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.coverage-row small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.coverage-bar{height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.coverage-bar i{display:block;height:100%;background:var(--green);border-radius:inherit}
.team-row{justify-content:space-between}
.team-row span{font-weight:800;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-row b{font-family:var(--mono);background:var(--accent-soft);color:var(--accent-ink);min-width:28px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:12px}

/* ---------- Live opvolging: twee kolommen ---------- */
.live-screen{background:oklch(0.955 0.018 245)}
.live-dashboard{padding:4px 0 30px}
.live-clean-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}
.live-clean-head h1{font-family:var(--disp);font-size:42px;line-height:.95;font-weight:900;letter-spacing:-.045em;margin:10px 0 7px;color:var(--ink)}
.live-clean-head p{color:var(--muted);font-size:14px;font-weight:800}
.live-head-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.live-head-stats span{display:inline-flex;align-items:baseline;gap:6px;padding:9px 12px;border-radius:13px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);font-size:12px;font-weight:900;color:var(--ink-2)}
.live-head-stats b{font-family:var(--disp);font-size:23px;line-height:.9;color:var(--ink)}
.live-board{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr);gap:28px;align-items:start}
.live-section-title{display:flex;align-items:baseline;gap:14px;margin:0 0 18px}
.live-section-title h2{font-family:var(--disp);font-size:31px;line-height:1;font-weight:900;letter-spacing:-.04em;color:var(--ink)}
.live-section-title>span{font-family:var(--mono);font-size:18px;font-weight:800;color:var(--faint)}
.live-section-title.small{margin-top:24px;margin-bottom:10px}
.live-section-title.small h2{font-size:21px}
.live-current-list{display:grid;gap:18px}
.live-current-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:132px;padding:27px 30px 24px;border-radius:22px;background:#fff;border:1px solid oklch(0.86 0.025 245);box-shadow:0 2px 7px rgba(20,31,48,.06);overflow:hidden}
.live-current-card::before{content:"";position:absolute;left:0;top:25px;bottom:25px;width:5px;background:var(--pk)}
.live-current-main{min-width:0;flex:1}
.live-current-title{display:flex;align-items:center;gap:12px;min-width:0}
.live-current-title h3{font-family:var(--disp);font-size:25px;line-height:1.05;font-weight:900;letter-spacing:-.025em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live-current-title span{flex:0 0 auto;padding:6px 12px;border-radius:10px;background:oklch(0.92 0.055 65);color:oklch(0.42 0.12 45);font-family:var(--mono);font-size:12px;font-weight:900;letter-spacing:.07em}
.live-current-card.is-live .live-current-title span{background:oklch(0.95 0.055 25);color:var(--red);animation:nuPulse 1.4s ease-in-out infinite}
.live-current-card.is-soon{box-shadow:0 2px 7px rgba(20,31,48,.06), inset 0 0 0 999px rgba(255,255,255,.22)}
.live-current-meta{display:flex;align-items:center;gap:9px;margin-top:12px;color:var(--muted);font-family:var(--mono);font-size:18px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.live-current-meta i{width:12px;height:12px;border-radius:4px;flex:0 0 12px}
.live-current-card .live-progress{height:8px;margin:18px 76px 0 0;background:oklch(0.92 0.015 245)}
.live-current-card .live-progress i{background:var(--pk)}
.live-current-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;flex-wrap:wrap}
.live-avatar-stack{display:flex;align-items:center;justify-content:flex-end;min-width:74px;margin-left:auto}
.live-avatar{width:52px;height:52px;margin-left:-10px;border-radius:50%;display:grid;place-items:center;background:var(--pk);color:#fff;border:4px solid #fff;box-shadow:0 6px 18px rgba(20,31,48,.16);font-family:var(--mono);font-size:17px;font-weight:900}
.live-avatar:first-child{margin-left:0}
.live-avatar.muted{background:var(--faint)}
.live-avatar.more{background:var(--ink);font-size:14px}
.live-update-timeline{position:relative;display:grid;gap:0;padding-top:2px}
.live-update-item{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;min-height:82px}
.live-update-item::before{content:"";position:absolute;left:31px;top:58px;bottom:-20px;width:3px;background:oklch(0.84 0.025 245)}
.live-update-item:last-child::before{display:none}
.live-update-dot{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;border:5px solid oklch(0.955 0.018 245);box-shadow:0 3px 10px rgba(20,31,48,.08);font-family:var(--mono);font-size:16px;font-weight:900}
.live-update-item.photo .live-update-dot{background:var(--green)}
.live-update-item.edit .live-update-dot{background:var(--warm)}
.live-update-item.live .live-update-dot{background:var(--red)}
.live-update-item.org .live-update-dot{background:oklch(0.76 0.12 255);color:var(--accent-ink)}
.live-update-item p{margin:9px 0 5px;color:var(--ink-2);font-size:23px;line-height:1.28;letter-spacing:-.02em}
.live-update-item p b,.live-update-item p strong{color:var(--ink);font-weight:900}
.live-update-item small{font-family:var(--mono);font-size:14px;color:var(--faint);font-weight:800;letter-spacing:.04em}
.live-update-item.nieuw{animation:liveUpdateIn 1.6s ease}
@keyframes liveUpdateIn{0%{opacity:0;transform:translateY(-10px)}18%{opacity:1;transform:translateY(0);background:oklch(0.98 0.035 95)}100%{background:transparent}}
.live-next-strip{margin-top:4px}
.live-empty.big{min-height:132px;display:grid;place-items:center;border-radius:22px;background:#fff}

@media(max-width:980px){
  .festival-admin-grid,.live-main-grid,.live-bottom-grid,.live-combined-grid,.live-board,.faq-admin-layout{grid-template-columns:1fr}
  .festival-create-card,.faq-admin-side{position:static}
  .form-grid.compact{grid-template-columns:1fr 1fr}
  .live-metrics{grid-template-columns:repeat(2,1fr)}
  .live-clean-head{align-items:flex-start;flex-direction:column}
  .live-head-stats{justify-content:flex-start}
  .user-admin-card .admin-scroll{overflow-x:auto}
  .user-admin-table{min-width:860px}
}
@media(max-width:680px){
  .admin-hero,.live-hero{align-items:flex-start;flex-direction:column;padding:18px}
  .admin-hero-action,.live-clock{width:100%;text-align:left}
  .admin-context{grid-template-columns:1fr}
  .fest-pick{width:100%}
  .form-grid,.form-grid.compact{grid-template-columns:1fr}
  .live-metrics{grid-template-columns:1fr}
  .live-metrics.compact{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .live-metrics.compact span+span::before{display:none}
  .live-clean-head h1{font-size:34px}
  .live-head-stats{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .live-head-stats span{justify-content:space-between}
  .live-current-card{align-items:flex-start;flex-direction:column;padding:22px 20px 20px}
  .live-current-title{align-items:flex-start;flex-direction:column;gap:8px}
  .live-current-title h3{white-space:normal}
  .live-current-meta{font-size:14px}
  .live-current-card .live-progress{margin-right:0}
  .live-avatar-stack{align-self:flex-end;margin-top:-58px}
  .live-update-item{grid-template-columns:54px minmax(0,1fr);gap:12px}
  .live-update-dot{width:48px;height:48px;font-size:13px}
  .live-update-item::before{left:27px}
  .live-update-item p{font-size:18px}
  .admin-tabs{border-radius:13px}
  .admin-tabs .at-lbl,.admin-tabs .at-div{display:none}
  .festival-card-top{flex-direction:column}
  .festival-card-top .mini-knop,.festival-card-top .tag{align-self:flex-start}
  .festival-card-actions{flex-wrap:wrap}
  .festival-photog-add{width:100%;margin-left:0}
  .festival-photog-add select,.festival-photog-add button{width:100%}
  .festival-photog-list{grid-template-columns:1fr}
  .schema-import-grid{grid-template-columns:1fr}
  .schema-import-head{align-items:flex-start}
  .schema-text-top{align-items:flex-start;flex-direction:column}
  .schema-text-top .veld-sel{width:100%}
  .settings-row{grid-template-columns:1fr}
  .settings-row code{white-space:normal;overflow-wrap:anywhere}
  .admin-notify-grid{grid-template-columns:1fr}
  .notify-preview-card{position:static}
  .notify-split{grid-template-columns:1fr}
  .notify-admin-row{grid-template-columns:1fr}
  .notify-admin-tags{justify-content:flex-start}
  .faq-chapter-head,.faq-question-card,.faq-question-new{grid-template-columns:1fr}
  .faq-icon-field,.faq-new-order,.faq-order-field input{text-align:left}
  .faq-chapter-actions,.faq-question-actions{justify-content:flex-start;flex-direction:row;flex-wrap:wrap}
  .user-detail-grid{grid-template-columns:1fr}
  .user-festival-add{width:100%;margin-left:0}
  .user-festival-add select,.user-festival-add button{width:100%}
  .user-festival-list{grid-template-columns:1fr}
  .coverage-row{grid-template-columns:1fr}
}

/* ---------- Weer-tijdlijn (Vandaag) ---------- */
.weer-tl{display:flex;align-items:stretch;gap:14px;margin-top:16px;flex-wrap:wrap}
.wt-nu{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 16px;box-shadow:var(--shadow-sm);flex:0 0 auto}
.wt-nu .wt-em{font-size:26px}
.wt-nu b{font-family:var(--disp);font-weight:800;font-size:24px;letter-spacing:-.03em;display:block;line-height:1}
.wt-nu div span{font-size:12px;color:var(--muted)}
.wt-uren{display:flex;gap:5px;overflow-x:auto;flex:1;min-width:0;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.wt-u{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 0;border-radius:12px;background:var(--surface);
  border:1px solid var(--line-2);min-width:56px;flex:0 0 auto}
.wt-u .wt-h{font-family:var(--mono);font-size:10.5px;color:var(--faint);font-weight:600}
.wt-u .wt-em{font-size:18px}
.wt-u .wt-t{font-family:var(--disp);font-weight:800;font-size:15px;letter-spacing:-.02em}

/* ---------- Mobiel opnieuw opgebouwd ---------- */
.mob-schema-list,.mob-schedule-app,.mob-filter-backdrop,.mob-filter-sheet,.botmore-backdrop,.botmore-sheet,.org-modus-balk{display:none}
@media(max-width:860px){
  html,body{background:#faf9f1}
  /* Geen rubberband/pull-to-refresh op de pagina → de vaste onderbalk blijft stabiel
     onderaan plakken (verspringt niet meer bij scrollen of overscrollen). */
  /* overflow-x:hidden op <html> maakt op iOS de root tot scroll-container, waardoor de
     position:fixed onderbalk meescrollt en 'tot halverwege het scherm' verspringt.
     overflow-x:clip voorkomt horizontaal scrollen ZONDER een scroll-container te maken,
     dus de onderbalk blijft netjes onderaan vastgepind. */
  html{overflow-x:hidden;overflow-x:clip}
  body{overflow-x:hidden;overflow-x:clip;overscroll-behavior-y:none}
  .app,.main{background:transparent}
  .main{padding-bottom:0}
  /* genoeg ruimte onderaan zodat het laatste item niet onder de drijvende onderbalk verdwijnt */
  .content{padding:calc(18px + env(safe-area-inset-top)) 16px calc(110px + env(safe-area-inset-bottom))}

  .botnav{
    display:grid!important;grid-template-columns:1fr 1.18fr .95fr .9fr .78fr;gap:4px;align-items:stretch;position:fixed;left:10px;right:10px;bottom:7px;z-index:66;min-height:54px;
    background:color-mix(in oklch,var(--surface) 88%,transparent);border:1px solid color-mix(in oklch,var(--cyan) 18%,var(--line));
    border-radius:18px;padding:5px calc(4px + env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left));
    box-shadow:0 22px 58px -28px oklch(0.20 0.05 260/.56);backdrop-filter:blur(18px) saturate(1.35);overflow:visible
  }
  .botnav a{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:44px;color:var(--muted);
    font-size:9.5px;font-weight:900;line-height:1.05;position:relative;border:1px solid var(--line);border-radius:13px;padding:5px 2px 4px;
    background:#fff;box-shadow:0 12px 24px -23px var(--ink);transition:background .14s,color .14s,transform .14s,border-color .14s;overflow:visible
  }
  .botnav a::before,.botnav a::after{pointer-events:none}
  .botnav a .ic{width:19px;height:19px;color:currentColor;stroke-width:2.1}
  .botnav a span:not(.lijst-tel){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .botnav a.actief{background:var(--cyan-soft);border-color:color-mix(in oklch,var(--cyan) 58%,var(--line));color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--cyan) 34%,transparent),0 14px 26px -22px var(--cyan)}
  .botnav a.meer-open{background:var(--green-soft);border-color:color-mix(in oklch,var(--green) 52%,var(--line));color:var(--green-ink)}
  .botnav a.botnav-today::before,.botnav a.botnav-today::after{content:"";position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:color-mix(in oklch,var(--surface) 88%,transparent);border:1px solid var(--line);transform:translateY(-50%);z-index:2}
  .botnav a.botnav-today::before{left:-7px}
  .botnav a.botnav-today::after{right:-7px}
  .botnav a.botnav-today.actief::before,.botnav a.botnav-today.actief::after{border-color:color-mix(in oklch,var(--cyan) 58%,var(--line))}
  .botnav a.botnav-main{font-weight:950;border-style:dashed;border-color:color-mix(in oklch,var(--green) 40%,var(--line));background:var(--green-soft);color:var(--green-ink);transform:translateY(-4px);min-height:62px}
  .botnav a.botnav-main::before{content:"";position:absolute;top:5px;left:50%;width:8px;height:8px;border-radius:50%;background:color-mix(in oklch,var(--surface) 88%,transparent);box-shadow:0 0 0 1px color-mix(in oklch,var(--green) 42%,var(--line));transform:translateX(-50%)}
  .botnav a.botnav-main.actief{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 18px 28px -22px var(--green)}
  .botnav a.botnav-main.actief::before{background:color-mix(in oklch,var(--green) 78%,#fff);box-shadow:0 0 0 1px rgba(255,255,255,.58)}
  .botnav a.botnav-schema::before{content:"";position:absolute;top:5px;left:50%;width:7px;height:7px;border-radius:50%;background:color-mix(in oklch,var(--surface) 88%,transparent);box-shadow:0 0 0 1px var(--line);transform:translateX(-50%)}
  .botnav a.botnav-schema.actief{background:var(--warm-soft);border-color:color-mix(in oklch,var(--warm) 58%,var(--line));color:var(--warm-ink)}
  .botnav a.botnav-map{border-radius:15px;background:var(--surface-2)}
  .botnav a.botnav-map::before{content:"";position:absolute;left:10px;right:10px;top:7px;height:1px;border-top:1px dashed color-mix(in oklch,var(--cyan) 52%,var(--line))}
  .botnav a.botnav-map.actief{background:var(--cyan-soft);border-color:color-mix(in oklch,var(--cyan) 58%,var(--line));color:var(--ink)}
  .botnav a.botnav-more{--tag-border:var(--line);margin-right:5px;border-color:var(--tag-border);border-radius:13px 18px 18px 13px}
  .botnav a.botnav-more::after{content:"";position:absolute;right:-7px;top:50%;width:16px;height:16px;background:inherit;border-top:1px solid var(--tag-border);border-right:1px solid var(--tag-border);border-radius:3px;transform:translateY(-50%) rotate(45deg)}
  .botnav a.botnav-more.actief,.botnav a.botnav-more.meer-open{--tag-border:color-mix(in oklch,var(--green) 52%,var(--line));background:var(--green-soft);color:var(--green-ink)}
  .botnav a:active{transform:translateY(1px) scale(.98)}
  .botnav a.botnav-main:active{transform:translateY(-3px) scale(.98)}
  .botnav .lijst-tel{
    position:absolute!important;top:-8px!important;right:5px!important;margin:0!important;
    display:inline-grid!important;grid-auto-flow:column;gap:2px;padding:3px;border:1px solid color-mix(in oklch,var(--green) 22%,var(--line));
    border-radius:999px;background:color-mix(in oklch,var(--surface) 92%,transparent);box-shadow:0 8px 18px -12px var(--ink);backdrop-filter:blur(10px)
  }
  .botnav .lijst-tel span{
    min-width:24px;height:24px;border-radius:999px;padding:0 7px;font-family:var(--mono);font-size:13px;font-weight:900;line-height:1;
    display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:none
  }
  .botnav .lijst-tel .lt-done{background:var(--fs-veel)}
  .botnav .lijst-tel .lt-todo{background:var(--cyan)}
  .botnav a.actief .lijst-tel{background:rgba(255,255,255,.96);border-color:rgba(255,255,255,.46)}
  .botnav{
    grid-template-columns:1fr 1.38fr 1fr .9fr .82fr;
    left:12px;right:12px;bottom:calc(8px + env(safe-area-inset-bottom));min-height:82px;gap:2px;
    border-radius:999px;padding:8px calc(8px + env(safe-area-inset-right)) 8px calc(8px + env(safe-area-inset-left));
    background:rgba(255,255,245,.72);
    border-color:rgba(255,255,255,.74);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92),inset 0 -1px 0 rgba(246,244,229,.72),0 22px 58px -32px rgba(32,34,28,.46);
    backdrop-filter:blur(23px) saturate(1.25)
  }
  .botnav a{
    min-height:66px;border:0;border-radius:999px;background:transparent;box-shadow:none;color:#151511;
    font-size:13px;font-weight:950;padding:8px 2px 7px;transform:none;letter-spacing:-.01em
  }
  .botnav a .ic{width:31px;height:31px;stroke-width:2.65}
  .botnav a.botnav-today::before,.botnav a.botnav-today::after,.botnav a.botnav-main::before,.botnav a.botnav-schema::before,.botnav a.botnav-map::before,.botnav a.botnav-more::after{display:none;content:none}
  .botnav a.botnav-main,.botnav a.botnav-map,.botnav a.botnav-more{border:0;background:transparent;color:#151511;transform:none;border-radius:999px}
  .botnav a.actief,.botnav a.botnav-main.actief,.botnav a.botnav-schema.actief,.botnav a.botnav-map.actief,.botnav a.botnav-more.actief,.botnav a.botnav-more.meer-open{
    background:rgba(222,235,220,.78);
    color:#087653;
    border:0;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.74),inset 0 -12px 28px rgba(215,224,210,.66),0 10px 28px -20px rgba(17,86,62,.68)
  }
  .botnav a.botnav-my.actief{background:rgba(222,235,220,.78);color:#087653;box-shadow:inset 0 1px 0 rgba(255,255,255,.74),inset 0 -12px 28px rgba(215,224,210,.66),0 10px 28px -20px rgba(17,86,62,.68)}
  .botnav a:active,.botnav a.botnav-main:active{transform:scale(.985)}
  .botnav .lijst-tel{top:-13px!important;right:3px!important;background:rgba(255,255,248,.95);border-color:rgba(255,255,255,.8)}
  .botmore-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:67;background:oklch(0.20 0.025 260/.24);backdrop-filter:blur(2px)}
  .botmore-sheet:not([hidden]){
    display:block;position:fixed;left:10px;right:10px;bottom:calc(98px + env(safe-area-inset-bottom));z-index:68;
    max-height:calc(100dvh - 130px - env(safe-area-inset-top));overflow-y:auto;-webkit-overflow-scrolling:touch;
    border:1px solid color-mix(in oklch,var(--cyan) 18%,var(--line));border-radius:24px;background:var(--surface);
    padding:14px;box-shadow:0 28px 72px -28px oklch(0.20 0.05 260/.56);
    animation:botmoreUp .3s cubic-bezier(.2,.85,.22,1);transform-origin:bottom center
  }
  @keyframes botmoreUp{from{transform:translateY(112%);opacity:.6}to{transform:translateY(0);opacity:1}}
  /* input op 16px → iOS zoomt niet meer in bij focus */
  .botmore-search input,.nav-search input{font-size:16px}
  body.bottom-nav-off .botmore-sheet:not([hidden]){bottom:calc(12px + env(safe-area-inset-bottom))}
  .botmore-head{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:9px;min-height:58px;margin-bottom:10px}
  .botmore-head b{font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.035em;color:var(--ink)}
  .botmore-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;height:56px;width:auto;pointer-events:none}
  .botmore-head-acts{display:flex;align-items:center;gap:9px}
  .botmore-profiel{display:block;text-decoration:none}
  .bp-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:#fff;font-weight:800;font-size:13px;
    box-shadow:0 0 0 2px #fff,0 3px 9px -3px rgba(20,24,40,.4)}
  /* rij van 3 (Vragen/Checklist/Feedback): icoon boven, label eronder */
  .botmore-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}
  .botmore-grid-3 a{flex-direction:column;justify-content:center;gap:7px;min-height:auto;padding:13px 6px;text-align:center}
  .botmore-grid-3 a b{font-size:13px;line-height:1.1}
  .botmore-head button{width:36px;height:36px;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--muted);font-size:24px;line-height:1}
  .botmore-submenus{display:grid;gap:13px}
  .botmore-group{display:grid;gap:8px}
  .botmore-group>span{font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
  .botmore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .botmore-grid a{display:flex;align-items:center;gap:12px;min-height:68px;padding:13px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--ink-2)}
  .botmore-grid a .ic{width:24px;height:24px;color:var(--green-ink);flex:0 0 24px}
  .botmore-grid a span{min-width:0}
  .botmore-grid a b{display:block;font-size:16.5px;font-weight:950;line-height:1.05;color:var(--ink)}
  .botmore-grid a small{display:block;margin-top:3px;font-size:11.5px;font-weight:800;color:var(--muted)}
  .botmore-grid a.actief{background:var(--cyan-soft);border-color:var(--cyan)}
  body.bottom-nav-off .botnav{display:none!important}
  body:not(.bottom-nav-off) .content{padding-bottom:calc(122px + env(safe-area-inset-bottom))}
  .site-notif-stack{left:10px;right:10px;top:calc(env(safe-area-inset-top) + 8px);bottom:auto;max-width:none}
  .site-notif{border-radius:18px;padding:12px 13px}
  .site-notif-copy b{font-size:16px}
  .site-notif-list,.site-notif-actions{margin-left:0}

  h1.groet{font-size:36px;letter-spacing:-.035em;line-height:.94}
  .lead{font-size:17px;line-height:1.45}
  .sectiekop{margin:26px 0 12px}
  .sectiekop h2{font-size:25px}

  .nu-hero{padding:22px;border-radius:20px;margin-top:14px!important}
  .nu-hero .eyebrow{font-size:11px;letter-spacing:.12em}
  .nu-hero h3{font-size:36px;line-height:.96;margin-top:10px;overflow-wrap:anywhere}
  .nu-hero .meta{font-size:15px;line-height:1.35}
  .nu-hero .grootcd{font-size:50px;margin-top:16px;gap:18px}
  .nu-hero .grootcd .cd-label{font-family:var(--body);font-size:.72em;font-weight:900;color:#fff;letter-spacing:-.03em}

  .tijdlijn{gap:12px}
  .rij{
    display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px 15px;align-items:start;
    padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)
  }
  .rij:hover{background:var(--surface)}
  .rij.nu{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-sm)}
  .rij .tijd{grid-column:1 / -1;grid-row:1;text-align:left;flex:auto;display:flex;align-items:baseline;gap:10px}
  .rij .tijd .u{font-size:22px;font-weight:900;line-height:1}
  .rij .tijd .s{font-size:11px;letter-spacing:0;text-transform:none;line-height:1.2;margin-top:5px;color:var(--muted);font-weight:800}
  .rij .spoor{display:none}
  .rij .rij-foto{grid-column:1;grid-row:2;width:88px;height:112px;border-radius:16px;flex:auto;align-self:stretch;background-size:cover}
  .rij .body{grid-column:2;grid-row:2;min-width:0}
  .rij .body .ttl{align-items:flex-start;flex-direction:column;gap:8px}
  .rij .body .ttl b{font-size:31px;line-height:.94;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .rij .body .sub{font-size:14px;line-height:1.35;margin-top:8px}
  .rij .tag{font-size:11px;line-height:1.1;max-width:100%;white-space:normal}
  .rij .fs-chip{grid-column:2;grid-row:3;justify-self:start;padding:8px 12px;border-radius:12px;font-size:13px}
  .rij .fs-chip .fc-ic{width:20px;height:20px}
  /* live concert: gefotografeerd-status groter & duidelijker zodat je 'm makkelijk aantikt */
  .rij.nu .fs-chip{padding:12px 18px;font-size:15px;font-weight:900;border-radius:14px;gap:9px}
  .rij.nu .fs-chip .fc-ic{width:26px;height:26px}
  .rij.nu .fs-chip.st-markeer{border:2px solid var(--fs-veel);color:var(--fs-veel);background:var(--green-soft)}
  .rij .rij-x{grid-column:1;grid-row:3;width:38px;height:38px;border-radius:12px;font-size:22px}

  .content.vol{display:block;max-width:none;min-height:auto;overflow:visible;padding:18px 0 34px}
  .app:has(.content.vol),.main:has(.content.vol){height:auto;overflow:visible}
  .content.vol .sch-kop,.content.vol>.dagen{flex:initial}
  .sch-kop{display:block;padding:0 16px 12px}
  .sch-kop h1.groet{font-size:38px!important;line-height:.94!important}
  .sch-kop .lead{font-size:15px!important;margin-top:8px!important}
  .sch-bar{margin-top:14px}
  .sch-bar #sch-zoek{width:100%;border-radius:14px;padding:14px 15px;font-size:16px}
  .sch-toggle{display:inline-flex;flex:0 0 auto}
  .dagen{margin:2px 0 14px;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:9px;padding:0 16px 12px!important;-webkit-overflow-scrolling:touch}
  .dagen a{flex:0 0 auto;min-width:118px;padding:11px 14px;border-radius:14px;font-size:14px}
  .dagen a small{font-size:11px;margin-top:3px}
  .content.vol .sch-kop,.content.vol>.dagen,.content.vol>.sch-layout-bar{display:none!important}
  .content.vol{display:flex;max-width:none;height:100dvh;min-height:0;overflow:hidden;padding:0;background:#f6f6f7}
  .app:has(.content.vol),.main:has(.content.vol){height:100dvh;overflow:hidden}
  .content.vol #sch-scroll,.content.vol .sch-fab,.content.vol .sch-zoom{display:none!important}
  .mob-schedule-app{display:flex;flex-direction:column;height:100dvh;min-height:0;background:#f6f6f7;color:var(--ink)}
  body:not(.bottom-nav-off) .content.vol{height:calc(100dvh - 96px - env(safe-area-inset-bottom))}
  body:not(.bottom-nav-off) .mob-schedule-app{height:calc(100dvh - 96px - env(safe-area-inset-bottom))}
  .msa-bar{
    position:relative;z-index:48;flex:0 0 auto;min-height:70px;display:flex;justify-content:space-between;
    align-items:center;gap:7px;padding:calc(10px + env(safe-area-inset-top)) 12px 9px;background:var(--ink);
    color:#fff;border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 14px 30px -26px rgba(0,0,0,.55)
  }
  /* affiche-gloed (zoals de poster-achtergrond op de site) */
  .msa-bar::before{content:"";position:absolute;inset:0;pointer-events:none;background:
    radial-gradient(70% 150% at 10% -40%, var(--accent), transparent 60%),
    radial-gradient(60% 140% at 94% -30%, var(--fs-paar), transparent 60%);opacity:.32}
  .msa-bar > *{position:relative;z-index:1}
  /* twee actiegroepen (links: admin · rechts: lay-out/filter/zoek), dagkiezer gecentreerd ertussen */
  .msa-acts{display:flex;align-items:center;gap:6px;min-height:42px}
  .msa-acts-l:empty{width:1px}
  /* enkel het icoon — geen vierkantje eromheen */
  .msa-ico{width:42px;height:42px;border:0;background:transparent;color:#fff;display:grid;place-items:center;border-radius:50%;box-shadow:none;text-decoration:none}
  .msa-ico.msa-act svg{display:block;width:21px;height:21px}
  .msa-ico.msa-act.aan{background:rgba(255,255,255,.16);color:#fff}
  /* overzicht-icoon (lijst/rooster) wit op de donkere balk, iets groter en wat meer naar links */
  .msa-acts-l{margin-left:-6px}
  .msa-view-toggle{color:#fff}
  .msa-view-toggle svg{width:26px!important;height:26px!important}
  .msa-view-toggle.aan{background:rgba(255,255,255,.18);color:#fff}
  /* ⋯-menu rechtsboven met filteren / snel toewijzen / schema bewerken */
  .msa-menu-wrap{position:relative;display:flex}
  .msa-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:70;min-width:208px;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:0 22px 50px -22px oklch(0.2 0.05 260/.5)}
  .msa-menu[hidden]{display:none}
  .msa-menu-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:none;cursor:pointer;font-family:inherit;font-size:14.5px;font-weight:800;color:var(--ink);padding:12px 11px;border-radius:10px}
  .msa-menu-item:active{background:var(--bg-2)}
  .msa-menu-item svg{flex:none;color:var(--muted)}
  /* "Snel toewijzen actief"-balk met stopknop (alleen mobiel, alleen tijdens organiseer-modus) */
  /* tijdens snel toewijzen: bottom-nav weg, balk helemaal onderaan */
  body.organiseer-modus .botnav{display:none}
  body.organiseer-modus .org-modus-balk{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:90;align-items:center;gap:12px;padding:13px 15px;border-radius:16px;background:var(--accent);color:#fff;box-shadow:0 16px 40px -12px rgba(0,0,0,.5)}
  .org-modus-balk span{flex:1;min-width:0;font-size:13px;font-weight:750;line-height:1.25}
  .org-modus-balk b{font-weight:900}
  .org-modus-balk button{flex:none;border:0;background:#fff;color:var(--accent);font-family:inherit;font-weight:900;font-size:13.5px;padding:9px 18px;border-radius:11px;cursor:pointer}
  .msa-ico:active{background:rgba(255,255,255,.14)}
  .msa-ico>span{display:block;width:21px;height:3px;border-radius:999px;background:currentColor;margin:2px 0}
  .msa-ico.sliders{display:flex;align-items:center;justify-content:center;gap:4px}
  .msa-ico.sliders i{position:relative;width:3px;height:21px;border-radius:999px;background:currentColor}
  .msa-ico.sliders i::after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:9px;height:9px;border-radius:50%;background:currentColor;top:3px}
  .msa-ico.sliders i:nth-child(2)::after{top:11px}
  .msa-ico.sliders i:nth-child(3)::after{top:6px}
  .msa-ico.search .ic{width:25px;height:25px}
  .msa-ico.search.aan{background:var(--accent);border-color:var(--accent);color:#fff}
  .msa-zoom{
    position:absolute;left:10px;top:50%;z-index:61;transform:translateY(-50%);
    display:grid;grid-template-columns:32px 39px 32px;align-items:center;min-height:38px;padding:3px;
    border:1px solid rgba(255,255,255,.78);border-radius:999px;background:rgba(255,255,245,.78);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82),0 12px 28px -22px rgba(32,34,28,.48);
    backdrop-filter:blur(16px) saturate(1.16)
  }
  .msa-zoom button{
    width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--ink);
    font-size:20px;font-weight:950;line-height:1;font-family:var(--body);cursor:pointer
  }
  .msa-zoom button:active{background:rgba(222,235,220,.78);color:#087653;transform:scale(.96)}
  .msa-zoom button:disabled{opacity:.34;cursor:default;transform:none}
  .msa-zoom span{font-family:var(--mono);font-size:10px;font-weight:950;text-align:center;color:var(--muted);letter-spacing:-.04em}
  .msa-day-picker{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;min-width:0;z-index:60}
  .msa-day-picker summary{position:relative;list-style:none;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:4px 25px 4px 8px;
    border:0;border-radius:14px;background:transparent;box-shadow:none;cursor:pointer}
  .msa-day-picker summary::-webkit-details-marker{display:none}
  .msa-day-picker summary::after{content:"";position:absolute;right:7px;top:50%;width:9px;height:9px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:translateY(-62%) rotate(45deg);transition:transform .16s}
  .msa-day-picker[open] summary{background:transparent}
  .msa-day-picker[open] summary::after{transform:translateY(-35%) rotate(225deg)}
  .msa-day-current{min-width:0;text-align:center;display:block}
  .msa-day-current b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.035em;line-height:1;color:#fff}
  .msa-day-menu{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);width:min(230px,calc(100vw - 34px));display:grid;padding:8px 14px;
    border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 24px 58px -28px oklch(0.20 0.05 260/.52)}
  .msa-day-menu a{display:block;border:0;border-radius:0;padding:12px 4px;background:transparent;color:var(--ink-2);box-shadow:none;text-align:center}
  .msa-day-menu a+a{border-top:1px solid var(--line-2)}
  .msa-day-menu a b{display:block;font-family:var(--disp);font-size:22px;font-weight:900;letter-spacing:-.035em;line-height:1;color:var(--ink)}
  .msa-day-menu a small{display:block;margin-top:4px;font-family:var(--mono);font-size:11px;font-weight:800;color:var(--muted)}
  .msa-day-menu a>em{display:none}
  .msa-day-menu a.actief b{color:var(--accent)}
  .msa-day-menu a.actief small{color:var(--accent-ink)}
  .msa-search{flex:0 0 auto;background:var(--surface-2);padding:0 12px 10px;border-bottom:1px solid var(--line)}
  .msa-search-box{display:grid;grid-template-columns:24px minmax(0,1fr) 36px;align-items:center;gap:8px;border:1px solid color-mix(in oklch,var(--accent) 18%,var(--line));
    border-radius:17px;padding:7px 8px 7px 13px;background:var(--surface);box-shadow:var(--shadow-sm)}
  .msa-search-box>.ic{width:22px;height:22px;color:var(--accent)}
  .msa-search input{width:100%;border:0;border-radius:0;padding:7px 0;background:transparent;color:var(--ink);font-size:16px;font-family:inherit;outline:none;box-shadow:none;font-weight:750}
  .msa-search input::placeholder{color:var(--faint)}
  .msa-search-box button{width:34px;height:34px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:23px;line-height:1;display:grid;place-items:center}
  .msa-search-box button:active{background:var(--accent-soft);color:var(--accent)}
  .msa-search-results{display:grid;gap:7px;margin-top:9px}
  .msa-search-results[hidden]{display:none!important}
  .msa-result{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;width:100%;padding:8px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);text-align:left}
  .msa-result-img{width:48px;height:48px;border-radius:12px;background:var(--bg-2) center/cover no-repeat;box-shadow:0 0 0 1px var(--line)}
  .msa-result-main{min-width:0}
  .msa-result-main b{display:block;font-family:var(--disp);font-size:18px;font-weight:950;line-height:1;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
  .msa-result-main small{display:block;margin-top:4px;font-size:11.5px;font-weight:850;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .msa-result-crew{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
  .msa-result-crew em{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 10px;background:var(--bg-2);border:1px solid var(--line);color:var(--ink-2);font-size:11.5px;font-style:normal;font-weight:800;line-height:1}
  .msa-result-crew em::before{content:"📷";font-size:10px}
  .msa-result-crew em.empty{background:var(--bg-2);border-style:dashed;color:var(--muted)}
  .msa-result-crew em.empty::before{content:none}
  .msa-result-empty{padding:10px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);font-size:13px;font-weight:800;text-align:center}
  .msa-days{display:none}
  .msa-days::-webkit-scrollbar{display:none}
  .msa-days a{flex:0 0 auto;min-width:68px;text-align:center;border:1px solid rgba(255,255,255,.13);border-radius:999px;padding:7px 11px;color:rgba(255,255,255,.7);font-size:13px;font-weight:900}
  .msa-days a small{display:block;margin-top:1px;font-family:var(--mono);font-size:10px;color:rgba(255,255,255,.46)}
  .msa-days a.actief{background:var(--warm);border-color:var(--warm);color:#000}
  .msa-days a.actief small{color:rgba(0,0,0,.55)}
  .mob-timetable-scroll{--mob-schema-scale:1;flex:1 1 auto;min-height:0;overflow:auto;position:relative;background:#f6f6f7;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;cursor:grab;user-select:none}
  .mob-timetable-scroll.grabbing{cursor:grabbing}
  .mob-timegrid{position:relative;min-height:100%;zoom:var(--mob-schema-scale)}
  @supports not (zoom:1){.mob-timegrid{transform:scale(var(--mob-schema-scale));transform-origin:top left}}
  .mts-head{position:sticky;top:0;z-index:32;display:flex;height:44px;background:#fbfbfc;border-bottom:1px solid #d9dce3;box-shadow:0 1px 0 rgba(0,0,0,.03)}
  .mts-corner{position:sticky;left:0;z-index:22;flex:0 0 auto;display:flex;align-items:center;padding-left:0;background:#fbfbfc;border-right:0;font-size:0;color:transparent}
  .mts-ruler{position:relative;flex:0 0 auto;height:100%}
  .mts-tick{position:absolute;top:0;bottom:0;min-width:60px;padding:14px 0 0 8px;border-left:1px solid #e2e4ea;font-family:var(--mono);font-size:12.5px;font-weight:800;font-style:normal;letter-spacing:0;color:#171a22}
  .mts-tick:not(.uur){color:#6b7280}
  .mts-tick.half{min-width:0;padding-top:19px;padding-left:6px;border-left:1px dashed #e7e9ee;font-size:9px;font-weight:800;color:#aab0ba}
  .mts-body{position:relative;display:flex;flex-direction:column}
  .mts-row-extra{order:5}  /* Extra standaard als laatste 'stage' (podia hebben order 0) */
  .mts-row{position:relative;display:block;border-bottom:1px solid #e2e4ea;background:#f8f8f9}
  /* podiumnaam: doorzichtig label bovenaan de rij (blijft links plakken bij horizontaal scrollen) — het optreden komt eronder */
  .mts-stage{position:sticky;left:10px;z-index:20;display:inline-flex;align-items:center;max-width:64%;height:24px;margin-top:7px;background:transparent;border:0;box-shadow:none;color:var(--stage-color);font-family:var(--disp);font-size:15px;font-weight:800;font-style:normal;letter-spacing:-.03em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
  .mts-track{position:absolute;left:0;top:0;bottom:0;z-index:1;overflow:visible}
  .mts-line{position:absolute;top:0;bottom:0;width:1px;background:#e1e4eb}
  .mts-line.uur{background:#d6d9e0}
  .mts-line.half{background:#edeff3}
  .mts-event.sch-block{z-index:24;display:grid;grid-template-columns:58px minmax(0,1fr) 50px;align-items:start;gap:0;padding:0;background:#fff;color:#171a22;border:1px solid #d8dce3;border-radius:10px;box-shadow:0 2px 8px rgba(20,24,34,.08);overflow:hidden;transform:none;white-space:normal}
  .mts-event.sch-block:hover{transform:none;box-shadow:0 2px 8px rgba(20,24,34,.12)}
  .mts-event.sch-block.dim{display:none}
  /* geselecteerd = het vlak inkleuren (niet een dikke lijn errond) */
  /* geselecteerd = fris modern groen (emerald/mint) */
  /* Gedekt (heeft een fotograaf, ook door anderen) = groen tintje; jouw eigen = roze lijn ervoor. */
  .mts-event.sch-block[data-fotograaf="1"]{background:color-mix(in oklch,var(--green) 10%,#fff);border-color:color-mix(in oklch,var(--green) 38%,#d8dce3)}
  .mts-event.sch-block.mijn{background:color-mix(in oklch,#10b981 16%,#fff);border-color:var(--pink);box-shadow:0 2px 8px rgba(20,24,34,.1)!important}
  .mts-event.sch-block.mijn::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--pink);z-index:6;border-radius:10px 0 0 10px;pointer-events:none}
  .mts-event.sch-block.bezig{box-shadow:0 0 0 3px oklch(0.62 0.22 25/.16),0 2px 8px rgba(20,24,34,.1)}
  .mts-event.sch-block.bezig::before{top:3px;left:4px;padding:2px 5px;font-size:8px}
  .mts-event .mte-img{width:58px;height:100%;object-fit:cover;background:var(--bg-2)}
  .mts-event .mte-main{min-width:0;overflow:visible;padding:8px 5px 7px 9px;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start}
  .mts-event .mte-main b{min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;font-family:var(--disp);font-size:16px;font-weight:950;font-style:normal;letter-spacing:-.014em;line-height:1.05;color:#171a22}
  .mts-event .mte-main small{display:block;margin-top:4px;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;font-family:var(--mono);font-size:10.5px;font-weight:800;font-style:normal;color:#111;letter-spacing:0;line-height:1.18}
  .mts-event .mte-crew{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;overflow:hidden;margin-top:6px;font-size:10.5px;font-weight:900;color:#444;line-height:1}
  .mts-event .mte-crew .mte-cam{flex:0 0 auto;color:var(--muted,#888)}
  .mts-event .mte-crew .mte-dots{display:inline-flex;flex:0 0 auto;align-items:center;gap:0}
  .mts-event .mte-crew .mte-dots i{width:8px;height:8px;border-radius:50%;background:var(--ft-color,#5b8cff);border:1px solid #fff;margin-left:-2px;box-shadow:0 1px 3px rgba(0,0,0,.14)}
  .mts-event .mte-crew .mte-dots i:first-child{margin-left:0}
  .mts-event .mte-crew .mte-namen{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mts-event .mte-crew .mte-meer{flex:0 0 auto;border-radius:999px;padding:2px 5px;background:#eef0f4;color:#444;font-size:9.5px;font-weight:950;line-height:1}
  .mts-event .mte-crew.empty{color:#888;font-weight:750}
  .mts-event .mte-crew.empty .mte-cam{color:#aaa}
  /* hartje rechtsboven — gewoon het hartje zelf, geen achtergrondcirkel */
  .mts-event .b-heart{position:absolute;top:6px;right:6px;z-index:3;align-self:auto;justify-self:auto;margin:0;width:40px;height:40px;display:grid;place-items:center;
    border:0;border-radius:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;
    color:#b9bfca;font-size:0;line-height:1;box-shadow:none;transition:transform .12s,color .15s}
  .mts-event .b-heart::before{content:"\2661";font-size:25px;transition:transform .14s}
  .mts-event .b-heart.aan::before{content:"\2665"}
  .mts-event .b-heart:active::before{transform:scale(.82)}
  /* smal blok: titel zou op 2 lijnen komen → eerst de foto weghalen voor meer ruimte */
  .mts-event.geen-foto{grid-template-columns:minmax(0,1fr) 42px}
  .mts-event.geen-foto .mte-img{display:none}
  .mts-event .b-heart.aan{background:none!important;color:var(--pink)!important;box-shadow:none!important}
  .mts-event .b-check{position:absolute;right:15px;bottom:6px;width:19px;height:19px;border:1px solid color-mix(in oklch,var(--stage-color) 48%,#fff);background:#fff;color:var(--stage-color);font-size:10px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
  .mts-event .b-check.aan{background:var(--fs-veel);border-color:var(--fs-veel);color:#fff}
  .mts-event .b-check::after{display:none}
  .mts-event.sch-block .bb,.mts-event.sch-block .bg,.mts-event.sch-block .bin{display:none}
  .mts-event .b-geannuleerd{top:3px;left:4px;font-size:7px}
  /* NU-lijn: loopt door tot in de tijdbalk bovenaan, met het tijd-tagje ín die balk */
  .mts-now{position:absolute;top:-44px;bottom:0;z-index:33;width:2px;background:var(--pink);box-shadow:0 0 12px var(--pink);pointer-events:none}
  .mts-now span{position:sticky;top:8px;display:inline-flex;transform:translateX(-50%);margin-left:1px;padding:4px 9px;border-radius:999px;background:var(--pink);color:#fff;font-family:var(--mono);font-size:10px;font-weight:900;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.3)}
  /* Extra-rij: eigen momenten / notities (geen podium, wel in het schema) */
  .mts-stage-extra{gap:7px;color:#7c5cff}
  .mts-extra-add{pointer-events:auto;flex:none;width:22px;height:22px;border-radius:7px;border:0;background:#7c5cff;color:#fff;font-size:16px;line-height:1;cursor:pointer;display:grid;place-items:center}
  .mts-extra-event{position:absolute;z-index:5;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:6px 9px;border-radius:10px;border:1.5px solid var(--stage-color);background:color-mix(in oklch,var(--stage-color) 15%,#fff);color:#1e2330;overflow:hidden;text-align:left;cursor:pointer}
  .mts-extra-event.gedeeld{border-style:dashed}
  .mts-extra-event .mee-tijd{font-family:var(--mono);font-size:10px;font-weight:800;color:color-mix(in oklch,var(--stage-color) 68%,#111)}
  .mts-extra-event .mee-titel{font-family:var(--disp);font-size:15px;font-weight:800;line-height:1.05;letter-spacing:-.02em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .mts-extra-event .mee-personen{font-size:10px;font-weight:800;color:color-mix(in oklch,var(--stage-color) 78%,#111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mts-extra-event .mee-loc{font-size:10px;font-weight:700;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mob-filter-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:76;background:rgba(0,0,0,.42);backdrop-filter:blur(3px)}
  .mob-filter-sheet:not([hidden]){display:flex;position:fixed;left:0;right:0;bottom:0;z-index:77;max-height:88dvh;flex-direction:column;background:#fff;color:#111;border-radius:22px 22px 0 0;padding:10px 18px 18px;box-shadow:0 -20px 50px rgba(0,0,0,.28)}
  .mfs-handle{width:44px;height:5px;border-radius:999px;background:#101010;margin:2px auto 12px}
  .mfs-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .mfs-head h2{font-family:var(--disp);font-size:29px;font-style:normal;font-weight:900;letter-spacing:0}
  .mfs-head button{border:0;background:none;color:#d56b78;text-transform:uppercase;font-size:12px;font-weight:900}
  .mfs-section{min-height:0;overflow:auto}
  .mfs-section-head{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:none;padding:17px 0 12px;font-family:var(--disp);font-size:24px;font-style:normal;font-weight:900;text-transform:uppercase}
  .mfs-stage-list{display:flex;flex-direction:column;border-top:1px solid #eef0f4}
  .mfs-stage-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;border-bottom:1px solid #eef0f4;background:#fff}
  .mfs-stage-move{display:flex;gap:8px}
  .mfs-move-btn{width:44px;height:44px;border:1px solid #dfe3ea;border-radius:13px;background:#fff;font-size:15px;color:#374151;display:grid;place-items:center;box-shadow:0 2px 8px rgba(20,24,34,.05);cursor:pointer}
  .mfs-move-btn:active{background:#eef1f6;transform:translateY(1px)}
  .msa-bar .msa-pos{margin-right:auto}
  .mfs-stage-list label{display:flex;align-items:center;gap:13px;min-height:58px;font-size:19px;font-weight:850;font-style:normal;font-family:var(--disp)}
  .mfs-stage-list input{width:23px;height:23px;accent-color:#111}
  .mfs-stage-list span{width:8px;height:30px;border-radius:999px;background:var(--stage-color)}
  .mfs-drag-handle{width:46px;height:46px;display:grid;place-items:center;border:0;background:transparent;box-shadow:none;font-size:23px;line-height:1;color:#aab0ba;touch-action:none;cursor:grab}
  .mfs-drag-handle:active{cursor:grabbing;color:#6b7280}
  .mfs-stage-item.dragging{border:1px solid #dfe3ea;border-radius:16px;box-shadow:0 20px 46px rgba(20,24,34,.24);transform:scale(1.015);cursor:grabbing}
  .mfs-stage-placeholder{border-bottom:1px solid #eef0f4;background:linear-gradient(90deg,rgba(88,208,91,.10),rgba(88,208,91,.03));box-shadow:inset 0 0 0 2px rgba(88,208,91,.26);border-radius:14px;margin:4px 0}
  body.stage-dragging{user-select:none}
  .mfs-save{flex:0 0 auto;margin-top:18px;width:100%;border:0;border-radius:0;background:#58d05b;color:#051105;min-height:56px;font-size:18px;font-weight:900;text-transform:uppercase}
  .mob-sch-empty{display:flex!important;align-items:center;justify-content:center;padding:30px;text-align:center;color:#777;font-weight:800}
  .mob-sch-card{
    position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);gap:13px;padding:15px 52px 15px 15px;border:1px solid var(--line);
    border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)
  }
  .mob-sch-card.mijn{border-color:var(--pink);box-shadow:0 0 0 5px color-mix(in oklch,var(--pink) 18%,transparent),var(--shadow-sm)}
  .mob-sch-card.bezig{border-color:var(--red)}
  .mob-sch-card.bezig{box-shadow:0 0 0 3px oklch(0.62 0.22 25/.14),var(--shadow-sm)}
  .mob-sch-card.dim{display:none}
  /* ── Lijst-weergave (4-vakjes-icoon linksboven): optredens per uur onder elkaar ── */
  .mob-schema-list{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:#f6f6f7;padding:0 14px 26px;flex-direction:column}
  .mob-schedule-app.toon-lijst .mob-timetable-scroll{display:none}
  .mob-schedule-app.toon-lijst .mob-schema-list{display:flex}
  /* segmented control: één samenhangende knop met schuivend wit segment */
  .msl-sorteer{position:sticky;top:0;z-index:9;margin:0 -14px;padding:10px 14px;background:#f6f6f7;border-bottom:1px solid #e7e9ee}
  .msl-seg{display:flex;gap:0;background:var(--bg-2);border-radius:13px;padding:4px}
  .msl-sort-btn{flex:1;border:0;background:transparent;color:var(--ink-2);border-radius:10px;padding:9px 6px;font-family:var(--body);font-size:13.5px;font-weight:800;cursor:pointer;transition:color .15s,background .22s ease,box-shadow .22s ease}
  .msl-sort-btn.actief{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.13)}
  .msl-sort-btn .msl-tel{display:inline-flex;align-items:center;gap:3px;margin-left:5px;vertical-align:middle}
  .msl-sort-btn .msl-tel b{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;font-size:10.5px;font-weight:950;line-height:1;font-family:var(--body)}
  .msl-sort-btn .msl-tel-ja{background:color-mix(in oklch,var(--green) 22%,#fff);color:color-mix(in oklch,var(--green) 75%,#000)}
  .msl-sort-btn .msl-tel-nee{background:#e7e9ee;color:#7a7f88}
  .msl-items{display:flex;flex-direction:column;gap:0;padding-top:2px}
  .msl-uur,.msl-kop{position:sticky;top:61px;z-index:6;margin:5px -14px 0;padding:8px 14px 6px;background:#f6f6f7;font-family:var(--mono);font-size:13px;font-weight:900;color:#6b7280;letter-spacing:.03em}
  .msl-kop:first-child{margin-top:0}
  /* lijst = gewoon rijen onder elkaar, geen omkaderde vakjes */
  .mob-schema-list .mob-sch-card{position:relative;grid-template-columns:86px minmax(0,1fr);gap:13px;align-items:center;padding:11px 52px 11px 2px;border:0;border-radius:0;background:transparent;box-shadow:none;border-bottom:1px solid #e4e7ec}
  .mob-schema-list .mob-sch-card:last-child{border-bottom:0}
  /* achtergrond gekleurd zodra er een fotograaf toegewezen is */
  .mob-schema-list .mob-sch-card[data-fotograaf="1"]{background:color-mix(in oklch,var(--green) 12%,var(--surface))}
  .mob-schema-list .mob-sch-card[data-fotograaf="1"].klaar{background:color-mix(in oklch,var(--green) 18%,var(--surface))}
  /* jouw eigen toegewezen optredens: duidelijke roze lijn ervoor (los van het groen "gedekt") */
  .mob-schema-list .mob-sch-card.mijn{padding-left:8px}
  .mob-schema-list .mob-sch-card.mijn::after{content:"";position:absolute;left:0;top:8px;bottom:8px;width:5px;border-radius:999px;background:var(--pink);z-index:3;pointer-events:none}
  /* foto in 5:4-formaat met ronde hoeken (geen bolletje meer) */
  .mob-sch-card .msc-foto{width:86px;aspect-ratio:5/4;height:auto;border-radius:14px;background:#e9ebef center/cover no-repeat;box-shadow:0 0 0 1px var(--line)}
  .mob-sch-card .msc-body{min-width:0}
  /* artiest: groot, zwart, site-lettertype (niet meer cursief/stage-kleur) */
  .mob-sch-card .msc-naam{display:block;font-family:var(--disp);font-size:21px;font-weight:900;font-style:normal;letter-spacing:-.02em;line-height:1.03;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mob-sch-card .msc-meta{margin-top:3px;font-size:12.5px;font-weight:750;color:var(--ink-2)}
  .mob-sch-card .msc-podium{margin-top:2px;font-size:12.5px;font-weight:850;color:var(--stage-color)}
  /* fotograaf(en) op het lijstkaartje — camera-icoon + namen */
  .mob-sch-card .msc-crew{display:flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:850;color:var(--ink-2);min-width:0}
  .mob-sch-card .msc-crew .msc-cam{flex:0 0 auto;color:var(--muted)}
  .mob-sch-card .msc-crew .msc-dots{display:inline-flex;flex:0 0 auto;align-items:center;gap:0}
  .mob-sch-card .msc-crew .msc-dots i{width:9px;height:9px;border-radius:50%;background:var(--ft-color,#5b8cff);border:1px solid #fff;margin-left:-2px;box-shadow:0 1px 3px rgba(0,0,0,.14)}
  .mob-sch-card .msc-crew .msc-dots i:first-child{margin-left:0}
  .mob-sch-card .msc-crew span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mob-sch-card .msc-crew.empty{color:var(--muted);font-weight:750}
  /* hartje rechtsboven — gewoon het hartje zelf in roze, geen achtergrondcirkel */
  .mob-sch-card .b-heart{position:absolute;top:10px;right:8px;width:44px;height:44px;border:0;border-radius:0;
    background:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#b9bfca;
    box-shadow:none;font-size:0;line-height:1;cursor:pointer;padding:0;display:grid;place-items:center;align-self:auto;
    transition:transform .12s,color .15s}
  .mob-schema-list .mob-sch-card .b-heart{top:12px;right:0}
  .mob-sch-card .b-heart::before{content:"\2661";font-size:27px;transition:transform .14s}
  .mob-sch-card .b-heart.aan{background:none;color:var(--pink);box-shadow:none}
  .mob-sch-card .b-heart.aan::before{content:"\2665"}
  .mob-sch-card .b-heart:active::before{transform:scale(.82)}
  /* icoon wisselt mee: lijst-icoon in roostermodus, rooster-icoon in lijstmodus */
  .msa-ico[data-mob-view-toggle] .mvt-rooster{display:none}
  .mob-schedule-app.toon-lijst [data-mob-view-toggle] .mvt-lijst{display:none}
  .mob-schedule-app.toon-lijst [data-mob-view-toggle] .mvt-rooster{display:block}
  .msc-time time{display:block;font-family:var(--mono);font-size:22px;font-weight:900;line-height:1;color:var(--ink)}
  .msc-time small{display:block;font-size:11px;line-height:1.2;color:var(--muted);font-weight:800;margin-top:6px}
  .msc-main{min-width:0}
  .msc-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:13px;font-weight:800;line-height:1.25}
  .msc-main h2{font-family:var(--disp);font-size:27px;font-weight:900;letter-spacing:-.035em;line-height:.98;margin-top:8px;overflow-wrap:anywhere}
  .msc-crew{font-size:14px;color:var(--ink-2);font-weight:700;line-height:1.35;margin-top:9px}
  .msc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
  .msc-actions button{
    border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:8px 11px;
    font-size:12.5px;font-weight:900;color:var(--ink-2)
  }
  .msc-actions button.aan{background:var(--ink);border-color:var(--ink);color:#fff}
}

@media(max-width:860px){
  .mijnlijst-content .tijdlijn{display:flex;flex-direction:column;gap:12px}
  .mijnlijst-content .mijn-rij{
    display:grid;grid-template-columns:68px minmax(0,1fr);gap:13px;padding:15px;border:1px solid var(--line);
    border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);align-items:start
  }
  .mijnlijst-content .mijn-rij:hover{background:var(--surface)}
  .mijnlijst-content .mijn-rij.nu{border-color:var(--red);box-shadow:0 0 0 3px oklch(0.62 0.22 25/.14),var(--shadow-sm)}
  .mijnlijst-content .mijn-rij.klaar{opacity:.68}
  .mijnlijst-content .mijn-rij.klaar:hover{opacity:.86}
  .mijnlijst-content .mijn-rij .tijd{grid-column:1;grid-row:1;text-align:left;display:block;align-items:initial;gap:0}
  .mijnlijst-content .mijn-rij .tijd .u{display:block;font-family:var(--mono);font-size:22px;font-weight:900;line-height:1;color:var(--ink)}
  .mijnlijst-content .mijn-rij .tijd .e{display:block;font-family:var(--mono);font-size:14px;font-weight:700;color:var(--muted);line-height:1;margin-top:4px}
  .mijnlijst-content .mijn-rij .spoor,.mijnlijst-content .mijn-rij .rij-foto{display:none}
  .mijnlijst-content .mijn-rij .body{grid-column:2;grid-row:1;min-width:0}
  /* Podium toont als tag (zoals op 'vandaag'); de tekst-meta is dan overbodig op mobiel. */
  .mijnlijst-content .ml-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px;font-size:17px;font-weight:900;color:var(--ink-2);text-transform:none;letter-spacing:-.01em}
  .mijnlijst-content .mijn-rij .body .ttl{display:block;margin-top:8px}
  .mijnlijst-content .mijn-rij .body .ttl b{font-family:var(--disp);font-size:27px;font-weight:900;letter-spacing:-.035em;line-height:.98;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  /* Podium toont op mobiel bij het uur (in de tijd-kolom), niet meer in de titel. */
  .mijnlijst-content .mijn-rij .body .ttl .ml-podium-tag{display:none}
  .mijnlijst-content .mijn-rij .tijd .ml-podium-tijd{display:inline-flex;align-items:center;margin-top:8px;font-size:11px;font-weight:900;line-height:1.15;white-space:normal;max-width:100%}
  .mijnlijst-content .mijn-rij .body .ttl .tag.grijs{display:inline-flex;margin-top:9px}
  .mijnlijst-content .ml-crew{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:14px;color:var(--ink-2);font-weight:700;line-height:1.35;margin-top:10px}
  .mijnlijst-content .mijn-rij .body .sub{font-size:13.5px;line-height:1.35;margin-top:9px;color:var(--warm-ink)}
  .mijnlijst-content .mijn-rij .fs-wrap{grid-column:2;grid-row:2;justify-self:start;align-self:start;margin-top:0}
  .mijnlijst-content .mijn-rij .fs-chip{padding:8px 11px;border-radius:12px;font-size:12.5px;font-weight:900}
  .mijnlijst-content .mijn-rij .fs-chip .fc-ic{width:19px;height:19px}
  .mijnlijst-content .mijn-rij .rij-x{grid-column:1;grid-row:2;width:40px;height:40px;border-radius:12px;font-size:22px;align-self:start;justify-self:start}
}

@media(max-width:860px){
  .content.profile-screen{
    max-width:none;min-height:100dvh;display:flex;align-items:flex-end;
    padding:18px 14px calc(112px + env(safe-area-inset-bottom))
  }
  .profile-card{
    width:100%;padding:16px;border-radius:30px 30px 22px 22px;
    box-shadow:0 24px 64px -34px oklch(0.22 0.045 260/.52),var(--shadow)
  }
  .profile-grip{display:block;width:48px;height:5px;border-radius:999px;background:var(--line-2);margin:0 auto 14px}
  .profile-head{align-items:flex-start;gap:14px;margin-bottom:15px}
  .profile-avatar{width:62px;height:62px;flex-basis:62px;font-size:22px}
  .profile-title h1.groet{font-size:36px!important;margin:4px 0 6px!important}
  .profile-title .lead{font-size:14.5px;line-height:1.34}
  .profile-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}
  .profile-summary>div{padding:11px;border-radius:14px}
  .profile-summary b{font-size:17px}
  .profile-form{padding-top:15px}
  .profile-form-grid,.profile-form-grid-color{grid-template-columns:1fr;gap:0}
  .profile-form .veld input{min-height:48px;font-size:16px}
  .profile-color-field input[type=color]{width:100%;height:50px}
  .profile-save{min-height:52px;border-radius:15px;font-size:16px}

  body:not(.bottom-nav-off) .content.vol,
  body:not(.bottom-nav-off) .mob-schedule-app{height:100dvh}
  body:not(.bottom-nav-off) .mob-timetable-scroll{
    padding-bottom:calc(118px + env(safe-area-inset-bottom));
    scroll-padding-bottom:calc(118px + env(safe-area-inset-bottom))
  }

  .content.map-screen{
    max-width:none;height:100dvh;overflow:hidden;padding:0!important;background:#faf9f1
  }
  .content.map-screen .map-head,.content.map-screen .map-grid,.content.map-screen .map-card-bar{display:none!important}
  .content.map-screen .map-card{
    height:calc(100dvh - 106px - env(safe-area-inset-bottom));min-height:0;border:0;border-radius:0;box-shadow:none;background:#101923
  }
  .content.map-screen .map-image-wrap,.content.map-screen .street-vibe-map{
    height:100%;min-height:0;border-radius:0
  }
  .content.map-screen .map-image-wrap img{
    width:100%;height:100%;min-height:0;max-height:none;object-fit:contain
  }
  .content.map-screen .map-podia-pop{right:13px;top:13px}
  .content.map-screen .map-podia-pop>summary{
    width:52px;height:52px;min-height:52px;justify-content:center;padding:0;border-radius:18px
  }
  .content.map-screen .map-podia-pop>summary span{display:none}
  .content.map-screen .map-podia-pop>summary .ic{width:29px;height:29px}
  .content.map-screen .map-podia-list{
    top:calc(100% + 10px);max-height:calc(100dvh - 148px - env(safe-area-inset-bottom))
  }
}

@keyframes nuPulse{50%{filter:brightness(1.25);transform:translateY(-1px)}}
@keyframes nuBlink{70%{box-shadow:0 0 0 7px rgba(255,255,255,0)}}

/* ============ Admin redesign (festivals + gebruikers) ============ */
/* Prettier festival-dropdown in de admin-kop */
.fest-pick-select{position:relative;width:100%}
.fest-pick-select select{width:100%;appearance:none;-webkit-appearance:none;font-family:var(--disp);font-weight:800;font-size:17px;letter-spacing:-.02em;
  color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:11px 40px 11px 14px;cursor:pointer;transition:.16s;box-shadow:var(--shadow-sm)}
.fest-pick-select select:hover{border-color:var(--accent)}
.fest-pick-select select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.fest-pick-select .fps-chev{position:absolute;right:13px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
.admin-tabs .at-lbl em{font-style:normal;font-weight:600;color:var(--faint);text-transform:none;letter-spacing:0}

/* Festival toevoegen — simpel, altijd zichtbaar */
.fest-add{padding:16px 18px;margin-bottom:18px}
.fest-add-kop{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.fest-add-kop b{font-family:var(--disp);font-size:18px;letter-spacing:-.02em}
.fest-add-kop span{color:var(--muted);font-size:12.5px}
.fest-add-rij{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.fest-add-rij .veld-in{flex:1 1 150px;min-width:120px}
.fest-add-rij .veld-in[type=date]{flex:0 0 150px}
.fest-add-rij .mini-knop{flex:0 0 auto}

/* Festivalgroepen met openschuivende edities */
.fest-groepen{display:flex;flex-direction:column;gap:12px}
.fest-group{padding:0;overflow:hidden}
.fest-group.heeft-actief{border-color:var(--accent)}
.fest-group-head{display:flex;align-items:center;gap:16px;width:100%;border:0;background:none;cursor:pointer;padding:16px 18px;text-align:left;font-family:inherit;transition:background .15s}
.fest-group-head:hover{background:var(--bg-2)}
.fgh-naam{font-family:var(--disp);font-weight:800;font-size:21px;letter-spacing:-.025em;color:var(--ink);display:flex;align-items:center;gap:9px;flex:0 0 auto}
.fgh-actief{font-family:var(--body);font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--accent);padding:3px 8px;border-radius:999px}
.fgh-stats{display:flex;gap:16px;flex-wrap:wrap;margin-left:auto;color:var(--muted);font-size:12.5px}
.fgh-stats b{color:var(--ink);font-weight:800}
.fgh-chev{flex:0 0 auto;color:var(--muted);transition:transform .25s}
.fest-group.open .fgh-chev{transform:rotate(180deg)}
.fest-group-body{display:none;padding:0 18px 16px;flex-direction:column;gap:11px}
.fest-group-body.open{display:flex;animation:userDetailSlide .2s ease-out}
.ed-blok{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface-2)}
.ed-blok.is-active{border-color:var(--accent);background:var(--accent-soft)}
.ed-blok-kop{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ed-blok-titel{display:flex;align-items:baseline;gap:10px;min-width:0}
.ed-blok-titel b{font-family:var(--disp);font-size:24px;letter-spacing:-.03em}
.ed-blok-titel span{color:var(--muted);font-size:12.5px}
.ed-blok-acties{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ed-feiten{display:flex;gap:10px;flex-wrap:wrap;list-style:none;margin:12px 0 4px;padding:0}
.ed-feiten li{display:flex;flex-direction:column;gap:1px;padding:8px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface);min-width:84px}
.ed-feiten li span{color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.ed-feiten li b{font-size:15px;color:var(--ink)}
.ed-wijzig,.ed-fotografen{margin-top:10px}
.ed-wijzig summary,.ed-fotografen summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--accent);padding:6px 2px;list-style:none}
.ed-wijzig summary::-webkit-details-marker,.ed-fotografen summary::-webkit-details-marker{display:none}
.ed-wijzig summary::before,.ed-fotografen summary::before{content:"›";display:inline-block;margin-right:7px;transition:transform .2s}
.ed-wijzig[open] summary::before,.ed-fotografen[open] summary::before{transform:rotate(90deg)}
.ed-wijzig-form{display:flex;flex-wrap:wrap;gap:9px;align-items:flex-end;margin-top:10px}
.ed-wijzig-form label{display:flex;flex-direction:column;gap:4px;flex:1 1 160px}
.ed-wijzig-form label.sm{flex:0 0 110px}
.ed-wijzig-form label span{font-size:11px;font-weight:700;color:var(--muted)}
.ed-wijzig-form .mini-knop{flex:0 0 auto}
.ed-fot-lijst{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.ed-fot-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:12.5px;font-weight:700;color:var(--ink)}
.ed-fot-chip i{width:9px;height:9px;border-radius:50%}
.ed-fot-chip form{display:inline}
.ed-fot-x{border:0;background:var(--bg-2);color:var(--muted);width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.ed-fot-x:hover{background:var(--red);color:#fff}
.ed-fot-add{display:flex;gap:8px;flex-wrap:wrap}
.ed-fot-add .veld-sel{flex:1 1 200px}

/* Gebruikers: toolbar + voeg-fotograaf + bewerkbaar detailpaneel */
.gebr-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.gebr-zoek{flex:1 1 240px}
.gebr-zoek .veld-in{width:100%}
.gebr-add-toggle{flex:0 0 auto}
.gebr-add-toggle.aan{background:var(--accent);border-color:var(--accent)}
.gebr-add-card{padding:22px 24px;margin-bottom:18px;border-radius:18px;max-width:760px}
.gebr-add-kop{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.gebr-add-kop .gak-ic{width:46px;height:46px;flex:none;border-radius:13px;display:grid;place-items:center;font-size:22px;background:var(--accent-soft)}
.gebr-add-kop b{display:block;font-family:var(--disp);font-size:20px;letter-spacing:-.02em}
.gebr-add-kop span{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.gebr-add-card .gebr-add-grid{gap:13px}
.gebr-add-card .veld-in,.gebr-add-card .veld-sel{padding:12px 13px;font-size:14.5px;border-radius:11px}
.gebr-add-card .gebr-add-grid label>span{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.gebr-mail-check{display:flex;gap:11px;align-items:flex-start;margin:16px 0;padding:13px 15px;border:1px solid var(--line-2);border-radius:13px;background:var(--bg-2);cursor:pointer}
.gebr-mail-check input{margin-top:2px;width:18px;height:18px;flex:none;accent-color:var(--accent);cursor:pointer}
.gebr-mail-check b{font-size:14px}
.gebr-mail-check small{display:block;color:var(--muted);font-size:12px;margin-top:2px;line-height:1.4}
.gak-knop{padding:12px 22px;font-size:14.5px}
/* statistieken-pillen onder de titel */
.fotog-stats{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px}
.fs-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:999px;background:var(--bg-2);font-size:13px;font-weight:600;color:var(--ink-2)}
.fs-pill b{font-family:var(--disp);font-weight:800;font-size:15px;color:var(--ink)}
.fs-groen{background:var(--green-soft);color:var(--green-ink)}.fs-groen b{color:var(--green-ink)}
.fs-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
.fs-grijs{background:var(--bg-2);color:var(--muted)}
.gebr-add-grid,.user-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px}
.gebr-add-grid label,.user-edit-grid label{display:flex;flex-direction:column;gap:4px}
.gebr-add-grid label.sm,.user-edit-grid label.sm{max-width:170px}
.gebr-add-grid label span,.user-edit-grid label span{font-size:11px;font-weight:700;color:var(--muted)}
.gebr-add-grid input[type=color],.user-edit-grid input[type=color]{height:40px;padding:3px;cursor:pointer}
.user-main-cell.user-detail-toggle{cursor:pointer;border-radius:10px;transition:background .14s;padding:4px 6px;margin:-4px -6px}
.user-main-cell.user-detail-toggle:hover{background:var(--bg-2)}
.user-edit-form{margin-top:2px}
.user-edit-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;color:var(--muted);font-size:12px}
.user-edit-meta b{color:var(--ink);font-weight:700}

/* ===== Admin-kop v2: slanke festivalbalk op site-brede pagina's ===== */
.admin-head{display:flex;flex-direction:column;gap:13px}
.admin-tabs{position:relative}
.admin-festbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:12px 15px;border:1px solid var(--line);
  border-radius:14px;background:linear-gradient(180deg,var(--surface),var(--surface-2));box-shadow:var(--shadow-sm)}
.afb-tekst{display:flex;flex-direction:column;gap:1px;min-width:0}
.afb-label{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);font-weight:800}
.afb-tekst b{font-family:var(--disp);font-size:18px;letter-spacing:-.02em;color:var(--ink)}
.fest-pick.mini{margin-left:auto;min-width:0;width:auto;flex-direction:row;align-items:center;gap:0}
.fest-pick.mini .fest-pick-select{width:auto}
.fest-pick.mini .fest-pick-select select{font-family:var(--body);font-weight:700;font-size:14px;padding:9px 34px 9px 13px}
.admin-ga-festival{display:inline-flex;align-items:center;gap:7px;margin-left:auto;background:var(--ink);color:#fff;border-radius:10px;
  padding:8px 15px;font-weight:700;font-size:13.5px;white-space:nowrap;transition:.15s;flex:0 0 auto;box-shadow:none}
.admin-ga-festival:hover{background:var(--accent);color:#fff}
.admin-ga-festival span{transition:transform .15s}
.admin-ga-festival:hover span{transform:translateX(3px)}
@media(max-width:680px){.admin-festbar{align-items:stretch}.fest-pick.mini{margin-left:0;width:100%}.fest-pick.mini .fest-pick-select{width:100%}.admin-ga-festival{justify-content:center}}

/* Festivals: compactere editie-blokken + nieuwe-editie */
.ed-blok-kop{align-items:center}
.ed-blok-sub{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.ed-blok .ed-blok-titel{flex:1 1 auto}
.ed-nieuw{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:4px;padding:11px 13px;border:1px dashed var(--line-2);border-radius:12px;background:var(--surface)}
.ed-nieuw-l{font-size:13px;color:var(--ink-2);font-weight:600}
.ed-nieuw .veld-in{flex:0 0 150px}
.ed-nieuw .mini-knop{margin-left:auto}

/* ===== Bands als nette uitschuifbare lijst ===== */
.band-lijst{display:flex;flex-direction:column;gap:7px}
.band-rij{border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.band-rij.open{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.band-rij-head{display:flex;align-items:center;gap:13px;width:100%;border:0;background:none;cursor:pointer;padding:9px 13px;text-align:left;font-family:inherit}
.band-rij-head:hover{background:var(--bg-2)}
.br-foto{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:var(--bg-2) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:inset 0 0 0 1px var(--line)}
.br-naam{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.br-naam b{font-weight:800;color:var(--ink);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-naam small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br-meta{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.br-pill{font-size:11.5px;font-weight:700;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap}
.br-pill b{color:var(--accent);font-weight:800}
.br-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.br-dot.ok{background:var(--fs-veel);box-shadow:0 0 0 3px oklch(0.85 0.12 150/.4)}
.br-dot.na{background:var(--line-2)}
.br-chev{flex:0 0 auto;color:var(--muted);transition:transform .22s}
.band-rij.open .br-chev{transform:rotate(180deg)}
.band-detail{display:none;padding:0 13px 14px;flex-direction:column;gap:12px}
.band-rij.open .band-detail{display:flex;animation:userDetailSlide .2s ease-out}
.bd-media{display:flex;flex-direction:column;gap:10px}
.bd-embed:empty{display:none}
.bd-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bd-festinfo{font-size:12.5px;color:var(--ink-2)}.bd-festinfo b{color:var(--ink)}
.bd-links form{display:inline}
.bd-form{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line-2);padding-top:11px}
.bd-velden{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
@media(max-width:680px){.br-meta .br-pill:nth-child(2){display:none}.br-naam small{white-space:normal}}

/* Importeer-van-andere-editie kaart (FAQ + checklist) */
.import-van{margin-top:14px;padding:14px;border:1px dashed var(--accent);border-radius:13px;background:var(--accent-soft);display:flex;flex-direction:column;gap:9px}
.import-van-breed{margin:0 0 16px}
.import-van-kop{font-weight:800;font-size:14px;color:var(--accent-ink)}
.import-van p{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.45}
.import-van .veld-sel{width:100%}

/* Mooie bevestiging (confirm) */
.confirm-ov{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px;
  background:oklch(0.2 0.03 260/.5);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s}
.confirm-ov.aan{opacity:1}
.confirm-box{background:var(--surface);border-radius:20px;max-width:380px;width:100%;padding:26px 24px 22px;text-align:center;
  box-shadow:0 30px 70px -20px rgba(20,24,40,.55);transform:scale(.9) translateY(10px);transition:transform .24s cubic-bezier(.2,.9,.3,1.1)}
.confirm-ov.aan .confirm-box{transform:scale(1) translateY(0)}
.confirm-emoji{font-size:38px;line-height:1;margin-bottom:10px}
.confirm-box h4{font-family:var(--disp);font-size:21px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.confirm-box p{font-size:14px;color:var(--ink-2);line-height:1.5;margin-bottom:18px}
.confirm-acties{display:flex;gap:10px}
.confirm-acties button{flex:1;border:0;border-radius:12px;padding:12px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}
.confirm-acties .cf-nee{background:var(--bg-2);color:var(--ink-2)}
.confirm-acties .cf-nee:hover{background:var(--line)}
.confirm-acties .cf-ja{background:var(--red);color:#fff}
.confirm-acties .cf-ja:hover{filter:brightness(1.08)}

/* ===== Vandaag: kop met weer rechtsboven + affiche-dagwissel ===== */
.vandaag-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.vt-groet{min-width:0;flex:1 1 320px}
.vt-groet .vb-mot{margin-top:6px}
.weerkaart{flex:0 0 auto;display:flex;flex-direction:column;gap:9px;padding:12px 14px;border:1px solid var(--line);
  border-radius:16px;background:linear-gradient(180deg,var(--surface),var(--surface-2));box-shadow:var(--shadow-sm);max-width:100%}
.wk-nu{display:flex;align-items:center;gap:10px}
.wk-emoji{font-size:30px;line-height:1}
.wk-nu-t{display:flex;flex-direction:column;line-height:1.1}
.wk-nu-t b{font-family:var(--disp);font-size:23px;font-weight:800;letter-spacing:-.02em}
.wk-nu-t span{font-size:12px;color:var(--muted)}
.wk-uren{display:flex;gap:4px}
.wk-u{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 8px;border-radius:11px;background:var(--surface);border:1px solid var(--line-2);min-width:40px}
.wk-e{font-size:16px;line-height:1}
.wk-h{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--muted)}
.wk-t{font-size:12.5px;font-weight:800;color:var(--ink)}
@media(max-width:720px){.weerkaart{width:100%}.wk-uren{justify-content:space-between}.wk-u{flex:1}}
.sectiekop-aff{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.aff-dagen{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.aff-dagen a{display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:6px 11px;border-radius:11px;border:1px solid var(--line);
  background:var(--surface);font-size:12.5px;font-weight:800;color:var(--ink-2);line-height:1.1;transition:.14s}
.aff-dagen a small{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--faint)}
.aff-dagen a:hover{border-color:var(--slate)}
.aff-dagen a.actief{background:var(--ink);border-color:var(--ink);color:#fff}
.aff-dagen a.actief small{color:rgba(255,255,255,.7)}

/* Festivals: editie-banners + fotograaf-tags + locatiekaart */
.fest-loc-kaart{margin-bottom:12px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.fest-loc-kaart .street-vibe-map{border-radius:0}
.flk-bar{display:flex;align-items:center;gap:9px;padding:10px 13px}
.flk-pin{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;border-radius:999px;background:var(--cyan-soft);color:var(--ink);font-family:var(--mono);font-size:10px;font-weight:950;line-height:1}
.flk-bar b{font-size:14px;color:var(--ink);font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flk-link{margin-left:auto;font-size:13px;font-weight:850;color:var(--accent);white-space:nowrap}
.ed-banners{display:flex;gap:9px;flex-wrap:wrap;margin-top:11px}
.ed-banner{flex:1 1 200px;display:inline-flex;align-items:center;gap:8px;justify-content:center;border:1px solid var(--line);
  background:var(--surface);border-radius:12px;padding:11px 14px;font-size:13.5px;font-weight:700;color:var(--ink-2);cursor:pointer;transition:.14s;font-family:inherit}
.ed-banner:hover{border-color:var(--accent);color:var(--ink)}
.ed-banner.aan{background:var(--ink);color:#fff;border-color:var(--ink)}
.ed-banner .eb-ic{font-size:15px}
.ed-banner .eb-n{background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px;font-size:11.5px;font-weight:800}
.ed-banner.aan .eb-n{background:rgba(255,255,255,.25)}
.ed-paneel{display:none;margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.ed-paneel.open{display:block;animation:userDetailSlide .2s ease-out}
.ed-fot-zoekrij{display:flex;gap:8px;margin-top:11px}
.ed-fot-zoekrij .ed-fot-q{flex:1}
.ed-fot-opties{display:none;flex-wrap:wrap;gap:6px;margin-top:10px}
.ed-fot-opties.toon{display:flex}
.ed-fot-optie{display:inline}
.ed-fot-optie-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--bg-2);border-radius:999px;
  padding:5px 11px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;transition:.13s;font-family:inherit}
.ed-fot-optie-btn:hover{border-color:var(--fs-veel);background:var(--green-soft);color:var(--fs-veel)}
.ed-fot-optie-btn i{width:9px;height:9px;border-radius:50%}
.ed-fot-optie-btn b{color:var(--fs-veel);font-size:14px;line-height:1}
.ed-fot-leeg{color:var(--faint);font-size:13px;font-style:normal}

/* ===== Schema-editor: podia/dag als tags, mooie uurkeuze, geannuleerd ===== */
.se-form{display:flex;flex-direction:column;gap:8px}
.se-terug{align-self:flex-start;background:none;border:0;color:var(--accent);font-weight:800;font-size:12.5px;cursor:pointer;font-family:inherit;padding:2px 0}
.se-terug:hover{text-decoration:underline}
.se-veld-l{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:10px 0 1px}
.keuze-tags{display:flex;flex-wrap:wrap;gap:6px}
.keuze-tag{position:relative;cursor:pointer;display:inline-flex}
.keuze-tag input{position:absolute;opacity:0;width:0;height:0}
.keuze-tag span{display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:700;color:var(--ink-2);transition:.13s}
.keuze-tag input:checked + span{background:var(--ink);border-color:var(--ink);color:#fff}
.keuze-tag input:focus-visible + span{box-shadow:0 0 0 3px var(--accent-soft)}
.keuze-tag:hover span{border-color:var(--slate)}
.keuze-add{border:1px dashed var(--accent);background:var(--accent-soft);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:800;color:var(--accent);cursor:pointer;font-family:inherit}
.keuze-add:hover{filter:brightness(.97)}
.podium-nieuw{display:flex;gap:8px;margin-top:4px}
.podium-nieuw[hidden]{display:none}
.podium-nieuw .veld-in{flex:1}
/* bandveld in 'Concert toevoegen' groter en prominenter */
.se-form input[name="titel"]{font-size:16.5px;font-weight:600;padding:13px 15px;border-radius:13px}
.se-form input[name="titel"]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.se-uur-rij{display:flex;align-items:center;gap:10px}
/* vervang-modus in het toevoeg-formulier */
.se-vervang{margin-top:12px;padding:12px 14px;border:1px solid color-mix(in oklch,var(--green) 40%,var(--line));border-radius:13px;background:var(--green-soft)}
.se-vervang[hidden]{display:none}
.se-vervang-check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;font-weight:700;color:var(--green-ink);line-height:1.4;cursor:pointer}
.se-vervang-check input{margin-top:2px;width:18px;height:18px;flex:none;accent-color:var(--green)}
.se-vervang-check b{font-weight:900}
.se-uur-rij .veld-in{flex:1;font-family:var(--mono);font-size:15px;text-align:center}
.se-uur-tot{color:var(--muted);font-size:13px;font-weight:600;flex:0 0 auto}
/* geannuleerd concert blijft zichtbaar naast het vervangende */
.sch-block.geannuleerd{opacity:.7}
.sch-block.geannuleerd .bb{filter:grayscale(1) brightness(.7)}
.sch-block.geannuleerd .bn{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--pink)}
.sch-block .b-geannuleerd{position:absolute;top:6px;left:6px;z-index:5;background:var(--red);color:#fff;font-size:8px;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.45)}

/* affiche-dagknoppen (in-place wisselen) */
.aff-dagen .aff-dag{display:inline-flex;flex-direction:column;align-items:center;gap:1px;min-width:52px;padding:6px 11px;border-radius:11px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:800;color:var(--ink-2);line-height:1.1;transition:.14s;cursor:pointer;font-family:inherit;white-space:nowrap}
.aff-dagen .aff-dag small{font-family:var(--mono);font-size:9.5px;font-weight:600;color:var(--faint)}
.aff-dagen .aff-dag:hover{border-color:var(--slate)}
.aff-dagen .aff-dag.actief{background:var(--ink);border-color:var(--ink);color:#fff}
.aff-dagen .aff-dag.actief small{color:rgba(255,255,255,.7)}
.aff-dagen .aff-dag-all{min-width:88px;align-items:flex-start;text-align:left;padding-inline:13px}
.affiche-alle-dagen{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;align-items:stretch}
.aff-day-card{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:245px;border-radius:18px;background:var(--ink);padding:15px;box-shadow:var(--shadow-sm)}
.aff-day-card::before{content:"";position:absolute;inset:0;background:
  radial-gradient(70% 52% at 0% 0%, color-mix(in oklch,var(--accent) 82%,transparent), transparent 64%),
  radial-gradient(64% 52% at 100% 4%, color-mix(in oklch,var(--cyan) 58%,transparent), transparent 62%),
  radial-gradient(70% 58% at 84% 116%, color-mix(in oklch,var(--pink) 56%,transparent), transparent 62%);opacity:.46}
.aff-day-card > *{position:relative;z-index:1}
.aff-day-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:#fff}
.aff-day-card-head span{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.66)}
.aff-day-card-head b{font-family:var(--disp);font-size:25px;font-weight:900;letter-spacing:-.04em;color:#fff;line-height:.9}
.aff-day-card-top{display:grid;gap:8px;margin-top:14px}
.aff-day-top{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-family:var(--disp);font-size:20px;font-weight:850;letter-spacing:-.03em;line-height:1.05;cursor:help;transition:transform .14s}
.aff-day-top:hover{transform:translateX(3px)}
.aff-day-top i{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:center/cover no-repeat;box-shadow:0 0 0 2px rgba(255,255,255,.82),0 5px 14px rgba(0,0,0,.32)}
.aff-day-card-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}
.aff-day-card-list span,.aff-day-card-list em{display:inline-flex;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:6px 9px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.82);font-size:11.5px;font-weight:750;line-height:1.1;font-style:normal}
.aff-day-card-list span{cursor:help;transition:background .14s,color .14s}
.aff-day-card-list span:hover{background:rgba(255,255,255,.18);color:#fff}
.aff-day-card-list em{background:rgba(255,255,255,.18);color:#fff}
.aff-day-empty{margin:auto 0 0;color:rgba(255,255,255,.72);font-size:13px;font-weight:700}
@media(min-width:1180px){.affiche-alle-dagen{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}
@media(max-width:900px){.affiche-alle-dagen{grid-template-columns:repeat(2,minmax(0,1fr))}.aff-day-card{min-height:0}}
@media(max-width:640px){
  .sectiekop-aff{align-items:flex-start}
  .aff-dagen{width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .aff-dagen::-webkit-scrollbar{display:none}
  .aff-dagen .aff-dag{flex:0 0 auto}
  .affiche-alle-dagen{grid-template-columns:1fr;gap:10px}
  .aff-day-card{border-radius:16px;padding:14px}
  .aff-day-card-head b{font-size:22px}
  .aff-day-top{font-size:18px}
  .aff-day-card-list{gap:5px}
  .aff-day-card-list span,.aff-day-card-list em{font-size:10.5px;padding:5px 7px}
}

/* fs-opties ook tonen bij klik (touch/echt aanduiden) */
.fs-wrap.toon-opties .fs-options{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%) translateX(0)}
@media(max-width:680px){.fs-wrap.toon-opties .fs-options{transform:translateY(0)}}
/* tekst-invoer in de confirm-box */
.cf-input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 13px;font-size:14.5px;font-family:inherit;
  background:var(--surface);color:var(--ink);outline:none;margin-bottom:16px}
.cf-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.confirm-acties .cf-ja-prim{background:var(--accent)}
.confirm-acties .cf-ja-prim:hover{filter:brightness(1.06)}

/* ===== Artiestkaart: submenu Luister/Video's, grotere speler, expand omschrijving ===== */
.artist-media{margin-top:15px}
/* Onder de info: links de tekst, rechts de audio + weetjes */
.am-onder{display:flex;gap:22px;align-items:flex-start;margin-top:6px}
.am-onder-2 > *{flex:1 1 0;min-width:0}
.am-onder-links{flex:1.05 1 0;margin-top:14px}
.am-onder-rechts{display:flex;flex-direction:column;gap:16px;margin-top:0}
.am-onder .artist-media{margin-top:0}
.am-onder .artist-weetjes{margin:22px 0 0}
.am-onder .aw-kop{display:flex;align-items:center;justify-content:flex-start;gap:10px}
@media(max-width:720px){.am-onder{flex-direction:column;gap:14px}}
/* speler v2: albumhoes ín de ronde play-knop, met pijltjes tijdens het afspelen */
.am-player.am-player-v2{display:flex;align-items:center;gap:13px;cursor:default;grid-template-columns:none}
.am-cover-btn{position:relative;flex:0 0 70px;width:70px;height:70px;border-radius:50%;padding:0;border:0;background:none;cursor:pointer;overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.am-cover-btn .am-np-art{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;background:var(--ink) center/cover no-repeat;display:grid;place-items:center;box-shadow:none}
.am-cover-btn .am-np-note{color:rgba(255,255,255,.75);font-size:24px}
.am-cover-btn .am-np-art.heeft .am-np-note{display:none}
.am-cover-btn .am-play-icon{position:absolute;inset:0;display:grid;place-items:center;font-size:23px;color:#fff;background:rgba(0,0,0,.3);border-radius:50%;transition:.13s;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.am-cover-btn:hover .am-play-icon{background:rgba(0,0,0,.45)}
.am-player-v2.speelt .am-cover-btn .am-play-icon{background:rgba(0,0,0,.22)}
/* volgend-nummer-knop verschijnt pas bij het afspelen (schuift mooi in) */
/* volgend-nummer-knop: pas zichtbaar tijdens het afspelen (zo staat de tekst dicht tegen play als er nog geen knop is) */
.am-skip{display:none;flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;place-items:center;transition:border-color .12s,color .12s,transform .12s;font-family:inherit;padding:0}
.am-skip svg{flex:none}
.am-skip:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.06)}
.am-player-v2.speelt .am-skip{display:grid;animation:amSkipIn .26s cubic-bezier(.2,.9,.2,1)}
@keyframes amSkipIn{0%{opacity:0;transform:translateX(-6px)}100%{opacity:1;transform:translateX(0)}}
.am-player-v2 .am-np-info{flex:1;min-width:0;transition:transform .26s cubic-bezier(.2,.9,.2,1)}
/* crew: camera-icoon i.p.v. roze bolletje */
.artist-crew-tag .acc-cam{display:inline-flex;align-items:center;flex:0 0 auto;color:var(--muted)}
.artist-crew-tag .artist-crew-num{display:none}
.artist-sheet-sidebar .artist-rail .artist-crew-tag .acc-cam{color:rgba(255,255,255,.6)}
.artist-sheet-sidebar .artist-rail .artist-crew-tag.done .acc-cam{color:var(--fs-veel)}
/* Desktop-kaartje (lichte rail): het camera-icoontje was wit op een lichte pil → onzichtbaar.
   Maak er een duidelijke ronde accent-badge van, met hover-om-te-verwijderen en een lichte +. */
@media(min-width:861px){
  .artist-sheet-sidebar .artist-rail .artist-crew-tag .acc-cam{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);justify-content:center}
  .artist-sheet-sidebar .artist-rail .artist-crew-tag .acc-cam svg{width:16px;height:16px}
  .artist-sheet-sidebar .artist-rail .artist-crew-tag.done .acc-cam{background:var(--green-soft);color:var(--green-ink)}
  .artist-sheet-sidebar .artist-rail .artist-crew-tag.let-op .acc-cam{background:var(--warm-soft);color:var(--warm-ink)}
  /* over de naam gaan → kleurt rood: dan kun je de fotograaf weghalen (× verschijnt rechts) */
  .artist-sheet-sidebar .artist-rail .artist-crew-tag:hover{background:color-mix(in oklch,var(--red) 7%,#fff);border-color:color-mix(in oklch,var(--red) 38%,var(--line))}
  /* duidelijke lichte "+"-knop om een fotograaf toe te voegen */
  .artist-sheet-sidebar .artist-rail .artist-crew-add-tag{background:var(--accent-soft);border:1.5px dashed color-mix(in oklch,var(--accent) 50%,var(--line-2));color:var(--accent)}
  .artist-sheet-sidebar .artist-rail .artist-crew-add-tag:hover{border-style:solid;border-color:var(--accent);background:color-mix(in oklch,var(--accent) 14%,#fff)}
}
/* hartje met label op de foto */
.am-foto-hart .amfh-tx{font-size:12.5px;font-weight:850}
.am-foto-hart .amfh-ic{font-size:20px;line-height:1}
/* extra opmerking-veld in status-paneel: pas tonen na een keuze */
.am-status .am-status-opm{display:none}
.am-status.st-ja .am-status-opm,.am-status.nee-kozen .am-status-opm{display:flex}
/* subtiele audio-animatie rechtsboven in het luister-kader */
.am-card{position:relative}
.am-wave-mini{position:absolute;top:auto;bottom:19px;right:16px;height:14px;display:flex;align-items:flex-end;gap:2.5px;opacity:0;transition:opacity .2s;z-index:2;margin:0;pointer-events:none}
.am-wave-mini i{width:2.5px;height:3px;min-width:0;border-radius:2px;background:var(--accent)}
.am-card.speelt .am-wave-mini{opacity:.85}
.am-card.speelt .am-wave-mini i{animation:amWaveMini .85s infinite ease-in-out}
.am-card.speelt .am-wave-mini i:nth-child(2){animation-delay:.14s}
.am-card.speelt .am-wave-mini i:nth-child(3){animation-delay:.28s}
.am-card.speelt .am-wave-mini i:nth-child(4){animation-delay:.1s}
@keyframes amWaveMini{0%,100%{height:3px}50%{height:13px}}
/* video: vast 16:9-kader (vooraf getekend) met loader, standaard 1 video */
.am-videos-blok{margin-top:0}
.artist-videos-mini{display:grid;gap:11px}
.artist-videos-mini .av-item{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .14s,box-shadow .14s}
.artist-videos-mini .av-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.artist-videos-mini .av-item .av-thumb{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center}
.artist-videos-mini .av-item iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
/* 2 video's tonen, de rest verbergen (geen 'toon meer') */
.artist-videos-mini .av-item ~ .av-item ~ .av-item{display:none}
/* vooraf getekend kader met loader */
/* twee 16:9-skeletons met shimmer terwijl de video's laden */
/* de twee laad-skeletten vallen meteen in hetzelfde 2-koloms videoraster (geen groot→klein-sprong) */
.artist-videos-mini #am-videos-loader{display:contents}
.av-skel{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--bg-2)}
.av-skel::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,color-mix(in oklch,#fff 70%,var(--bg-2)) 50%,transparent 80%);background-size:220% 100%;animation:avShimmer 1.25s infinite linear}
.av-skel::after{content:"";position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(0,0,0,.06);backdrop-filter:blur(2px)}
.av-skel:nth-child(2)::before{animation-delay:.2s}
@keyframes avShimmer{0%{background-position:160% 0}100%{background-position:-160% 0}}
@keyframes avPulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
.am-video-meer{margin-top:9px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800;cursor:pointer;font-family:inherit;transition:.12s}
.am-video-meer:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:860px){.am-video-meer{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}}
/* Concert wijzigen: knop + venster */
/* wijzig-knop klein, naast de artiestennaam op de foto */
.am-titel-rij{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.am-titel-rij h2{margin:0}
.artist-wijzig{flex:0 0 auto;width:30px;height:30px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);color:#fff;cursor:pointer;display:grid;place-items:center;transition:.14s;align-self:flex-end;margin-bottom:3px}
.artist-wijzig[hidden]{display:none}
.artist-wijzig:hover{background:rgba(0,0,0,.62);border-color:rgba(255,255,255,.6)}
.artist-wijzig[hidden]{display:none}
.artist-wijzig:hover{background:rgba(0,0,0,.66);transform:translateY(-1px)}
.am-edit{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:rgba(10,12,20,.52);backdrop-filter:blur(3px)}
.am-edit[hidden]{display:none}
.am-edit-kaart{width:100%;max-width:420px;background:var(--surface);border-radius:18px;box-shadow:0 30px 70px -24px rgba(0,0,0,.6);padding:18px;display:flex;flex-direction:column;gap:12px}
.am-edit-kop{display:flex;align-items:center;justify-content:space-between}
.am-edit-kop h3{margin:0;font-family:var(--disp);font-size:20px;font-weight:900;letter-spacing:-.02em}
.am-edit-x{border:0;background:var(--bg-2);width:32px;height:32px;border-radius:50%;font-size:19px;color:var(--ink-2);cursor:pointer;line-height:1}
.am-edit-veld{display:flex;flex-direction:column;gap:5px}
.am-edit-veld>span{font-size:11.5px;font-weight:800;color:var(--muted)}
.am-edit-veld input,.am-edit-veld select{border:1.5px solid var(--line-2);border-radius:11px;padding:10px 12px;font:600 14px var(--body);color:var(--ink);background:var(--surface);width:100%}
.am-edit-veld input:focus,.am-edit-veld select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.am-edit-rij{display:flex;gap:10px}
.am-edit-rij .am-edit-veld{flex:1}
/* dag/podium als tags in het wijzig-venster */
.am-edit-tags{display:flex;flex-wrap:wrap;gap:7px}
.am-edit-tag{border:1.5px solid var(--line-2);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;transition:.12s}
.am-edit-tag:hover{border-color:var(--slate)}
.am-edit-tag.aan{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.am-edit-tag-add{border-style:dashed;border-color:var(--accent);color:var(--accent);background:none}
.am-edit-acties{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;flex-wrap:wrap}
.am-edit-acties-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.am-edit-annuleer{border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink-2);border-radius:9px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;padding:8px 12px}
.am-edit-annuleer:hover{border-color:var(--warm);color:var(--warm)}
.am-edit-del{border:0;background:none;color:var(--red);font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;padding:8px 4px}
.am-edit-del:hover{text-decoration:underline}
.am-edit-opslaan{border:0;border-radius:11px;background:var(--ink);color:#fff;font-size:13.5px;font-weight:900;padding:11px 22px;cursor:pointer;font-family:inherit}
.am-edit-opslaan:hover{filter:brightness(1.08)}
@media(max-width:860px){
  .artist-sheet-sidebar .am-onder-links,.artist-sheet-sidebar .am-onder-rechts{display:contents}
}
.am-tabs{display:inline-flex;gap:4px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:13px}
.am-tab{border:0;background:none;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:800;color:var(--muted);cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:7px}
.am-tab span{font-size:13px}
.am-tab.actief{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.am-mpane[hidden]{display:none}
.am-simple-player{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);box-shadow:var(--shadow-sm)}
.am-play-button{display:inline-flex;align-items:center;gap:10px;min-height:54px;border:0;border-radius:999px;padding:10px 17px;background:var(--ink);color:#fff;font-weight:950;font-family:inherit;cursor:pointer}
.am-play-button b{display:block;font-family:var(--disp);font-size:19px;line-height:1;letter-spacing:-.03em}
.am-play-button small{display:block;margin-top:2px;color:rgba(255,255,255,.68);font-size:11px;font-weight:850}
.am-play-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--cyan);color:var(--ink);font-size:12px;text-indent:2px}
.am-wave{height:38px;display:flex;align-items:end;gap:5px;min-width:0}
.am-wave i{width:9px;border-radius:999px;background:var(--cyan)}
.am-wave i:nth-child(1){height:14px}.am-wave i:nth-child(2){height:27px}.am-wave i:nth-child(3){height:18px}.am-wave i:nth-child(4){height:34px}.am-wave i:nth-child(5){height:24px}.am-wave i:nth-child(6){height:31px}.am-wave i:nth-child(7){height:16px}
.am-inline-player{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}
.am-inline-status{padding:9px 12px;border-bottom:1px solid var(--line-2);font-size:12px;font-weight:900;color:var(--muted)}
.am-inline-player iframe{display:block;width:100%;height:210px;border:0;background:#000}
.am-music-link{display:inline-block;margin-top:10px;font-size:13.5px;font-weight:800;color:#1db954}
.am-mpane[data-mpane="videos"] .artist-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:13px}
.am-mpane[data-mpane="videos"] .av-item{aspect-ratio:16/9}
.am-blurb{font-family:var(--body);font-size:16.5px;line-height:1.6;font-weight:450;color:var(--ink-2);white-space:pre-line;margin:0;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.am-blurb a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.am-blurb b{font-weight:750;color:var(--ink)}
/* genoeg witruimte tussen de tekst en de muziek/weetjes */
.artist-sheet-sidebar .am-blurb-wrap{margin-bottom:8px}
.artist-sheet-sidebar .am-onder{margin-top:18px}
/* albumhoes = play-knop: cursor + ▶/⏸ overlay */
/* (albumhoes-play-overlay nu via .am-cover-btn .am-play-icon) */
/* "Wist je dat?" als één geheel, zonder kader */
.artist-weetjes{margin:16px 0 4px;border:0;background:none;padding:0}
.artist-weetjes .aw-kop{margin-bottom:7px}
/* fotograaf-× pas tonen bij hover/focus */
/* × schuift uit aan de rechterkant bij hover, geen spatie ervoor */
.artist-sheet-sidebar .artist-crew-tag{position:relative}
.artist-sheet-sidebar .artist-crew-tag button{position:absolute;right:8px;top:50%;margin:0;transform:translate(10px,-50%);opacity:0;pointer-events:none;transition:transform .16s ease,opacity .14s ease}
.artist-sheet-sidebar .artist-crew-tag:hover button,.artist-sheet-sidebar .artist-crew-tag:focus-within button{transform:translate(0,-50%);opacity:1;pointer-events:auto}
.am-blurb.open{-webkit-line-clamp:unset;display:block;overflow:visible}
.am-meer{margin-top:7px;border:0;background:none;color:var(--accent);font-weight:800;font-size:13px;cursor:pointer;padding:2px 0;font-family:inherit}
.am-meer:hover{text-decoration:underline}
@media(max-width:860px){.artist-media{padding:12px 16px 0}.am-simple-player{grid-template-columns:1fr}.am-play-button{justify-content:center}.am-wave{justify-content:center}}

/* Artiestkaart: fotograaf-tags toevoegen */
.artist-crew-add-tag{border:1px dashed var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;transition:.13s}
.artist-crew-add-tag:hover{filter:brightness(.97)}
.am-add-note-tag{justify-self:start;display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;border:1px dashed var(--line-2);border-radius:999px;background:var(--surface-2);color:var(--ink-2);padding:8px 12px;font-size:12.5px;font-weight:900;font-family:inherit;cursor:pointer}
.am-add-note-tag::before{content:"+";display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--green-soft);color:var(--green-ink);font-family:var(--mono);font-size:13px;line-height:1}
.am-add-note-tag:hover{border-color:var(--green);background:var(--green-soft);color:var(--green-ink)}
.artist-add-crew[hidden]{display:none}
.artist-personal-note[hidden]{display:none!important}
.am-notes-head[hidden],.am-personal-note-saved[hidden]{display:none!important}
.am-personal-note-saved{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:9px}
.am-personal-note-saved p{margin:0!important;color:var(--ink-2);font-size:13.5px;font-weight:560;line-height:1.5;white-space:pre-line;word-break:break-word;padding:10px 12px;border-radius:11px;background:color-mix(in oklab,var(--accent) 9%,transparent);border-left:3px solid var(--accent)}
.am-personal-note-saved button{border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:6px 10px;font-size:12px;font-weight:900;font-family:inherit;cursor:pointer}
.am-personal-note-saved button:hover{border-color:var(--accent);color:var(--accent)}
.am-foto-opties{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:7px}
.am-foto-optie{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);background:var(--bg-2);border-radius:12px;padding:9px 10px;font-size:12.5px;font-weight:850;color:var(--ink);cursor:pointer;font-family:inherit;transition:.13s;min-width:0;text-align:left}
.am-foto-optie span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-foto-optie:hover{border-color:var(--fs-veel);background:var(--green-soft);color:var(--fs-veel)}
.am-foto-optie b{color:var(--fs-veel);font-size:14px;line-height:1}
.am-notes-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.am-notes-head h3{margin:0}
.am-notes-head button{border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:6px 10px;font-size:12px;font-weight:900;font-family:inherit;cursor:pointer}
.am-note-text{font-size:13.5px;font-weight:560;line-height:1.5;color:var(--ink-2);white-space:pre-line;word-break:break-word}
.am-note-text:not(.leeg){padding:10px 12px;border-radius:11px;background:color-mix(in oklab,var(--accent) 9%,transparent);border-left:3px solid var(--accent)}
/* opmerking als oranje balk (zoals in mijn lijstje), met klein wijzig-knopje */
.artist-festival-notes{padding:0 !important;border-top:0 !important;margin:14px 0 0}
.am-note-pill{display:inline-flex;align-items:center;gap:9px;max-width:100%;background:var(--warm-soft);color:var(--warm-ink);border-radius:13px;padding:10px 14px}
.am-note-pill[hidden]{display:none}
.am-note-flag{flex:none;opacity:.85}
.am-note-pill .am-note-text{min-width:0;padding:0 !important;border:0 !important;background:none !important;font-size:14.5px;font-weight:750;color:var(--warm-ink)}
.am-note-wijzig{flex:none;margin-left:4px;border:0 !important;background:rgba(255,255,255,.5) !important;color:var(--warm-ink) !important;border-radius:9px;padding:5px 11px;font-size:12px;font-weight:900;cursor:pointer;font-family:inherit}
.am-note-wijzig:hover{background:rgba(255,255,255,.85) !important}
.am-note-text.leeg{color:var(--muted);font-weight:600}
.am-note-form{display:grid;gap:8px}
.am-note-form[hidden]{display:none}
.am-note-form textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:10px 11px;font:750 13.5px var(--body);line-height:1.45}
/* De echte concert-opmerking bewerken: het invulvak ziet er identiek uit als het oranje balkje (zelfde lettertype, kleur & vorm) — alsof je rechtstreeks in de tekst typt. */
#am-note-form textarea{border:0;border-radius:13px;background:var(--warm-soft);color:var(--warm-ink);padding:10px 14px;font:750 14.5px/1.5 var(--body)}
#am-note-form textarea::placeholder{color:var(--warm-ink);opacity:.5}
#am-note-form textarea:focus{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.am-note-form div{display:flex;gap:8px}
.am-note-form button{border:0;border-radius:11px;padding:9px 12px;background:var(--ink);color:#fff;font-size:12.5px;font-weight:900;font-family:inherit;cursor:pointer}
.am-note-form button[type="button"]{background:var(--bg-2);color:var(--ink-2)}
.am-note-scope{display:flex!important;gap:5px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);width:max-content;max-width:100%}
.am-note-scope button{border-radius:999px!important;background:transparent!important;color:var(--muted)!important;padding:7px 10px!important;font-size:12px!important}
.am-note-scope button.actief{background:var(--ink)!important;color:#fff!important}
.am-public-notes{display:grid;gap:7px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line-2)}
.am-public-notes[hidden]{display:none}
.am-public-notes>b{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:950}
.am-public-notes div{padding:8px 0 0;border:0;border-top:1px solid var(--line-2);border-radius:0;background:transparent}
.am-public-notes span{display:block;font-size:12px;font-weight:950;color:var(--ink)}
.am-public-notes p{margin:3px 0 0!important;font-size:13px!important;line-height:1.4!important;color:var(--ink-2)!important;white-space:pre-line}

@media(max-width:860px){
  .artist-modal{display:flex;align-items:flex-end;justify-content:center;padding:0}
  .artist-modal-backdrop{background:oklch(0.18 0.02 255/.48);backdrop-filter:blur(6px)}
  .artist-sheet{
    width:100%;max-height:90dvh;border-radius:28px 28px 0 0;background:oklch(0.285 0.026 252);border-color:oklch(0.39 0.03 250);
    color:#fff;box-shadow:0 -24px 62px rgba(0,0,0,.34);animation:artistSheetUp .34s cubic-bezier(.2,.85,.22,1);padding-bottom:calc(12px + env(safe-area-inset-bottom));
    transform:translateY(var(--artist-sheet-y,0px));transition:transform .24s cubic-bezier(.2,.85,.22,1),opacity .18s ease;touch-action:pan-y;will-change:transform
  }
  .artist-modal.sheet-dragging .artist-sheet{transition:none;animation:none}
  .artist-modal.sheet-closing{pointer-events:none}
  .artist-modal.sheet-closing .artist-modal-backdrop{opacity:0}
  .artist-modal.sheet-closing .artist-sheet{animation:none;transform:translateY(112%) scale(.95)!important;opacity:.55;
    transition:transform .34s cubic-bezier(.45,.02,.22,1),opacity .28s ease}
  .artist-sheet::before{content:"";position:sticky;top:8px;z-index:4;display:block;width:42px;height:5px;border-radius:999px;background:rgba(255,255,255,.22);margin:9px auto 3px}
  .artist-close{right:14px;top:15px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);color:#fff}
  .artist-hero{height:auto;min-height:150px;display:grid;grid-template-columns:116px minmax(0,1fr);gap:14px;align-items:end;padding:16px 16px 10px;background:transparent;overflow:visible}
  .artist-hero img{width:116px;height:132px;border-radius:19px;object-fit:cover;border:1px solid rgba(255,255,255,.13);box-shadow:0 18px 34px rgba(0,0,0,.32)}
  .artist-hero-grad{display:none}
  .artist-hero-copy{position:static;align-self:center;color:#fff;min-width:0}
  .artist-hero-copy span{margin-bottom:8px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);color:#fff}
  .artist-hero-copy h2{font-size:clamp(31px,9vw,43px);line-height:.93;color:#fff}
  .artist-hero-copy p{margin-top:7px;color:rgba(255,255,255,.72);font-size:12px}
  .artist-info-grid{display:flex;flex-direction:column;gap:13px;padding:0 16px 18px;color:#fff}
  .artist-info-grid>div:first-child{display:flex;flex-direction:column;gap:0}
  .artist-info-grid h3{color:#fff;font-size:18px}
  .artist-info-grid p,.am-blurb{color:rgba(255,255,255,.74);font-size:14px;line-height:1.52}
  .artist-side{order:-1;gap:6px}
  .artist-crew,.artist-festival-notes,.artist-personal-note,.artist-history-wrap{
    border:0;border-top:1px solid rgba(255,255,255,.12);background:transparent;border-radius:0;color:rgba(255,255,255,.80);padding:12px 0 0
  }
  .am-add-note-tag{border-color:rgba(255,255,255,.20);background:rgba(255,255,255,.13);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
  .am-add-note-tag::before{background:var(--cyan);color:var(--ink)}
  .am-add-note-tag:hover{background:rgba(255,255,255,.17);color:#fff}
  .artist-crew-tags{gap:7px}
  .artist-crew-tag,.artist-empty-crew,.artist-history div{
    background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.13);color:#fff
  }
  .artist-crew-tag button{background:rgba(255,255,255,.18);color:#fff}
  .artist-crew-add-tag{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
  .artist-add-crew{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
  .am-foto-opties{display:grid;grid-template-columns:1fr;max-height:190px;overflow:auto;padding-right:2px}
  .am-foto-optie{justify-content:space-between;background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.13);color:#fff;border-radius:14px;padding:11px 12px}
  .artist-chips span{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.12)}
  .artist-media{padding:13px 0 0;border-top-color:rgba(255,255,255,.11)}
  .am-tabs{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
  .am-tab{color:rgba(255,255,255,.68)}
  .am-tab.actief{background:rgba(255,255,255,.14);color:#fff;box-shadow:none}
  .am-simple-player{grid-template-columns:1fr;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);box-shadow:none}
  .am-play-button{width:100%;justify-content:center;background:var(--cyan);color:var(--ink)}
  .am-play-button small{color:rgba(0,0,0,.56)}
  .am-wave{justify-content:center}
  .am-inline-player{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12);box-shadow:none}
  .am-inline-status{border-bottom-color:rgba(255,255,255,.10);color:rgba(255,255,255,.7)}
  .am-inline-player iframe{height:190px}
  .am-music-link{display:none}
  .am-note-text{color:rgba(255,255,255,.82)}
  .am-note-text.leeg{color:rgba(255,255,255,.52)}
  .am-notes-head button,.am-note-form textarea{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.13);color:#fff}
  .am-note-form textarea::placeholder{color:rgba(255,255,255,.42)}
  .am-note-form button{background:var(--cyan);color:var(--ink)}
  .am-note-form button[type="button"]{background:rgba(255,255,255,.12);color:#fff}
  .am-personal-note-saved p{color:rgba(255,255,255,.82)!important}
  .am-personal-note-saved button{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.14);color:#fff}
  .am-note-scope{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13)}
  .am-note-scope button{color:rgba(255,255,255,.68)!important}
  .am-note-scope button.actief{background:var(--cyan)!important;color:var(--ink)!important}
  .am-public-notes{border-top-color:rgba(255,255,255,.12)}
  .am-public-notes>b{color:rgba(255,255,255,.52)}
  .am-public-notes div{background:transparent;border-color:rgba(255,255,255,.12)}
  .am-public-notes span,.am-public-notes p{color:#fff!important}
  .artist-history span{color:rgba(255,255,255,.62)}
  .av-leeg{color:rgba(255,255,255,.68)}
}
@keyframes artistSheetUp{from{transform:translateY(100%)}to{transform:translateY(var(--artist-sheet-y,0px))}}

/* Groot "Admin paneel" titel bovenaan elke adminpagina */
.admin-paneel-kop{margin:2px 0 16px}
.admin-paneel-kop h1{font-family:var(--disp);font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1}
.admin-paneel-kop span{display:block;color:var(--muted);font-size:13px;font-weight:600;margin-top:3px}
/* Gebruikers: festivaltoegang-kop + popup */
.user-festival-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 9px}
.user-festival-head>span{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.user-festival-list{display:flex;flex-wrap:wrap;gap:7px}
.fest-toewijs-pop{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px}
.fest-toewijs-pop[hidden]{display:none}
.ftp-back{position:absolute;inset:0;background:oklch(0.2 0.03 260/.45);backdrop-filter:blur(3px)}
.ftp-box{position:relative;background:var(--surface);border-radius:18px;width:100%;max-width:440px;max-height:80vh;overflow:auto;padding:18px;box-shadow:0 30px 70px -20px rgba(20,24,40,.55)}
.ftp-kop{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.ftp-kop b{font-family:var(--disp);font-size:20px;font-weight:800;letter-spacing:-.02em}
.ftp-x{border:0;background:var(--bg-2);width:30px;height:30px;border-radius:50%;font-size:17px;cursor:pointer;color:var(--ink-2)}
.ftp-zoek{width:100%;margin-bottom:12px}
.ftp-lijst{display:flex;flex-direction:column;gap:12px}
.ftp-fam-naam{font-family:var(--disp);font-size:15px;font-weight:800;letter-spacing:-.02em;margin-bottom:5px}
.ftp-jaren{display:flex;flex-wrap:wrap;gap:6px}
.ftp-jaar{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;font-family:var(--mono);transition:.13s}
.ftp-jaar:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Schema top-balk v2: stats als tekst, één bewerk-knop + layout-iconen */
.sch-kop{align-items:flex-start}
.sch-kop-l{min-width:0}
.sch-stats{font-size:13.5px;margin-top:4px;color:var(--ink-2)}
.sch-kop-r .sch-stats{margin:0;text-align:right}
.org-pop-list button.toegewezen{opacity:.65;color:var(--fs-veel);cursor:default;border-color:color-mix(in oklch,var(--fs-veel) 40%,transparent)}
.sch-stats b{color:var(--ink);font-weight:800}
.sch-stats .ss-mut{color:var(--muted)}
.sch-kop-r{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-left:auto}
.sch-kop-r .sch-day-progress{position:relative}
.sch-nogtedoen{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:11px;padding:9px 14px;font-size:13px;font-weight:700;color:var(--ink-2);background:var(--surface);white-space:nowrap}
.sch-nogtedoen::-webkit-details-marker{display:none}
.sch-nogtedoen::before{content:"📸 "}
.sch-kop-r .sch-day-progress[open] .sch-nogtedoen{background:var(--ink);color:#fff;border-color:var(--ink)}
.sch-edit-knop{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:0;border-radius:11px;padding:9px 16px;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:.14s}
.sch-edit-knop:hover{background:var(--accent)}
@media(max-width:860px){.sch-kop-r{width:100%;margin-left:0}.sch-edit-knop{flex:1;justify-content:center}}

/* Live-kop in huisstijl */
.live-signal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 var(--red);animation:nuBlink 1.6s infinite;vertical-align:middle;margin-right:5px}
.live-head-stats{display:flex;gap:18px;flex-wrap:wrap}
.live-head-stats span{font-size:13px;color:var(--muted)}
.live-head-stats b{font-family:var(--disp);font-size:20px;font-weight:800;color:var(--ink);margin-right:5px;letter-spacing:-.02em}

/* Hartjesregen bij toevoegen aan lijstje */
.hartje-vlieg{position:fixed;z-index:2000;pointer-events:none;color:var(--pink);transform:translate(-50%,-50%);opacity:0;
  text-shadow:0 1px 4px rgba(0,0,0,.25);animation:hartVlieg 1.3s cubic-bezier(.3,.7,.3,1) forwards}
@keyframes hartVlieg{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}14%{opacity:1}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.4) rotate(var(--rot,8deg))}}

/* Admin: festivals als tags boven het kader */
.fest-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:11px}
.fest-tag{display:inline-flex;align-items:center;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:700;color:var(--ink-2);transition:.13s}
.fest-tag:hover{border-color:var(--slate);color:var(--ink)}
.fest-tag.aan{background:var(--ink);border-color:var(--ink);color:#fff}
.fest-tag-add{width:32px;height:32px;border-radius:50%;border:1px dashed var(--accent);background:var(--accent-soft);color:var(--accent);font-size:18px;font-weight:700;cursor:pointer;line-height:1;font-family:inherit}
.fest-tag-add:hover{filter:brightness(.97)}
.fest-tag-zoek{max-width:200px}

/* Schema organiseer-modus */
.sch-org-knop{background:var(--genoeg,#347474)}
.sch-org-knop.aan{background:var(--accent)}
body.organiseer-modus .sch-block .b-acts{display:none}
body.organiseer-modus .sch-scroll{outline:2px dashed var(--accent);outline-offset:-4px;border-radius:14px}

/* Menu-zoekresultaten: groter kaartje, opent artiestpopup, boven alles */
#nav-search-results{z-index:1500}
.nav-result{display:flex;align-items:stretch;gap:0;width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:0;border-radius:16px;overflow:hidden;font-family:inherit;transition:.12s}
.nav-result:hover{background:var(--bg-2)}
.nav-result .nav-result-img{flex:0 0 auto;width:104px;align-self:stretch;min-height:104px;border-radius:0;background:var(--bg-2) center/cover no-repeat;box-shadow:none}
.nav-result .nav-result-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;justify-content:center;padding:12px 6px 12px 15px}
.nav-result .nav-result-main b{font-family:var(--disp);font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-result .nav-result-main small{font-size:13px;font-weight:700;color:var(--muted)}
.nav-dag{font-weight:800;color:var(--accent)}
.nav-result .nav-result-crew{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.nav-result .nav-result-crew em{font-style:normal;font-size:12.5px;font-weight:700;background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:4px 11px;color:var(--ink-2)}
.nav-result .nav-result-crew em.empty{color:var(--faint);background:none;border:0;padding:0}
.nav-result .nav-result-status{flex:0 0 auto;font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:5px 10px;white-space:nowrap;align-self:flex-start}
.nav-result .nav-result-status.ok{background:var(--green-soft);color:var(--green-ink)}
.nav-result .nav-result-status.todo{background:var(--bg-2);color:var(--ink-2)}
.nav-result .nav-result-status.warn{background:oklch(0.95 0.06 60);color:oklch(0.5 0.13 60)}

.admin-affiche-wrap{margin-bottom:18px}

/* ===== Admin mobiel: strak, app-achtig en zonder horizontale tabellen ===== */
.band-admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.band-search-form{flex:1 1 230px}
.band-search-form .veld-in{width:240px;max-width:100%}
.band-new-form{display:flex;gap:8px;flex:1 1 310px}
.band-new-form .veld-in{width:220px;max-width:100%;flex:1 1 180px}
.band-enrich-form{margin-left:auto}

@media(max-width:860px){
  .content.admin-screen{
    max-width:none;
    padding:16px 14px calc(112px + env(safe-area-inset-bottom));
  }
  .content.admin-screen .admin-page{padding-bottom:12px}
  .admin-paneel-kop{margin:0 0 10px;padding:0 2px}
  .admin-paneel-kop h1{font-size:27px;letter-spacing:0;line-height:1.02}
  .admin-head{gap:11px;margin:0 0 16px}

  /* Compacte, horizontaal scrollbare pillenbalk i.p.v. een hoog 2-koloms blok. */
  .admin-tabs{
    display:flex;
    gap:7px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    margin:0 -14px;
    padding:2px 14px 8px;
    border:0;
    border-radius:0;
    background:transparent;
    scroll-snap-type:x proximity;
  }
  .admin-tabs::-webkit-scrollbar{display:none}
  .admin-tabs a,.admin-ga-festival{
    flex:0 0 auto;
    scroll-snap-align:start;
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 15px;
    border:1px solid var(--line);
    border-radius:999px;
    background:var(--surface);
    color:var(--ink-2);
    font-size:13.5px;
    font-weight:800;
    line-height:1.1;
    text-align:center;
    box-shadow:var(--shadow-sm);
    white-space:nowrap;
  }
  .admin-tabs a.actief{
    background:var(--ink);
    border-color:var(--ink);
    color:#fff;
    box-shadow:0 10px 20px -14px var(--ink);
  }
  .admin-ga-festival{
    margin-left:4px;
    background:var(--accent);
    border-color:var(--accent);
    color:#fff;
  }

  .fest-tags{
    flex-wrap:nowrap;
    overflow-x:auto;
    gap:7px;
    margin:0 -14px 10px;
    padding:0 14px 4px;
    scrollbar-width:none;
  }
  .fest-tags::-webkit-scrollbar{display:none}
  .fest-tag{flex:0 0 auto;min-height:38px;font-size:13.5px}
  .fest-tag-add{flex:0 0 38px;width:38px;height:38px}
  .fest-tag-zoek{flex:0 0 190px;max-width:190px}

  .admin-context{
    grid-template-columns:1fr;
    gap:12px;
    padding:14px;
    border-radius:16px;
    margin-bottom:0;
  }
  .admin-context-title{
    font-size:32px;
    letter-spacing:-.02em;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  .admin-context-meta{gap:6px;font-size:12px}
  .admin-context-meta span+span::before{display:none}
  .ed-dots{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
  .ed-dots::-webkit-scrollbar{display:none}
  .ed-dots a{flex:0 0 auto;min-height:36px}
  .admin-content-tabs{
    display:grid;
    gap:9px;
    padding-top:12px;
  }
  .admin-content-tabs>div{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
  }
  .admin-content-tabs a{
    min-height:46px;
    padding:10px 11px;
    border-radius:13px;
    font-size:14px;
    white-space:normal;
  }

  .content.admin-screen h1.groet{font-size:28px!important;letter-spacing:0;line-height:1.02}
  .content.admin-screen .lead{font-size:14.5px;line-height:1.45;margin-bottom:14px}
  .admin-hero,.live-hero{padding:16px;border-radius:17px;margin-bottom:14px}
  .admin-hero h1,.live-hero h1{font-size:29px;letter-spacing:0}
  .admin-hero-action,.admin-primary-button{width:100%;min-height:46px}
  .admin-message{border-radius:14px;padding:12px 13px}

  .mini-knop{
    min-height:42px;
    justify-content:center;
    padding:10px 13px;
    border-radius:12px;
    font-size:14px;
    font-weight:850;
  }
  select.veld-sel,input.veld-in,textarea.veld-in,textarea.veld-tx{
    width:100%;
    min-height:44px;
    border-radius:12px;
    padding:10px 12px;
    font-size:16px;
  }
  input[type=color].veld-in{min-height:44px;padding:4px}
  .content.admin-screen form[style*="display:flex"]{
    display:grid!important;
    grid-template-columns:1fr;
    align-items:stretch!important;
  }
  .content.admin-screen form[style*="display:flex"] .veld-in,
  .content.admin-screen form[style*="display:flex"] .veld-sel,
  .content.admin-screen form[style*="display:flex"] .mini-knop{
    width:100%!important;
    min-width:0!important;
  }

  .gebr-toolbar,.band-admin-toolbar{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .gebr-zoek,.band-search-form,.band-new-form,.band-enrich-form{
    width:100%;
    margin-left:0;
    flex:auto;
  }
  .band-search-form .veld-in,.band-new-form .veld-in,.band-new-form .mini-knop,.band-enrich-form .mini-knop,
  .gebr-add-toggle{
    width:100%;
  }
  .band-new-form{display:grid;grid-template-columns:1fr;gap:8px}
  .gebr-add-card,.fest-add,.schema-import-card,.settings-card,.faq-admin-side,.faq-admin-chapter{
    border-radius:16px;
  }
  .gebr-add-card,.fest-add,.schema-import-card,.settings-card{padding:14px}
  .gebr-add-grid,.user-edit-grid,.bd-velden{
    grid-template-columns:1fr;
    gap:9px;
  }
  .gebr-add-grid label.sm,.user-edit-grid label.sm{max-width:none}

  .fest-add-kop,.gebr-add-kop{display:grid;gap:3px}
  .fest-add-rij{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .fest-add-rij .veld-in,
  .fest-add-rij .veld-in[type=date],
  .fest-add-rij .mini-knop{
    width:100%;
    min-width:0;
    flex:auto;
  }
  .fest-group-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:9px;
    padding:14px;
  }
  .fgh-naam{
    min-width:0;
    flex:auto;
    font-size:20px;
    letter-spacing:0;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .fgh-stats{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-left:0;
    width:100%;
  }
  .fgh-stats span{
    min-width:0;
    padding:8px 9px;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--surface-2);
    font-size:12px;
  }
  .fgh-chev{width:22px;height:22px;justify-self:end}
  .fest-group-body{padding:0 12px 12px;gap:10px}
  .fest-loc-kaart .street-vibe-map--strip{height:135px;min-height:135px}
  .flk-bar{align-items:flex-start;flex-wrap:wrap}
  .flk-link{margin-left:0}
  .ed-blok{padding:12px;border-radius:14px}
  .ed-blok-kop{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .ed-blok-kop .mini-knop{width:100%}
  .ed-blok-titel{display:block}
  .ed-blok-titel b{font-size:22px;letter-spacing:0}
  .ed-blok-sub{line-height:1.35}
  .ed-banners{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .ed-banner{
    width:100%;
    min-height:45px;
    justify-content:space-between;
  }
  .ed-paneel{padding:12px;border-radius:14px}
  .ed-wijzig-form{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .ed-wijzig-form label,.ed-wijzig-form label.sm,.ed-wijzig-form .mini-knop{width:100%;max-width:none;flex:auto}
  .ed-fot-zoekrij{display:grid;grid-template-columns:1fr;gap:8px}
  .ed-fot-opties.toon{display:grid;grid-template-columns:1fr}
  .ed-fot-optie,.ed-fot-optie-btn{width:100%}
  .ed-fot-optie-btn{justify-content:space-between;border-radius:12px;min-height:42px}
  .ed-fot-chip{
    width:100%;
    justify-content:space-between;
    border-radius:12px;
    white-space:normal;
  }
  .ed-nieuw{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .ed-nieuw .veld-in,.ed-nieuw .mini-knop{
    width:100%;
    margin-left:0;
    flex:auto;
  }

  .schema-import-head{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:start;
  }
  .schema-import-grid{grid-template-columns:1fr;gap:10px}
  .schema-drop-label{min-height:132px}
  .schema-text-top{display:grid;grid-template-columns:1fr;gap:8px}
  .admin-affiche-wrap{margin-left:-14px;margin-right:-14px}
  .content.admin-screen .dagen{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin:0 0 14px!important;
    padding:0!important;
    overflow:visible;
  }
  .content.admin-screen .dagen a{
    min-width:0;
    width:100%;
    justify-content:center;
    text-align:center;
    border-radius:14px;
  }

  .settings-card-head{display:block}
  .settings-card h2{font-size:21px;letter-spacing:0}
  .settings-row{
    grid-template-columns:1fr;
    gap:8px;
    padding:12px;
    border-radius:13px;
  }
  .settings-row code{
    width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .settings-row .tag{justify-self:start}

  .admin-scroll{overflow-x:visible}
  .admin-tbl{border-collapse:separate;border-spacing:0}
  .admin-tbl:not(.user-admin-table),.admin-tbl:not(.user-admin-table) tbody,.admin-tbl:not(.user-admin-table) tr,.admin-tbl:not(.user-admin-table) td{
    display:block;
    width:100%;
  }
  .admin-tbl:not(.user-admin-table) thead{display:none}
  .admin-tbl:not(.user-admin-table) tbody{display:grid;gap:10px}
  .admin-tbl:not(.user-admin-table) tr{
    padding:12px;
    border:1px solid var(--line);
    border-radius:15px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .admin-tbl:not(.user-admin-table) td{
    padding:4px 0;
    border:0;
    min-width:0;
  }
  .admin-tbl:not(.user-admin-table) td.nm{
    font-size:16px;
    font-weight:900;
    color:var(--ink);
  }

  .user-admin-card{background:transparent;border:0;box-shadow:none}
  .user-admin-card .admin-scroll{overflow:visible}
  .user-admin-table{min-width:0!important;table-layout:auto}
  .user-admin-table,.user-admin-table tbody,.user-admin-table tr,.user-admin-table td{
    display:block;
    width:100%;
  }
  .user-admin-table thead{display:none}
  .user-admin-table tbody{display:grid;gap:10px}
  .user-admin-table tr.user-detail-row{display:none}
  /* STRAKKE mobiele kaart (2026-07-12): naam bovenaan over de volle breedte,
     daaronder één compacte rij met rol · toegang · verwijderen. Vroeger stond
     alles gestapeld met volle-breedte selects en een metersbrede rode knop. */
  .user-admin-table tr:not(.user-detail-row){
    padding:10px 12px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
    display:grid;
    grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;
    gap:8px;
    align-items:center;
  }
  .user-admin-table tr:not(.user-detail-row) td{
    padding:0;
    border:0;
    text-align:left!important;
    min-width:0;
  }
  .user-admin-table tr:not(.user-detail-row) td:first-child{grid-column:1/-1;padding-bottom:2px}
  .user-main-cell{
    align-items:center;
    gap:10px;
  }
  .user-main-cell .avatar{width:38px!important;height:38px!important;font-size:12px!important}
  .user-main-text b{font-size:15px;line-height:1.15;white-space:normal}
  .user-main-text small{white-space:normal;line-height:1.2;font-size:12px}
  .user-admin-table .veld-sel{min-height:38px;width:100%;font-size:13px}
  .user-access-summary{
    width:100%;
    justify-content:center;
    border-radius:11px;
    padding:8px 9px;
    font-size:12.5px;
  }
  .user-admin-table td:last-child form{width:auto}
  .user-admin-table td:last-child .mini-knop{
    width:auto;
    padding:9px 11px;
    font-size:12.5px;
  }
  .user-admin-table tr.user-detail-row.open{display:block}
  .user-detail-row td{padding:0!important;background:transparent!important}
  .user-detail-panel{
    margin:-2px 0 8px;
    padding:13px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .user-detail-head{align-items:flex-start;flex-direction:column}
  .user-edit-meta{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-bottom:12px;
  }
  .user-detail-festivals{padding:12px;border-radius:14px}
  .user-festival-head{
    align-items:stretch;
    flex-direction:column;
  }
  .user-festival-head .mini-knop{width:100%}
  .user-festival-list{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .user-festival-list .ed-fot-chip{align-items:center}

  .fest-toewijs-pop{
    align-items:flex-end;
    padding:0;
  }
  .ftp-box{
    max-width:none;
    max-height:calc(100dvh - 28px);
    border-radius:22px 22px 0 0;
    padding:16px;
  }
  .ftp-jaar{
    min-height:42px;
    padding:9px 14px;
  }

  .band-rij-head{padding:12px}
  .br-foto{width:48px;height:48px}
  .br-naam b{font-size:16px}
  .br-meta{gap:5px}
  .br-pill{font-size:11px;padding:4px 8px}
  .band-detail{padding:0 12px 13px}
  .bd-links{display:grid;grid-template-columns:1fr;align-items:stretch}
  .bd-links .mini-knop,.bd-links form,.bd-links form .mini-knop{width:100%}
  .bd-form>div[style*="display:flex"]{
    display:grid!important;
    grid-template-columns:1fr;
    gap:8px!important;
  }
  .bd-form>div[style*="display:flex"] .mini-knop{width:100%;margin-left:0!important}

  .faq-admin-layout{grid-template-columns:1fr}
  .faq-create-form{grid-template-columns:1fr!important}
  .faq-admin-stats{grid-template-columns:1fr 1fr}
  .faq-chapter-head,.faq-question-card,.faq-question-new{grid-template-columns:1fr}
  .faq-title-field input{font-size:18px;letter-spacing:0}
  .faq-chapter-actions,.faq-question-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .faq-count-pill{grid-column:1 / -1;justify-content:center;min-height:34px}
  .faq-question-actions .mini-knop,.faq-chapter-actions .mini-knop{width:100%}

  .import-van-breed div[style*="display:flex"]{
    display:grid!important;
    grid-template-columns:1fr;
    gap:8px!important;
  }
  .import-van-breed .mini-knop{width:100%}
}

@media(max-width:340px){
  .admin-tabs a,.admin-ga-festival{font-size:13.5px;padding-inline:9px}
  .fgh-stats{grid-template-columns:1fr}
  .admin-content-tabs>div{grid-template-columns:1fr}
  .faq-chapter-actions,.faq-question-actions{grid-template-columns:1fr}
}

/* Echte audiopreview-speler in de artiestkaart */
.am-simple-player{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.am-play-button{display:flex;align-items:center;gap:12px;border:0;background:none;cursor:pointer;font-family:inherit;text-align:left;flex:1;min-width:0;padding:0}
.am-play-icon{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 4px 14px -4px var(--accent);transition:.15s}
.am-simple-player.speelt .am-play-icon{background:var(--ink);box-shadow:none}
.am-play-txt{display:flex;flex-direction:column;min-width:0}
.am-play-txt b{font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-play-txt small{font-size:11.5px;color:var(--muted)}
.am-wave{display:flex;align-items:flex-end;gap:3px;height:24px;flex:0 0 auto}
.am-wave i{width:3px;height:6px;border-radius:2px;background:var(--line-2)}
.am-simple-player.speelt .am-wave i{background:var(--accent);animation:amWave .9s infinite ease-in-out}
.am-simple-player.speelt .am-wave i:nth-child(2){animation-delay:.1s}.am-simple-player.speelt .am-wave i:nth-child(3){animation-delay:.2s}
.am-simple-player.speelt .am-wave i:nth-child(4){animation-delay:.3s}.am-simple-player.speelt .am-wave i:nth-child(5){animation-delay:.15s}
.am-simple-player.speelt .am-wave i:nth-child(6){animation-delay:.25s}.am-simple-player.speelt .am-wave i:nth-child(7){animation-delay:.05s}
@keyframes amWave{0%,100%{height:6px}50%{height:22px}}
.am-player-bar{display:block;height:4px;border-radius:2px;background:var(--line);margin-top:8px;overflow:hidden}
.am-player-bar i{display:block;height:100%;width:0;background:var(--accent)}
.am-listen-links{display:flex;gap:16px;margin-top:10px}
.am-listen-links a{font-size:12.5px;font-weight:700;color:var(--muted)}
.am-listen-links a:hover{color:var(--accent)}
.am-blurb{display:block;-webkit-line-clamp:unset;overflow:visible}

.artist-click{cursor:pointer}
.rij.artist-click:hover{background:var(--bg-2)}

/* Fototeam-pagina */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:8px}
.team-kaart{border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm);transition:.16s}
.team-kaart:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.tk-avatar{position:relative;height:140px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--disp);font-size:42px;font-weight:800;background-position:center;background-size:cover}
.tk-rol-badge{position:absolute;left:10px;bottom:10px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);padding:3px 9px;border-radius:999px}
.tk-rol-badge.tk-rol-baas{background:var(--accent)}
.tk-body{padding:13px 14px 15px}
.tk-naam{font-family:var(--disp);font-size:18px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.tk-nick{font-size:12.5px;color:var(--muted);font-style:italic;margin-top:1px}
.tk-stats{display:flex;gap:13px;margin-top:9px;font-size:11.5px;color:var(--muted)}
.tk-stats b{color:var(--ink);font-weight:800;font-size:14px;font-family:var(--disp)}
.tk-insta{display:inline-flex;align-items:center;gap:6px;margin-top:11px;font-size:12.5px;font-weight:700;color:var(--accent)}
.tk-insta:hover{filter:brightness(1.1)}

/* Checklist: inklapbaar + items toevoegen (mij/iedereen) */
.chk-cat-toggle{width:100%;border:0;background:none;cursor:pointer;font-family:inherit;text-align:left}
.chk-cat .chk-chev{margin-left:8px;color:var(--muted);transition:transform .2s;flex:0 0 auto}
.chk-blok.dicht .chk-chev{transform:rotate(-90deg)}
.chk-blok.dicht .chk-items{display:none}
.chk-add{display:flex;flex-direction:column;gap:8px;margin-top:9px;padding:11px;border:1px dashed var(--line-2);border-radius:13px;background:var(--surface-2)}
.chk-add-onder{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.chk-add-scope{display:flex;gap:13px;flex:1;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2)}
.chk-add-scope label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-weight:600}
.chk-add-onder .mini-knop{margin-left:auto}
.chk-mijn{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:1px 6px;border-radius:999px;vertical-align:middle;margin-left:4px}
.chk-leeg{color:var(--faint);font-size:13px;padding:8px 2px}

/* ===================== FAQ-studio (admin_faq) ===================== */
.studio{--ok:var(--fs-veel);--ok-soft:var(--green-soft);--danger:var(--red);--danger-soft:oklch(0.95 0.05 25);max-width:1240px}
.studio .h-display{font-family:var(--disp);font-weight:800;letter-spacing:-.035em;line-height:.98}
.studio-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;margin:4px 0 20px}
.studio-head .eyebrow{display:flex;align-items:center;gap:9px}
.studio-head .live-dot{width:8px;height:8px;border-radius:50%;background:var(--red)}
.studio-title{font-size:clamp(30px,4vw,42px);margin:8px 0 7px}
.studio-sub{font-size:15.5px;color:var(--ink-2);margin:0;max-width:46ch}
.head-right{display:flex;align-items:center;gap:12px;flex:none}
.save-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;font-size:13px;font-weight:700;background:var(--green-soft);color:var(--fs-veel);border:1px solid color-mix(in oklch,var(--fs-veel) 22%,transparent)}
.save-pill .sp-ico{width:15px;height:15px}
.studio .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14px;padding:10px 16px;border-radius:12px;background:var(--accent);color:#fff;border:0;cursor:pointer;box-shadow:0 6px 16px -8px var(--accent);transition:.13s;font-family:inherit;white-space:nowrap}
.studio .btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.studio .btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-2);box-shadow:none}
.studio .btn.ghost:hover{background:var(--bg-2)}
.workspace{display:grid;grid-template-columns:300px 1fr;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;min-height:560px}
.cat-nav{border-right:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;min-width:0}
.cat-nav-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 8px}
.cat-nav-head .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cat-nav-head .cnt{font-family:var(--mono);font-size:11px;color:var(--faint)}
.cat-list{display:flex;flex-direction:column;gap:2px;padding:6px 10px;flex:1;overflow-y:auto}
.cat-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:12px;width:100%;text-align:left;transition:background .14s;cursor:pointer}
.cat-item:hover{background:var(--bg-2)}
.cat-item.active{background:var(--surface);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line)}
.cat-emoji{width:30px;height:30px;border-radius:9px;background:var(--bg-2);display:grid;place-items:center;font-size:16px;flex:none;line-height:1;overflow:hidden;font-weight:800;color:var(--ink-2)}
.cat-emoji i,.cat-emoji svg{width:17px;height:17px;stroke-width:2.2}
.cat-item.active .cat-emoji{background:var(--accent-soft)}
.cat-meta{flex:1;min-width:0;display:flex;flex-direction:column}
.cat-name{font-weight:700;font-size:14px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.cat-item.active .cat-name{color:var(--accent-ink)}
.cat-count{font-size:11.5px;color:var(--muted);margin-top:1px}
.cat-add{display:flex;align-items:center;justify-content:center;gap:9px;margin:4px 12px 10px;padding:11px 12px;border-radius:12px;border:1px dashed var(--line-2);color:var(--muted);font-weight:700;font-size:13.5px;cursor:pointer;font-family:inherit;transition:.14s}
.cat-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.cat-add-form{display:flex;flex-direction:column;gap:8px;margin:0 12px 12px}
.cat-import{margin:0 12px 14px}
.editor{display:flex;flex-direction:column;min-width:0}
.editor-head{padding:24px 28px 18px;border-bottom:1px solid var(--line)}
.eh-top{display:flex;align-items:center;gap:14px}
.eh-emoji-input{width:54px;height:52px;text-align:center;font-size:26px;border:1px solid var(--line);border-radius:14px;background:var(--bg-2);outline:none;flex:none}
.eh-emoji-input:focus{border-color:var(--accent)}
.title-input{font-family:var(--disp);font-weight:800;font-size:28px;letter-spacing:-.03em;line-height:1.05;color:var(--ink);border:1px solid transparent;outline:none;background:transparent;flex:1;min-width:0;padding:5px 9px;border-radius:9px;transition:.14s}
.title-input:hover{background:var(--bg-2)}
.title-input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent)}
.eh-actions{display:flex;align-items:center;gap:8px;flex:none}
.icon-btn-sm{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2);cursor:pointer;transition:.14s}
.icon-btn-sm:hover{color:var(--red);border-color:var(--red)}
.icon-btn-sm svg{width:18px;height:18px}
.eh-row2{display:flex;align-items:center;gap:14px;margin-top:13px;flex-wrap:wrap}
.eh-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.eh-meta .dot-sep{width:3px;height:3px;border-radius:50%;background:var(--faint)}
.qlist{padding:8px 18px 6px;flex:1}
.qrow{position:relative;border-radius:14px;transition:background .14s}
.qrow+.qrow{border-top:1px solid var(--line)}
.qrow.open{border-top-color:transparent;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);margin:6px 0}
.qrow-head{display:flex;align-items:center;gap:12px;padding:14px 12px;cursor:pointer}
.q-num{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--faint);width:20px;text-align:right;flex:none;font-variant-numeric:tabular-nums}
.q-text{flex:1;min-width:0;font-weight:700;font-size:15.5px;letter-spacing:-.01em;color:var(--ink);line-height:1.35}
.q-preview{color:var(--muted);font-weight:400;font-size:13.5px;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-chev{width:19px;height:19px;color:var(--faint);flex:none;transition:transform .2s;display:grid;place-items:center}
.q-chev svg{width:19px;height:19px}
.qrow.open .q-chev{transform:rotate(90deg);color:var(--accent)}
.qrow-body{padding:0 12px 16px 49px}
.field-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:6px 0 5px;display:block}
.q-input{width:100%;border:1px solid transparent;outline:none;background:var(--surface);border-radius:11px;font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.015em;color:var(--ink);padding:11px 13px;box-shadow:var(--shadow-sm);transition:.14s}
.q-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.a-input{width:100%;border:1px solid transparent;outline:none;background:var(--surface);border-radius:11px;font-family:var(--body);font-size:14.5px;line-height:1.6;color:var(--ink-2);padding:12px 13px;resize:vertical;min-height:74px;box-shadow:var(--shadow-sm);transition:.14s}
.a-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--ink)}
.qrow-foot{display:flex;align-items:center;gap:8px;margin-top:12px}
.qf-spacer{flex:1}
.txt-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--ink-2);padding:7px 11px;border-radius:9px;border:0;background:none;cursor:pointer;font-family:inherit;transition:.12s}
.txt-btn svg{width:15px;height:15px}
.txt-btn.danger{color:var(--red)}
.txt-btn.danger:hover{background:var(--danger-soft)}
.q-add{margin:6px 18px 22px}
.q-add-trigger{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;width:100%;border:1px dashed var(--line-2);color:var(--muted);font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;transition:.14s}
.q-add-trigger:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.q-composer{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow-sm)}
.editor-empty{flex:1;display:grid;place-items:center;padding:50px;text-align:center}
.editor-empty .ee-emoji{font-size:38px;margin-bottom:12px}
.editor-empty .ee-title{font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-.02em}
.editor-empty .ee-sub{color:var(--muted);font-size:13.5px;margin-top:6px;max-width:30ch}
@media(max-width:860px){.workspace{grid-template-columns:1fr}.cat-nav{border-right:0;border-bottom:1px solid var(--line)}.cat-list{flex-direction:row;overflow-x:auto;gap:8px}.cat-item{flex:none;width:auto}.cat-item .cat-count{display:none}.qrow-body{padding-left:12px}}

/* Checklist-studio: inline item-regels */
.chk-line{display:flex;align-items:center;gap:10px;padding:5px 12px;border-radius:12px;transition:background .12s}
.chk-line:hover{background:var(--surface-2)}
.chk-line+.chk-line{border-top:1px solid var(--line)}
.chk-line-num{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--faint);width:20px;text-align:right;flex:none;font-variant-numeric:tabular-nums}
.chk-line-input{flex:1;min-width:0;border:1px solid transparent;outline:none;background:transparent;border-radius:9px;font-size:15px;font-weight:600;color:var(--ink);padding:9px 11px;transition:.14s}
.chk-line-input:hover{background:var(--bg-2)}
.chk-line-input:focus{background:var(--surface);box-shadow:0 0 0 2px var(--accent)}
.chk-line-save{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent);color:#fff;border:0;cursor:pointer;flex:none;transition:.13s}
.chk-line-save:hover{filter:brightness(1.06)}
.chk-line-save svg{width:16px;height:16px}
/* ===== Groot zoekkader (gedeeld: fotografen-toewijzing, gebruikers, bands) ===== */
.fotog-zoekrij{position:relative;display:flex;align-items:center;max-width:520px;margin-bottom:18px}
.fotog-zoekrij svg{position:absolute;left:16px;color:var(--muted)}
.fotog-zoekrij input{width:100%;border:1px solid var(--line-2);border-radius:14px;background:var(--surface);padding:14px 16px 14px 46px;font-size:15.5px;font-family:inherit;box-shadow:var(--shadow-sm)}
.fotog-zoekrij input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.gebr-zoekrij,.band-zoekrij{flex:1;max-width:560px;margin-bottom:0}
/* ===== Herbruikbare icoonkiezer (Lucide) + kleurkiezer (bolletjes) ===== */
.iconpick,.kleurpick{position:relative;flex:none}
.iconpick-knop{width:46px;height:46px;border-radius:13px;border:1px solid var(--line-2);background:var(--bg-2);cursor:pointer;display:grid;place-items:center;line-height:1;transition:.13s}
.iconpick-knop:hover{border-color:var(--accent);background:var(--accent-soft)}
.iconpick-knop i,.iconpick-knop svg{width:22px;height:22px;stroke-width:2}
.kleurpick-knop{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:var(--c,#5b8cff);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line);transition:.12s}
.kleurpick-knop:hover{box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--accent)}
/* gedeelde popover (klein, niet te groot) */
.pick-pop{position:fixed;z-index:400;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px -14px rgba(0,0,0,.42);padding:8px}
.pick-icoon{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:262px;max-height:236px;overflow-x:hidden;overflow-y:auto}
.pick-cel{width:34px;height:34px;border:0;background:transparent;border-radius:9px;cursor:pointer;display:grid;place-items:center;color:var(--ink-2);transition:.1s}
.pick-cel i,.pick-cel svg{width:19px;height:19px}
.pick-cel:hover{background:var(--accent-soft);color:var(--accent-ink)}
.pick-cel.aan{background:var(--accent);color:#fff}
.pick-kleur{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:208px}
.kleur-cel{width:32px;height:32px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);transition:.12s}
.kleur-cel:hover{transform:scale(1.12)}
.kleur-cel.aan{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ink)}
/* snelle altijd-zichtbare toevoeg-rij, vlak onder het laatste item */
.chk-line-add{margin-top:4px;border-top:1px dashed var(--line-2)!important}
.chk-line-add .chk-line-num{color:var(--accent);font-size:17px;font-weight:800}
.chk-line-add .chk-line-input::placeholder{color:var(--muted);font-weight:600}
.eh-kleur{width:40px;height:38px;border:1px solid var(--line-2);border-radius:10px;padding:3px;cursor:pointer;background:var(--surface)}

/* ===== Artiestkaart-fixes: tracklist, fotograaf-toevoegen, vorige edities ===== */
.am-tracklist{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.am-track-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;cursor:pointer;padding:7px 9px;border-radius:10px;font-family:inherit;transition:.12s}
.am-track-item:hover{background:var(--bg-2)}
.am-track-item.actief{background:var(--accent-soft)}
.ati-num{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--faint);width:16px;text-align:center;flex:none}
.am-track-item.actief .ati-num{color:var(--accent)}
.ati-t{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ati-play{flex:none;font-size:11px;color:var(--muted);opacity:0;transition:.12s}
.am-track-item:hover .ati-play,.am-track-item.actief .ati-play{opacity:1}
.am-track-item.actief .ati-play{color:var(--accent)}
/* fotograaf toevoegen: nette wrappende tags i.p.v. raster */
.artist-add-crew{display:block;margin-top:9px;padding:0;border:0;background:none}
.am-foto-opties{display:flex;flex-wrap:wrap;gap:6px}
.am-foto-optie{display:inline-flex;align-items:center;gap:6px;justify-content:flex-start;border:1px solid var(--line);background:var(--bg-2);border-radius:999px;padding:6px 11px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;font-family:inherit;transition:.13s;min-width:0;max-width:100%}
.am-foto-optie span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.am-foto-optie b{color:var(--fs-veel);font-size:14px;line-height:1}
.am-foto-optie:hover{border-color:var(--fs-veel);background:var(--green-soft);color:var(--fs-veel)}
/* vorige edities: geen vakje per jaartal, gewoon een nette lijst */
.artist-history{display:flex;flex-direction:column;gap:0}
.artist-history div{padding:9px 0;border:0;border-radius:0;background:none}
.artist-history div+div{border-top:1px solid var(--line-2)}

/* Fototeam v2 — ronde bolletjes, gecentreerde presentatie */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:15px;margin-top:12px}
.team-kaart{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--line);border-radius:20px;background:var(--surface);padding:22px 14px 17px;box-shadow:var(--shadow-sm);transition:.16s;overflow:visible}
.team-kaart:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.team-kaart .tk-top{position:relative;margin-bottom:13px;height:auto}
.team-kaart .tk-avatar{position:static;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--disp);font-size:32px;font-weight:800;background-position:center;background-size:cover;box-shadow:0 0 0 4px var(--surface),0 0 0 6px var(--line-2),0 8px 22px -8px rgba(20,24,40,.4)}
.team-kaart .tk-rol-badge{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--ink);padding:3px 10px;border-radius:999px;box-shadow:0 3px 8px rgba(0,0,0,.3);white-space:nowrap}
.team-kaart .tk-rol-badge.tk-rol-baas{background:var(--accent)}
.team-kaart .tk-naam{font-family:var(--disp);font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-top:5px}
.team-kaart .tk-nick{font-size:12.5px;color:var(--muted);font-style:italic;margin-top:1px}
.team-kaart .tk-stats{display:flex;gap:16px;justify-content:center;margin-top:11px;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.team-kaart .tk-stats span{display:flex;flex-direction:column;gap:1px}
.team-kaart .tk-stats b{color:var(--ink);font-weight:800;font-size:18px;font-family:var(--disp);letter-spacing:-.02em}
.team-kaart .tk-insta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--accent)}
.team-kaart .tk-insta:hover{filter:brightness(1.1)}

/* fotograaf-zoeker in de artiestkaart */
.am-foto-zoek{width:100%;margin-bottom:8px}
.am-foto-opties{display:flex;flex-wrap:wrap;gap:6px;max-height:210px;overflow:auto;padding-right:2px}
.am-foto-optie{max-width:100%}
.am-foto-optie span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Foto's vandaag — slideshow op Vandaag */
/* "Bekijk slideshow"-knop + zwarte lightbox op Vandaag */
.lfs-knop{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:9px 15px;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);font-weight:700;font-size:13.5px;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:.14s}
.lfs-knop:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
.lfs-knop svg{flex:none}
.lfs-knop-tel{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--muted);background:var(--bg-2);border-radius:999px;padding:1px 7px}
.lfs-box{position:fixed;inset:0;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center}
.lfs-box[hidden]{display:none}
.lfs-box-img{position:absolute;inset:0;background-position:center;background-size:contain;background-repeat:no-repeat;transition:background-image .2s}
.lfs-box-nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:32px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.15s;z-index:2}
.lfs-box-nav:hover{background:rgba(255,255,255,.24)}
.lfs-box-prev{left:18px}.lfs-box-next{right:18px}
.lfs-box-sluit{position:absolute;top:16px;right:18px;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:22px;cursor:pointer;display:grid;place-items:center;z-index:2;transition:.15s}
.lfs-box-sluit:hover{background:rgba(255,255,255,.24)}
@media(max-width:680px){.lfs-box-nav{width:44px;height:44px;font-size:26px}.lfs-box-prev{left:8px}.lfs-box-next{right:8px}}
.livefoto-show{position:relative;margin-top:8px;max-width:380px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2);box-shadow:var(--shadow-sm)}
.lfs-frame{position:relative;width:100%;aspect-ratio:4/5;background:var(--bg-2)}
.lfs-img{position:absolute;inset:0;background-position:center;background-size:cover;opacity:0;transition:opacity .9s ease}
.lfs-img.aan{opacity:1}
.lfs-klok{position:absolute;bottom:10px;right:10px;width:30px;height:30px;z-index:3;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.42);backdrop-filter:blur(3px);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.lfs-klok svg{width:30px;height:30px;transform:rotate(-90deg)}
.lfs-baan{fill:none;stroke:rgba(255,255,255,.28);stroke-width:3}
.lfs-vul{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round}
.lfs-laad{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;font-size:12.5px;font-weight:600;color:var(--muted);background:var(--bg-2)}
.lfs-spin{width:26px;height:26px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--accent);animation:lfsspin .8s linear infinite}
@keyframes lfsspin{to{transform:rotate(360deg)}}

/* Fototeam v3 — visuele teamvoorstelling */
.content.team-layout-lab,
.content:has(.fototeam-hero){
  max-width:1280px;
}
.team-lab-hero,
.fototeam-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin:2px 0 26px;
}
.team-lab-hero .lead,
.fototeam-hero .lead{
  max-width:66ch;
}
.fototeam-count{
  flex:none;
  display:grid;
  place-items:center;
  width:118px;
  height:118px;
  border-radius:50%;
  background:var(--ink);
  color:#fff;
  box-shadow:0 22px 46px -34px var(--ink);
}
.fototeam-count strong{
  display:block;
  font-family:var(--disp);
  font-size:43px;
  line-height:.8;
  font-weight:900;
  letter-spacing:-.05em;
}
.fototeam-count span{
  margin-top:3px;
  font-size:11px;
  font-weight:900;
  color:rgba(255,255,255,.72);
  text-transform:uppercase;
  letter-spacing:.08em;
}
.team-showcase,
.fototeam-stage{
  position:relative;
  padding:10px 0 24px;
}
.team-showcase-intro,
.fototeam-stage-intro{
  display:grid;
  grid-template-columns:minmax(160px,220px) minmax(0,520px);
  gap:18px;
  align-items:start;
  margin-bottom:22px;
}
.team-showcase-intro b,
.fototeam-stage-intro b{
  font-family:var(--disp);
  font-size:25px;
  font-weight:900;
  letter-spacing:-.04em;
  color:var(--ink);
}
.team-showcase-intro span,
.fototeam-stage-intro span{
  color:var(--ink-2);
  font-size:15px;
  line-height:1.45;
}
.team-showcase-line,
.fototeam-line{
  position:absolute;
  left:34px;
  right:34px;
  top:190px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
  pointer-events:none;
}
.team-portraits{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(22px,2.6vw,40px);
  align-items:start;
}
.team-person{
  position:relative;
  display:grid;
  gap:12px;
  min-width:0;
  transition:transform .18s ease;
}
.team-person:nth-child(odd){transform:rotate(-2.5deg)}
.team-person:nth-child(even){transform:rotate(2.5deg)}
.team-person:nth-child(3n){transform:rotate(3.5deg)}
.team-person:nth-child(5n){transform:rotate(-3deg)}
.team-person:nth-child(2),.team-person:nth-child(5){margin-top:30px}
.team-person:nth-child(4){margin-top:14px}
.team-person:hover{transform:rotate(0) translateY(-5px);z-index:3}
.team-person-photo{
  position:relative;
  width:100%;
  aspect-ratio:1/1.18;
  border-radius:46% 54% 48% 52% / 42% 44% 56% 58%;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 28% 22%,rgba(255,255,255,.36),transparent 28%),
    linear-gradient(145deg,color-mix(in oklch,var(--team-color) 84%,#fff),color-mix(in oklch,var(--team-color) 84%,#111));
  background-position:center;
  background-size:cover;
  box-shadow:0 24px 48px -36px color-mix(in oklch,var(--team-color) 80%,#111);
}
.team-person-photo::after{
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:inherit;
  pointer-events:none;
}
.team-person-photo span{
  color:#fff;
  font-family:var(--disp);
  font-size:clamp(36px,5vw,58px);
  font-weight:900;
  letter-spacing:-.06em;
  text-shadow:0 8px 22px rgba(0,0,0,.22);
}
.team-person-copy{
  display:grid;
  gap:6px;
  padding:0 3px;
  text-align:center;
  justify-items:center;
}
.team-person-copy small{
  color:var(--muted);
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.team-person-copy h2{
  margin:0;
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(23px,2.8vw,36px);
  line-height:.92;
  font-weight:950;
  letter-spacing:-.065em;
}
.team-person-copy p{
  margin:4px 0 0;
  color:var(--ink-2);
  font-size:13.5px;
  line-height:1.38;
}
.team-person-copy em,
.team-person-nick,
.team-person-insta{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:fit-content;
  margin-top:6px;
  padding:4px 10px 4px 8px;
  border-radius:999px;
  font-style:normal;
  font-size:12px;
  font-weight:800;
  color:var(--team-color);
  background:color-mix(in oklch,var(--team-color) 12%,transparent);
  border:1px solid color-mix(in oklch,var(--team-color) 32%,transparent);
  text-decoration:none;
  transition:.13s;
}
.team-person-insta .tpi-naam{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px}
.team-person-insta .tpi-ic{flex:none}
.team-person-insta .tpi-ext{flex:none;opacity:.7}
.team-person-insta:hover{
  background:color-mix(in oklch,var(--team-color) 20%,transparent);
  border-color:var(--team-color);
  transform:translateY(-1px);
}
.team-person-insta:hover .tpi-ext{opacity:1}
@media(max-width:1040px){
  .team-portraits{grid-template-columns:repeat(3,minmax(0,1fr))}
  .team-person:nth-child(n){margin-top:0}
  .team-person:nth-child(2),
  .team-person:nth-child(5){margin-top:34px}
  .team-showcase-line,.fototeam-line{display:none}
}
@media(max-width:720px){
  .team-lab-hero,
  .fototeam-hero{display:grid;gap:16px}
  .fototeam-count{width:92px;height:92px}
  .fototeam-count strong{font-size:34px}
  .team-showcase-intro,
  .fototeam-stage-intro{grid-template-columns:1fr}
  .team-portraits{grid-template-columns:1fr;gap:22px}
  .team-person:nth-child(n){margin-top:0}
  .team-person{grid-template-columns:112px minmax(0,1fr);align-items:center}
  .team-person-photo{aspect-ratio:1/1}
  .team-person-copy h2{font-size:28px}
}

/* Fototeam layouttest — vijf richtingen */
.team-layout-lab .layout-subnav{margin-bottom:24px}
.team-variant{
  position:relative;
  margin:0 0 58px;
  padding-top:4px;
}
.team-variant+.team-variant{
  border-top:1px solid var(--line);
  padding-top:34px;
}
.team-variant-head{
  display:grid;
  grid-template-columns:54px minmax(0,720px);
  gap:16px;
  align-items:start;
  margin-bottom:22px;
}
.team-variant-head>span{
  font-family:var(--mono);
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
}
.team-variant-head b{
  display:block;
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(24px,3vw,36px);
  line-height:.95;
  font-weight:950;
  letter-spacing:-.06em;
}
.team-variant-head small{
  display:block;
  max-width:68ch;
  margin-top:7px;
  color:var(--ink-2);
  font-size:14.5px;
  line-height:1.45;
}
.tv-editorial .team-portraits{
  padding-top:4px;
}
.team-lineup{
  position:relative;
  display:grid;
  gap:0;
}
.team-lineup::before{
  content:"";
  position:absolute;
  left:42px;
  top:26px;
  bottom:26px;
  width:1px;
  background:var(--line);
}
.tl-person{
  position:relative;
  display:grid;
  grid-template-columns:86px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-height:96px;
  padding:14px 0;
}
.tl-person+.tl-person{border-top:1px solid var(--line-2)}
.tl-dot{
  position:relative;
  z-index:1;
  width:84px;
  height:84px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(145deg,color-mix(in oklch,var(--team-color) 82%,#fff),var(--team-color));
  color:#fff;
  font-family:var(--disp);
  font-size:28px;
  font-weight:950;
  letter-spacing:-.06em;
  box-shadow:0 0 0 8px var(--bg),0 18px 32px -26px var(--team-color);
}
.tl-copy small,
.ts-feature small{
  display:block;
  color:var(--muted);
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.tl-copy h2{
  margin:2px 0 4px;
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(25px,3vw,42px);
  line-height:.9;
  font-weight:950;
  letter-spacing:-.065em;
}
.tl-copy p{
  margin:0;
  color:var(--ink-2);
  font-size:14px;
}
.tl-person em{
  color:var(--team-color);
  font-style:normal;
  font-weight:900;
  font-size:13px;
  white-space:nowrap;
}
.team-polaroids{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
  align-items:start;
  padding:12px 4px 24px;
}
.team-wall-poster{
  position:relative;
  min-height:560px;
  display:grid;
  align-items:end;
  padding:clamp(22px,4vw,42px);
  border-radius:34px;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(8,10,18,.22),rgba(8,10,18,.78)),
    var(--team-bg) center/cover no-repeat;
  box-shadow:0 28px 70px -46px #000;
}
.team-wall-copy{
  max-width:760px;
  color:#fff;
  margin-bottom:28px;
}
.team-wall-copy small,
.tnp-copy small,
.ti-copy small{
  display:block;
  color:rgba(255,255,255,.72);
  font-family:var(--mono);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.team-wall-copy h2,
.tnp-copy h2{
  margin:8px 0 10px;
  color:#fff;
  font-family:var(--disp);
  font-size:clamp(42px,7vw,88px);
  line-height:.82;
  font-weight:950;
  letter-spacing:-.085em;
  max-width:10ch;
}
.team-wall-copy p,
.tnp-copy p{
  max-width:50ch;
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:16px;
  line-height:1.42;
}
.team-wall-poster .team-polaroids{
  padding:0;
}
.team-wall-poster .tp-card{
  border-color:rgba(255,255,255,.52);
  box-shadow:0 20px 46px -28px #000;
}
.tp-card{
  position:relative;
  min-height:316px;
  padding:11px 11px 18px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 18px 42px -34px var(--ink);
  transform:rotate(var(--tilt,0deg));
}
.tp-card-1{--tilt:-2.5deg}.tp-card-2{--tilt:2deg;margin-top:28px}.tp-card-3{--tilt:-1deg;margin-top:8px}.tp-card-4{--tilt:2.6deg;margin-top:42px}.tp-card-5{--tilt:-2deg;margin-top:14px}
.tp-photo{
  aspect-ratio:1/1.05;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,color-mix(in oklch,var(--team-color) 82%,#fff),var(--team-color));
  color:#fff;
}
.tp-photo span{
  font-family:var(--disp);
  font-size:54px;
  font-weight:950;
  letter-spacing:-.07em;
}
.tp-card small{
  display:block;
  margin:13px 0 4px;
  color:var(--team-color);
  font-family:var(--mono);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tp-card h2{
  margin:0;
  color:var(--ink);
  font-family:var(--disp);
  font-size:28px;
  line-height:.92;
  font-weight:950;
  letter-spacing:-.06em;
}
.tp-card p{
  margin:8px 0 0;
  color:var(--ink-2);
  font-size:13.5px;
  line-height:1.35;
}
.team-spread{
  display:grid;
  grid-template-columns:minmax(300px,.92fr) minmax(0,1fr);
  gap:34px;
  align-items:stretch;
}
.ts-feature{
  min-height:520px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
.ts-photo{
  flex:1;
  min-height:340px;
  display:grid;
  place-items:center;
  border-radius:36px 36px 8px 8px;
  background:
    radial-gradient(circle at 30% 20%,rgba(255,255,255,.35),transparent 30%),
    linear-gradient(145deg,color-mix(in oklch,var(--team-color) 82%,#fff),var(--team-color));
  color:#fff;
}
.ts-photo span{
  font-family:var(--disp);
  font-size:86px;
  font-weight:950;
  letter-spacing:-.08em;
}
.ts-feature h2{
  margin:12px 0 8px;
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(42px,5vw,72px);
  line-height:.84;
  font-weight:950;
  letter-spacing:-.08em;
}
.ts-feature p{
  max-width:34ch;
  margin:0;
  color:var(--ink-2);
  font-size:15px;
  line-height:1.45;
}
.ts-list{
  display:grid;
  align-content:end;
  gap:0;
}
.ts-list article{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding:18px 0;
  border-top:1px solid var(--line);
}
.ts-list article:last-child{border-bottom:1px solid var(--line)}
.ts-list span{
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:color-mix(in oklch,var(--team-color) 16%,#fff);
  color:var(--team-color);
  font-family:var(--disp);
  font-size:25px;
  font-weight:950;
  letter-spacing:-.06em;
}
.ts-list b{
  display:block;
  color:var(--ink);
  font-family:var(--disp);
  font-size:32px;
  line-height:.9;
  letter-spacing:-.06em;
}
.ts-list small{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-weight:800;
}
.team-roster{
  display:grid;
  gap:0;
  border-top:2px solid var(--ink);
}
.team-roster article{
  display:grid;
  grid-template-columns:54px minmax(180px,.75fr) minmax(90px,.35fr) minmax(0,1fr) auto;
  gap:16px;
  align-items:baseline;
  padding:17px 0;
  border-bottom:1px solid var(--line);
}
.team-roster span{
  color:var(--team-color);
  font-family:var(--mono);
  font-size:12px;
  font-weight:900;
}
.team-roster b{
  color:var(--ink);
  font-family:var(--disp);
  font-size:28px;
  line-height:.92;
  font-weight:950;
  letter-spacing:-.055em;
}
.team-roster small{
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.team-roster p{
  margin:0;
  color:var(--ink-2);
  font-size:14px;
}
.team-roster em{
  color:var(--team-color);
  font-style:normal;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
.team-nightposter{
  position:relative;
  min-height:760px;
  display:grid;
  grid-template-rows:1fr auto;
  padding:clamp(26px,5vw,58px);
  border-radius:36px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 80% 20%,rgba(255,255,255,.12),transparent 28%),
    linear-gradient(180deg,rgba(4,7,18,.2),rgba(4,7,18,.86)),
    var(--team-bg) center/cover no-repeat;
  box-shadow:0 30px 80px -48px #000;
}
.tnp-copy{
  align-self:start;
  max-width:780px;
}
.tnp-copy h2{
  max-width:8.5ch;
  font-size:clamp(54px,9vw,132px);
}
.tnp-credits{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.tnp-credits article{
  min-width:0;
  padding:12px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:18px;
  background:rgba(255,255,255,.1);
  backdrop-filter:blur(14px);
}
.tnp-credits span{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--team-color);
  color:#fff;
  font-family:var(--disp);
  font-weight:950;
  letter-spacing:-.06em;
}
.tnp-credits b{
  display:block;
  margin-top:10px;
  color:#fff;
  font-family:var(--disp);
  font-size:23px;
  line-height:.9;
  letter-spacing:-.055em;
}
.tnp-credits small{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.68);
  font-size:11px;
  font-weight:850;
}
.team-invite{
  display:grid;
  grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);
  gap:48px;
  align-items:start;
  padding:42px 0;
}
.ti-copy small{
  color:var(--accent);
}
.ti-copy h2{
  margin:8px 0 18px;
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(42px,6vw,78px);
  line-height:.86;
  font-weight:950;
  letter-spacing:-.08em;
}
.ti-copy p{
  max-width:44ch;
  color:var(--ink-2);
  font-size:17px;
  line-height:1.52;
}
.ti-people{
  display:grid;
  gap:12px;
}
.ti-people article{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:14px;
  align-items:start;
  padding:0 0 14px;
  border-bottom:1px solid var(--line);
}
.ti-people span{
  color:var(--team-color);
  font-family:var(--mono);
  font-size:12px;
  font-weight:950;
}
.ti-people b{
  display:block;
  color:var(--ink);
  font-family:var(--disp);
  font-size:30px;
  line-height:.9;
  letter-spacing:-.06em;
}
.ti-people small{
  display:block;
  margin-top:7px;
  color:var(--ink-2);
  font-size:14px;
  line-height:1.38;
}
.team-passes{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}
.team-passes article{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:24px;
  background:var(--surface);
  box-shadow:0 22px 48px -40px var(--ink);
}
.pass-top{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  min-height:142px;
  padding:16px;
  background:
    radial-gradient(circle at 25% 25%,rgba(255,255,255,.32),transparent 28%),
    linear-gradient(145deg,color-mix(in oklch,var(--team-color) 72%,#fff),var(--team-color));
  color:#fff;
}
.pass-top span{
  align-self:end;
  font-family:var(--disp);
  font-size:50px;
  font-weight:950;
  letter-spacing:-.08em;
}
.pass-top small{
  writing-mode:vertical-rl;
  color:rgba(255,255,255,.78);
  font-family:var(--mono);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.pass-body{
  padding:16px;
}
.pass-body b{
  display:block;
  color:var(--ink);
  font-family:var(--disp);
  font-size:26px;
  line-height:.9;
  letter-spacing:-.06em;
}
.pass-body em{
  display:block;
  margin-top:6px;
  color:var(--team-color);
  font-style:normal;
  font-size:12px;
  font-weight:900;
}
.pass-body p{
  margin:11px 0 0;
  color:var(--ink-2);
  font-size:13.5px;
  line-height:1.38;
}
.team-marquee{
  padding:18px 0 8px;
}
.team-marquee>p{
  max-width:58ch;
  margin:0 0 18px;
  color:var(--ink-2);
  font-size:17px;
  line-height:1.5;
}
.team-marquee article{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:end;
  padding:13px 0;
  border-top:1px solid var(--line);
}
.team-marquee article:last-child{border-bottom:1px solid var(--line)}
.team-marquee b{
  color:var(--ink);
  font-family:var(--disp);
  font-size:clamp(44px,8vw,112px);
  line-height:.8;
  font-weight:950;
  letter-spacing:-.09em;
}
.team-marquee span{
  color:var(--team-color);
  font-family:var(--mono);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  white-space:nowrap;
}
@media(max-width:1040px){
  .team-polaroids{grid-template-columns:repeat(3,minmax(0,1fr))}
  .team-spread{grid-template-columns:1fr}
  .ts-feature{min-height:0}
  .team-roster article{grid-template-columns:42px minmax(0,1fr);gap:8px 14px}
  .team-roster small,.team-roster p,.team-roster em{grid-column:2}
  .tnp-credits,.team-passes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .team-invite{grid-template-columns:1fr}
}
@media(max-width:720px){
  .team-variant-head{grid-template-columns:1fr;gap:6px}
  .tl-person{grid-template-columns:66px minmax(0,1fr);gap:14px}
  .tl-dot{width:66px;height:66px;font-size:22px;box-shadow:0 0 0 6px var(--bg)}
  .tl-person em{grid-column:2}
  .team-polaroids{grid-template-columns:1fr}
  .tp-card:nth-child(n){margin-top:0;transform:none}
  .ts-list article{grid-template-columns:60px minmax(0,1fr)}
  .ts-list span{width:60px;height:60px;border-radius:18px}
  .team-wall-poster,.team-nightposter{border-radius:22px;padding:20px;min-height:0}
  .team-wall-copy h2,.tnp-copy h2{font-size:44px}
  .tnp-credits,.team-passes{grid-template-columns:1fr}
  .team-marquee article{grid-template-columns:1fr;gap:6px}
  .team-marquee b{font-size:48px}
  .team-marquee span{white-space:normal}
}

/* Admin Live foto's */
.lf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.lf-toggle{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line-2);background:var(--surface);border-radius:999px;padding:9px 16px 9px 11px;font-size:13.5px;font-weight:700;color:var(--ink-2);cursor:pointer;font-family:inherit}
.lf-toggle .lf-sw{width:34px;height:20px;border-radius:999px;background:var(--line-2);position:relative;transition:.18s;flex:none}
.lf-toggle .lf-sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:.18s}
.lf-toggle.on{color:var(--fs-veel);border-color:color-mix(in oklch,var(--fs-veel) 30%,transparent)}
.lf-toggle.on .lf-sw{background:var(--fs-veel)}
.lf-toggle.on .lf-sw::after{left:16px}
.lf-kruim{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;font-size:13px;color:var(--muted)}
.lf-kruim a{font-weight:700;color:var(--ink-2)}.lf-kruim a:hover,.lf-kruim a.aan{color:var(--accent)}
.lf-mappen{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.lf-map{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:9px 13px;font-size:13.5px;font-weight:700;color:var(--ink)}
.lf-map:hover{border-color:var(--accent);color:var(--accent)}
.lf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.lf-foto{position:relative;border-radius:14px;overflow:hidden;border:2px solid var(--line);background:var(--bg-2);aspect-ratio:1}
.lf-foto-img{position:absolute;inset:0;background-position:center;background-size:cover}
.lf-foto-acties{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;gap:8px;padding:10px;opacity:0;transition:.15s;background:linear-gradient(transparent 50%,rgba(0,0,0,.55))}
.lf-foto:hover .lf-foto-acties{opacity:1}
.lf-foto-acties button{width:40px;height:40px;border-radius:50%;border:0;font-size:17px;font-weight:800;cursor:pointer;color:#fff}
.lf-foto .lf-ja{background:var(--fs-veel)}.lf-foto .lf-nee{background:var(--red)}
.lf-foto.is-ja{border-color:var(--fs-veel)}.lf-foto.is-nee{border-color:var(--red);opacity:.55}
.lf-foto-vlag{position:absolute;top:8px;left:8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#fff;padding:3px 8px;border-radius:999px;display:none}
.lf-foto.is-ja .lf-foto-vlag{display:block;background:var(--fs-veel);content:""}
.lf-foto.is-ja .lf-foto-vlag::after{content:"In gebruik"}
.lf-foto.is-nee .lf-foto-vlag{display:block;background:var(--red)}
.lf-foto.is-nee .lf-foto-vlag::after{content:"Afgekeurd"}

/* Luister: ruimte reserveren zodat het kaartje niet groeit als de 5 nummers laden */
.am-tracklist{min-height:172px}
@media(max-width:680px){.livefoto-show{max-width:100%}}

/* Vandaag: slideshow naast de affiche + slideshow-bediening */
.vandaag-fotorij{display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:22px;align-items:start;margin-top:26px}
.vf-links{min-width:0;display:flex;flex-direction:column;gap:16px}
.vf-slides{width:100%}
.vf-slides .sectiekop{margin-top:0}
.vf-affiche{min-width:0}
.vf-affiche .sectiekop:first-child{margin-top:0}
.livefoto-show{max-width:100%}
/* weerbericht boven de slideshow — mooiere kaart */
.weerkaart-mooi{margin:0;width:100%;gap:13px;padding:16px 16px 14px;border:1px solid var(--line);border-radius:18px;
  background:
    radial-gradient(120% 90% at 0% 0%, color-mix(in oklch,var(--accent) 16%,transparent), transparent 55%),
    radial-gradient(120% 120% at 100% 0%, color-mix(in oklch,var(--warm,var(--accent)) 14%,transparent), transparent 50%),
    linear-gradient(180deg,var(--surface),var(--surface-2));
  box-shadow:var(--shadow-sm)}
.weerkaart-mooi{gap:14px;padding:18px 18px 16px}
.weerkaart-mooi .wk-kop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.weerkaart-mooi .wk-emoji{font-size:38px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}
.weerkaart-mooi .wk-nu{gap:13px}
.weerkaart-mooi .wk-nu-t b{font-size:28px}
.weerkaart-mooi .wk-actions{display:flex;align-items:center;gap:8px;flex:none}
.weerkaart-mooi .wk-rain-toggle{width:34px;height:34px;border:1px solid color-mix(in oklch,var(--accent) 18%,var(--line));border-radius:50%;background:color-mix(in oklch,var(--accent-soft) 72%,var(--surface));display:grid;place-items:center;cursor:pointer;box-shadow:0 5px 12px rgba(0,0,0,.06);transition:transform .14s ease,background .14s ease}
.weerkaart-mooi .wk-rain-toggle:active{transform:scale(.94)}
.weerkaart-mooi.regen-open .wk-rain-toggle{background:var(--accent);color:#fff}
.weerkaart-mooi .wk-badge{flex:none;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-soft);padding:4px 10px;border-radius:999px}
.weerkaart-mooi .wk-zin{margin:0;font-size:13px;line-height:1.5;color:var(--ink-2)}
.weerkaart-mooi.regen-open .wk-zin,.weerkaart-mooi.regen-open .wk-uren-rij{display:none}
.wk-uren-rij{display:flex;align-items:center;gap:8px}
.wk-pijl{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-size:17px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.13s}
.wk-pijl:hover{border-color:var(--accent);color:var(--accent)}
.wk-pijl.uit{display:none}
.weerkaart-mooi .wk-uren{flex:1;min-width:0;display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:2px}
.weerkaart-mooi .wk-uren::-webkit-scrollbar{display:none}
.weerkaart-mooi .wk-u{flex:0 0 52px;scroll-snap-align:start;gap:4px;padding:9px 6px;background:color-mix(in oklch,var(--surface) 72%,transparent);backdrop-filter:blur(2px)}
.weerkaart-mooi .wk-e{font-size:18px}
.weerkaart-mooi .wk-h{font-size:10.5px}
.weerkaart-mooi .wk-t{font-size:13px}
.wk-regen[hidden]{display:none!important}
.wk-regen{display:flex;flex-direction:column;gap:12px}
.wk-rain-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.wk-rain-head b{font-family:var(--disp);font-size:18px;font-weight:850;color:var(--ink);letter-spacing:-.01em}
.wk-rain-head span{font-size:11px;font-weight:850;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:5px 9px;text-transform:uppercase;letter-spacing:.05em}
.wk-rain-scroll{overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.wk-rain-scroll::-webkit-scrollbar{display:none}
.wk-rain-chart{position:relative;height:122px;min-width:100%;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.36));overflow:hidden;border:1px solid color-mix(in oklch,var(--line) 82%,transparent)}
.wk-rain-chart:before{content:"";position:absolute;inset:28px 0 32px;background:repeating-linear-gradient(90deg,transparent 0 51px,color-mix(in oklch,var(--line) 72%,transparent) 52px),repeating-linear-gradient(180deg,transparent 0 30px,color-mix(in oklch,var(--line) 62%,transparent) 31px);opacity:.62}
.wk-rain-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wk-rain-svg polyline{fill:none;stroke:#087de8;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 5px 9px rgba(8,125,232,.18))}
.wk-rain-day{position:absolute;top:6px;transform:translateX(-2px);font-size:10.5px;font-weight:900;color:var(--accent-ink);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.wk-rain-day:before{content:"";position:absolute;left:-6px;top:18px;width:1px;height:86px;background:color-mix(in oklch,var(--accent) 42%,transparent)}
.wk-rain-dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;border:4px solid #087de8;box-shadow:0 4px 10px rgba(8,125,232,.22)}
.wk-rain-dot b{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);font-size:10px;font-weight:900;color:var(--ink);white-space:nowrap}
.wk-rain-time{position:absolute;bottom:9px;transform:translateX(-50%);font-size:10px;color:var(--muted);font-weight:850;white-space:nowrap}
@media(max-width:760px){.vandaag-fotorij{grid-template-columns:1fr}}
.lfs-img{transition:opacity .55s ease}
.livefoto-show .lfs-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:grid;place-items:center;opacity:0;transition:.15s;z-index:3;backdrop-filter:blur(3px)}
.livefoto-show:hover .lfs-nav{opacity:1}
.lfs-prev{left:8px}.lfs-next{right:8px}
.livefoto-show .lfs-nav:hover{background:rgba(0,0,0,.72)}
.lfs-full{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:9px;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:15px;cursor:pointer;display:grid;place-items:center;opacity:0;transition:.15s;z-index:3;backdrop-filter:blur(3px)}
.livefoto-show:hover .lfs-full{opacity:1}
.lfs-full:hover{background:rgba(0,0,0,.72)}
.livefoto-show:fullscreen{max-width:none;background:#000;display:flex;align-items:center;justify-content:center}
.livefoto-show:fullscreen .lfs-frame{aspect-ratio:auto;width:100vw;height:100vh}
.livefoto-show:fullscreen .lfs-img{background-size:contain;background-repeat:no-repeat}

/* Vandaag: overzicht-stats (i.p.v. volgende-concert hero) */
.vandaag-overzicht{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-radius:18px 18px 0 0;overflow:hidden}
.hero-card>.vandaag-overzicht:last-child{border-radius:18px}
.vo-stat{background:var(--surface);padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.vo-stat b{font-family:var(--disp);font-weight:850;font-size:34px;line-height:1;letter-spacing:-.03em;color:var(--ink)}
.vo-stat span{font-size:12.5px;font-weight:650;color:var(--muted);line-height:1.25}
.vo-stat.vo-jij{background:var(--accent-soft)}
.vo-stat.vo-jij b{color:var(--accent-ink)}
.vo-stat.vo-jij span{color:var(--accent-ink)}
@media(max-width:680px){.vo-stat{padding:15px 8px}.vo-stat b{font-size:26px}}

/* Vandaag: Wist je dat? */
/* weetjes op Vandaag — zelfde lila "Wist je dat"-kaartjes als op het artiestenblaadje */
.wistje-rij{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:10px}
.wistje-laad{grid-column:1/-1;color:var(--muted);font-size:13.5px;font-style:italic;padding:6px 2px}
.wistje-kaart{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:#F4F2FC;border-radius:14px}
.wistje-ico{display:none}
.wistje-tx{min-width:0}
.wistje-tx b{display:block;font-family:var(--disp);font-size:20px;font-weight:850;letter-spacing:-.015em;color:#3A2E8C;margin-bottom:5px;line-height:1.12}
.wistje-tx span{display:block;font-size:14.5px;line-height:1.5;color:#4A4570;font-weight:500}

/* Luister/Video's op volle breedte van het artiestkaartje */
.artist-media-vol{padding:0 26px 24px;margin-top:4px}
.artist-media-vol .am-mpane[data-mpane="videos"] .artist-videos{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
@media(max-width:680px){.artist-media-vol{padding:0 16px 18px}}

/* ===== Muziek-kaart: speler + nummers/video's in één geheel ===== */
.artist-sheet-sidebar .artist-media-vol{padding:0;margin-top:16px}
.am-tab-chev{display:none}
/* de gecombineerde kaart */
.am-card{border:1px solid var(--line);border-radius:16px;background:linear-gradient(150deg,var(--surface-2),var(--surface));box-shadow:var(--shadow-sm);padding:13px}
/* speler bovenin, zonder eigen kader — play links */
.am-player{display:grid;grid-template-columns:auto 50px minmax(0,1fr);gap:13px;align-items:center;cursor:pointer}
.am-np-art{width:50px;height:50px}
.am-np-info #am-track-sub{cursor:pointer}
/* nummers/video's schuiven pas uit als je op play klikt */
.am-body{max-height:0;overflow:hidden;opacity:0;transition:max-height .36s cubic-bezier(.4,0,.2,1),opacity .26s ease}
.am-card.open .am-body{max-height:760px;opacity:1;margin-top:2px}
.am-np-art{width:54px;height:54px;border-radius:11px;background:var(--ink);background-size:cover;background-position:center;display:grid;place-items:center;flex:none;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.am-np-art .am-np-note{color:rgba(255,255,255,.7);font-size:22px}
.am-np-art.heeft .am-np-note{display:none}
.am-np-info{min-width:0}
.am-np-info #am-track{display:block;font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}
.am-np-info #am-track-sub{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.am-player .am-wave{display:flex;align-items:flex-end;gap:3px;height:16px;margin-top:6px}
.am-player .am-wave i{width:3px;height:5px;border-radius:2px;background:var(--line-2)}
.am-player.speelt .am-wave i{background:var(--accent);animation:amWave .9s infinite ease-in-out}
.am-player.speelt .am-wave i:nth-child(2){animation-delay:.1s}.am-player.speelt .am-wave i:nth-child(3){animation-delay:.2s}
.am-player.speelt .am-wave i:nth-child(4){animation-delay:.3s}.am-player.speelt .am-wave i:nth-child(5){animation-delay:.15s}
.am-player.speelt .am-wave i:nth-child(6){animation-delay:.25s}.am-player.speelt .am-wave i:nth-child(7){animation-delay:.05s}
.am-player .am-play-button{width:46px;height:46px;min-height:0;padding:0;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 16px color-mix(in oklch,var(--accent) 45%,transparent);transition:.14s}
.am-player .am-play-button:hover{transform:scale(1.06)}
.am-player .am-play-icon{font-size:17px;line-height:1}
/* speelbalk binnen de kaart */
.am-card .am-player-bar{display:block;height:4px;border-radius:999px;background:var(--line);margin:11px 0 0;overflow:hidden}
.am-card .am-player-bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:999px}
/* kleine segmented toggle Nummers / Video's */
.am-seg{display:inline-flex;gap:3px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:3px;margin:13px 0 0}
.am-seg .am-tab{border:0;background:transparent;border-radius:999px;padding:6px 15px;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;font-family:inherit;min-height:0}
.am-seg .am-tab.actief{background:var(--ink);color:#fff}
.am-card .am-mpane{margin-top:0}
.am-card .am-listen-links{display:flex;gap:10px;margin-top:13px;justify-content:flex-start}
/* sociale iconen links onderaan het hele kaartje */
.am-listen-onder{display:flex;gap:10px;justify-content:flex-start;margin-top:22px;padding-top:4px}
.am-social{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);transition:.13s}
.am-social svg{display:block;width:22px;height:22px}
.am-social:hover{transform:translateY(-2px)}
.am-social-sp:hover{background:#1db954;border-color:#1db954;color:#fff}
.am-social-yt:hover{background:#ff0000;border-color:#ff0000;color:#fff}
.am-social-ig:hover{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);border-color:transparent;color:#fff}
/* admin live foto's: geheime sleutel maskeren */
.lf-key-wrap{display:flex;gap:8px;align-items:stretch}
.lf-key-wrap .veld-in{flex:1;min-width:0}
.lf-key-toon{flex:none;border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink-2);border-radius:9px;padding:0 13px;font-size:12px;font-weight:800;cursor:pointer;font-family:inherit}
.lf-key-toon:hover{border-color:var(--accent);color:var(--accent)}
/* tracks als chips naast elkaar */
.am-tracklist{display:flex !important;flex-direction:row !important;flex-wrap:wrap !important;gap:7px;margin-top:11px;min-height:0}
/* nummers niet als tags tonen onder de speler */
#am-tracklist{display:none !important}
.am-track-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px 6px 10px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;font-family:inherit;max-width:100%;transition:.12s}
.am-track-chip:hover{border-color:var(--accent);color:var(--accent)}
.atc-play{flex:none;font-size:9px;color:var(--accent)}
.atc-t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.am-track-chip.actief{background:var(--accent);color:#fff;border-color:transparent}
.am-track-chip.actief .atc-play{color:#fff}
/* Video's: thumbnail → klik om af te spelen */
.am-mpane[data-mpane="videos"] .artist-videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:11px}
.av-item.av-groot{grid-column:1/-1}
.av-thumb{position:absolute;inset:0;background:#000 center/cover;display:grid;place-items:center;cursor:pointer}
.av-play{width:54px;height:54px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:20px;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(3px);transition:.14s;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.av-thumb:hover .av-play{background:var(--accent);transform:scale(1.08)}
@media(max-width:860px){
  .am-card{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13)}
  .am-np-info #am-track{color:#fff}
  .am-seg{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}
  .am-track-chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:#fff}
}

/* Festival-opmerking als duidelijke banner onder de foto */
.artist-sheet-sidebar .artist-main .artist-festival-notes{margin:14px 0 0;padding:0;border:0;border-radius:0;background:none}
.artist-sheet-sidebar .artist-main .am-note-pill .am-note-text{color:var(--warm-ink)}
.artist-sheet-sidebar .artist-main .am-notes-head{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.artist-sheet-sidebar .artist-main .am-notes-ic{color:var(--accent);font-size:13px;line-height:1}
.artist-sheet-sidebar .artist-main .am-notes-head h3{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-ink);margin:0;flex:1}
.artist-sheet-sidebar .artist-main #am-note-edit{flex:none;border:1px solid color-mix(in oklch,var(--accent) 35%,transparent);background:transparent;color:var(--accent-ink);font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;cursor:pointer;font-family:inherit}
.artist-sheet-sidebar .artist-main .am-note-text{font-size:13.5px;line-height:1.45;color:var(--ink)}
/* scope-badge bij Mijn opmerking */
.am-scope-badge{font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.14);color:rgba(255,255,255,.85);margin-left:6px;vertical-align:middle}

/* Mooie, slanke scrollbars (licht én donker) */
*{scrollbar-width:thin;scrollbar-color:color-mix(in oklch,var(--ink) 26%,transparent) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--ink) 24%,transparent);border-radius:999px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch,var(--ink) 40%,transparent);background-clip:padding-box}

/* per-fotograaf vinkje (gefotografeerd) + "Ik fotografeerde dit"-knop */
.artist-crew-tag .cd{flex:none;color:var(--fs-veel);font-size:13px;font-weight:800;line-height:1}
.artist-sheet-sidebar .artist-rail .artist-crew-tag.done{border-color:color-mix(in oklch,var(--fs-veel) 55%,transparent);background:color-mix(in oklch,var(--fs-veel) 14%,rgba(255,255,255,.06))}
.artist-sheet-sidebar .artist-rail .artist-crew-tag .cd{color:var(--fs-veel)}
.am-ik-foto{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center;margin-top:10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:13px;padding:10px 13px;border-radius:11px;cursor:pointer;font-family:inherit;transition:.13s}
.am-ik-foto:hover{background:rgba(255,255,255,.14)}
.am-ik-foto .vk{font-size:15px;line-height:1}
.am-ik-foto.aan{background:color-mix(in oklch,var(--fs-veel) 32%,transparent);border-color:color-mix(in oklch,var(--fs-veel) 60%,transparent)}
.am-ik-foto[disabled]{opacity:.6;cursor:default}

/* ===== Mobiel schema: podia bovenaan naast elkaar, tijd verticaal ===== */
.sch-scroll.msc{flex:1 1 auto;min-height:0;height:auto;max-height:none;overflow:auto;cursor:auto;background:#f6f6f7;border-radius:0;box-shadow:none;-webkit-overflow-scrolling:touch}
.sch-scroll.msc .sch-head{background:#f6f6f7;border-bottom:1px solid var(--line);height:auto}
.sch-scroll.msc .sch-corner{background:#f6f6f7;font-family:var(--mono);font-size:10px;font-weight:800;color:var(--muted);letter-spacing:.04em}
.sch-scroll.msc .sch-col-head{position:relative;justify-content:center;text-align:center;border-right:0;padding:9px 8px 13px}
.sch-scroll.msc .sch-col-head b{font-family:var(--disp);font-size:13.5px;font-weight:800;letter-spacing:-.02em;color:var(--ink);white-space:normal;line-height:1.05}
.sch-scroll.msc .sch-col-head::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:3px;border-radius:999px;background:var(--sc)}
.sch-scroll.msc .sch-gutter{background:#f6f6f7;border-right:1px solid var(--line)}
.sch-scroll.msc .sch-gutter .ghour{font-size:10.5px;color:var(--muted);border-top-color:var(--line)}
.sch-scroll.msc .sch-col{border-right:1px solid var(--line)}
.sch-scroll.msc .sch-block{left:4px;right:4px;border-radius:14px;box-shadow:0 4px 12px rgba(20,24,34,.14)}
.sch-scroll.msc .sch-block .bin{padding:9px 11px}
.sch-scroll.msc .sch-block .bt{font-size:11px}
.sch-scroll.msc .sch-block .bn{font-size:15px;line-height:1.05}
.sch-scroll.msc .sch-now.now-h{left:0;right:0;height:2px;background:var(--red);box-shadow:0 0 10px var(--red)}
.sch-scroll.msc .sch-now.now-h .now-flag{right:8px;top:-9px;background:var(--red);padding:1px 6px;border-radius:999px}

/* Mijn lijstje: artiesten als affichekoppen */
.mijnlijst-content .nu-hero{
  padding:24px 28px;
  border-radius:20px;
}
.mijnlijst-content .nu-hero h3{
  max-width:920px;
  font-family:var(--disp);
  font-size:clamp(32px,4.4vw,58px);
  font-weight:900;
  line-height:.98;
  letter-spacing:-.045em;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.mijnlijst-content .nu-live-item h3{
  max-width:880px;
  font-family:var(--disp);
  font-size:clamp(28px,3.8vw,46px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.04em;
  text-wrap:balance;
  overflow-wrap:anywhere;
}
.mijnlijst-content .nu-hero .meta,
.mijnlijst-content .nu-live-item .meta{
  margin-top:12px;
  font-size:17px;
  font-weight:800;
}
.mijnlijst-content .nu-hero .meta .tm,
.mijnlijst-content .nu-live-item:not(.nu-live-extra) .meta .tm,
.mijnlijst-content .nu-hero .meta b,
.mijnlijst-content .nu-live-item:not(.nu-live-extra) .meta b{font-size:17px;font-weight:850}
/* Eigen moment in de live-kaart = veel kleiner dan een concert (het is maar een notitie) */
.mijnlijst-content .nu-live-item.nu-live-extra h3{font-size:16px;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.mijnlijst-content .nu-live-item.nu-live-extra .meta{margin-top:6px;font-size:12px;font-weight:650}
.mijnlijst-content .nu-hero .grootcd{
  margin-top:12px;
}
.mijnlijst-content .nu-hero .hero-card-loader{
  margin-top:5px;
  padding:0 0 2px;
  border-top:0;
}
.mijnlijst-content .nu-hero .hero-card-loader-top{
  display:none;
}
.mijnlijst-content .nu-hero .hero-card-loader-track{
  height:9px;
}
.mijnlijst-content .tijdlijn{
  gap:18px;
}
.mijnlijst-content .mijn-rij{
  align-items:center;
  min-height:112px;
  padding:18px 18px;
  background:color-mix(in oklch,var(--surface) 98.5%,var(--bg-2));
  border-color:color-mix(in oklch,var(--line) 78%,transparent);
}
.mijnlijst-content .tijdlijn .mijn-rij:nth-child(4n+1),
.mijnlijst-content .tijdlijn .mijn-rij:nth-child(4n+2){
  background:color-mix(in oklch,var(--pink) .45%,var(--surface));
}
.mijnlijst-content .tijdlijn .mijn-rij:nth-child(4n+3),
.mijnlijst-content .tijdlijn .mijn-rij:nth-child(4n+4){
  background:color-mix(in oklch,var(--accent) .6%,var(--surface));
}
.mijnlijst-content .mijn-rij:hover{
  background:color-mix(in oklch,var(--yellow) 2.2%,var(--surface));
}
.mijnlijst-content .mijn-rij .tijd .u{
  font-size:22px;
  font-weight:900;
  letter-spacing:-.035em;
}
.mijnlijst-content .mijn-rij .tijd .e{
  font-size:15px;
  font-weight:800;
}
.mijnlijst-content .mijn-rij .body .ttl{
  display:block;
  margin-top:7px;
}
.mijnlijst-content .mijn-rij .body .ttl b{
  display:block;
  max-width:980px;
  font-family:var(--disp);
  font-size:clamp(22px,2.75vw,35px);
  font-weight:900;
  line-height:1.02;
  letter-spacing:-.035em;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  overflow-wrap:anywhere;
  text-wrap:balance;
}
.mijnlijst-content .mijn-rij .spoor{
  display:flex;
}
.mijnlijst-content .mijn-rij .spoor::before{
  top:-28px;
  bottom:-28px;
  background:color-mix(in oklch,var(--pink) 32%,var(--line));
  z-index:0;
}
.mijnlijst-content .mijn-rij:first-child .spoor::before{
  top:-28px;
}
.mijnlijst-content .mijn-rij:last-child .spoor::before{
  bottom:-28px;
}
.mijnlijst-content .mijn-rij .knoop{
  position:relative;
  z-index:1;
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
  margin-top:0;
  border-radius:50%;
  background:var(--pink)!important;
  border:0!important;
  color:#fff;
  box-shadow:0 6px 15px -12px var(--pink)!important;
}
.mijnlijst-content .ml-volg{
  display:grid;
  place-items:center;
  font-family:var(--mono);
  font-size:12px;
  font-weight:950;
  line-height:1;
  color:#fff;
}
.mijnlijst-content .mijn-rij .body .ttl .tag{
  margin-top:11px;
  vertical-align:middle;
}
.mijnlijst-content .ml-meta{
  font-size:15px;
  font-weight:900;
  letter-spacing:.01em;
  text-transform:uppercase;
  color:var(--ink);
}
.mijnlijst-content .ml-meta .dot{width:8px;height:8px;flex:0 0 8px}
.mijnlijst-content .ml-crew{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:10px;
  font-size:14.5px;
}
/* Fotografen als vakjes-tags (camera-icoon + naam) i.p.v. platte tekst */
.ml-fotograaf{display:inline-flex;align-items:center;gap:5px;background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:5px 11px 5px 9px;font-size:12.5px;font-weight:800;color:var(--ink-2);line-height:1.1}
.ml-fotograaf svg{flex:none;color:var(--muted)}
.ml-crew-leeg{font-size:13.5px;color:var(--faint);font-weight:700}
.ml-podium-tijd{display:none}  /* enkel mobiel zichtbaar: podium bij het uur */
.mijnlijst-content .mijn-rij .body .sub{
  max-width:720px;
  margin-top:10px;
  font-size:14px;
  line-height:1.5;
}

@media(max-width:860px){
  .mijnlijst-content .nu-hero{
    padding:22px 18px;
    border-radius:18px;
  }
  .mijnlijst-content .nu-hero h3{
    font-size:clamp(30px,8.6vw,46px);
    line-height:1;
  }
  .mijnlijst-content .nu-live-item h3{
    font-size:clamp(27px,8vw,40px);
    line-height:1;
  }
  /* Eén doorlopende tijdlijn i.p.v. losse vakjes: geen kader/schaduw/witte doos meer,
     de verticale lijn (.spoor) verbindt de concerten tot één geheel. Tijd wat meer naar links. */
  /* lay-out 2: tijdlijn-bol links, dan grote naam, uur·podium klein eronder, opmerking, fotografen */
  .mijnlijst-content .mijn-rij{
    position:relative;
    min-height:0;
    grid-template-columns:30px minmax(0,1fr);
    gap:12px;
    padding:11px 4px 12px;
    border:0;
    box-shadow:none;
    background:transparent !important;
    border-radius:14px;
  }
  .mijnlijst-content .mijn-rij.nu{
    border:0;
    box-shadow:none;
    background:var(--accent-soft) !important;
    padding:11px 12px 12px;
  }
  .mijnlijst-content .mijn-rij .tijd{display:none}
  .mijnlijst-content .mijn-rij .spoor{grid-column:1;grid-row:1 / span 2;display:flex;justify-content:center;align-items:center;align-self:stretch}
  /* tijdlijn-hartje (rood zoals schema) — verticaal gecentreerd op de lijn, vooraan/bovenop, tik = uit mijn lijstje, met pop-animatie */
  .mijnlijst-content .ml-spoor-hart{position:relative;z-index:2;width:34px;height:34px;border:0;background:var(--bg);color:var(--red);font-size:29px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0;margin:0;align-self:center;border-radius:50%;transition:transform .14s}
  .mijnlijst-content .ml-spoor-hart:active{transform:scale(.82)}
  .mijnlijst-content .ml-spoor-hart.weg{animation:mlHartPop .34s ease forwards;pointer-events:none}
  @keyframes mlHartPop{0%{transform:scale(1)}38%{transform:scale(1.4)}100%{transform:scale(0);opacity:0}}
  .mijnlijst-content .mijn-rij .body{grid-column:2;display:flex;flex-direction:column;min-width:0}
  .mijnlijst-content .mijn-rij .body .ttl{order:1}
  .mijnlijst-content .mijn-rij .body .ml-meta{order:2}
  .mijnlijst-content .mijn-rij .body .sub{order:3}
  .mijnlijst-content .mijn-rij .body .ml-crew{order:4}
  .mijnlijst-content .mijn-rij .fs-wrap{grid-column:2;grid-row:2;justify-self:start;margin-top:6px}
  .mijnlijst-content .mijn-rij .rij-x{position:absolute;top:11px;right:2px;width:34px;height:34px;border-radius:12px}
  .mijnlijst-content .mijn-rij .tijd .u{
    font-size:24px;
  }
  .mijnlijst-content .mijn-rij .tijd .e{
    font-size:14px;
  }
  .mijnlijst-content .mijn-rij .body .ttl{padding-right:40px}
  /* chevron rechts → toont dat je de rij kan aantikken om het kaartje te openen */
  .mijnlijst-content .mijn-rij::after{content:"";position:absolute;right:5px;top:50%;width:9px;height:9px;border-right:2.5px solid var(--faint);border-top:2.5px solid var(--faint);transform:translateY(-50%) rotate(45deg);pointer-events:none}
  .mijnlijst-content .mijn-rij .body .ttl b{
    font-size:clamp(27px,8.5vw,38px);
    line-height:1;
    letter-spacing:-.04em;
  }
  .mijnlijst-content .ml-volg{
    font-size:11px;
  }
  .mijnlijst-content .ml-meta{font-size:17px;font-weight:900}
  /* "X nog te gaan" onder de kop i.p.v. erachter */
  .mijnlijst-content .sectiekop h2 span{display:block;margin-left:0;margin-top:3px}
  .mijnlijst-content .mijn-rij .body .sub{
    font-size:13.5px;
    max-width:100%;          /* niet de 720px van desktop — anders loopt de tekst van het scherm */
    overflow-wrap:anywhere;  /* breek ook lange woorden/links netjes af */
  }
}

/* Fototeam: festival wall met leesbare teamkaartjes */
.content.fototeam-wall-content{
  max-width:1340px;
}
.fototeam-wall-page{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  min-height:calc(100dvh - 60px);
  padding:clamp(22px,4vw,48px);
  color:#fff;
  background:
    linear-gradient(180deg,rgba(9,12,20,.30),rgba(9,12,20,.82)),
    linear-gradient(90deg,rgba(9,12,20,.84),rgba(9,12,20,.18) 58%,rgba(9,12,20,.74)),
    var(--team-bg) center/cover no-repeat,
    var(--ink);
  box-shadow:0 30px 80px -48px rgba(0,0,0,.62);
}
.fototeam-wall-page::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.14),transparent 28%,rgba(255,255,255,.08) 70%,transparent);
  pointer-events:none;
}
.fototeam-wall-page .eyebrow{
  color:rgba(255,255,255,.74);
}
.fototeam-wall-page .groet{
  color:#fff;
  font-size:clamp(54px,8vw,118px);
  line-height:.78;
  letter-spacing:-.09em;
}
.fototeam-wall-page .lead{
  color:rgba(255,255,255,.84);
  font-size:clamp(16px,1.8vw,21px);
  line-height:1.35;
}
.fototeam-wall-hero{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:clamp(26px,4vw,52px);
}
.fototeam-wall-tekst{
  max-width:640px;
  margin:14px 0 0;
  color:rgba(255,255,255,.94);
  font-size:clamp(14px,1.5vw,16px);
  line-height:1.6;
  font-weight:600;
  text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.fototeam-wall-page .fototeam-count{
  background:rgba(255,255,255,.92);
  color:var(--ink);
  box-shadow:0 24px 46px -30px #000;
}
.fototeam-wall-page .fototeam-count span{
  color:var(--muted);
}
.fototeam-wall-page .fototeam-stage-intro{
  position:relative;
  z-index:1;
  grid-template-columns:minmax(240px,360px) minmax(0,620px);
  margin-bottom:24px;
}
.fototeam-wall-page .fototeam-stage-intro b{
  color:#fff;
  font-size:clamp(28px,4.2vw,56px);
  line-height:.86;
  letter-spacing:-.075em;
}
.fototeam-wall-page .fototeam-stage-intro span{
  color:rgba(255,255,255,.78);
  font-size:16px;
}
.fototeam-wall-page .team-portraits{
  position:relative;
  z-index:1;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:22px;
  row-gap:34px;
  align-items:start;
}
.fototeam-wall-page .team-person{
  min-height:100%;
  gap:12px;
  padding:12px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:22px;
  background:rgba(255,255,255,.88);
  color:var(--ink);
  box-shadow:0 18px 46px -34px rgba(0,0,0,.72);
  backdrop-filter:blur(10px) saturate(1.15);
}
.fototeam-wall-page .team-person:nth-child(n){
  margin-top:0;
}
.fototeam-wall-page .team-person:nth-child(2),
.fototeam-wall-page .team-person:nth-child(5){
  transform:translateY(14px);
}
.fototeam-wall-page .team-person:nth-child(3){
  transform:translateY(6px);
}
.fototeam-wall-page .team-person:nth-child(4){
  transform:translateY(20px);
}
.fototeam-wall-page .team-person-photo{
  border-radius:18px;
  aspect-ratio:1/1.03;
  box-shadow:none;
}
.fototeam-wall-page .team-person-photo::after{
  inset:7px;
  border-color:rgba(255,255,255,.34);
  border-radius:15px;
}
.fototeam-wall-page .team-person-copy{
  padding:0 2px 2px;
}
.fototeam-wall-page .team-person-copy small{
  color:var(--muted);
  font-size:10px;
  line-height:1.22;
  white-space:normal;
}
.fototeam-wall-page .team-person-copy h2{
  color:var(--ink);
  font-size:clamp(19px,2.1vw,34px);
  line-height:.92;
  letter-spacing:-.06em;
  overflow-wrap:normal;
  word-break:keep-all;
  hyphens:none;
  text-wrap:balance;
}
.fototeam-wall-page .team-person-sub{
  display:block;margin-top:5px;color:var(--muted);
  font-size:12px;font-weight:700;font-style:italic;letter-spacing:0;
}
.fototeam-wall-page .team-person-copy p{
  color:var(--ink-2);
}

@media(max-width:1080px){
  .fototeam-wall-page .team-portraits{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .fototeam-wall-page .team-person:nth-child(n){
    transform:none;
  }
}
@media(max-width:720px){
  .fototeam-wall-page{
    border-radius:22px;
    padding:20px;
  }
  .fototeam-wall-hero{
    display:grid;
    gap:18px;
  }
  .fototeam-wall-page .groet{
    font-size:clamp(54px,18vw,82px);
  }
  .fototeam-wall-page .fototeam-stage-intro{
    grid-template-columns:1fr;
  }
  .fototeam-wall-page .team-portraits{
    grid-template-columns:1fr;
  }
  .fototeam-wall-page .team-person{
    grid-template-columns:104px minmax(0,1fr);
    align-items:center;
    padding:11px;
  }
  .fototeam-wall-page .team-person-photo{
    aspect-ratio:1/1;
  }
  .fototeam-wall-page .team-person-copy h2{
    font-size:clamp(28px,10vw,44px);
  }
}

/* lijst-selectie tonen we via het rode hartje, niet via een roze rand rond het paneel */
/* Mobiel artiestkaartje: foto strak bovenaan, subtiele selectie, naam groter+gradient, status naast elkaar, frisser */
@media(max-width:860px){
  /* frissere kaartkleur (zachte verloop i.p.v. vlak donker navy) */
  .artist-sheet{background:linear-gradient(180deg,oklch(0.33 0.036 244),oklch(0.27 0.027 256))}
  /* grabber zweeft over de foto i.p.v. ze naar onder te duwen → foto recht tot bovenaan */
  .artist-sheet::before{position:absolute;top:10px;left:50%;transform:translateX(-50%);margin:0;background:rgba(255,255,255,.6);box-shadow:0 1px 5px rgba(0,0,0,.5);z-index:6}
  .artist-sheet-sidebar .artist-foto{height:196px;margin:0 0 14px;border-radius:28px 28px 0 0}
  /* geen × sluitknop: de 'in mijn lijstje'-knop staat al rechtsboven */
  .artist-close{display:none!important}
  /* sterkere gradient + grotere naam voor leesbaarheid */
  .artist-foto-grad{background:linear-gradient(transparent 16%,rgba(8,10,16,.5) 50%,rgba(6,8,14,.94))}
  .artist-sheet-sidebar .artist-foto h2{font-size:clamp(30px,9vw,42px);line-height:.9}
  /* subtiele selectie i.p.v. dikke roze lijn */
  .artist-modal[data-in-list="1"] .artist-sheet{box-shadow:0 -24px 62px rgba(0,0,0,.34)}
  .artist-modal[data-in-list="1"] .artist-foto{box-shadow:none}
  /* Gefotografeerd / Niet gefotografeerd naast elkaar */
  .am-status-keuzes{flex-direction:row;gap:8px;align-items:stretch}
  .am-status-keuze{flex:1;justify-content:center;padding:11px 9px;text-align:center}
}
.artist-sheet-sidebar .artist-rail .artist-lijst-knop[hidden]{
  display:none!important;
}
.artist-sheet-sidebar .artist-rail{
  gap:18px;
}
/* Status-paneel in het artiestvenster (rechterkolom) */
.am-status{display:flex;flex-direction:column;gap:10px;order:-2;margin-top:2px}
.am-status-keuzes{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.am-status-keuze{display:inline-flex;align-items:center;gap:9px;width:auto;border:1.5px solid rgba(255,255,255,.24);background:rgba(255,255,255,.09);border-radius:12px;padding:10px 15px 10px 12px;cursor:pointer;font-family:inherit;font-weight:850;font-size:13.5px;color:#fff;transition:.12s}
.am-status-keuze:hover{border-color:rgba(255,255,255,.5)}
.am-sk-box{width:20px;height:20px;border-radius:6px;border:2px solid rgba(255,255,255,.42);flex:none;display:grid;place-items:center;color:#fff;font-weight:900;font-size:13px;transition:.12s}
.am-sk-ja.aan{border-color:var(--fs-veel);background:color-mix(in oklch,var(--fs-veel) 30%,transparent)}
.am-sk-ja.aan .am-sk-box{background:var(--fs-veel);border-color:var(--fs-veel)}
.am-sk-ja.aan .am-sk-box::after{content:"✓"}
.am-sk-nee.aan{border-color:var(--warm);background:color-mix(in oklch,var(--warm) 28%,transparent)}
.am-sk-nee.aan .am-sk-box{background:var(--warm);border-color:var(--warm)}
.am-sk-nee.aan .am-sk-box::after{content:"✕"}
.am-status.niet-toegewezen .am-sk-nee{display:none}
.am-status-opm{display:flex;flex-direction:column;gap:6px}
.am-status-opm-lbl{font-size:11px;font-weight:800;color:rgba(255,255,255,.72)}
#am-status-opm-in{width:100%;resize:vertical;min-height:44px;max-height:160px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.96);color:var(--ink);padding:9px 11px;font:600 13px var(--body);line-height:1.45}
#am-status-opm-in:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
#am-status-opm-ok{align-self:flex-end;border:0;border-radius:10px;padding:8px 16px;background:#fff;color:var(--ink);font-size:12.5px;font-weight:900;font-family:inherit;cursor:pointer}
.am-status.reden-nodig #am-status-opm-in{border-color:var(--warm);box-shadow:0 0 0 3px color-mix(in oklch,var(--warm) 30%,transparent)}
.am-status.reden-nodig .am-status-opm-lbl{color:color-mix(in oklch,var(--warm) 55%,#fff)}
.artist-sheet-sidebar .am-ik-foto{
  order:-2;
  min-height:58px;
  margin:0;
  border-radius:16px;
  border:1px solid color-mix(in oklch,var(--fs-veel) 44%,rgba(255,255,255,.22));
  background:linear-gradient(135deg,color-mix(in oklch,var(--fs-veel) 38%,transparent),rgba(255,255,255,.08));
  color:#fff;
  font-size:15px;
  font-weight:950;
  letter-spacing:-.01em;
  box-shadow:0 16px 38px -28px var(--fs-veel);
}
.artist-sheet-sidebar .am-ik-foto .vk{
  width:25px;
  height:25px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.14);
  font-size:15px;
}
.artist-sheet-sidebar .am-ik-foto.aan{
  background:var(--fs-veel);
  border-color:var(--fs-veel);
  color:#fff;
}
.artist-sheet-sidebar .artist-crew-tags{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:7px;
}
.artist-sheet-sidebar .artist-crew-tag{
  width:auto;
  max-width:100%;
  flex:0 1 auto;
  border-radius:999px;
  padding:6px 9px 6px 6px;
  gap:7px;
  font-size:12px;
}
.artist-sheet-sidebar .artist-crew-tag>span{
  flex:0 1 auto;
  max-width:160px;
}
.artist-crew-num{
  flex:0 0 auto;
  min-width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--pink);
  color:#fff;
  font-family:var(--mono);
  font-size:10px;
  font-style:normal;
  font-weight:950;
}
.artist-sheet-sidebar .artist-crew-add-tag{
  display:inline-flex;align-items:center;gap:6px;width:auto;height:auto;flex:0 0 auto;align-self:center;
  padding:7px 13px 7px 9px;border-radius:999px;
  border:1.5px dashed color-mix(in oklch,var(--fs-veel) 60%,rgba(255,255,255,.4));
  background:rgba(255,255,255,.06);color:#fff;font-size:12.5px;font-weight:800;line-height:1;
}
.artist-sheet-sidebar .artist-crew-add-tag .acat-plus{font-size:16px;line-height:1;margin-top:-1px}
.artist-sheet-sidebar .artist-crew-add-tag:hover{border-color:var(--fs-veel);background:color-mix(in oklch,var(--fs-veel) 18%,transparent)}
/* fotograaf weghalen — nette bevestiging ter plekke */
.artist-sheet-sidebar .artist-crew-tag.bevestig{border-color:var(--warm);background:color-mix(in oklch,var(--warm) 20%,transparent);gap:7px}
.acc-bev-tx{font-size:12px;font-weight:850;color:#fff;white-space:nowrap}
/* opmerking van een fotograaf — venstertje op hover (zoals bij live) */
.artist-sheet-sidebar .artist-crew-tag.heeft-tip{cursor:help}
.artist-sheet-sidebar .artist-crew-tag .acc-opm{font-size:11px;flex:none;line-height:1}
.artist-sheet-sidebar .artist-crew-tag .cd-let{flex:none;color:var(--warm);font-size:13px;font-weight:900}
.artist-sheet-sidebar .artist-crew-tag.let-op{border-color:color-mix(in oklch,var(--warm) 55%,transparent)}
.artist-sheet-sidebar .artist-crew-tag.heeft-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%) translateY(4px);width:max-content;max-width:230px;white-space:normal;background:#0e1118;color:#fff;font-size:12px;font-weight:600;line-height:1.4;text-align:left;padding:9px 12px;border-radius:11px;box-shadow:0 14px 32px -10px rgba(0,0,0,.65);opacity:0;pointer-events:none;transition:.14s;z-index:130}
.artist-sheet-sidebar .artist-crew-tag.heeft-tip:hover::after,.artist-sheet-sidebar .artist-crew-tag.heeft-tip:focus::after{opacity:1;transform:translateX(-50%) translateY(0)}
.artist-sheet-sidebar .artist-crew-tag.bevestig button{position:static !important;opacity:1 !important;transform:none !important;pointer-events:auto !important;width:auto !important;height:auto !important;border:0;border-radius:8px;padding:5px 11px;font-size:11.5px;font-weight:900;cursor:pointer;font-family:inherit;flex:0 0 auto}
.artist-sheet-sidebar .artist-crew-tag.bevestig .acc-bev-ja{background:var(--fs-veel);color:#fff}
.artist-sheet-sidebar .artist-crew-tag.bevestig .acc-bev-nee{background:rgba(255,255,255,.16);color:#fff}
.org-assign-pop{
  position:fixed;
  z-index:120;
  width:270px;
  max-width:calc(100vw - 24px);
  padding:12px;
  border:1px solid color-mix(in oklch,var(--pink) 32%,rgba(255,255,255,.34));
  border-radius:18px;
  background:rgba(255,255,255,.96);
  box-shadow:0 24px 62px -30px rgba(0,0,0,.55);
  backdrop-filter:blur(14px) saturate(1.2);
  opacity:0;
  transform:translateY(8px) scale(.98);
  pointer-events:none;
  transition:opacity .14s,transform .16s;
}
.org-assign-pop.aan{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.org-pop-head{
  display:grid;
  gap:3px;
  margin-bottom:9px;
}
.org-pop-head b{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:var(--disp);
  font-size:18px;
  font-weight:950;
  letter-spacing:-.04em;
  color:var(--ink);
}
.org-pop-head span{
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--pink);
}
.org-pop-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.org-pop-list button{
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
  color:var(--ink-2);
  padding:7px 10px;
  font-size:12px;
  font-weight:900;
}
.org-pop-list button:hover{
  background:var(--pink);
  border-color:var(--pink);
  color:#fff;
}
.org-pop-list em{
  color:var(--muted);
  font-style:normal;
  font-size:13px;
  font-weight:750;
}
body.organiseer-modus .sch-block:hover{
  box-shadow:0 0 0 5px color-mix(in oklch,var(--pink) 42%,transparent),0 16px 30px rgba(0,0,0,.32);
}
body.organiseer-modus .sch-scroll{
  outline-color:var(--pink);
}

/* ===================================================================
   Artiestkaartje — "LUCHT"-layout (voorbeelden → Festival kaart var. 12)
   gecombineerd met de variant-24-bovenkant (foto + drijvende vink).
   Geldt voor ALLE breedtes: mobiel als bottom-sheet, desktop als
   rechts-uitschuifpaneel (design "D1 · Rechts-paneel").
   =================================================================== */
@media(min-width:0px){
  /* ---- design-tokens uit het voorbeeld (cards.css) ---- */
  .artist-sheet-sidebar{--vk-ink:#141821;--vk-ink2:#5A6273;--vk-ink3:#8B93A7;--vk-line:#ECEEF4;--vk-line2:#E3E7F0;
    --vk-accent:#5B57D6;--vk-done:#1F9D57;--vk-fail:#E2574C}
  /* hidden-attribuut altijd respecteren, ook waar we hieronder display forceren */
  .artist-sheet-sidebar [hidden]{display:none!important}

  /* ---- kaart-schil: witte kaart, alles als één flex-kolom ---- */
  .artist-sheet{background:#fff!important;color:var(--vk-ink);padding-bottom:0!important}
  .artist-sheet-sidebar .artist-grid{display:flex;flex-direction:column;gap:15px;padding:4px 24px calc(28px + env(safe-area-inset-bottom))}
  .artist-sheet-sidebar .artist-main,.artist-sheet-sidebar .artist-rail,
  .artist-sheet-sidebar .artist-foto,.artist-sheet-sidebar .artist-foto-tx,
  .artist-sheet-sidebar .am-onder,.artist-sheet-sidebar .am-onder-links,.artist-sheet-sidebar .am-onder-rechts{display:contents}
  /* niet in deze layout: fotobanner-extra's, genres, tabs/laadje-restanten */
  .artist-foto-grad,.am-foto-play,.am-foto-next,
  .artist-sheet-sidebar .artist-chips,.artist-sheet-sidebar .am-genre-onder,
  .am-status-trigger,.am-status-greep,.am-status-hint,.am-status-opm-toggle,.am-sk-todo{display:none!important}

  /* ===== bovenkant zoals variant 24 "Drijvende actie": foto bovenaan,
     greep + hartje óp de foto, ronde vink-knop half over de fotorand ===== */

  /* 1 · foto edge-to-edge bovenaan */
  .artist-sheet-sidebar #am-photo{order:1;display:block;width:calc(100% + 48px);height:186px;margin:-4px -24px 0;
    object-fit:cover;object-position:center 30%;border-radius:0;background:#E9EBEF}

  /* greep: gecentreerd óp de foto */
  .am-greep{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:6;display:block;
    width:38px;height:5px;border-radius:3px;background:rgba(255,255,255,.6);margin:0}

  /* mobiel: hartje rechtsboven op de foto mét tekst, wit→rood (rood gevuld als hij op je lijstje staat) */
  .am-foto-hart{display:inline-flex!important;align-items:center;position:absolute;top:13px;left:auto;right:13px;bottom:auto;z-index:6;
    width:auto;height:40px;padding:0 15px;gap:7px;border:0;border-radius:999px;
    background:rgba(255,255,255,.95);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--red);box-shadow:0 5px 16px rgba(0,0,0,.26)}
  .am-foto-hart .amfh-tx{display:inline;font-size:12.5px;font-weight:850;color:var(--red)}
  .am-foto-hart .amfh-ic{font-size:19px;line-height:1}
  .am-foto-hart.aan{background:var(--red);color:#fff}
  .am-foto-hart.aan .amfh-tx,.am-foto-hart.aan .amfh-ic{color:#fff}
  /* de grote hart-knop uit "Lucht" vervalt (hart staat op de foto) */
  .artist-sheet-sidebar .artist-rail .artist-lijst-knop,.artist-sheet-sidebar .artist-lijst-knop{display:none}

  /* drijvende vink-knop: half over de onderrand van de foto, rechts.
     De echte ja/nee-knoppen blijven verborgen; het vinkje opent een groot submenu. */
  .am-status-keuzes{display:contents!important}
  .am-sk-ja,.am-sk-nee{display:none!important}
  .am-vink{position:absolute;top:152px;right:18px;z-index:8;width:60px;height:60px;margin:0;padding:0;
    display:grid;place-items:center;border:4px solid #fff;border-radius:50%;cursor:pointer;
    background:#fff;color:#9AA1B2;font-size:25px;font-weight:900;line-height:1;font-family:inherit;
    box-shadow:0 8px 20px rgba(20,30,40,.2);transition:.16s}
  .am-vink:active{transform:scale(.93)}
  .am-vink.aan{background:linear-gradient(165deg,#3BD68F 0%,var(--vk-done) 52%,#0E7A43 100%);color:#fff;
    box-shadow:0 12px 24px rgba(31,157,87,.45),inset 0 2px 0 rgba(255,255,255,.45),inset 0 -3px 7px rgba(0,0,0,.22)}
  .am-vink.probleem{background:#E8902A;color:#fff;box-shadow:0 8px 20px rgba(232,144,42,.35)}
  /* het submenu: groot en mooi, klapt open onder het vinkje (niet over de volle breedte) */
  .am-vink-menu{position:absolute;top:222px;right:14px;left:auto;width:min(320px,calc(100vw - 28px));z-index:9;
    display:flex;flex-direction:column;gap:4px;background:#fff;border:1px solid var(--vk-line);border-radius:20px;padding:9px;
    box-shadow:0 24px 54px -18px rgba(20,24,40,.45);animation:amVinkPop .2s cubic-bezier(.3,.9,.3,1.1)}
  @keyframes amVinkPop{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}
  .am-vink-menu>button{display:flex;align-items:center;gap:13px;width:100%;border:0;background:none;cursor:pointer;
    text-align:left;font-family:inherit;padding:14px 12px;border-radius:14px}
  .am-vink-menu>button:active{background:#F4F6FB}
  .am-vink-menu>button.gekozen{background:#F4F6FB;box-shadow:inset 0 0 0 1.5px var(--vk-line2)}
  .am-vink-menu .avm-ic{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
    font-size:21px;font-weight:900;line-height:1}
  .am-vink-menu .avm-ic.ok{background:#EAF6EF;color:var(--vk-done)}
  .am-vink-menu .avm-ic.warn{background:#FBEEDD;color:#E8902A}
  .am-vink-menu .avm-ic.plus{background:#EEEDFB;color:var(--vk-accent);font-size:26px;font-weight:800;padding-bottom:2px}
  .am-vink-menu .avm-ic.x{background:#F1F3F9;color:var(--vk-ink3);font-size:17px}
  .am-vink-menu .avm-tx{min-width:0}
  .am-vink-menu .avm-tx b{display:block;font-size:17px;font-weight:850;letter-spacing:-.015em;color:var(--vk-ink)}
  .am-vink-menu .avm-tx small{display:block;margin-top:2px;font-size:12.5px;font-weight:600;color:var(--vk-ink3)}
  /* opmerking-kader ín het menu na "Gefotografeerd" */
  .avm-opm{display:flex;flex-direction:column;gap:9px;padding:6px 4px 4px;animation:vkReveal .25s ease both}
  .avm-opm-lbl{font-size:14px;font-weight:800;color:var(--vk-done)}
  .avm-opm-lbl.warn{color:var(--vk-fail)}
  #avm-opm-in.fout{border-color:var(--vk-fail);box-shadow:0 0 0 3px color-mix(in oklch,var(--vk-fail) 18%,transparent)}
  #avm-opm-in{width:100%;border:1.5px solid var(--vk-line2);background:#fff;border-radius:11px;padding:11px 13px;
    font-family:var(--body);font-size:14px;font-weight:600;color:var(--vk-ink);min-height:52px;resize:none}
  #avm-opm-in:focus{outline:none;border-color:var(--vk-accent)}
  #avm-opm-in::placeholder{color:#AEB5C3}
  .avm-opm-knoppen{display:flex;gap:8px}
  .avm-opm-knoppen button{flex:1;border-radius:12px;padding:12px 10px;font-family:inherit;font-size:13.5px;font-weight:800;cursor:pointer}
  #avm-opm-geen{border:1.5px solid var(--vk-line2);background:#fff;color:var(--vk-ink2)}
  #avm-opm-bewaar{border:0;background:var(--vk-ink);color:#fff}
  /* 🎉 hoera-animatie uit de vink-knop (Claude Design "Checklist animatie met feedback") */
  #fx-feest{position:fixed;inset:0;pointer-events:none;z-index:2100;overflow:hidden}
  .fx-word{position:fixed;font-family:var(--body);font-weight:700;font-size:17px;padding:7px 13px;border-radius:13px;
    white-space:nowrap;color:#fff;box-shadow:0 8px 20px -6px rgba(20,10,40,.35);will-change:transform,opacity}
  .fx-word.script{font-family:'Caveat',cursive;font-weight:700;font-size:33px;padding:2px 10px;line-height:1;
    background:transparent!important;box-shadow:none;text-shadow:0 3px 10px rgba(20,10,40,.25)}
  .fx-word.groot{font-size:44px}
  .fx-heart,.fx-spark,.fx-confetti{position:fixed;will-change:transform,opacity}
  .fx-ring{position:fixed;border-radius:50%;border:3px solid rgba(255,255,255,.9);will-change:transform,opacity}

  /* 2 · grote naam (rechts vrijhouden voor de drijvende knop) */
  .artist-sheet-sidebar .am-titel-rij{order:2;display:flex;align-items:flex-start;gap:10px;margin:1px 0 0;padding-right:64px}
  /* artiestennaam in het site-lettertype, zoals op Mijn lijstje */
  .artist-sheet-sidebar .artist-foto h2,.artist-sheet-sidebar #am-title{
    font-family:var(--disp);font-size:34px;line-height:1;font-weight:900;letter-spacing:-.025em;
    color:var(--vk-ink);text-shadow:none;margin:0;overflow-wrap:anywhere}
  .artist-wijzig{margin-top:6px}

  /* 3 · podium-pill mét de tijd erachter (één rij, zoals variant 24) */
  .artist-sheet-sidebar .am-podrij{order:3;display:flex;align-items:center;gap:10px;margin:-5px 0 0;min-width:0}
  .artist-sheet-sidebar .artist-foto .artist-pod,.artist-sheet-sidebar #am-podium{
    display:inline-flex;align-self:auto;margin:0;font-family:var(--mono);font-size:11px;
    font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:5px 11px;border-radius:9px;
    background:#EEEDFB;color:var(--vk-accent);backdrop-filter:none}
  .artist-sheet-sidebar #am-podium[hidden]{display:none!important}
  .am-pod-tijd{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--vk-ink2);white-space:nowrap}
  /* het losse tijd-label vervalt (tijd staat achter het podium) */
  .artist-sheet-sidebar .artist-foto .artist-time,.artist-sheet-sidebar #am-time{display:none}

  /* 9 · bio — maximum 5 regels, met pijltje om uit te klappen (na de notities) */
  .artist-sheet-sidebar .am-blurb-wrap{order:9;display:block;margin:0;padding:0!important}
  .artist-sheet-sidebar .am-blurb{margin:0!important;padding:0!important;background:none;border:0;border-radius:0;box-shadow:none;
    font-size:15.5px;line-height:1.5;color:var(--vk-ink2)}
  .artist-sheet-sidebar .am-blurb:not(.open){display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .artist-sheet-sidebar #am-meer{display:inline-flex;align-items:center;gap:4px;margin:6px 0 0;padding:0;border:0;background:none;
    color:var(--vk-accent);font-family:inherit;font-size:13px;font-weight:800;cursor:pointer}

  /* 6 · opmerking (concertnotitie) — oranje "shoot rule"-pill, boven de bio */
  .artist-sheet-sidebar .artist-main .artist-festival-notes{order:6;display:block;margin:2px 0 -4px;padding:0;border:0;background:none}
  .am-note-pill{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;background:#FBE7CB;color:#B5641A;
    padding:7px 13px;border-radius:11px;max-width:100%}
  .am-note-pill .am-note-flag{display:none}
  .am-note-pill .am-note-text{font-size:12.5px!important;font-weight:700!important;color:#B5641A!important;line-height:1.35}
  .am-note-pill .am-note-text::after{content:" ⚡";font-size:12px}
  .am-note-wijzig{border:0;background:#F1F3F9;color:var(--vk-ink2);border-radius:9px;padding:4px 10px;font-size:11.5px;font-weight:700}
  .am-note-form textarea{background:#fff;border:1.5px solid var(--vk-line2);color:var(--vk-ink)}

  /* 10 · audio — één rij: paarse play-knop, "Luister nu" + nummernaam, dunne voortgangslijn,
     en een klein equalizer-animatietje rechts tijdens het spelen. Geen timer. */
  .artist-sheet-sidebar .artist-media-vol{order:10;display:block;margin:0;padding:0}
  .artist-sheet-sidebar .artist-media-vol .am-card{display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 13px;
    background:#F1F2FA;border:0;border-radius:20px;padding:12px 14px 12px 12px;box-shadow:none}
  .artist-sheet-sidebar #am-simple-player{display:contents}
  .artist-sheet-sidebar #am-play-button{order:1;width:48px;height:48px;flex:none;border:0;border-radius:50%;
    background:var(--vk-accent)!important;color:#fff;display:grid;place-items:center;padding:0;margin:0;
    box-shadow:0 6px 14px rgba(91,87,214,.32)}
  .artist-sheet-sidebar #am-play-button .am-np-art{display:none}
  .artist-sheet-sidebar #am-play-button .am-play-icon{position:static;font-size:16px;color:#fff;background:none;text-shadow:none}
  /* tekst: eerst het label "Luister nu" (goed leesbaar), daaronder pas de nummernaam zodra je afspeelt */
  .artist-sheet-sidebar .am-np-info{order:2;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;max-width:none}
  .artist-sheet-sidebar .am-np-info b{font-family:var(--mono);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--vk-ink2);max-width:100%}
  .artist-sheet-sidebar .am-np-info small{font-family:var(--body);font-size:13.5px;font-weight:750;color:var(--vk-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .artist-sheet-sidebar .am-np-info small:empty{display:none}
  /* equalizer-animatie rechts op het balkje, enkel tijdens het spelen */
  .artist-sheet-sidebar .am-card .am-wave-mini{display:flex;position:static;top:auto;right:auto;bottom:auto;order:3;flex:none;margin:0 0 0 auto;
    height:18px;align-items:flex-end;gap:2.5px;opacity:0;transition:opacity .2s;pointer-events:none}
  .artist-sheet-sidebar .am-card.speelt .am-wave-mini{opacity:.95}
  .artist-sheet-sidebar .am-card .am-wave-mini i{width:3px;min-width:3px;border-radius:2px;background:var(--vk-accent)}
  /* volgend-nummer-knopje: glijdt rechts tevoorschijn zodra er gespeeld wordt */
  .artist-sheet-sidebar #am-next{display:grid;order:4;flex:none;width:42px;height:42px;margin-left:11px;padding:0;border:0;border-radius:50%;
    background:#fff;color:var(--vk-accent);place-items:center;cursor:pointer;
    box-shadow:0 4px 12px -4px rgba(20,24,40,.28);opacity:0;transform:translateX(10px) scale(.6);pointer-events:none;
    transition:opacity .22s,transform .26s cubic-bezier(.3,.9,.3,1.15)}
  .artist-sheet-sidebar #am-next svg{width:16px;height:16px}
  .artist-sheet-sidebar .am-card.speelt #am-next{opacity:1;transform:none;pointer-events:auto}
  .artist-sheet-sidebar #am-next:active{transform:scale(.9)}
  /* dunne voortgangslijn onder de tekst (begint naast de knop) */
  .artist-sheet-sidebar .am-player-bar{display:block;order:5;flex-basis:100%;height:4px;border-radius:3px;background:#E1E4F0;overflow:hidden;margin:8px 0 0 61px}
  .artist-sheet-sidebar #am-player-fill{display:block;height:100%;border-radius:3px;background:var(--vk-accent)}
  .artist-sheet-sidebar .am-wave-vol{display:none}
  .artist-sheet-sidebar .am-tracklist{order:9;width:100%;margin-top:10px}

  /* 11 · video's — 2 naast elkaar, iets minder hoog */
  .artist-sheet-sidebar .am-videos-blok{order:11;display:block;margin:0;padding:0!important;border:0}
  .artist-sheet-sidebar .am-videos-blok .artist-videos{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .artist-sheet-sidebar .am-videos-blok .av-item{border-radius:13px;aspect-ratio:16/8.5;min-height:0}
  .artist-sheet-sidebar .am-videos-blok .av-item.av-groot{grid-column:auto}
  /* speel je een video af → groot over de volle breedte */
  .artist-sheet-sidebar .am-videos-blok .av-item.av-speelt{grid-column:1/-1;aspect-ratio:16/9}

  /* 14 · fotografen — mono-kopje + lichte chips (na de notities-cluster) */
	  .artist-sheet-sidebar .artist-crew{order:14;display:block;position:sticky;bottom:0;z-index:22;
	    margin:8px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
	    border:0;border-top:1px solid var(--vk-line);background:rgba(255,255,255,.94);
	    backdrop-filter:blur(14px) saturate(1.08);-webkit-backdrop-filter:blur(14px) saturate(1.08);
	    box-shadow:0 -18px 32px -26px rgba(20,24,40,.38)}
  .artist-sheet-sidebar .artist-crew h3,.artist-sheet-sidebar .artist-rail .artist-crew h3{display:block;font-family:var(--mono);font-size:10.5px;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;color:var(--vk-ink3);margin:0 0 10px}
  .artist-sheet-sidebar .artist-crew-tags{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:7px}
  .artist-sheet-sidebar .artist-crew-tag{display:inline-flex!important;align-items:center;gap:6px;width:auto!important;max-width:100%;
    background:#F1F3F9!important;border:0!important;border-radius:20px!important;padding:6px 12px 6px 10px!important;
    font-size:12px;font-weight:600;color:var(--vk-ink)!important;line-height:1.1;box-shadow:none}
  .artist-sheet-sidebar .artist-crew-tag>span{color:var(--vk-ink)!important}
  .artist-sheet-sidebar .artist-crew-tag .acc-cam{display:inline-flex;align-items:center;width:auto;height:auto;border-radius:0;
    background:none;color:#9AA1B2;flex:none}
  .artist-sheet-sidebar .artist-crew-tag .acc-cam svg{width:14px;height:14px;display:block;stroke-width:2}
  .artist-sheet-sidebar .artist-empty-crew{color:var(--vk-ink2)!important;font-size:13px;font-weight:600}
  .artist-sheet-sidebar .artist-crew-add-tag{display:inline-flex;align-items:center;gap:5px;width:auto;height:auto;margin:0;
    padding:6px 13px;border-radius:20px;background:#fff;border:1.5px dashed var(--vk-line2);color:var(--vk-ink2);font-size:12px;font-weight:700}
  .artist-sheet-sidebar .artist-add-crew{background:#F6F7FB!important;border:1px solid var(--vk-line2)!important;border-radius:13px;padding:11px;margin-top:9px}
  .artist-sheet-sidebar .am-foto-optie{background:#fff!important;border:1px solid var(--vk-line2)!important;color:var(--vk-ink)!important}
  .artist-sheet-sidebar .am-foto-zoek{background:#fff!important;border-color:var(--vk-line2)!important;color:var(--vk-ink)!important}

  /* 5 · status — de keuzes zitten in het vink-submenu; hier enkel de onthulling
     (opmerking bij gefotografeerd / verplichte reden bij een probleempje) */
  .artist-sheet-sidebar .am-status{order:5;display:flex;flex-direction:column;gap:11px;position:static;margin:-3px 0 0;
    padding:0;background:none;border:0;box-shadow:none;z-index:auto}
  .am-status-paneel{display:flex;flex-direction:column;gap:11px;max-height:none;opacity:1;overflow:visible;padding:0;
    border:0;border-radius:0;background:none;box-shadow:none;animation:none}
  /* het opmerking/reden-kader leeft enkel in het vink-menu — nooit los in het kaartje */
  .am-status .am-status-opm{display:none!important}
  @keyframes vkReveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .am-status-opm-lbl{font-size:13px;font-weight:700;color:var(--vk-ink)}
  .am-status.st-ja .am-status-opm-lbl{color:var(--vk-done)}
  .am-status.nee-kozen:not(.st-ja) .am-status-opm-lbl{color:var(--vk-fail)}
  #am-status-opm-in{width:100%;border:1.5px solid var(--vk-line2);background:#fff;border-radius:11px;padding:11px 13px;
    font-family:var(--body);font-size:13.5px;font-weight:600;color:var(--vk-ink);min-height:46px;resize:vertical}
  #am-status-opm-in:focus{outline:none;border-color:var(--vk-accent);box-shadow:none}
  #am-status-opm-in::placeholder{color:#AEB5C3}
  #am-status-opm-ok{align-self:flex-end;border:0;border-radius:11px;padding:9px 16px;background:var(--vk-ink);color:#fff;
    font-size:12.5px;font-weight:800;font-family:inherit;cursor:pointer}
  .am-status.reden-nodig #am-status-opm-in{border-color:var(--vk-fail)}
  .am-status.reden-nodig .am-status-opm-lbl{color:var(--vk-fail)}

  /* 7/8 · notitie voor jezelf — geen losse knop meer op het kaartje: notitie maken gaat via het ⋯-menu.
     Het paneel (screenshot-stijl) verschijnt enkel bij een bestaande notitie of via het menu. */
  .artist-sheet-sidebar .am-add-note-tag{display:none!important}
  .artist-wijzig{display:none!important}   /* potlood in de titel vervalt → "Wijzig optreden" in het ⋯-menu */
  /* ⋯-knop rechts op de podium/tijd-rij */
  .am-dots-wrap{position:relative;margin-left:auto;flex:none}
  .am-dots{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#F1F3F9;
    color:var(--vk-ink2);font-size:21px;font-weight:900;line-height:1;cursor:pointer;padding:0 0 6px;transition:.13s}
  .am-dots:active{transform:scale(.93)}
  .am-dots[aria-expanded="true"]{background:var(--vk-ink);color:#fff}
  .am-dots-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:30;min-width:248px;display:flex;flex-direction:column;gap:2px;
    background:#fff;border:1px solid var(--vk-line);border-radius:16px;padding:6px;
    box-shadow:0 20px 46px -16px rgba(20,24,40,.4);animation:amVinkPop .18s cubic-bezier(.3,.9,.3,1.1)}
  .am-dots-menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;cursor:pointer;
    text-align:left;font-family:inherit;font-size:14.5px;font-weight:700;color:var(--vk-ink);padding:12px 12px;border-radius:11px}
  .am-dots-menu button:active{background:#F4F6FB}
  .am-dots-menu button svg{flex:none;color:var(--vk-ink3)}
  .am-dots-menu .amd-tx{min-width:0}
  .am-dots-menu .amd-tx b{display:block;font-size:14.5px;font-weight:800;color:var(--vk-ink)}
  .am-dots-menu .amd-tx small{display:block;margin-top:2px;font-size:11.5px;font-weight:600;color:var(--vk-ink3)}
  /* algemene opmerking: aanklikbaar om voor iedereen te wijzigen (wie dat mag) */
  .am-note-pill.kan-wijzig{cursor:pointer;transition:.13s}
  .am-note-pill.kan-wijzig:active{transform:scale(.985)}
  .artist-sheet-sidebar .artist-personal-note{order:8;display:block;margin:0;padding:15px 16px;
    background:#F4F5FA;border:0;border-radius:18px}
  .artist-sheet-sidebar .artist-personal-note h3,.artist-sheet-sidebar .artist-rail .artist-personal-note h3{font-family:var(--mono);font-size:10.5px;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;color:#7d8597;margin:0 0 8px}
  .artist-sheet-sidebar .am-note-form textarea{background:#fff;border:1px solid var(--vk-line2,#e2e6ee);border-radius:12px;padding:11px 13px;font-size:15px;font-weight:550;color:var(--vk-ink)}
  .artist-sheet-sidebar .am-note-form textarea::placeholder{color:#a6adbd}
  .artist-sheet-sidebar .am-personal-note-saved p,.artist-sheet-sidebar .am-note-text{color:var(--vk-ink)!important}
  .artist-sheet-sidebar .am-notes-head button{background:#fff;border:1px solid var(--vk-line2);color:var(--vk-ink2)}
  .am-public-notes>b{color:var(--vk-ink3)}
  .am-public-notes div{border-color:var(--vk-line)}
  .am-public-notes span,.am-public-notes p{color:var(--vk-ink2)!important}

  /* 15 · weetje — lila "wist je dat"-paneel uit het voorbeeld */
  .artist-sheet-sidebar .artist-weetjes{order:15;display:block;margin:0;padding:12px 14px;background:#F4F2FC;border:0;border-radius:14px}
  .artist-sheet-sidebar .artist-weetjes .aw-kop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}
  .artist-sheet-sidebar .artist-weetjes .aw-kop h3{display:block;font-family:var(--mono);font-size:9.5px;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;color:var(--vk-accent);margin:0}
  .artist-weetjes .aw-lamp{display:none}
  .artist-weetje{font-size:13.5px;line-height:1.45;color:#4A4570!important;margin:0}
  .am-weetje-nieuw{background:#fff;border:1px solid #E2DEF6;color:var(--vk-accent)}

  /* 16 · sociale links */
  .artist-sheet-sidebar .am-listen-links.am-listen-onder{order:16;display:flex;justify-content:flex-start;gap:10px;
    margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}

  /* 17 · vorige edities */
  .artist-sheet-sidebar .artist-history-wrap{order:17;display:block;margin:0;padding:14px 0 0;border:0;border-top:1px solid var(--vk-line)}
  .artist-sheet-sidebar .artist-history-wrap h3,.artist-sheet-sidebar .artist-rail .artist-history-wrap h3{font-family:var(--mono);font-size:10.5px;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase;color:var(--vk-ink3);margin:0 0 8px}
  .artist-sheet-sidebar .artist-history{display:flex;flex-direction:column;gap:7px}
.artist-sheet-sidebar .artist-history div{background:#F6F7FB!important;border:0!important;border-radius:12px!important;padding:9px 12px!important;color:var(--vk-ink)!important}
.artist-sheet-sidebar .artist-history b{color:var(--vk-ink)!important;font-size:13px}
.artist-sheet-sidebar .artist-history span{color:var(--vk-ink2)!important;font-size:12px}

  /* Luistertekst moet op mobiel donker blijven, niet wit op het lichte player-kader. */
  .artist-sheet-sidebar .am-np-info b,
  .artist-sheet-sidebar #am-track{
    color:var(--vk-ink)!important;
  }
}
.am-genre-mob{display:none}
/* ===================================================================
   DESKTOP: het kaartje is geen popup meer maar een paneel dat langs
   rechts uitschuift (design "D1 · Rechts-paneel"), met exact dezelfde
   inhoud/interactie als mobiel (vink-menu, hartje op de foto, ⋯-menu).
   =================================================================== */
@media(min-width:861px){
  .artist-modal{display:flex;justify-content:flex-end;align-items:stretch;padding:0}
  .artist-modal[hidden]{display:none}
  .artist-sheet,.artist-sheet-sidebar{width:480px;max-width:94vw;height:100dvh;max-height:100dvh;margin:0;
    border-radius:0;border:0;overflow-y:auto;overflow-x:hidden;
    box-shadow:-34px 0 90px -34px rgba(20,24,40,.55);
    animation:artistSlideIn .3s cubic-bezier(.3,.9,.3,1)}
  @keyframes artistSlideIn{from{transform:translateX(70px);opacity:.4}to{transform:none;opacity:1}}
  .artist-modal.sheet-closing{pointer-events:none}
  .artist-modal.sheet-closing .artist-modal-backdrop{opacity:0}
  .artist-modal.sheet-closing .artist-sheet{animation:none;transform:translateX(110%)!important;opacity:.7;
    transition:transform .3s cubic-bezier(.45,.02,.22,1),opacity .25s ease}
  .am-greep{display:none}              /* sleep-greep heeft op desktop geen functie */
}
