:root{--bg:#f3f3f5;--card:#fff;--ink:#111114;--muted:#6d6d76;--line:#e6e6ea;--soft:#ececf0;--accent:#111114;--on-accent:#fff;--p:#e5534b;--c:#2f8fd0;--f:#e0a021;--over:#e5534b;--bonus:#ff7900;--on-bonus:#fff;--radius:18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0b0b0d;--card:#17171a;--ink:#f4f4f5;--muted:#9a9aa3;--line:#26262b;--soft:#222227;--accent:#f4f4f5;--on-accent:#0b0b0d;--p:#f2706a;--c:#4aa8e6;--f:#f0b53a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b0b0d;--card:#17171a;--ink:#f4f4f5;--muted:#9a9aa3;--line:#26262b;--soft:#222227;--accent:#f4f4f5;--on-accent:#0b0b0d;--p:#f2706a;--c:#4aa8e6;--f:#f0b53a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);margin:0}body{font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;font:16px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,p,ul,ol{margin:0}ul{padding:0;list-style:none}a{color:inherit}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 14px) 16px calc(env(safe-area-inset-bottom) + 104px);flex-direction:column;gap:14px;margin:0 auto;display:flex}.page-head{justify-content:space-between;align-items:center;min-height:44px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:26px;font-weight:750}.link-h{font:inherit;letter-spacing:inherit}.card{background:var(--card);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;padding:28px 0}.error{color:var(--over);font-size:14px}.row{align-items:center;display:flex}.gap{gap:10px}.grow{flex:1}.wrap{flex-wrap:wrap}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.icon-btn{width:40px;height:40px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:20px;display:grid}.icon-btn:hover{background:var(--soft)}.btn{background:var(--soft);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn.grow{width:100%}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.danger{color:var(--over)}.btn.quiet{color:var(--muted);background:0 0;font-weight:550}.btn:disabled{opacity:.4;cursor:default}:focus-visible{outline:2px solid var(--c);outline-offset:2px}input:not([type=checkbox]),textarea{border:1px solid var(--line);background:var(--card);border-radius:14px;outline:none;width:100%;min-height:46px;padding:10px 14px}input:focus,textarea:focus{border-color:var(--muted)}textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input{color:var(--ink);font-size:16px}.field.inline{flex-direction:row;justify-content:space-between;align-items:center}.field.inline input{width:auto}.search{font-size:17px;background:var(--soft)!important;border-color:#0000!important}.chips{scrollbar-width:none;flex:none;gap:8px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{background:var(--soft);white-space:nowrap;border-radius:999px;flex:none;padding:8px 14px;font-size:14px;font-weight:550}.chip.on{background:var(--accent);color:var(--on-accent)}.week{grid-template-columns:repeat(7,1fr);display:grid}.day{color:var(--muted);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:6px 0;font-size:12px;display:flex}.day.on{background:var(--card);color:var(--ink)}.day.today small{color:var(--ink);font-weight:800}.ring{flex:none;position:relative}.ring-bg{stroke:var(--soft)}.ring-fg{stroke:var(--ink);transition:stroke-dasharray .3s}.ring-fg.over{stroke:var(--over)}.ring-in{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex;position:absolute;inset:0}.ring-in span{color:var(--muted);font-size:12px}.ring-in small{font-size:11px}.big{letter-spacing:-.03em;font-size:30px;font-weight:750}.summary{flex-direction:row;align-items:center;gap:18px}.bars{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.kcal-line{color:var(--muted);font-size:14px}.kcal-line b{color:var(--ink);font-size:17px}.bar-top{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.bar-top b{color:var(--ink)}.track{background:var(--soft);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.track i{border-radius:3px;height:100%;transition:width .3s;display:block}i.p,.tiles .p b{background:var(--p)}i.c{background:var(--c)}i.f{background:var(--f)}.tiles .p b,.tiles .c b,.tiles .f b{background:0 0}.tiles .p b{color:var(--p)}.tiles .c b{color:var(--c)}.tiles .f b{color:var(--f)}.note{justify-content:space-between;align-items:center;gap:12px;padding:0 4px;display:flex}.note p{text-wrap:balance;font-size:15px;font-weight:550}.streak{color:var(--muted);border:1px solid var(--line);border-radius:999px;flex:none;padding:4px 10px;font-size:12px;font-weight:650}.hit{color:var(--ink);font-style:normal;font-weight:650}.note-line{font-size:15px;font-weight:550}.fits{flex-direction:column;gap:8px;display:flex}.fit-row{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.fit-row::-webkit-scrollbar{display:none}.fit{text-align:left;background:var(--card);border-radius:16px;flex-direction:column;flex:none;gap:2px;max-width:78%;padding:12px 38px 12px 14px;display:flex;position:relative}.fit i{color:var(--muted);font-size:20px;font-style:normal;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.fit:active{background:var(--soft)}.plus.done{background:var(--accent);color:var(--on-accent);font-size:18px;animation:.3s ease-out pop}@keyframes pop{50%{transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.plus.done{animation:none}}.list{flex-direction:column;display:flex}.list.card{gap:0;padding:4px 16px}.food-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:60px;display:flex}.food-row:last-child{border-bottom:0}.food-main{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;padding:10px 0;display:flex}.food-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.food-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.macro-line b{color:var(--ink);font-weight:600}.dot{border-radius:50%;width:6px;height:6px;margin:0 4px 1px 8px;display:inline-block}.kcal{flex:none;font-weight:700}.plus{background:var(--soft);border-radius:50%;flex:none;width:40px;height:40px;font-size:24px;line-height:1}.plus:active{background:var(--accent);color:var(--on-accent)}.gram{text-align:right;flex:none;width:72px!important;min-height:40px!important;padding:8px 10px!important}.section{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:8px;font-size:13px;font-weight:650}.section.first{margin-top:0}.steps{flex-direction:column;gap:6px;padding-left:20px;font-size:14px;list-style:decimal;display:flex}.meal{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:60px;display:flex}.meal:last-child{border-bottom:0}.bonus{letter-spacing:.03em;text-transform:uppercase;color:var(--on-bonus);background:var(--bonus);vertical-align:1px;border-radius:6px;margin-left:8px;padding:2px 6px;font-size:11px;font-style:normal;font-weight:700}.shop{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;min-height:48px;display:flex}li:last-child>.shop{border-bottom:0}.shop.done span{color:var(--muted);text-decoration:line-through}.check{align-items:center;gap:10px;min-height:44px;display:flex}textarea.plain{font-family:inherit;font-size:16px}.tabbar{z-index:5;padding:8px max(8px, calc(50vw - 280px)) calc(env(safe-area-inset-bottom) + 8px);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:center;display:grid;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:11px;display:flex}.tab.on{color:var(--ink)}.fab{background:var(--accent);width:58px;height:58px;color:var(--on-accent);border-radius:50%;justify-self:center;margin-top:-22px;font-size:32px;line-height:1;box-shadow:0 6px 18px #00000040}.sheet-wrap{z-index:10;background:#00000073;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;height:calc(100dvh - env(safe-area-inset-top) - 24px);background:var(--bg);border-radius:24px 24px 0 0;flex-direction:column;animation:.2s ease-out up;display:flex}@keyframes up{0%{opacity:0;transform:translateY(40px)}}@media (width>=700px){.sheet-wrap{align-items:center}.sheet{border-radius:24px;height:min(760px,92dvh)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet.compact{height:auto;max-height:92dvh}.seg{background:var(--soft);border-radius:12px;flex:none;grid-template-columns:1fr 1fr;padding:3px;display:grid}.seg button{color:var(--muted);border-radius:10px;padding:8px;font-size:14px;font-weight:600}.seg button.on{background:var(--card);color:var(--ink)}.sheet-head{justify-content:space-between;align-items:center;gap:10px;padding:14px 12px 6px 20px;display:flex}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;overflow:hidden}.sheet-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;padding:8px 16px 16px;display:flex;overflow-y:auto}.sheet-foot{padding:10px 16px calc(env(safe-area-inset-bottom) + 12px);border-top:1px solid var(--line)}.amount{align-items:baseline;gap:10px;display:flex}.amount input{letter-spacing:-.03em;border:0;border-bottom:2px solid var(--line);background:0 0;border-radius:0;width:5ch;min-height:0;padding:0;font-size:40px;font-weight:750}.amount span{color:var(--muted);font-size:20px}.tiles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.tiles div{background:var(--card);text-align:center;border-radius:14px;flex-direction:column;padding:10px 6px;display:flex}.tiles b{font-size:19px}.tiles span{color:var(--muted);font-size:12px}.scan{border-radius:var(--radius);aspect-ratio:4/3;background:#000;overflow:hidden}.scan video{object-fit:cover;width:100%;height:100%}.stat-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stat-row div{flex-direction:column;display:flex}.stat-row span{color:var(--muted);font-size:13px}.chart{width:100%;height:auto}.chart .pt{fill:var(--muted);opacity:.6}.chart .line{stroke:var(--ink);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart .axis{fill:var(--muted);font-size:10px}.cols{grid-template-columns:repeat(14,1fr);align-items:end;gap:5px;height:110px;display:grid;position:relative}.cols i{background:var(--ink);opacity:.85;border-radius:4px 4px 0 0;min-height:2px}.cols i.over{background:var(--over)}.cols hr{border:0;border-top:1px dashed var(--muted);margin:0;position:absolute;left:0;right:0}.toast{left:50%;top:calc(env(safe-area-inset-top) + 12px);z-index:20;background:var(--accent);color:var(--on-accent);border-radius:14px;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:12px 16px;font-size:14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.toast button{white-space:nowrap;font-weight:700;text-decoration:underline}
