/* Language Bridge — design tokens (spec §32)
   One shared token layer. Modules add ONE secondary accent, never a new palette. */
:root {
  /* Brand palette — blue and teal nudged slightly darker so text/UI meet
     WCAG AA on white without leaving the brand family (see scripts/check-contrast.js). */
  --navy: #082759;        /* deep navy */
  --navy-tcea: #0A3476;   /* TCEA navy */
  --blue: #1270C6;        /* bright blue (was #147AD6; AA for buttons + links) */
  --gold: #FCB040;        /* warm gold */
  --teal: #147F84;        /* teal (was #1B8A8F; AA for small text on white) */
  --pale: #EEF4FC;        /* pale blue panels */
  --white: #FFFFFF;
  --body: #172033;        /* body text */

  /* Semantic roles */
  --bg: var(--pale);
  --surface: var(--white);
  --ink: var(--body);
  --ink-soft: #5a6577;
  --accent: var(--blue);
  --accent-strong: var(--navy);
  --module-accent: var(--teal); /* overridden per module */

  /* Feedback (never red-only, never punitive — spec §19) */
  --ok: #147F84;           /* aligned with --teal */
  --ok-bg: #e7f4f4;
  --rethink: #B8791A;      /* amber border, "look again" — not alarm red */
  --rethink-text: #8a5612; /* darker amber for amber TEXT (AA on cream) */
  --rethink-bg: #fdf3e2;
  --focus: #1270C6;

  /* Typography */
  --font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;
  --font-rtl: "Noto Naskh Arabic", "Segoe UI", system-ui, sans-serif;

  /* Spacing scale */
  --sp-1: .25rem; --sp-2: .5rem; --sp-3: .75rem; --sp-4: 1rem;
  --sp-5: 1.5rem; --sp-6: 2rem; --sp-7: 3rem; --sp-8: 4rem;

  /* Radius + elevation */
  --radius: 14px;
  --radius-lg: 18px;
  --shadow: 0 2px 24px rgba(8, 39, 89, .09);
  --shadow-lift: 0 6px 30px rgba(8, 39, 89, .16);

  /* Layout */
  --measure: 44rem;
  --wide: 68rem;

  /* Motion (respect reduced motion below) */
  --t-fast: 120ms;
  --t: 200ms;
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}
