/* ============================================================
   Préventif design tokens, ported from the preventif-design
   system (.claude/skills/preventif-design/tokens). Names kept
   so they trace back to the canonical reference.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Serif:ital,wght@0,400;0,500;0,600;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  /* Brand: Preventive Blue */
  --brand-950:#0C1C2B; --brand-900:#102A3F; --brand-800:#16384F; --brand-700:#1B4B66;
  --brand-600:#1F5A7D; --brand-500:#2A6F96; --brand-400:#4C8DB3; --brand-300:#8FBAD3;
  --brand-200:#C2DAE8; --brand-100:#E2EEF5; --brand-50:#F1F7FB;

  /* Accent: Verified Teal */
  --accent-700:#0B6353; --accent-600:#0E7C66; --accent-500:#14937A;
  --accent-100:#DCF0EB; --accent-50:#EEF8F5;

  /* Warm paper neutrals */
  --paper:#FBFAF7; --surface:#FFFFFF; --neutral-50:#F6F5F2; --neutral-100:#ECEAE4;
  --neutral-150:#E3E0D8; --neutral-200:#DAD6CC; --neutral-300:#C5C0B4; --neutral-400:#A39E90;
  --neutral-500:#837E71; --neutral-600:#66614F; --neutral-700:#4A463A; --neutral-800:#2E2B23;
  --neutral-900:#1C1A14; --ink:#181610;

  /* Risk semantics (contractual, AA, print-safe) */
  --risk-low:#1B7F46; --risk-low-on:#FFFFFF; --risk-low-tint:#E3F2E8; --risk-low-text:#0E5A30; --risk-low-line:#B6DCC4;
  --risk-moderate:#F2B600; --risk-moderate-on:#3A2D00; --risk-moderate-tint:#FBF0C9; --risk-moderate-text:#6B4E00; --risk-moderate-line:#EAD178;
  --risk-high:#CF5F0C; --risk-high-on:#FFFFFF; --risk-high-tint:#FBE5D3; --risk-high-text:#8E4109; --risk-high-line:#F0C29A;
  --risk-critical:#C01F2A; --risk-critical-on:#FFFFFF; --risk-critical-tint:#F8DDDE; --risk-critical-text:#8B0F18; --risk-critical-line:#EEB6B9;

  --success:#1B7F46; --warning:#B8860B; --danger:#C01F2A; --info:#1F5A7D;

  /* Semantic aliases */
  --bg-app:var(--paper); --bg-canvas:var(--neutral-50); --surface-card:var(--surface);
  --surface-sunken:var(--neutral-50); --surface-inverse:var(--brand-950);
  --text-strong:var(--ink); --text-body:var(--neutral-800); --text-muted:var(--neutral-600);
  --text-subtle:var(--neutral-500); --text-on-brand:#FFFFFF; --text-on-inverse:#E7EEF3; --text-link:var(--brand-600);
  --border-subtle:var(--neutral-150); --border-default:var(--neutral-200); --border-strong:var(--neutral-300); --border-focus:var(--brand-500);
  --action-primary:var(--brand-600); --action-primary-hover:var(--brand-700); --action-primary-press:var(--brand-800);
  --action-accent:var(--accent-600); --focus-ring:var(--brand-400);

  /* Typography */
  --font-serif:'IBM Plex Serif','Georgia','Times New Roman',serif;
  --font-sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular','Menlo',monospace;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  --fs-2xs:11px; --fs-xs:12px; --fs-sm:13px; --fs-base:15px; --fs-md:17px; --fs-lg:20px;
  --fs-xl:24px; --fs-2xl:30px; --fs-3xl:38px; --fs-4xl:48px; --fs-5xl:60px;
  --lh-tight:1.12; --lh-snug:1.28; --lh-normal:1.5; --lh-relaxed:1.65;
  --ls-tight:-0.02em; --ls-snug:-0.01em; --ls-normal:0; --ls-wide:0.02em; --ls-caps:0.08em;

  /* Spacing & layout */
  --space-1:2px; --space-2:4px; --space-3:8px; --space-4:12px; --space-5:16px; --space-6:20px;
  --space-7:24px; --space-8:32px; --space-9:40px; --space-10:48px; --space-11:64px; --space-12:80px; --space-13:96px;
  --container-sm:640px; --container-md:820px; --container-lg:1080px; --container-xl:1280px; --doc-page:816px;
  --radius-xs:3px; --radius-sm:5px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; --radius-2xl:22px; --radius-pill:999px;
  --bw-hairline:1px; --bw-regular:1.5px; --bw-strong:2px; --bw-accent:3px;

  /* Elevation & motion */
  --shadow-xs:0 1px 1px rgba(16,42,63,.04);
  --shadow-sm:0 1px 2px rgba(16,42,63,.06),0 1px 1px rgba(16,42,63,.04);
  --shadow-md:0 2px 4px rgba(16,42,63,.06),0 4px 12px rgba(16,42,63,.06);
  --shadow-lg:0 8px 24px rgba(16,42,63,.10),0 2px 6px rgba(16,42,63,.06);
  --shadow-xl:0 20px 48px rgba(12,28,43,.16),0 4px 12px rgba(12,28,43,.08);
  --ring-focus:0 0 0 3px rgba(76,141,179,.45);
  --ring-danger:0 0 0 3px rgba(192,31,42,.32);
  --ease-standard:cubic-bezier(.2,0,0,1); --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:120ms; --dur-base:180ms;
}
