:root{--color-text: #112c29;--color-muted: #5d7a73;--color-bg: #f4efe2;--color-bg-radial-warm: rgba(217, 120, 72, .22);--color-bg-radial-cool: rgba(36, 82, 74, .18);--color-surface: rgba(255, 252, 246, .85);--color-surface-strong: rgba(255, 252, 246, .96);--color-border: rgba(17, 44, 41, .08);--color-shadow: rgba(17, 44, 41, .08);--color-accent: #24524a;--color-accent-strong: #2f6a52;--color-highlight: #d97848;--color-highlight-strong: #ef9a63;--color-surface-contrast: #fff;--label-text: #355851;--input-border: rgba(36, 82, 74, .18);--input-bg: rgba(255, 255, 255, .9);--toggle-track-off: rgba(36, 82, 74, .2);--toggle-track-on: linear-gradient(135deg, var(--color-accent), var(--color-accent-strong));--toggle-track-disabled: rgba(36, 82, 74, .12);--toggle-thumb: #fff;--toggle-thumb-disabled: rgba(255, 255, 255, .84);--toggle-shadow: rgba(17, 44, 41, .2);--toggle-focus-ring: color-mix(in srgb, var(--color-highlight) 45%, transparent);--chip-bg: rgba(36, 82, 74, .1);--chip-text: #24524a;--pill-bg: rgba(36, 82, 74, .08);--pill-text: #24524a;--button-bg: #24524a;--button-text: #fdf8f0;--button-secondary-bg: rgba(36, 82, 74, .1);--button-secondary-text: #24524a;--button-danger-bg: #b85035;--button-danger-text: #fff7f2;--text-button: #24524a;--panel-muted: #5d7a73;--code-bg: rgba(17, 44, 41, .06);--icon-bg: rgba(36, 82, 74, .1);--icon-text: #24524a;--barcode-viewport-bg: #d9d2c3;--barcode-frame-border: rgba(253, 248, 240, .8);--barcode-frame-overlay: rgba(17, 44, 41, .12);--barcode-indicator-text: #fdf8f0;--barcode-indicator-bg: rgba(17, 44, 41, .68);--barcode-dot-idle: rgba(253, 248, 240, .55);--barcode-dot-active: #6ee7b7;--barcode-pulse-start: rgba(110, 231, 183, .6);--barcode-pulse-end: rgba(110, 231, 183, 0);--entry-item-bg: rgba(36, 82, 74, .05);--entry-kind-meal-bg: rgba(36, 82, 74, .16);--meal-section-bg: rgba(36, 82, 74, .05);--error-text: #b85035;--overlay-backdrop: rgba(17, 44, 41, .26);--bottom-sheet-bg: rgba(255, 252, 246, .98);--bottom-sheet-shadow: rgba(17, 44, 41, .25);--sheet-handle: rgba(36, 82, 74, .22);--drawer-bg: rgba(255, 252, 246, .98);--drawer-shadow: rgba(17, 44, 41, .18);--drawer-item: #112c29;--drawer-item-secondary: #4b6b64;--drawer-item-active-bg: rgba(36, 82, 74, .1);--drawer-item-active-text: #24524a;--drawer-separator: rgba(17, 44, 41, .12);--toast-text: #fdf8f0;--toast-shadow: rgba(17, 44, 41, .2);--toast-success-bg: #24524a;--toast-error-bg: #b85035;--sync-chip-text: #24524a;--sync-chip-bg: rgba(36, 82, 74, .1);--sync-chip-dot-offline: #b85035;--sync-chip-dot-syncing: #d97848;--sync-chip-dot-synced: #2f6a52;--sync-chip-dot-failed: #b85035;--points-summary-fill-start: #d97848;--points-summary-fill-end: #ef9a63;--stat-emphasis-start: #24524a;--stat-emphasis-end: #2e6b61;--stat-emphasis-text: #fdf8f0;--weight-graph-bg: linear-gradient(180deg, rgba(36, 82, 74, .05), rgba(255, 252, 246, .9));--weight-graph-grid: rgba(17, 44, 41, .14);--weight-graph-axis: rgba(17, 44, 41, .24);--weight-graph-axis-label: #5d7a73;--weight-graph-guide-completed: rgba(36, 82, 74, .28);--weight-graph-guide-next: rgba(217, 120, 72, .28);--weight-graph-guide-label-completed: #24524a;--weight-graph-guide-label-next: #b56742;--weight-graph-line: #24524a;--weight-graph-point: #d97848;--weight-graph-point-latest: #24524a;--weight-graph-point-ring: #fff;--weight-graph-point-milestone-ring: #d97848;--weight-graph-tooltip-bg: rgba(255, 252, 246, .96);--weight-graph-tooltip-border: rgba(17, 44, 41, .1);--weight-graph-tooltip-shadow: rgba(17, 44, 41, .12);--weight-graph-tooltip-text: #5d7a73;--security-banner-border: rgba(160, 71, 21, .22);--security-banner-bg-start: rgba(255, 237, 214, .96);--security-banner-bg-end: rgba(255, 245, 229, .96);--security-banner-text: #71330f;--security-banner-text-secondary: #8b471f;--security-banner-shadow: rgba(160, 71, 21, .12);--readiness-card-border: rgba(177, 113, 19, .18);--readiness-card-bg-start: rgba(255, 236, 204, .92);--readiness-card-bg-end: rgba(255, 252, 246, .96);--readiness-card-bg-base: rgba(255, 252, 246, .92);--readiness-card-note: #745831;--points-summary-border: rgba(17, 44, 41, .08);--points-summary-bg-start: rgba(36, 82, 74, .1);--points-summary-bg-end: rgba(255, 252, 246, .92);--points-summary-bg-base: rgba(255, 252, 246, .9);--points-summary-shadow: rgba(17, 44, 41, .08);--points-summary-over-border: rgba(184, 80, 53, .24);--points-summary-over-bg-start: rgba(184, 80, 53, .12);--points-summary-over-bg-end: rgba(255, 245, 240, .95);--points-summary-bar-track: rgba(36, 82, 74, .12);--points-summary-overage: #b85035;--points-summary-metric-bg: rgba(255, 255, 255, .58);--points-summary-metric-positive-bg: rgba(36, 82, 74, .08);--points-summary-metric-positive-text: #24524a;--points-summary-metric-negative-bg: rgba(217, 120, 72, .12);--points-summary-metric-negative-text: #9b4b24;--points-summary-metric-neutral-bg: rgba(17, 44, 41, .06);--weight-summary-bg-start: rgba(36, 82, 74, .14);--weight-summary-bg-end: rgba(255, 252, 246, .96);--weight-summary-bg-base: rgba(255, 252, 246, .92);--weight-muted: #5d7a73;--weight-change-positive: #24524a;--weight-recap-section-bg: rgba(36, 82, 74, .06);--weight-milestone-track: rgba(17, 44, 41, .12);--weight-milestone-stop-ring: #fff;--weight-milestone-stop-shadow: rgba(17, 44, 41, .15);--weight-milestone-complete-bg: #6fa88f;--weight-milestone-complete-ring: #edf7f1;--weight-milestone-complete-shadow: rgba(72, 128, 102, .18);--weight-milestone-next-bg: #d97848;--weight-milestone-future-bg: rgba(36, 82, 74, .18);--weight-milestone-future-ring: rgba(255, 252, 246, .92);--weight-milestone-marker-bg: #f4efe2;--weight-milestone-marker-ring: #24524a;--weight-milestone-marker-shadow: rgba(17, 44, 41, .16);--weight-milestone-item-bg: rgba(36, 82, 74, .06);--weight-milestone-item-complete-bg: rgba(111, 168, 143, .14);--weight-milestone-item-complete-border: rgba(111, 168, 143, .26);--weight-milestone-item-complete-text: #2f6a52;--weight-milestone-item-next-bg: rgba(217, 120, 72, .08);--weight-budget-badge-bg: rgba(111, 168, 143, .16);--weight-budget-badge-text: #2f6a52;--weight-projection-line: #d97848;--weight-projection-band: rgba(217, 120, 72, .14);color-scheme:light;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text);background:radial-gradient(circle at top right,var(--color-bg-radial-warm),transparent 30%),radial-gradient(circle at top left,var(--color-bg-radial-cool),transparent 24%),var(--color-bg)}:root[data-theme=dark]{--color-text: #e4efe9;--color-muted: #a9beb7;--color-bg: #101815;--color-bg-radial-warm: rgba(217, 120, 72, .14);--color-bg-radial-cool: rgba(36, 82, 74, .24);--color-surface: rgba(24, 36, 33, .9);--color-surface-strong: rgba(27, 40, 36, .96);--color-border: rgba(228, 239, 233, .14);--color-shadow: rgba(0, 0, 0, .3);--color-accent: #6fa88f;--color-accent-strong: #8dc2ab;--color-highlight: #ef9a63;--color-highlight-strong: #efb287;--color-surface-contrast: #dbe7e1;--label-text: #b4c9c1;--input-border: rgba(228, 239, 233, .22);--input-bg: rgba(32, 46, 42, .9);--toggle-track-off: rgba(228, 239, 233, .24);--toggle-track-on: linear-gradient(135deg, var(--color-accent), var(--color-accent-strong));--toggle-track-disabled: rgba(228, 239, 233, .13);--toggle-thumb: #f4efe2;--toggle-thumb-disabled: rgba(244, 239, 226, .75);--toggle-shadow: rgba(0, 0, 0, .36);--toggle-focus-ring: color-mix(in srgb, var(--color-highlight-strong) 55%, transparent);--chip-bg: rgba(111, 168, 143, .2);--chip-text: #bce0d0;--pill-bg: rgba(228, 239, 233, .12);--pill-text: #c8ddd5;--button-bg: #6fa88f;--button-text: #0f1714;--button-secondary-bg: rgba(228, 239, 233, .14);--button-secondary-text: #d2e4dd;--button-danger-bg: #c96c4f;--button-danger-text: #180f0c;--text-button: #bce0d0;--panel-muted: #a9beb7;--code-bg: rgba(228, 239, 233, .1);--icon-bg: rgba(228, 239, 233, .14);--icon-text: #bce0d0;--barcode-viewport-bg: #31433f;--barcode-frame-border: rgba(219, 231, 225, .72);--barcode-frame-overlay: rgba(0, 0, 0, .34);--barcode-indicator-text: #e8f1ed;--barcode-indicator-bg: rgba(10, 17, 15, .74);--barcode-dot-idle: rgba(228, 239, 233, .48);--barcode-dot-active: #8df0c8;--barcode-pulse-start: rgba(141, 240, 200, .55);--barcode-pulse-end: rgba(141, 240, 200, 0);--entry-item-bg: rgba(228, 239, 233, .08);--entry-kind-meal-bg: rgba(111, 168, 143, .24);--meal-section-bg: rgba(228, 239, 233, .08);--error-text: #f0be9f;--overlay-backdrop: rgba(3, 7, 6, .52);--bottom-sheet-bg: rgba(24, 36, 33, .98);--bottom-sheet-shadow: rgba(0, 0, 0, .45);--sheet-handle: rgba(141, 194, 171, .4);--drawer-bg: rgba(24, 36, 33, .98);--drawer-shadow: rgba(0, 0, 0, .36);--drawer-item: #d8e6e0;--drawer-item-secondary: #adc4bc;--drawer-item-active-bg: rgba(111, 168, 143, .22);--drawer-item-active-text: #d8e6e0;--drawer-separator: rgba(228, 239, 233, .16);--toast-text: #e9f2ee;--toast-shadow: rgba(0, 0, 0, .38);--toast-success-bg: #3f6758;--toast-error-bg: #8e4d38;--sync-chip-text: #d8e6e0;--sync-chip-bg: rgba(228, 239, 233, .12);--sync-chip-dot-offline: #ef9a63;--sync-chip-dot-syncing: #efb287;--sync-chip-dot-synced: #8dc2ab;--sync-chip-dot-failed: #f0be9f;--points-summary-fill-start: #ef9a63;--points-summary-fill-end: #efb287;--stat-emphasis-start: #3f6758;--stat-emphasis-end: #4f7f6d;--stat-emphasis-text: #e9f2ee;--weight-graph-bg: linear-gradient(180deg, rgba(111, 168, 143, .14), rgba(18, 27, 24, .95));--weight-graph-grid: rgba(228, 239, 233, .2);--weight-graph-axis: rgba(228, 239, 233, .34);--weight-graph-axis-label: #a9beb7;--weight-graph-guide-completed: rgba(111, 168, 143, .45);--weight-graph-guide-next: rgba(239, 154, 99, .45);--weight-graph-guide-label-completed: #8dc2ab;--weight-graph-guide-label-next: #efb287;--weight-graph-line: #8dc2ab;--weight-graph-point: #ef9a63;--weight-graph-point-latest: #6fa88f;--weight-graph-point-ring: #0f1714;--weight-graph-point-milestone-ring: #ef9a63;--weight-graph-tooltip-bg: rgba(22, 33, 30, .97);--weight-graph-tooltip-border: rgba(228, 239, 233, .16);--weight-graph-tooltip-shadow: rgba(0, 0, 0, .4);--weight-graph-tooltip-text: #a9beb7;--security-banner-border: rgba(239, 154, 99, .4);--security-banner-bg-start: rgba(77, 40, 18, .92);--security-banner-bg-end: rgba(52, 27, 14, .92);--security-banner-text: #ffd5bd;--security-banner-text-secondary: #f0be9f;--security-banner-shadow: rgba(0, 0, 0, .32);--readiness-card-border: rgba(239, 154, 99, .3);--readiness-card-bg-start: rgba(77, 52, 24, .55);--readiness-card-bg-end: rgba(28, 39, 35, .96);--readiness-card-bg-base: rgba(31, 43, 39, .96);--readiness-card-note: #d8b995;--points-summary-border: rgba(228, 239, 233, .14);--points-summary-bg-start: rgba(111, 168, 143, .18);--points-summary-bg-end: rgba(22, 33, 30, .96);--points-summary-bg-base: rgba(24, 36, 33, .96);--points-summary-shadow: rgba(0, 0, 0, .3);--points-summary-over-border: rgba(239, 154, 99, .38);--points-summary-over-bg-start: rgba(184, 80, 53, .28);--points-summary-over-bg-end: rgba(40, 26, 22, .94);--points-summary-bar-track: rgba(228, 239, 233, .16);--points-summary-overage: #efb287;--points-summary-metric-bg: rgba(228, 239, 233, .08);--points-summary-metric-positive-bg: rgba(111, 168, 143, .18);--points-summary-metric-positive-text: #8dc2ab;--points-summary-metric-negative-bg: rgba(239, 154, 99, .2);--points-summary-metric-negative-text: #f0be9f;--points-summary-metric-neutral-bg: rgba(228, 239, 233, .1);--weight-summary-bg-start: rgba(111, 168, 143, .22);--weight-summary-bg-end: rgba(22, 33, 30, .96);--weight-summary-bg-base: rgba(24, 36, 33, .96);--weight-muted: #a9beb7;--weight-change-positive: #8dc2ab;--weight-recap-section-bg: rgba(228, 239, 233, .08);--weight-milestone-track: rgba(228, 239, 233, .16);--weight-milestone-stop-ring: #0f1714;--weight-milestone-stop-shadow: rgba(0, 0, 0, .34);--weight-milestone-complete-bg: #6fa88f;--weight-milestone-complete-ring: rgba(141, 194, 171, .28);--weight-milestone-complete-shadow: rgba(0, 0, 0, .3);--weight-milestone-next-bg: #ef9a63;--weight-milestone-future-bg: rgba(228, 239, 233, .18);--weight-milestone-future-ring: rgba(24, 36, 33, .96);--weight-milestone-marker-bg: #182421;--weight-milestone-marker-ring: #8dc2ab;--weight-milestone-marker-shadow: rgba(0, 0, 0, .34);--weight-milestone-item-bg: rgba(228, 239, 233, .08);--weight-milestone-item-complete-bg: rgba(111, 168, 143, .22);--weight-milestone-item-complete-border: rgba(141, 194, 171, .3);--weight-milestone-item-complete-text: #bce0d0;--weight-milestone-item-next-bg: rgba(239, 154, 99, .16);--weight-budget-badge-bg: rgba(111, 168, 143, .24);--weight-budget-badge-text: #bce0d0;--weight-projection-line: #ef9a63;--weight-projection-band: rgba(239, 154, 99, .16);color-scheme:dark}*{box-sizing:border-box}html{overflow-x:hidden;overscroll-behavior-x:none}body{margin:0;min-height:100vh;background:transparent;overflow-x:hidden;overscroll-behavior-x:none}button,input,select{font:inherit}#root{min-height:100vh;overflow-x:hidden;overscroll-behavior-x:none}.app-shell{display:flex;min-height:100vh;flex-direction:column;overflow-x:hidden;overscroll-behavior-x:none}.app-shell__header{display:flex;align-items:center;justify-content:flex-start;gap:1rem;padding:.9rem 1rem .75rem}.app-shell__title{margin:0;flex:1;font-size:clamp(1.05rem,4vw,1.2rem);line-height:1.2;min-width:0;padding:0;border:0;background:transparent;color:inherit;font-weight:600;text-align:left;cursor:pointer}.app-shell__content{flex:1;padding:0 1rem 1.5rem;overflow-x:hidden;overscroll-behavior-x:none}.app-shell__header-actions{display:flex;align-items:center;gap:.6rem}.sync-status-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border-radius:999px;background:var(--sync-chip-bg);color:var(--sync-chip-text);font-size:.78rem;font-weight:600;white-space:nowrap}.sync-status-chip__dot{width:.5rem;height:.5rem;border-radius:999px;flex-shrink:0}.sync-status-chip--offline .sync-status-chip__dot{background:var(--sync-chip-dot-offline)}.sync-status-chip--syncing .sync-status-chip__dot{background:var(--sync-chip-dot-syncing)}.sync-status-chip--synced .sync-status-chip__dot{background:var(--sync-chip-dot-synced)}.sync-status-chip--failed .sync-status-chip__dot{background:var(--sync-chip-dot-failed)}.sync-status-chip--live .sync-status-chip__dot{background:var(--sync-chip-dot-synced)}.sync-status-chip--cached_revalidating .sync-status-chip__dot{background:var(--sync-chip-dot-syncing)}.sync-status-chip--cached_offline .sync-status-chip__dot{background:var(--sync-chip-dot-offline)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-shell__content{width:min(100%,24rem);display:flex;flex-direction:column;gap:1rem}.auth-card{width:100%}.auth-card__title{margin:0;font-size:1.4rem}.auth-card__subtitle{margin:.35rem 0 1rem;color:var(--color-muted)}.screen{display:flex;flex-direction:column;gap:1rem}.day-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem}.day-nav__side{display:flex;align-items:center}.day-nav__side--left{justify-content:flex-start}.day-nav__side--right{justify-content:flex-end;min-width:2.6rem}.day-nav__center{display:flex;flex-direction:column;align-items:center;gap:.35rem;min-width:0}.day-nav__controls{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%}.day-nav__input{width:min(100%,14rem);text-align:center}.day-nav__today-button{flex-shrink:0}.security-warning-banner{margin:0 0 1rem;padding:.95rem 1rem;border:1px solid var(--security-banner-border);border-radius:1rem;background:linear-gradient(135deg,var(--security-banner-bg-start),var(--security-banner-bg-end));color:var(--security-banner-text);box-shadow:0 10px 22px var(--security-banner-shadow)}.security-warning-banner__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.auth-shell .security-warning-banner{margin:0}.security-warning-banner__title{display:block;margin-bottom:.2rem;font-size:.98rem}.security-warning-banner__description{margin:0 0 .55rem;padding-top:.55rem;color:var(--security-banner-text-secondary)}.security-warning-banner__list{margin:0;padding-left:1.15rem}.security-warning-banner__list li+li{margin-top:.25rem}.security-warning-banner__toggle{flex-shrink:0;color:var(--security-banner-text)}.panel,.stat-card{border:1px solid var(--color-border);border-radius:1.25rem;background:var(--color-surface);box-shadow:0 10px 24px var(--color-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel{padding:1rem}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.65rem}.section-header h2{margin:0;font-size:1.15rem}.section-header p{margin:.3rem 0 0;color:var(--color-muted)}.section-header__actions,.section-header__action-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.streak-summary-chip{display:inline-flex;align-items:baseline;gap:.45rem;padding:.35rem .7rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:inherit;box-shadow:0 6px 16px var(--color-shadow)}.streak-summary-chip--attention{border-color:color-mix(in srgb,var(--weight-budget-badge-text) 38%,var(--color-border));background:color-mix(in srgb,var(--weight-budget-badge-bg) 80%,var(--color-surface))}.streak-summary-chip__label,.streak-summary-chip__value{margin:0}.streak-summary-chip__label{color:var(--color-muted);font-size:.82rem}.streak-summary-chip__value{font-size:.92rem}.readiness-card{border-color:var(--readiness-card-border);background:linear-gradient(135deg,var(--readiness-card-bg-start),var(--readiness-card-bg-end)),var(--readiness-card-bg-base)}.readiness-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.readiness-card__header h3{margin:0;font-size:1rem}.readiness-card__header p{margin:.3rem 0 0}.readiness-card__details{margin-top:.5rem}.readiness-card__list{margin:0;padding-left:1rem}.readiness-card__note{margin:0;color:var(--readiness-card-note)}.stats-grid{display:grid;gap:.8rem;grid-template-columns:repeat(2,minmax(0,1fr))}.points-summary{border:1px solid var(--points-summary-border);border-radius:1.25rem;padding:1rem;background:linear-gradient(135deg,var(--points-summary-bg-start),var(--points-summary-bg-end)),var(--points-summary-bg-base);box-shadow:0 12px 28px var(--points-summary-shadow)}.points-summary--over{border-color:var(--points-summary-over-border);background:linear-gradient(135deg,var(--points-summary-over-bg-start),var(--points-summary-over-bg-end)),var(--points-summary-bg-base)}.points-summary__headline-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.points-summary__eyebrow{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted)}.points-summary__headline{display:block;margin-top:.2rem;font-size:clamp(1.6rem,6vw,2.2rem);line-height:1.05}.points-summary__subline{margin:.35rem 0 0;color:var(--color-muted)}.points-summary__used-block{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.points-summary__used-label,.points-summary__metric-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.points-summary__used-value{font-size:1.15rem}.points-summary__bar{margin-top:1rem}.points-summary__bar-track{width:100%;height:.9rem;border-radius:999px;overflow:hidden;background:var(--points-summary-bar-track)}.points-summary__bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--points-summary-fill-start),var(--points-summary-fill-end))}.points-summary__overage{margin:.55rem 0 0;color:var(--points-summary-overage);font-weight:600}.points-summary__breakdown{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.points-summary__metric{padding:.8rem .85rem;border-radius:1rem;background:var(--points-summary-metric-bg)}.points-summary__metric--positive{background:var(--points-summary-metric-positive-bg);color:var(--points-summary-metric-positive-text)}.points-summary__metric--negative{background:var(--points-summary-metric-negative-bg);color:var(--points-summary-metric-negative-text)}.points-summary__metric--neutral{background:var(--points-summary-metric-neutral-bg)}.points-summary__metric-value{display:block;margin-top:.2rem;font-size:1.15rem}.stat-card{padding:1rem}.stat-card--emphasis{background:linear-gradient(135deg,var(--stat-emphasis-start),var(--stat-emphasis-end));color:var(--stat-emphasis-text)}.stat-card__label{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}.stat-card__value{display:block;margin-top:.3rem;font-size:1.7rem}.muted-text{margin:0;color:var(--panel-muted)}.food-quantity-form__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.food-quantity-form__title-block{min-width:0;flex:1}.food-quantity-form__title-block h3{margin:0}.food-quantity-form__title-block .muted{display:block}.food-quantity-form__preview{margin:0;flex-shrink:0;text-align:right;font-size:1.17em;font-weight:700;line-height:1.2}.api-key-form{align-items:end}.api-keys-section,.settings-data-export,.settings-data-import{margin-top:0}.settings-sync-center{margin:0}.settings-sync-center--attention{border-color:var(--error-text);background:linear-gradient(135deg,color-mix(in srgb,var(--error-text) 10%,transparent),transparent 55%),var(--color-surface)}.settings-sync-center__status{margin:0;color:var(--panel-muted)}.settings-sync-center__status--attention{color:var(--error-text);font-weight:600}.api-key-secret{gap:.6rem}.api-key-secret p{margin:.3rem 0 0;color:var(--panel-muted)}.api-key-secret code{display:block;overflow-wrap:anywhere;padding:.75rem .9rem;border-radius:.9rem;background:var(--code-bg)}.form-stack{display:flex;flex-direction:column;gap:.8rem}.form-grid{display:grid;gap:.8rem}.copy-food-logs__source-details summary{cursor:pointer;font-weight:600}.copy-food-logs__source-details .form-grid{margin-top:.7rem}.food-maintenance-disclosure{margin-top:.2rem}.food-maintenance-disclosure__summary{cursor:pointer;font-weight:600;list-style:none}.food-maintenance-disclosure__summary::-webkit-details-marker{display:none}.food-maintenance-disclosure__summary:before{content:"▸";display:inline-block;margin-right:.45rem;transition:transform .14s ease}.food-maintenance-disclosure[open] .food-maintenance-disclosure__summary:before{transform:rotate(90deg)}.food-maintenance-disclosure__body{margin-top:.8rem}label{display:flex;flex-direction:column;gap:.35rem;color:var(--label-text)}input,select{border:1px solid var(--input-border);border-radius:.9rem;padding:.8rem .9rem;background:var(--input-bg)}.form-grid--nested{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.form-grid--nested label{min-width:0}.form-grid--nested input[type=number]{min-width:0;width:100%;padding-right:.9rem;appearance:textfield}.form-grid--nested input[type=number]::-webkit-outer-spin-button,.form-grid--nested input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.settings-checkbox{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;font-weight:500}.settings-checkbox>:not(input[type=checkbox]){flex:1;min-width:0}.settings-actions{display:flex;flex-wrap:wrap;gap:.6rem}.notifications-settings{gap:.75rem}.notifications-toggle-list{display:flex;flex-direction:column;gap:.6rem}.notifications-toggle-row{width:100%}.notifications-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.notifications-summary{display:flex;flex-direction:column;gap:.35rem}.pill-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.pill,.button,.icon-button{border:0;cursor:pointer}.pill,.button{padding:.8rem 1rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:999px;background:var(--icon-bg);color:var(--icon-text)}.icon-button--menu{flex-direction:column;gap:.18rem;margin-left:-.45rem}.icon-button:disabled{opacity:.5;cursor:default}.icon-button--menu span{display:block;width:1rem;height:2px;border-radius:999px;background:currentColor}.icon-button__close{font-size:1.1rem;line-height:1;font-weight:600}.pill{border-radius:999px;background:var(--pill-bg);color:var(--pill-text)}.pill--active,.button{border-radius:999px;background:var(--button-bg);color:var(--button-text)}.button--secondary{background:var(--button-secondary-bg);color:var(--button-secondary-text)}.button--danger{background:var(--button-danger-bg);color:var(--button-danger-text)}.button--small{padding:.55rem .8rem}.text-button{padding:0;border:0;background:transparent;color:var(--text-button);cursor:pointer;font-weight:600}.sheet-actions{display:flex;flex-wrap:wrap;gap:.7rem}.recent-meal-type-row{display:flex;gap:.5rem;flex-wrap:wrap}.recent-meal-type-row__button--active{background:var(--button-bg);color:var(--button-text)}.barcode-scanner__viewport{position:relative;width:100%;max-height:min(34vh,16rem);border-radius:.9rem;overflow:hidden;background:var(--barcode-viewport-bg)}.barcode-scanner__video{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.barcode-scanner__frame{position:absolute;inset:26% 12%;border:2px solid var(--barcode-frame-border);border-radius:.8rem;box-shadow:0 0 0 100vmax var(--barcode-frame-overlay);pointer-events:none}.barcode-scanner__indicator{position:absolute;left:.7rem;right:.7rem;bottom:.7rem;display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;border-radius:999px;font-size:.85rem;color:var(--barcode-indicator-text);background:var(--barcode-indicator-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.barcode-scanner__indicator-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--barcode-dot-idle)}.barcode-scanner__indicator-dot--active{background:var(--barcode-dot-active);animation:barcode-scanner-pulse 1.2s ease-in-out infinite}@keyframes barcode-scanner-pulse{0%,to{box-shadow:0 0 0 0 var(--barcode-pulse-start)}50%{box-shadow:0 0 0 .28rem var(--barcode-pulse-end)}}.muted{color:var(--panel-muted)}.food-serving-row{align-items:end}.checkbox-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-direction:row}.checkbox-row>:not(input[type=checkbox]){flex:1;min-width:0}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:2.7rem;height:1.55rem;border:0;border-radius:999px;margin:0 0 0 auto;padding:0;background:var(--toggle-track-off);box-shadow:inset 0 0 0 1px var(--input-border);position:relative;cursor:pointer;flex:0 0 auto;transition:background .14s ease,box-shadow .14s ease}input[type=checkbox]:before{content:"";position:absolute;top:.17rem;left:.17rem;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--toggle-thumb);box-shadow:0 1px 3px var(--toggle-shadow);transition:transform .14s ease,background .14s ease}input[type=checkbox]:checked{background:var(--toggle-track-on);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent-strong) 72%,transparent)}input[type=checkbox]:checked:before{transform:translate(1.15rem)}input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--toggle-focus-ring),inset 0 0 0 1px color-mix(in srgb,var(--color-accent-strong) 72%,transparent)}input[type=checkbox]:disabled{background:var(--toggle-track-disabled);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--input-border) 70%,transparent);cursor:not-allowed}input[type=checkbox]:disabled:before{background:var(--toggle-thumb-disabled)}.entry-list{display:flex;flex-direction:column;gap:.7rem;list-style:none;padding:0;margin:0}.entry-list+.entry-list{margin-top:.7rem}.virtual-entry-list{position:relative;width:100%}.virtual-entry-list__scroller{max-height:min(42rem,68vh);overflow:auto}.virtual-entry-list__row{position:absolute;top:0;left:0;width:100%;padding-bottom:.7rem;list-style:none}.entry-list__item{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.9rem;border-radius:1rem;background:var(--entry-item-bg)}.entry-list__item>*{min-width:0}.entry-list__item strong,.empty-state strong{display:block;overflow-wrap:anywhere}.entry-list__title-row{display:flex;align-items:center;gap:.5rem}.entry-list__item p,.empty-state p{margin:.15rem 0 0;color:var(--panel-muted);overflow-wrap:anywhere}.drink-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem}.drink-row{display:flex;flex-direction:column;gap:.45rem;min-width:0;padding:.65rem;border:1px solid var(--panel-border);border-radius:.9rem;background:var(--entry-item-bg)}.drink-row__summary{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.drink-row__summary strong{min-width:0}.drink-row__summary span{color:var(--panel-muted);font-size:.9rem;white-space:nowrap;text-align:right}.drink-row__custom-button{flex:1 1 auto;min-width:0;font-size:.82rem;text-align:center}.drink-row__actions{display:flex;flex-wrap:wrap;gap:.3rem}.drink-list__hidden{margin-top:.35rem}.drink-list__toggle{padding:0;font-size:.88rem}.drink-list__hidden .drink-list{margin-top:.25rem}@media(min-width:900px){.drink-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.segmented-control{display:flex;gap:.6rem;padding:0;margin:0;border:0}.segmented-control legend{margin-bottom:.45rem;font-size:.95rem;font-weight:600}.segmented-control__option{display:inline-flex;align-items:center;gap:.4rem}.entry-kind-pill{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;background:var(--chip-bg);color:var(--chip-text)}.entry-kind-pill--meal{background:var(--entry-kind-meal-bg)}.entry-kind-pill--source{text-transform:uppercase;letter-spacing:.05em;font-size:.66rem}.entry-kind-pill--source-cofid{background:color-mix(in srgb,var(--color-highlight) 22%,transparent)}.entry-kind-pill--source-alcohol_reference{background:color-mix(in srgb,var(--color-highlight-strong) 26%,transparent)}.entry-kind-pill--source-open_food_facts{background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.entry-kind-pill--incomplete{background:color-mix(in srgb,var(--color-highlight) 18%,transparent);color:color-mix(in srgb,var(--color-highlight) 70%,var(--color-text))}.entry-list__actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.pill-row{display:flex;flex-wrap:wrap;gap:.55rem}.recipe-view,.recipe-view__columns,.recipe-view__column{display:grid;gap:1rem}.recipe-view__meta{margin:0 0 .4rem;color:var(--color-muted)}.recipe-view__ingredient-list{list-style:none;padding:0;margin:.85rem 0 0;display:flex;flex-direction:column;gap:.8rem}.recipe-view__ingredient{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 80%,transparent)}.recipe-view__ingredient:last-child{padding-bottom:0;border-bottom:0}.recipe-view__ingredient p,.recipe-view__storage-row p{margin:.2rem 0 0}.recipe-view__markdown>:first-child,.recipe-view__storage-row:first-of-type{margin-top:0}.recipe-view__markdown>:last-child,.recipe-view__storage-row:last-of-type{margin-bottom:0}.recipe-view__steps{display:grid;gap:.9rem;margin:.85rem 0 0;padding:0;list-style:none}.recipe-view__step{padding-bottom:.9rem;border-bottom:1px solid color-mix(in srgb,var(--color-border) 80%,transparent)}.recipe-view__step:last-child{padding-bottom:0;border-bottom:0}.recipe-view__step-header{display:grid;gap:.45rem;margin-bottom:.45rem}.recipe-view__step>:last-child{margin-bottom:0}.recipe-view-actions{position:sticky;bottom:calc(var(--app-shell-bottom-offset) + .75rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;margin-top:1rem;border:1px solid var(--color-border);border-radius:1.25rem;background:color-mix(in srgb,var(--color-surface) 92%,white);box-shadow:0 12px 28px var(--color-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.recipe-view-actions__buttons{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.food-database-filters{margin-bottom:.85rem}.food-database-entry{padding:1rem}.weight-summary-card{background:linear-gradient(145deg,var(--weight-summary-bg-start),var(--weight-summary-bg-end)),var(--weight-summary-bg-base)}.weight-summary-card__eyebrow,.weight-review-card__eyebrow{margin:0 0 .35rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--weight-muted)}.weight-summary-card__headline-row,.weight-review-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.weight-summary-card__headline{display:block;font-size:clamp(1.8rem,7vw,2.6rem);line-height:1}.weight-summary-card__meta,.weight-summary-card__message,.weight-review-card__body,.weight-milestones__item p,.weight-graph__empty{margin:.35rem 0 0;color:var(--weight-muted)}.weight-summary-card__change{min-width:6rem;text-align:right}.weight-summary-card__change span,.weight-summary-card__progress span{display:block;color:var(--weight-muted);font-size:.82rem}.weight-summary-card__change strong{font-size:1.1rem}.weight-summary-card__change--positive strong{color:var(--weight-change-positive)}.weight-summary-card__progress,.weight-review-card__metrics{display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.9rem}.weight-summary-card__progress strong,.weight-review-card__metrics span{display:block}.weight-budget-explanation{display:grid;gap:.9rem}.weight-budget-explanation--section{padding:.9rem 1rem;border-radius:1rem;background:var(--weight-recap-section-bg)}.weight-budget-explanation__eyebrow,.weight-budget-explanation__message,.weight-budget-explanation__note,.weight-budget-explanation__delta,.weight-budget-explanation__meta{margin:0}.weight-budget-explanation__eyebrow{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--weight-muted)}.weight-budget-explanation__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.weight-budget-explanation__body{min-width:0}.weight-budget-explanation__headline{display:block;font-size:1.1rem}.weight-budget-explanation__message{margin-top:.35rem;color:var(--weight-muted)}.weight-budget-explanation__note,.weight-budget-explanation__delta{color:var(--weight-muted)}.weight-budget-explanation__note{margin-top:.65rem}.weight-budget-explanation__override{margin-top:.75rem;padding:.75rem .9rem;border-radius:.85rem;background:var(--weight-recap-section-bg)}.weight-budget-explanation__override strong,.weight-budget-explanation__override p{margin:0}.weight-budget-explanation__override p{margin-top:.35rem;color:var(--weight-muted)}.weight-budget-explanation__override--section{padding:.65rem .8rem}.weight-budget-explanation__delta{padding:.75rem .9rem;border-radius:.85rem;background:var(--weight-recap-section-bg)}.weight-budget-explanation__metrics{display:grid;gap:.75rem 1rem;grid-template-columns:repeat(2,minmax(0,1fr));min-width:12rem;text-align:right}.weight-budget-explanation__metrics span,.weight-budget-explanation__meta{color:var(--weight-muted);font-size:.82rem}.weight-budget-explanation__metrics strong{display:block}.weight-budget-explanation__meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem}.weight-budget-timeline{margin-top:1rem}.weight-budget-timeline__header{margin-bottom:0}.weight-budget-timeline__list{list-style:none;margin:1rem 0 0;padding:0;display:grid;gap:.85rem}.weight-budget-timeline__item{padding:.9rem 1rem;border-radius:1rem;background:var(--weight-recap-section-bg)}.weight-budget-timeline__row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.weight-budget-timeline__row strong,.weight-budget-timeline__row p,.weight-budget-timeline__reason,.weight-budget-timeline__meta{margin:0}.weight-budget-timeline__row p,.weight-budget-timeline__reason,.weight-budget-timeline__meta,.weight-budget-timeline__change span{color:var(--weight-muted)}.weight-budget-timeline__change{display:flex;align-items:baseline;justify-content:flex-end;flex-wrap:wrap;gap:.35rem;text-align:right}.weight-budget-timeline__change span,.weight-budget-timeline__meta{font-size:.82rem}.weight-budget-timeline__reason{margin-top:.5rem}.weight-budget-timeline__meta+.weight-budget-timeline__meta{margin-top:.25rem}.streaks-panel__eyebrow,.streak-card__rule,.streak-card__count span{margin:0}.streaks-panel__eyebrow{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--weight-muted)}.streaks-panel__grid{display:grid;gap:.85rem;margin-top:.9rem}.streaks-panel__grid--compact{margin-top:.75rem}.streak-card{padding:.9rem 1rem;border-radius:1rem;background:var(--weight-recap-section-bg);display:grid;gap:.75rem}.streak-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.streak-card__title{display:block}.streak-card__rule,.streak-card__count span{color:var(--weight-muted);font-size:.82rem}.streak-card__rule{margin-top:.3rem}.streak-card__count{text-align:right}.streak-card__count strong{display:block;font-size:1.25rem}.streak-card__trail{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.streak-card__trail-dot{width:100%;min-height:.7rem;border-radius:999px;background:color-mix(in srgb,var(--border-color) 70%,transparent);border:1px solid color-mix(in srgb,var(--border-color) 85%,transparent)}.streak-card__trail-dot--complete{background:var(--weight-budget-badge-bg);border-color:color-mix(in srgb,var(--weight-budget-badge-text) 45%,transparent)}.streak-card__trail-dot--current{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.weight-recap{display:flex;flex-direction:column;gap:.9rem}.weight-recap__header h3,.weight-recap__eyebrow,.weight-recap__meta,.weight-recap__count,.weight-recap__section-title,.weight-recap__message,.weight-recap__stats p,.weight-recap__stats span,.weight-recap__milestones span{margin:0}.weight-recap__eyebrow,.weight-recap__section-title{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--weight-muted)}.weight-recap__header h3{font-size:clamp(1.7rem,7vw,2.4rem);line-height:1}.weight-recap__meta,.weight-recap__count,.weight-recap__message,.weight-recap__stats p,.weight-recap__milestones span{color:var(--weight-muted)}.weight-recap__section{padding:.9rem 1rem;border-radius:1rem;background:var(--weight-recap-section-bg)}.weight-recap__stats{display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr) max-content}.weight-recap__stats-panel{min-width:0}.weight-recap__stats-panel--progress{justify-self:end;text-align:right;width:max-content}.weight-recap__stats strong{display:block;font-size:1.1rem}.weight-recap__milestones{display:flex;flex-direction:column;gap:.55rem;margin:.75rem 0 0;padding:0;list-style:none}.weight-recap__milestones li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.weight-review-card__points{font-size:1.3rem}.weight-milestones{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.6rem}.weight-milestones__header h2,.weight-milestones__header p{margin:0}.weight-milestones__subtitle{margin-top:.3rem;color:var(--weight-muted)}.weight-milestones__track{position:relative;margin:1rem 0 1.1rem;height:3.6rem;overflow:visible}.weight-milestones__track-line{position:absolute;left:0;right:0;top:1.4rem;height:.35rem;border-radius:999px;background:var(--weight-milestone-track)}.weight-milestones__stop,.weight-milestones__marker{position:absolute;transform:translate(-50%)}.weight-milestones__stop{top:1.575rem;width:.9rem;height:.9rem;border-radius:50%;border:3px solid var(--weight-milestone-stop-ring);box-shadow:0 6px 16px var(--weight-milestone-stop-shadow);z-index:1;transform:translate(-50%,-50%)}.weight-milestones__stop--complete{background:var(--weight-milestone-complete-bg);border-color:var(--weight-milestone-complete-ring);box-shadow:0 6px 16px var(--weight-milestone-complete-shadow)}.weight-milestones__stop--next{background:var(--weight-milestone-next-bg)}.weight-milestones__stop--future{width:.75rem;height:.75rem;background:var(--weight-milestone-future-bg);border-color:var(--weight-milestone-future-ring);box-shadow:none}.weight-milestones__marker{top:1.575rem;display:flex;align-items:center;justify-content:center;z-index:2;transform:translate(-50%,-50%)}.weight-milestones__marker:before{content:"";display:block;width:1rem;height:1rem;border-radius:50%;background:var(--weight-milestone-marker-bg);border:3px solid var(--weight-milestone-marker-ring);box-shadow:0 4px 10px var(--weight-milestone-marker-shadow)}.weight-milestones__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .9rem;border-radius:1rem;background:var(--weight-milestone-item-bg)}.weight-milestones__item--complete{background:var(--weight-milestone-item-complete-bg);border:1px solid var(--weight-milestone-item-complete-border)}.weight-milestones__item--complete strong,.weight-milestones__item--complete span{color:var(--weight-milestone-item-complete-text)}.weight-milestones__item--next{background:var(--weight-milestone-item-next-bg)}.weight-milestones__item strong,.weight-milestones__item p{margin:0}.weight-milestones__empty{margin:.4rem 0 0;color:var(--weight-muted)}.weight-budget-change-badge{display:inline-block;margin:.35rem 0 0;padding:.22rem .55rem;border-radius:999px;background:var(--weight-budget-badge-bg);color:var(--weight-budget-badge-text);font-size:.78rem;font-weight:600}.weight-graph{width:100%;height:auto;border-radius:1rem;background:var(--weight-graph-bg)}.weight-graph-wrap{position:relative}.weight-graph__axis,.weight-graph__gridline{stroke:var(--weight-graph-grid);stroke-width:1}.weight-graph__axis{stroke:var(--weight-graph-axis)}.weight-graph__axis-label{fill:var(--weight-graph-axis-label);font-size:5px}.weight-graph__axis-label--y{text-anchor:end}.weight-graph__axis-label--x{text-anchor:middle}.weight-graph__guide{stroke-width:1;stroke-dasharray:3 3}.weight-graph__guide--completed{stroke:var(--weight-graph-guide-completed)}.weight-graph__guide--next{stroke:var(--weight-graph-guide-next)}.weight-graph__guide-label{font-size:5px;text-anchor:start}.weight-graph__guide-label--completed{fill:var(--weight-graph-guide-label-completed)}.weight-graph__guide-label--next{fill:var(--weight-graph-guide-label-next)}.weight-graph__line{fill:none;stroke:var(--weight-graph-line);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.weight-graph__trendline{fill:none;stroke:var(--weight-graph-guide-next);stroke-width:1.5;stroke-dasharray:4 3;stroke-linecap:round}.weight-graph__projection-band{fill:var(--weight-projection-band);stroke:none}.weight-graph__projection{fill:none;stroke:var(--weight-projection-line);stroke-width:1.6;stroke-dasharray:5 3;stroke-linecap:round}.weight-graph__point{fill:var(--weight-graph-point);stroke:var(--weight-graph-point-ring);stroke-width:1.25}.weight-graph__point--latest{fill:var(--weight-graph-point-latest)}.weight-graph__point--milestone{stroke:var(--weight-graph-point-milestone-ring);stroke-width:2}.weight-graph__tooltip{position:absolute;z-index:1;min-width:8.5rem;max-width:12rem;padding:.55rem .7rem;border:1px solid var(--weight-graph-tooltip-border);border-radius:.9rem;background:var(--weight-graph-tooltip-bg);box-shadow:0 10px 24px var(--weight-graph-tooltip-shadow);transform:translate(-50%,calc(-100% - 12px));display:flex;flex-direction:column;gap:.15rem;pointer-events:none}.weight-graph__tooltip strong,.weight-graph__tooltip span{display:block}.weight-graph__tooltip span{color:var(--weight-graph-tooltip-text);font-size:.82rem}.weight-plateau-pill{display:inline-flex;margin-top:.25rem;padding:.2rem .5rem;border-radius:999px;background:var(--weight-budget-badge-bg);color:var(--weight-budget-badge-text);font-size:.75rem}@media(max-width:640px){.entry-list__item{align-items:stretch;flex-direction:column;gap:.8rem}.entry-list__item.checkbox-row{align-items:center;flex-direction:row}.entry-list__actions{flex-direction:column;align-items:stretch;width:100%}.entry-list__actions .button{width:100%}.weight-summary-card__headline-row,.weight-review-card__header,.weight-milestones__item,.weight-budget-explanation__header,.weight-budget-timeline__row,.streak-card__header{flex-direction:column;align-items:flex-start}.weight-summary-card__change,.weight-budget-explanation__metrics,.weight-budget-timeline__change,.streak-card__count{text-align:left}.weight-budget-timeline__change{justify-content:flex-start}.weight-summary-card__progress,.weight-review-card__metrics,.weight-budget-explanation__metrics{grid-template-columns:1fr}.weight-milestones__track{overflow-x:clip}}.meal-sections{display:flex;flex-direction:column;gap:1rem}.meal-section{border-radius:1rem;padding:.9rem;background:var(--meal-section-bg)}.meal-section__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem}.meal-section__header h3{margin:0;font-size:1rem}.meal-section__header p{margin:.2rem 0 0;color:var(--panel-muted)}.meal-section__empty{color:var(--panel-muted);padding:.4rem 0}.empty-state{padding:1rem 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-text{color:var(--error-text)}.field-error{margin:0;color:var(--error-text);font-size:.9rem;font-weight:700}.overlay-backdrop{position:fixed;inset:0;z-index:20;background:var(--overlay-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay-backdrop--drawer,.overlay-backdrop--sheet{opacity:0;transition:opacity .5s ease}.overlay-backdrop--visible{opacity:1}.bottom-sheet{position:absolute;left:.8rem;right:.8rem;bottom:max(.8rem,env(safe-area-inset-bottom));max-height:calc(100dvh - max(.8rem,env(safe-area-inset-top)) - max(.8rem,env(safe-area-inset-bottom)));border-radius:1.5rem 1.5rem 1rem 1rem;background:var(--bottom-sheet-bg);box-shadow:0 20px 50px var(--bottom-sheet-shadow);overflow:hidden;display:flex;flex-direction:column;opacity:0;transition:opacity .5s ease}.bottom-sheet--visible{opacity:1}.bottom-sheet__handle{width:3rem;height:.3rem;border-radius:999px;background:var(--sheet-handle);margin:.8rem auto 0}.bottom-sheet__header,.nav-drawer__header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1rem}.bottom-sheet__header h2,.nav-drawer__header h2{margin:0;font-size:1.05rem}.bottom-sheet__body{overflow:auto;padding:0 1rem 1rem}.bottom-sheet__body--food-picker{overflow:hidden;display:flex;flex-direction:column;min-height:0}.bottom-sheet--desktop-wide .bottom-sheet__body{padding:0 1.25rem 1.25rem}.recipe-form{min-height:0}.recipe-form__layout{display:grid;gap:1rem}.recipe-form__main{display:flex;flex-direction:column;gap:1rem}.recipe-form__section,.recipe-form__sidebar{display:flex;flex-direction:column;gap:.85rem}.recipe-form__section-header h3{margin:0}.recipe-form__section-header p{margin:.3rem 0 0}.recipe-form__grid{display:grid;gap:.85rem}.recipe-form__field{display:flex;flex-direction:column;gap:.35rem}.recipe-form__field--full{grid-column:1 / -1}.recipe-form__ingredients-list{display:flex;flex-direction:column;gap:.75rem}.recipe-form__storage-step-group{display:grid;gap:.8rem;padding:.85rem;border:1px solid var(--color-border);border-radius:.65rem;background:color-mix(in srgb,var(--color-surface) 88%,var(--color-bg))}.recipe-form__storage-step-group h4{margin:0}.recipe-form__ingredient-preparation{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem}.recipe-form__save{margin-top:auto}.recipe-steps{display:grid;gap:.8rem}.recipe-steps__item{border:1px solid var(--color-border);border-radius:.75rem;background:color-mix(in srgb,var(--color-surface) 88%,var(--color-bg));overflow:hidden}.recipe-steps__summary{cursor:pointer;padding:.85rem 1rem}.recipe-steps__summary>span{display:grid;gap:.45rem}.recipe-steps__body{display:grid;gap:.85rem;padding:0 1rem 1rem}.recipe-steps__chips{display:flex;flex-wrap:wrap;gap:.4rem}.recipe-steps__chip{display:inline-flex;align-items:center;min-height:1.75rem;padding:.2rem .55rem;border:1px solid color-mix(in srgb,var(--color-accent) 34%,var(--color-border));border-radius:999px;background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface));color:var(--color-text);font-size:.82rem;line-height:1.2}.recipe-steps__actions,.recipe-steps__action{display:grid;gap:.75rem}.recipe-steps__action{padding:.85rem;border:1px solid var(--color-border);border-radius:.65rem;background:var(--color-surface)}.recipe-steps__action-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.recipe-steps__action-fields{display:grid;gap:.75rem}.recipe-steps__duration-field{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;border:0}.recipe-steps__duration-field legend{grid-column:1 / -1;padding:0;font-weight:700}.recipe-steps__action-field,.recipe-steps__toggle{display:flex;flex-direction:column;gap:.35rem}.recipe-steps__toggle{flex-direction:row;align-items:center;min-height:2.75rem}.recipe-steps__action-field--note{grid-column:1 / -1}.markdown-editor{display:flex;flex-direction:column;gap:.75rem}.markdown-editor__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.markdown-editor__header>span:first-child{font-weight:700}.markdown-editor__surface{--basePageBg: var(--color-surface-strong);--baseBase: var(--color-surface);--baseBgSubtle: color-mix(in srgb, var(--color-surface) 92%, var(--color-bg));--baseBg: color-mix(in srgb, var(--color-surface) 86%, var(--color-bg));--baseBgHover: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface));--baseBgActive: color-mix(in srgb, var(--color-accent) 24%, var(--color-surface));--baseLine: var(--color-border);--baseBorder: var(--color-border);--baseBorderHover: var(--input-border);--baseSolid: var(--color-muted);--baseSolidHover: var(--color-text);--baseText: var(--color-muted);--baseTextContrast: var(--color-text);--accentText: var(--text-button);--accentTextContrast: var(--color-accent-strong);border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-surface);overflow:hidden}.markdown-editor__surface .mdxeditor-toolbar{border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 88%,var(--color-bg));border-radius:0}.markdown-editor__surface .mdxeditor-toolbar svg,.markdown-editor__surface .mdxeditor-toolbar button,.markdown-editor__surface .mdxeditor-toolbar [role=button],.markdown-editor__surface .mdxeditor-toolbar [role=combobox]{color:var(--color-text)}.markdown-editor__surface .mdxeditor-toolbar button:hover,.markdown-editor__surface .mdxeditor-toolbar [role=button]:hover,.markdown-editor__surface .mdxeditor-toolbar [role=combobox]:hover,.markdown-editor__surface .mdxeditor-toolbar button[data-state=on],.markdown-editor__surface .mdxeditor-toolbar [role=button][data-state=on],.markdown-editor__surface .mdxeditor-toolbar [role=combobox][data-state=open]{background:color-mix(in srgb,var(--color-accent) 22%,var(--color-surface));color:var(--color-text)}.markdown-editor__surface .mdxeditor-toolbar div[role=separator]{border-left-color:var(--color-border);border-right-color:color-mix(in srgb,var(--color-surface) 78%,var(--color-bg))}.markdown-editor__surface [role=listbox],.markdown-editor__surface [data-radix-popper-content-wrapper]{color:var(--color-text)}:root[data-theme=dark] .markdown-editor__surface{--basePageBg: rgba(27, 40, 36, .98);--baseBase: rgba(24, 36, 33, .96);--baseBgSubtle: rgba(32, 46, 42, .95);--baseBg: rgba(45, 63, 57, .95);--baseBgHover: rgba(111, 168, 143, .24);--baseBgActive: rgba(111, 168, 143, .34);--baseLine: rgba(228, 239, 233, .13);--baseBorder: rgba(228, 239, 233, .2);--baseBorderHover: rgba(228, 239, 233, .32);--baseSolid: #a9beb7;--baseSolidHover: #e4efe9;--baseText: #c8ddd5;--baseTextContrast: #f2fbf7;--accentText: #bce0d0;--accentTextContrast: #d7f2e7}:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar{background:#182421fa}:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar svg,:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar button,:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=button],:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=combobox]{color:#f2fbf7}:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar button:hover,:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=button]:hover,:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=combobox]:hover,:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar button[data-state=on],:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=button][data-state=on],:root[data-theme=dark] .markdown-editor__surface .mdxeditor-toolbar [role=combobox][data-state=open]{background:#6fa88f47;color:#fff}.markdown-editor__content{min-height:var(--markdown-editor-min-height, 12rem);padding:.9rem 1rem;color:var(--color-text);background:var(--color-surface);overflow:auto}.markdown-editor__content ul,.markdown-editor__content ol{padding-left:1.3rem}.markdown-editor__content code{padding:.1rem .3rem;border-radius:.35rem;background:color-mix(in srgb,var(--color-surface) 70%,var(--color-bg));font-size:.92em}.food-picker-sheet{display:flex;flex:1;flex-direction:column;min-height:0;gap:.85rem}.food-picker-sheet__controls{flex:0 0 auto}.food-picker-sheet__results{flex:1 1 auto;min-height:0;overflow:auto;padding-bottom:.25rem}.nav-drawer{position:absolute;top:0;left:0;width:min(22rem,88vw);height:100%;padding:1rem;background:var(--drawer-bg);box-shadow:12px 0 36px var(--drawer-shadow);opacity:0;transition:opacity .5s ease}.nav-drawer--visible{opacity:1}.nav-drawer__nav{display:flex;flex-direction:column;gap:.3rem}.nav-drawer__item{border:0;border-radius:1rem;background:transparent;color:var(--drawer-item);cursor:pointer;font:inherit;padding:.8rem .9rem;text-align:left}.nav-drawer__item--secondary{color:var(--drawer-item-secondary)}.nav-drawer__item--active{background:var(--drawer-item-active-bg);color:var(--drawer-item-active-text);font-weight:600}.nav-drawer__separator{height:1px;margin:.5rem 0;background:var(--drawer-separator)}.toast{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%);border-radius:999px;padding:.8rem 1rem;color:var(--toast-text);box-shadow:0 10px 18px var(--toast-shadow)}.toast--success{background:var(--toast-success-bg)}.toast--error{background:var(--toast-error-bg)}.checkbox-field{display:flex;align-items:center;gap:.5rem}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.checkbox-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid var(--border-color, #d0d7de);border-radius:999px;background:#0f172a0a}.drink-settings-section__form+.drink-settings-section__list,.drink-settings-section__list+.drink-settings-section__form,.drink-settings-section__list+.drink-settings-section__list{margin-top:.9rem}.drink-settings-section__toggle-field{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}.drink-settings-section__toggle-field span{font-weight:500}.drink-settings-section__create-button{align-self:end}.drink-settings-section__checkbox-chip{justify-content:space-between;gap:.6rem}.drink-settings-section__checkbox-chip input{flex:0 0 auto}.date-range-filter{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem}.date-range-filter__field{display:flex;flex:1 1 12rem;flex-direction:column;gap:.35rem;min-width:0}.date-range-filter__field span{font-weight:600}.date-range-filter__apply{flex:0 0 auto;align-self:end}.reports-screen__report{padding:1.1rem}.intake-report{display:flex;flex-direction:column;gap:1rem}.intake-report__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid var(--color-border)}.intake-report__header h2,.intake-report__day-header h3{margin:0}.intake-report__eyebrow{margin:0 0 .3rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.intake-report__header-meta{display:flex;flex-direction:column;gap:.25rem;color:var(--color-muted);text-align:right;font-size:.92rem}.intake-report__summary{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.intake-report__summary-card{display:flex;flex-direction:column;gap:.2rem;padding:.85rem .95rem;border:1px solid var(--color-border);border-radius:1rem;background:color-mix(in srgb,var(--color-surface) 92%,var(--color-bg))}.intake-report__summary-card strong{font-size:1.05rem}.intake-report__summary-card span{color:var(--color-muted)}.intake-report__days{display:flex;flex-direction:column;gap:.9rem}.intake-report__day{padding:.95rem 1rem;border:1px solid var(--color-border);border-radius:1rem;background:color-mix(in srgb,var(--color-surface) 94%,var(--color-bg))}.intake-report__day-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.intake-report__day-header p{margin:.25rem 0 0;color:var(--color-muted)}.intake-report__day-totals{display:flex;flex-direction:column;gap:.25rem;text-align:right;font-size:.92rem}.intake-report__timeline{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}.intake-report__row{display:grid;grid-template-columns:4.4rem minmax(0,1fr);gap:.85rem;padding:.7rem 0;border-top:1px solid color-mix(in srgb,var(--color-border) 85%,transparent)}.intake-report__row:first-child{padding-top:0;border-top:0}.intake-report__time{font-weight:600;color:var(--color-muted)}.intake-report__body{min-width:0}.intake-report__body strong{display:block;margin-bottom:.2rem}.intake-report__body p{margin:0;color:var(--color-muted)}@media(min-width:900px){.app-shell__header,.app-shell__content{max-width:1080px;width:100%;margin:0 auto}.app-shell__content{padding-bottom:2rem}.stats-grid,.form-grid,.intake-report__summary{grid-template-columns:repeat(4,minmax(0,1fr))}.bottom-sheet{left:50%;right:auto;width:min(40rem,calc(100vw - 2rem));transform:translate(-50%)}.bottom-sheet--desktop-wide{top:50%;bottom:auto!important;height:min(86dvh,54rem);width:min(74rem,calc(100vw - 3rem));transform:translate(-50%,-50%);border-radius:1.5rem}.bottom-sheet--desktop-wide .bottom-sheet__body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.bottom-sheet--desktop-wide .recipe-form{display:flex;flex:1 1 auto}.recipe-form__layout{flex:1 1 auto;grid-template-columns:minmax(0,1.65fr) minmax(20rem,.95fr);align-items:stretch;min-height:0}.recipe-form__main{min-height:0;overflow:auto;padding-right:.15rem}.recipe-form__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-steps__action-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.recipe-form__sidebar{position:sticky;top:0;min-height:0;max-height:none}.recipe-form__ingredients-list{flex:1 1 auto;min-height:0;overflow:auto}.markdown-editor__panes{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.recipe-view{grid-template-columns:minmax(0,1fr);align-items:start}.recipe-view__summary{grid-column:1}.recipe-view__columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}@media(max-width:719px){.date-range-filter__apply{width:100%}.intake-report__header,.intake-report__day-header{flex-direction:column}.intake-report__header-meta,.intake-report__day-totals{text-align:left}.intake-report__row{grid-template-columns:1fr;gap:.3rem}.recipe-view-actions{flex-direction:column;align-items:stretch}.recipe-view-actions__buttons{width:100%}.recipe-view-actions__buttons>.button{flex:1 1 12rem}}@media print{:root{color-scheme:light}body{background:#fff;color:#111}.app-shell__header,.security-warning-banner,.toast,.reports-screen__controls,.reports-screen__print-button{display:none!important}.app-shell__content{padding:0}.reports-screen{gap:0}.reports-screen__report,.intake-report__day,.intake-report__summary-card{border-color:#d4d4d4;background:#fff;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.reports-screen__report{padding:0;border:0;border-radius:0}.intake-report__day{break-inside:avoid-page;page-break-inside:avoid}}
