:root{--accento:#1e3a5f;--accento-scuro:#14294a;--accento-chiaro:#e8eef5;--testo:#1f2933;--testo-tenue:#616e7c;--sfondo:#f7f8f6;--bianco:#fff;--rosso:#c0392b;color:var(--testo);background:var(--sfondo);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}.app{flex-direction:column;height:100dvh;display:flex}main.login{text-align:center;max-width:24rem;margin:18vh auto 0;padding:0 1.5rem}main.home{scrollbar-width:thin;flex:1;padding:1rem max(1.5rem,50% - 20rem) 1.5rem;overflow-y:auto}h1{color:var(--accento-scuro);align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.logo-app{border-radius:22%;width:1.6rem;height:1.6rem}.sottotitolo{color:var(--testo-tenue);margin-top:0}form{text-align:left;flex-direction:column;gap:.5rem;margin-top:2rem;display:flex}label{font-weight:600}input{background:var(--bianco);border:1px solid #cbd2d9;border-radius:.5rem;padding:.75rem;font-size:1rem}input:focus{outline:2px solid var(--accento);border-color:var(--accento)}button{color:var(--bianco);background:var(--accento);cursor:pointer;border:none;border-radius:.5rem;padding:.75rem 1rem;font-size:1rem;font-weight:600}button:hover{background:var(--accento-scuro)}button:disabled{opacity:.6;cursor:default}.messaggio{text-align:left;border-radius:.5rem;padding:.75rem 1rem}main.login .logo{border-radius:22.5%;width:6rem;height:6rem;margin:0 auto 1rem;display:block;box-shadow:0 2px 8px #0003}main.login button.passkey{width:100%;margin-top:2rem}button.separatore-link{color:var(--testo-tenue);background:0 0;border:none;margin-top:1.25rem;padding:.25rem;font-size:.85rem;font-weight:400;text-decoration:underline}button.separatore-link:hover{color:var(--accento-scuro);background:0 0}main.login form{margin-top:.75rem}.messaggio.ok{color:#1b5e20;background:#e3f2e4}.messaggio.errore{color:var(--rosso);background:#fbeaea}header{justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0 1rem;display:flex}.menu-profilo{position:relative}.menu-profilo button.profilo{border:1px solid var(--accento);background:0 0;border-radius:.5rem;padding:.35rem .6rem;font-size:1.15rem;line-height:1}.menu-profilo button.profilo:hover,.menu-profilo button.profilo.attivo{background:var(--accento-chiaro)}.menu-profilo .sfondo-menu{z-index:10;position:fixed;inset:0}.menu-profilo .tendina{z-index:11;background:var(--bianco);border:1px solid #e4e7eb;border-radius:.6rem;flex-direction:column;gap:.1rem;min-width:11rem;padding:.4rem;display:flex;position:absolute;top:calc(100% + .4rem);right:0;box-shadow:0 6px 20px #0000001f}.tendina .email-utente{color:var(--testo-tenue);overflow-wrap:anywhere;border-bottom:1px solid #eef0f2;margin:.2rem .6rem .35rem;padding-bottom:.4rem;font-size:.75rem}.tendina button{text-align:left;color:var(--testo);background:0 0;border:none;border-radius:.4rem;padding:.55rem .6rem;font-size:.9rem;font-weight:500}.tendina button:hover{background:var(--accento-chiaro)}.tendina button.attiva{background:var(--accento-chiaro);color:var(--accento-scuro)}nav.barra-viste{background:var(--bianco);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #e4e7eb;flex:none;justify-content:center;display:flex}nav.barra-viste button{max-width:8rem;color:var(--testo-tenue);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.5rem .25rem;font-size:.72rem;font-weight:600;display:flex}nav.barra-viste button .icona{font-size:1.25rem;line-height:1;position:relative}.badge-tab{background:var(--rosso);min-width:1rem;color:var(--bianco);text-align:center;border-radius:999px;padding:.05rem .25rem;font-size:.62rem;font-weight:700;line-height:1.4;position:absolute;top:-.3rem;right:-.7rem}nav.barra-viste button:hover{background:var(--accento-chiaro)}nav.barra-viste button.attiva{color:var(--accento-scuro);background:var(--accento-chiaro)}.filtri{flex-wrap:wrap;gap:.5rem;display:flex}.filtri input[type=search]{flex:2;min-width:10rem}.filtri select{background:var(--bianco);border:1px solid #cbd2d9;border-radius:.5rem;flex:1;min-width:9rem;padding:.75rem;font-size:.95rem}.conteggio{color:var(--testo-tenue);margin:.5rem 0;font-size:.85rem}ul.lista{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.scheda{background:var(--bianco);border:1px solid #e4e7eb;border-radius:.6rem;padding:.75rem 1rem}.riga-principale{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.riga-principale .nome{font-weight:600}.riga-principale .valore{white-space:nowrap;color:var(--testo-tenue)}.riga-dettaglio{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;font-size:.85rem;display:flex}.tenue{color:var(--testo-tenue)}.macro{white-space:nowrap;margin-left:auto}.pill{white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:700;display:inline-block}.pill.basso{color:#1b5e20;background:#e3f2e4}.pill.medio{color:#8a6d00;background:#fdf3d7}.pill.alto{color:#c0392b;background:#fbeaea}.tag{color:var(--testo-tenue);white-space:nowrap;border:1px solid #cbd2d9;border-radius:999px;padding:.05rem .45rem;font-size:.75rem;font-weight:600}.tag.accento{color:var(--accento-scuro);border-color:var(--accento)}.spunta{font-size:.85em}details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}table.ingredienti{border-collapse:collapse;width:100%;margin-top:.75rem;font-size:.88rem}table.ingredienti th,table.ingredienti td{text-align:left;border-top:1px solid #eef0f2;padding:.3rem .4rem}table.ingredienti th{color:var(--testo-tenue);border-top:none;font-weight:600}table.ingredienti td:nth-child(n+2),table.ingredienti th:nth-child(n+2){text-align:right;white-space:nowrap}table.ingredienti tfoot td{border-top:2px solid #e4e7eb;font-weight:700}.dettagli-extra{margin:.5rem 0 0;font-size:.82rem}.avvertenza{font-size:.85rem}.blocco-slot h2{color:var(--accento-scuro);margin:1.25rem 0 .5rem;font-size:1.1rem}.scheda.componente{margin-bottom:.5rem}.scheda.componente h3{text-transform:uppercase;letter-spacing:.03em;color:var(--testo-tenue);margin:0 0 .4rem;font-size:.85rem}ul.voci-piano{margin:0;padding:0;list-style:none}ul.voci-piano li{border-top:1px solid #f0f2f4;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.25rem 0;font-size:.92rem;display:flex}ul.voci-piano li:first-child{border-top:none}ul.voci-piano li .valore{color:var(--testo-tenue);white-space:nowrap}ul.voci-piano li.prima-scelta .nome{font-weight:600}.nota-voce{width:100%;font-size:.78rem}.nav-settimana{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.titolo-settimana{font-weight:600}button.mini{color:var(--accento-scuro);background:0 0;border:1px solid #cbd2d9;border-radius:.4rem;padding:.3rem .6rem;font-size:.8rem;font-weight:600}button.mini:hover{background:var(--accento-chiaro)}button.mini:disabled:hover{background:0 0}button.mini.icona{padding:.25rem .45rem;font-size:.9rem;line-height:1}.scheda.giorno{margin-bottom:.5rem}.pasto{border-top:1px solid #eef0f2;margin-top:.5rem;padding:.5rem 0}.pasto-testata{align-items:center;gap:.5rem;display:flex}.pasto-testata h3{text-transform:uppercase;letter-spacing:.03em;color:var(--testo-tenue);flex:1;margin:0;font-size:.85rem}ul.voci-pasto{margin:.25rem 0;padding:0;list-style:none}ul.voci-pasto li{align-items:center;gap:.5rem;padding:.2rem 0;font-size:.92rem;display:flex}ul.voci-pasto li .nome-voce{flex:1}ul.voci-pasto li .azioni{gap:.3rem;display:flex}.nome-voce .ingredienti-voce{color:var(--testo-tenue);font-size:.8rem;display:block}.nome-voce .ingredienti-voce .riga-ingrediente{display:block}.tag.rosso{color:var(--rosso);border-color:var(--rosso)}.selettore{background:var(--sfondo);border:1px solid #e4e7eb;border-radius:.5rem;margin-top:.5rem;padding:.6rem}.selettore input[type=search]{width:100%;padding:.5rem .6rem;font-size:.9rem}ul.candidati{max-height:18rem;margin:.5rem 0;overflow-y:auto}button.candidato{text-align:left;background:var(--bianco);width:100%;color:var(--testo);border:1px solid #e4e7eb;padding:.5rem .6rem;font-size:.9rem;font-weight:400;display:block}button.candidato:hover{background:var(--accento-chiaro)}button.candidato .nome{font-weight:600;display:block}.avviso-fp{margin:.5rem 0;font-size:.9rem}.avviso-fp .azioni{gap:.5rem;margin-top:.5rem;display:flex}.riepilogo-giorno{margin-bottom:.75rem}.pasto-diario{margin-bottom:.5rem}ul.voci-pasto li.da-confermare{padding:.3rem 0;display:block}.voce-check{align-items:center;gap:.5rem;font-weight:400;display:flex}.voce-check input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accento)}.modifica-ingredienti{margin:.2rem 0 .3rem 1.7rem;font-size:.85rem}.modifica-ingredienti summary{color:var(--testo-tenue)}.riga-grammi{align-items:center;gap:.5rem;padding:.15rem 0;font-weight:400;display:flex}.riga-grammi span{flex:1}.riga-grammi input{width:5.5rem;padding:.3rem .4rem;font-size:.85rem}.azioni-pasto{justify-content:space-between;align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.azioni-pasto button:not(.mini){padding:.45rem .9rem;font-size:.9rem}.modo-selettore{gap:.4rem;margin-bottom:.5rem;display:flex}button.mini.attivo{background:var(--accento);color:var(--bianco);border-color:var(--accento)}button.mini.attivo:hover{background:var(--accento-scuro)}.grammi-inline{width:4.5rem;padding:.3rem .4rem;font-size:.85rem}ul.alimenti-scelti{border-bottom:1px solid #e4e7eb;margin-bottom:.4rem;padding-bottom:.4rem}.contatore-spesa{white-space:nowrap;font-size:.85rem;font-weight:600}.nav-settimana .azioni{align-items:center;gap:.4rem;display:flex}.gruppo-spesa{margin-bottom:.5rem}.gruppo-spesa h3{text-transform:uppercase;letter-spacing:.03em;color:var(--testo-tenue);margin:0;font-size:.85rem;display:inline}.voci-spesa .voce-check{flex:1}.voci-spesa li.spuntata .voce-check .nome-voce{color:var(--testo-tenue);text-decoration:line-through}.genera-spesa h3{margin:0 0 .5rem;font-size:1rem}.genera-spesa h4{color:var(--testo-tenue);margin:.75rem 0 .35rem;font-size:.85rem}.intervallo-spesa{flex-wrap:wrap;gap:.75rem;display:flex}.intervallo-spesa label{color:var(--testo-tenue);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.intervallo-spesa input[type=date]{background:var(--bianco);border:1px solid #cbd2d9;border-radius:.5rem;padding:.45rem .5rem;font-size:.9rem}.chips-abituali{flex-wrap:wrap;gap:.5rem;display:flex}.chip-abituale{align-items:center;gap:.2rem;display:inline-flex}.aggiungi-voce{gap:.4rem;margin-top:.4rem;display:flex}.aggiungi-voce input[type=search]{flex:1;padding:.5rem .6rem;font-size:.9rem}ul.suggerimenti-spesa{max-height:12rem}.pannello-aggiunta{margin-bottom:.75rem}.pannello-aggiunta>button.mini{margin:.25rem .4rem .25rem 0}.scanner-inquadratura{text-align:center;position:relative}.scanner-inquadratura video{object-fit:cover;background:#000;border-radius:.5rem;width:100%;max-height:45vh}.scanner-guida{border:2px solid var(--bianco);pointer-events:none;border-radius:.5rem;width:70%;height:38%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000040}.ean-manuale{gap:.4rem;margin:.5rem 0;display:flex}.ean-manuale input{flex:1;padding:.5rem .6rem;font-size:.9rem}.form-alimento h3{margin:0 0 .5rem;font-size:1rem}.form-alimento label{margin:.5rem 0 0;font-size:.85rem;display:block}.form-alimento input[type=text],.form-alimento select{background:var(--bianco);border:1px solid #cbd2d9;border-radius:.5rem;width:100%;margin-top:.2rem;padding:.5rem .6rem;font-size:.9rem;display:block}.griglia-valori{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.2rem .5rem;display:grid}.flag-alimento label{align-items:center;gap:.4rem;font-weight:400;display:flex}.flag-alimento input[type=checkbox]{width:1.1rem;height:1.1rem}.mesi-stagione{flex-wrap:wrap;align-items:center;gap:.25rem;margin:.5rem 0;display:flex}.mesi-stagione button.mini{min-width:1.8rem;padding:.25rem .3rem}.azioni-form{gap:.5rem;margin-top:.5rem;display:flex}button.candidato.riga-dispensa{background:0 0;border:none;align-items:center;gap:.5rem;padding:.25rem 0;display:flex}button.candidato.riga-dispensa .nome-voce{text-align:left;flex:1;font-weight:400}.scheda-dispensa{margin-bottom:.75rem}.azioni-dispensa{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.scadenza-dispensa{color:var(--testo-tenue);align-items:center;gap:.4rem;margin-top:.5rem;font-size:.85rem;font-weight:400;display:flex}.scadenza-dispensa input[type=date]{background:var(--bianco);border:1px solid #cbd2d9;border-radius:.5rem;padding:.35rem .5rem;font-size:.85rem}.toggle-fuori-casa{margin-top:.4rem;font-size:.85rem}
