:root{--bg:#f7f7f4;--surface:#fff;--ink:#17201b;--muted:#5c6b62;--line:#e2e5df;--accent:#2e6b4f;--accent-ink:#fff;--danger:#a3341f;--radius:10px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.55}a{color:var(--accent)}.center{place-items:center;min-height:100dvh;padding:24px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:360px;padding:28px}.brand{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 4px;font-size:13px;font-weight:600}h1{letter-spacing:-.01em;margin:0 0 18px;font-size:22px}label{color:var(--muted);margin:0 0 6px;font-size:13px;display:block}input[type=password]{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px;font-size:15px}input[type=password]:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}button{font:inherit;cursor:pointer;background:var(--accent);color:var(--accent-ink);border:none;border-radius:8px;padding:10px 14px;font-weight:600}button:disabled{opacity:.6;cursor:default}.btn-ghost{color:var(--muted);border:1px solid var(--line);background:0 0;font-weight:500}.err{color:var(--danger);min-height:1em;margin:10px 0 0;font-size:13px}.stack>*+*{margin-top:14px}.page{max-width:720px;margin:0 auto;padding:32px 24px 64px}.topbar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:14px 24px;display:flex}.topbar .brand{margin:0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:18px;padding:20px 22px}.panel h2{margin:0 0 8px;font-size:15px}.panel p{color:var(--muted);margin:6px 0;font-size:14px}.tag{font-family:var(--mono);color:var(--accent);background:#eef2ee;border-radius:6px;padding:2px 7px;font-size:12px;display:inline-block}ul.checks{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:14px}ul.checks li{margin:4px 0}.pagehead{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px;display:flex}.pagehead h1{margin:0}.btnlink{background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:9px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-block}.foodlist{margin:12px 0 0;padding:0;list-style:none}.foodrow{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:8px}.foodrow-main{color:var(--ink);flex-direction:column;gap:3px;padding:12px 16px;text-decoration:none;display:flex}.foodname{font-weight:600}.foodbrand{color:var(--muted);font-weight:400}.foodmeta{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.badge{color:var(--accent);letter-spacing:.03em;background:#eaf3ee;border-radius:5px;padding:1px 7px;font-size:11px;font-weight:600}.foodform{max-width:560px;margin-top:16px}.foodform .field{flex-direction:column;margin-bottom:14px;display:flex}.foodform .row{gap:14px;display:flex}.foodform .row>.field,.foodform .row.three>.field{flex:1}.foodform label{color:var(--muted);margin-bottom:6px;font-size:13px}.foodform input,.foodform select{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;width:100%;padding:9px 11px}.foodform input:focus,.foodform select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.foodform fieldset.nutri{border:1px solid var(--line);border-radius:var(--radius);margin:4px 0 16px;padding:14px 16px 4px}.foodform legend{color:var(--muted);padding:0 6px;font-size:12px}.foodform .hint{color:var(--muted);margin:2px 0 10px;font-size:13px}.foodform .hint.warn{color:var(--danger)}.foodform .check{color:var(--ink);align-items:center;gap:8px;margin:4px 0 18px;font-size:14px;display:flex}.foodform .check input{width:auto}.fielderr{color:var(--danger);margin:6px 0 0;font-size:12px}.deleteform{margin-top:28px}.btn-danger{color:var(--danger);border:1px solid var(--line);background:0 0;font-weight:500}.nav{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.navlink{color:var(--muted);font-size:14px;font-weight:500;text-decoration:none}.navlink:hover{color:var(--ink)}.foodmacros{color:var(--muted);font-size:12px}.ingrow{align-items:center;gap:8px;margin:8px 0;display:flex}.ingrow .ingfood{width:auto;min-width:0;font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;flex:auto;padding:8px 10px}.ingrow .ingqty{width:84px;font:inherit;border:1px solid var(--line);text-align:right;border-radius:8px;flex:0 0 84px;padding:8px 10px}.ingrow .ingunit{width:44px;color:var(--muted);flex:none;font-size:13px}.ingrow .ingdel{width:34px;height:34px;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:8px;flex:none;padding:0;font-size:18px;line-height:1}.adding{margin-top:6px}.totals{border:1px solid var(--line);border-radius:var(--radius);background:#f2f6f3;margin:4px 0 18px;padding:14px 16px}.totrow{justify-content:space-between;align-items:baseline;display:flex}.totrow strong{font-size:18px}.totrow.sub{color:var(--muted);margin-top:6px}.totrow.sub strong{color:var(--ink);font-size:15px}.totmacros{color:var(--muted);gap:14px;margin-top:4px;font-size:13px;display:flex}.banner-err{color:var(--danger);background:#fbece8;border:1px solid #f0d0c8;border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:14px}.daynav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.daylabel{text-align:center}.daylabel h1{font-variant-numeric:tabular-nums;margin:0}.navarrow{color:var(--accent);border:1px solid var(--line);background:var(--surface);border-radius:8px;place-items:center;width:40px;height:40px;font-size:20px;text-decoration:none;display:grid}.navarrow.disabled{color:var(--line)}.daytotals .totrow strong{font-size:22px}.bar{background:#e4eae5;border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.barfill{background:var(--accent);border-radius:999px;height:100%}.logform{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:16px 0;padding:14px 16px}.segmented{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;display:inline-flex;overflow:hidden}.seg{color:var(--muted);background:#fff;border:none;border-radius:0;padding:7px 16px;font-weight:500}.seg.on{background:var(--accent);color:var(--accent-ink)}.logrowinputs{align-items:center;gap:8px;margin-top:8px;display:flex}.logrowinputs .pickitem{flex:auto;width:auto;min-width:0}.logrowinputs .ingqty{flex:0 0 84px}.logrowinputs .ingunit{flex:none;width:64px}.mealsel{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 10px}.logpreview{color:var(--accent);font-size:14px;font-weight:600}.logform button[type=submit]{margin-top:12px}.loglist{margin:8px 0 0;padding:0;list-style:none}.logrow{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 14px;display:flex}.logmain{flex-direction:column;gap:2px;min-width:0;display:flex}.logname{font-weight:600}.logmeta{color:var(--muted);font-size:13px}.foodrow{align-items:center;display:flex}.foodrow .foodrow-main{flex:auto;min-width:0}.starform{display:flex}.starbtn{color:#d9a400;cursor:pointer;background:0 0;border:none;padding:8px 4px 8px 12px;font-size:20px;line-height:1}.quickpicks{margin:14px 0 6px}.qphead{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chipform{display:inline-flex}.chip{background:var(--surface);border:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;border-radius:999px;align-items:baseline;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.chip:hover{border-color:var(--accent)}.chipamt{color:var(--muted);font-size:12px}.searchbox{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:8px;padding:9px 11px}.searchbox:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.pickresults{flex-direction:column;gap:4px;max-height:240px;display:flex;overflow-y:auto}.pickrow{text-align:left;border:1px solid var(--line);font:inherit;cursor:pointer;color:var(--ink);background:#fff;border-radius:8px;padding:8px 12px}.pickrow.on{border-color:var(--accent);background:#f2f6f3;font-weight:600}.selname{margin:10px 0 6px;font-weight:600;display:block}.scanner{margin-top:16px}.scanvideo{border-radius:var(--radius);border:1px solid var(--line);background:#000;width:100%;max-width:420px;margin-bottom:12px;display:block}.scanvideo.hidden{display:none}.scanresult{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:14px 0;padding:16px}.scanmatch{margin:4px 0 12px;font-size:18px;font-weight:600}.manualscan{align-items:center;gap:8px;max-width:420px;margin-top:16px;display:flex}.manualscan .searchbox{margin-bottom:0}.linklike{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.sourcenote{color:var(--muted);border:1px solid var(--line);background:#eef2ee;border-radius:8px;margin:0 0 14px;padding:8px 12px;font-size:13px}.minilabel{color:var(--muted);margin:4px 0 6px;font-size:13px;display:block}.diffwarn{border-radius:var(--radius);background:#fdf6ec;border:1px solid #f0d8b8;margin:4px 0 14px;padding:12px 14px}.diffhead{color:#8a5a1a;margin:0 0 8px;font-size:13px}.difflist{margin:0 0 10px;padding:0;list-style:none}.difflist li{justify-content:space-between;gap:12px;padding:2px 0;font-size:13px;display:flex}.diffvals{color:var(--muted)}.diffvals b{color:var(--ink);font-weight:600}.ingqty{width:84px;font:inherit;border:1px solid var(--line);text-align:right;background:#fff;border-radius:8px;padding:8px 10px}.ingqty:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.logrowinputs .logpreview{margin-left:auto}.pastnote{color:#8a5a1a;background:#fdf6ec;border:1px solid #f0d8b8;border-radius:8px;margin:0 0 12px;padding:8px 12px;font-size:13px}
