[hidden]{display:none!important}
:root{
  /* BLIP grafite:fondo grafite, testo avorio, logo salvia (scelta del 21/10/2026) */
  --notte:#EEF0F4; --notte-2:#EAEDF2;
  --viola:#006E50; --viola-rgb:0,110,80; --viola-chiaro:#CFEFE2; --chiaro-rgb:207,239,226;
  --logo:#009B72; --logo-rgb:0,155,114; --salvia:#CFEFE2; --salvia-tenue:rgba(0,155,114,0.2);
  --testo:#282E34; --testo-2:#353E47; --testo-3:#48545F; --avorio:#F6F1E4; --inchiostro:#141A33; --inchiostro-2:#5A5670;
  --vetro:#E9ECF1; --bordo:#E3E7ED; --bordo-forte:#DCE1E8;
  --ambra:#A35F00; --verde:#282E34; --rosso:#C2413B; --molla:cubic-bezier(.22,1,.36,1);
  --ombra:0 1px 2px rgba(110,126,150,0.18),0 8px 22px rgba(110,126,150,0.198);
  --sicuro-alto:env(safe-area-inset-top,0px); --sicuro-basso:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{font-family:'Outfit',system-ui,sans-serif;color:var(--testo);background-color:var(--notte);background-image:radial-gradient(rgba(207,239,226,0.12) 1px,transparent 1.2px);background-size:18px 18px;background-attachment:fixed;line-height:1.45;-webkit-font-smoothing:antialiased;font-size:17px}
a{color:var(--acc-testo)}
button{font-family:inherit;font-size:inherit;color:inherit}
input,select,textarea{font-family:inherit;font-size:16px;color:var(--testo);background:#E9ECF1;border:1px solid var(--bordo-forte);border-radius:14px;padding:12px 14px;width:100%;outline:none;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{border-color:var(--viola);box-shadow:0 0 0 4px rgba(var(--logo-rgb),.3)}
select option{color:#141A33}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
svg.i{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.marchio{font-family:'Lexend',system-ui,sans-serif;font-weight:500;letter-spacing:-.02em}
.mark{position:relative;width:30px;height:30px;border-radius:50%;border:3px solid var(--logo);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.mark i{width:9px;height:9px;border-radius:50%;background:var(--viola);animation:respiro 1.6s ease-in-out infinite}
@keyframes respiro{0%,100%{transform:scale(.82);opacity:.8}50%{transform:scale(1.08);opacity:1}}
@keyframes onda{0%{transform:scale(.3);opacity:.7}100%{transform:scale(1.6);opacity:0}}
@keyframes gira{to{transform:rotate(360deg)}}
@keyframes entra{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.etichetta{font-size:14px;font-weight:500;color:var(--testo-3)}
.vetro{background:var(--vetro);border:1px solid var(--bordo);border-radius:20px;box-shadow:var(--ombra)}
.avorio{background:var(--avorio);color:var(--inchiostro);border-radius:20px;border:1px solid #F0DDBE}
.avorio .etichetta{color:#8A3F05;font-weight:600}
.pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:14px;font-weight:500;white-space:nowrap}
.p-attesa{background:rgba(255,184,107,0.14);color:#A35F00}
.p-ok{background:rgba(60,76,94,0.084);color:#282E34}.p-ok::before{content:"✓ "}
.p-lav{background:var(--salvia-tenue);color:var(--acc-testo)}
.p-stop{background:rgba(248,113,113,0.16);color:#C2413B}
.p-fine{background:rgba(60,76,94,0.042);color:var(--testo-3)}
.bottone{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:16px;border:1px solid var(--bordo-forte);background:#E9ECF1;color:var(--testo);cursor:pointer;font-weight:500;transition:transform .2s var(--molla),background .2s,opacity .2s}
.bottone:active{transform:scale(.96)}
.bottone.primario{background:var(--viola);border-color:var(--viola);color:#FFFFFF;box-shadow:0 6px 16px rgba(var(--viola-rgb),.22)}
.bottone.pieno{width:100%}
.bottone[disabled]{opacity:1;background:#E5E9EF;border-color:var(--bordo-forte);color:var(--testo-2);box-shadow:none;pointer-events:none}
.bottone.piccolo{min-height:44px;padding:0 16px;border-radius:12px;font-size:15px}
.bottone.pericolo{border-color:rgba(248,113,113,0.45);color:var(--rosso);background:#E9ECF1}
#avvisi-box{position:fixed;left:50%;top:calc(14px + var(--sicuro-alto));transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px);pointer-events:none}
.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto;padding:12px 16px;border-radius:14px;background:#E9ECF1;color:var(--testo);border:1px solid var(--bordo-forte);box-shadow:0 12px 30px rgba(110,126,150,0.315);font-size:16px;animation:entra .35s var(--molla);transition:opacity .4s,transform .4s}
.toast button{border:0;background:var(--viola);color:#FFFFFF;border-radius:10px;padding:8px 12px;font-weight:500;cursor:pointer;min-height:40px}
.toast.ok{border-color:var(--logo)}.toast.err{border-color:rgba(248,113,113,0.45)}
.toast.via{opacity:0;transform:translateY(-8px)}
/* accesso */
.accesso{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}
.accesso form{width:min(380px,100%);display:flex;flex-direction:column;gap:18px;align-items:stretch;text-align:center}
.accesso .logo-grande{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:8px}
.accesso .logo-grande .mark{width:84px;height:84px;border-width:6px}
.accesso .logo-grande .mark i{width:26px;height:26px}
.accesso .logo-grande b{font-size:44px}
.accesso input{text-align:center;font-size:24px;letter-spacing:.3em;text-transform:uppercase}
.accesso .errore{color:var(--rosso);min-height:20px;font-size:15px}
.accesso .nota{font-size:15px;color:var(--testo-3)}
.carica{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(60,76,94,0.105);border-top-color:var(--viola);animation:gira .8s linear infinite}
.vuoto{color:var(--testo-3);text-align:center;padding:30px 10px;font-size:16px}
.striscia-prova{font-size:14px;padding:8px 12px;border-radius:12px;background:rgba(255,184,107,0.14);border:1px solid rgba(255,184,107,0.35);color:#A35F00}
.esempio{font-size:14px;padding:10px 12px;border-radius:12px;background:rgba(255,184,107,0.14);border:1px solid rgba(255,184,107,0.35);color:#A35F00}
