@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/47faf0e9117ce2e3-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/660acf689794c992-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/47faf0e9117ce2e3-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/660acf689794c992-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/47faf0e9117ce2e3-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/660acf689794c992-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/47faf0e9117ce2e3-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/660acf689794c992-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.emLhJa_className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.emLhJa_variable{--font-dm-sans:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/951a1661741fc9a6-s.0c05j22lu0e1h.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/840ca482ea7a70a1-s.14r01_8b-ryu9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/edc92f5080bab07a-s.p.2lg3sxkcxwsl6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.gCDjjq_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.gCDjjq_variable{--font-bricolage:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
:root{--bg:#f3f5f1;--bg-sunken:#e7ece6;--surface:#fff;--surface-2:#e9ede8;--cream:#e7ece6;--beige:#d3dad3;--beige-deep:#b9c2ba;--line:#172a2017;--line-strong:#172a2030;--line-control:#8a8f8a;--fg:#17201b;--fg-2:#55605a;--fg-3:#8a938c;--fg-on-accent:#fff;--accent:#2b6a4c;--accent-soft:#4f9a72;--accent-tint:#e0ece3;--accent-deep:#1c4a35;--success:#3e8a62;--success-soft:#8fcba6;--success-tint:#e0ece3;--warning:#cb8a2c;--warning-soft:#f4c37a;--warning-tint:#f7ecdb;--danger:#b95f4e;--danger-soft:#dda192;--danger-tint:#f3dcd4;--danger-text:#9d5142;--info:#2c7aa0;--info-tint:#e1eef4;--info-deep:#1d5673;--stat-kcal:var(--accent);--stat-kcal-from:#3e8a62;--stat-kcal-track:#d6e4da;--stat-protein:#b26f12;--stat-protein-from:#cb8a2c;--stat-protein-track:#f0e2cb;--stat-protein-tint:#f7ecdb;--stat-water:#2c7aa0;--stat-water-from:#4693ba;--stat-water-track:#d4e6ef;--font-sans:var(--font-dm-sans), "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:var(--font-bricolage), "Bricolage Grotesque", "DM Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-xs:12px;--fs-sm:14px;--fs-base:16px;--fs-md:17px;--fs-lg:19px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:34px;--fs-4xl:44px;--fs-hero:64px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.5;--lh-relax:1.6;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.02em;--tracking-caps:.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:56px;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:22px;--r-2xl:28px;--r-pill:999px;--shadow-xs:0 1px 2px #172a200a;--shadow-sm:0 2px 8px #172a200d, 0 1px 2px #172a200a;--shadow-md:0 6px 18px #172a2012, 0 2px 4px #172a200a;--shadow-lg:0 14px 36px #172a2017, 0 4px 10px #172a200d;--shadow-pop:0 18px 50px #17201b1f;--shadow-lift-sm:0 6px 16px #172a2012;--shadow-lift-md:inset 0 1px 0 #ffffffe6, 0 12px 30px #172a2014;--shadow-lift-accent:0 10px 24px #172a2038;--shadow-nav:0 14px 34px #172a2029;--shadow-nav-add:0 12px 28px #172a204d;--inner-hi:inset 0 1px 0 #fff9;--ease-out:cubic-bezier(.22, .61, .36, 1);--ease-in:cubic-bezier(.4, 0, .7, .2);--ease-soft:cubic-bezier(.4, 0, .2, 1);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.36s;--tap-min:44px;--page-pad:20px;--nav-h:68px;--nav-gap:max(24px, calc(var(--safe-bottom) + 8px));--sidebar-w:240px;--shell-max:430px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}button{font-family:inherit}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.kcal-est{color:var(--fg-2);margin-right:1px}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea,select{font-family:inherit}.app-shell{width:100%;max-width:var(--shell-max);background:var(--bg);flex-direction:column;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (min-width:431px){.app-shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;overflow:hidden auto}.scroll::-webkit-scrollbar{display:none}.content-pad,.content-pad-flat{padding:0 20px}.content-pad:after,.content-pad-flat:after{content:"";height:calc(var(--nav-h) + var(--nav-gap) + 16px);display:block}.content-pad-modal{padding:0 20px calc(120px + var(--safe-bottom))}.topbar{padding:calc(24px + var(--safe-top)) 20px 14px;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.topbar-left{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.topbar .eyebrow{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);font-size:11px;font-weight:600}.topbar h1{letter-spacing:-.02em;color:var(--fg);margin:0;font-size:28px;font-weight:600;line-height:1.15}.topbar h1 .serif-num{font-family:var(--font-serif);letter-spacing:-.02em;font-weight:600}.topbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.iconbtn{background:var(--surface);width:38px;height:38px;color:var(--fg-2);cursor:pointer;box-shadow:var(--shadow-sm);transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover{background:var(--surface-2);color:var(--fg)}.iconbtn:active{transform:scale(.96)}.iconbtn-bare{width:38px;height:38px;color:var(--fg-2);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.iconbtn-bare:hover{background:var(--surface-2)}.pill-btn{border-radius:var(--r-pill);background:var(--accent);height:36px;color:var(--fg-on-accent);font:600 13.5px/1 var(--font-sans);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:0;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.pill-btn:hover{background:var(--accent-deep)}.pill-btn:active{transform:scale(.97)}.tabbar{left:var(--page-pad);right:var(--page-pad);bottom:var(--nav-gap);z-index:40;pointer-events:none;justify-content:space-between;align-items:center;gap:10px;display:flex;position:absolute}.tabbar.solo{justify-content:center}.tabbar>*{pointer-events:auto}.pillnav{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(14px);min-width:0;box-shadow:var(--shadow-nav);background:#ffffffe0;gap:4px;padding:6px;display:flex}.pill-item{border-radius:var(--r-pill);width:84px;min-width:0;height:56px;color:var(--fg-2);font:500 12px/1 var(--font-sans);--icon-knob:#fff;transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);flex-direction:column;flex:0 84px;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.pill-item svg{flex-shrink:0;width:22px;height:22px}.pill-item.active{background:var(--accent-tint);color:var(--accent-deep);--icon-knob:var(--accent-tint);font-weight:600}.pill-item.active svg{stroke-width:1.9px}.tabbar-add{background:var(--accent);width:64px;height:64px;color:var(--fg-on-accent);box-shadow:var(--shadow-nav-add);transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tabbar-add:hover{background:var(--accent-deep)}.tabbar-add:active{transform:scale(.95)}.tabbar-add svg{stroke-width:2px}a.meal-row,a.day-card,a.iconbtn{text-decoration:none}.sidebar{display:none}@media (min-width:1024px){.app-frame{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100dvh;display:grid}.tabbar{display:none}.sidebar{padding:calc(28px + var(--safe-top)) 20px 28px;border-right:1px solid var(--line);--icon-knob:var(--bg);flex-direction:column;gap:28px;display:flex;overflow-y:auto}.content-pad:after,.content-pad-flat:after{height:48px}.app-frame .toast{bottom:32px}}.sidebar-brand{min-height:var(--tap-min);color:var(--fg);font:700 22px/1 var(--font-serif);letter-spacing:-.045em;border-radius:var(--r-sm);align-items:center;gap:10px;padding:0 6px;text-decoration:none;display:flex}.sidebar-add{border-radius:var(--r-pill);background:var(--accent);height:48px;color:var(--fg-on-accent);font:600 15px/1 var(--font-sans);box-shadow:var(--shadow-lift-accent);transition:background var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;gap:8px;text-decoration:none;display:flex}.sidebar-add:hover{background:var(--accent-deep)}.sidebar-add svg{stroke-width:2px}.sidebar-nav{flex-direction:column;gap:4px;display:flex}.sidebar-link{height:44px;color:var(--fg-2);font:500 15px/1 var(--font-sans);transition:color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);border-radius:12px;align-items:center;gap:12px;padding:0 14px;text-decoration:none;display:flex}.sidebar-link svg{flex-shrink:0;width:20px;height:20px}.sidebar-link:hover{background:var(--surface-2);--icon-knob:var(--surface-2)}.sidebar-link.active{background:var(--accent-tint);color:var(--accent-deep);--icon-knob:var(--accent-tint);font-weight:600}.sidebar-link.active svg{stroke-width:1.9px}.sidebar-slot{margin-top:auto}.card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px}.card-hero{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-sm), inset 0 1px 0 #fff9;padding:22px 20px}.card-tight{padding:14px 16px}.consent-banner{flex-direction:column;gap:12px;margin:12px 16px 0;display:flex}.eyebrow{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);font-size:11px;font-weight:600}.section-head{justify-content:space-between;align-items:center;padding:22px 4px 10px;display:flex}.section-head .right{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:12.5px}.muted,.muted-2{color:var(--fg-2)}.t-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.serif{font-family:var(--font-serif);letter-spacing:-.02em;font-weight:600}.stack{flex-direction:column;display:flex}.stack-3>*+*{margin-top:12px}.stack-4>*+*{margin-top:16px}.stack-5>*+*{margin-top:20px}.row{align-items:center;display:flex}.between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-6{gap:24px}.status-pill{border-radius:14px;align-items:center;gap:8px;padding:11px 14px;font-size:13.5px;font-weight:500;line-height:1.35;display:flex}.status-success{background:var(--success-tint);color:var(--accent-deep)}.status-warning{background:var(--warning-tint);color:#7a4b0b}.status-danger{background:var(--danger-tint);color:#77301f}.status-neutral{background:var(--surface-2);color:var(--fg-2)}.status-pill .pip{border-radius:50%;flex-shrink:0;width:6px;height:6px}.slot-tile{border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.slot-breakfast{background:var(--stat-protein-tint);color:var(--stat-protein)}.slot-lunch{background:var(--accent-tint);color:var(--accent-deep)}.slot-dinner{background:var(--surface-2);color:var(--fg-2)}.slot-snack{background:var(--stat-protein-tint);color:var(--stat-protein)}.slot-water{background:var(--info-tint);color:var(--info-deep)}.meal-row{border-top:1px solid var(--line);cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border-bottom:0;border-left:0;border-right:0;align-items:stretch;gap:14px;padding:12px 0;display:flex}.meal-row:first-child{border-top:0;padding-top:4px}.meal-row:last-child{padding-bottom:4px}.meal-row .body{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;display:flex}.meal-row .body .t{color:var(--fg);font-size:15px;font-weight:600;line-height:1.3}.meal-row .body .m{color:var(--fg-2);font-size:12.5px}.meal-row .end{text-align:right;flex-direction:column;justify-content:center;align-items:flex-end;gap:1px;display:flex}.meal-row .end .time{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:11.5px}.meal-row .end .kcal{font-family:var(--font-serif);color:var(--fg);white-space:nowrap;font-size:24px;font-weight:600;line-height:1}.meal-row .end .ukcal{color:var(--fg-2);font-size:10px;font-weight:600}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--r-pill);background:var(--surface);height:36px;color:var(--fg);font:500 13.5px/1 var(--font-sans);border:1px solid var(--line);cursor:pointer;white-space:nowrap;transition:all var(--dur-fast) var(--ease-out);align-items:center;gap:6px;padding:0 14px;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip.active{background:var(--accent);color:var(--fg-on-accent);border-color:var(--accent)}.chip-scroll{scrollbar-width:none;gap:8px;margin:0 -20px;padding:4px 20px 6px;display:flex;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.chip-scroll .chip{flex-shrink:0}.field-label{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);margin-bottom:6px;font-size:11px;font-weight:600}.input{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:100%;height:52px;font:500 17px/1.3 var(--font-sans);color:var(--fg);transition:border var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);padding:0 16px}.input:focus{border-color:var(--accent);outline:none}.input:focus-within{border-color:var(--accent)}.input::placeholder{color:var(--fg-2)}.input-bare{width:100%;font:600 22px/1.3 var(--font-sans);color:var(--fg);letter-spacing:-.01em;background:0 0;border:0;padding:6px 0}.input-bare:focus{outline:none}.input-bare::placeholder{color:var(--fg-2)}textarea.input-bare-multi{resize:none;font-family:var(--font-sans);line-height:1.25;display:block;overflow:hidden}.textarea{background:var(--surface-2);border-radius:var(--r-md);width:100%;min-height:72px;font:500 15px/1.5 var(--font-sans);color:var(--fg);resize:none;border:0;padding:12px 14px}.textarea:focus{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent);outline:none}.stat-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);border:1px solid var(--line);flex:1;padding:14px 16px}.stat-card .lbl{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);font-size:11px;font-weight:600}.stat-card .v{font-family:var(--font-serif);color:var(--fg);align-items:baseline;gap:4px;margin-top:8px;font-size:38px;font-weight:600;line-height:1;display:inline-flex}.stat-card .v small{font-family:var(--font-sans);color:var(--fg-2);letter-spacing:0;font-size:15px;font-weight:500}.stat-card .v input{font-family:var(--font-serif);color:var(--fg);background:0 0;border:0;width:100%;min-width:0;padding:0;font-size:38px;font-weight:600;line-height:1}.stat-card .v input:focus{outline:none}.disclosure{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--line);overflow:hidden}.disclosure-head{cursor:pointer;width:100%;font:600 14px/1 var(--font-sans);color:var(--fg);background:0 0;border:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.disclosure-head .chev{transition:transform var(--dur-base) var(--ease-out);color:var(--fg-3)}.disclosure-head.open .chev{transform:rotate(90deg)}.disclosure-body{flex-direction:column;gap:14px;padding:6px 16px 16px;display:flex}.sticky-save{padding:14px 20px max(24px, var(--safe-bottom));background:linear-gradient(180deg, #f3f5f100 0%, #f3f5f1e6 30%, var(--bg) 70%);z-index:30;position:absolute;bottom:0;left:0;right:0}.btn{border-radius:var(--r-pill);cursor:pointer;width:100%;height:52px;font:600 16px/1 var(--font-sans);transition:background var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:0;justify-content:center;align-items:center;gap:8px;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--fg-on-accent)}.btn-primary:hover{background:var(--accent-deep)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;background:var(--accent);transform:none}.btn-secondary{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--surface-2)}.btn-danger{background:var(--danger);color:var(--fg-on-accent)}.btn-danger:hover{background:#a0503f}.day-card{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;width:100%;color:inherit;font:inherit;border:0;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.day-card .top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.day-card .dayname{color:var(--fg-2);font-size:13px;font-weight:500}.day-card .daynum{font-family:var(--font-serif);color:var(--fg);font-size:26px;font-weight:600;line-height:1}.day-card .totals{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.day-card .kcal-big{font-family:var(--font-serif);color:var(--fg);white-space:nowrap;font-size:30px;font-weight:600;line-height:1}.day-card .totals .meta{color:var(--fg-2);font-size:12px;font-weight:600}.day-card .footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-bar{background:var(--surface-2);border-radius:999px;flex:1;height:4px;overflow:hidden}.progress-bar .fill{height:100%;transition:width .36s var(--ease-out);border-radius:999px}.progress-bar .fill.on{background:var(--success)}.progress-bar .fill.over{background:var(--warning)}.progress-bar .fill.under{background:var(--accent)}.statusbadge{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:5px;height:24px;padding:0 9px;font-size:11.5px;font-weight:600;display:inline-flex}.statusbadge .dot{border-radius:50%;width:6px;height:6px}.sb-neutral{background:var(--surface-2);color:var(--fg-2)}.sb-neutral .dot{background:var(--fg-3)}.sb-success{background:var(--success-tint);color:var(--accent-deep)}.sb-success .dot{background:var(--success)}.sb-warning{background:var(--warning-tint);color:#7a4b0b}.sb-warning .dot{background:var(--warning)}.sb-danger{background:var(--danger-tint);color:#77301f}.sb-danger .dot{background:var(--danger)}.meta-end{color:var(--fg-2);align-items:center;gap:4px;font-size:12.5px;display:flex}.week-divider{flex-direction:column;gap:2px;padding:24px 4px 10px;display:flex}.week-divider .ttl{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);font-size:11px;font-weight:600}.week-divider .sub{color:var(--fg-2);font-size:12.5px}.plain-list{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.plain-row{border-top:1px solid var(--line);text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--fg);transition:background var(--dur-fast) var(--ease-out);background:0 0;border-bottom:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:13px 16px;display:flex}.plain-row:first-child{border-top:0}.plain-row:hover{background:var(--surface-2)}.plain-row .lbl{color:var(--fg);flex-direction:column;flex:1;gap:2px;min-width:0;font-size:15px;font-weight:500;display:flex}.plain-row .lbl .sub{color:var(--fg-2);font-size:12.5px;font-weight:400}.plain-row .val{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:14px}.plain-row .chev{color:var(--fg-3);flex-shrink:0}.toggle{background:var(--line-control);cursor:pointer;width:46px;height:28px;transition:background var(--dur-base) var(--ease-out);border:0;border-radius:999px;flex-shrink:0;position:relative}.toggle:after{content:"";background:var(--surface);width:24px;height:24px;transition:transform var(--dur-base) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.toggle.on{background:var(--accent)}.toggle.on:after{transform:translate(18px)}.scrim{z-index:60;animation:fade var(--dur-base) var(--ease-out);cursor:default;background:#17201b6b;border:0;width:100%;padding:0;position:absolute;inset:0}.sheet{background:var(--surface);padding:8px 20px max(28px, var(--safe-bottom));z-index:61;box-shadow:var(--shadow-lg);animation:slide-up .32s var(--ease-out);border-radius:28px 28px 0 0;flex-direction:column;gap:14px;display:flex;position:absolute;bottom:0;left:0;right:0}.sheet .grabber{background:var(--beige);border-radius:999px;align-self:center;width:36px;height:4px;margin-top:8px;margin-bottom:6px}.sheet h3{letter-spacing:-.01em;margin:0 0 4px;font-size:19px;font-weight:600}.modal-center{background:var(--surface);border-radius:var(--r-xl);z-index:61;width:min(320px,100% - 40px);box-shadow:var(--shadow-lg);animation:pop .22s var(--ease-out);flex-direction:column;gap:14px;padding:22px 22px 18px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.modal-center h3{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.modal-center .body{color:var(--fg-2);font-size:14.5px;line-height:1.45}.modal-center .actions{gap:10px;margin-top:4px;display:flex}.modal-center .actions .btn{height:46px;font-size:15px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sheet-row{border-top:1px solid var(--line);cursor:pointer;color:var(--fg);width:100%;font-size:15.5px;font-family:var(--font-sans);background:0 0;border-bottom:0;border-left:0;border-right:0;justify-content:space-between;align-items:center;padding:14px 4px;display:flex}.sheet-row:first-of-type{border-top:0}.sheet-row.selected{color:var(--accent-deep);font-weight:600}.toast{left:50%;bottom:calc(var(--nav-h) + var(--nav-gap) + 12px);background:var(--fg);color:var(--fg-on-accent);box-shadow:var(--shadow-md);z-index:100;animation:fade .22s var(--ease-out);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:500;position:absolute;transform:translate(-50%)}.settings-page{flex-direction:column;gap:28px;padding-top:4px;display:flex}.settings-section{flex-direction:column;gap:10px;display:flex}.settings-section h2{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2);margin:0;padding:0 4px;font-size:12px;font-weight:600}.settings-group{background:var(--surface);box-shadow:var(--shadow-lift-md);border-radius:24px;flex-direction:column;display:flex;overflow:hidden}.settings-group>:is(.settings-row,.settings-connect,.settings-status,.settings-form-row):not(:first-child){border-top:1px solid var(--line)}.settings-group :focus-visible{outline-offset:-2px}.settings-row{text-align:left;width:100%;min-height:60px;font:500 16px/1.3 var(--font-sans);color:var(--fg);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px 10px 20px;text-decoration:none;display:flex}.settings-row.static{cursor:default}:is(a,button).settings-row:hover{background:var(--surface-2)}.settings-row .label-block{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-row .label-block .sub{color:var(--fg-2);font-size:13px;font-weight:400;line-height:1.4}.settings-row .end{color:var(--fg-2);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:8px;font-size:15px;font-weight:400;display:flex}.settings-row .chev{color:var(--fg-3)}.settings-row.danger{color:var(--danger-text)}.settings-row.danger:hover{background:var(--danger-tint)}.settings-email{overflow-wrap:anywhere}.settings-form-row{display:block}.settings-row:disabled{cursor:progress}.settings-row .label-block .settings-error{color:var(--danger-text)}.settings-figure{font:600 20px/1 var(--font-serif);letter-spacing:-.01em;color:var(--fg)}.settings-figure>span{font:500 13px/1 var(--font-sans);letter-spacing:0;color:var(--fg-2);margin-left:4px}.settings-dot{border-radius:50%;flex:none;width:8px;height:8px}.settings-dot-kcal{background:var(--stat-kcal)}.settings-dot-protein{background:var(--stat-protein)}.settings-dot-water{background:var(--stat-water)}.settings-dot-idle{background:var(--fg-3)}.settings-dot-on{background:var(--accent)}.settings-text-btn{min-height:44px;color:var(--accent-deep);font:600 14px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:12px;flex:none;margin-right:-4px;padding:0 12px}.settings-text-btn:hover{background:var(--surface-2)}.settings-hint{font-family:var(--font-mono);font-size:12px}.settings-create .label-block>span:first-child{color:var(--accent-deep);align-items:center;gap:10px;font-size:15px;font-weight:600;display:inline-flex}.settings-connect{flex-direction:column;gap:14px;padding:20px 20px 18px;display:flex}.settings-connect-head{flex-direction:column;gap:4px;display:flex}.settings-connect-head h3{font:600 20px/1.2 var(--font-serif);letter-spacing:-.01em;margin:0}.settings-connect-head p{color:var(--fg-2);margin:0;font-size:14px;line-height:1.5}.settings-connect-address{flex-direction:column;gap:6px;display:flex}.settings-connect-address>span{color:var(--fg-2);padding:0 4px;font-size:13px;font-weight:500}.settings-connect-field{background:var(--bg);border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.settings-connect-field code{overflow-wrap:anywhere;min-width:0;font-family:var(--font-mono);color:var(--fg);flex:180px;padding:6px 0;font-size:13.5px;line-height:1.4}.settings-copy{background:var(--accent);height:44px;color:var(--fg-on-accent);font:600 14px/1 var(--font-sans);cursor:pointer;border:0;border-radius:12px;flex:none;align-items:center;gap:6px;margin-left:auto;padding:0 14px;display:inline-flex}.settings-copy:hover{background:var(--accent-deep)}.settings-group .settings-copy:focus-visible{outline-offset:2px}.settings-status{align-items:flex-start;gap:12px;padding:16px 20px 18px;display:flex}.settings-status .settings-dot{margin-top:7px}.settings-status p{color:var(--fg-2);margin:0;font-size:14px;line-height:1.5}.settings-status strong{color:var(--fg);font-weight:500}@media (min-width:1024px){.app-shell:has(.settings-page){max-width:640px}}.mono{font-family:var(--font-mono);color:var(--fg);font-size:13px}.topbar-center{padding:calc(24px + var(--safe-top)) 16px 12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.topbar-center .title-centre{text-align:center;letter-spacing:-.01em;font-size:17px;font-weight:600}.topbar-center .left{display:flex}.topbar-center .right{justify-content:flex-end;display:flex}.meta-footer{color:var(--fg-2);text-align:center;padding:16px 0;font-size:12px;line-height:1.5}.linkbtn{color:var(--accent);font:600 13.5px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:6px 4px;display:inline-flex}.linkbtn:hover{color:var(--accent-deep)}.linkbtn-muted{color:var(--accent);opacity:.7;font-size:13px;font-weight:500}.linkbtn-muted:hover{opacity:1;color:var(--accent-deep)}.macro-tag{background:var(--surface-2);color:var(--fg-2);font-variant-numeric:tabular-nums;border-radius:9px;align-items:baseline;gap:3px;padding:6px 10px;font-size:12px;font-weight:500;display:inline-flex}.macro-tag .v{color:var(--fg);font-weight:600;font-family:var(--font-serif);font-size:14px}.stepper-card{justify-content:space-between;align-items:center;gap:14px;padding:22px 18px;display:flex}.stepper-btn{background:var(--surface-2);width:44px;height:44px;color:var(--fg);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stepper-btn:hover{background:var(--beige)}.stepper-btn:active{transform:scale(.94)}.stepper-value{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.stepper-display{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex}.stepper-display .serif{color:var(--fg);letter-spacing:-.01em;font-size:56px;line-height:1}.stepper-display .stepper-edit-hint{letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--fg-2);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);font-size:10.5px;font-weight:600}.stepper-display:hover .stepper-edit-hint{opacity:1}.stepper-edit{text-align:center;width:100%;font-family:var(--font-serif);color:var(--fg);letter-spacing:-.01em;background:0 0;border:0;padding:0;font-size:56px;font-weight:600;line-height:1}.stepper-edit:focus{outline:none}.stepper-unit{color:var(--fg-2);letter-spacing:.02em;font-size:13px;font-weight:500}.helper-text{color:var(--fg-2);text-wrap:pretty;margin:18px 4px 0;font-size:13px;line-height:1.5}.textbtn-save{font:600 15px/1 var(--font-sans);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 8px}.textbtn-save:hover{color:var(--accent-deep)}.textbtn-save:disabled{color:var(--fg-2);opacity:.55;cursor:not-allowed}.input-inline{font:500 17px/1.3 var(--font-sans);color:var(--fg);background:0 0;border:0;flex:1;min-width:0;padding:0}.input-inline:focus{outline:none}.input-inline::placeholder{color:var(--fg-2)}.form-field{flex-direction:column;display:flex}.link-danger{color:var(--danger-text);font:600 13.5px/1 var(--font-sans);cursor:pointer;text-align:left;opacity:.85;background:0 0;border:0;padding:8px 0}.link-danger:hover{opacity:1}.link-cancel{color:var(--fg-2);font:500 14px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;align-self:center;padding:8px 0}.link-cancel:hover{color:var(--fg-2)}.auth-screen{padding:calc(48px + var(--safe-top)) 24px 40px;flex-direction:column;align-items:center;gap:26px;display:flex}.auth-mark{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.auth-logo{background:var(--accent-tint);width:52px;height:52px;color:var(--accent-deep);border-radius:17px;justify-content:center;align-items:center;display:flex}.auth-wordmark{font-family:var(--font-serif);letter-spacing:-.045em;color:var(--fg);font-size:32px;font-weight:700;line-height:1}.auth-sub{color:var(--fg-2);text-wrap:pretty;max-width:250px;font-size:13.5px;line-height:1.5}.auth-hint{color:var(--fg-2);margin-top:6px;font-size:12px}.auth-error{color:var(--danger-text);border-radius:var(--r-sm);text-wrap:pretty;background:#b95f4e14;padding:9px 12px;font-size:12.5px;line-height:1.45}.auth-success{color:var(--accent-deep);background:var(--success-tint);border-radius:var(--r-sm);text-wrap:pretty;padding:9px 12px;font-size:12.5px;line-height:1.45}.auth-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.auth-check{cursor:pointer;color:var(--fg-2);font-size:13px;font-family:var(--font-sans);background:0 0;border:0;align-items:center;gap:9px;padding:0;display:flex}.checkbox{border:1px solid var(--line);background:var(--surface);width:19px;height:19px;color:var(--fg-on-accent);transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.checkbox.on{background:var(--accent);border-color:var(--accent)}.auth-foot{color:var(--fg-2);align-items:center;gap:6px;margin-top:auto;padding-top:12px;font-size:13px;display:flex}.pw-meter{align-items:center;gap:10px;margin-top:8px;font-size:11.5px;font-weight:600;display:flex}.pw-track{background:var(--surface-2);border-radius:999px;flex:1;height:4px;overflow:hidden}.pw-fill{height:100%;transition:width var(--dur-base) var(--ease-out);border-radius:999px}.prose{padding:8px 0 40px}.prose h1{font-size:var(--fs-2xl);letter-spacing:var(--tracking-tight);font-weight:600;line-height:var(--lh-snug);margin:0 0 6px}.prose h2{font-size:var(--fs-lg);font-weight:600;line-height:var(--lh-snug);margin:28px 0 8px}.prose p,.prose li{color:var(--fg-2);font-size:15px;line-height:1.6}.prose strong{color:var(--fg)}.prose a{color:var(--accent)}.ptr-scroll{overscroll-behavior-y:contain;position:relative}.ptr-content{will-change:transform}.ptr-line{transform-origin:0;opacity:0;background:var(--accent);pointer-events:none;z-index:5;border-radius:0 2px 2px 0;height:2px;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.ptr-line[data-pending=true]{opacity:1;background-image:linear-gradient(90deg, color-mix(in oklab, var(--accent) 28%, transparent) 0%, var(--accent) 50%, color-mix(in oklab, var(--accent) 28%, transparent) 100%);background-size:200% 100%;animation:1.1s ease-in-out infinite ptr-shimmer;transform:scaleX(1)}@keyframes ptr-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ptr-line[data-pending=true]{animation:none}.ptr-content{transition:none!important}}.skel{background:linear-gradient(90deg, var(--surface-2) 25%, var(--bg-sunken) 42%, var(--surface-2) 60%);border-radius:var(--r-sm);background-size:300% 100%;animation:1.5s ease-in-out infinite skel-shimmer}@keyframes skel-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skel-line{border-radius:999px;height:12px}@media (prefers-reduced-motion:reduce){.skel{animation:none}}.today-wide{flex-direction:column;gap:22px;padding-top:4px;display:flex}.today-totals{flex-direction:column;gap:14px;min-width:0;display:flex}.hero-ring-block{flex-direction:column;align-items:center;gap:14px;display:flex}.hero-ring{width:204px;height:204px;position:relative}.hero-ring-centre{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hero-ring-n{font:700 52px/1 var(--font-serif);letter-spacing:-.03em;color:var(--fg)}.hero-ring-label{color:var(--fg-2);margin-top:4px;font-size:15px}.hero-ring-caption{color:var(--fg-2);margin:0;font-size:14px}.skel-hero{border:14px solid var(--surface-2);border-radius:50%}.ring-arc{transition:stroke-dasharray var(--dur-slow) var(--ease-out)}@media (prefers-reduced-motion:reduce){.ring-arc{transition:none}}.today-pill{border-radius:var(--r-pill);text-wrap:balance;align-self:center;margin:0;padding:10px 16px;font-size:14px}.today-pill .pip{width:7px;height:7px}.today-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}.stat-tile{background:var(--surface);min-width:0;box-shadow:var(--shadow-lift-md);border-radius:24px;flex-direction:column;gap:8px;padding:16px;display:flex}.stat-tile-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-tile-head h2{margin:0;font-size:14px;font-weight:600}.stat-tile-ring{flex-shrink:0;width:36px;height:36px}.stat-tile-figure{font:600 32px/1.1 var(--font-serif);letter-spacing:-.02em;color:var(--fg);flex-wrap:wrap;align-items:baseline;column-gap:4px;margin:0;display:flex}.stat-tile-figure span{font:500 14px/1.3 var(--font-sans);letter-spacing:0;color:var(--fg-2)}.stat-tile-foot{color:var(--fg-2);margin:auto 0 0;font-size:13px}.water-add{height:var(--tap-min);border-radius:var(--r-pill);background:var(--info-tint);color:var(--info-deep);font:600 14px/1 var(--font-sans);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);border:0;justify-content:center;align-items:center;gap:6px;margin-top:auto;display:flex}.water-add:active{transform:scale(.97)}.water-add:disabled{opacity:.6;cursor:default}.today-side{flex-direction:column;gap:22px;min-width:0;display:flex}.today-day{display:none}.today-meals{flex-direction:column;gap:12px;margin-top:6px;display:flex}.today-head{justify-content:space-between;align-items:baseline;gap:12px;padding:0 4px;display:flex}.today-head h2{white-space:nowrap;margin:0;font-size:16px;font-weight:600}.today-head span{color:var(--fg-2);text-align:right;font-size:13px}.today-list,.today-empty{background:var(--surface);box-shadow:var(--shadow-lift-md);border-radius:24px;overflow:hidden}.today-empty{color:var(--fg-2);text-align:center;text-wrap:pretty;margin:0;padding:22px 20px;font-size:14px;line-height:1.5}.today-row{min-height:72px;color:inherit;transition:background var(--dur-fast) var(--ease-out);align-items:center;gap:14px;padding:14px 18px;text-decoration:none;display:flex}.today-row+.today-row{border-top:1px solid var(--line)}.today-row:hover{background:var(--surface-2)}.today-row-static:hover{background:0 0}.today-row-tile{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.today-row-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.today-row-name{color:var(--fg);overflow-wrap:anywhere;font-size:16px;font-weight:500;line-height:1.3}.today-row-meta{color:var(--fg-2);font-size:13px;line-height:1.35}.today-row-meta .nowrap{white-space:nowrap}.today-row-meta .today-row-portion{overflow-wrap:anywhere}.today-row-kcal{flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.today-row-kcal .t-num{font:600 24px/1.1 var(--font-serif);letter-spacing:-.02em;color:var(--fg)}.today-row-kcal>span:last-child{color:var(--fg-2);font-size:12px}.timeline{flex-direction:column;gap:8px;display:flex}.timeline-ticks{justify-content:space-between;align-items:flex-end;height:36px;display:flex}.tick{background:var(--beige);border-radius:2px;width:3px;height:10px;display:block}.tick.even{height:14px}.tick.major{height:20px}.tick.tick-past{background:color-mix(in srgb, var(--accent) 45%, transparent)}.tick.tick-meal{background:var(--accent-deep);height:36px}.timeline-axis{color:var(--fg-2);justify-content:space-between;font-size:12px;display:flex}@media (min-width:1024px){:is(.app-shell:has(.today-wide),.app-shell:has(.history-wide)){border-left:0;border-right:0;max-width:1120px}:is(.app-shell:has(.today-wide) .topbar,.app-shell:has(.today-wide) .content-pad,.app-shell:has(.history-wide) .topbar,.app-shell:has(.history-wide) .content-pad){padding-left:clamp(16px,4vw,48px);padding-right:clamp(16px,4vw,48px)}.today-wide{flex-flow:wrap;align-items:flex-start;gap:24px}.today-totals{background:var(--surface);box-shadow:var(--shadow-lift-md);border-radius:28px;flex:340px;gap:20px;padding:28px}.today-totals .stat-tile{background:var(--bg);box-shadow:none;border-radius:20px;gap:6px}.today-totals .stat-tile-ring{width:32px;height:32px}.today-totals .stat-tile-figure{font-size:30px}.hero-ring{width:220px;height:220px}.hero-ring-n{font-size:56px}.today-tiles{margin-top:0}.today-side{flex:999 560px;gap:24px}.today-day{background:var(--surface);box-shadow:var(--shadow-lift-md);border-radius:28px;flex-direction:column;gap:14px;padding:22px 24px;display:flex}.today-meals{margin-top:0}.today-row{gap:16px;min-height:76px;padding:16px 24px}}.history-wide{flex-direction:column;gap:22px;padding-top:4px;display:flex}.history-filter{width:var(--tap-min);height:var(--tap-min)}.history-filter-label{display:none}.week-card{background:var(--surface);box-shadow:var(--shadow-lift-md);border-radius:24px;flex-direction:column;gap:18px;padding:20px;display:flex}.week-card-stats{flex-direction:column;gap:14px;min-width:0;display:flex}.week-card-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.week-card-figures>div{flex-direction:column;gap:2px;min-width:0;display:flex}.week-fig{font:600 26px/1.1 var(--font-serif);letter-spacing:-.02em;color:var(--fg);white-space:nowrap}.week-fig-unit{font:500 14px/1 var(--font-sans);letter-spacing:0;color:var(--fg-2);white-space:pre}.week-fig-label{color:var(--fg-2);font-size:12.5px}.week-just-started{font:600 22px/1.2 var(--font-serif);letter-spacing:-.01em;color:var(--fg);margin:0}.week-bars{flex-direction:column;gap:8px;min-width:0;display:flex}.week-plot{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:10px;height:88px;display:grid;position:relative}.week-bar-slot{align-items:flex-end;height:100%;display:flex}.week-bar{background:var(--surface-2);border-radius:8px;width:100%;height:6px;min-height:6px;display:block}.week-bar-done{background:var(--accent)}.week-bar-today{background:color-mix(in srgb, var(--accent) 45%, transparent)}.week-target{border-top:1px dashed var(--line-control);pointer-events:none;position:absolute;left:0;right:0}.week-letters{text-align:center;color:var(--fg-2);grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;font-size:12px;font-weight:500;display:grid}.week-letters .is-today{color:var(--fg);font-weight:700}.history-split{flex-direction:column;gap:24px;display:flex}.history-list{flex-direction:column;gap:26px;min-width:0;display:flex}.history-section{flex-direction:column;gap:12px;display:flex}.history-section-head{padding:0 4px}.history-section-head h2{margin:0;font-size:16px;font-weight:600}.history-section-head p{color:var(--fg-2);margin:3px 0 0;font-size:13px;line-height:1.4}.history-days{flex-direction:column;gap:12px;display:flex}.day-card{box-shadow:var(--shadow-lift-sm);border-radius:22px;padding:16px 18px;text-decoration:none}.day-card-desktop{display:none}.day-card-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.day-card-date{color:var(--fg-2);font-size:14px;font-weight:500}.day-card-totals{flex-wrap:wrap;align-items:baseline;column-gap:8px;display:flex}.day-card-kcal{font:600 30px/1.05 var(--font-serif);letter-spacing:-.02em;color:var(--fg)}.day-card-meta{color:var(--fg-2);font-size:13px}.day-card-foot{align-items:center;gap:12px;display:flex}.day-card-bar{background:var(--surface-2);border-radius:999px;flex:1;height:6px;display:block;overflow:hidden}.day-card-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.day-card-fill.fill-warning{background:var(--warning)}.day-card-fill.fill-neutral{background:color-mix(in srgb, var(--accent) 55%, transparent)}.day-card-count{color:var(--fg-2);white-space:nowrap;align-items:center;gap:2px;font-size:13px;display:inline-flex}.history-panel{display:none}.day-head{padding:calc(16px + var(--safe-top)) 12px 6px;justify-content:space-between;align-items:center;gap:6px;display:flex}.round-nav{width:var(--tap-min);height:var(--tap-min);background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.round-nav.is-disabled,.day-head-step.is-disabled{opacity:.35;cursor:default}.day-head-pill{border-radius:var(--r-pill);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);align-items:center;padding:0 2px;display:flex}.day-head-pill h1{font:600 16px/1 var(--font-sans);white-space:nowrap;color:var(--fg);margin:0;padding:0 2px}.day-head-step{width:var(--tap-min);height:var(--tap-min);color:var(--fg-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.day-head-spacer{width:var(--tap-min);flex-shrink:0}.day-summary{flex-direction:column;gap:22px;padding-top:4px;display:flex}.day-summary-totals{flex-direction:column;gap:14px;min-width:0;display:flex}.day-summary-hero{flex-direction:column;align-items:center;gap:14px;display:flex}@media (min-width:1024px){.history-wide{gap:24px}.history-filter{border-radius:var(--r-pill);gap:8px;width:auto;padding:0 16px 0 12px}.history-filter-label{color:var(--fg);font-size:14px;font-weight:600;display:inline}.week-card{border-radius:28px;flex-flow:wrap;align-items:flex-end;gap:24px 48px;padding:24px 28px}.week-card-stats,.week-bars{flex:360px}.week-plot,.week-letters{gap:12px}.history-split{flex-flow:wrap;align-items:flex-start}.history-list{flex:320px}.day-card-phone{display:none}.day-card-desktop{display:flex}.day-card.is-selected{box-shadow:inset 0 0 0 2px var(--accent), var(--shadow-lift-sm)}.history-panel{background:var(--surface);min-width:0;box-shadow:var(--shadow-lift-md);border-radius:28px;flex-direction:column;flex:1.6 440px;gap:20px;padding:24px 28px 12px;display:flex;position:sticky;top:16px}.history-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.history-panel-head h2{font:700 26px/1.15 var(--font-serif);letter-spacing:-.02em;margin:0}.history-panel-nav{gap:8px;display:flex}.history-panel .round-nav{background:var(--bg);box-shadow:none}.history-panel .day-summary{gap:18px;padding-top:0}.history-panel .day-summary-totals{flex-flow:wrap;align-items:center;gap:20px}.history-panel .day-summary-hero{flex:none;max-width:220px}.history-panel .hero-ring{width:156px;height:156px}.history-panel .hero-ring-n{font-size:40px}.history-panel .hero-ring-label{font-size:13px}.history-panel .today-tiles{flex:220px;margin-top:0}.history-panel .stat-tile{background:var(--bg);box-shadow:none;border-radius:20px;gap:6px}.history-panel .today-list{box-shadow:none;border-top:1px solid var(--line);background:0 0;border-radius:0}.history-panel .today-row{min-height:0;padding:14px 0}.history-panel .today-empty{background:var(--bg);box-shadow:none}.filter-sheet{width:min(400px,100% - 48px);animation:fade var(--dur-base) var(--ease-out);border-radius:24px;padding-bottom:24px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.filter-sheet .grabber{display:none}}.mf-overlay{z-index:80;display:flex;position:fixed;inset:0}.mf-scrim{cursor:default;background:#17201b6b;border:0;padding:0;display:none;position:absolute;inset:0}.mf{background:var(--bg);flex-direction:column;width:100%;height:100%;min-height:0;display:flex;position:relative}.mf-form{flex-direction:column;height:100%;min-height:0;display:flex}.mf-head{padding:calc(12px + var(--safe-top)) 12px 6px;align-items:center;gap:8px;display:flex}.mf-icon{width:var(--tap-min);height:var(--tap-min);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--fg);cursor:pointer;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.mf-icon-spacer{width:var(--tap-min);flex-shrink:0}.mf-titles{text-align:center;flex:1;min-width:0}.mf-titles h1{font:700 20px/1.2 var(--font-serif);letter-spacing:-.02em;color:var(--fg);margin:0}.mf-for{color:var(--fg-2);margin:2px 0 0;font-size:13px}.mf-body{min-height:0;padding:10px 20px calc(112px + var(--safe-bottom));flex-direction:column;flex:1;gap:20px;display:flex;overflow-y:auto}.mf-seg{border-radius:var(--r-pill);background:var(--surface-2);grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:3px;display:grid}.mf-seg button{min-width:0;height:var(--tap-min);border-radius:var(--r-pill);color:var(--fg-2);font:600 13.5px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;padding:0 2px}.mf-seg button[aria-checked=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}.mf-field{flex-direction:column;gap:6px;min-width:0;display:flex}.mf-field>label{color:var(--fg-2);font-size:13px;font-weight:600}.mf-name{border-bottom:1px solid var(--line-control);position:relative}.mf-name:focus-within{border-bottom-color:var(--accent);box-shadow:0 1px 0 var(--accent)}.mf-name .input-bare{font:600 24px/1.25 var(--font-serif);letter-spacing:-.015em;padding:4px 44px 10px 0}.mf-clear{width:var(--tap-min);height:var(--tap-min);color:var(--fg-2);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:-10px;transform:translateY(-55%)}.mf-numbers{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mf-number{background:var(--surface);min-width:0;box-shadow:var(--shadow-lift-sm);border-radius:20px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.mf-number:focus-within{box-shadow:inset 0 0 0 2px var(--accent), var(--shadow-lift-sm)}.mf-number label{color:var(--fg-2);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.mf-dot{border-radius:50%;width:8px;height:8px}.mf-dot-kcal{background:var(--stat-kcal)}.mf-dot-protein{background:var(--stat-protein)}.mf-number-input{align-items:baseline;gap:4px;display:flex}.mf-number-input input{width:100%;min-width:0;font:600 34px/1.1 var(--font-serif);letter-spacing:-.02em;color:var(--fg);background:0 0;border:0;padding:0}.mf-number-input input:focus{outline:none}.mf-number-input input::placeholder{color:var(--fg-3)}.mf-number-input span{color:var(--fg-2);font-size:15px}.mf-note{color:var(--fg-2);margin:-8px 0 0;font-size:13px}.mf-recent h2{color:var(--fg);margin:0 0 10px;font-size:14px;font-weight:600}.mf-chips{scrollbar-width:none;gap:8px;margin:0 -20px;padding:2px 20px;display:flex;overflow-x:auto}.mf-chips::-webkit-scrollbar{display:none}.mf-chip{height:var(--tap-min);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--fg);font:500 14px/1 var(--font-sans);white-space:nowrap;cursor:pointer;flex-shrink:0;padding:0 14px}.mf-chip span{color:var(--fg-2)}.mf-chip:hover{background:var(--surface-2)}.mf-more{background:var(--surface);box-shadow:var(--shadow-lift-sm);border-radius:20px}.mf-more-head{width:100%;min-height:56px;color:var(--fg);font:600 15px/1 var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:20px;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.mf-more-title span{color:var(--fg-2);margin-left:6px;font-size:13px;font-weight:500}.mf-more-head svg{color:var(--fg-2);transition:transform var(--dur-fast) var(--ease-out)}.mf-more-head.open svg{transform:rotate(90deg)}.mf-more-body{flex-direction:column;gap:14px;padding:2px 16px 16px;display:flex}.mf-more-body[hidden]{display:none}.mf-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mf-error{background:var(--warning-tint);color:#7a4b0b;border-radius:14px;margin:0;padding:11px 14px;font-size:14px;line-height:1.4}.mf-source{color:var(--fg-2);text-align:center;margin:0;font-size:12.5px}.mf-foot{padding:14px 20px max(20px, var(--safe-bottom));background:linear-gradient(180deg, #f3f5f100 0%, var(--bg) 40%);gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.mf-cancel{display:none}.mf-save{flex:1}@media (min-width:1024px){.mf-overlay{justify-content:center;align-items:center;padding:32px}.mf-scrim{animation:fade var(--dur-base) var(--ease-out);display:block}.mf-dialog{background:var(--surface);width:min(560px,100%);height:auto;max-height:calc(100dvh - 64px);box-shadow:var(--shadow-pop);animation:fade var(--dur-base) var(--ease-out);border-radius:28px}.app-shell:has(.mf-page){background:var(--surface);max-width:560px;height:auto;max-height:calc(100dvh - 96px);box-shadow:var(--shadow-pop);border:0;border-radius:28px;margin:48px auto}.mf-page{background:var(--surface)}.mf-head{padding:24px 24px 6px}.mf-titles{text-align:left}.mf-titles h1{font-size:24px}.mf-close{background:var(--bg);box-shadow:none;order:3}.mf-delete{background:var(--bg);box-shadow:none;order:2}.mf-icon-spacer{display:none}.mf-body{padding:10px 24px 12px}.mf-number,.mf-more{background:var(--bg);box-shadow:none}.mf-number:focus-within{box-shadow:inset 0 0 0 2px var(--accent)}.mf-chips{flex-wrap:wrap;margin:0;padding:0;overflow:visible}.mf-foot{border-top:1px solid var(--line);background:0 0;justify-content:flex-end;padding:16px 24px 24px;position:static}.mf-cancel{display:inline-flex}.mf-foot .btn{width:auto;padding:0 24px}.mf-save{flex:none}}
