/* ============================================================================
   LOGIX.AI Design Tokens
   Vedi /workspace/DESIGN.md per spec completa.
   Fase 1.3 (28/05/2026).
   ========================================================================== */

:root {
  /* === Background layers — palette "sala comando" (Palantir/Blueprint): il buio NON è
     nero puro, è blu-grigio desaturato. La LUCE viene dal dato, non dallo sfondo. === */
  --bg-base:     #14181d;   /* app shell (deep) */
  --bg-panel:    #1c2127;   /* barre/pannelli — dark-gray1 */
  --bg-elevated: #252a31;   /* superficie card default — dark-gray2 */
  --bg-hover:    rgba(255,255,255,0.05);
  --bg-pressed:  rgba(255,255,255,0.09);

  /* === Text — crisp, alto contrasto (light-gray/gray di Blueprint) === */
  --text-primary:   #f6f7f9;   /* ≈13:1 su --bg-elevated */
  --text-secondary: #abb3bf;
  --text-tertiary:  #8b95a3;
  --text-inverse:   #14181d;

  /* === Borders — SOLIDI e strutturali (in dark le ombre non si vedono: si separa con
     bordo sottile + differenza di luminanza, non con box-shadow). === */
  --border-subtle:  #262c34;
  --border-default: #383e47;   /* dark-gray4 — bordo card default */
  --border-strong:  #4d5764;
  --border-focus:   #4c90f0;

  /* === Brand accent — UN solo blu (interazione/AI). Niente gradiente viola "gamer". === */
  --accent-blue:    #2d72d2;   /* blue3 */
  --accent-purple:  #634dbf;   /* violet3 — raro, retro-compat (non decorativo) */
  --accent-gradient: linear-gradient(135deg, #2d72d2 0%, #4c90f0 100%);  /* solo blu, sobrio */

  /* === Status semantici — tinte-DATO Palantir (mute, non neon); colore SOLO = significato === */
  --status-ok:        #32a467;
  --status-warn:      #d1930b;
  --status-danger:    #e05561;
  --status-info:      #2d9cdb;
  --status-neutral:   #6b7684;
  --status-ok-bg:     rgba(50,164,103,0.14);
  --status-warn-bg:   rgba(209,147,11,0.14);
  --status-danger-bg: rgba(224,85,97,0.14);
  --status-info-bg:   rgba(45,156,219,0.14);

  /* === Glow (tinte-5 Blueprint) — SOLO per ciò che è "vivo" (mezzi in marcia, alert). === */
  --ok-glow:      #72ca9b;
  --warn-glow:    #f2b355;
  --danger-glow:  #fa999c;
  --accent-glow:  #8abbff;

  /* === Shadows (minime: si preferiscono i bordi) === */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.30);
  --shadow-md: 0 4px 14px rgba(0,0,0,0.38);
  --shadow-lg: 0 16px 40px rgba(0,0,0,0.48);

  /* === Spacing (base 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;

  /* === Typography === */
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Consolas, 'Liberation Mono', monospace;

  --text-xs:   11px;
  --text-sm:   12px;
  --text-base: 14px;
  --text-md:   16px;
  --text-lg:   18px;
  --text-xl:   22px;
  --text-2xl:  28px;
  --text-3xl:  34px;

  --leading-tight:  1.2;
  --leading-normal: 1.5;
  --leading-loose:  1.7;
  --tracking-tight: -0.01em;
  --tracking-wide:   0.06em;

  /* === Radii === */
  --radius-sm:  6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  /* === Animation === */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.7, 0, 0.84, 0);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;

  /* === Layout === */
  --sidebar-width:           240px;
  --sidebar-width-collapsed: 64px;
  --header-height:           56px;
  --container-max:           1600px;

  /* === Z-index scale === */
  --z-base:     0;
  --z-sticky:   10;
  --z-dropdown: 50;
  --z-modal:   100;
  --z-toast:   200;
  --z-command: 300;

  /* ============================================================
     FASE 0 — CONSOLIDAMENTO DESIGN-SYSTEM (25/06/2026)
     Additivo: alias canonici + token mancanti. NESSUN valore
     esistente cambia (gli alias puntano ai token già in uso).
     Spec: plans/LOGIX-F0-design-system-spec.md + CONSOLIDAMENTO §C.
     ============================================================ */

  /* --- Alias canonici (1 concetto = 1 nome; i vecchi restano per retro-compat) --- */
  --surface-1:      var(--bg-elevated);  /* superficie default delle card */
  --surface-hover:  #2f343c;             /* superficie OPACA card cliccabili (hover) — dark-gray3 */
  --surface-active: #383e47;             /* superficie OPACA (pressed/active) — dark-gray4 */
  --accent:         var(--accent-blue);  /* UN solo accento d'azione */
  --radius:         var(--radius-md);    /* raggio operativo unico */

  /* --- Status background "soft" (8%) — toast/alert, evita color-mix inline --- */
  --status-ok-bg-soft:     rgba(34,197,94,0.08);
  --status-warn-bg-soft:   rgba(245,158,11,0.08);
  --status-danger-bg-soft: rgba(239,68,68,0.08);
  --status-info-bg-soft:   rgba(6,182,212,0.08);

  /* --- Onestà come estetica --- */
  --demo-desaturate: grayscale(0.55) opacity(0.75);  /* marker/righe mezzi DEMO */
  --stale-color:     var(--status-warn);             /* GPS non recente */
  --stale-bg:        var(--status-warn-bg);
  --band-fill:       rgba(209,147,11,0.18);          /* banda/forbice ETA (coerente col residuo) */

  /* --- Interazione (promossi da hardcode sparsi in business_new.css) --- */
  --focus-ring:  0 0 0 3px rgba(76,144,240,0.28);
  --overlay-dim: rgba(0,0,0,0.40);
  --transition:  var(--duration-base) var(--ease-out);

  /* --- Tassonomia azioni a 3 corsie (colore = stato; comportamento in F1/F2) --- */
  --lane-auto:       var(--status-ok);      /* verde  — eseguito senza conferma */
  --lane-confirm:    var(--status-warn);    /* giallo — conferma leggera */
  --lane-danger:     var(--status-danger);  /* rosso  — conferma forte (MAI auto) */
  --lane-auto-bg:    var(--status-ok-bg);
  --lane-confirm-bg: var(--status-warn-bg);
  --lane-danger-bg:  var(--status-danger-bg);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* Tabular figures helper */
.tabular { font-variant-numeric: tabular-nums; }
