:root{--jaune:#eab308;--jaune-bg:#fef9c3;--vert:#16a34a;--vert-bg:#dcfce7;--gris:#64748b;--gris-bg:#f1f5f9;--orange:#f97316;--bg:#f8fafc;--surface:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--accent:#2563eb;--danger:#dc2626;--radius:14px;--nav-h:64px}@media (prefers-color-scheme:dark){:root{--jaune-bg:#422006;--vert-bg:#052e16;--gris-bg:#1e293b;--bg:#0b1120;--surface:#111827;--text:#e5e7eb;--muted:#94a3b8;--border:#1f2937}}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}main{max-width:640px;margin:0 auto;padding:16px 16px 56px}h1{font-size:1.35rem;margin:4px 0 16px}h2{font-size:1.05rem;margin:20px 0 10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}label{display:block;font-size:.85rem;color:var(--muted);margin:10px 0 4px}button,input,select,textarea{font:inherit;width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text)}input[type=number]{-moz-appearance:textfield}button{cursor:pointer;border:none;background:var(--accent);color:#fff;font-weight:600}button.secondary{background:var(--gris-bg);color:var(--text)}button.ghost{color:var(--accent);padding:6px 10px}button.danger,button.ghost{background:transparent;width:auto}button.danger{color:var(--danger);padding:6px}button:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1 1}.row>.shrink{flex:0 0 auto;width:auto}.saisie{border-left:4px solid var(--jaune)}.calcule{border-left:4px solid var(--vert)}.info{border-left:4px solid var(--gris)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.pill.jaune{background:var(--jaune-bg);color:var(--jaune)}.pill.vert{background:var(--vert-bg);color:var(--vert)}.pill.gris{background:var(--gris-bg);color:var(--gris)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px}.stat{background:var(--gris-bg);border-radius:10px;padding:10px;border-left:4px solid transparent}.stat .val{font-size:1.15rem;font-weight:700}.stat .lbl{font-size:.72rem;color:var(--muted)}.stat.clic{cursor:pointer}.stat.clic:active{filter:brightness(.96)}.stat.st-vert{border-left-color:var(--vert)}.stat.st-orange{border-left-color:var(--orange)}.stat.st-rouge{border-left-color:var(--danger)}.stat.st-gris{border-left-color:var(--gris)}.stat.st-manquant{border-left-color:var(--jaune);background:var(--jaune-bg)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60;display:flex;align-items:flex-end;justify-content:center}.modal{background:var(--surface);border-radius:16px 16px 0 0;width:100%;max-width:640px;max-height:82vh;overflow-y:auto;padding:16px}@media (min-width:700px){.modal-backdrop{align-items:center}.modal{border-radius:16px}}.bd-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.bar{height:6px;background:var(--gris-bg);border-radius:3px;overflow:hidden;margin-top:5px}.bar>span{display:block;height:100%;background:var(--accent)}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border)}.scroll-x{overflow-x:auto}.muted{color:var(--muted)}.err,.muted{font-size:.85rem}.err{color:var(--danger)}.ok{color:var(--vert);font-weight:600}.bottom-nav{position:-webkit-sticky;position:sticky;top:0;left:0;right:0;height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;z-index:100}.bottom-nav::-webkit-scrollbar{height:0}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--muted);font-size:.66rem;flex:1 0 auto;min-width:12.5%;padding:6px 4px}.bottom-nav a.active{color:var(--accent)}.bottom-nav .ico{font-size:1.25rem;line-height:1}.app-footer{position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:.68rem;color:var(--muted);background:var(--surface);padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:50}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{height:0}.chips-wrap{display:flex;flex-wrap:wrap;gap:8px}.chip{flex:0 0 auto;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.82rem;cursor:pointer;white-space:nowrap;width:auto}.chip:disabled{opacity:.5;cursor:default}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.chip-ecart{border-color:var(--jaune);background:var(--jaune-bg)}.totaux{display:flex;flex-wrap:wrap;gap:6px 14px;padding:10px 12px;background:var(--vert-bg);border-radius:10px;margin-top:10px}.totaux .t{font-size:.82rem}.totaux .t b{font-size:.95rem}.ligne-aliment{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}.ligne-aliment .nom{flex:1 1;font-size:.9rem}.ligne-aliment input{width:84px;flex:0 0 auto}.overlay{position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;background:var(--bg);z-index:50;display:flex;flex-direction:column}.overlay-head{background:var(--surface);border-bottom:1px solid var(--border);padding:12px}.overlay-body{overflow-y:auto;padding:8px 12px calc(48px + env(safe-area-inset-bottom));flex:1 1}.overlay-head .row{margin-bottom:8px}.ali-pick{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 6px;border-bottom:1px solid var(--border);cursor:pointer}.ali-pick:active{background:var(--gris-bg)}.ali-pick .macro{font-size:.74rem;color:var(--muted);white-space:nowrap}.ali-pick .cat{font-size:.72rem;color:var(--jaune)}.added-flash{color:var(--vert);font-weight:600;font-size:.8rem}.suggestion{padding:10px 0;border-bottom:1px solid var(--border)}.suggestion:last-child{border-bottom:none}.suggestion .titre{font-weight:600}.suggestion .compo{font-size:.82rem;margin:4px 0 0}.suggestion .note{font-size:.76rem;color:var(--muted);margin:2px 0 0}.suggestion button{flex:0 0 auto;width:auto;padding:8px 14px}