:root{
  --bg:#f3f5f9; --panel:#ffffff; --side:#f8f9fc; --fg:#1e2633; --muted:#626e80; --line:#e2e6ee;
  --accent:#3b6ea8; --accent-fg:#ffffff; --accent-soft:#e6eef8; --hover:#eef1f7;
  --red:#c0392b; --amber:#c27c0e; --teal:#1f8a7a;
  --ombra:0 1px 2px rgba(30,38,51,.06), 0 2px 8px rgba(30,38,51,.05);
  --font:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
  /* Interfaccia piu' compatta (Simone 11/11/2026 21:55: "tutto troppo
     grande"), colonne piu' piccole di base ma sempre regolabili (maniglie). */
  --wsx:280px;
  /* Dimensione testo/interfaccia regolabile e ricordata per utente (vedi zoom.js). */
  --zoom:1;
}
body{zoom:var(--zoom)}
:root[data-tema="scuro"]{
  --bg:#161b26; --panel:#1f2532; --side:#1b212c; --fg:#e8ecf3; --muted:#9ba6b8; --line:#2c3445;
  --accent:#8ab4f8; --accent-fg:#10213d; --accent-soft:#25344f; --hover:#252c3a;
  --red:#f28b82; --amber:#f6bf5b; --teal:#6fd3c0; --ombra:none;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15.5px;line-height:1.4;display:flex;flex-direction:column}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
header{display:flex;align-items:center;gap:10px;padding:7px 16px;background:var(--panel);border-bottom:1px solid var(--line)}
header h1{font-size:17px;margin:0;letter-spacing:.01em}
header .nota{font-size:12.5px;color:var(--muted)}
header .dx{margin-left:auto;display:flex;gap:8px;align-items:center}
.pulsante{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 11px;font-size:14px}
.pulsante:hover{background:var(--hover)}
.pulsante:disabled{opacity:.5;cursor:not-allowed}
.interruttore{display:flex;align-items:center;gap:6px;font-size:13.5px}
.interruttore input{width:16px;height:16px}
.sottotitolo{color:var(--muted);font-size:13.5px;margin:0 0 12px;max-width:70ch}

/* Dimensione testo (zoom), ricordata per utente: vedi zoom.js */
.zoom-controllo{display:flex;align-items:center;gap:4px}
.zoom-controllo .pulsante{padding:4px 9px;font-size:13px;font-weight:700}
.zoom-valore{font-size:12.5px;color:var(--muted);min-width:34px;text-align:center}

/* banner invito */
.invito-banner{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--amber);color:#1e1a0e;font-weight:700}
.invito-banner[hidden]{display:none}
:root[data-tema="scuro"] .invito-banner{color:#2a2208}
.invito-banner .pulsante{background:#fff;border-color:transparent}

/* Stanze = cartelline in alto (Simone 13/11/2026 11:44), al posto
   dell'albero a sinistra: una fila di linguette che va a capo se non ci
   stanno tutte. */
.cartelline{display:flex;flex-wrap:wrap;gap:3px;padding:6px 14px 0;background:var(--panel);border-bottom:1px solid var(--line)}
.cartella{background:var(--c-bordo,var(--side));border:1px solid var(--c-bordo,var(--line));border-bottom:none;border-radius:10px 10px 0 0;padding:7px 14px;font-size:14px;color:var(--c-testo,var(--muted))}
.cartella:hover{background:var(--c-sopra,var(--hover))}
.cartella.on{background:var(--bg);color:var(--c-testo,var(--fg));font-weight:700;box-shadow:inset 0 3px 0 var(--c-forte,var(--accent))}

/* Colore pastello tenue per stanza (Simone 13/11/2026 11:48): sfondo della
   linguetta + bordo della pagina della stanza aperta. Mai il rosa (tolto da
   Posta il 29/09/2026 in uff_1.0: palette approvata, vedi quel progetto
   lib/stanze/cruscotti.ts, commit 181c63a/0a3d5fe/ec4acfb). Le stanze senza
   corrispondenza in uff_1.0 (Redazione, Registro, Da smistare, Attivita' di
   EVA, Memoria) hanno un colore nuovo, scelto per non assomigliare ai vicini. */
.cartella[data-id="posta"],.pagina[data-stanza="posta"]{--c-forte:#E8D27C;--c-bordo:#F5EDCB;--c-testo:#6B5412;--c-sopra:#FBF6E1}
.cartella[data-id="messaggi"],.pagina[data-stanza="messaggi"]{--c-forte:#93B3E8;--c-bordo:#DCE6F8;--c-testo:#264A86;--c-sopra:#EBF1FC}
.cartella[data-id="contenziosi"],.pagina[data-stanza="contenziosi"]{--c-forte:#7FC6B9;--c-bordo:#D8EEE9;--c-testo:#1F5F56;--c-sopra:#E9F6F3}
.cartella[data-id="clienti-consulenza"],.pagina[data-stanza="clienti-consulenza"]{--c-forte:#B7A3EA;--c-bordo:#E7DFFA;--c-testo:#4B3486;--c-sopra:#F1ECFD}
.cartella[data-id="clienti-energia"],.pagina[data-stanza="clienti-energia"]{--c-forte:#F0BA84;--c-bordo:#F7E6D2;--c-testo:#7A4413;--c-sopra:#FDF2E5}
.cartella[data-id="clienti-cer"],.pagina[data-stanza="clienti-cer"]{--c-forte:#95CFA2;--c-bordo:#DAEFDF;--c-testo:#25613A;--c-sopra:#EAF6EC}
.cartella[data-id="contabilita"],.pagina[data-stanza="contabilita"]{--c-forte:#B1BBC8;--c-bordo:#E1E5EB;--c-testo:#36404E;--c-sopra:#EEF1F5}
.cartella[data-id="analisi-statistica"],.pagina[data-stanza="analisi-statistica"]{--c-forte:#8BCBDB;--c-bordo:#D7EDF3;--c-testo:#1B5767;--c-sopra:#E7F5F9}
.cartella[data-id="analisi"],.pagina[data-stanza="analisi"]{--c-forte:#B9C7DB;--c-bordo:#DFE6F0;--c-testo:#2F4361;--c-sopra:#EEF2F8} /* 13/11: niente toni rosa/malva (Simone) */
.cartella[data-id="redazione"],.pagina[data-stanza="redazione"]{--c-forte:#BFD885;--c-bordo:#EAF2D6;--c-testo:#4A5E1A;--c-sopra:#F3F8E8}
.cartella[data-id="registro"],.pagina[data-stanza="registro"]{--c-forte:#AFC2C2;--c-bordo:#E2EBEB;--c-testo:#37504F;--c-sopra:#EDF3F3}
.cartella[data-id="da-smistare"],.pagina[data-stanza="da-smistare"]{--c-forte:#CBB89A;--c-bordo:#F0E8DB;--c-testo:#5C4A2E;--c-sopra:#F7F2EA}
.cartella[data-id="attivita-eva"],.pagina[data-stanza="attivita-eva"]{--c-forte:#A8DD9C;--c-bordo:#E3F3DC;--c-testo:#255C1C;--c-sopra:#EFF8EA}
.cartella[data-id="memoria"],.pagina[data-stanza="memoria"]{--c-forte:#A8B0EE;--c-bordo:#E3E6FB;--c-testo:#2E3A7A;--c-sopra:#EEF0FC}

:root[data-tema="scuro"] .cartella[data-id="posta"],:root[data-tema="scuro"] .pagina[data-stanza="posta"]{--c-forte:#524410;--c-bordo:#4A4028;--c-testo:#F0DFA0;--c-sopra:#201C14}
:root[data-tema="scuro"] .cartella[data-id="messaggi"],:root[data-tema="scuro"] .pagina[data-stanza="messaggi"]{--c-forte:#1E3460;--c-bordo:#25334A;--c-testo:#B5CFF5;--c-sopra:#161F30}
:root[data-tema="scuro"] .cartella[data-id="contenziosi"],:root[data-tema="scuro"] .pagina[data-stanza="contenziosi"]{--c-forte:#1E4F47;--c-bordo:#243D38;--c-testo:#A5DDD2;--c-sopra:#162925}
:root[data-tema="scuro"] .cartella[data-id="clienti-consulenza"],:root[data-tema="scuro"] .pagina[data-stanza="clienti-consulenza"]{--c-forte:#2E2455;--c-bordo:#332B50;--c-testo:#D4C6F5;--c-sopra:#1C1830}
:root[data-tema="scuro"] .cartella[data-id="clienti-energia"],:root[data-tema="scuro"] .pagina[data-stanza="clienti-energia"]{--c-forte:#5A3D18;--c-bordo:#4A3A28;--c-testo:#F5D5A8;--c-sopra:#221C15}
:root[data-tema="scuro"] .cartella[data-id="clienti-cer"],:root[data-tema="scuro"] .pagina[data-stanza="clienti-cer"]{--c-forte:#1E4A2C;--c-bordo:#264034;--c-testo:#AEDEBC;--c-sopra:#162B1E}
:root[data-tema="scuro"] .cartella[data-id="contabilita"],:root[data-tema="scuro"] .pagina[data-stanza="contabilita"]{--c-forte:#363C48;--c-bordo:#353C46;--c-testo:#CCD4DE;--c-sopra:#1A1E24}
:root[data-tema="scuro"] .cartella[data-id="analisi-statistica"],:root[data-tema="scuro"] .pagina[data-stanza="analisi-statistica"]{--c-forte:#1A404C;--c-bordo:#24404A;--c-testo:#ADE0EC;--c-sopra:#162A30}
:root[data-tema="scuro"] .cartella[data-id="analisi"],:root[data-tema="scuro"] .pagina[data-stanza="analisi"]{--c-forte:#2E3A4E;--c-bordo:#34404F;--c-testo:#C9D5E6;--c-sopra:#1A2029}
:root[data-tema="scuro"] .cartella[data-id="redazione"],:root[data-tema="scuro"] .pagina[data-stanza="redazione"]{--c-forte:#3C4A1C;--c-bordo:#3E4A22;--c-testo:#CBE098;--c-sopra:#1E2410}
:root[data-tema="scuro"] .cartella[data-id="registro"],:root[data-tema="scuro"] .pagina[data-stanza="registro"]{--c-forte:#28403F;--c-bordo:#2C4342;--c-testo:#C7D8D8;--c-sopra:#182625}
:root[data-tema="scuro"] .cartella[data-id="da-smistare"],:root[data-tema="scuro"] .pagina[data-stanza="da-smistare"]{--c-forte:#453A28;--c-bordo:#413627;--c-testo:#DCCBAE;--c-sopra:#1F1A12}
:root[data-tema="scuro"] .cartella[data-id="attivita-eva"],:root[data-tema="scuro"] .pagina[data-stanza="attivita-eva"]{--c-forte:#254A1C;--c-bordo:#2C4624;--c-testo:#B8E6AC;--c-sopra:#16220F}
:root[data-tema="scuro"] .cartella[data-id="memoria"],:root[data-tema="scuro"] .pagina[data-stanza="memoria"]{--c-forte:#262C55;--c-bordo:#2B2F52;--c-testo:#B8C0F2;--c-sopra:#181A30}

main{flex:1;display:grid;grid-template-columns:var(--wsx) 6px 1fr;min-height:0}
/* Chat agganciata nella colonna di destra (Simone 13/11/2026 15:57, punto 1):
   il centro si restringe, la chat NON lo copre piu'. Solo nel browser desktop
   (vedi sfondata() in chat_flottante.js: niente nel pacchetto installato,
   dove la chat parte gia' in una finestra vera, ne' su schermo stretto). */
main.chat-dock{grid-template-columns:var(--wsx) 6px 1fr 6px var(--wdx,360px)}
section{min-height:0;overflow:auto}
#sx{background:var(--side);display:flex;flex-direction:column}
#centro{display:flex;flex-direction:column;background:var(--bg);position:relative;min-height:0}
.pagina{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}
.pagina[hidden]{display:none}
.pagina[data-stanza]{border-top:4px solid var(--c-forte,transparent)}
.pagina-corpo{flex:1;overflow:auto;padding:12px 18px}
.maniglia{background:var(--line);cursor:col-resize;position:relative}
.maniglia:hover,.maniglia.attiva{background:var(--accent)}
.maniglia::after{content:"";position:absolute;inset:0 -5px}
.titolo-col{font-size:13px;font-weight:700;color:var(--muted);padding:12px 16px 4px}
.pallino{width:9px;height:9px;border-radius:50%;flex:none}
.st-aperto{background:var(--red)} .st-in_attesa{background:var(--amber)} .st-appena_arrivato{background:var(--teal)} .st-altro{background:var(--muted)}

/* elenco situazioni nella pagina della stanza (Simone 13/11/2026 11:44, punto 4) */
.elenco-situazioni{display:flex;flex-direction:column;margin-top:10px}
.situazione-riga{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 4px;font-size:15px}
.situazione-riga:hover{background:var(--hover)}
.situazione-riga-nome{flex:1}
.bIndietroElenco{margin-bottom:12px}

/* calendario */
#calendario{margin:14px 14px 0;background:var(--panel);border-radius:12px;padding:10px 12px;box-shadow:var(--ombra)}
.cal-testata{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cal-testata .pulsante{padding:3px 9px;font-size:14px}
.cal-mese{font-weight:700;font-size:15px;text-transform:capitalize}
.cal-griglia{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.cal-etichetta{font-size:11px;color:var(--muted);padding:2px 0}
.cal-giorno{position:relative;border:0;background:none;border-radius:8px;padding:6px 0;font-size:13.5px;color:var(--fg)}
.cal-giorno:hover{background:var(--hover)}
.cal-giorno.altromese{color:var(--muted);opacity:.5}
.cal-giorno.oggi{background:var(--accent-soft);font-weight:700}
.cal-giorno.selezionato{outline:2px solid var(--accent)}
.cal-giorno .puntino{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent)}

.testata{padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line)}
.testata .percorso{font-size:12.5px;color:var(--muted)}
.riga-testata{display:flex;align-items:baseline;gap:12px}
.testata .nome{font-size:19px;font-weight:700;margin-top:2px}
.testata .chi{font-size:12.5px;color:var(--muted);margin-top:3px}
.bChiama{margin-left:auto;font-size:14px}
#messaggi{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:12px}
.msg{max-width:min(720px,85%);padding:10px 14px;border-radius:14px;white-space:pre-wrap;box-shadow:var(--ombra)}
.msg.io{align-self:flex-end;background:var(--accent);color:var(--accent-fg);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg.sistema{align-self:center;background:none;color:var(--muted);font-size:13px;box-shadow:none;border:1px dashed var(--line)}
.msg.errore{border-color:var(--red);color:var(--red)}
.msg .autore{font-size:12px;opacity:.8;margin-bottom:3px}
.msg .azioni{margin-top:6px;display:flex;gap:8px}
.msg .azioni button{font-size:12.5px;padding:3px 9px;border-radius:6px;border:1px solid currentColor;background:none;color:inherit;opacity:.85}
.file{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;border-radius:8px;border:1px solid currentColor;background:transparent;font-size:14px}
.vuoto{color:var(--muted);font-size:15px;padding:12px 18px;max-width:60ch}
.q{color:var(--muted);font-size:12.5px}
.registro-riga{font-size:14px;padding:9px 0;border-bottom:1px dashed var(--line)}
.registro-riga-testata{display:flex;justify-content:space-between;gap:8px;font-weight:700}
.registro-riga-chi{color:var(--accent)}
.registro-riga-cosa{margin-top:2px}
.tg-messaggio{max-width:min(720px,85%);padding:10px 14px;border-radius:14px;box-shadow:var(--ombra);background:var(--panel);border:1px solid var(--line)}
.tg-messaggio.io{align-self:flex-end;background:var(--accent);color:var(--accent-fg);border:none}
.tg-messaggio .tg-meta{font-size:12px;opacity:.8;margin-bottom:3px;display:flex;gap:8px}
.tg-messaggio .tg-cliente{font-weight:700}
.attesa{padding:0 22px 10px;color:var(--muted);font-size:14px}
.puntini::after{content:'…';animation:puntini 1.2s steps(4) infinite}
@keyframes puntini{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}
#scrivi{padding:12px 16px;background:var(--panel);border-top:1px solid var(--line)}
#scrivi .riga1{display:flex;gap:8px;flex-wrap:wrap}
#scrivi textarea{flex:1;font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:10px;resize:none;height:50px;background:var(--bg);color:var(--fg)}
#invia{border-radius:10px;border:0;background:var(--accent);color:var(--accent-fg)}
#scrivi .pulsante.grande.attivo{background:var(--red);color:#fff;border-color:var(--red)}
/* Pulsanti a icona minimal (Simone 13/11/2026 15:57): mic, conversazione,
   invia, allega, foto. La descrizione si vede al passaggio del mouse (title). */
.icona-pulsante{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;flex:0 0 auto}
.icona-pulsante svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icona-pulsante.attivo{background:var(--accent);color:var(--accent-fg);border-color:transparent}
.stato-voce{font-size:14px;font-weight:700;color:var(--accent);padding:0 4px 8px}
.stato-voce[hidden]{display:none}
.stato-voce.errore{color:var(--red);font-weight:400}
/* Tutte le icone su una riga sola sotto il campo (Simone 13/11/2026 17:14):
   graffetta/foto/mic/cuffie/altoparlante a sinistra, invio spinto a destra. */
#scrivi .riga-azioni{display:flex;gap:8px;margin-top:8px;align-items:center;flex-wrap:wrap}
#scrivi .riga-azioni #invia{margin-left:auto}
#rilascia{position:absolute;inset:10px;border:3px dashed var(--accent);border-radius:14px;background:color-mix(in srgb, var(--accent-soft) 85%, transparent);display:none;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--accent)}
#vistaChat.trascina #rilascia{display:flex}
.schede{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.schede button{background:none;border:0;padding:6px 10px;border-radius:8px 8px 0 0;color:var(--muted);font-size:13.5px}
.schede button.on{background:var(--panel);color:var(--fg);font-weight:700;box-shadow:inset 0 -3px 0 var(--accent)}
#corpo{flex:1;overflow:auto}
.scheda{padding:10px 16px 16px}
/* La scheda cliente tecnica (Simone 13/11/2026 15:57) usa ".riga" con le due
   colonne spinte agli estremi (pensata per la colonna sinistra, stretta): al
   centro, senza un limite, il valore finiva lontanissimo a destra, coperto
   dalla chat mobile (sembrava un campo vuoto). */
.scheda-cliente-centro{max-width:640px}
.scheda-cliente-centro .riga{justify-content:flex-start}
.scheda-cliente-centro .riga span:first-child{flex:0 0 170px}
.riga{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.riga span:first-child{color:var(--muted)}
/* Campo vuoto nella scheda cliente (Simone 13/11/2026 15:57, punto 2): mai
   un trattino, sempre "da completare" in grigio. */
.da-completare{color:var(--muted);font-style:italic}
.blocco{margin-top:16px}
.blocco h3{font-size:15px;margin:0 0 6px}
.evento{font-size:14.5px;padding:8px 0;border-bottom:1px dashed var(--line)}
.evento .q{color:var(--muted);font-size:12.5px}
#anteprima iframe,#anteprima img{width:100%;border:0;border-radius:8px;background:#fff}
#anteprima iframe{height:calc(100vh - 220px)}
#anteprima pre{white-space:pre-wrap;font-size:14px}
.campo{display:block;margin-bottom:10px}
.campo span{display:block;font-size:13px;color:var(--muted);margin-bottom:3px}
.campo input,.campo textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg)}
.campo textarea{min-height:220px;resize:vertical}
.approva{width:100%;padding:11px;border-radius:10px;border:0;background:var(--accent);color:var(--accent-fg);font-weight:700}
.approva:disabled{opacity:.5;cursor:not-allowed}
.avviso{font-size:13px;color:var(--muted);margin-top:8px}
.avviso.errore,.evento.errore,.q.errore{color:var(--red)}
.blocco pre{white-space:pre-wrap;font-size:14px;margin:0}
.griglia-slide{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.griglia-slide img{width:100%;border-radius:8px;border:1px solid var(--line)}
.blocco textarea{width:100%;min-height:70px;font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);margin:8px 0;resize:vertical}

/* posta */
.caselle{display:flex;flex-direction:column;gap:8px}
.casella{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-align:left}
.casella:hover{background:var(--hover)}
.casella .nome{font-weight:700;flex:1}
.casella .tot{font-size:13px;color:var(--muted)}
.casella .nonlette{background:var(--accent);color:var(--accent-fg);border-radius:10px;padding:1px 9px;font-size:13px;font-weight:700}
.posta-riepilogo{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:13px}
.posta-riepilogo span{background:var(--hover);border-radius:10px;padding:3px 10px;color:var(--muted)}
.filtri{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap;align-items:center}
.filtri select,.filtri input{font:inherit;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--fg)}
.elenco-mail{display:flex;flex-direction:column}
.mail-riga{display:flex;align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);text-align:left;background:none;border-left:0;border-right:0;border-top:0}
.mail-riga:hover{background:var(--hover)}
.mail-riga.da-leggere{font-weight:700}
.mail-riga .mittente{width:180px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-riga .oggetto{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-riga .quando{width:90px;flex:none;text-align:right;color:var(--muted);font-size:13px}
.etichetta-cliente{font-size:12px;color:var(--muted);background:var(--hover);border-radius:8px;padding:1px 8px}

/* registro */
table.registro{width:100%;border-collapse:collapse;font-size:14.5px}
table.registro th{text-align:left;color:var(--muted);font-size:13px;padding:6px 10px;border-bottom:1px solid var(--line)}
table.registro td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:break-word}

/* Fatture (scheda sinistra, colonna stretta): elenco a cartoline, non una
   tabella a tante colonne (Simone 13/11/2026 15:57, punto 4: "niente testo
   tagliato"). Stesso aspetto di .evento, con una testata Numero + icona. */
.fattura-riga-testata{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:700}
.fattura-riga-testata .icona-pulsante{width:30px;height:30px}
.fattura-riga-testata .icona-pulsante svg{width:16px;height:16px}
.bScarica{margin-top:14px}

/* redazione: proposte, in produzione, calendario */
.red-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.red-tab{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 14px;font-size:14.5px;color:var(--fg)}
.red-tab:hover{background:var(--hover)}
.red-tab.on{background:var(--accent);color:var(--accent-fg);border-color:transparent;font-weight:700}
.elenco-proposte,.elenco-calendario{display:flex;flex-direction:column;gap:12px}
.proposta{border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--panel)}
.proposta-testata{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.badge-rubrica{background:var(--accent);color:var(--accent-fg);border-radius:10px;padding:1px 10px;font-size:13px;font-weight:700}
.badge-formato{background:var(--hover);border:1px solid var(--line);border-radius:10px;padding:1px 10px;font-size:13px}
.badge-pronto{background:var(--accent);color:var(--accent-fg);border-radius:10px;padding:2px 10px;font-size:13px;font-weight:700}
.proposta-titolo{font-weight:700;font-size:16px;margin-bottom:4px}
.proposta-fonte{color:var(--muted);font-size:13px;margin-bottom:6px}
.proposta-sintesi{font-size:14.5px;white-space:pre-wrap;margin-bottom:6px}
.proposta-motivo{color:var(--muted);font-size:13px;font-style:italic;margin-bottom:8px}
.proposta-immagini{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.miniatura-proposta{width:64px;height:80px;object-fit:cover;border-radius:6px;border:1px solid var(--line);cursor:pointer}
.miniatura-proposta:hover{outline:2px solid var(--accent)}
.proposta-esito{color:var(--muted);font-size:13.5px}
.proposta-azioni{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.cal-testata-red{font-weight:700;margin-bottom:10px}
.cal-nuovo{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.cal-nuovo select,.cal-nuovo input{font:inherit;padding:6px 8px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--fg)}
.cal-voce{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.cal-voce-titolo{flex:1;min-width:160px}
.avviso-generazione{color:var(--muted);font-size:13px}

/* calendario a pagina intera (Simone 13/11/2026 11:44) */
#paginaCalendarioGrande .pagina-corpo{display:flex;justify-content:center;padding:24px}
.cal-apri{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.cal-apri:hover{text-decoration:underline}
.cal-grande{width:min(640px,100%)}
.cal-grande .cal-testata{margin-bottom:14px}
.cal-grande .cal-mese{font-size:20px}
.cal-grande .cal-giorno{padding:14px 0;font-size:15px}

/* Chat = pannello agganciato nella colonna di destra, di default NON sopra
   il centro (Simone 13/11/2026 15:57, punto 1). ".docked" = dentro la
   griglia di <main> (colonna propria, vedi main.chat-dock sopra); senza
   quella classe resta un riquadro fisso (schermo stretto, o l'attimo prima
   che si stacchi nel programma installato: vedi chat_flottante.js). */
.chat-barretta{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:8px;border-radius:999px;border:0;background:var(--accent);color:var(--accent-fg);font-weight:700;box-shadow:var(--ombra);font-size:14px;padding:10px 18px}
.chat-barretta:hover{filter:brightness(1.05)}
.chat-barretta[hidden]{display:none}
.chat-barretta-pallino{width:10px;height:10px;border-radius:50%;background:var(--red)}
.chat-barretta-pallino[hidden]{display:none}
.chat-flottante{position:fixed;right:22px;bottom:22px;top:auto;left:auto;width:400px;height:560px;z-index:61;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(20,25,35,.28);overflow:hidden;min-width:300px;min-height:240px}
.chat-flottante[hidden]{display:none}
.chat-flottante.docked{position:static;width:auto;height:100%;min-width:0;min-height:0;border-radius:0;box-shadow:none;border:0}
.chat-flottante-barra{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--side);border-bottom:1px solid var(--line)}
.chat-flottante-barra .percorso{font-size:11.5px;color:var(--muted);white-space:nowrap}
.chat-flottante-titolo{font-weight:700;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-flottante-barra .pulsante{padding:3px 9px;font-size:13px}
.chat-flottante-corpo{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}
.chat-staccata-avviso{position:fixed;right:22px;bottom:22px;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;box-shadow:var(--ombra);font-size:13.5px;display:flex;align-items:center;gap:10px}
.chat-staccata-avviso[hidden]{display:none}
.pagina-chat-staccata{height:100vh;display:flex;flex-direction:column}
.pagina-chat-staccata .chat-flottante-barra{cursor:default}
.pagina-chat-staccata .chat-staccata-corpo{flex:1}

/* Anteprima file/mail/contenuto in finestra sopra la pagina (sostituisce la
   vecchia scheda "Anteprima": Simone 13/11/2026 11:44). */
.modale{position:fixed;inset:0;z-index:70;background:rgba(10,14,20,.5);display:flex;align-items:center;justify-content:center;padding:4vh 4vw}
.modale[hidden]{display:none}
.modale-finestra{background:var(--panel);border-radius:14px;box-shadow:var(--ombra);width:min(900px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.modale-barra{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);font-weight:700}
.modale-corpo{flex:1;overflow:auto;padding:14px 18px}
.modale-corpo #anteprima iframe{height:64vh}

/* redazione: statistiche (social + sito) */
.stat-stati{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.stat-card{border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:var(--panel);min-width:200px}
.stat-card-titolo{font-weight:700;margin-bottom:4px}
.stat-card-msg{color:var(--muted);font-size:13px;margin-top:4px}
.badge-ok{background:#1a7a3a;color:#fff;border-radius:10px;padding:1px 10px;font-size:13px;font-weight:700}
.badge-attenzione{background:#b8860b;color:#fff;border-radius:10px;padding:1px 10px;font-size:13px;font-weight:700}
.badge-problema{background:#b42318;color:#fff;border-radius:10px;padding:1px 10px;font-size:13px;font-weight:700}
/* "Nuovo" (CER): mai rosso come "Receduto", mai rosa (Simone 13/11/2026) */
.badge-nuovo{background:#2f7fab;color:#fff;border-radius:10px;padding:1px 10px;font-size:13px;font-weight:700}
.stat-grafico-box{margin-bottom:16px}
.stat-svg{width:100%;max-width:560px;height:120px}
.stat-svg-linea{fill:none;stroke:var(--accent);stroke-width:2}
.stat-svg-punto{fill:var(--accent)}
.stat-grafico-sotto{color:var(--muted);font-size:13px;margin-top:4px}
.stat-indicazione{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.stat-sito{margin-top:16px}
.qo-zona{border:2px dashed var(--line);border-radius:10px;padding:12px 14px;margin:10px 0;background:var(--panel)}
.qo-zona.trascina{border-color:var(--accent);background:var(--hover)}
.qo-elenco-file{margin:6px 0;padding:0;list-style:none;font-size:13px;color:var(--muted)}

#tab{display:none}
@media (max-width: 900px){
  main{grid-template-columns:1fr}
  .maniglia{display:none}
  section,#centro{display:none}
  section.vis{display:block}
  #centro.vis{display:flex}
  #tab{display:flex;border-top:1px solid var(--line);background:var(--panel)}
  #tab button{flex:1;padding:12px;border:0;background:none;color:var(--muted)}
  #tab button.on{color:var(--accent);font-weight:700}
  header .nota{display:none}
  #scrivi .pulsante{white-space:nowrap}
  .chat-flottante{left:10px!important;right:10px!important;top:auto!important;bottom:64px!important;width:auto!important;height:auto!important;max-height:70vh}
  .chat-barretta{bottom:76px}
  .cartelline{padding-bottom:2px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* pagina di accesso (login.html) e schermata del pacchetto installato */
.pagina-accesso{align-items:center;justify-content:center;min-height:100%}
main.accesso-scheda{display:block;flex:none;grid-template-columns:none}
.accesso-scheda{width:min(360px,92vw);margin:auto;padding:28px 26px;background:var(--panel);border-radius:14px;box-shadow:var(--ombra)}
.accesso-scheda h1{margin:0 0 2px;font-size:22px}
.accesso-sotto{margin:0 0 18px;color:var(--muted);font-size:14.5px}
.accesso-scheda label{display:block;font-size:14px;margin:12px 0 4px;color:var(--muted)}
.accesso-scheda input[type="email"],.accesso-scheda input[type="password"],.accesso-scheda input[type="text"]{width:100%;box-sizing:border-box;padding:9px 11px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;font-size:15px}
.campo-password{position:relative;display:flex}
.campo-password input{flex:1;padding-right:70px}
.occhietto{position:absolute;right:4px;top:4px;bottom:4px;background:none;border:0;color:var(--accent);font-size:13px;padding:0 10px}
.accesso-resta{display:flex;align-items:center;gap:8px;margin-top:14px}
.accesso-resta input{width:auto;margin:0}
.accesso-errore{min-height:1.2em;color:var(--red);font-size:14px;margin:12px 0 0}
.accesso-scheda button[type="submit"]{width:100%;margin-top:16px;padding:10px;font-weight:700;background:var(--accent);color:var(--accent-fg);border-color:transparent}
.accesso-utente{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.accesso-utente .nome{font-weight:700;color:var(--fg)}

/* Anagrafica cliente: utenze con le curve a comparsa (Simone 11/11/2026 22:25) */
.utenza{border:1px solid var(--line);border-radius:10px;margin-top:8px;overflow:hidden}
.utenza-testata{width:100%;display:flex;gap:10px;align-items:center;text-align:left;background:var(--panel);border:0;padding:9px 12px;font-size:14.5px}
.utenza-testata:hover{background:var(--hover)}
.utenza-tipo{font-weight:700;background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:1px 9px;font-size:12.5px}
.utenza-curve{padding:10px 12px;border-top:1px solid var(--line)}
.curve-grafico{display:flex;flex-direction:column;gap:8px}
.curve-svg{width:100%;max-width:560px;height:140px}
.curve-linea{fill:none;stroke-width:2}
.curve-linea.curve-f1{stroke:var(--accent)}
.curve-linea.curve-f2{stroke:var(--amber)}
.curve-linea.curve-f3{stroke:var(--teal)}
.curve-mese{font-size:9px;fill:var(--muted);text-anchor:middle}
.curve-legenda{display:flex;gap:14px;font-size:13px;color:var(--muted)}
.curve-legenda-voce{display:inline-flex;align-items:center;gap:5px}
.curve-pallino{width:9px;height:9px;border-radius:50%;display:inline-block}
.curve-pallino.curve-f1{background:var(--accent)}
.curve-pallino.curve-f2{background:var(--amber)}
.curve-pallino.curve-f3{background:var(--teal)}

/* Storia: UNA sola linea del tempo VERTICALE (Simone 13/11/2026 17:14: niente
   riquadri, niente pallini orizzontali), dal piu' recente al piu' vecchio,
   data + titolo su una riga; popup col tipo sotto, al passaggio del mouse. */
.linea-tempo-box{margin-top:4px}
.linea-tempo-verticale{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.linea-tempo-riga{display:flex;gap:10px;align-items:baseline;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:7px 2px;width:100%;color:var(--fg)}
.linea-tempo-riga:hover,.linea-tempo-riga:focus{background:var(--accent-soft)}
.linea-tempo-riga-data{font-size:12px;color:var(--muted);white-space:nowrap;flex:none}
.linea-tempo-riga-titolo{font-size:14px}
.linea-tempo-dettaglio{margin-top:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.linea-tempo-dettaglio-tipo{font-size:12.5px;color:var(--accent);font-weight:700;margin-bottom:3px}
.linea-tempo-dettaglio-titolo{font-weight:700;margin-bottom:4px}
.linea-tempo-dettaglio-riassunto{font-size:14px;color:var(--fg)}

/* Da smistare (Simone 11/11/2026 22:35) */
.file-smistare{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:6px;font-size:14px}
.file-smistare:hover{background:var(--hover)}
.file-smistare .nome{font-weight:700}
.file-smistare .q{font-size:12.5px;color:var(--muted)}
