/* DG Ital Mec Show · Cruscotto espositori · v1 — acciaio brunito + giallo DG, planimetria come firma */
:root{
  --bg:#0C1117; --panno:#121A23; --panno2:#172230;
  --card:rgba(236,241,246,.035); --card2:rgba(236,241,246,.07);
  --linea:rgba(236,241,246,.1); --linea2:rgba(236,241,246,.2); --lineaSottile:rgba(236,241,246,.05);
  --velo:rgba(236,241,246,.05); --velino:rgba(236,241,246,.03);
  --ink:#EEF1F4; --mut:#93A0AE; --mut2:#5C6B7A;
  --giallo:#FFC400; --giallo2:#E0AB00; --su-giallo:#16202B; --giallo-testo:#FFD24A;
  --attivo:#22A77A; --avvio:#8B7DE8; --uscita:#CF7128; --gratuito:#3F8FD9; --neutro:#6B7785; --insoluto:#E35D5D;
  --attivo-velo:rgba(34,167,122,.14); --avvio-velo:rgba(139,125,232,.16); --uscita-velo:rgba(207,113,40,.16); --gratuito-velo:rgba(63,143,217,.16); --neutro-velo:rgba(107,119,133,.16); --insoluto-velo:rgba(227,93,93,.16); --giallo-velo:rgba(255,196,0,.14);
  --alone1:rgba(255,196,0,.07); --alone2:rgba(63,143,217,.06);
  --grana:.3; --r:18px; --ombra:0 24px 70px rgba(0,0,0,.55);
  --display:'Barlow Condensed','Sora',system-ui,sans-serif; --sans:'Sora',system-ui,sans-serif; --mono:'IBM Plex Mono',Consolas,monospace;
  --tipbg:rgba(14,20,27,.97);
}
html[data-tema="chiaro"]{
  --bg:#F3F1EC; --panno:#FFFFFF; --panno2:#F8F6F1;
  --card:rgba(255,255,255,.78); --card2:rgba(255,255,255,.98);
  --linea:rgba(22,32,43,.11); --linea2:rgba(22,32,43,.24); --lineaSottile:rgba(22,32,43,.07);
  --velo:rgba(22,32,43,.05); --velino:rgba(22,32,43,.03);
  --ink:#16202B; --mut:#5B6B7E; --mut2:#8B9AAC;
  --giallo:#FFC400; --giallo2:#E0AB00; --su-giallo:#16202B; --giallo-testo:#8F6800;
  --attivo:#118A60; --avvio:#6A58DE; --uscita:#C85A10; --gratuito:#1F6FC2; --neutro:#7A8794; --insoluto:#C83C3C;
  --attivo-velo:rgba(17,138,96,.12); --avvio-velo:rgba(106,88,222,.12); --uscita-velo:rgba(200,90,16,.13); --gratuito-velo:rgba(31,111,194,.12); --neutro-velo:rgba(122,135,148,.14); --insoluto-velo:rgba(200,60,60,.12); --giallo-velo:rgba(255,196,0,.22);
  --alone1:rgba(255,196,0,.14); --alone2:rgba(31,111,194,.06);
  --grana:.14; --ombra:0 20px 55px rgba(22,32,43,.16);
  --tipbg:rgba(255,255,255,.98);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--mut2) transparent}
