@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-wght-normal-DM6njrJ3.woff2)format("woff2-variations");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:Fredoka;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-wght-normal-C1hSzPvX.woff2)format("woff2-variations");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:Caveat;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/caveat-latin-ext-wght-normal-Byk3UhVp.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fdf6ec;--bg-tint:#f7eee2;--surface:#fffdfa;--surface-2:#fbf4ea;--surface-sunk:#f4ece0;--line:#ece0d0;--line-strong:#dccdb8;--ink:#2b2340;--ink-2:#6b6480;--ink-3:#9a93ab;--on-brand:#fff;--brand:#6b5fe0;--brand-ink:#4a3fc0;--brand-soft:#e6e2fb;--brand-soft-2:#d4ceff;--pink:#f4899f;--pink-soft:#fbdce3;--peach:#f7b98a;--peach-soft:#fde4cf;--mint:#7dc79a;--mint-soft:#d6efdf;--yellow:#f2c84b;--yellow-soft:#fbeec4;--good:#15803d;--warn:#b45309;--bad:#be123c;--good-soft:#dcf0e3;--warn-soft:#fbe7cd;--bad-soft:#fbdbe3;--dv-protein:#5b5bd6;--dv-carbs:#d97706;--dv-fat:#db2777;--dv-fibre:#15803d;--dv-cal:#6b5fe0;--dv-sugar:#a21caf;--dv-salt:#0f766e;--dv-grid:#e8ddcd;--dv-axis:#9a93ab;--text-display:32px;--text-hero:38px;--text-section:20px;--text-body:16px;--text-label:14px;--text-caption:13px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:28px;--r-sm:12px;--r-md:18px;--r-lg:26px;--r-xl:34px;--r-pill:999px;--shadow-sm:0 2px 8px #46342812;--shadow-md:0 8px 24px #4634281a;--shadow-lg:0 18px 40px #35264829;--ease:cubic-bezier(.34, 1.32, .48, 1);--tab-h:74px;--max-w:480px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#17151f;--bg-tint:#1d1a27;--surface:#221f2e;--surface-2:#2a2639;--surface-sunk:#1b1826;--line:#342f45;--line-strong:#453e5c;--ink:#f4f0ff;--ink-2:#b7afd0;--ink-3:#857da0;--on-brand:#fff;--brand:#8b80f5;--brand-ink:#b3aaff;--brand-soft:#2e2a48;--brand-soft-2:#3a3459;--pink:#f2839c;--pink-soft:#3d2733;--peach:#e9a878;--peach-soft:#3b2d25;--mint:#6dbb8d;--mint-soft:#223529;--yellow:#e4bd4c;--yellow-soft:#3a3320;--good:#6dbb8d;--warn:#e2a24e;--bad:#ef7a94;--good-soft:#21331f;--warn-soft:#362a1c;--bad-soft:#3a2029;--dv-protein:#7a6fe0;--dv-carbs:#c58322;--dv-fat:#d9508b;--dv-fibre:#2f8a48;--dv-cal:#8b80f5;--dv-sugar:#d06fd8;--dv-salt:#4fb3a6;--dv-grid:#322d43;--dv-axis:#857da0;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 10px 26px #00000073;--shadow-lg:0 20px 44px #0000008c}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:Fredoka,ui-rounded,SF Pro Rounded,system-ui,-apple-system,sans-serif;font-size:var(--text-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.015em;margin:0;font-weight:600}h1{font-size:var(--text-display);line-height:1.15}h2{font-size:24px}h3{font-size:var(--text-section)}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}input,textarea,select{appearance:none}a{color:var(--brand-ink)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:8px}.script{letter-spacing:.01em;font-family:Caveat,Fredoka,cursive;font-weight:700}.muted{color:var(--ink-2)}.tiny{font-size:var(--text-caption)}.small{font-size:var(--text-label)}.center{text-align:center}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.col{flex-direction:column;display:flex}.grow{flex:1}.wrap{flex-wrap:wrap}.stack>*+*{margin-top:12px}.home-trackers>*,.home-actions>*,.insights-stats>*,.you-plan>*,.habit-grid>*,.avg-grid>*,.badge-grid>*,.field-pair>*{min-width:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100dvh;max-width:var(--max-w);background:var(--bg);box-shadow:var(--shadow-sm);flex-direction:column;margin:0 auto;display:flex;position:relative}.screen{padding:max(14px, env(safe-area-inset-top)) 16px calc(var(--tab-h) + 26px);animation:screen-in .28s var(--ease) backwards;flex:1}.screen--flush{padding-left:0;padding-right:0}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.screen-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.screen-head p{color:var(--ink-2);font-size:var(--text-label)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4) var(--s4);box-shadow:var(--shadow-sm)}.card--hero{padding:var(--s5) var(--s4);border-radius:var(--r-xl);box-shadow:var(--shadow-md)}.card--quiet{background:var(--surface-2);box-shadow:none;border-color:#0000}.card--flat{box-shadow:none}.card--tint{background:var(--surface-2)}.card--brand{background:var(--brand-soft);border-color:#0000}.card-title{justify-content:space-between;align-items:center;gap:var(--s1) var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.card-title h3{font-size:var(--text-section);flex:none}.card-title .tiny,.card-title .badge{flex:none}.btn{border-radius:var(--r-pill);font-weight:600;font-size:var(--text-body);background:var(--brand);color:var(--on-brand);transition:transform .16s var(--ease), filter .16s ease, opacity .16s ease;justify-content:center;align-items:center;gap:8px;padding:15px 20px;display:inline-flex;box-shadow:0 6px 16px #6b5fe047}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.btn--block{width:100%}.btn--ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);box-shadow:none}.btn--soft{background:var(--brand-soft);color:var(--brand-ink);box-shadow:none}.btn--quiet{color:var(--brand-ink);box-shadow:none;background:0 0;padding:10px 12px}.btn--sm{font-size:var(--text-label);padding:10px 15px}.btn--danger{background:var(--bad-soft);color:var(--bad);box-shadow:none}.chip{border-radius:var(--r-pill);font-size:var(--text-label);background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);transition:transform .16s var(--ease);align-items:center;gap:6px;padding:9px 14px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.96)}.chip[aria-pressed=true],.chip--on{background:var(--brand);color:var(--on-brand);border-color:#0000}.segmented{border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--line);gap:4px;padding:4px;display:flex}.segmented button{border-radius:var(--r-pill);font-size:var(--text-label);color:var(--ink-2);flex:1;padding:9px 10px;font-weight:500}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}.field{flex-direction:column;gap:6px;display:flex}.field>label{font-size:var(--text-label);color:var(--ink-2);font-weight:500}.input,.select,.textarea{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line-strong);width:100%;color:var(--ink);padding:13px 14px}.textarea{resize:vertical;min-height:84px;font-family:inherit}.select{background-image:none}.input--select{cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-right:38px}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input-suffix{position:relative}.input-suffix span{color:var(--ink-3);font-size:14px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.tabbar{width:100%;max-width:var(--max-w);z-index:30;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);align-items:end;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--ink-3);font-size:var(--text-caption);flex-direction:column;align-items:center;gap:3px;padding:7px 0;font-weight:500;display:flex}.tabbar button[aria-current=page]{color:var(--brand-ink)}.tabbar .tab-fab{background:var(--brand);width:62px;height:62px;color:var(--on-brand);transition:transform .18s var(--ease);border-radius:50%;align-self:center;place-items:center;gap:0;margin-top:-28px;padding:0;display:grid;box-shadow:0 10px 22px #6b5fe066}.tabbar .tab-fab svg{display:block}.tabbar .tab-fab:active{transform:scale(.93)}.sheet-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#2319326b;justify-content:center;align-items:flex-end;animation:.2s both fade-in;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--max-w);background:var(--bg);border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:88dvh;padding:10px 16px calc(22px + env(safe-area-inset-bottom));animation:sheet-up .3s var(--ease) both;overflow-y:auto}.app--wide{max-width:none;box-shadow:none}@media (width>=720px){.sheet--wide{max-width:760px}}.sheet-grip{background:var(--line-strong);border-radius:3px;width:42px;height:5px;margin:4px auto 12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}.toast-layer{left:50%;bottom:calc(var(--tab-h) + 18px);z-index:80;width:min(100%, var(--max-w));pointer-events:none;flex-direction:column;gap:8px;padding:0 16px;display:flex;position:fixed;transform:translate(-50%)}.toast{border-radius:var(--r-pill);background:var(--ink);color:var(--bg);box-shadow:var(--shadow-md);font-size:var(--text-label);animation:sheet-up .26s var(--ease) both;align-items:center;gap:10px;padding:13px 16px;font-weight:500;display:flex}.pill-stat{border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;gap:2px;padding:12px 14px;display:flex}.pill-stat b{font-size:21px}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.list-row:last-child{border-bottom:none}.thumb{object-fit:cover;background:var(--surface-2);border-radius:14px;flex:none;width:46px;height:46px}.thumb--emoji{place-items:center;font-size:22px;display:grid}.badge{border-radius:var(--r-pill);font-size:var(--text-caption);background:var(--surface-2);color:var(--ink-2);align-items:center;gap:5px;padding:5px 11px;font-weight:600;display:inline-flex}.badge--good{background:var(--good-soft);color:var(--good)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.badge--bad{background:var(--bad-soft);color:var(--bad)}.badge--none{background:var(--surface-sunk);color:var(--ink-3)}.divider{background:var(--line);height:1px;margin:var(--s3) 0}.section-label{font-size:var(--text-label);color:var(--ink-2);margin:var(--s3) 0 calc(var(--s1) * -1);padding-left:var(--s1);font-weight:600}.empty{text-align:center;padding:var(--s5) var(--s3);color:var(--ink-2);font-size:var(--text-body)}.empty-state{align-items:center;gap:var(--s2);padding:var(--s5) var(--s3);text-align:center;flex-direction:column;display:flex}.empty-state p{color:var(--ink-2);font-size:var(--text-body);max-width:34ch}.empty-state .btn{margin-top:var(--s1)}.speech{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);font-size:var(--text-body);padding:14px 16px;position:relative}.speech:after{content:"";background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 0 4px;width:16px;height:16px;position:absolute;bottom:-8px;left:26px;transform:rotate(45deg)}.speech--up:after{top:-8px;bottom:auto;transform:rotate(225deg)}.speech--right:after{bottom:22px;left:auto;right:-9px;transform:rotate(-45deg)}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-sunk) 50%, var(--surface-2) 75%);border-radius:var(--r-md);background-size:200% 100%;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.stepper{background:var(--surface-sunk);border-radius:var(--r-pill);align-items:center;gap:4px;padding:4px;display:inline-flex}.stepper button{background:var(--surface);width:34px;height:34px;color:var(--ink);box-shadow:var(--shadow-sm);border-radius:50%;font-size:19px;font-weight:600}.stepper button:active{transform:scale(.94)}.stepper>span{text-align:center;min-width:68px;font-weight:600;font-size:var(--text-label)}.meal-card{text-align:left;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);width:100%;transition:transform .16s var(--ease);align-items:center;gap:12px;padding:10px;display:flex}.meal-card:active{transform:scale(.99)}.meal-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.meal-card-title{font-weight:600;font-size:var(--text-body);align-items:center;gap:6px;min-width:0;display:flex}.meal-card-name,.meal-card-macros{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meal-card-ai{color:var(--brand);flex:none}.screen-loading{min-height:60vh}[dir=rtl] .input-suffix span{left:14px;right:auto}[dir=rtl] .input--select{background-position:15px,20px;padding-left:38px;padding-right:14px}[dir=rtl] .speech:after{left:auto;right:26px}[dir=rtl] .speech--right:after{left:-9px;right:auto;transform:rotate(135deg)}
