/* =========================================================================
   tokens.css - design token
   Slot di marchio derivati dalla piattaforma legacy (nota di derivazione sotto).
   Gli slot di sistema sono FISSI - non si modificano.

   NOTA DI DERIVAZIONE (Parte 2 del manuale)
   sorgenti      : cer98/images/logo.png (logo in uso, index.php:64) -
                   cer98/style.css - cer98/images/logo.jpg - cer98/images/logo_old.png
   raccolti      : #1E77F7 (15 occorrenze, il valore cromatico piu frequente del
                   foglio: fondo testata, fondo footer, fondo th, colore dei link) -
                   #0753C2 (3) - #DCE6FF (5) - #FF452F - #FF1F06 - #EC4438 - #6A98DA -
                   #87A7D6 - #94B3FF - #2D619F
   logo          : il logo in uso e un wordmark BIANCO su trasparenza, disegnato per
                   stare sulla fascia blu: non contiene un riempimento di marchio da
                   campionare. I suoi bordi antialiasati misurano tinta 215,3 gradi,
                   cioe la stessa tinta di #1E77F7 (215,4). Il conflitto logo/CSS
                   previsto da STRUCTURE.md par. 7 non si e quindi verificato: il logo
                   conferma il CSS invece di contraddirlo.
                   logo_old.png (2011, tinta 204) e logo.jpg (blu #2260AB + rosso
                   #F15046) sono varianti storiche non referenziate da alcuna vista.
   eletti        : primary #0D6AEF - hover #0C5ED4 - dark #0753C2 - accent #2A23D9
   correzione    : #1E77F7 rende 4,17:1 con il bianco, sotto la soglia di 4,5:1.
                   Applicato par. 2.1.4: token scurito del 9% in luminosita HSL a tinta
                   e saturazione invariate, non testo schiarito. #1E77F7 resta
                   l'identita di riferimento ed e conservato nel file del logo.
   contrasti     : bianco su primary 4,86:1 - bianco su hover 5,89:1 -
                   bianco su dark 6,94:1 - bianco su accent 8,97:1 -
                   primary su bianco (link, .text-primary) 4,86:1 -
                   #333333 su primary-subtle 11,0:1
   ========================================================================= */