body{background:radial-gradient(900px 560px at 92% -10%,var(--alone1),transparent 60%),radial-gradient(1000px 700px at -10% 110%,var(--alone2),transparent 55%),var(--bg);background-attachment:fixed;color:var(--ink);font-family:var(--sans);min-height:100vh;line-height:1.5;font-size:15px;transition:background .3s,color .3s}
body::after{content:'';position:fixed;inset:0;pointer-events:none;opacity:var(--grana);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E")}
[hidden]{display:none!important}
a{color:inherit}
button{font-family:inherit;cursor:pointer;color:inherit}
input,textarea,select{font-family:inherit;color:inherit}
h1,h2,h3{font-weight:700;letter-spacing:-.01em}
h3{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:.01em;text-transform:uppercase}
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.mono{font-family:var(--mono)}
.testo-mut{color:var(--mut)}
::selection{background:rgba(255,196,0,.35)}
::-webkit-scrollbar{height:9px;width:9px}
::-webkit-scrollbar-thumb{background:var(--linea2);border-radius:6px}
:focus-visible{outline:2px solid var(--giallo);outline-offset:2px;border-radius:6px}
.ico{width:18px;height:18px;flex:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* marchio DG: colori via CSS */
.dg-esagono{stroke:var(--ink)}
.dg-play{fill:var(--giallo);stroke:var(--giallo)}
.avallo{height:22px;opacity:.9}
.avallo-chiaro{display:none}
html[data-tema="chiaro"] .avallo-chiaro{display:inline-block}
html[data-tema="chiaro"] .avallo-scuro{display:none}

/* ---------- bottoni ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--giallo);color:var(--su-giallo);border:none;border-radius:12px;padding:13px 18px;font-size:14.5px;font-weight:700;transition:transform .15s,box-shadow .2s,filter .2s;box-shadow:0 10px 28px rgba(255,196,0,.22)}
.btn:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 14px 34px rgba(255,196,0,.32)}
.btn:disabled{opacity:.55;transform:none;cursor:wait}
.btn-piccolo{padding:9px 14px;font-size:13px;border-radius:10px;box-shadow:none}
.btn-secondario{background:var(--velo);border:1px solid var(--linea);color:var(--ink);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;transition:border-color .2s,background .2s}
.btn-secondario:hover{border-color:var(--linea2);background:var(--card2)}
.btn-testo{background:none;border:none;color:var(--mut);font-size:13px;padding:9px;text-decoration:underline;text-underline-offset:3px}
.btn-testo:hover{color:var(--ink)}
.btn-icona{display:inline-flex;align-items:center;gap:7px;background:var(--velo);border:1px solid var(--linea);border-radius:11px;padding:9px 11px;color:var(--mut);font-size:13px;font-weight:600;transition:all .2s}
.btn-icona:hover{color:var(--ink);border-color:var(--linea2)}
.btn-chat-apri{color:var(--giallo-testo);border-color:rgba(255,196,0,.35)}
.btn-chat-apri.attivo{background:var(--giallo-velo)}

/* ---------- ACCESSO ---------- */
.login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;overflow:auto}
.login-sfondo{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--lineaSottile) 1px,transparent 1px),linear-gradient(90deg,var(--lineaSottile) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(600px 500px at 50% 50%,#000 20%,transparent 80%)}
.login-card{position:relative;width:min(460px,100%);background:linear-gradient(165deg,var(--card2),var(--card));backdrop-filter:blur(22px);border:1px solid var(--linea);border-radius:26px;padding:40px 36px 28px;box-shadow:var(--ombra);animation:sali .7s cubic-bezier(.2,.8,.2,1)}
@keyframes sali{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.login-marchio{width:56px;height:56px;margin-bottom:18px;filter:drop-shadow(0 6px 24px rgba(255,196,0,.35))}
.login-marchio .dg-play{transform-box:fill-box;transform-origin:left center;animation:play .7s .2s cubic-bezier(.2,.8,.2,1) both}
@keyframes play{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.login-titolo{font-family:var(--display);font-weight:700;font-size:54px;line-height:.92;text-transform:uppercase;letter-spacing:.005em;margin:10px 0 10px}
.login-sotto{color:var(--mut);font-size:14px;margin-bottom:26px}
.login-step{display:flex;flex-direction:column;gap:10px}
.campo{display:flex;flex-direction:column;gap:6px}
.campo-nome{font-size:12px;color:var(--mut);font-weight:600}
.campo input,.campo select,.campo textarea{background:var(--velo);border:1px solid var(--linea);border-radius:12px;padding:13px 14px;color:var(--ink);font-size:15px;outline:none;transition:border .2s,box-shadow .2s;width:100%}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--giallo);box-shadow:0 0 0 3px rgba(255,196,0,.14)}
.input-codice{font-size:30px!important;text-align:center;letter-spacing:.45em}
.login-nota{color:var(--mut);font-size:13.5px}
.login-errore{color:var(--insoluto);font-size:13px;min-height:18px;text-align:center}
.login-pie{margin-top:26px;padding-top:18px;border-top:1px solid var(--linea);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.login-pie p{font-size:12px;color:var(--mut2)}

/* ---------- STRUTTURA ---------- */
.app{max-width:1380px;margin:0 auto;padding:0 clamp(14px,2.6vw,34px) 40px}
.testata{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 8px 12px;margin:0 -8px;background:linear-gradient(180deg,var(--bg) 70%,transparent);backdrop-filter:blur(12px)}
.testata-brand{display:flex;align-items:center;gap:12px}
.testata-marchio{width:40px;height:40px;filter:drop-shadow(0 4px 16px rgba(255,196,0,.3))}
.testata h2{font-family:var(--display);font-weight:700;font-size:24px;line-height:1;text-transform:uppercase;letter-spacing:.01em}
.cerca{flex:1;min-width:220px;max-width:520px;display:flex;align-items:center;gap:9px;background:var(--velo);border:1px solid var(--linea);border-radius:999px;padding:9px 14px;color:var(--mut);transition:border .2s}
.cerca:focus-within{border-color:var(--giallo)}
.cerca input{flex:1;background:none;border:none;outline:none;font-size:14px;color:var(--ink);min-width:0}
.testata-destra{display:flex;align-items:center;gap:8px;margin-left:auto}
.ultimo-agg{font-family:var(--mono);font-size:11px;color:var(--mut2)}
.utente{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--linea);border-radius:999px;padding:4px 12px 4px 4px;font-size:13px;font-weight:600;color:var(--ink)}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--giallo);color:var(--su-giallo);display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:600}
.utente-nome{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.menu{position:fixed;top:66px;right:clamp(14px,2.6vw,34px);z-index:60;background:var(--panno);border:1px solid var(--linea2);border-radius:14px;padding:10px;min-width:240px;box-shadow:var(--ombra);display:flex;flex-direction:column;gap:2px}
.menu-nome{font-weight:700;padding:6px 10px 0}
.menu-email{font-size:11.5px;color:var(--mut);padding:0 10px 8px;border-bottom:1px solid var(--linea);margin-bottom:6px}
.menu button{background:none;border:none;text-align:left;padding:9px 10px;border-radius:9px;font-size:13.5px;color:var(--ink)}
.menu button:hover{background:var(--velo)}

.schede{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--linea);margin:6px 0 22px;overflow-x:auto;scrollbar-width:none}
.schede::-webkit-scrollbar{display:none}
.scheda{position:relative;background:none;border:none;color:var(--mut);font-family:var(--display);font-size:19px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:12px 16px;white-space:nowrap;transition:color .2s}
.scheda::after{content:'';position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--giallo);transform:scaleX(0);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.scheda:hover,.scheda.attiva{color:var(--ink)}
.scheda.attiva::after{transform:scaleX(1)}
.schede-spazio{flex:1}
.vista{animation:appari .4s cubic-bezier(.2,.8,.2,1)}
@keyframes appari{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.intro-vista{margin:4px 0 18px;max-width:760px}
.intro-vista h3{font-size:30px;margin:2px 0 8px}
.intro-vista p.testo-mut{font-size:14px}

/* ---------- pannelli e KPI ---------- */
.pannello{background:var(--card);border:1px solid var(--linea);border-radius:var(--r);padding:20px;position:relative;animation:appari .5s cubic-bezier(.2,.8,.2,1) both}
.pannello-testa{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.kpi-tile{background:var(--card);border:1px solid var(--linea);border-radius:16px;padding:16px 18px 14px;position:relative;overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s,background .2s;animation:appari .5s both}
.kpi-tile:hover{transform:translateY(-2px);border-color:var(--linea2);background:var(--card2)}
.kpi-tile::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tinta,var(--giallo))}
.kpi-nome{font-size:12px;color:var(--mut);font-weight:600}
.kpi-valore{font-family:var(--display);font-weight:700;font-size:40px;line-height:1;margin:6px 0 4px;letter-spacing:-.01em}
.kpi-valore small{font-size:20px;color:var(--mut);font-weight:600;margin-left:3px}
.kpi-sotto{font-size:12px;color:var(--mut)}
.kpi-sotto b{color:var(--ink);font-weight:600}

