/* Videostijl pakket 2: Dashboard, Roadmap, AI Coach, Mijn coaching, Leaderboard en Coachoverzicht.
   Rust bij werken: kop van hooguit 34px, de gedeelde kaarten, tabellen, tabs, velden en badges uit vs-shared.css.
   Geen streepjes onder koppen, geen gloed. Alleen het klaar-vinkje bij "Je staat op het leaderboard" is een klein moment.

   Geladen ná vs-shared.css. Winnen zonder !important: elke regel begint met
     body:not(#vs):not(#vs-coach)  → twee id's, net als vs-shared.css; dit bestand komt later en wint bij gelijke stand.
   Niet aangeraakt: het Roadmap-bord en de Roadmap-lijn, het klaar-venster na een les, de wacht-checklist van de AI Coach. */

/* ---------- Gedeeld voor dit pakket: foutblok en klein klaar-vinkje ---------- */
/* Rustig rood kader met één zin. Geen icoon dat schreeuwt. */
body:not(#vs):not(#vs-coach) .vs-error {
  margin: 0; padding: 14px 16px; border: 1px solid rgba(255, 143, 156, 0.3); border-radius: 14px; background: rgba(255, 143, 156, 0.08); color: var(--vs-bad); font-size: 14px; line-height: 1.5;
}
body:not(#vs):not(#vs-coach) .lb-check {
  display: inline-grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; margin-right: 10px; border-radius: 50%; background: var(--vs-ok); color: #0a0d1a; font-size: 13px; font-weight: 800; box-shadow: 0 0 14px rgba(126, 224, 181, 0.45);
}
/* Laden: de gedeelde skeleton krijgt overal dezelfde ruimte. */
body:not(#vs):not(#vs-coach) :is(#coachingCenter, #lbLoading, #coachSignalList) > .of-skeleton { display: flex; flex-direction: column; gap: 10px; }

/* ---------- Paginakop: Mijn coaching en Leaderboard ---------- */
/* Kicker + titel met accentwoord. De oude .title-regels (groot, wit) worden hier teruggezet naar de videostijl. */
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard) {
  display: flex; flex-direction: row; flex-wrap: nowrap; align-items: flex-start; justify-content: space-between; gap: 16px; border: 0; padding-bottom: 0;
}
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard) > div:first-child { flex: 1 1 auto; width: auto; min-width: 0; }
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard) > .page-help-btn { flex: 0 0 auto; align-self: flex-start; position: static; margin: 0; }
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) .vs-head { gap: 10px; margin: 0 0 18px; }
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) .title.vs-title {
  margin: 0; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 34px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.08; color: var(--vs-text); border: 0; padding: 0;
}
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) .vs-title::after { content: none; }
body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) .vs-sub { margin: 0; font-size: 15px; line-height: 1.6; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) .center-head-leaderboard > div:first-child > .vs-sub { max-width: 70ch; margin: 0 0 10px; }

