@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{--bg: #FFFFFF;--surface-1: #F6F6F6;--surface-2: #EDEDED;--text: #141414;--text-2: #6B6B6B;--text-3: #9B9B9B;--border: #E3E3E3;--border-strong: #C9C9C9;--red: #D96A00;--red-bg: #FCEEDD;--red-text: #8A4300;--success: #1E7A3C;--warning: #9A6700;--on-red: #FFFFFF;--text-disabled: var(--text-3);--surface-disabled: var(--surface-1);--scrim: rgb(0 0 0 / 40%);--chart-1: #3D3D3D;--chart-2: #6B6B6B;--chart-3: #9B9B9B;--chart-4: #C9C9C9;--chart-signal: var(--red);--surface-card: var(--surface-1);--text-body: var(--text);--accent: var(--red)}[data-theme=dark]{--bg: #141414;--surface-1: #1E1E1E;--surface-2: #292929;--text: #F2F2F2;--text-2: #8A8A8A;--text-3: #5C5C5C;--border: #333333;--border-strong: #4A4A4A;--red: #FFA033;--red-bg: #3D2607;--red-text: #FFCB8A;--success: #4CBF6E;--warning: #D9A521;--on-red: #141414;--text-disabled: var(--text-3);--surface-disabled: var(--surface-1);--scrim: rgb(0 0 0 / 60%);--chart-1: #D4D4D4;--chart-2: #8A8A8A;--chart-3: #5C5C5C;--chart-4: #3D3D3D;--chart-signal: var(--red)}:root{--font-sans: "IBM Plex Sans", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--type-display: 600 2rem/1.2 var(--font-sans);--type-h1: 600 1.5rem/1.3 var(--font-sans);--type-h2: 500 1.125rem/1.4 var(--font-sans);--type-body: 400 1rem/1.6 var(--font-sans);--type-ui: 400 .875rem/1.5 var(--font-sans);--type-caption: 400 .75rem/1.4 var(--font-sans);--type-metric: 500 1.75rem/1.1 var(--font-mono);--type-eyebrow: 500 .75rem/1.4 var(--font-mono);--tracking-tight: -.01em;--tracking-eyebrow: .08em;--measure-prose: 68ch}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--pad-card: 20px;--row-table: 44px;--h-control: 36px;--gap-section: 32px;--radius-control: 2px;--radius-card: 4px;--hairline: 1px solid var(--border);--hairline-strong: 1px solid var(--border-strong);--focus-ring: 2px solid var(--red);--focus-offset: 2px}:root{--motion-fast: .12s ease-out;--w-rail: 220px;--w-content-max: 1200px;--w-page-prose: 720px;--h-tabbar: 56px;--h-appbar: 52px;--w-app: 560px;--tap-min: 44px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:var(--type-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}a{color:var(--text);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--red)}code,kbd,samp{font-family:var(--font-mono);font-size:.875em}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}::selection{background:var(--red-bg);color:var(--red-text)}h1,h2,h3,p{margin:0}.app{width:100%;max-width:var(--w-app);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;border-inline:var(--hairline)}@media (max-width: 600px){.app{border-inline:none}}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--space-3);height:var(--h-appbar);padding:0 var(--space-4);padding-top:env(safe-area-inset-top);height:calc(var(--h-appbar) + env(safe-area-inset-top));background:var(--bg);border-bottom:var(--hairline)}.appbar__title{font:var(--type-h2);letter-spacing:var(--tracking-tight)}.appbar__spacer{margin-left:auto}.main{flex:1;padding:var(--space-5) var(--space-4);padding-bottom:calc(var(--h-tabbar) + env(safe-area-inset-bottom) + var(--space-6))}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--w-app);z-index:10;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--bg);border-top:var(--hairline);padding-bottom:env(safe-area-inset-bottom)}.tabbar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--h-tabbar);text-decoration:none;color:var(--text-3);font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;transition:color var(--motion-fast);-webkit-tap-highlight-color:transparent}.tabbar__item[aria-current=page]{color:var(--red)}.tabbar__item:hover{color:var(--text)}.tabbar__item[aria-current=page]:hover{color:var(--red)}.eyebrow{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-2)}.eyebrow--accent{color:var(--red)}.display{font:var(--type-display);letter-spacing:var(--tracking-tight)}.h1{font:var(--type-h1);letter-spacing:var(--tracking-tight)}.h2{font:var(--type-h2)}.ui{font:var(--type-ui)}.caption{font:var(--type-caption);color:var(--text-2)}.muted{color:var(--text-2)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.stack{display:flex;flex-direction:column}.stack-2{gap:var(--space-2)}.stack-3{gap:var(--space-3)}.stack-4{gap:var(--space-4)}.stack-5{gap:var(--space-5)}.row{display:flex;align-items:center;gap:var(--space-3)}.row--between{justify-content:space-between}.grow{flex:1}.section{margin-bottom:var(--gap-section)}.card{background:var(--bg);border:var(--hairline);border-radius:var(--radius-card);padding:var(--pad-card)}.card--flush{padding:0;overflow:hidden}.card--muted{background:var(--surface-1)}.budget{display:flex;flex-direction:column;gap:var(--space-4)}.budget__figure{display:flex;align-items:baseline;gap:var(--space-2)}.budget__value{font:var(--type-metric);font-size:2.75rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.budget__value--over{color:var(--red)}.budget__unit{font:var(--type-ui);color:var(--text-2)}.meter{height:6px;background:var(--surface-2);border-radius:var(--radius-control);overflow:hidden}.meter__fill{height:100%;background:var(--text);transition:width var(--motion-fast)}.meter__fill--over{background:var(--red)}.macros{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.macro{display:flex;flex-direction:column;gap:6px}.macro__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:500}.meal{display:grid;grid-template-columns:56px 1fr auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--pad-card);border-bottom:var(--hairline);text-align:left;width:100%;background:none;border-inline:0;border-top:0;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.meal:last-child{border-bottom:0}.meal:hover{background:var(--surface-1)}.meal__thumb{width:56px;height:56px;border-radius:var(--radius-control);object-fit:cover;background:var(--surface-2);display:grid;place-items:center;color:var(--text-3);font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.meal__title{font:var(--type-ui);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal__kcal{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.9375rem;font-weight:500}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:var(--radius-control);background:var(--surface-2);color:var(--text-2);font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;white-space:nowrap}.tag--accent,.tag--low{background:var(--red-bg);color:var(--red-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font:var(--type-ui);font-weight:500;cursor:pointer;text-decoration:none;transition:background var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast);-webkit-tap-highlight-color:transparent}.btn:hover:not(:disabled){border-color:var(--text)}a.btn:hover{color:var(--text);text-decoration:none}a.btn--primary:hover{color:var(--on-red)}.btn:disabled{color:var(--text-disabled);background:var(--surface-disabled);border-color:var(--border);cursor:not-allowed}.btn--primary{background:var(--red);border-color:var(--red);color:var(--on-red)}.btn--primary:hover:not(:disabled){filter:brightness(.94);border-color:var(--red)}.btn--ghost{border-color:transparent;background:transparent;color:var(--text-2)}.btn--ghost:hover:not(:disabled){color:var(--text);border-color:var(--border)}.btn--danger{color:var(--red)}.btn--block{width:100%}.btn--sm{min-height:var(--h-control);padding:0 var(--space-3);font:var(--type-caption);font-weight:500}.label{display:flex;flex-direction:column;gap:6px;font:var(--type-caption);color:var(--text-2)}.input,.select,.textarea{width:100%;min-width:0;max-width:100%;min-height:var(--tap-min);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--bg);color:var(--text);font:var(--type-ui);font-size:16px;transition:border-color var(--motion-fast);box-sizing:border-box}input[type=date].input{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block}input[type=date].input::-webkit-date-and-time-value{text-align:left;min-width:0}input[type=date].input::-webkit-calendar-picker-indicator{margin-inline-start:auto}.textarea{min-height:96px;resize:vertical;padding-top:var(--space-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--red);outline:none}.input.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.field-row>*,.label>*{min-width:0}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--border-strong);border-radius:var(--radius-control);overflow:hidden}.segmented--wrap{grid-auto-flow:row;grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.segmented__item{min-height:var(--tap-min);padding:0 var(--space-2);border:0;border-right:1px solid var(--border);background:var(--bg);color:var(--text-2);font:var(--type-ui);cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.segmented__item:last-child{border-right:0}.segmented__item[aria-pressed=true]{background:var(--text);color:var(--bg);font-weight:500}.capture{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.capture__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:96px;border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--bg);color:var(--text);font:var(--type-ui);font-weight:500;cursor:pointer;transition:border-color var(--motion-fast),background var(--motion-fast);-webkit-tap-highlight-color:transparent}.capture__btn:hover{border-color:var(--text)}.capture__btn--primary{background:var(--red);border-color:var(--red);color:var(--on-red)}.capture__btn--primary:hover{border-color:var(--red);filter:brightness(.94)}.empty{padding:var(--space-7) var(--space-4);text-align:center;color:var(--text-2);font:var(--type-ui)}.banner{padding:var(--space-3) var(--space-4);border:var(--hairline);border-left:2px solid var(--red);border-radius:var(--radius-control);background:var(--red-bg);color:var(--red-text);font:var(--type-caption)}.banner--info{border-left-color:var(--border-strong);background:var(--surface-1);color:var(--text-2)}.skeleton{background:var(--surface-2);border-radius:var(--radius-control);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sheet__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:var(--w-app);max-height:88dvh;overflow-y:auto;background:var(--bg);border-top:var(--hairline-strong);border-radius:var(--radius-card) var(--radius-card) 0 0;padding:var(--space-5) var(--space-4);padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom))}.trend{display:flex;align-items:flex-end;gap:2px;height:88px}.trend__bar{flex:1;min-height:2px;background:var(--chart-3);border-radius:1px 1px 0 0}.trend__bar--over{background:var(--red)}.trend__bar--empty{background:var(--surface-2)}.signin{min-height:100dvh;display:grid;place-items:center;padding:var(--space-5)}.signin__inner{width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--space-5)}
