/* Primitives opt-in. Les alias :where() assurent la compatibilité du pilote
   sans renommer les hooks PHP/JS. Aucun sélecteur ne s'applique hors .vm-ds. */
body.vm-ds { background:var(--vm-bg); color:var(--vm-text); font:400 15px/24px var(--vm-font-ui); }
.vm-ds :is(h1,h2,h3,h4,button,input,select,textarea) { font-family:var(--vm-font-ui); }
.vm-ds :is(h1,h2,h3,h4) { color:var(--vm-navy); letter-spacing:-.02em; }
.vm-ds h1 { font-size:32px; line-height:40px; font-weight:800; }
.vm-ds h2 { font-size:24px; line-height:32px; font-weight:700; }
.vm-ds h3 { font-size:20px; line-height:28px; font-weight:600; }
.vm-ds :is(code,pre,kbd,samp,.vm-metric) { font-family:var(--vm-font-code); }
.vm-ds :focus-visible { outline:var(--vm-focus); outline-offset:2px; box-shadow:var(--vm-focus-halo); }
body.vm-platform.vm-ds :where(.vm-button,.auth-primary-link,.learner-refresh,.learner-logout,.session-logout-button,.platform-menu-toggle,.learner-reminder-form>button) {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--vm-space-2); min-height:44px;
  padding:10px 16px; border:1px solid var(--vm-primary); border-radius:var(--vm-radius-control);
  background:var(--vm-primary); color:#fff; font:600 15px/22px var(--vm-font-ui); text-decoration:none; cursor:pointer;
  transition:background var(--vm-transition),border-color var(--vm-transition);
}
body.vm-platform.vm-ds :where(.vm-button,.auth-primary-link,.learner-refresh,.learner-reminder-form>button):hover { background:var(--vm-primary-hover); color:#fff; }
body.vm-platform.vm-ds :where(.vm-button--secondary,.learner-logout,.session-logout-button,.platform-menu-toggle) { background:var(--vm-surface); color:var(--vm-navy); border-color:#64748b; }
body.vm-platform.vm-ds :where(.vm-button--secondary,.learner-logout,.session-logout-button,.platform-menu-toggle):hover { background:#eff6ff; color:var(--vm-navy); }
.vm-ds .vm-button--danger { background:#fef2f2; border-color:#b91c1c; color:#b91c1c; }
.vm-ds .vm-button--danger:hover { background:#fee2e2; color:#991b1b; }
.vm-ds :is(button:disabled,.vm-button[aria-disabled=true]) { background:#e2e8f0; color:#475569; border-color:#cbd5e1; cursor:not-allowed; opacity:1; box-shadow:none; }
body.vm-platform.vm-ds :where(.vm-card,.learner-quick-card,.learner-path-card,.learner-stat-card,.learner-course-progress,.learner-resume-card,.learner-review-card,.learner-diagnostic-summary,.learner-reminder-settings) {
  background:var(--vm-surface); color:var(--vm-text); border:1px solid var(--vm-border); border-top:3px solid var(--vm-primary);
  border-radius:var(--vm-radius-card); box-shadow:var(--vm-shadow);
}
body.vm-platform.vm-ds :where(.vm-card--learning,.learner-course-progress.is-started) { border-top-color:var(--vm-learning); }
body.vm-platform.vm-ds :where(.vm-card--success,.learner-course-progress.is-completed) { border-top-color:var(--vm-success); }
.vm-ds .vm-card--tech { border-top-color:var(--vm-tech); }
body.vm-platform.vm-ds :where(.vm-badge,.learner-role,.learner-course-status) { display:inline-flex; align-items:center; padding:4px 8px; border-radius:4px; background:#eff6ff; color:#1e40af; font:600 13px/20px var(--vm-font-ui); }
body.vm-platform.vm-ds :where(.vm-badge--success,.learner-course-status.is-completed) { background:#dcfce7; color:#166534; }
body.vm-platform.vm-ds :where(.vm-badge--learning,.learner-course-status.is-started) { background:#fef3c7; color:#78350f; }
body.vm-platform.vm-ds :where(.vm-badge--danger) { background:#fee2e2; color:#991b1b; }
body.vm-platform.vm-ds :where(.learner-course-status.is-not-started) { background:#f1f5f9; color:#475569; }
body.vm-platform.vm-ds :where(.vm-alert,.auth-message) { padding:16px; border:1px solid var(--vm-border); border-left:4px solid var(--vm-primary); border-radius:var(--vm-radius-control); background:#eff6ff; color:#1e40af; }
body.vm-platform.vm-ds :where(.vm-alert--danger,.auth-message-error) { border-left-color:var(--vm-danger); background:#fef2f2; color:#991b1b; }
body.vm-platform.vm-ds :where(.vm-alert--success,.auth-message-success) { border-left-color:var(--vm-success); background:#f0fdf4; color:#166534; }
body.vm-platform.vm-ds :where(.vm-input,.vm-select,.learner-reminder-form select) { min-height:44px; max-width:100%; padding:8px 12px; border:1px solid #64748b; border-radius:var(--vm-radius-control); background:var(--vm-surface); color:var(--vm-text); font:inherit; }
body.vm-platform.vm-ds :where(.vm-input,.vm-select):disabled { background:#f1f5f9; color:var(--vm-text-muted); cursor:not-allowed; }
body.vm-platform.vm-ds :where(.vm-input,.vm-select):focus { border-color:var(--vm-primary); }
body.vm-platform.vm-ds :where(.vm-progress,.learner-progress-track) { height:10px; overflow:hidden; background:var(--vm-border); border-radius:4px; }
body.vm-platform.vm-ds :where(.vm-progress,.learner-progress-track)>span { display:block; height:100%; background:var(--vm-electric); border-radius:inherit; transition:width var(--vm-transition); }
body.vm-platform.vm-ds :where(.vm-nav-link) { display:inline-flex; align-items:center; min-height:44px; color:var(--vm-navy); }
body.vm-platform.vm-ds :where(.vm-nav-link)[aria-current=page] { color:var(--vm-primary); text-decoration:underline; text-underline-offset:6px; font-weight:700; }
@media(min-width:768px) { .vm-ds h1 { font-size:48px; line-height:56px; } .vm-ds h2 { font-size:32px; line-height:40px; } }