/* ---------- Dashboard ---------- */
/* Kaarten op het overzicht: de gedeelde kaart (20px, dunne blauwe rand). De uitkomst-kaart blijft de hero. */
body:not(#vs):not(#vs-coach) #dashboardCenter :is(.dash-card:not(.dash-primary):not(.dash-next):not(.dash-week-ai), .dash-panel) {
  border: 1px solid var(--vs-edge); border-radius: 20px; background: var(--vs-card); box-shadow: none;
}
body:not(#vs):not(#vs-coach) #dashboardCenter :is(.dash-primary, .dash-next) { border: 1px solid var(--vs-edge-hero); border-radius: 18px; background: var(--vs-hero); box-shadow: none; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-kicker { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #dashboardCenter :is(.dash-panel, .dash-card) > h2 { margin: 0 0 8px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; border: 0; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-meter { height: 6px; border-radius: 6px; background: rgba(255, 255, 255, 0.07); overflow: hidden; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-meter > span { display: block; height: 100%; border-radius: 6px; background: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-goal-empty { margin: 4px 0 0; font-size: 14px; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-goal-card .cta,
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-goal-card .result-action { min-height: 40px; padding: 0 16px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); box-shadow: none; font-weight: 600; }
/* Tab Activiteit: rustige lijst, blauwe stip, tijd in mono. */
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity { margin: 0; padding: 0; list-style: none; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity > li { display: flex; align-items: baseline; gap: 12px; padding: 12px 0; border-top: 1px solid var(--vs-row); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity > li > div { flex: 1 1 auto; min-width: 0; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity time { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; color: var(--vs-muted); white-space: nowrap; }
/* Een regel met een product of les is klikbaar: hele regel, geen knopvorm. */
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity > li:has(> .dash-activity-open) { display: block; padding: 0; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-open { display: flex; align-items: baseline; gap: 12px; width: 100%; margin: 0; padding: 12px 8px; border: 0; border-radius: 10px; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-open > div { flex: 1 1 auto; min-width: 0; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-open:hover { background: rgba(255, 255, 255, 0.04); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-open:hover strong { color: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-activity-open:focus-visible { outline: 2px solid var(--vs-accent); outline-offset: -2px; }
body:not(#vs):not(#vs-coach) #dashboardCenter .dash-more { min-height: 40px; margin-top: 8px; padding: 0 16px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); font-weight: 500; cursor: pointer; }
/* Omzetdoel-venster: het gedeelde venster. Kop in Sora, velden 48px, week/maand als tabbladen. */
body:not(#vs):not(#vs-coach) .dash-goal-overlay { background: rgba(6, 8, 18, 0.72); backdrop-filter: blur(6px); }
body:not(#vs):not(#vs-coach) .dash-goal-dialog {
  box-sizing: border-box; width: min(480px, calc(100vw - 32px)); padding: 28px; border: 1px solid var(--vs-edge); border-radius: 20px; background: var(--vs-modal); box-shadow: 0 40px 100px rgba(0, 0, 0, 0.6); color: var(--vs-text);
}
body:not(#vs):not(#vs-coach) .dash-goal-dialog > h2 { margin: 0 0 8px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 26px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.15; border: 0; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-copy { margin: 0 0 18px; font-size: 14px; line-height: 1.6; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-meter-tabs { display: flex; gap: 28px; margin: 0 0 18px; padding: 0; border: 0; border-bottom: 1px solid var(--vs-hair); border-radius: 0; background: none; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-meter-tab { min-height: 44px; margin: 0 0 -1px; padding: 0; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; box-shadow: none; color: var(--vs-muted); font: 500 14px "IBM Plex Sans", sans-serif; cursor: pointer; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-meter-tab.is-on { border-bottom-color: var(--vs-accent); color: var(--vs-text); font-weight: 600; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-inputwrap {
  display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; border: 1px solid var(--vs-field-edge); border-radius: 12px; background: var(--vs-field); color: var(--vs-muted); font-family: "IBM Plex Mono", ui-monospace, monospace;
}
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-inputwrap:focus-within { border-color: var(--vs-accent); outline: 2px solid rgba(91, 139, 255, 0.35); }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-inputwrap input#dashGoalAmount { flex: 1 1 auto; min-width: 0; min-height: 46px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--vs-text); font: 400 15px "IBM Plex Mono", ui-monospace, monospace; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-error { margin: 10px 0 0; color: var(--vs-bad); font-size: 13px; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 22px; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-actions > button { margin: 0; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-inputwrap input#dashGoalAmount:focus { border: 0; outline: 0; box-shadow: none; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-goal-cancel { min-height: 44px; padding: 0 18px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); font: 500 15px "IBM Plex Sans", sans-serif; cursor: pointer; }
body:not(#vs):not(#vs-coach) .dash-goal-dialog .dash-cta { min-height: 44px; padding: 0 22px; }
/* "Ga verder waar je gebleven bent": de uitkomst-kaart met een mono-kicker en een kop van 22px. */
body:not(#vs):not(#vs-coach) #studentRoute.student-route {
  box-sizing: border-box; max-width: 100%; padding: 24px 26px; border: 1px solid var(--vs-edge-hero); border-radius: 18px; background: var(--vs-hero); box-shadow: none;
}
body:not(#vs):not(#vs-coach) #studentRoute .student-route-kicker { margin: 0 0 8px; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-heading { margin: 0 0 6px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.25; color: var(--vs-text); border: 0; }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-task { margin: 0 0 4px; font-size: 15px; font-weight: 600; color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-copy { margin: 0 0 4px; font-size: 14px; line-height: 1.6; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-progress { margin: 8px 0 0; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
body:not(#vs):not(#vs-coach) #studentRoute .student-route-actions :is(.cta, .settings-reset) { min-height: 44px; padding: 0 20px; border-radius: 12px; }
body:not(#vs):not(#vs-coach) :is(#studentRoutePreview, #testStudentStart) { min-height: 40px; padding: 0 16px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); box-shadow: none; font-weight: 500; }

/* ---------- Roadmap: lespagina en bewerken ---------- */
/* Het bord, de lijn en het klaar-venster blijven zoals ze zijn. Alleen de les zelf en de beheerknoppen. */
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study .rm-lesson-kicker.vs-kick { margin: 0 0 10px; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 13px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vs-accent); }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study h1.vs-title,
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study h1[data-rm-lesson-title] { margin: 0; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 34px; font-weight: 700; letter-spacing: -0.035em; line-height: 1.08; color: var(--vs-text); border: 0; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study .rm-md :is(h2, h3) { font-family: "Sora", "IBM Plex Sans", sans-serif; letter-spacing: -0.02em; border: 0; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study .rm-md h2 { font-size: 22px; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study .rm-md h3 { font-size: 18px; }
/* Lesoverzicht en Bewerken: lichte knop, niet nog een tweede blauwe knop naast "Afronden". */
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] :is(.rm-lesson-admin, .rm-lessons-open) {
  min-height: 40px; padding: 0 16px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; box-shadow: none; color: var(--vs-copy); font: 500 14px "IBM Plex Sans", sans-serif;
}
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] :is(.rm-lesson-admin, .rm-lessons-open):hover { border-color: rgba(91, 139, 255, 0.4); color: var(--vs-text); }
/* Onderbalk: glazen kaart, één blauwe knop. */
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-lesson-footer-inner { border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); box-shadow: none; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-lesson-footer-nav .rm-ghost { min-height: 44px; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-lesson-footer-nav .rm-footer-primary { min-height: 44px; border: 0; border-radius: 12px; background: var(--vs-accent); color: #ffffff; font-weight: 600; box-shadow: 0 8px 24px rgba(91, 139, 255, 0.25); }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-lesson-footer-nav .rm-footer-primary:hover:not(:disabled) { background: var(--vs-accent-hover); }
/* Laden, leeg en fout. */
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-empty.vs-empty-line { margin: 0; padding: 20px 16px; font-size: 14px; line-height: 1.6; color: var(--vs-muted); text-align: center; }
/* Bewerkmodus (beheer): balk als glazen kaart, gedeelde velden en knoppen. */
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] :is(.rm-edit-bar, .rm-lesson-editbar, .rm-editor-bar) { border: 1px solid var(--vs-edge); border-radius: 16px; background: var(--vs-card); box-shadow: none; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] :is(.rm-edit-bar, .rm-editor, .rm-study) :is(input[type="text"], input[type="url"], input[type="number"], input:not([type]), select, textarea) {
  box-sizing: border-box; max-width: 100%; border: 1px solid var(--vs-field-edge); border-radius: 12px; background-color: var(--vs-field); color: var(--vs-text); font-family: "IBM Plex Sans", sans-serif;
}
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] :is(.rm-edit-bar, .rm-editor, .rm-study) :is(input, select, textarea):focus { border-color: var(--vs-accent); outline: 2px solid rgba(91, 139, 255, 0.35); outline-offset: 0; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-ghost:not(.rm-lesson-coach):not(:disabled) { border-radius: 12px; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-visual[contenteditable="true"] { border-radius: 16px; }
body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-visual-tools { border: 1px solid var(--vs-hair); border-radius: 12px; background: var(--vs-modal); }

/* ---------- Ecom AI Coach: gesprek en inzichten ---------- */
/* Vraag: lichtblauwe ballon. Antwoord: glazen kaart. Geen show: dit is werk. */
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-msg.is-user .coach-msg-text { border: 1px solid rgba(91, 139, 255, 0.28); border-radius: 16px; background: rgba(91, 139, 255, 0.1); color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-msg.is-coach:not(.is-waiting) { border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); box-shadow: none; }
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-msg.is-coach :is(.coach-feedback button, [data-feedback]) { border: 1px solid var(--vs-hair); border-radius: 10px; background: transparent; color: var(--vs-info-text); }
/* Geschiedenis: rustige lijst in een glazen paneel. */
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-history-item { border: 1px solid transparent; border-radius: 12px; background: transparent; color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-history-item:hover { background: var(--vs-glass); }
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-history-item.is-on { border-color: rgba(91, 139, 255, 0.28); background: rgba(91, 139, 255, 0.1); }
body:not(#vs):not(#vs-coach) #aiCoachCenter .coach-history-item span { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; color: var(--vs-muted); }
/* Inzichten (beheer): tegels als glas, lijsten met rijlijn, lege staten rustig. */
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .coach-insights-stat { border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); box-shadow: none; }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .coach-insights-stat strong { font-family: "IBM Plex Mono", ui-monospace, monospace; font-variant-numeric: tabular-nums; font-weight: 500; }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal :is(h4) { margin: 0 0 8px; font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .coach-insights-list > li { padding: 10px 0; border-top: 1px solid var(--vs-row); }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .coach-insights-empty { margin: 0; padding: 16px; border: 1px dashed var(--vs-hair); border-radius: 14px; font-size: 14px; color: var(--vs-muted); text-align: center; }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .coach-insights-neg { border: 1px solid var(--vs-ghost-line); border-radius: 10px; background: transparent; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal .office-modal-close { margin-top: 18px; }
/* Inzichten-kop: geen lege ruimte als er nog niets is. */
body:not(#vs):not(#vs-coach) #aiCoachInsightsModal :is(#aiCoachInsightsAsked, #aiCoachInsightsNegative, #aiCoachInsightsRules):empty::before { content: "Nog niets om te tonen."; display: block; padding: 16px; border: 1px dashed var(--vs-hair); border-radius: 14px; font-size: 14px; color: var(--vs-muted); text-align: center; }

/* ---------- Mijn coaching ---------- */
/* Zoom-call aanmaken (coach): een gewone knop, niet de hele breedte. */
body:not(#vs):not(#vs-coach) #coachingPage .coach-zoom-bar { display: flex; flex-wrap: wrap; gap: 10px; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-zoom-bar .cta { width: auto; min-height: 44px; padding: 0 20px; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-zoom-form { padding: 20px; border: 1px solid var(--vs-edge); border-radius: 20px; background: var(--vs-card); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-zoom-form label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; font-weight: 600; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-zoom-form :is(input, select, textarea) { min-height: 48px; padding: 0 14px; font-size: 15px; }
body:not(#vs):not(#vs-coach) #coachingPage #coachZoomHost > p:not([hidden]),
body:not(#vs):not(#vs-coach) #coachingPage #coachZoomHost .users-meta { margin: 10px 0 0; font-size: 14px; color: var(--vs-muted); }
/* "Wat moet ik nu doen?": de uitkomst-kaart met een mono-kicker. */
body:not(#vs):not(#vs-coach) #coachingPage .coach-next-kicker { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-next h2 { margin: 8px 0 6px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 22px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.25; border: 0; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-next p { color: var(--vs-copy); }
/* Kaartkoppen: Sora 16px, geen streep eronder. */
body:not(#vs):not(#vs-coach) #coachingPage .coach-panel > h2 { margin: 0 0 10px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; border: 0; padding: 0; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-panel { padding: 20px 22px; }
/* Statustegels: label in mono, waarde in Sora. */
body:not(#vs):not(#vs-coach) #coachingPage .coach-stat span { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-stat strong { font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 17px; font-weight: 600; color: var(--vs-text); }
/* Lijsten: rustige rijlijn, aanwijzen kleurt alleen. */
body:not(#vs):not(#vs-coach) #coachingPage :is(.coach-list > li, .coach-assign, .coach-mile) { border: 0; border-top: 1px solid var(--vs-row); border-radius: 0; background: none; box-shadow: none; }
body:not(#vs):not(#vs-coach) #coachingPage :is(.coach-list > li, .coach-assign, .coach-mile):first-child { border-top: 0; }
body:not(#vs):not(#vs-coach) #coachingPage button.coach-row { border: 0; border-radius: 12px; background: transparent; color: inherit; }
body:not(#vs):not(#vs-coach) #coachingPage button.coach-row:hover,
body:not(#vs):not(#vs-coach) #coachingPage button.coach-row.is-open { background: rgba(91, 139, 255, 0.05); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-row-title { font-weight: 600; color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-row-meta { font-size: 13px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-mile time { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; font-weight: 400; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-mile-dot { background: var(--vs-accent); box-shadow: none; }
/* "Vraag AI Coach": kleine lichte knop. */
body:not(#vs):not(#vs-coach) #coachingPage .ask-ai-coach-btn { min-height: 36px; padding: 0 14px; border: 1px solid var(--vs-ghost-line); border-radius: 10px; background: transparent; box-shadow: none; color: var(--vs-info-text); font: 600 13px "IBM Plex Sans", sans-serif; }
body:not(#vs):not(#vs-coach) #coachingPage .ask-ai-coach-btn:hover { border-color: rgba(91, 139, 255, 0.4); color: var(--vs-text); }
/* Opdrachten: zoekveld 48px, filters als tabbladen, statuskeuze als gedeeld veld. */
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 24px; margin: 0 0 8px; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-search-wrap { flex: 1 1 240px; min-width: 0; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-search { width: 100%; min-height: 48px; padding: 0 14px; font-size: 15px; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-filters { display: flex; gap: 22px; max-width: 100%; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--vs-hair); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-filter {
  flex: 0 0 auto; min-height: 44px; margin: 0 0 -1px; padding: 0; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; box-shadow: none; color: var(--vs-muted); font: 500 14px "IBM Plex Sans", sans-serif; cursor: pointer;
}
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-filter:hover { color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #coachingPage .coach-assign-filter.is-on { border-bottom-color: var(--vs-accent); color: var(--vs-text); font-weight: 600; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-status-select { min-height: 40px; padding: 0 34px 0 12px; border: 1px solid var(--vs-field-edge); border-radius: 12px; background-color: var(--vs-field); color: var(--vs-text); font: 500 14px "IBM Plex Sans", sans-serif; }

/* ---------- Leaderboard ---------- */
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-intro { margin: 0 0 18px; padding-left: 18px; font-size: 13px; line-height: 1.7; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-period-nav { display: flex; gap: 8px; margin: 14px 0 0; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-arrow { width: 40px; min-width: 40px; min-height: 40px; padding: 0; border: 1px solid var(--vs-ghost-line); border-radius: 12px; background: transparent; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 13px; color: var(--vs-muted); }
/* Live / afgesloten: de gedeelde badge in groen of grijs. */
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--vs-hair); border-radius: 999px; background: rgba(255, 255, 255, 0.05); color: var(--vs-copy); font: 600 12px/1.4 "IBM Plex Sans", sans-serif; box-shadow: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-badge.is-live { border-color: rgba(126, 224, 181, 0.3); background: rgba(126, 224, 181, 0.12); color: var(--vs-ok); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: none; animation: none; }
/* Kaarten: meedoen = gewone kaart, ranglijst = glas met tabelrijen. */
body:not(#vs):not(#vs-coach) #leaderboardPage #leaderboardJoin.lb-card { padding: 20px 22px; border: 1px solid var(--vs-edge); border-radius: 20px; background: var(--vs-card); box-shadow: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage #leaderboardBoard.lb-card { padding: 20px 22px; border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); box-shadow: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbFormTitle { margin: 0 0 14px; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; border: 0; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-modes { margin: 14px 0 0; padding: 0; border: 0; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-modes legend,
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-field > label { margin: 0 0 8px; padding: 0; font-size: 13px; font-weight: 600; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-field { display: flex; flex-direction: column; margin-top: 14px; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-field input { width: min(100%, 360px); min-height: 48px; padding: 0 14px; font-size: 15px; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-preview { margin: 14px 0 0; font-size: 14px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-settings-actions { margin-top: 18px; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-settings-actions .cta { min-height: 44px; padding: 0 22px; }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbSummary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbSummary[hidden] { display: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbSummary p { margin: 0; font-size: 14px; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbSummary.is-joined #lbSummaryState { display: inline-flex; align-items: center; font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 16px; font-weight: 600; color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbEdit { min-height: 40px; padding: 0 16px; border-radius: 12px; }
/* Meldingen ("Shopify nog niet gekoppeld", "nog geen omzet"): rustige lege staat. */
body:not(#vs):not(#vs-coach) #leaderboardPage #leaderboardNotices:not(:empty) { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 16px 0; padding: 32px 20px; border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); text-align: center; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-notice { margin: 0; max-width: 46ch; font-size: 14px; line-height: 1.6; color: var(--vs-muted); background: none; border: 0; padding: 0; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-notice:first-child { font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbConnectShopify { width: auto; margin-top: 10px; min-height: 44px; padding: 0 20px; }
body:not(#vs):not(#vs-coach) #leaderboardPage #leaderboardError:not([hidden]) { margin: 12px 0 0; padding: 14px 16px; border: 1px solid rgba(255, 143, 156, 0.3); border-radius: 14px; background: rgba(255, 143, 156, 0.08); color: var(--vs-bad); font-size: 14px; }
/* Podium: glazen tegels; goud, zilver en brons alleen in de rand. Bedragen in mono. */
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card { border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-card); box-shadow: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card.is-first { border-color: rgba(255, 196, 107, 0.45); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card.is-self { border-color: rgba(91, 139, 255, 0.5); background: var(--vs-hero); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-medal { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-amount { font-family: "IBM Plex Mono", ui-monospace, monospace; font-variant-numeric: tabular-nums; font-weight: 500; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-name { font-family: "Sora", "IBM Plex Sans", sans-serif; font-weight: 600; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-you { padding: 2px 8px; border: 1px solid rgba(91, 139, 255, 0.3); border-radius: 999px; background: rgba(91, 139, 255, 0.14); color: var(--vs-info-text); font: 600 11px/1.4 "IBM Plex Sans", sans-serif; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-change { font-size: 12px; color: var(--vs-ok); }
/* Ranglijst: de gedeelde tabelrij. */
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-list { margin: 8px 0 0; padding: 0; list-style: none; }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-row { padding: 12px 6px; border: 0; border-top: 1px solid var(--vs-row); border-radius: 0; background: none; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-row:hover { background: rgba(91, 139, 255, 0.05); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-row.is-self { background: rgba(91, 139, 255, 0.08); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-pos { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 13px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #leaderboardPage .lb-gap { padding: 12px 6px; border-top: 1px solid var(--vs-row); font-size: 13px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #leaderboardPage #lbMore { margin-top: 12px; }
/* Beheer (in Instellingen): rijen als glas, velden gedeeld. */
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin .lb-admin-row { padding: 14px 16px; border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin .lb-admin-row + .lb-admin-row { margin-top: 10px; }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin .lb-admin-row p { margin: 4px 0 10px; font-size: 13px; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin .lb-admin-row label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin .lb-admin-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin :is(input[type="text"], input[type="date"], select) { min-height: 44px; padding: 0 12px; border: 1px solid var(--vs-field-edge); border-radius: 12px; background-color: var(--vs-field); color: var(--vs-text); }
body:not(#vs):not(#vs-coach) #settingsLeaderboardAdmin #lbAdminError:not([hidden]) { padding: 12px 14px; border: 1px solid rgba(255, 143, 156, 0.3); border-radius: 14px; background: rgba(255, 143, 156, 0.08); color: var(--vs-bad); }

/* ---------- Coachoverzicht (beheer) ---------- */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-signal-head-page { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border: 0; }
/* Zoekveld: het gedeelde veld (de pagina staat buiten <main>, dus hier apart). */
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(input[type="search"], input[type="date"], input[type="text"], select) {
  box-sizing: border-box; max-width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--vs-field-edge); border-radius: 12px; background-color: var(--vs-field); box-shadow: none; color: var(--vs-text); font: 400 15px "IBM Plex Sans", sans-serif;
}
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(input, select)::placeholder { color: var(--vs-muted); opacity: 1; }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(input, select):focus { border-color: var(--vs-accent); outline: 2px solid rgba(91, 139, 255, 0.35); outline-offset: 0; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-overview input[type="search"] { width: 100%; max-width: 360px; }
/* Lijst met leerlingen en producten: de gedeelde tabel in een glazen kader. Geen witte knoprand. */
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-student-list, .coach-table) { overflow: hidden; border: 1px solid var(--vs-hair); border-radius: 16px; background: var(--vs-glass); }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-line, .coach-product, .coach-day) { box-sizing: border-box; margin: 0; padding: 12px 18px; border: 0; border-top: 1px solid var(--vs-row); border-radius: 0; background: none; box-shadow: none; color: var(--vs-copy); font: inherit; font-size: 14px; }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-line-head, .coach-product.coach-line-head) { border-top: 0; background: var(--vs-head-bg); font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; color: var(--vs-muted); }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(button.coach-line, .coach-product:not(.coach-line-head)):hover { background: rgba(91, 139, 255, 0.05); }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-product.is-open { background: rgba(91, 139, 255, 0.05); }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-name { color: var(--vs-text); font-weight: 600; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-num { font-family: "IBM Plex Mono", ui-monospace, monospace; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-num.is-profit { color: var(--vs-ok); }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-num.is-loss { color: var(--vs-bad); }
/* Status: de gedeelde badge. */
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-result, .coach-signal-verdict) { display: inline-flex; align-items: center; padding: 4px 10px; border: 1px solid var(--vs-hair); border-radius: 999px; background: rgba(255, 255, 255, 0.05); color: var(--vs-copy); font: 600 12px/1.4 "IBM Plex Sans", sans-serif; white-space: nowrap; }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-result.is-profit, .coach-signal-verdict.is-continue) { border-color: rgba(126, 224, 181, 0.3); background: rgba(126, 224, 181, 0.12); color: var(--vs-ok); }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-result.is-loss, .coach-signal-verdict.is-stop) { border-color: rgba(255, 143, 156, 0.3); background: rgba(255, 143, 156, 0.12); color: var(--vs-bad); }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-result.is-even, .coach-signal-verdict.is-testing, .coach-signal-verdict.is-missing) { border-color: rgba(255, 196, 107, 0.3); background: rgba(255, 196, 107, 0.12); color: var(--vs-warn); }
/* Detail: uitkomst-kaart en dagtegels in de videostijl. */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-hero { border: 1px solid var(--vs-edge-hero); border-radius: 18px; background: var(--vs-hero); box-shadow: none; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-hero-value { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 30px; font-weight: 500; letter-spacing: -0.02em; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-hero-title { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 12px; font-weight: 500; letter-spacing: 0.16em; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-day-card { border: 1px solid var(--vs-hair); border-radius: 14px; background: var(--vs-glass); }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-day-card.is-selected { outline: 0; border-color: var(--vs-accent); }
body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-products, .coach-days, .coach-period-metrics, .coach-focus-block) h3 { font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
/* Signalen-kaarten (tab Signalen). */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-student { border: 1px solid var(--vs-edge); border-radius: 20px; background: var(--vs-card); box-shadow: none; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-signal-filter-row button { min-height: 36px; padding: 0 14px; border: 1px solid var(--vs-ghost-line); border-radius: 999px; background: transparent; color: var(--vs-copy); }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-signal-filter-row button.is-active { border-color: rgba(91, 139, 255, 0.45); background: rgba(91, 139, 255, 0.14); color: var(--vs-text); }

/* ---------- Telefoon ---------- */
@media (max-width: 800px) {
  body:not(#vs):not(#vs-coach) #coachSignalsPage :is(.coach-product, .coach-day) { border: 0; border-top: 1px solid var(--vs-row); border-radius: 0; margin: 0; }
  /* De badge zegt zelf al wat de status is; het kleine label ervoor plakt er anders tegenaan. */
  body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-result { justify-self: start; }
  body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-result::before { content: none; }
}
@media (max-width: 560px) {
  body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) { flex-direction: column; }
  body:not(#vs):not(#vs-coach) :is(.center-head-coaching, .center-head-leaderboard, .coach-signal-head-page) .title.vs-title,
  body:not(#vs):not(#vs-coach)[data-agent="roadmap"] .rm-study :is(h1.vs-title, h1[data-rm-lesson-title]) { font-size: 30px; }
  body:not(#vs):not(#vs-coach) .dash-goal-dialog { padding: 22px 18px; }
  body:not(#vs):not(#vs-coach) .dash-goal-dialog > h2 { font-size: 22px; }
  body:not(#vs):not(#vs-coach) #studentRoute.student-route { padding: 20px 18px; }
  body:not(#vs):not(#vs-coach) :is(#coachingPage .coach-panel, #leaderboardPage .lb-card) { padding: 18px 16px; }
  /* Podium onder elkaar: goud bovenaan, namen en bedragen passen dan in één regel. */
  body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card { padding: 14px 16px; }
  body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card { grid-column: 1; grid-row: auto; }
  body:not(#vs):not(#vs-coach) #leaderboardPage .lb-podium-card .lb-amount { font-size: 20px; white-space: nowrap; }
  /* AI Coach: de bovenbalk van de telefoon noemt de pagina al; het kleine kopje botst anders met de knoppen. */
  body:not(#vs):not(#vs-coach)[data-agent="ai-coach"] .center-head-ai-coach .title { display: none; }
}

/* ---------- Licht thema ---------- */
html[data-theme="light"] body:not(#vs):not(#vs-coach) :is(#coachSignalsPage, #leaderboardPage, #coachingPage, #dashboardCenter) :is(.coach-num.is-profit, .lb-change) { color: var(--vs-ok); }
html[data-theme="light"] body:not(#vs):not(#vs-coach) .lb-check { color: #ffffff; }

/* ---------- Verbeterronde (sessie coaching-account-ronde) ---------- */
/* Mijn coaching zonder coaching: één kaart met een knop, geen tabs en lege tegels. */
body:not(#vs):not(#vs-coach) .center-head-coaching .dash-tabs[hidden] { display: none; }
body:not(#vs):not(#vs-coach) #coachingPage .coach-next-empty .cta { margin-top: 14px; width: auto; }
/* Coachoverzicht: lege cel is een rustig streepje. */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-num.is-empty { color: var(--vs-muted); opacity: 0.6; }
/* Datumvelden alleen bij "Aangepaste periode", met een label erboven. */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-period-range { display: flex; flex-wrap: wrap; gap: 12px; flex-basis: 100%; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-date-field { display: grid; gap: 6px; flex: 1 1 180px; color: var(--vs-muted); font-size: 12px; font-weight: 600; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-date-field input { width: 100%; }
/* Geen dagresultaat: gewone letter in plaats van grote cijferletter. */
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-hero.is-missing .coach-hero-value { font-family: "Sora", "IBM Plex Sans", sans-serif; font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
body:not(#vs):not(#vs-coach) #coachSignalsPage .coach-metrics-missing { margin: 10px 0 0; color: var(--vs-muted); font-size: 13px; }
