/* ============================================================
   PROMOFY — DESIGN SYSTEM (TOME I, VERROUILLÉ)
   Tokens : couleurs (clair/sombre), typo, espacement, rayons.
   Le VERT MONEY est sacré : uniquement sur l'argent encaissable.
   ============================================================ */

:root {
  /* --- PRIMITIVES --- */
  --neutral-0:#FFFFFF; --neutral-50:#F7F8FA; --neutral-100:#EEF0F4; --neutral-200:#E2E5EC;
  --neutral-300:#CDD2DC; --neutral-400:#9AA2B1; --neutral-500:#6B7384; --neutral-600:#4A5163; --neutral-700:#333A4B;
  --ink-800:#1C2333; --ink-900:#141A28; --ink-950:#0E1320;
  --brand-300:#7FA8FF; --brand-400:#5B86F5; --brand-500:#3B63E0; --brand-600:#2C4BC2;
  --green-300:#4FD1A1; --green-400:#2BB985; --green-500:#16A06A; --green-600:#0E7E54;
  --green-surface-l:#E7F6EF; --green-surface-d:#10362B;
  --amber-400:#E0A93E; --amber-500:#C8902A; --amber-surface-l:#FBF2DF; --amber-surface-d:#3A2E12;
  --red-400:#F0606A; --red-500:#DC3B47; --red-surface-l:#FBE9EA; --red-surface-d:#3A1518;
  --trust-400:#3EA8E0; --trust-500:#1E8FCF; --trust-surface-l:#E4F2FB; --trust-surface-d:#0F2C3D;
  --violet-400:#9B7BF0; --violet-500:#7C56E6; --violet-600:#6440C2; --violet-surface-l:#F0EBFD; --violet-surface-d:#251B3E;

  /* --- SÉMANTIQUE : MODE CLAIR --- */
  --bg-app:var(--neutral-50);
  --surface:var(--neutral-0);
  --surface-sunken:var(--neutral-100);
  --surface-raised:var(--neutral-0);
  --text-primary:#101521;
  --text-secondary:var(--neutral-500);
  --text-muted:var(--neutral-400);
  --text-on-brand:#FFFFFF;
  --brand:var(--brand-500); --brand-hover:var(--brand-600);
  --money:var(--green-500); --money-strong:var(--green-600); --money-surface:var(--green-surface-l);
  --pending:var(--amber-500); --pending-surface:var(--amber-surface-l);
  --danger:var(--red-500); --danger-surface:var(--red-surface-l);
  --trust:var(--trust-500); --trust-surface:var(--trust-surface-l);
  --accent:var(--violet-500); --accent-surface:var(--violet-surface-l);
  --border:var(--neutral-200); --border-strong:var(--neutral-300);
  --focus:var(--brand-400);
  --shadow-raised:0 1px 2px rgba(16,21,33,.06);
  --shadow-overlay:0 10px 30px rgba(16,21,33,.10);
  --shadow-hero:0 1px 2px rgba(16,21,33,.05), 0 14px 38px rgba(16,21,33,.10);

  /* --- ESPACEMENT base-4 / RAYONS --- */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px; --s10:40px; --s12:48px; --s16:64px;
  --r-xs:6px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:22px; --r-full:999px;

  /* --- TYPO --- */
  --font:'Inter','Inter var',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* voix display (titres/hero côté PROMOTEUR — Inter reste pour les montants) */
  --font-display:'Bricolage Grotesque','Inter',-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter','Inter var',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; /* alias = --font (corrige les références --font-body) */
  --fs-display:48px; --fs-h1:32px; --fs-h2:24px; --fs-h3:20px; --fs-bodylg:17px;
  --fs-body:15px; --fs-bodymd:14px; --fs-caption:13px; --fs-micro:11px;
}

[data-theme="dark"] {
  --bg-app:var(--ink-900);
  --surface:var(--ink-800);
  --surface-sunken:var(--ink-950);
  --surface-raised:#232C40;
  --text-primary:#EAEDF3;
  --text-secondary:#A7AFC0;
  --text-muted:#727B90;
  --brand:var(--brand-400); --brand-hover:var(--brand-300);
  --money:var(--green-400); --money-strong:var(--green-300); --money-surface:var(--green-surface-d);
  --pending:var(--amber-400); --pending-surface:var(--amber-surface-d);
  --danger:var(--red-400); --danger-surface:var(--red-surface-d);
  --trust:var(--trust-400); --trust-surface:var(--trust-surface-d);
  --accent:var(--violet-400); --accent-surface:var(--violet-surface-d);
  --border:#2C3650; --border-strong:#3A465F; --focus:var(--brand-300);
  --shadow-raised:0 1px 0 rgba(0,0,0,.4);
  --shadow-overlay:0 12px 32px rgba(0,0,0,.5);
  --shadow-hero:0 1px 0 rgba(255,255,255,.03), 0 16px 40px rgba(0,0,0,.45);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font);
  background:var(--bg-app);
  color:var(--text-primary);
  font-size:var(--fs-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.tnum{font-variant-numeric:tabular-nums;}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm);}
::selection{background:color-mix(in srgb,var(--brand) 24%,transparent);}
