/* 0.5.170 — TOKEN GENERATI da web/style.css 0.5.170.

   ⭐ IL NUMERO QUI SOPRA NON E' DI QUESTO FILE: e' quello della sua FONTE, e ci sta
   perche' dal 03/09/2026 la console serve `tokens.css?v=0.5.170`. Un file generato non ha
   una storia sua da raccontare — ce l'ha `style.css`, e questo ne e' l'estratto. Cosi' il
   giorno che la fonte cambia, il numero cambia insieme al contenuto e il browser di chi
   guarda se ne accorge; scriverne uno inventato sarebbe peggio di non scriverne nessuno,
   perche' farebbe credere che qualcuno lo sorvegli.
   Chi bumpa `style.css` rigenera questo file: `python3 tools/v1/genera_tokens.py`.

   ⛔ FILE GENERATO — non si modifica a mano.
   Lo scrive `tools/v1/genera_tokens.py` leggendo `web/style.css`, che è la FONTE UNICA
   dei token di FlowSet. Una modifica fatta qui sopravvive fino alla prossima rigenerazione
   e nel frattempo fa mentire il sito: il gestionale mostrerebbe un valore e la console un
   altro. Si cambia `web/style.css` e si rigenera.
   Guardia: `python3 tools/v1/z78_tokens.py` (fallisce se questo file è vecchio).

   Chi lo carica: la console dei fondatori (`console_web/`), che gira su un'ALTRA origine e
   non può fare `<link>` al foglio del gestionale senza riattaccare i due programmi. Qui
   viaggiano solo VALORI: nessuna classe, nessun componente, nessuna regola di layout.
   Il tema è `istituzionale` — l'unico in servizio (odg.js:107-108). */

/* ── font: gli STESSI file .woff2 del gestionale, serviti da /fonts/ ── */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/inter-400.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/inter-500.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/inter-600.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/inter-700.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:800;font-display:swap;src:url("fonts/inter-800.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/jetbrains-mono-400.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/jetbrains-mono-600.woff2") format("woff2")}
@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/dm-serif-display-400.woff2") format("woff2")}
@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/dm-serif-display-400-italic.woff2") format("woff2")}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("fonts/plus-jakarta-sans.woff2") format("woff2")}