/* ---------- PLANIMETRIA (firma) ---------- */
.planimetria-pannello{margin-bottom:18px;padding-bottom:14px}
.selettore{display:inline-flex;background:var(--velo);border:1px solid var(--linea);border-radius:999px;padding:4px;gap:2px;flex-wrap:wrap}
.selettore button{background:none;border:none;color:var(--mut);font-size:12.5px;font-weight:600;font-family:var(--mono);padding:7px 14px;border-radius:999px;transition:all .2s;white-space:nowrap}
.selettore button:hover{color:var(--ink)}
.selettore button.attivo{background:var(--giallo);color:var(--su-giallo)}
.legenda{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--mut);margin:0 0 14px}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda i{width:12px;height:12px;border-radius:3px;background:var(--c);display:inline-block}
.legenda i.tratteggio{background:repeating-linear-gradient(135deg,var(--c) 0 3px,transparent 3px 6px);border:1px solid var(--c)}
.legenda i.punto{width:9px;height:9px;border-radius:50%;background:var(--insoluto)}
.planimetria{display:flex;flex-direction:column;gap:16px;background-image:linear-gradient(var(--lineaSottile) 1px,transparent 1px),linear-gradient(90deg,var(--lineaSottile) 1px,transparent 1px);background-size:24px 24px;border:1px solid var(--linea);border-radius:14px;padding:14px}
.padiglione{border:1px solid var(--linea2);border-radius:10px;background:var(--panno);overflow:hidden;animation:appari .45s both}
.padiglione-insegna{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:8px 12px;background:var(--velo);border-bottom:1px solid var(--linea)}
.padiglione-insegna .lettera{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.02em;text-transform:uppercase;background:var(--tinta,var(--giallo));color:#16202B;padding:0 8px;border-radius:5px;line-height:1.35}
.padiglione-insegna .nome{font-family:var(--display);font-weight:600;font-size:20px;text-transform:uppercase;letter-spacing:.02em}
.padiglione-insegna .conta{font-family:var(--mono);font-size:12px;color:var(--mut);margin-left:auto}
.stand-griglia{display:flex;flex-wrap:wrap;gap:6px;padding:10px}
.stand{position:relative;height:78px;border:1px solid var(--linea2);border-radius:6px;background:var(--panno2);padding:7px 8px 6px 10px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s;animation:standIn .5s cubic-bezier(.2,.8,.2,1) both;text-align:left;font:inherit;color:inherit}
@keyframes standIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.stand::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tinta)}
.stand.largo{width:158px}.stand.medio{width:132px}.stand.stretto{width:104px}
.stand:hover{transform:translateY(-2px);border-color:var(--tinta);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.stand.evidenziato{border-color:var(--giallo);box-shadow:0 0 0 2px var(--giallo-velo),0 10px 24px rgba(0,0,0,.25)}
.stand.in_uscita{background-image:repeating-linear-gradient(135deg,transparent 0 6px,var(--uscita-velo) 6px 8px)}
.stand.uscito{opacity:.62}
.stand .numero{font-family:var(--mono);font-size:10px;color:var(--mut2);display:flex;justify-content:space-between;align-items:center}
.stand .nome{font-family:var(--display);font-weight:600;font-size:15px;line-height:1.02;max-height:2.08em;text-transform:uppercase;letter-spacing:.01em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.stand .piede{display:flex;align-items:center;justify-content:space-between;gap:6px;font-family:var(--mono);font-size:10px;color:var(--mut);white-space:nowrap;overflow:hidden;flex:none}
.stand .piede span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.stand .piede b{font-weight:600;color:var(--ink)}
.stand .insoluto{width:8px;height:8px;border-radius:50%;background:var(--insoluto);box-shadow:0 0 0 3px var(--insoluto-velo);flex:none}
.stand .bollo{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--velo);color:var(--mut)}
.nota-plan{font-size:12px;color:var(--mut2);margin-top:10px}

/* ---------- grafici ---------- */
.griglia-grafici{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.grafico .grafico-corpo{min-height:220px}
.grafico svg{width:100%;height:auto;display:block;overflow:visible}
.asse{font-family:var(--mono);font-size:10.5px;fill:var(--mut);}
.griglia-linea{stroke:var(--linea);stroke-width:1}
.barra{transition:opacity .15s}
.barra.spenta{opacity:.35}
.etichetta-valore{font-family:var(--mono);font-size:11px;fill:var(--ink);font-weight:600}
.legenda-grafico{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--mut);margin-top:8px}
.legenda-grafico span{display:inline-flex;align-items:center;gap:6px}
.legenda-grafico i{width:10px;height:10px;border-radius:3px;background:var(--c)}

/* ---------- filtri ---------- */
.filtri{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.filtri .gruppo{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center;padding:4px;background:var(--velo);border:1px solid var(--linea);border-radius:999px}
.filtri .gruppo-nome{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut2);padding:0 6px 0 10px}
.chip{background:none;border:none;border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--mut);transition:all .15s;display:inline-flex;align-items:center;gap:6px}
.chip:hover{color:var(--ink)}
.chip.attivo{background:var(--giallo);color:var(--su-giallo)}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--c,var(--mut))}
.chip.attivo i{background:var(--su-giallo)}
.filtri select{background:var(--velo);border:1px solid var(--linea);border-radius:999px;padding:7px 12px;font-size:12.5px;color:var(--ink);outline:none}
.filtri .conta-filtri{font-family:var(--mono);font-size:12px;color:var(--mut);margin-left:auto}

