:root{--verde: #1f6b3b;--verde-scuro: #123d23;--verde-chiaro: #e6f0e8;--carta: #fafaf7;--superficie: #ffffff;--inchiostro: #1c1b17;--testo-2: #5d5b52;--giallo: #f2c144;--rosso: #c43d2f;--rosso-chiaro: #fbeae8;--grigio: #8a8878;--grigio-chiaro: #eeede5;--linea: #e2e0d6;--ombra: 0 1px 2px rgba(28, 27, 23, .06), 0 8px 24px -12px rgba(28, 27, 23, .18);--ombra-hover: 0 2px 4px rgba(28, 27, 23, .08), 0 16px 32px -12px rgba(28, 27, 23, .28);--raggio: 12px;--font-display: "Archivo Black", sans-serif;--font-body: "Archivo", sans-serif;--font-data: "IBM Plex Mono", monospace;--nav-h: 60px;--tabbar-h: calc(60px + env(safe-area-inset-bottom)) ;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--verde: #4fae73;--verde-scuro: #1f6b3b;--verde-chiaro: #17321f;--carta: #151613;--superficie: #1e201b;--inchiostro: #f1efe6;--testo-2: #b9b6a8;--giallo: #f2c144;--rosso: #e0604f;--rosso-chiaro: #3a1f1b;--grigio: #8f8d80;--grigio-chiaro: #2a2c26;--linea: #33352f;--ombra: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6);--ombra-hover: 0 2px 4px rgba(0, 0, 0, .5), 0 16px 32px -12px rgba(0, 0, 0, .7);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--carta);color:var(--inchiostro);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;margin:0 0 8px}h1{font-size:clamp(1.5rem,1.2rem + 1.4vw,2.1rem);text-transform:uppercase;line-height:1.15}h2{font-size:1.1rem}p{margin:0 0 12px}a{color:var(--verde)}img{max-width:100%}.shell{min-height:100dvh;display:flex;flex-direction:column}.container{width:100%;max-width:1040px;margin:0 auto;padding:24px 16px calc(var(--tabbar-h) + 24px);flex:1}.container.narrow{max-width:680px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head .sottotitolo{color:var(--testo-2);margin:0}nav.topbar{position:sticky;top:0;z-index:20;background:var(--verde-scuro);color:#fafaf7;height:var(--nav-h);padding-top:env(safe-area-inset-top)}nav.topbar .inner{max-width:1040px;margin:0 auto;padding:0 16px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}nav.topbar .brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);text-transform:uppercase;font-size:1.05rem;color:inherit;text-decoration:none;letter-spacing:.02em}nav.topbar .brand svg{width:30px;height:30px}nav.topbar .links{display:none;align-items:center;gap:6px}nav.topbar .links a{color:#fafaf7;text-decoration:none;font-size:.92rem;font-weight:600;padding:8px 14px;border-radius:999px;opacity:.85;transition:background .15s,opacity .15s}nav.topbar .links a:hover{background:#ffffff1a;opacity:1}nav.topbar .links a.active{background:var(--giallo);color:#1c1b17;opacity:1}nav.topbar .links .utente{font-size:.8rem;opacity:.7;margin:0 8px 0 12px;font-family:var(--font-data)}nav.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--superficie);border-top:1px solid var(--linea);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 16px -8px #00000026}nav.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 8px;text-decoration:none;color:var(--grigio);font-size:.7rem;font-weight:600;letter-spacing:.02em}nav.tabbar a svg{width:24px;height:24px}nav.tabbar a.active{color:var(--verde)}nav.tabbar a.active svg{filter:drop-shadow(0 2px 4px rgba(31,107,59,.3))}@media (min-width: 768px){nav.topbar .links{display:flex}nav.tabbar{display:none}.container{padding-bottom:48px;padding-left:24px;padding-right:24px}:root{--tabbar-h: 0px}}button,.btn{font-family:var(--font-body);font-weight:600;font-size:.95rem;background:var(--verde);color:#fafaf7;border:none;border-radius:10px;padding:12px 20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s,box-shadow .15s,background .15s,opacity .15s;text-decoration:none}button:hover,.btn:hover{box-shadow:0 6px 16px -6px #1f6b3b8c;transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.6;cursor:wait;transform:none;box-shadow:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,.pill:focus-visible{outline:3px solid var(--giallo);outline-offset:2px}button.secondary{background:transparent;color:var(--verde);border:2px solid var(--verde)}button.ghost{background:var(--superficie);color:var(--inchiostro);border:1px solid var(--linea);font-weight:500;padding:9px 14px;font-size:.88rem}button.ghost:hover{box-shadow:var(--ombra)}button.piena{width:100%}button.pericolo{background:var(--rosso)}button.pericolo:hover{box-shadow:0 6px 16px -6px #c43d2f8c}input[type=text],input[type=email],input[type=password],select,textarea{font-family:var(--font-body);font-size:1rem;color:var(--inchiostro);border:1.5px solid var(--linea);border-radius:10px;padding:12px 14px;background:var(--superficie);width:100%;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.45;margin-bottom:12px}input:focus,select:focus,textarea:focus{border-color:var(--verde);box-shadow:0 0 0 4px #1f6b3b1f;outline:none}input[type=checkbox]{width:20px;height:20px;accent-color:var(--verde);cursor:pointer;flex-shrink:0}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%238a8878' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}select.compatta{width:auto;padding:6px 32px 6px 10px;font-size:.85rem;border-radius:8px}label{font-size:.88rem;font-weight:600;display:block;margin:14px 0 6px}.campo{margin-bottom:4px}.chip{display:inline-block;font-family:var(--font-data);font-size:.7rem;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em;margin:2px 4px 2px 0;line-height:1.4}.chip.segnale{background:var(--giallo);color:#1c1b17}.chip.escluso{background:var(--rosso);color:#fff}.chip.label{background:var(--verde-chiaro);color:var(--verde)}.chip.grigio{background:var(--grigio-chiaro);color:var(--grigio)}.nutri{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;font-family:var(--font-display);font-size:.95rem;color:#fff;flex-shrink:0}.nutri.a{background:#038141}.nutri.b{background:#85bb2f}.nutri.c{background:#fecb02;color:#1c1b17}.nutri.d{background:#ee8100}.nutri.e{background:#e63e11}.nutri.na{background:var(--grigio-chiaro);color:var(--grigio)}.nutri.grande{width:44px;height:44px;font-size:1.4rem;border-radius:10px}.nova{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-data);font-size:.78rem;padding:4px 10px;border-radius:999px;background:var(--grigio-chiaro);color:var(--testo-2)}.nova.n4{background:var(--rosso-chiaro);color:var(--rosso)}.nova.n1{background:var(--verde-chiaro);color:var(--verde)}.pills{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:4px 16px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pills::-webkit-scrollbar{display:none}.pill{flex-shrink:0;padding:9px 16px;border-radius:999px;border:1.5px solid var(--linea);background:var(--superficie);color:var(--inchiostro);font-weight:600;font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s;font-family:var(--font-body)}.pill:hover{border-color:var(--verde)}.pill.active{background:var(--verde);border-color:var(--verde);color:#fafaf7}@media (min-width: 768px){.pills{margin:0;padding-left:0;padding-right:0;flex-wrap:wrap}}.funnel{margin:16px 0 12px;background:var(--superficie);border:1px solid var(--linea);border-radius:var(--raggio);padding:16px;box-shadow:var(--ombra)}.funnel .titolo{font-size:.78rem;font-weight:600;color:var(--testo-2);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px}.funnel .bar{display:flex;height:38px;border-radius:8px;overflow:hidden;font-family:var(--font-data);font-size:.72rem}.funnel .bar>div{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;transition:flex .4s ease}.funnel .seg-compat{background:var(--verde);color:#fafaf7}.funnel .seg-escl{background:var(--rosso);color:#fff}.funnel .seg-nonver{background:repeating-linear-gradient(45deg,var(--grigio-chiaro),var(--grigio-chiaro) 6px,var(--linea) 6px,var(--linea) 12px);color:var(--grigio)}.funnel .legenda{display:flex;gap:6px 20px;margin-top:10px;font-size:.8rem;color:var(--testo-2);flex-wrap:wrap}.funnel .legenda span{display:inline-flex;align-items:center;gap:6px}.funnel .legenda i{width:10px;height:10px;border-radius:3px;display:inline-block}.funnel .legenda b{font-family:var(--font-data);color:var(--inchiostro)}.griglia{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}@media (min-width: 640px){.griglia{grid-template-columns:repeat(2,1fr)}}@media (min-width: 960px){.griglia{grid-template-columns:repeat(3,1fr);gap:16px}}.card{display:flex;gap:14px;align-items:center;background:var(--superficie);border:1px solid var(--linea);border-radius:var(--raggio);padding:12px;text-decoration:none;color:inherit;box-shadow:var(--ombra);transition:transform .15s,box-shadow .15s,border-color .15s;min-width:0}.card:hover{transform:translateY(-2px);box-shadow:var(--ombra-hover);border-color:var(--verde)}.card .foto{width:72px;height:72px;flex-shrink:0;border-radius:8px;background:var(--carta);display:flex;align-items:center;justify-content:center;overflow:hidden}.card .foto img{width:100%;height:100%;object-fit:contain}.card .foto svg{width:30px;height:30px;color:var(--linea)}.card .corpo{min-width:0;flex:1}.card .nome{font-weight:600;font-size:.95rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .meta{font-size:.8rem;color:var(--testo-2);margin-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card .chips{margin-top:4px}.card .punteggio{align-self:flex-start;font-family:var(--font-data);font-weight:600;font-size:.85rem;color:var(--verde);background:var(--verde-chiaro);padding:4px 8px;border-radius:6px;flex-shrink:0}.card .punteggio.neg{color:var(--rosso);background:var(--rosso-chiaro)}.skeleton{position:relative;overflow:hidden;background:var(--grigio-chiaro);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shimmer 1.3s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.card.sk{pointer-events:none}.card.sk .foto{background:var(--grigio-chiaro)}.card.sk .l1{height:14px;width:80%;margin-bottom:8px}.card.sk .l2{height:11px;width:55%}.vuoto{text-align:center;padding:40px 20px;color:var(--testo-2);background:var(--superficie);border:1px dashed var(--linea);border-radius:var(--raggio)}.vuoto svg{width:48px;height:48px;color:var(--linea);margin-bottom:8px}.avviso{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;background:var(--verde-chiaro);border-radius:10px;font-size:.9rem;margin:0 0 16px}.avviso svg{width:20px;height:20px;flex-shrink:0;color:var(--verde);margin-top:2px}.attr{margin:0 0 8px}.attr-list{margin-top:12px;display:grid;gap:10px}@media (min-width: 768px){.attr-list{grid-template-columns:1fr 1fr;gap:10px 24px}}.attr-row{font-size:.85rem}.attr-row .testo{display:flex;justify-content:space-between;gap:8px}.attr-row .track{background:var(--grigio-chiaro);border-radius:4px;height:8px;margin-top:5px;overflow:hidden}.attr-row .fill{background:var(--rosso);height:100%;border-radius:4px;transition:width .4s ease}.attr-row .pct{font-family:var(--font-data);font-weight:600}.riga{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--linea)}.riga:last-child{border-bottom:none}.riga label{margin:0;flex:1;font-weight:500;cursor:pointer}fieldset,.sezione{border:1px solid var(--linea);border-radius:var(--raggio);margin:0 0 16px;padding:16px 18px 18px;background:var(--superficie);box-shadow:var(--ombra);min-width:0}legend,.sezione h2{font-family:var(--font-display);font-size:.8rem;padding:0 8px;text-transform:uppercase;letter-spacing:.06em;color:var(--verde)}.sezione h2{padding:0;margin-bottom:12px}.profilo-grid{display:grid;grid-template-columns:1fr;gap:0 20px;align-items:start}@media (min-width: 900px){.profilo-grid{grid-template-columns:1fr 1fr}.profilo-grid .largo{grid-column:1 / -1}}.salva-bar{position:sticky;bottom:calc(var(--tabbar-h) + 12px);z-index:10;background:var(--superficie);border:1px solid var(--linea);border-radius:var(--raggio);box-shadow:var(--ombra-hover);padding:12px 16px;margin-top:8px;display:flex;align-items:center;gap:12px;justify-content:space-between}.salva-bar .stato{font-size:.85rem;color:var(--testo-2)}.salva-bar .stato.ok{color:var(--verde);font-weight:600}.salva-bar .stato.err{color:var(--rosso);font-weight:600}.mono{font-family:var(--font-data)}.nota{font-size:.82rem;color:var(--testo-2)}.errore{background:var(--rosso-chiaro);border:1px solid var(--rosso);border-radius:10px;padding:10px 14px;margin:12px 0;font-size:.9rem}.successo{background:var(--verde-chiaro);border:1px solid var(--verde);border-radius:10px;padding:12px 14px;margin:12px 0;font-size:.9rem}.torna{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600;font-size:.9rem;margin-bottom:12px}.torna svg{width:18px;height:18px}.torna-bar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.scanner{position:relative;width:100%;aspect-ratio:4 / 3;max-height:60dvh;overflow:hidden;background:#000;border-radius:var(--raggio);box-shadow:var(--ombra);margin-bottom:16px}.scanner video{width:100%;height:100%;object-fit:cover;display:block}.scanner .mira{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(70%,320px);aspect-ratio:2 / 1;border:3px solid var(--giallo);border-radius:12px;box-shadow:0 0 0 100vmax #00000059;opacity:0;transition:opacity .3s}.scanner.pronto .mira{opacity:1}.scanner .stato{position:absolute;left:0;right:0;bottom:12px;margin:0;text-align:center;color:#fff;font-size:.9rem;text-shadow:0 1px 3px rgba(0,0,0,.8)}.scan-azioni{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.scan-azioni button{flex:1;min-width:220px}.scan-manuale label{display:block;margin-bottom:6px}.riga-input{display:flex;gap:8px}.riga-input input{font-family:var(--font-data);letter-spacing:.04em}.btn.secondary{background:transparent;color:var(--verde);border:2px solid var(--verde)}.etichetta{display:grid;gap:0}@media (min-width: 900px){.etichetta{grid-template-columns:1fr 1fr;gap:0 20px}.etichetta .esito{grid-column:1 / -1}}.etichetta-anteprima{display:block;max-height:280px;object-fit:contain;border-radius:10px;margin:0 auto 12px;background:var(--grigio-chiaro)}.progress{position:relative;margin-top:12px;background:var(--grigio-chiaro);border-radius:8px;height:26px;overflow:hidden}.progress .fill{position:absolute;inset:0 auto 0 0;background:var(--verde-chiaro);transition:width .3s}.progress .nota{position:relative;display:block;line-height:26px;padding:0 10px}.esito .chip{margin:2px 4px 2px 0}.combo{position:relative}.combo-lista{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;max-height:300px;overflow-y:auto;background:var(--superficie);border:1px solid var(--linea);border-radius:10px;box-shadow:var(--ombra-hover)}.combo-lista li{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center;padding:8px 10px;border-radius:8px;cursor:pointer}.combo-lista li .nota{grid-column:1 / -1;font-size:.8rem}.combo-lista li.attivo,.combo-lista li:hover{background:var(--verde-chiaro)}.collegata{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0 0}.collegata svg{width:16px;height:16px;color:var(--verde)}.collegata button.ghost{padding:2px 8px;margin-left:auto}.avanzate{margin-top:14px}.avanzate summary{cursor:pointer;color:var(--testo-2);font-size:.9rem}.ingredienti{margin:0 0 12px;line-height:1.55;overflow-wrap:anywhere}.ingredienti strong{font-weight:700}.esito p{margin:6px 0}.foto-griglia{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.foto-thumb{aspect-ratio:1;padding:0;border-radius:10px;overflow:hidden;background:var(--grigio-chiaro);border:1px solid var(--linea);box-shadow:none;color:var(--testo-2)}.foto-thumb:hover{transform:none;box-shadow:var(--ombra)}.foto-thumb img{width:100%;height:100%;object-fit:cover;display:block}.foto-thumb.aggiungi{flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;color:var(--verde);border-style:dashed;background:var(--superficie)}.foto-thumb.aggiungi svg{width:28px;height:28px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}.lightbox img{max-width:100%;max-height:calc(100dvh - 120px);object-fit:contain;border-radius:8px}.lightbox-bar{display:flex;gap:10px;align-items:center;color:#fff;font-size:.85rem;flex-wrap:wrap;justify-content:center}.scheda{display:grid;grid-template-columns:1fr;gap:20px}@media (min-width: 800px){.scheda{grid-template-columns:360px 1fr;gap:28px;align-items:start}.scheda .foto-col{position:sticky;top:calc(var(--nav-h) + 16px)}}.scheda figure{margin:0;background:var(--superficie);border:1px solid var(--linea);border-radius:var(--raggio);padding:20px;box-shadow:var(--ombra);text-align:center}.scheda figure img{max-height:340px;object-fit:contain}.scheda figure .noimg{height:200px;display:flex;align-items:center;justify-content:center;color:var(--linea)}.scheda figure .noimg svg{width:64px;height:64px}.scheda figcaption{margin-top:10px}.scheda .qualita{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.scheda .qualita .kv{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--linea);border-radius:10px;background:var(--carta)}.scheda .qualita .kv span{font-size:.8rem;color:var(--testo-2)}.auth{min-height:100dvh;display:grid;grid-template-columns:1fr}.auth .pannello{background:var(--verde-scuro);color:#fafaf7;padding:28px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;background-image:radial-gradient(circle at 85% 10%,rgba(242,193,68,.25),transparent 40%),radial-gradient(circle at 10% 90%,rgba(79,174,115,.35),transparent 45%)}.auth .pannello .brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);text-transform:uppercase;font-size:1.2rem}.auth .pannello .brand svg{width:40px;height:40px}.auth .pannello .claim{font-family:var(--font-display);font-size:clamp(1.4rem,1rem + 2vw,2.4rem);line-height:1.15;margin:0;text-transform:none}.auth .pannello .claim em{color:var(--giallo);font-style:normal}.auth .pannello .punti{display:none;margin:0;padding:0;list-style:none;gap:14px}.auth .pannello .punti li{display:flex;gap:12px;align-items:flex-start;opacity:.9;font-size:.95rem}.auth .pannello .punti svg{width:22px;height:22px;flex-shrink:0;color:var(--giallo)}.auth .pannello .demo-bar{display:flex;height:14px;border-radius:6px;overflow:hidden;margin-top:8px}.auth .pannello .demo-bar i{display:block}.auth .pannello .nota{color:#fafaf799}.auth .pannello .disclaimer{display:none}@media (min-width: 860px){.auth .pannello .disclaimer{display:block}}.auth .modulo{display:flex;align-items:center;justify-content:center;padding:32px 20px calc(32px + env(safe-area-inset-bottom))}.auth form,.auth .box{width:100%;max-width:400px}.auth h1{text-transform:none;font-size:1.6rem}.auth .switch{margin-top:20px}@media (min-width: 860px){.auth{grid-template-columns:minmax(360px,5fr) 6fr}.auth .pannello{padding:48px}.auth .pannello .punti{display:grid}.auth .modulo{padding:48px}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
