/* Contratto colore: i consumatori dipendono dai nomi semantici, non dai valori.
   Il rosso identifica il brand; stati, focus e pericolo mantengono ruoli distinti. */

:root {
  /* Primitive brand: non usarle direttamente quando esiste un token semantico. */
  --alba-red: #DC132C;
  --alba-red-dark: #B30F23;
  --alba-red-deep: #8E0C1C;
  --alba-red-bg: #FCE9EC;
  --alba-black: #1B2126;

  /* Scala neutra: costruisce superfici, testo, bordi e chrome senza introdurre nuovi significati. */
  --gray-50: #F5F6F8;
  --gray-100: #EEF0F3;
  --gray-200: #DFE3E8;
  --gray-300: #C9CFD6;
  --gray-400: #9AA4AE;
  --gray-500: #5C6670;
  --gray-600: #4A545E;
  --gray-700: #39434C;
  --gray-800: #272F36;
  --gray-900: #1B2126;

  /* Token semantici pubblici: sono l'interfaccia stabile del design system. */
  --color-primary: var(--alba-red);
  --color-primary-hover: var(--alba-red-dark);
  --color-primary-active: var(--alba-red-deep);
  --color-primary-bg: var(--alba-red-bg);
  --color-on-primary: #FFFFFF;

  --color-surface: #FFFFFF;          /* Superficie di pannelli, card e tabelle. */
  --color-bg: var(--gray-50);        /* Sfondo dell'applicazione. */
  --color-text: var(--gray-900);
  --color-muted: var(--gray-500);
  --color-border: var(--gray-200);
  --color-border-strong: var(--gray-300);

  --color-danger: #B42318;           /* Azioni distruttive, scaduto e IN RITARDO. */
  --color-danger-bg: #FCEBE8;
  --color-warning: #9A6700;          /* Scadenza entro due giorni. */
  --color-warning-bg: #FDF1D7;
  --color-success: #1E7E44;          /* Esito approvato, pubblicato o completato. */
  --color-success-bg: #E5F3EA;

  /* Stati workflow: colori funzionali indipendenti dal brand. */
  --state-active: #2F5F8F;           /* In validazione PO, Risk o Compliance. */
  --state-active-bg: #E9F0F7;
  --state-verify: #5F4B8B;           /* In verifica Normativa Interna. */
  --state-verify-bg: #EFEBF6;
  --state-review: #0E7285;           /* In visione alle UO impattate. */
  --state-review-bg: #E4F2F5;
  --state-neutral: var(--gray-500);  /* Bozza o annullato. */
  --state-neutral-bg: var(--gray-100);

  /* Chrome scuro della sidebar: testo e hover hanno contrasto dedicato. */
  --color-sidebar: var(--gray-900);
  --color-sidebar-hover: var(--gray-800);
  --color-sidebar-text: #C6CDD4;
  --color-sidebar-muted: #8B96A0;

  /* Focus: sempre visibile e cromaticamente separato da brand, errore e pericolo. */
  --color-focus: #2F5F8F;
  --focus-ring: 0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-focus);
}