/* ---------- tabella ---------- */
.tabella-pannello{padding:0;overflow:hidden}
.tabella-scroll{overflow:auto;max-height:70vh}
.tabella{width:100%;border-collapse:collapse;font-size:13.5px}
.tabella th{position:sticky;top:0;background:var(--panno);text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);padding:12px 12px;border-bottom:1px solid var(--linea2);cursor:pointer;white-space:nowrap;user-select:none;z-index:2}
.tabella th:hover{color:var(--ink)}
.tabella th.ord-asc::after{content:' ↑'}.tabella th.ord-desc::after{content:' ↓'}
.tabella td{padding:10px 12px;border-bottom:1px solid var(--lineaSottile);vertical-align:middle;white-space:nowrap}
.tabella tr{cursor:pointer;transition:background .15s}
.tabella tbody tr:hover{background:var(--velo)}
.tabella .num{text-align:right;font-family:var(--mono)}
.tabella td.azienda{font-weight:600;white-space:normal;min-width:180px}
.tabella td.azienda small{display:block;font-weight:400;color:var(--mut);font-size:11.5px}
.tabella-pie{padding:10px 14px;font-family:var(--mono);font-size:11.5px;color:var(--mut2);border-top:1px solid var(--linea)}
.bollino{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--v);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 35%,transparent);white-space:nowrap}
.bollino::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--c)}
.firma{font-size:12px;color:var(--mut)}
.firma b{color:var(--ink);font-weight:600}

