/*
 * FLOWAYZ — HANDOFF TOKEN ALIASES (Sprint 1.1, refonte 2026-04-26)
 *
 * Pont entre le naming handoff (`--bg-canvas`, `--text-primary`, `--r-md`,
 * `--ease-out`, `--motion-mult`, `[data-density]`, `[data-anim]`) et le
 * système existant (themes/accents.css, tokens/design_tokens.css).
 *
 * Stratégie : extend, pas replace. Aucun token existant n'est supprimé.
 * Les nouveaux composants (flowayz.css) consomment ces noms standardisés.
 *
 * Source : handoff/code/tokens.css + handoff/01-design-system.md
 *
 * Import order (cf. application.tailwind.css) :
 *   1. design_tokens.css (existant — palette flowayz, surfaces, shadows base)
 *   2. accents.css (existant — HSL accent system + presets)
 *   3. handoff_aliases.css (CE FICHIER — pont handoff)
 *   4. flowayz.css (composants handoff utilisant ces tokens)
 */

/* =============================================================================
   1. NAMING ALIASES — pointent vers les variables existantes
   ============================================================================= */

:root,
[data-theme="light"],
[data-mode="light"] {
  /* Backgrounds — handoff naming, valeurs exactes spec.
     Refonte 2026-04-27 : --bg-canvas pointait sur var(--flowayz-cream) qui
     est défini à #FFF5E4 (existing brand) au lieu du #FBF7EE handoff exact.
     On hardcode la valeur handoff ici. Le legacy --flowayz-cream reste
     utilisable ailleurs sans collision. */
  --bg-canvas:     #FBF7EE;
  --bg-surface:    #FFFFFF;
  --bg-surface-2:  #F6F1E5;
  --bg-elev:       #FFFFFF;
  --bg-sidebar:    #FFFFFF;
  --bg-input:      #FFFFFF;
  --bg-muted:      #F4EFE3;
  --bg-hover:      rgba(26, 60, 107, 0.05);

  /* Texte — handoff naming. Si ces vars existent déjà ailleurs (design_tokens.css
     les définit), elles reprennent leur valeur. Ce bloc agit comme fallback safe. */
  --text-primary-handoff:   #14202F;
  --text-secondary-handoff: #4B5A70;
  --text-muted-handoff:     #7A879B;
  --text-inverse:           #FFFFFF;

  /* Borders — handoff naming */
  --border-handoff:        rgba(20, 32, 47, 0.10);
  --border-strong-handoff: rgba(20, 32, 47, 0.18);
  --border-faint:          rgba(20, 32, 47, 0.05);

  /* Shadow accent — generic alias (existing has --shadow-coral/teal/navy) */
  --shadow-accent: 0 8px 24px -8px var(--accent);
}

[data-theme="dark"],
[data-mode="dark"],
html.dark {
  --bg-canvas:     #0B1220;
  --bg-surface:    #131C2E;
  --bg-surface-2:  #0F1729;
  --bg-elev:       #1A2438;
  --bg-sidebar:    #0F1729;
  --bg-input:      #1A2438;
  --bg-muted:      #182137;
  --bg-hover:      rgba(255, 255, 255, 0.05);

  --text-primary-handoff:   #F1F4F9;
  --text-secondary-handoff: #B0BAC9;
  --text-muted-handoff:     #7C8699;
  --text-inverse:           #0B1220;

  --border-handoff:        rgba(255, 255, 255, 0.08);
  --border-strong-handoff: rgba(255, 255, 255, 0.14);
  --border-faint:          rgba(255, 255, 255, 0.04);

  --shadow-accent: 0 8px 24px -8px var(--accent);
}

/* =============================================================================
   2. RADIUS — handoff scale (--r-sm/md/lg/xl/pill)
   ============================================================================= */
:root {
  --r-sm:   6px;
  --r-md:   10px;
  --r-lg:   14px;
  --r-xl:   20px;
  --r-pill: 9999px;
}

/* =============================================================================
   3. DENSITY — driven by [data-density="cozy|compact"]
   ============================================================================= */
:root {
  /* default cozy */
  --density-y: 12px;
  --density-x: 16px;
}
[data-density="cozy"]    { --density-y: 12px; --density-x: 16px; }
[data-density="compact"] { --density-y: 8px;  --density-x: 12px; }

/* =============================================================================
   4. MOTION — durations + easings + multiplier piloté par [data-anim]
   ============================================================================= */
:root {
  --ease-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --motion-mult: 1;
  --dur-fast:    calc(150ms * var(--motion-mult));
  --dur:         calc(250ms * var(--motion-mult));
  --dur-slow:    calc(400ms * var(--motion-mult));
}

/* L'attribut existant côté layout est `data-animations` (pas `data-anim`).
   On supporte les 2 pour compat avec localStorage existant + handoff naming. */
[data-anim="off"],       [data-animations="off"]    { --motion-mult: 0; }
[data-anim="subtle"],    [data-animations="subtle"] { --motion-mult: 0.6; }
[data-anim="ultra"],     [data-animations="ultra"]  { --motion-mult: 1; }

@media (prefers-reduced-motion: reduce) {
  :root { --motion-mult: 0; }
}

/* =============================================================================
   5. ACCENT-SOFT — alias générique (existing accents.css définit --accent-10)
   ============================================================================= */
:root {
  --accent-soft: var(--accent-10, hsla(var(--accent-h), var(--accent-s), var(--accent-l), 0.10));
}

/* =============================================================================
   6. SCOPE OVERRIDES — empêcher --bg-primary legacy de polluer la landing v7
   =============================================================================
   Le legacy --bg-primary est défini dans tokens/design_tokens.css:219 comme
   hsl(var(--accent-h), 30%, 96%) — un pastel calculé depuis l'accent. Si une
   classe Tailwind ou utility utilise bg-primary sur la landing v7, on aurait
   un fond pastel-pinkish au lieu du cream pur. Cette règle scopée garantit
   que sous .lv7-page, --bg-primary = --bg-canvas exactement. */
.lv7-page {
  --bg-primary: var(--bg-canvas);
}

