/* Tokenii EduMathUaic: singura sursă pentru culoare, fonturi, scară, spațiu, raze, umbre, mișcare, focus și controale.
   Light în :root, dark în :root[data-theme="dark"]. Se încarcă PRIMUL în index.php și exercises.php; modulele consumă tokenii, nu îi rescriu.
   Breakpoint-uri unice (max-width): 1100px, 900px, 580px, 380px — media query-urile nu citesc variabile, deci se scriu literal.
   Greutăți de font permise: 400 și 700. Contrast măsurat în tests/tokens.test.cjs (text ≥ 4.5:1, controale ≥ 3:1, ambele teme). */
:root {
  color-scheme: light;

  /* Culoare */
  --paper: #f5f4f1;
  --surface: #fcfbf9;
  --panel: #eeedea;
  --ink: #262830;
  --muted: #626775;
  --subtle: #666b7a;
  --line: #d9d9d4;
  --control-border: #82868f;
  /* Un singur accent (Apple HIG), cromatica Google Store: albastrul primar și containerul lui deschis. */
  --blue: #0b57d0;
  --blue-soft: #d3e3fd;
  --green: #386951;
  --success: var(--green);
  --success-soft: #eaf1ea;
  --danger: #9e3030;
  --danger-soft: #fff1ef;
  --warn: #7f6737;
  --warn-soft: #f0ecd9;
  /* Voalul de sub dialoguri (.modal::backdrop, css-core-4); nu este culoare de text */
  --scrim: rgb(20 22 30 / .38);

  /* Materialul liquid glass din Axioma (axioma_5.html, .lg; tema luminoasă = body[data-theme=light] .lg).
     tint = primarul (.lg-tint), hover = lumina sub cursor, blur = difuzia stratului ::before. */
  --glass-light: #ffffffa3;
  --glass-floor: #ffffffcc;
  --glass-rim: #fffffff9;
  --glass-line: #47566c26;
  --glass-depth: #2a304638;
  --glass-inner: #ffffffcc;
  --glass-fill: #ffffff2e;
  --glass-tint: #58749913;
  --glass-tint-light: #ffffffbf;
  --glass-tint-floor: #ffffffcc;
  --glass-hover-light: #ffffff3b;
  --glass-hover-inner: #ffffff66;
  --glass-blur: 2px;

  /* Fonturi */
  --serif: 'Latin Modern', 'Computer Modern Serif', Georgia, serif;
  --sans: 'Computer Modern Sans', 'Segoe UI', system-ui, sans-serif;
  --mono: ui-monospace, Consolas, monospace;
  --reading-serif: 'Libertinus', 'Latin Modern', Georgia, serif;
  --heading-serif: 'EB Garamond', 'Latin Modern', Georgia, serif;

  /* Tipografie: --type-label este podeaua absolută pentru text vizibil (12px) */
  --type-copy: 1rem;
  --type-ui: .9375rem;
  --type-small: .8125rem;
  --type-label: .75rem;
  --type-reading: 1.25rem;
  --type-reading-large: 1.5rem;
  --type-lesson: 1.0625rem;
  --display-1: clamp(44px, 5.3vw, 80px);
  --display-2: clamp(32px, 3.4vw, 46px);
  --display-3: clamp(24px, 2.4vw, 32px);
  --leading-copy: 1.6;
  --leading-tight: 1.1;
  --leading-lesson: 1.8;
  --measure: 68ch;

  /* Spațiu (grilă de 4px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --gutter: clamp(16px, 5vw, 72px);
  /* Ritm vertical (27 sept, „totul e prea lăbărțat”): --section-y între secțiunile paginii, --stack-lg între blocurile mari
     (antet de pagină → conținut, bloc → bloc), --stack între elementele unui bloc. Textul și țintele de 44px nu se schimbă. */
  --section-y: clamp(32px, 3.5vw, 48px);
  --stack-lg: clamp(20px, 2.5vw, 32px);
  --stack: var(--space-4);

  /* Raze */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-pill: 999px;

  /* Umbre: culoarea se schimbă pe temă, forma rămâne */
  --shadow-color: 38 40 50;
  --shadow-1: 0 1px 2px rgb(var(--shadow-color) / .08), 0 4px 12px -6px rgb(var(--shadow-color) / .18);
  --shadow-2: 0 2px 4px rgb(var(--shadow-color) / .08), 0 12px 28px -12px rgb(var(--shadow-color) / .28);
  --shadow-modal: 0 20px 65px -10px rgb(var(--shadow-color) / .35);

  /* Mișcare */
  --dur-fast: 160ms;
  --dur-base: 240ms;
  --dur-slow: 400ms;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --press: scale(.97);

  /* Focus */
  --focus-ring: 3px solid var(--blue);
  --focus-offset: 3px;

  /* Controale */
  --control-size: 44px;
  --control-size-sm: 36px;
  --action-icon-size: 20px;
}

:root[data-theme="dark"] {
  color-scheme: dark;

  --paper: #1c1d21;
  --surface: #25262c;
  --panel: #222329;
  --ink: #f3f2f0;
  --muted: #b8bdc8;
  --subtle: #a0a6b3;
  --line: #40424b;
  --control-border: #7d828e;
  --blue: #a8c7fa;
  --blue-soft: #173462;
  --green: #9dc5a9;
  --success-soft: #2b3a31;
  --danger: #f2a3a3;
  --danger-soft: #3a2626;
  --warn: #e3b341;
  --warn-soft: #464131;
  --scrim: rgb(0 0 0 / .62);

  --glass-light: #ffffff2b;
  --glass-floor: #e5f0ff1f;
  --glass-rim: #ffffffcc;
  --glass-line: #e7efff1c;
  --glass-depth: #00000052;
  --glass-inner: #ffffff38;
  --glass-fill: #f5f8ff09;
  --glass-tint: #bfd1eb13;
  --glass-tint-light: #ffffff2b;
  --glass-tint-floor: #dcecff33;

  --shadow-color: 0 0 0;
}

/* Un singur inel de focus, identic în shell, module și iframe-ul culegerii. */
:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }
:focus:not(:focus-visible) { outline: none; }

/* Mișcare redusă: duratele rămân, apăsarea nu mai scalează, derularea nu mai alunecă, animațiile infinite se opresc după o trecere. */
@media (prefers-reduced-motion: reduce) {
  :root { --press: none; scroll-behavior: auto; }
  *, *::before, *::after { animation-iteration-count: 1 !important; }
}