/* ---------- scadenze ---------- */
.mesi{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.mese{background:var(--card);border:1px solid var(--linea);border-radius:16px;padding:14px 16px;animation:appari .4s both}
.mese.vicino{border-color:rgba(255,196,0,.5);background:linear-gradient(165deg,var(--giallo-velo),var(--card))}
.mese-testa{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.mese-testa h4{font-family:var(--display);font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.mese-testa span{font-family:var(--mono);font-size:12px;color:var(--mut)}
.mese-vuoto{color:var(--mut2);font-size:13px}
.riga-stand{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--lineaSottile);cursor:pointer;border-radius:6px}
.riga-stand:hover{background:var(--velo)}
.riga-stand .punto{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none;margin-left:2px}
.riga-stand .nome{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.riga-stand .dettaglio{font-family:var(--mono);font-size:11px;color:var(--mut);white-space:nowrap}
.riga-stand .euro{font-family:var(--mono);font-size:12.5px;font-weight:600}
.lista-stand{display:flex;flex-direction:column}
.griglia-due{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}

/* ---------- storico ---------- */
.storico{display:flex;flex-direction:column}
.voce-storico{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:12px 4px;border-bottom:1px solid var(--lineaSottile);align-items:start;font-size:13.5px}
.voce-storico:hover{background:var(--velo)}
.voce-storico .quando{font-family:var(--mono);font-size:11.5px;color:var(--mut);line-height:1.4}
.voce-storico .quando b{display:block;color:var(--ink);font-weight:600;font-family:var(--sans);font-size:13px}
.voce-storico .cosa{min-width:0}
.voce-storico .cosa .az{font-weight:700;cursor:pointer}
.voce-storico .cosa .az:hover{text-decoration:underline}
.voce-storico .campo-nome{font-family:var(--mono);font-size:11px;color:var(--giallo-testo);margin-left:6px}
.voce-storico .diff{color:var(--mut);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
.voce-storico .diff del{color:var(--insoluto);text-decoration:line-through;opacity:.8}
.voce-storico .diff ins{color:var(--attivo);text-decoration:none;font-weight:600}
.voce-storico .origine{display:inline-block;font-size:10px;padding:1px 6px;border-radius:4px;background:var(--velo);color:var(--mut);margin-left:6px;font-family:var(--mono)}
@media(max-width:600px){.voce-storico{grid-template-columns:1fr}}

/* ---------- cassetto ---------- */
.velo{position:fixed;inset:0;background:rgba(5,9,14,.55);backdrop-filter:blur(3px);z-index:70;animation:fade .25s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.cassetto{position:fixed;top:0;right:0;bottom:0;width:min(620px,100%);background:var(--panno);border-left:1px solid var(--linea2);z-index:80;display:flex;flex-direction:column;box-shadow:var(--ombra);animation:scorri .32s cubic-bezier(.2,.8,.2,1)}
@keyframes scorri{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.cassetto-testa{display:flex;justify-content:space-between;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--linea);background:linear-gradient(180deg,var(--velino),transparent)}
.cassetto-titoli h2{font-family:var(--display);font-weight:700;font-size:30px;line-height:1;text-transform:uppercase;margin:4px 0 8px}
.cassetto-azioni-rapide{display:flex;flex-wrap:wrap;gap:6px}
.cassetto-azioni-rapide a,.cassetto-azioni-rapide span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--mut);text-decoration:none;border:1px solid var(--linea);border-radius:999px;padding:4px 10px;transition:all .15s}
.cassetto-azioni-rapide a:hover{color:var(--ink);border-color:var(--giallo)}
.cassetto-azioni-rapide .ico{width:14px;height:14px}
.cassetto-bottoni{display:flex;gap:8px;align-items:flex-start;flex:none}
.cassetto-corpo{flex:1;overflow:auto;padding:16px 22px 30px}
.cassetto-pie{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--linea);background:var(--panno)}
.sezione{margin-bottom:18px}
.sezione h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--linea)}
.griglia-campi{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 14px}
.griglia-campi .intera{grid-column:1/-1}
.dato{display:flex;flex-direction:column;gap:2px;min-width:0}
.dato .k{font-size:11px;color:var(--mut)}
.dato .v{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.dato .v.mono{font-size:13px}
.dato .v.vuoto{color:var(--mut2);font-weight:400}
.dato .v.lungo{font-weight:400;font-size:13.5px;white-space:pre-wrap;line-height:1.5}
.dato input,.dato select,.dato textarea{background:var(--velo);border:1px solid var(--linea);border-radius:9px;padding:8px 10px;font-size:13.5px;outline:none;width:100%}
.dato input:focus,.dato select:focus,.dato textarea:focus{border-color:var(--giallo)}
.dato textarea{min-height:76px;resize:vertical}
.dato .modificato{border-color:var(--giallo)!important;background:var(--giallo-velo)}
.cassetto .firma-ultima{font-size:12.5px;color:var(--mut);margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cassetto .storico-stand .voce-storico{grid-template-columns:120px 1fr;font-size:13px}
.btn-pericolo{background:none;border:1px solid rgba(227,93,93,.4);color:var(--insoluto);border-radius:10px;padding:9px 14px;font-size:13px;font-weight:600}
.btn-pericolo:hover{background:var(--insoluto-velo)}
.cassetto-vuoto{color:var(--mut2);font-size:13px;padding:8px 0}

/* ---------- chat ---------- */
.chat{position:fixed;right:clamp(10px,2vw,24px);bottom:clamp(10px,2vw,24px);width:min(440px,calc(100% - 20px));height:min(680px,calc(100vh - 40px));background:var(--panno);border:1px solid var(--linea2);border-radius:20px;z-index:65;display:flex;flex-direction:column;box-shadow:var(--ombra);animation:sali .35s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.chat-testa{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--linea);background:linear-gradient(180deg,var(--giallo-velo),transparent)}
.chat-testa h3{font-size:19px}
.chat-messaggi{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:92%;padding:10px 13px;border-radius:14px;font-size:13.5px;line-height:1.5;animation:appari .3s}
.msg.utente{align-self:flex-end;background:var(--giallo);color:var(--su-giallo);border-bottom-right-radius:4px;white-space:pre-wrap}
.msg.assistente{align-self:flex-start;background:var(--velo);border:1px solid var(--linea);border-bottom-left-radius:4px}
.msg.sistema{align-self:center;background:none;color:var(--mut);font-size:12px;font-family:var(--mono);text-align:center}
.msg.attesa{color:var(--mut)}
.msg.attesa i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mut);margin-right:4px;animation:pulsa 1s infinite}
.msg.attesa i:nth-child(2){animation-delay:.2s}.msg.attesa i:nth-child(3){animation-delay:.4s}
@keyframes pulsa{0%,100%{opacity:.3}50%{opacity:1}}
.msg p+p{margin-top:6px}
.suggerimenti{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.suggerimenti button{background:var(--card2);border:1px solid var(--linea);border-radius:999px;padding:5px 11px;font-size:12px;color:var(--ink)}
.suggerimenti button:hover{border-color:var(--giallo)}
.proposte{margin-top:10px;border-top:1px solid var(--linea);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.proposta{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:7px 8px;border-radius:9px;background:var(--card2);border:1px solid var(--linea)}
.proposta input{margin-top:3px;accent-color:var(--giallo)}
.proposta .az{font-weight:700}
.proposta .campo-nome{font-family:var(--mono);font-size:11px;color:var(--giallo-testo)}
.proposta .diff{color:var(--mut)}
.proposta .diff ins{color:var(--attivo);text-decoration:none;font-weight:600}
.proposta .motivo{color:var(--mut2);font-size:11.5px}
.proposte-azioni{display:flex;gap:8px;margin-top:6px}
.proposte-azioni .btn{padding:8px 14px;font-size:13px;box-shadow:none}
.proposte-azioni .btn-secondario{padding:8px 12px;font-size:13px}
.chat-form{display:flex;gap:8px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--linea);background:var(--panno)}
.chat-form textarea{flex:1;background:var(--velo);border:1px solid var(--linea);border-radius:14px;padding:11px 13px;font-size:14px;resize:none;outline:none;max-height:140px;line-height:1.4}
.chat-form textarea:focus{border-color:var(--giallo)}
.btn-invia{background:var(--giallo);color:var(--su-giallo);border-color:transparent;padding:11px}
.btn-invia:hover{color:var(--su-giallo)}

/* ---------- tooltip, toast, piè ---------- */
.tooltip{position:fixed;z-index:90;pointer-events:none;background:var(--tipbg);border:1px solid var(--linea2);border-radius:12px;padding:10px 12px;font-size:12.5px;max-width:300px;box-shadow:var(--ombra);line-height:1.45}
.tooltip b{display:block;font-family:var(--display);font-size:16px;text-transform:uppercase;font-weight:600}
.tooltip .riga{display:flex;justify-content:space-between;gap:12px;color:var(--mut)}
.tooltip .riga span:last-child{color:var(--ink);font-family:var(--mono);font-size:12px}
.tooltip ul{margin:4px 0 0 14px;color:var(--mut)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:100;background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:999px;font-size:13.5px;font-weight:600;box-shadow:var(--ombra);animation:sali .3s;max-width:92%;text-align:center}
.toast.errore{background:var(--insoluto);color:#fff}
.pie{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:36px;padding-top:16px;border-top:1px solid var(--linea);font-size:11.5px;color:var(--mut2)}
.pie a{color:var(--mut)}
.vuoto{color:var(--mut2);font-size:13.5px;padding:14px 4px}

@media(max-width:760px){
  .testata{gap:10px}
  .testata h2{font-size:20px}
  .cerca{order:3;max-width:none;flex-basis:100%}
  .btn-chat-apri span,.utente-nome,.ultimo-agg{display:none}
  .stand.largo{width:136px}.stand.medio{width:118px}.stand.stretto{width:96px}
  .cassetto{width:100%}
  .chat{right:0;bottom:0;width:100%;height:min(88vh,720px);border-radius:20px 20px 0 0}
  .kpi-valore{font-size:32px}
}
