@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary: #a8295a;--on-primary: #ffffff;--primary-container: #ffd9e2;--on-primary-container: #3f0019;--secondary-container: #ffdbca;--on-secondary-container: #3a1800;--tertiary: #6a4fa3;--tertiary-container: #ebdcff;--on-tertiary-container: #250059;--error: #ba1a1a;--error-container: #ffdad6;--on-error-container: #410002;--surface: color-mix(in srgb, var(--primary) 3%, #fffcfc);--surface-dim: color-mix(in srgb, var(--primary) 10%, #f6f2f2);--surface-container-lowest: #ffffff;--surface-container-low: color-mix(in srgb, var(--primary) 5%, #fffafa);--surface-container: color-mix(in srgb, var(--primary) 7%, #fdf8f8);--surface-container-high: color-mix(in srgb, var(--primary) 9%, #fbf6f6);--surface-container-highest: color-mix(in srgb, var(--primary) 12%, #f8f3f3);--on-surface: color-mix(in srgb, var(--primary) 8%, #1c1a1b);--on-surface-variant: color-mix(in srgb, var(--primary) 16%, #45403f);--outline: color-mix(in srgb, var(--primary) 22%, #7a7273);--outline-variant: color-mix(in srgb, var(--primary) 18%, #d9d3d3);--inverse-surface: color-mix(in srgb, var(--primary) 8%, #312d2e);--inverse-on-surface: #feedef;--scrim: rgb(34 25 28 / .42);--protein: #2c64d0;--fat: #b86e00;--carbs: #2a8a4c;--protein-container: #dbe5ff;--fat-container: #ffe2c2;--carbs-container: #c9f2d3;--glow-a: #ffd7c4;--glow-b: #ffe3ea;--app-glow: radial-gradient(120% 60% at 50% -10%, var(--glow-a) 0%, var(--glow-b) 40%, transparent 75%);--mouse: #ddc9cd;--mouse-ear: #ffb1c6;--mouse-face: #2b1d21;--mouse-nose: #d93a72;--item: var(--surface-container-low);--shape-xs: 4px;--shape-s: 8px;--shape-m: 12px;--shape-l: 16px;--shape-li: 20px;--shape-xl: 28px;--shape-xli: 32px;--shape-xxl: 48px;--shape-full: 999px;--spring-fast: cubic-bezier(.34, 1.45, .64, 1);--spring-fast-d: .35s;--spring-default: cubic-bezier(.3, 1.15, .5, 1);--spring-default-d: .41s;--spring-slow-d: .57s;--ease-effects: cubic-bezier(.31, .94, .34, 1);--bg: var(--surface);--ink: var(--on-surface);--ink-2: var(--on-surface-variant);--line: var(--outline-variant);--accent: var(--primary);--accent-ink: var(--on-primary);--over: var(--error);--surface-2: var(--surface-container-highest);--card: var(--surface-container-lowest);--radius-s: var(--shape-m);--radius-l: var(--shape-xl);--tabbar-h: 80px;color-scheme:light}:root[data-accent=ocean]{--primary: #0b61a4;--on-primary: #ffffff;--primary-container: #d3e4ff;--on-primary-container: #001c38;--glow-a: #cfe6ff;--glow-b: #e3f0ff}:root[data-accent=forest]{--primary: #2f6b4f;--on-primary: #ffffff;--primary-container: #b1f1cd;--on-primary-container: #002114;--glow-a: #d0f0dc;--glow-b: #e7f6ec}:root[data-accent=sunset]{--primary: #9c4300;--on-primary: #ffffff;--primary-container: #ffdbc8;--on-primary-container: #321200;--glow-a: #ffd6bd;--glow-b: #ffebde}:root[data-accent=lavender]{--primary: #6a4fa3;--on-primary: #ffffff;--primary-container: #ebdcff;--on-primary-container: #250059;--glow-a: #e4d6ff;--glow-b: #f2eaff}@supports (transition-timing-function: linear(0,1)){:root{--spring-fast: linear(0, .027, .098, .198, .314, .436, .556, .669, .77, .857, .93, .987, 1.031, 1.062, 1.081, 1.092, 1.095, 1.092, 1.085, 1.076, 1.065, 1.053, 1.042, 1.031, 1.022, 1.013, 1.007, 1.001, .997, .994, .992, .991, .991, .991, .992, .993, .994, .995, .996, .997, 1);--spring-default: linear(0, .018, .065, .131, .209, .292, .377, .46, .538, .611, .678, .737, .789, .834, .872, .904, .931, .952, .97, .983, .994, 1.002, 1.007, 1.011, 1.013, 1.015, 1.015, 1.015, 1.014, 1.013, 1.012, 1.011, 1.01, 1.008, 1.007, 1.006, 1.005, 1.004, 1.003, 1.003, 1)}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--primary: #ffb1c6;--on-primary: #5f1131;--primary-container: #872048;--on-primary-container: #ffd9e2;--secondary-container: #6e3b1d;--on-secondary-container: #ffdbca;--tertiary: #d4bbff;--tertiary-container: #523a89;--on-tertiary-container: #ebdcff;--error: #ffb4ab;--error-container: #93000a;--on-error-container: #ffdad6;--surface: color-mix(in srgb, var(--primary) 4%, #141213);--surface-dim: color-mix(in srgb, var(--primary) 4%, #141213);--surface-container-lowest: #0f0d0e;--surface-container-low: color-mix(in srgb, var(--primary) 6%, #1a1718);--surface-container: color-mix(in srgb, var(--primary) 8%, #1e1b1c);--surface-container-high: color-mix(in srgb, var(--primary) 10%, #282425);--surface-container-highest: color-mix(in srgb, var(--primary) 12%, #332e2f);--on-surface: color-mix(in srgb, var(--primary) 6%, #ede7e8);--on-surface-variant: color-mix(in srgb, var(--primary) 14%, #d0c8c9);--outline: color-mix(in srgb, var(--primary) 18%, #9a9192);--outline-variant: color-mix(in srgb, var(--primary) 14%, #4a4344);--inverse-surface: color-mix(in srgb, var(--primary) 6%, #ede7e8);--inverse-on-surface: #382e30;--scrim: rgb(0 0 0 / .55);--protein: #a9c4ff;--fat: #ffb870;--carbs: #82d99c;--protein-container: #1e3a73;--fat-container: #5c3500;--carbs-container: #11512a;--app-glow: radial-gradient(120% 55% at 50% -10%, var(--glow-a) 0%, var(--glow-b) 45%, transparent 75%);--glow-a: #4a2232;--glow-b: #2a1a1f;--card: var(--surface-container-low);--mouse: #e3d0d4;--mouse-ear: #ffb1c6;--mouse-face: #2b1d21;--mouse-nose: #d93a72;--item: var(--surface-container-high);color-scheme:dark}}:root[data-theme=dark]{--primary: #ffb1c6;--on-primary: #5f1131;--primary-container: #872048;--on-primary-container: #ffd9e2;--secondary-container: #6e3b1d;--on-secondary-container: #ffdbca;--tertiary: #d4bbff;--tertiary-container: #523a89;--on-tertiary-container: #ebdcff;--error: #ffb4ab;--error-container: #93000a;--on-error-container: #ffdad6;--surface: color-mix(in srgb, var(--primary) 4%, #141213);--surface-dim: color-mix(in srgb, var(--primary) 4%, #141213);--surface-container-lowest: #0f0d0e;--surface-container-low: color-mix(in srgb, var(--primary) 6%, #1a1718);--surface-container: color-mix(in srgb, var(--primary) 8%, #1e1b1c);--surface-container-high: color-mix(in srgb, var(--primary) 10%, #282425);--surface-container-highest: color-mix(in srgb, var(--primary) 12%, #332e2f);--on-surface: color-mix(in srgb, var(--primary) 6%, #ede7e8);--on-surface-variant: color-mix(in srgb, var(--primary) 14%, #d0c8c9);--outline: color-mix(in srgb, var(--primary) 18%, #9a9192);--outline-variant: color-mix(in srgb, var(--primary) 14%, #4a4344);--inverse-surface: color-mix(in srgb, var(--primary) 6%, #ede7e8);--inverse-on-surface: #382e30;--scrim: rgb(0 0 0 / .55);--protein: #a9c4ff;--fat: #ffb870;--carbs: #82d99c;--protein-container: #1e3a73;--fat-container: #5c3500;--carbs-container: #11512a;--app-glow: radial-gradient(120% 55% at 50% -10%, var(--glow-a) 0%, var(--glow-b) 45%, transparent 75%);--glow-a: #4a2232;--glow-b: #2a1a1f;--card: var(--surface-container-low);--mouse: #e3d0d4;--mouse-ear: #ffb1c6;--mouse-face: #2b1d21;--mouse-nose: #d93a72;--item: var(--surface-container-high);color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-accent=ocean]:not([data-theme=light]){--primary: #a1c9ff;--on-primary: #00315b;--primary-container: #004880;--on-primary-container: #d3e4ff;--glow-a: #12304a;--glow-b: #17202a}}:root[data-accent=ocean][data-theme=dark]{--primary: #a1c9ff;--on-primary: #00315b;--primary-container: #004880;--on-primary-container: #d3e4ff;--glow-a: #12304a;--glow-b: #17202a}@media(prefers-color-scheme:dark){:root[data-accent=forest]:not([data-theme=light]){--primary: #95d5b2;--on-primary: #00391f;--primary-container: #0f5137;--on-primary-container: #b1f1cd;--glow-a: #173a2b;--glow-b: #18221d}}:root[data-accent=forest][data-theme=dark]{--primary: #95d5b2;--on-primary: #00391f;--primary-container: #0f5137;--on-primary-container: #b1f1cd;--glow-a: #173a2b;--glow-b: #18221d}@media(prefers-color-scheme:dark){:root[data-accent=sunset]:not([data-theme=light]){--primary: #ffb68a;--on-primary: #542100;--primary-container: #773200;--on-primary-container: #ffdbc8;--glow-a: #4a2a17;--glow-b: #2a1d16}}:root[data-accent=sunset][data-theme=dark]{--primary: #ffb68a;--on-primary: #542100;--primary-container: #773200;--on-primary-container: #ffdbc8;--glow-a: #4a2a17;--glow-b: #2a1d16}@media(prefers-color-scheme:dark){:root[data-accent=lavender]:not([data-theme=light]){--primary: #d4bbff;--on-primary: #3a1d72;--primary-container: #523a89;--on-primary-container: #ebdcff;--glow-a: #33244f;--glow-b: #211b2b}}:root[data-accent=lavender][data-theme=dark]{--primary: #d4bbff;--on-primary: #3a1d72;--primary-container: #523a89;--on-primary-container: #ebdcff;--glow-a: #33244f;--glow-b: #211b2b}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Nunito Variable,system-ui,sans-serif;font-size:16px;line-height:1.45;-webkit-tap-highlight-color:transparent}#root{max-width:560px;margin:0 auto;min-height:100dvh}h1,h2{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:1.25rem}h2{font-size:1.05rem}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{padding-bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom))}.topbar,.datebar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;min-height:56px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--bg)}.topbar h1{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;gap:8px}.datebar{justify-content:space-between}.datebar-title{border:0;background:none;font-weight:650;font-size:1.15rem;text-transform:capitalize;cursor:pointer;padding:8px 12px}.content{display:flex;flex-direction:column;gap:16px;padding:4px 16px 16px}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:var(--card);border-top:1px solid var(--line);z-index:10}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.72rem;color:var(--ink-2);text-decoration:none}.tab.active{color:var(--accent);font-weight:600}.dayscale{background:var(--card);border-radius:var(--radius-l);padding:20px 16px 16px}.dayscale-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}.remaining{display:flex;flex-direction:column}.remaining-num{font-size:3.4rem;line-height:.95;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--accent)}.remaining.is-over .remaining-num{color:var(--over)}.remaining-label{color:var(--ink-2);font-size:.9rem;margin-top:6px}.eaten{font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.eaten span{display:block;font-weight:400;color:var(--ink-2);font-size:.85rem}.scales{display:grid;gap:12px}.scale-label{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:4px}.scale-val{color:var(--ink-2);font-variant-numeric:tabular-nums}.scale-track{position:relative;height:10px;background:var(--surface-2);border-radius:2px;overflow:hidden}.scale-kcal .scale-track{height:14px}.scale-fill,.scale-over{position:absolute;top:0;bottom:0;left:0;transition:width .4s ease}.scale-kcal .scale-fill{background:var(--accent)}.scale-protein .scale-fill{background:var(--protein)}.scale-fat .scale-fill{background:var(--fat)}.scale-carbs .scale-fill{background:var(--carbs)}.scale-over{background:repeating-linear-gradient(135deg,var(--over) 0 4px,transparent 4px 7px)}.tick{position:absolute;top:0;width:1px;height:40%;background:var(--ink-2);opacity:.45}.tick-goal{height:100%;width:2px;opacity:.9;background:var(--ink)}.meal-head{display:flex;align-items:center;gap:8px;padding:4px 0 8px}.meal-head h2{flex:1}.meal-kcal{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.9rem}.list{list-style:none;margin:0;padding:0;background:var(--card);border-radius:var(--radius-l);overflow:hidden}.list:empty{display:none}.list>li+li{border-top:1px solid var(--line)}.item{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 14px;background:none;border:0;text-align:left;color:inherit;text-decoration:none;cursor:pointer}li.item{cursor:default}.item-main{flex:1;min-width:0;display:flex;flex-direction:column;color:inherit;text-decoration:none}.item-name{font-weight:550;overflow-wrap:anywhere}.item-sub{color:var(--ink-2);font-size:.82rem;display:flex;flex-wrap:wrap;gap:0 8px;align-items:baseline}.item-kcal{font-weight:650;font-variant-numeric:tabular-nums;text-align:right;display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}.item-kcal small{font-weight:400;font-size:.7rem;color:var(--ink-2)}.macro-line{display:inline-flex;gap:8px;font-variant-numeric:tabular-nums}.m-p{color:var(--protein)}.m-f{color:var(--fat)}.m-c{color:var(--carbs)}.badge{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;font-size:.7rem;font-weight:600;background:var(--surface-2);color:var(--ink-2);vertical-align:2px}.section-title{font-size:.95rem;color:var(--ink-2);font-weight:600;margin:4px 0 8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:var(--radius-s);border:1px solid var(--line);background:var(--card);color:var(--ink);font-weight:600;text-decoration:none;cursor:pointer}p.item-sub{margin:0}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-ghost{background:transparent;border-color:transparent;color:var(--accent)}.btn-danger{background:transparent;color:var(--over);border-color:var(--line)}.btn-block{width:100%}.btn.small{min-height:36px;padding:0 10px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:var(--radius-s);background:none;cursor:pointer;flex:none}.icon-btn.subtle{color:var(--ink-2);width:36px;height:36px}.icon-btn.boxed{background:var(--card);border:1px solid var(--line)}.add-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);flex:none;cursor:pointer}.link{border:0;background:none;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:.88rem;cursor:pointer;font-variant-numeric:tabular-nums}.segmented{display:flex;padding:3px;gap:3px;background:var(--surface-2);border-radius:10px}.segmented button{flex:1;min-height:38px;border:0;border-radius:8px;background:none;font-weight:600;color:var(--ink-2);cursor:pointer}.segmented button.active{background:var(--card);color:var(--ink)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:flex-end}.grow{flex:1;min-width:0}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field>span,.field>label{font-size:.82rem;color:var(--ink-2)}.stack.tight{gap:6px}input.is-auto{color:var(--accent);font-weight:600}.field.narrow{width:84px;flex:none}input,select,textarea{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);font-variant-numeric:tabular-nums}textarea{resize:vertical}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent)}.check{display:flex;align-items:center;gap:10px}.macro-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:380px){.macro-inputs:not(.compact){grid-template-columns:repeat(2,1fr)}}.macro-inputs.compact input{min-height:38px;padding:6px 8px}.field-protein>span{color:var(--protein)}.field-fat>span{color:var(--fat)}.field-carbs>span{color:var(--carbs)}.file-btn{cursor:pointer}.search-row input{min-height:48px}.search-row .icon-btn{height:48px;width:48px}.card{background:var(--card);border-radius:var(--radius-l);padding:16px}.ai-item{background:var(--card);border-radius:var(--radius-l);padding:12px;display:flex;flex-direction:column;gap:8px}.per100{display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border-radius:var(--radius-l);padding:16px 12px 10px;text-align:center}.per100 div{display:flex;flex-direction:column}.per100 b{font-size:1.5rem;font-variant-numeric:tabular-nums}.per100 span{font-size:.8rem;color:var(--ink-2)}.per100 .m-p b{color:var(--protein)}.per100 .m-f b{color:var(--fat)}.per100 .m-c b{color:var(--carbs)}.per100 small{grid-column:1 / -1;color:var(--ink-2);margin-top:6px}.recipe-calc{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1px;background:var(--line);border-radius:var(--radius-l);overflow:hidden}.recipe-calc>div{background:var(--card);padding:12px;display:flex;flex-direction:column;gap:2px}.recipe-calc>div:first-child{background:var(--accent);color:var(--accent-ink)}.recipe-calc>div:first-child .macro-line span{color:inherit}.recipe-calc span{font-size:.78rem;opacity:.85}.recipe-calc b{font-size:1.2rem;font-variant-numeric:tabular-nums}.recipe-calc .macro-line{flex-wrap:wrap;gap:2px 6px}@media(max-width:420px){.recipe-calc{grid-template-columns:1fr 1fr}.recipe-calc>div:first-child{grid-column:1 / -1}}.calc{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.calc b{font-size:1.2rem;font-variant-numeric:tabular-nums}.hint{margin:0;color:var(--ink-2);font-size:.88rem}.error{margin:0;color:var(--over);font-weight:500}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px 4px;color:var(--ink-2)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a140f73;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet-body{width:100%;max-width:560px;background:var(--bg);border-radius:var(--radius-l) var(--radius-l) 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;animation:sheet-in .2s ease-out}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.scanner-video{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-l);background:#000}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100% - 32px);padding:12px 16px;border-radius:10px;background:var(--ink);color:var(--bg);font-weight:500;z-index:30;animation:sheet-in .2s ease-out}.toast-error{background:var(--over);color:#fff}.login{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:24px 16px}.login h1{font-size:1.8rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.page{animation:page-in .22s ease-out}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}.tab{transition:color .2s}.tab svg{transition:transform .2s}.tab.active svg{transform:translateY(-2px)}.tab span{white-space:nowrap;font-size:.68rem}.streak-chip{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--fat) 18%,transparent);color:var(--fat);font-weight:700;font-variant-numeric:tabular-nums;text-decoration:none}.streak-chip.is-pending{background:var(--surface-2);color:var(--ink-2)}.streak-chip.is-pop{animation:pop .6s cubic-bezier(.2,1.6,.4,1)}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}}.streak-card{display:flex;align-items:center;gap:14px;background:var(--card);border-radius:var(--radius-l);padding:16px}.streak-card b{display:block;font-size:1.25rem}.streak-card span{color:var(--ink-2);font-size:.88rem}.flame{color:var(--surface-2);flex:none}.flame.is-lit{color:var(--fat);transform-origin:50% 90%;animation:flicker 2.4s ease-in-out infinite}@keyframes flicker{0%,to{transform:scale(1) rotate(0)}30%{transform:scale(1.05,.97) rotate(-2deg)}60%{transform:scale(.97,1.04) rotate(2deg)}}.weekbar{display:flex;align-items:center;justify-content:space-between}.weekbar .icon-btn:disabled{opacity:.3}.avg-head{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}.avg-head>div{display:flex;flex-direction:column}.avg-num{font-size:1.9rem;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.delta{color:var(--ink-2);font-size:.85rem;text-align:right}.chart{width:100%;height:auto;display:block;overflow:visible}.chart .axis{stroke:var(--line);stroke-width:1}.chart .goal-line{stroke:var(--ink);stroke-width:1.5;opacity:.55}.chart .goal-label,.chart .tick-label{fill:var(--ink-2);font-size:11px}.chart .tick-label.is-today{fill:var(--ink);font-weight:700}.chart .value-label{fill:var(--ink);font-size:12px;font-weight:700}.chart .bar{cursor:pointer;outline:none}.chart .bar:focus-visible .bar-under{stroke:var(--ink);stroke-width:2}.chart .bar-under,.chart .bar-over{transition:d .5s cubic-bezier(.2,.8,.2,1),opacity .2s}.chart .bar-under{fill:var(--accent)}.chart .bar-under.is-muted{fill:color-mix(in srgb,var(--accent) 45%,var(--card))}.chart .bar-over{fill:url(#over-hatch)}.chart .hatch-bg{fill:color-mix(in srgb,var(--over) 35%,var(--card))}.chart .hatch-line{stroke:var(--over)}.chart .bar.is-dim .bar-under,.chart .bar.is-dim .bar-over{opacity:.35}.chart .bar-empty{fill:var(--line)}.day-details{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-variant-numeric:tabular-nums;animation:page-in .18s ease-out}.table{width:100%;border-collapse:collapse;margin-top:10px;font-variant-numeric:tabular-nums;font-size:.9rem}.table th,.table td{text-align:right;padding:6px 4px;border-bottom:1px solid var(--line)}.table th:first-child,.table td:first-child{text-align:left}details>summary{cursor:pointer;font-weight:600;color:var(--accent)}.meal{border-radius:var(--radius-l);transition:background .15s,box-shadow .15s}.meal.is-drop-target{box-shadow:0 0 0 2px var(--line)}.meal.is-over{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:0 0 0 2px var(--accent)}.drop-placeholder{border:2px dashed var(--line);border-radius:var(--radius-l);padding:14px;text-align:center;color:var(--ink-2)}li.is-dragging{opacity:.35}.drag-overlay{background:var(--card);border-radius:var(--radius-l);box-shadow:0 10px 30px #0000002e;transform:scale(1.03) rotate(-1deg);cursor:grabbing}.list .item{touch-action:pan-y;-webkit-user-select:none;user-select:none}li.is-fresh{animation:fresh 1.6s ease-out}@keyframes fresh{0%{background:color-mix(in srgb,var(--accent) 28%,var(--card));transform:translate(-8px)}25%{transform:none}to{background:var(--card)}}.btn,.add-btn,.chip,.icon-btn{transition:transform .12s,background .15s,opacity .15s}.btn:active:not(:disabled),.add-btn:active,.chip:active{transform:scale(.96)}.hint.center{text-align:center}.diag{list-style:none;margin:0;padding:0;display:grid;gap:8px}.diag li{display:flex;gap:10px;align-items:flex-start}.diag-icon{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;flex:none;font-weight:700;font-size:.8rem}.diag .is-ok .diag-icon{background:var(--accent);color:var(--accent-ink)}.diag .is-bad .diag-icon{background:var(--over);color:#fff}.steps{margin:0;padding-left:20px;display:grid;gap:10px}pre{margin:6px 0;padding:10px;background:var(--surface-2);border-radius:var(--radius-s);overflow-x:auto;font-size:.78rem;white-space:pre}code{font-size:.88em;background:var(--surface-2);padding:1px 4px;border-radius:4px}input[type=file]{padding:8px}.content>*,.card,.steps>li{min-width:0}pre{max-width:100%}.brand{display:flex;align-items:center;gap:12px}.brand img{border-radius:14px}.brand b{display:block;font-size:1.35rem;font-weight:750;letter-spacing:-.02em}.brand small{color:var(--ink-2)}.meal-head{gap:4px}.meal-toggle{flex:1;display:flex;align-items:center;gap:6px;min-height:40px;padding:0;border:0;background:none;text-align:left;cursor:pointer;min-width:0}.meal-toggle .chevron{color:var(--ink-2);flex:none;transition:transform .2s ease}.meal.is-collapsed .chevron{transform:rotate(-90deg)}.meal-count{color:var(--ink-2);font-size:.82rem;white-space:nowrap}.meal-body-inner>*{animation:unfold .2s ease-out}@keyframes unfold{0%{opacity:0;transform:translateY(-4px)}}.meal-summary{margin:0;padding:0 4px 0 28px;font-size:.85rem}.swipe-area{touch-action:pan-y}.day-slide.from-next{animation:from-right .24s ease-out}.day-slide.from-prev{animation:from-left .24s ease-out}@keyframes from-right{0%{opacity:.2;transform:translate(32px)}}@keyframes from-left{0%{opacity:.2;transform:translate(-32px)}}.day-slide{display:flex;flex-direction:column;gap:10px}.activity-row{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 4px;color:var(--ink-2);font-size:.88rem;font-variant-numeric:tabular-nums}.activity-row span{display:inline-flex;align-items:center;gap:4px}.activity-row .bonus{color:var(--accent);font-weight:600}.radio-row{display:flex;gap:8px;flex-wrap:wrap}.radio-row label{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);cursor:pointer;font-weight:600;text-align:center}.radio-row label{position:relative}.radio-row input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0;margin:0;opacity:0;cursor:pointer}.radio-row label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}.radio-row label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.option-list{display:grid;gap:8px}.option-list label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--card);cursor:pointer}.option-list label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.option-list input{width:18px;min-height:18px;margin-top:2px;accent-color:var(--accent);flex:none}.target-result{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-l);padding:18px 16px;display:grid;gap:10px}.target-result .big{font-size:2.6rem;font-weight:750;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.target-result .macros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.target-result .macros div{background:color-mix(in srgb,var(--accent-ink) 14%,transparent);border-radius:var(--radius-s);padding:8px 10px;display:flex;flex-direction:column}.target-result .macros b{font-size:1.3rem;font-variant-numeric:tabular-nums}.target-result .macros span,.target-result small{font-size:.8rem;opacity:.85}.calc-steps{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:.88rem;color:var(--ink-2);font-variant-numeric:tabular-nums}.calc-steps b{color:var(--ink)}input[type=range]{min-height:32px;padding:0;border:0;background:none;accent-color:var(--accent)}.copy-field{display:flex;gap:8px}.copy-field input{font-family:ui-monospace,monospace;font-size:.85rem}.chart .weight-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .weight-dot{fill:var(--accent);stroke:var(--card);stroke-width:2}.progress{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:inherit;transition:width .4s ease}html,body{background:var(--surface);font-weight:500;font-optical-sizing:auto}body:before{content:"";position:fixed;inset:0 0 auto;height:420px;background:var(--app-glow);pointer-events:none;z-index:-1}::selection{background:var(--primary-container);color:var(--on-primary-container)}h1,h2{font-weight:850;letter-spacing:-.015em}h1{font-size:1.75rem;line-height:1.15}h2{font-size:1.12rem}.topbar,.datebar{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-height:64px}.topbar{padding-top:max(14px,env(safe-area-inset-top))}.datebar-title{font-size:1.45rem;font-weight:900;letter-spacing:-.02em;border-radius:var(--shape-full);padding:6px 16px;transition:background .2s var(--ease-effects)}.datebar-title:active{background:var(--surface-container-high)}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.btn{min-height:48px;padding:0 24px;border:0;border-radius:24px;background:var(--surface-container-high);color:var(--on-surface);font-weight:800;letter-spacing:.01em;transition:border-radius var(--spring-fast-d) var(--spring-fast),transform var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects),color .2s var(--ease-effects)}.btn:active:not(:disabled){border-radius:var(--shape-m);transform:scale(.97)}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 90%,var(--on-primary))}.btn-ghost{background:transparent;color:var(--primary)}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 8%,transparent)}.btn-danger{background:var(--error-container);color:var(--on-error-container)}.btn.small{min-height:40px;padding:0 16px;border-radius:20px}.btn:disabled{opacity:.38}a.btn-block,.btn-block{min-height:56px;font-size:1.02rem;border-radius:28px}.icon-btn{width:48px;height:48px;border-radius:24px;color:var(--on-surface-variant);transition:border-radius var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects),transform var(--spring-fast-d) var(--spring-fast)}.icon-btn:hover{background:color-mix(in srgb,var(--on-surface) 8%,transparent)}.icon-btn:active{border-radius:var(--shape-m);transform:scale(.92)}.icon-btn.boxed{background:var(--surface-container-high);border:0}.add-btn{width:44px;height:44px;border-radius:0;background:var(--primary-container);color:var(--on-primary-container);clip-path:url(#shape-cookie);transition:transform var(--spring-default-d) var(--spring-default),background .2s var(--ease-effects)}.add-btn:hover{transform:rotate(30deg)}.add-btn:active{transform:rotate(60deg) scale(.9)}.add-btn svg{transition:transform var(--spring-default-d) var(--spring-default)}.add-btn:hover svg{transform:rotate(-30deg)}.add-btn:active svg{transform:rotate(-60deg)}.link{color:var(--primary);font-weight:800;text-decoration-thickness:2px;text-underline-offset:3px}details>summary{color:var(--primary);font-weight:800}.chip{border:1px solid var(--outline-variant);background:transparent;border-radius:var(--shape-s);padding:7px 14px;font-weight:700;transition:border-radius var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects)}.chip:active{border-radius:var(--shape-li)}.segmented{--seg-h: 48px;--seg-r: calc(var(--seg-h) / 2);padding:0;gap:3px;background:none;border-radius:0}.segmented button{flex:1 1 0;min-width:0;height:var(--seg-h);min-height:var(--seg-h);padding:0 8px;white-space:nowrap;border-radius:var(--shape-s);background:var(--surface-container-highest);color:var(--on-surface-variant);font-weight:800;transition:border-radius var(--spring-fast-d) var(--spring-fast),background-color .18s var(--ease-effects),color .18s var(--ease-effects),transform var(--spring-fast-d) var(--spring-fast)}.segmented button:first-child{border-radius:var(--seg-r) var(--shape-s) var(--shape-s) var(--seg-r)}.segmented button:last-child{border-radius:var(--shape-s) var(--seg-r) var(--seg-r) var(--shape-s)}.segmented button.active{background:var(--primary);color:var(--on-primary);border-radius:var(--seg-r)}.segmented button:active:not(.active){transform:scale(.96)}.radio-row{gap:2px}.radio-row label{min-height:52px;border:0;border-radius:var(--shape-s);background:var(--surface-container-highest);color:var(--on-surface-variant);font-weight:800;transition:border-radius var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects),color .2s var(--ease-effects)}.radio-row label:first-child{border-radius:26px var(--shape-s) var(--shape-s) 26px}.radio-row label:last-child{border-radius:var(--shape-s) 26px 26px var(--shape-s)}.radio-row label:has(input:checked){background:var(--primary);color:var(--on-primary);box-shadow:none;border-radius:26px}.option-list label{border:0;border-radius:var(--shape-l);background:var(--card);padding:14px 16px;transition:border-radius var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects)}.option-list label:has(input:checked){background:var(--primary-container);color:var(--on-primary-container);box-shadow:none;border-radius:var(--shape-xl)}.option-list input,input[type=checkbox],input[type=range]{accent-color:var(--primary)}input,select,textarea{min-height:52px;padding:10px 16px;border:0;border-radius:var(--shape-l);background:var(--surface-container-highest);box-shadow:inset 0 0 0 1px transparent;font-weight:600;transition:box-shadow .2s var(--ease-effects),background .2s var(--ease-effects),border-radius var(--spring-fast-d) var(--spring-fast)}input:focus,select:focus,textarea:focus{outline:none;background:var(--card);box-shadow:inset 0 0 0 2px var(--primary);border-radius:var(--shape-m)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--on-surface-variant) 70%,transparent);font-weight:500}.field>span,.field>label{font-weight:700;font-size:.8rem;padding-left:4px}input.is-auto{color:var(--primary);font-weight:800}.macro-inputs.compact input{min-height:44px;border-radius:var(--shape-m)}.search-row input{min-height:56px;border-radius:var(--shape-full);padding-left:22px}.search-row input:focus{border-radius:var(--shape-full)}.search-row .icon-btn{width:56px;height:56px;background:var(--primary-container);color:var(--on-primary-container)}.card,.list,.ai-item,.per100,.streak-card,.dayscale{background:var(--card);border-radius:var(--shape-xl)}.card{padding:20px}.card h2{font-size:1.2rem}.list>li+li{border-top:0}.list{padding:4px;display:flex;flex-direction:column;gap:2px}.list>li{border-radius:var(--shape-s);transition:border-radius var(--spring-fast-d) var(--spring-fast),background .2s var(--ease-effects)}.list>li:first-child{border-top-left-radius:var(--shape-li);border-top-right-radius:var(--shape-li)}.list>li:last-child{border-bottom-left-radius:var(--shape-li);border-bottom-right-radius:var(--shape-li)}.list>li:has(>.item:active),.list>li>.item:active{background:var(--surface-container-high)}.list>li:has(>.item:active){border-radius:var(--shape-li)}.item{min-height:60px;padding:10px 14px;border-radius:inherit}.item-name{font-weight:750}.item-kcal{font-weight:850}.badge{border-radius:var(--shape-full);padding:1px 8px;background:var(--tertiary-container);color:var(--on-tertiary-container);font-weight:800}.hint{font-weight:500}.per100{gap:6px;padding:8px}.per100>div{background:var(--surface-container);border-radius:var(--shape-li);padding:12px 4px 10px}.per100 .m-p{background:var(--protein-container)}.per100 .m-f{background:var(--fat-container)}.per100 .m-c{background:var(--carbs-container)}.per100 b{font-weight:900}.per100 small{padding:4px 8px 2px}.recipe-calc{gap:4px;background:none;border-radius:0;overflow:visible}.recipe-calc>div{background:var(--card);border-radius:var(--shape-li);padding:14px 16px}.recipe-calc>div:first-child{background:var(--primary);color:var(--on-primary);border-radius:var(--shape-xl)}.recipe-calc b{font-weight:900}.target-result{background:var(--primary);color:var(--on-primary);border-radius:var(--shape-xxl) var(--shape-xxl) var(--shape-xl) var(--shape-xl);padding:24px 20px 20px}.target-result .big{font-size:3.2rem;font-weight:1000}.target-result .macros div{background:color-mix(in srgb,var(--on-primary) 16%,transparent);border-radius:var(--shape-li)}.tabbar{background:var(--surface-container);border-top:0;padding-top:10px;align-items:flex-start}.tab{justify-content:flex-start;gap:4px;color:var(--on-surface-variant);font-weight:700}.tab-icon{display:grid;place-items:center;width:56px;height:32px;border-radius:var(--shape-full);transition:background .2s var(--ease-effects),width var(--spring-fast-d) var(--spring-fast)}.tab.active{color:var(--on-surface);font-weight:900}.tab.active .tab-icon{background:var(--primary-container);color:var(--on-primary-container);width:64px}.tab-icon{position:relative}.tab-badge{position:absolute;top:-2px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--error);color:var(--surface);font-size:.68rem;font-weight:900;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--surface-container);animation:pop var(--spring-slow-d) var(--spring-fast)}.tab.active svg{transform:none}.tab svg{transition:transform var(--spring-fast-d) var(--spring-fast)}.tab:active svg{transform:scale(.85)}.tab span:not(.tab-icon){font-size:.74rem}.dayscale{padding:18px 18px 20px;position:relative;overflow:hidden}.day-hero{display:flex;align-items:center;gap:16px}.kcal-ring{position:relative;width:148px;height:148px;flex:none}.kcal-ring svg{width:100%;height:100%;overflow:visible}.ring-track{fill:none;stroke:var(--surface-container-highest);stroke-width:10;stroke-linecap:round}.ring-fill{fill:none;stroke:var(--primary);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .9s var(--spring-default)}.kcal-ring.is-over .ring-fill{stroke:var(--error)}.ring-center{position:absolute;top:26px;right:26px;bottom:26px;left:26px;display:grid;place-content:center;text-align:center}.remaining-num{font-size:clamp(1.6rem,9cqi,2.3rem);font-weight:1000;letter-spacing:-.04em;color:var(--on-surface);line-height:1}.remaining.is-over .remaining-num{color:var(--error)}.remaining-label{margin-top:4px;font-size:.74rem;line-height:1.15;font-weight:700;text-wrap:balance}.kcal-ring{container-type:inline-size}.day-side{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.eaten{text-align:left;font-size:1.05rem;font-weight:900}.eaten span{display:inline;font-weight:700}.mascot-line{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--on-surface-variant)}.mascot{flex:none;transform-origin:50% 90%}.mascot.is-happy{animation:mascot-bob 3.2s ease-in-out infinite}@keyframes mascot-bob{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-4deg)}}.scales{margin-top:16px;gap:10px}.scale-label{font-weight:800;font-size:.88rem}.scale-val{font-weight:700}.wavy{display:block;width:100%;height:14px;overflow:visible}.wavy .w-track{fill:none;stroke:var(--surface-container-highest);stroke-width:6;stroke-linecap:round;vector-effect:non-scaling-stroke}.wavy .w-fill{fill:none;stroke-width:6;stroke-linecap:round;vector-effect:non-scaling-stroke}.scale-protein .w-fill{stroke:var(--protein)}.scale-fat .w-fill{stroke:var(--fat)}.scale-carbs .w-fill{stroke:var(--carbs)}.scale.is-over .w-fill{stroke:var(--error)}.wavy .w-clip rect{transition:width .9s var(--spring-default)}.wavy .w-wave{animation:wave-drift 2.4s linear infinite}@keyframes wave-drift{to{transform:translate(-20px)}}.wavy .w-goal{fill:var(--on-surface)}.meal{background:var(--card);border-radius:var(--shape-xl);padding:8px 8px 8px 12px;transition:background .2s var(--ease-effects),box-shadow .2s var(--ease-effects),border-radius var(--spring-default-d) var(--spring-default)}.meal.is-collapsed{border-radius:32px}.meal-head{padding:2px 0;gap:6px}.meal-emoji{display:grid;place-items:center;width:40px;height:40px;flex:none;font-size:1.25rem;border-radius:var(--shape-m);transition:border-radius var(--spring-default-d) var(--spring-default)}.meal-breakfast .meal-emoji{background:var(--secondary-container)}.meal-lunch .meal-emoji{background:var(--carbs-container)}.meal-dinner .meal-emoji{background:var(--tertiary-container)}.meal-snack .meal-emoji{background:var(--primary-container)}.meal.is-collapsed .meal-emoji{border-radius:20px}.meal-toggle h2{flex:none}.meal-toggle .chevron{order:3;margin-left:2px}.meal-kcal{font-weight:900;color:var(--on-surface);font-size:.95rem}.meal .list{background:none;padding:4px 0 0}.meal .list>li{background:var(--item)}.meal-summary{padding:2px 4px 6px 50px;font-weight:700}.meal.is-drop-target{box-shadow:inset 0 0 0 2px var(--outline-variant)}.meal.is-over{background:var(--primary-container);box-shadow:inset 0 0 0 3px var(--primary);border-radius:var(--shape-xxl)}.drop-placeholder{border-radius:var(--shape-li);border-color:var(--outline);margin:4px 0;font-weight:700}.drag-overlay{background:var(--card);border-radius:var(--shape-li);box-shadow:0 12px 32px #00000038}@keyframes fresh{0%{background:var(--primary-container);transform:translate(-10px) scale(.98)}30%{transform:none}to{background:var(--item)}}li.is-fresh{animation:fresh 1.4s var(--spring-default)}.activity-row{padding:0 8px;font-weight:700}.activity-row .bonus{color:var(--primary);font-weight:900}.streak-chip{padding:6px 12px;background:var(--primary-container);color:var(--on-primary-container);font-weight:900}.streak-chip.is-pending{background:var(--surface-container-highest)}.streak-chip.is-pop{animation:pop var(--spring-slow-d) var(--spring-fast)}.flame.is-lit{color:#ff7a2f}.avg-num{font-weight:1000;font-size:2.2rem}.chart .bar-under{fill:var(--primary)}.chart .bar-under.is-muted{fill:color-mix(in srgb,var(--primary) 35%,var(--card))}.chart .weight-line{stroke:var(--tertiary);stroke-width:3}.chart .weight-dot{fill:var(--tertiary);stroke:var(--card)}.chart .goal-line{stroke-dasharray:4 5}.table th{font-weight:800;color:var(--on-surface-variant)}.table th,.table td{border-bottom-color:var(--outline-variant)}.sheet{background:var(--scrim);animation:fade-in .2s var(--ease-effects)}@keyframes fade-in{0%{opacity:0}}.sheet-body{background:var(--surface-container-low);border-radius:var(--shape-xl) var(--shape-xl) 0 0;padding-top:12px;animation:sheet-up var(--spring-default-d) var(--spring-default)}.sheet-body:before{content:"";align-self:center;width:32px;height:4px;border-radius:var(--shape-full);background:var(--outline);opacity:.6;margin-bottom:4px}@keyframes sheet-up{0%{transform:translateY(100%)}}.toast{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--shape-l);padding:14px 18px;font-weight:700;box-shadow:0 6px 20px #0000002e;animation:toast-in var(--spring-default-d) var(--spring-fast)}@keyframes toast-in{0%{transform:translate(-50%,24px) scale(.9);opacity:0}}.toast-error{background:var(--error-container);color:var(--on-error-container)}.error{color:var(--error);font-weight:700}.hint.warn{color:var(--fat)}.page{animation:page-in var(--spring-default-d) var(--spring-default)}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}}.day-slide.from-next{animation:from-right var(--spring-default-d) var(--spring-default)}.day-slide.from-prev{animation:from-left var(--spring-default-d) var(--spring-default)}.diag .is-ok .diag-icon{background:var(--carbs-container);color:var(--carbs)}.diag .is-bad .diag-icon{background:var(--error-container);color:var(--error)}pre,code{background:var(--surface-container-highest)}pre{border-radius:var(--shape-m)}.progress{height:10px;background:var(--surface-container-highest)}.progress-bar{background:var(--primary)}.login{gap:20px}.login .brand b{font-size:1.8rem;font-weight:1000}.brand-mascot{width:72px;height:72px;display:grid;place-items:center;background:var(--primary-container);clip-path:url(#shape-cookie);flex:none}.empty .mascot{opacity:.9}a.btn-block,.btn-block{height:auto;padding:12px 24px;line-height:1.25;text-align:center}.empty{align-items:center;text-align:center;padding:28px 12px;font-weight:600}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.swatch{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0 6px;border:0;border-radius:16px;background:none;cursor:pointer;font-size:.68rem;font-weight:700;color:var(--on-surface-variant);min-width:0;transition:background .18s var(--ease-effects)}.swatch-box{display:grid;place-items:center;width:48px;height:48px;contain:paint}.swatch-shape{width:44px;height:44px;background:var(--swatch);clip-path:url(#shape-cookie);transition:transform var(--spring-default-d) var(--spring-default)}.swatch.active{background:var(--surface-container-high);color:var(--on-surface)}.swatch.active .swatch-shape{transform:rotate(40deg) scale(1.06)}.swatch:active .swatch-shape{transform:scale(.88)}.swatch-label{white-space:nowrap}.badge-shape{display:inline-grid;place-items:center;flex:none;width:48px;height:48px;font-size:22px;line-height:1;background:var(--primary-container)}.badge-shape.shape-cookie{clip-path:url(#shape-cookie);background:var(--secondary-container)}.badge-shape.shape-clover{clip-path:url(#shape-clover);background:var(--carbs-container)}.badge-shape.shape-flower{clip-path:url(#shape-flower);background:var(--tertiary-container)}.badge-shape.shape-sunny{clip-path:url(#shape-sunny);background:var(--fat-container)}.badge-shape.shape-gem{clip-path:url(#shape-gem);background:var(--primary-container)}.badge-shape.is-locked{background:var(--surface-container-highest);filter:grayscale(1);opacity:.55}.ach-summary{display:flex;align-items:center;gap:14px}.ach-summary b{display:block;font-size:1.5rem;font-weight:1000}.ach-summary span{color:var(--on-surface-variant);font-weight:600}.ach-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ach{background:var(--card);border-radius:var(--shape-xl);padding:16px 12px 14px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;min-width:0}.ach>b{margin-top:6px;font-weight:900;line-height:1.2}.ach-desc{font-size:.8rem;color:var(--on-surface-variant);line-height:1.3}.ach-date{margin-top:4px;font-size:.75rem;font-weight:800;color:var(--primary)}.ach-progress{width:100%;margin-top:6px;display:grid;gap:2px}.ach-progress small{font-size:.72rem;font-weight:700;color:var(--on-surface-variant)}.ach-progress .w-fill{stroke:var(--primary)}.ach.is-done .badge-shape{animation:badge-in var(--spring-slow-d) var(--spring-fast) both}@keyframes badge-in{0%{transform:scale(.6) rotate(-30deg)}}.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.social-link{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:var(--shape-xl);background:var(--card);color:inherit;text-decoration:none;min-width:0;transition:border-radius var(--spring-fast-d) var(--spring-fast),transform var(--spring-fast-d) var(--spring-fast)}.social-link:active{border-radius:var(--shape-l);transform:scale(.97)}.social-link .badge-shape{width:44px;height:44px;font-size:20px;margin-bottom:6px}.social-link b{font-weight:900}.social-link span:last-child{font-size:.8rem;color:var(--on-surface-variant);line-height:1.3}.mascot-line.is-news{color:var(--on-surface);text-decoration:none;background:var(--primary-container);border-radius:var(--shape-l);padding:6px 10px 6px 6px;margin-left:-6px;animation:news-in var(--spring-slow-d) var(--spring-fast) both}.mascot-line.is-news b{display:block;color:var(--on-primary-container)}.mascot-line.is-news .mascot{animation:mascot-jump .9s var(--spring-fast) 2}@keyframes news-in{0%{transform:scale(.85);opacity:0}}@keyframes mascot-jump{30%{transform:translateY(-8px) rotate(-8deg)}}.friend-code-row{display:flex;gap:10px;align-items:center}.friend-code{flex:1;min-width:0;border:0;background:none;padding:0;text-align:left;cursor:pointer;font-family:inherit;font-size:clamp(1.25rem,6.5vw,1.9rem);font-weight:1000;letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--primary)}.code-input{text-transform:uppercase;letter-spacing:.1em;font-weight:800}.friends{list-style:none;margin:0;padding:0;display:grid;gap:8px}.friend{display:flex;flex-direction:column;gap:10px;padding:14px 14px 10px}.friend-head{display:flex;align-items:center;gap:12px}.friend-avatar{display:grid;place-items:center;width:48px;height:48px;flex:none;clip-path:url(#shape-cookie);background:var(--tertiary-container);color:var(--on-tertiary-container);font-weight:1000;font-size:1.2rem}.friend-main{flex:1;min-width:0;display:flex;flex-direction:column}.friend-main b{font-weight:900;overflow-wrap:anywhere}.cheer-btn{width:48px;height:48px;flex:none;border:0;border-radius:16px;background:var(--secondary-container);font-size:1.3rem;cursor:pointer;transition:border-radius var(--spring-fast-d) var(--spring-fast),transform var(--spring-fast-d) var(--spring-fast),opacity .18s}.cheer-btn:active:not(:disabled){border-radius:24px;transform:scale(.9) rotate(-12deg)}.cheer-btn.is-done{opacity:.45;cursor:default}.friend-today{display:grid;gap:2px}.friend-today .w-fill{stroke:var(--primary)}.friend-recent{display:flex;flex-wrap:wrap;gap:6px}.chip-static{display:inline-flex;gap:4px;align-items:center;padding:4px 10px;border-radius:var(--shape-s);background:var(--surface-container-high);font-size:.78rem;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.small-link{align-self:flex-start;font-size:.82rem;color:var(--on-surface-variant);font-weight:700}.cheer-banner{margin:0;padding:12px 16px;border-radius:var(--shape-l);background:var(--secondary-container);color:var(--on-secondary-container);font-weight:800}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.water{display:flex;flex-direction:column;gap:14px;--water: #3b8fe0;--water-2: #7cc0ff}:root[data-theme=dark] .water{--water: #5aa9f5;--water-2: #2f6fb5}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .water{--water: #5aa9f5;--water-2: #2f6fb5}}.water-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.water-head .item-sub{font-weight:700}.water.is-done .water-head .item-sub{color:var(--water)}.water-actions{display:flex;gap:8px;align-items:center;flex:none}.water-actions .icon-btn{font-size:1.4rem;font-weight:800}.glasses{display:grid;grid-template-columns:repeat(auto-fill,minmax(26px,1fr));gap:6px}.glass{position:relative;height:40px;border-radius:6px 6px 12px 12px;background:var(--surface-container-high);overflow:hidden}.glass-water{position:absolute;left:-50%;right:-50%;bottom:0;height:calc(var(--level) * 100%);background:linear-gradient(var(--water-2),var(--water));transition:height var(--spring-default-d) var(--spring-default)}.glass-water:before{content:"";position:absolute;left:0;right:0;top:-5px;height:10px;background:radial-gradient(circle at 8px -2px,transparent 7px,var(--water-2) 7.5px) 0 0 / 16px 10px repeat-x;animation:water-wave 2.2s linear infinite}.glass.is-empty .glass-water:before{display:none}@keyframes water-wave{to{transform:translate(16px)}}.nutrients{display:flex;flex-direction:column;gap:12px;padding-top:12px}.nutrients-head{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-align:left;cursor:pointer;color:inherit}.nutrients-head h2{flex:1;min-width:0}.nutrients-head .chevron{color:var(--on-surface-variant);transition:transform var(--spring-default-d) var(--spring-default)}.nutrients.is-open .nutrients-head .chevron{transform:rotate(180deg)}.nutrients-badge{width:40px;height:40px;font-size:18px}.nutrient-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.nutrient .scale-label{font-size:.88rem}.nutrient .w-fill{stroke:var(--carbs)}.nutrient.is-limit .w-fill{stroke:var(--fat)}.nutrient.is-over .w-fill{stroke:var(--error)}.nutrient-potassium .w-fill,.nutrient-calcium .w-fill,.nutrient-magnesium .w-fill,.nutrient-iron .w-fill{stroke:var(--tertiary)}.nutrient-vitC .w-fill{stroke:var(--primary)}.limit-tag{margin-left:6px;padding:1px 6px;border-radius:var(--shape-s);background:var(--surface-container-high);font-size:.68rem;font-weight:700;color:var(--on-surface-variant);vertical-align:1px}.coverage{font-size:.72rem;font-weight:600;color:var(--on-surface-variant)}.nutrient-fields summary{margin-bottom:8px}.nutrient-fields .macro-inputs{grid-template-columns:repeat(3,minmax(0,1fr))}.nutrient-chips{display:flex;flex-wrap:wrap;gap:6px}.bmi-row{display:flex;align-items:center;gap:14px}.bmi-value b{display:block;font-size:2.6rem;font-weight:1000;line-height:1;letter-spacing:-.03em}.bmi-value span{font-size:.8rem;font-weight:700;color:var(--on-surface-variant)}.bmi-cat{padding:8px 14px;border-radius:var(--shape-l);font-weight:900;background:var(--surface-container-high)}.bmi-cat.cat-normal{background:var(--carbs-container)}.bmi-cat.cat-under,.bmi-cat.cat-over{background:var(--fat-container)}.bmi-cat.cat-obese1,.bmi-cat.cat-obese2,.bmi-cat.cat-obese3{background:var(--error-container);color:var(--on-error-container)}.bmi-scale{position:relative;display:flex;gap:3px;height:12px;margin-top:4px}.bmi-scale .seg{height:100%;border-radius:6px}.seg-under{background:var(--protein-container)}.seg-normal{background:var(--carbs)}.seg-over{background:var(--fat)}.seg-obese{background:color-mix(in srgb,var(--error) 70%,var(--card))}.bmi-mark{position:absolute;top:-5px;width:6px;height:22px;margin-left:-3px;border-radius:3px;background:var(--on-surface);box-shadow:0 0 0 2px var(--card);transition:left var(--spring-slow-d) var(--spring-default)}.bmi-ticks{position:relative;height:14px;font-size:.7rem;font-weight:700;color:var(--on-surface-variant)}.bmi-ticks span{position:absolute;transform:translate(-50%)}.health-facts{margin:0;display:grid;gap:8px}.health-facts div{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.health-facts dt{color:var(--on-surface-variant);font-size:.88rem;font-weight:600}.health-facts dt{flex:1;min-width:0}.health-facts dd{margin:0;font-weight:900;text-align:right;max-width:55%}.share-targets{display:grid;grid-template-columns:1fr 1fr;gap:8px}.share-code{text-align:center;font-size:2.2rem;margin:0}.onb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;flex-direction:column;max-width:560px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom));background:var(--surface);overflow:hidden}.onb:before,.onb:after{content:"";position:absolute;z-index:0;border-radius:50%;filter:blur(40px);opacity:.55;pointer-events:none;animation:onb-float 9s ease-in-out infinite alternate}.onb:before{width:320px;height:320px;top:-120px;left:-80px;background:var(--glow-a)}.onb:after{width:260px;height:260px;bottom:-90px;right:-70px;background:var(--primary-container);animation-delay:-4s}@keyframes onb-float{to{transform:translate(30px,24px) scale(1.08)}}.onb>*{position:relative;z-index:1}.onb-top{display:flex;align-items:center;justify-content:space-between;min-height:40px}.onb-dots{display:flex;gap:6px;align-items:center}.onb-dot{width:8px;height:8px;border-radius:4px;background:var(--outline-variant);transition:width var(--spring-default-d) var(--spring-fast),background .2s var(--ease-effects)}.onb-dot.is-done{background:color-mix(in srgb,var(--primary) 45%,var(--outline-variant))}.onb-dot.is-active{width:28px;background:var(--primary)}.onb-skip{text-decoration:none;color:var(--on-surface-variant);font-weight:800;padding:8px 4px}.onb-slide{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 2px 16px}.onb-slide.from-next{animation:onb-in-next var(--spring-slow-d) var(--spring-default) both}.onb-slide.from-prev{animation:onb-in-prev var(--spring-slow-d) var(--spring-default) both}@keyframes onb-in-next{0%{opacity:0;transform:translate(48px)}}@keyframes onb-in-prev{0%{opacity:0;transform:translate(-48px)}}.onb-art{flex:none;width:184px;height:184px;margin:12px 0 18px;display:grid;place-items:center;background:var(--primary-container);animation:onb-art-in var(--spring-slow-d) var(--spring-fast) both 80ms}.onb-art.shape-cookie{clip-path:url(#shape-cookie);background:var(--secondary-container)}.onb-art.shape-clover{clip-path:url(#shape-clover);background:var(--carbs-container)}.onb-art.shape-flower{clip-path:url(#shape-flower);background:var(--protein-container)}.onb-art.shape-sunny{clip-path:url(#shape-sunny);background:var(--fat-container)}.onb-art.shape-gem{clip-path:url(#shape-gem);background:var(--tertiary-container)}@keyframes onb-art-in{0%{transform:scale(.5) rotate(-40deg)}}.onb-art-inner{display:grid;place-items:center;animation:onb-bob 3.4s ease-in-out infinite}@keyframes onb-bob{50%{transform:translateY(-6px) rotate(-4deg)}}.onb-emoji{font-size:84px;line-height:1}.onb-title{font-size:1.9rem;font-weight:1000;letter-spacing:-.02em;margin-bottom:10px}.onb-body{width:100%;font-size:1.02rem;font-weight:600;color:var(--on-surface-variant);line-height:1.5}.onb-body p{margin:0 0 10px}.onb-body b{color:var(--on-surface)}.onb-small{font-size:.86rem;font-weight:600}.onb-label{margin:8px 0 6px!important;font-size:.86rem;font-weight:800;color:var(--on-surface);text-align:left}.onb-form{text-align:left}.onb-chips{display:flex;flex-wrap:wrap;gap:6px}.onb-chip{border:0;border-radius:var(--shape-m);padding:9px 14px;background:var(--surface-container-highest);color:var(--on-surface-variant);font-weight:800;font-size:.88rem;cursor:pointer;transition:border-radius var(--spring-fast-d) var(--spring-fast),background .18s var(--ease-effects),color .18s var(--ease-effects)}.onb-chip.active{background:var(--primary);color:var(--on-primary);border-radius:20px}.onb-result{display:flex;flex-direction:column;align-items:center;padding:14px;border-radius:var(--shape-xl);background:var(--primary-container);color:var(--on-primary-container);animation:news-in var(--spring-slow-d) var(--spring-fast) both}.onb-result b{font-size:1.8rem;font-weight:1000;color:inherit}.onb-result span{font-weight:800}.onb-tips{list-style:none;margin:0;padding:0;display:grid;gap:8px;text-align:left}.onb-tips li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--shape-l);background:var(--card)}.onb-tips li>span:first-child{font-size:1.5rem;flex:none}.onb-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:8px}.onb-next{min-width:150px;min-height:56px;border-radius:28px;font-size:1.05rem}
