@font-face{font-family:Barlow;src:local(Barlow),local(Barlow-Regular);font-weight:400}@font-face{font-family:Barlow;src:local(Barlow SemiBold),local(Barlow-SemiBold);font-weight:600}@font-face{font-family:Barlow Condensed;src:local(Barlow Condensed SemiBold),local(BarlowCondensed-SemiBold);font-weight:600}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef1f4;--surface:#fff;--surface2:#f6f8fa;--ink:#121b25;--muted:#586674;--line:#d6dde4;--accent:#2246c7;--accent-ink:#fff;--accent-soft:#2246c71a;--good:#1e7f48;--good-soft:#1e7f481f;--good-text:#17663a;--warn:#a8670f;--warn-text:#8a5409;--warn-soft:#a8670f24;--red:#c2362e;--crit:#b4261e;--red-soft:#c2362e1f;--est:#7a5a00;--est-soft:#7a5a001f;--r:14px;--r-sm:9px;--tap:44px;--font:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-title:"Barlow Condensed", "Arial Narrow", "Barlow", system-ui, sans-serif;--tabbar:calc(64px + env(safe-area-inset-bottom))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1319;--surface:#161f29;--surface2:#1c2733;--ink:#e7edf3;--muted:#97a5b2;--line:#2a3746;--accent:#7b96ff;--accent-ink:#0d1319;--accent-soft:#7b96ff29;--good:#4cc584;--good-soft:#4cc58429;--good-text:#4cc584;--warn:#e3aa4e;--warn-text:#e3aa4e;--warn-soft:#e3aa4e29;--red:#f06a60;--crit:#ff8a80;--red-soft:#f06a6029;--est:#f2cf63;--est-soft:#f2cf6329}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1319;--surface:#161f29;--surface2:#1c2733;--ink:#e7edf3;--muted:#97a5b2;--line:#2a3746;--accent:#7b96ff;--accent-ink:#0d1319;--accent-soft:#7b96ff29;--good:#4cc584;--good-soft:#4cc58429;--good-text:#4cc584;--warn:#e3aa4e;--warn-text:#e3aa4e;--warn-soft:#e3aa4e29;--red:#f06a60;--crit:#ff8a80;--red-soft:#f06a6029;--est:#f2cf63;--est-soft:#f2cf6329}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 16px/1.45 var(--font);overflow-wrap:anywhere;margin:0;overflow-x:hidden}h1,h2,h3{font-family:var(--font-title);margin:0 0 8px;font-weight:600;line-height:1.15}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}p{margin:0 0 8px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:560px;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 16px calc(var(--tabbar) + 16px);margin:0 auto}.stack>*+*{margin-top:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spread{justify-content:space-between;align-items:center;gap:8px;display:flex}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:600}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.wrap{overflow-wrap:anywhere}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}.card.soft{background:var(--surface2)}.btn{min-height:var(--tap);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 16px/1.2 var(--font);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:10px 16px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{color:var(--accent);background:0 0;border-color:#0000}.btn.danger{background:var(--red-soft);border-color:var(--red);color:var(--crit)}.btn.small{min-height:var(--tap);min-width:var(--tap);padding:6px 10px;font-size:14px}.btn.block{width:100%}.chip{border:1px solid var(--line);background:var(--surface2);color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip.good{background:var(--good-soft);color:var(--good-text);border-color:#0000}.chip.warn{background:var(--warn-soft);color:var(--warn-text);border-color:#0000}.chip.est{background:var(--est-soft);color:var(--est);border-color:#0000}.reasons{gap:2px;margin:0;padding:0;list-style:none;display:grid}.reasons .good{color:var(--good-text)}.reasons .warn{color:var(--warn-text)}.option+.option{border-top:1px solid var(--line);padding-top:12px}.alert{border-radius:var(--r-sm);background:var(--accent-soft);border-left:4px solid var(--accent);padding:12px}.alert.good{background:var(--good-soft);border-color:var(--good)}.alert.warn{background:var(--warn-soft);border-color:var(--warn)}.alert.danger{background:var(--red-soft);border-color:var(--red)}.alert.update{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.alert.update p{flex:12em}details.fold{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}details.fold>summary{min-height:var(--tap);cursor:pointer;padding:12px 16px;font-weight:600;list-style-position:inside}details.fold>.fold-body{padding:0 16px 16px}.tabbar{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.tabbar ul{grid-template-columns:repeat(5,1fr);max-width:560px;margin:0 auto;padding:0;list-style:none;display:grid}.tabbar a{min-height:64px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--accent)}.tabbar svg{width:24px;height:24px}dialog.sheet{border-radius:var(--r) var(--r) 0 0;background:var(--surface);width:100%;max-width:560px;max-height:88dvh;color:var(--ink);border:0;margin:auto auto 0;padding:0}dialog.sheet::backdrop{background:#00000073}.sheet-head{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex;position:sticky;top:0}.sheet-head h2{margin:0}.sheet-body{padding:16px 16px calc(16px + env(safe-area-inset-bottom))}.toast{left:16px;right:16px;bottom:calc(var(--tabbar) + 12px);z-index:20;border-radius:var(--r-sm);background:var(--ink);max-width:528px;color:var(--bg);justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:8px 8px 8px 16px;display:flex;position:fixed}.toast .btn.ghost{color:var(--bg);text-decoration:underline}.state{text-align:center;padding:32px 16px}.spinner{border:4px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:0 auto 12px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.list{margin:0;padding:0;list-style:none}.list>li+li{border-top:1px solid var(--line)}.list-link{min-height:var(--tap);color:var(--ink);width:100%;font-weight:600;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 0;text-decoration:none;display:flex}label.field{font-weight:600;display:block}input[type=text],input[type=search],input[type=password],input[type=date],input[type=time],textarea,input[type=number],input[type=file],select{min-height:var(--tap);font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);max-width:100%;padding:8px 10px}.choice{min-height:var(--tap);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.choice input{flex:none;width:22px;height:22px;margin:2px 0 0}.ring{flex:none;width:120px;height:120px}.ring .track{stroke:var(--line)}.ring .fill{stroke:var(--accent)}.ring text{fill:var(--ink);font-family:var(--font-title)}.bar{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.bar>span{background:var(--accent);height:100%;display:block}.bar.p>span{background:var(--good)}.bar.c>span{background:var(--warn)}.bar.g>span{background:var(--est)}.macros{flex:1;gap:10px;min-width:160px;display:grid}.ing{grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.grams{align-items:center;gap:4px;display:inline-flex}.grams input{text-align:right;width:84px}.compare{grid-template-columns:1fr 1fr;gap:8px;display:grid}.compare pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface2);border-radius:var(--r-sm);margin:0;padding:8px;font-size:13px}.chart{margin:0}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .tick{fill:var(--muted);font-size:11px}.chart .mean{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.chart .pt{fill:var(--muted);stroke:var(--surface);stroke-width:2px}.chart .pt.on{fill:var(--ink)}.chart .limit{stroke:var(--crit);stroke-width:2px;stroke-dasharray:6 4}.chart .cross{stroke:var(--muted);stroke-width:1px}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0 0 8px;padding:0;font-size:.875rem;list-style:none;display:flex}.legend .key{vertical-align:middle;width:16px;margin-right:4px;display:inline-block}.legend .key.dot{background:var(--muted);border-radius:50%;width:8px;height:8px}.legend .key.line{background:var(--accent);height:2px}.legend .key.limit{border-top:2px dashed var(--crit);height:0}textarea{width:100%}
