/* Shared design tokens — HP-3 Phase 1 (shared stylesheet extraction).
   These 17 custom properties had identical values across every page that
   defined them (and are unused on pages that didn't define them), so they
   are extracted here as the single source of truth. Each page keeps a
   local :root override for values that genuinely diverge (e.g. --teal,
   --teal2, --font-body on the auth/system pages), which is loaded after
   this file and wins for those properties. */
:root {
  --navy: #003087;
  --navy-dark: #002070;
  --teal-light: #f0fdfb;
  --success: #10b981;
  --warning: #f59e0b;
  --danger: #ef4444;
  --purple: #8b5cf6;
  --ink: #0f172a;
  --body: #1e293b;
  --muted: #64748b;
  --subtle: #94a3b8;
  --border: #e2e8f0;
  --border-light: #f1f5f9;
  --bg: #f8fafc;
  --bg-alt: #f1f5f9;
  --card: #ffffff;
  --font-display: 'Fraunces', Georgia, serif;
}

/* MP-3 (C8): honour the OS-level "reduce motion" preference everywhere.
   !important + universal selector wins regardless of cascade order, so this
   applies even though tokens.css loads before each page's own <style>.
   animation-duration (not "animation: none") so fade-ins/spinners still
   resolve to their final frame instead of getting stuck at e.g. opacity: 0. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
