/* =============================================================================
   NXT1 Change — Design Tokens (source unique de vérité)
   Identité : « Précision lumineuse » — Guilloché (signature) + Chronomètre (mesure).
   Ce fichier est volontairement framework-agnostique : il alimente le back-office
   Filament ET la future PWA React (importer ce :root, ou mapper vers Tailwind).
   Ne JAMAIS coder une couleur de marque en dur dans un composant : passer par ces variables.
   ============================================================================= */

:root {
  /* ---- Couleur de marque : Cobalt -------------------------------------- */
  --nxt-cobalt-50:  #EEF1FF;
  --nxt-cobalt-100: #DCE2FF;
  --nxt-cobalt-200: #B9C6FF;
  --nxt-cobalt-300: #8FA3FF;
  --nxt-cobalt-400: #5E78FF;
  --nxt-cobalt-500: #2348FF;  /* primaire */
  --nxt-cobalt-600: #1B39DB;
  --nxt-cobalt-700: #1733C2;
  --nxt-cobalt-800: #142A99;
  --nxt-cobalt-900: #122670;

  --nxt-primary:      var(--nxt-cobalt-500);
  --nxt-primary-deep: var(--nxt-cobalt-700);
  --nxt-primary-tint: var(--nxt-cobalt-50);
  --nxt-on-primary:   #FFFFFF;

  /* ---- Encre & neutres (cast froid, esprit acier/cadran) --------------- */
  --nxt-ink-900: #0C1322;  /* texte principal, structure */
  --nxt-ink-700: #2A3247;
  --nxt-ink-500: #5A6275;  /* texte secondaire */
  --nxt-ink-400: #818AA0;
  --nxt-ink-300: #9AA1B2;  /* texte tertiaire / disabled */
  --nxt-ink-200: #D6DAE3;  /* bordures */
  --nxt-ink-100: #E7E9EF;  /* séparateurs */
  --nxt-paper:   #FFFFFF;  /* fond panneau */
  --nxt-mist:    #F6F7FB;  /* fond d'application */

  /* ---- Sémantique (états) --------------------------------------------- */
  /* Signal = la trotteuse du chronomètre. Réservé alertes / danger / refus conformité. */
  --nxt-signal:      #FF4326;
  --nxt-signal-700:  #C9301A;
  --nxt-signal-bg:   #FFEDE9;

  --nxt-success:     #0E9F6E;  /* gain, marge positive, LBA conforme */
  --nxt-success-700: #057A52;
  --nxt-success-bg:  #E7F7EF;

  --nxt-warning:     #B26B00;  /* approche d'un seuil LBA, vigilance */
  --nxt-warning-700: #8A5300;
  --nxt-warning-bg:  #FFF3DD;

  --nxt-info:        var(--nxt-cobalt-500);
  --nxt-info-bg:     var(--nxt-cobalt-50);

  /* ---- Typographie ----------------------------------------------------- */
  /* Display/marque : caractère moderne ; Numéraux : instrument calibré ; Texte : neutre lisible. */
  --nxt-font-display: 'Bricolage Grotesque', ui-sans-serif, system-ui, sans-serif;
  --nxt-font-sans:    'Hanken Grotesk', ui-sans-serif, system-ui, sans-serif;
  --nxt-font-mono:    'Martian Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* Échelle typographique (modulaire ~1.25) */
  --nxt-text-2xs: 0.6875rem;  /* 11px — labels mono majuscules */
  --nxt-text-xs:  0.75rem;    /* 12px */
  --nxt-text-sm:  0.875rem;   /* 14px */
  --nxt-text-md:  1rem;       /* 16px — corps */
  --nxt-text-lg:  1.25rem;    /* 20px */
  --nxt-text-xl:  1.5rem;     /* 24px */
  --nxt-text-2xl: 2rem;       /* 32px */
  --nxt-text-3xl: 2.75rem;    /* 44px */
  --nxt-text-4xl: 3.75rem;    /* 60px — hero */

  --nxt-tracking-tight: -0.025em; /* display */
  --nxt-tracking-label: 0.14em;   /* labels mono majuscules */
  --nxt-leading-tight: 1.05;
  --nxt-leading-body:  1.55;

  /* Les montants/taux utilisent TOUJOURS le mono + chiffres tabulaires (règle d'or #1). */
  --nxt-numeric-feature: "tnum" 1, "zero" 1;

  /* ---- Espacement (base 4px) ------------------------------------------ */
  --nxt-space-1: 0.25rem; --nxt-space-2: 0.5rem;  --nxt-space-3: 0.75rem;
  --nxt-space-4: 1rem;    --nxt-space-5: 1.25rem; --nxt-space-6: 1.5rem;
  --nxt-space-8: 2rem;    --nxt-space-10: 2.5rem; --nxt-space-12: 3rem;
  --nxt-space-16: 4rem;

  /* ---- Rayons ---------------------------------------------------------- */
  --nxt-radius-sm:  8px;
  --nxt-radius-md:  12px;
  --nxt-radius-lg:  16px;
  --nxt-radius-xl:  22px;
  --nxt-radius-pill: 999px;

  /* ---- Ombres (cast encre, jamais noir pur) --------------------------- */
  --nxt-shadow-sm: 0 8px 24px rgba(12, 19, 34, 0.05);
  --nxt-shadow-md: 0 12px 34px rgba(12, 19, 34, 0.10);
  --nxt-shadow-lg: 0 20px 50px rgba(12, 19, 34, 0.18);
  --nxt-focus-ring: 0 0 0 3px rgba(35, 72, 255, 0.28);

  /* ---- Motion (précision : rapide, mécanique, jamais flottant) -------- */
  --nxt-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --nxt-dur-micro: 160ms;  /* hover, focus, toggles */
  --nxt-dur-panel: 280ms;  /* panneaux, modales */
  --nxt-dur-reveal: 700ms; /* entrée de page orchestrée */
  --nxt-spin-guilloche: 95s; /* rotation lente du sceau (UI vivante) */
  --nxt-spin-seconde: 9s;    /* balayage de la trotteuse */
}

/* Mode sombre (back-office Filament, écrans nuit guichet) : on rééquilibre la surface,
   le Cobalt s'éclaircit légèrement pour tenir le contraste, le Signal reste constant. */
@media (prefers-color-scheme: dark) {
  :root {
    --nxt-ink-900: #ECEEF5;
    --nxt-ink-700: #C4C9D6;
    --nxt-ink-500: #9097A8;
    --nxt-ink-200: #2A3247;
    --nxt-ink-100: #1C2333;
    --nxt-paper:   #131826;
    --nxt-mist:    #0C1322;
    --nxt-primary:      #5E78FF;
    --nxt-primary-tint: #1A2348;
  }
}

/* Chiffres financiers : classe utilitaire à appliquer sur tout montant/taux. */
.nxt-numeric {
  font-family: var(--nxt-font-mono);
  font-variant-numeric: tabular-nums slashed-zero;
  letter-spacing: -0.01em;
}
