:root{--viola:#7a3b69;--viola-scuro:#5a2a4d;--rosa:#fbf4f8;--oro:#f2b84b;--testo:#2b2230;--grigio:#6b6272;--linea:#e8dce4;--verde:#1f7a4d;--rosso:#b3261e;--bianco:#fff;--arancio:#a35a00;--blu:#2459a6}
*{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--testo);background:var(--rosa);padding-bottom:calc(76px + env(safe-area-inset-bottom));max-width:560px;margin-inline:auto;min-height:100vh}
a{color:var(--viola);font-weight:600}
h1,h2,h3{margin:0}
h2{font-size:1.1rem}
.avvertenza{position:sticky;top:0;z-index:50;background:var(--oro);color:#3b2a00;text-align:center;font-weight:700;font-size:.85rem;padding:6px 8px;padding-top:calc(6px + env(safe-area-inset-top))}
.testata{display:flex;align-items:center;gap:8px;background:var(--viola);color:#fff;padding:10px 14px;position:sticky;top:29px;z-index:40}
.testata small{opacity:.8;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;display:block}
.testata h1{font-size:1.25rem;line-height:1.2}
.indietro{background:rgba(255,255,255,.18);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:1.6rem;line-height:1}
.indietro[hidden]{display:none}
main{padding:12px 12px 24px}
.saluto{font-size:1.05rem;margin:4px 2px 12px}
.card{background:var(--bianco);border:1px solid var(--linea);border-radius:14px;padding:14px;margin:0 0 12px;overflow:hidden}
.card>h2{margin-bottom:8px}
.titolo-riga{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:10px 2px 8px}
.card>.titolo-riga{margin:0 0 8px}
.azioni{display:flex;gap:6px;align-items:center}
.nota{color:var(--grigio);font-size:.88rem;margin:6px 0}
.vuoto{color:var(--grigio);text-align:center;padding:16px 8px;font-size:.95rem}
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:99px;background:#eee7ee;color:var(--testo);white-space:nowrap}
.badge.ok{background:#dcf3e5;color:#145a38}.badge.warn{background:#fff0cc;color:#7a4a00}.badge.no{background:#fbdcda;color:#8c1a13}.badge.info{background:#dde8fb;color:#1c4585}
.riga{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 4px;border-bottom:1px solid var(--linea);color:inherit;text-decoration:none;font-weight:400;min-height:48px;background:transparent;width:100%;text-align:left}
main>.riga{background:var(--bianco);border:1px solid var(--linea);border-radius:12px;margin-bottom:8px;padding:12px}
.card .riga:last-of-type{border-bottom:0}
.riga-testo{min-width:0;flex:1}
.riga-titolo{font-weight:600;overflow-wrap:anywhere}
.riga-sub{color:var(--grigio);font-size:.85rem;overflow-wrap:anywhere}
.riga-destra{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;white-space:nowrap;font-size:.95rem}
.importo{font-size:.85rem;color:var(--grigio)}
.riga.ritardo .riga-titolo{color:var(--rosso)}
.riga-doppia{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--linea)}
.riga-doppia .riga{border:0;flex:1}
.spunta{border:2px solid var(--verde);color:var(--verde);background:#fff;border-radius:50%;width:40px;height:40px;font-size:1.1rem;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 16px;border-radius:12px;border:2px solid var(--viola);background:var(--viola);color:#fff;font:600 1rem/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;text-decoration:none;cursor:pointer;text-align:center}
.btn.secondario{background:#fff;color:var(--viola)}
.btn.pericolo{background:var(--rosso);border-color:var(--rosso);color:#fff}
.btn.pericolo.secondario{background:#fff;color:var(--rosso)}
.btn.piccolo{min-height:36px;padding:4px 12px;font-size:.9rem;flex:none}
.pila{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.pila.riga-bottoni{flex-direction:row}.pila.riga-bottoni .btn{flex:1}
.contatti{display:flex;gap:8px;margin-bottom:10px}.contatti .btn{flex:1}
.fab{position:fixed;right:max(14px,calc(50% - 280px + 14px));bottom:calc(84px + env(safe-area-inset-bottom));z-index:30;background:var(--oro);color:#3b2a00;border:0;border-radius:99px;min-height:52px;padding:0 18px 0 14px;display:flex;align-items:center;gap:8px;font:700 1rem system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.fab-piu{font-size:1.6rem;line-height:1}
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;background:#fff;border-top:1px solid var(--linea);display:flex;z-index:45;padding-bottom:env(safe-area-inset-bottom)}
.nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;text-decoration:none;color:var(--grigio);font-size:.72rem;font-weight:600;min-height:58px}
.nav a.on{color:var(--viola)}.nav a.on .ni{background:#f1e3ee}
.ni{font-size:1.25rem;padding:0 14px;border-radius:99px;line-height:1.5}
.chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.card .chips{padding-bottom:2px;flex-wrap:wrap}
.chip{flex:none;border:1.5px solid var(--linea);background:#fff;color:var(--testo);border-radius:99px;padding:8px 14px;font:600 .9rem system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:40px}
.chip.on{background:var(--viola);border-color:var(--viola);color:#fff}
.sotto-nav{display:flex;gap:6px;margin-bottom:10px}
.sotto-nav a{flex:1;text-align:center;padding:10px 4px;border-radius:10px;background:#fff;border:1.5px solid var(--linea);text-decoration:none;font-size:.92rem}
.sotto-nav a.on{background:var(--viola);color:#fff;border-color:var(--viola)}
.ricerca input,input,select,textarea{width:100%;font:inherit;font-size:1rem;padding:11px 12px;border:1.5px solid #cdbfc9;border-radius:10px;background:#fff;color:var(--testo)}
.ricerca{margin-bottom:10px}
input[type=checkbox]{width:22px;height:22px;flex:none}
.campo{margin-bottom:12px}.campo label{display:block;font-weight:600;font-size:.9rem;margin-bottom:4px}.campo small{color:var(--grigio)}
.campo-check{display:flex;gap:10px;align-items:center;margin:6px 0 12px;font-weight:600}
.errore{background:#fbdcda;color:#8c1a13;border-radius:10px;padding:10px;margin:8px 0;font-weight:600}
.barra-azioni{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:0;background:#fff;padding:8px 0}.piede-form{position:sticky;bottom:0;background:#fff;padding-top:4px}.piede-form .barra-azioni{position:static;margin-top:6px}.piede-form .errore{margin:0}.campo[hidden],.campo-check[hidden]{display:none}.campo-errore input,.campo-errore select,.campo-errore textarea{border-color:#b3261e;box-shadow:0 0 0 2px rgba(179,38,30,.18)}.campo .avviso-campo{display:block;background:#fff6e0;border:1px solid #f0d58a;border-radius:10px;padding:8px 10px;margin-bottom:6px;color:#5c4400;font-size:.9rem}.barra-azioni .btn{flex:1}
.foglio-sfondo{position:fixed;inset:0;background:rgba(30,15,25,.5);z-index:100;display:flex;align-items:flex-end;justify-content:center}
.foglio{background:#fff;width:100%;max-width:560px;max-height:92vh;border-radius:18px 18px 0 0;display:flex;flex-direction:column}
.foglio-testa{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 8px;border-bottom:1px solid var(--linea)}
.chiudi{border:0;background:#f1e8ef;border-radius:50%;width:38px;height:38px;font-size:1.4rem}
.foglio-corpo{padding:14px 16px calc(16px + env(safe-area-inset-bottom));overflow:auto}
body.foglio-aperto{overflow:hidden}
.toast{position:fixed;left:50%;bottom:calc(150px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#2b2230;color:#fff;padding:12px 16px;border-radius:12px;z-index:120;opacity:0;transition:.25s;max-width:92%;font-size:.92rem}
.toast.on{opacity:1;transform:translate(-50%,0)}.toast a{color:var(--oro)}
dl.dati{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:10px 0}dl.dati dt{color:var(--grigio);font-size:.88rem}dl.dati dd{margin:0;overflow-wrap:anywhere}
.tre-numeri{display:flex;gap:8px;margin:8px 0}.tre-numeri>div{flex:1;background:var(--rosa);border-radius:10px;padding:8px;text-align:center}.tre-numeri small{display:block;color:var(--grigio);font-size:.75rem}.tre-numeri strong{font-size:1.05rem}
.rosso,.rosso strong{color:var(--rosso)}.verde,.verde strong{color:var(--verde)}
.totale-riga{display:flex;justify-content:space-between;padding:10px 4px;font-size:1.1rem;border-top:2px solid var(--linea);margin-bottom:8px}
.avviso-rosso{background:#fbdcda;color:#8c1a13;border-radius:10px;padding:8px 10px;font-weight:600}.avviso-verde{background:#dcf3e5;color:#145a38;border-radius:10px;padding:8px 10px;font-weight:600;margin:8px 0 0}
.avviso-sdi{background:#fff0cc;border:2px solid var(--oro);border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:.92rem}
.griglia-moduli{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tessera{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px;text-decoration:none;color:var(--testo);font-weight:400;min-height:104px}
.tessera .icona{font-size:1.6rem}.tessera small{color:var(--grigio)}.tessera.spenta{opacity:.55;border-style:dashed}
.griglia-rapide{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.interruttore{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--linea);font-weight:600}
.btn.file{cursor:pointer}
.passi{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.passo{border:1.5px solid var(--linea);background:#fff;border-radius:10px;padding:8px 2px;font:600 .75rem system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:60px;color:var(--grigio)}
.passo .n{background:#eee7ee;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-size:.8rem}
.passo.fatto{color:var(--verde);border-color:#a8d8bd}.passo.fatto .n{background:#dcf3e5}.passo.on{background:var(--viola);color:#fff;border-color:var(--viola)}.passo.on .n{background:#fff;color:var(--viola)}
.barra{height:8px;background:#eee7ee;border-radius:99px;margin-top:6px;overflow:hidden}.barra i{display:block;height:100%;background:var(--verde)}.barra.bassa i{background:var(--rosso)}
.cal-testa{display:flex;justify-content:space-between;align-items:center;text-transform:capitalize;margin-bottom:8px}
.cal-griglia{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-giorno{text-align:center;font-size:.72rem;color:var(--grigio);font-weight:700}
.cella{aspect-ratio:1;border:1px solid var(--linea);background:#fff;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:600 .9rem system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding:0;min-height:42px}.cella.vuota{border:0;background:transparent}
.cella.oggi{border-color:var(--viola);border-width:2px}.cella.sel{background:var(--viola);color:#fff}
.punti{display:flex;gap:2px;height:7px}.punti i,.legenda i{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--grigio)}
.p-consegna{background:#2459a6!important}.p-pagamento{background:#1f7a4d!important}.p-fornitore{background:#d98a00!important}.p-altro{background:#8a6a85!important}
.cella.sel .punti i{outline:1px solid #fff}
.legenda{display:flex;gap:12px;flex-wrap:wrap;font-size:.8rem;color:var(--grigio);margin-top:8px}.legenda span{display:flex;align-items:center;gap:4px}
.grafico{display:flex;gap:6px;align-items:flex-end;height:150px;padding-top:6px}
.colonna{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}.barre{flex:1;display:flex;align-items:flex-end;gap:2px;width:100%;justify-content:center}.barre i{width:42%;border-radius:4px 4px 0 0;min-height:2px}
.b-inc{background:var(--verde)}.b-spe{background:var(--rosso)}.colonna small{font-size:.7rem;color:var(--grigio)}
.carta-ricevuta{background:#fff;border:2px dashed var(--viola);border-radius:12px;padding:18px;margin-bottom:12px}.non-fiscale{font-weight:800;color:var(--rosso);border-top:1px solid var(--linea);padding-top:10px}
.caricamento{text-align:center;padding:30px;color:var(--grigio)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--oro);outline-offset:2px}
@media print{.nav,.fab,.testata .indietro,.btn,.sotto-nav,.chips,.toast{display:none!important}body{background:#fff;padding:0}.testata{position:static}.avvertenza{position:static}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* Accesso e stato di sincronizzazione */
.stato-sync{margin-left:auto;font-size:.75rem;opacity:.9;white-space:nowrap}
.stato-sync[data-offline="1"]{color:#ffd9a0;font-weight:700}
body.accesso-aperto .nav,body.accesso-aperto .stato-sync,body.accesso-aperto .indietro{display:none!important}
form.accesso{margin-top:8px}
.errore{color:var(--rosso);font-weight:600;margin:6px 0}