:root {
  /* ---- MARCHIO (dalla piattaforma legacy) ---- */
  --brand-primary:        #0D6AEF;
  --brand-primary-hover:  #0C5ED4;
  --brand-dark:           #0753C2;
  --brand-accent:         #2A23D9;
  --brand-primary-subtle: #E7F0FD;
  --brand-primary-subtle: color-mix(in srgb, var(--brand-primary) 10%, #ffffff);
  --brand-on-primary:     #ffffff;

  /* ---- SEMANTICI (fissi) ---- */
  --rg-success:        #17AE91;
  --rg-danger:         #F04242;
  --rg-danger-hover:   #EE2D2D;
  --rg-warning:        #FBCF00;
  --rg-info:           #276D94;
  --rg-info-hover:     #18435A;
  --rg-neutral-dark:   #18435A;
  --rg-secondary:      #D2D2D2;
  --rg-invalid-border: #DC3545;
  --rg-alert:          #E30D1D;

  /* ---- NEUTRI STRUTTURALI (fissi) ---- */
  --rg-app-bg:         #EFF1F3;
  --rg-surface:        #FFFFFF;
  --rg-surface-sunken: #F2F2F2;
  --rg-surface-hover:  #EAEAEA;
  --rg-row-hover:      #F9F9F9;
  --rg-border:         #DEE2E6;
  --rg-border-strong:  #B2B2B2;
  --rg-rule:           #CCCCCC;
  --rg-text:           #333333;
  --rg-text-strong:    #212529;
  --rg-text-black:     #000000;
  --rg-caption:        #6B7280;
  --rg-text-muted:     #AAAAAA;   /* valore legacy: solo usi non testuali */
  --rg-text-muted-2:   #888A8B;
  --rg-text-muted-3:   #95A3B0;
  --rg-track:          #D1D5DB;
  --rg-track-text:     #6B7280;

  /* ---- PULSANTI DI AZIONE (fissi) ---- */
  --rg-add:        #00EC82;  --rg-add-hover:      #00D977;
  --rg-del:        #F04242;  --rg-del-hover:      #EE2D2D;
  --rg-save:       #FFA52B;  --rg-save-hover:     #FB9100;
  --rg-download:   #FFD83B;  --rg-download-hover: #FFCD00;
  --rg-back:       #F2C800;  --rg-back-hover:     #DFB800;
  --rg-search:     #0496FF;  --rg-search-hover:   #0085E8;
  --rg-chat:       #30BEFB;  --rg-chat-hover:     #04AEF7;
  --rg-whatsapp:   #30D24E;  --rg-whatsapp-hover: #29BC43;

  /* ---- GEOMETRIA (fissa) ---- */
  --rg-radius-input:     12px;
  --rg-radius-card:      1rem;
  --rg-radius-pill:      2rem;
  --rg-radius-select2:   16px;
  --rg-radius-accordion: 16px;
  --rg-radius-modal:     45px;

  /* ---- LAYOUT (fisso) ---- */
  --sidebar-width:           280px;
  --sidebar-width-collapsed: 90px;
  --header-height:           55px;
  --slideover-width:         300px;

  /* ---- OMBRE (fisse) ---- */
  --rg-shadow-sm:        0 .125rem .25rem rgba(0,0,0,.075);
  --rg-shadow-md:        0 .25rem  .25rem rgba(0,0,0,.075);
  --rg-shadow-dashboard: 0 0 5px 1px rgba(0,0,0,.075);
  --rg-shadow-toggle:    0 2px 6px rgba(0,0,0,.15);

  /* ---- TIPOGRAFIA ---- */
  /* Proxima Nova e il carattere aziendale gia auto-ospitato in cer98/fonts/.
     Sostituisce DM Sans come font di corpo (par. 6.1) e vale anche come display: il
     marchio non ha un secondo carattere, ha un peso piu alto dello stesso.
     PRECONDIZIONE: style.css:1-48 dichiara oggi i sette pesi come sette FAMIGLIE
     distinte ('Proxima Nova Regular', 'Proxima Nova Bold', ...). Vanno ridichiarati
     come una sola famiglia "Proxima Nova" con sette font-weight, altrimenti
     font-weight non seleziona il file giusto e la scala di Parte 6 non funziona.
     Intervento in Fase 3b, par. 10.16 di SYSTEM-DECISIONS.md. */
  --rg-font-body:       "Proxima Nova", system-ui, -apple-system, "Segoe UI", sans-serif;
  --brand-font-display: var(--rg-font-body);
}

/* Override semantici di Bootstrap */
.text-bg-dark      { background: var(--rg-neutral-dark) !important; }
.text-bg-success   { background: var(--rg-success) !important; }
.text-bg-warning   { background: var(--rg-warning) !important; }
.text-bg-danger    { background: var(--rg-danger) !important; }
.text-bg-secondary { background: var(--rg-secondary) !important; color: #000 !important; }
.text-bg-primary   { background: var(--brand-primary) !important; color: var(--brand-on-primary) !important; }

.text-dark      { color: #000 !important; }
.text-success   { color: var(--rg-success) !important; }
.text-danger    { color: var(--rg-danger) !important; }
.text-warning   { color: var(--rg-warning) !important; }
.text-secondary { color: var(--rg-secondary) !important; }
.text-primary   { color: var(--brand-primary) !important; }

a { color: var(--rg-text); text-decoration: none; }

.btn-primary        { background: var(--brand-primary); border-color: var(--brand-primary); color: var(--brand-on-primary); }
.btn-primary:hover  { background: var(--brand-primary-hover); border-color: var(--brand-primary-hover); }

/* Rampa di stato generica */
.text-bg-flg-0 { color:#978D71; background:#EDECE6; }
.text-bg-flg-1 { color:#4978D8; background:#EDF5FF; }
.text-bg-flg-2 { color:#E68B52; background:#FFF7ED; }
.text-bg-flg-3 { color:#F34E5F; background:#FEE7E9; }
.text-bg-flg-4 { color:#9B7EBD; background:#EEE9F3; }
.text-bg-flg-9 { color:#13A56B; background:#BFF6C3; }

/* Rampa stato task */
.text-bg-flg-stt-tsk-0 { color:#978D71; background:#EDECE6; }
.text-bg-flg-stt-tsk-1 { color:#4978D8; background:#EDF5FF; }
.text-bg-flg-stt-tsk-2 { color:#F31D2F; background:#FAD5D5; }
.text-bg-flg-stt-tsk-9 { color:#13A56B; background:#BFF6C3; }

/* Rampa direzione / flusso */
.text-bg-flg-dir-tsk-0 { color:#4978D8; background:#EDF5FF; }
.text-bg-flg-dir-tsk-1 { color:#FAC502; background:#FFF9BD; }
.text-bg-flg-dir-tsk-2 { color:#978D71; background:#EDECE6; }

/* Rampa conferma booleana */
.text-bg-flg-ctf-eml-0 { color:#F31D2F; background:#FAD5D5; }
.text-bg-flg-ctf-eml-1 { color:#13A56B; background:#BFF6C3; }