/* ── :root ── */
:root{
  /* ── accento unico (iris/indaco del render v0.3) ── */
  --accent:#5b6bef; --accent-deep:#4453d6; --accent-rgb:91,107,239;
  --accent-mute:rgba(91,107,239,.10);
  --accent-soft:rgba(91,107,239,.12); --accent-bord:rgba(91,107,239,.30);
  --accent-tag:#eaecfe;                /* tag iris su fondo chiaro (render) */
  --terra:#c0563f;                     /* numero-zona standard del render */
  /* alias retro-compatibili (alcune inline-style usano ancora --orange*) */
  --orange:var(--accent); --orange-deep:var(--accent-deep); --orange-mute:var(--accent-mute); --orange-bord:var(--accent-bord);

  /* ── FONT TOKENS — un solo punto di swap-font per tema (default Inter, zero regressione sugli altri temi) ── */
  --ff-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,system-ui,'Helvetica Neue',Arial,sans-serif;
  --ff-display:var(--ff-sans);
  --ff-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* ── superfici neutre, grigio-bianco freddo (token render v0.3) ── */
  --bg:#eef0f4; --surface:#FFFFFF; --s1:#FFFFFF; --s2:#f7f8fa; --s3:#f1f3f7;
  --s4:#e3e7ee;                        /* fill barrette / segnaposto del render */
  --ink:#3a4150;                       /* badge #ID + toast (ink del render) */
  --t1:#3a4150; --t2:#7a8394; --t3:#9aa3b2;
  --border:#d6dbe4; --border2:#c2c9d6; --border-soft:#eceff4;

  /* ── glass ── */
  --glass-bg:rgba(255,255,255,.72); --glass-brd:rgba(255,255,255,.55);

  /* ── legenda colori semantica (identica in OGNI tab) ──
     Verde=OK · Ambra=da completare · Rosso=attenzione/hard-out · Blu=info/noleggio
     Viola=Costumi · Oro=Giorno · Indaco=Notte · Rosa=Alba/Tramonto

     Z8 (29/07/2026): le quattro tinte semantiche sono state SCURITE del minimo indispensabile
     — dal 2% all'8%, uno scarto che accanto all'originale non si distingue — perché da oggi
     fanno da FONDO PIENO sotto una scritta bianca, e col vecchio valore il testo bianco non
     arrivava alla soglia di leggibilità (4,5:1): verde 4,15 · ambra 3,96 · rosso 4,39 ·
     viola 4,35. Ora: 4,53 · 4,54 · 4,50 · 4,50. Il blu era già a 4,51 e resta com'era.
     Nessuno dei 9 temi rimappa questi token (verificato: compaiono solo qui, nel :root base),
     quindi la correzione vale in tutti. Gli usi come TESTO su fondo chiaro non peggiorano,
     migliorano: 4,15→4,53, 3,96→4,54, 4,39→4,50, 4,35→4,50.
     Oro/Indaco/Rosa NON si toccano: lì il difetto non è la tinta ma il testo — vedi .dn nel
     blocco Z8 in coda. Le varianti -bg seguono la tinta nuova, stessa alpha di prima. */
  --c-ok:#1C8753;   --c-ok-bg:rgba(28,135,83,.12);
  --c-warn:#A36A12; --c-warn-bg:rgba(163,106,18,.14);
  --c-crit:#CE4A3C; --c-crit-bg:rgba(206,74,60,.12);
  --c-info:#2A7DB0; --c-info-bg:rgba(42,125,176,.12);
  --c-cost:#7A5AFA; --c-cost-bg:rgba(122,90,250,.12);
  --c-day:#E0A21B;  --c-night:#4B57C4; --c-dawn:#E6779E; --c-golden:#E2683C;

  /* ── raggi & ombre soft ── */
  --r-sm:12px; --r:16px; --r-lg:22px; --r-pill:999px; --r-row:10px;
  --sh-1:0 1px 2px rgba(17,24,39,.04), 0 1px 3px rgba(17,24,39,.05);
  --sh-2:0 2px 8px rgba(17,24,39,.05), 0 8px 24px rgba(17,24,39,.06);
  --sh-3:0 4px 14px rgba(17,24,39,.07), 0 20px 48px rgba(17,24,39,.10);
  --sh-pop:0 18px 56px rgba(17,24,39,.20);
  --ring:0 0 0 4px rgba(91,107,239,.16);
  /* glow neon iris dei riquadri (richiesta Emanuele: come «Presenze del giorno», su tutto il sito) */
  --glow:0 0 0 4px var(--accent-mute);
  /* z-index UNICO per OGNI menù a tendina/popover → sempre in primo piano, mai sotto le card (Emanuele) */
  --z-pop:9000;

  /* ── scala SPAZIATURA fluida (clamp) — respiro per REGOLA, non a gradini.
     MAX = valore desktop attuale (zero regressione) · MIN = mobile più compatto.
     Da ~360 a ~1280px scala dolce. Collaudo: banco di stress. [[flowset--banco-di-stress-responsive]] */
  --sp-1:clamp(6px,1.2vw,9px);
  --sp-2:clamp(8px,1.6vw,12px);
  --sp-3:clamp(10px,2vw,14px);
  --sp-4:clamp(12px,2.6vw,18px);
  --sp-5:clamp(14px,3vw,22px);
  --sp-6:clamp(15px,3.4vw,24px);
  /* ── scala TIPOGRAFICA fluida — gli INPUT restano ≥16px a parte (no zoom iOS) ── */
  --fs-xs:clamp(10px,2.4vw,11px);
  --fs-sm:clamp(11.5px,2.8vw,12.5px);
  --fs-base:clamp(12.5px,3.2vw,14px);
  --fs-md:clamp(14px,3.6vw,16px);
  --fs-lg:clamp(15px,4vw,19px);
  --fs-xl:clamp(19px,4.6vw,25px);

  /* ── motion tokens v0.3 — il "respiro" UNICO del sito (durate + curve condivise).
     Ogni elemento nuovo pesca da qui: animazioni allineate per costruzione. ── */
  --dur-fast:.16s; --dur-base:.3s; --dur-slow:.5s;
  --ease-out:cubic-bezier(.2,.8,.2,1); --ease-spring:cubic-bezier(.175,.885,.32,1.275);
  /* ── segnalibro / foto master (oro = token semantico --c-day) ── */
  --bm-gold:var(--c-day); --bm-idle:rgba(255,255,255,.82); --bm-size:18px;   /* segnalibro proporzionato e UNICO sitewide (Emanuele) */
}

/* ── :root[data-theme="istituzionale"] ── */
:root[data-theme="istituzionale"]{
  /* font: serif display + Jakarta corpo (mono invariato) */
  --ff-sans:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,system-ui,sans-serif;
  --ff-display:'DM Serif Display',Georgia,'Times New Roman',serif;
  /* accento MONOCROMO nero #111111 — chrome nero, niente colore */
  --accent:#111111; --accent-deep:#000000; --accent-rgb:17,17,17;
  --accent-mute:rgba(17,17,17,.06); --accent-soft:rgba(17,17,17,.08); --accent-bord:rgba(17,17,17,.18); --accent-tag:#ececec;
  --terra:#7a1f17;                     /* numeri-zona sobri, non sgargianti */
  /* superfici: bg grigio-bianco freddo del render, schede BIANCO PURO */
  --bg:#F5F7FA; --surface:#FFFFFF; --s1:#FFFFFF; --s2:#F5F7FA; --s3:#EEF1F5; --s4:#E3E8EF;
  --ink:#111111; --t1:#111111; --t2:#555555; --t3:#8A9099;
  --border:#E4E8EE; --border2:#D4DAE2; --border-soft:#EEF1F5;
  /* niente vetro: superfici OPACHE */
  --glass-bg:#FFFFFF; --glass-brd:#E4E8EE;
  /* niente neon */
  --glow:0 0 0 0 transparent;
  /* angoli eleganti (render ~12-14px) */
  --r-sm:10px; --r:14px; --r-lg:16px; --r-row:10px; --r-pill:999px;
  /* ombre minime, pulite */
  --sh-1:0 1px 2px rgba(16,24,40,.04);
  --sh-2:0 1px 3px rgba(16,24,40,.06);
  --sh-3:0 4px 12px rgba(16,24,40,.07);
  --sh-pop:0 12px 40px rgba(16,24,40,.14);
  --ring:0 0 0 3px rgba(17,17,17,.12);
}
