:root{--bg-base:#111112;--bg-card:#1a1a1b;--bg-elevated:#262525;--accent-primary:#d2ff00;--accent-on-primary:#111112;--accent-danger:#ff6b47;--text-primary:#fafafa;--text-secondary:#a3a3a3;--border-subtle:rgba(250,250,250,0.08);color-scheme:dark}*{box-sizing:border-box;margin:0}body,html{background:var(--bg-base);color:var(--text-primary);font:16px/1.4 -apple-system,system-ui,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}main{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 96px)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}img{display:block}.tasto{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:10px;background:var(--accent-primary);color:var(--accent-on-primary);font-weight:600}.tasto:disabled{opacity:.4}.tasto.secondario{background:var(--bg-elevated);color:var(--text-primary);font-weight:500}.tasto.grande{width:100%;min-height:56px;font-size:18px}.tasto.fisso{position:fixed;left:16px;right:16px;width:auto;bottom:calc(env(safe-area-inset-bottom) + 16px)}.errore{color:var(--accent-danger)}.vuoto{color:var(--text-secondary);padding:24px 0}.camera{padding:0;background:#000}.camera video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover}.senza-camera{padding:40vh 16px 0;display:grid;grid-gap:16px;gap:16px;color:var(--text-secondary)}.barra-camera{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:12px;gap:12px;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);background:linear-gradient(transparent,rgba(0,0,0,.7))}.barra-camera .tasto{justify-self:start}.otturatore{width:76px;height:76px;border-radius:50%;background:var(--text-primary);box-shadow:0 0 0 4px var(--bg-base),0 0 0 7px var(--text-primary)}.otturatore:active{transform:scale(.94)}.attesa{justify-self:end;font-size:13px;color:var(--accent-primary);text-align:right}.risultato header{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.scatto{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:none}.stato{display:grid;grid-gap:8px;gap:8px;justify-items:start}.stato small{color:var(--text-secondary)}.prodotti{list-style:none;padding:0;display:grid;grid-gap:8px;gap:8px}.prodotti li{display:flex;align-items:stretch;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}.prodotti a{flex:1 1;min-width:0;display:flex;gap:12px;padding:8px;color:inherit;text-decoration:none}.prodotti img{width:72px;height:72px;object-fit:cover;border-radius:8px;flex:none;background:var(--bg-elevated)}.prodotti a>div{min-width:0}.titolo{font-size:13px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prezzo{font-size:18px;font-weight:700;margin-top:2px}.quantita{font-size:13px;color:var(--accent-primary)}.fornitore{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mostra-altri{width:100%;margin-top:12px}.togli{width:48px;flex:none;font-size:26px;border-left:1px solid var(--border-subtle)}.ritaglio p,.togli{color:var(--text-secondary)}.ritaglio p{margin-bottom:12px}.ritaglio .area{position:relative;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.ritaglio .area img{width:100%;height:auto;border-radius:10px;-webkit-touch-callout:none}.riquadro{position:absolute;border:2px solid var(--accent-primary);box-shadow:0 0 0 9999px rgba(0,0,0,.5);pointer-events:none}.ritaglio .area{overflow:hidden;border-radius:10px}.barra{position:fixed;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 16px);display:grid;grid-template-columns:1fr 2fr;grid-gap:12px;gap:12px}.barra.tre{grid-template-columns:1fr 1fr 1.3fr;gap:8px}.barra .tasto{min-height:52px;padding:0 8px}.ritaglio .area.attiva{outline:2px dashed var(--accent-primary);outline-offset:2px}.ritaglio .area{width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 auto}.ritaglio .area img{width:auto;max-width:100%;max-height:calc(100dvh - 200px)}.puntini{display:inline-flex;gap:5px;vertical-align:middle}.puntini i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:puntino 1.2s ease-in-out infinite}.puntini i:nth-child(2){animation-delay:.2s}.puntini i:nth-child(3){animation-delay:.4s}@keyframes puntino{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.attesa-grande{display:flex;justify-content:center;padding:48px 0;color:var(--accent-primary)}.attesa-grande .puntini i{width:14px;height:14px}.elenco h1{font-size:22px;margin-bottom:12px}.elenco ul{list-style:none;padding:0;display:grid;grid-gap:8px;gap:8px}.elenco li button{width:100%;display:flex;gap:12px;align-items:center;padding:8px;text-align:left;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px}.elenco li img{width:56px;height:56px;object-fit:cover;border-radius:8px}.login{display:grid;align-content:center;grid-gap:24px;gap:24px}.login form{display:grid;grid-gap:12px;gap:12px}.login input{min-height:52px;padding:0 16px;border-radius:10px;font-size:17px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-subtle)}