:root{--bg:#faf6ee;--surface-sunk:#f1e9da;--card:#fffdf8;--ink:#2b2420;--ink-2:#6b5f55;--hairline:#2b242014;--edge:#2b242033;--brand:#1f5a48;--on-brand:#fff;--brand-soft:#e2ece5;--warm:#b4502a;--on-warm:#fff;--saffron:#f0b54a;--saffron-text:#9a5b00;--protein:#0072b2;--protein-text:#0072b2;--carbs:#e69f00;--carbs-text:#9a5b00;--fat:#cc79a7;--fat-text:#9c4f7a;--card-shadow:0 1px 2px #2b24200a, 0 8px 24px #2b24200f;--card-border:transparent;--scrim:#19151266;--r-card:22px;--r-chip:999px;--r-sheet:20px;--r-control:14px;--tap:44px;--tabbar-h:56px;--font-title:ui-serif, "New York", "Iowan Old Style", Georgia, serif;--font-number:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--muted:var(--ink-2);--line:var(--hairline);--accent:var(--ink-2);--ok:var(--brand);--bad:var(--ink);--radius:var(--r-card);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#191512;--surface-sunk:#201b17;--card:#25201b;--ink:#f4eee4;--ink-2:#b8ac9e;--hairline:#f4eee414;--edge:#f4eee43d;--brand:#6cc3a0;--on-brand:#191512;--brand-soft:#23362d;--warm:#e88a64;--on-warm:#191512;--saffron:#f0b54a;--saffron-text:#f0b54a;--protein:#56b4e9;--protein-text:#56b4e9;--carbs:#e69f00;--carbs-text:#e69f00;--fat:#cc79a7;--fat-text:#cc79a7;--card-shadow:none;--card-border:var(--hairline);--scrim:#0000008c}}*{box-sizing:border-box}html{font-size:106.25%;font:-apple-system-body}html,body{background:var(--bg);color:var(--ink);overscroll-behavior-y:none;margin:0}body{-webkit-tap-highlight-color:transparent;font-family:var(--font-body);font-size:1rem;line-height:1.35}a{color:var(--brand)}h1{font-family:var(--font-title);letter-spacing:-.01em;margin:0;font-size:2rem;font-weight:700;line-height:1.12}h2{margin:0;font-size:1.059rem;font-weight:650}.num,.ring-number,.target-number,.entry-kcal,.food-kcal,.ri-kcal,.rt-kcal,.meal-head>.muted{font-family:var(--font-number);font-variant-numeric:tabular-nums}.app{min-height:100dvh}.screen{padding:calc(env(safe-area-inset-top) + 12px) 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 96px);max-width:560px;margin:0 auto}.screen-header{margin:8px 0 16px}.eyebrow,.label{color:var(--ink-2);letter-spacing:.02em;margin:0 0 4px;font-size:.765rem;font-weight:600}.muted{color:var(--ink-2)}.small{font-size:.882rem}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--card-shadow);margin-bottom:14px;padding:18px}.compact-title{z-index:30;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;text-align:center;font-family:var(--font-title);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--hairline);font-size:1rem;font-weight:700;transition:opacity .18s;position:fixed;top:0;left:0;right:0}.compact-title[hidden]{opacity:0;pointer-events:none;display:block}.food-icon{background:var(--surface-sunk);border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:inline-grid}.food-icon img{width:60%;height:60%}.food-icon.sm{width:36px;height:36px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.summary{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.ring{border:10px solid var(--brand-soft);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:max(112px,6.6rem);height:max(112px,6.6rem);display:flex}.ring-number{font-size:1.647rem;font-weight:700}.ring-label{color:var(--ink-2);font-size:.765rem}.macros{flex:12rem;gap:12px;display:grid}.macro-top{flex-wrap:wrap;justify-content:space-between;column-gap:8px;margin-bottom:4px;font-size:.882rem;display:flex}.bar{background:var(--hairline);border-radius:5px;height:10px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:5px;height:100%}.bar-fill.macro-protein{background:var(--protein);box-shadow:inset 0 0 0 1px var(--protein-text)}.bar-fill.macro-carbs{background:var(--carbs);box-shadow:inset 0 0 0 1px var(--carbs-text)}.bar-fill.macro-fat{background:var(--fat);box-shadow:inset 0 0 0 1px var(--fat-text)}.hint{color:var(--muted);margin:4px 4px 16px;font-size:.824rem}.meal-head{justify-content:space-between;align-items:baseline;display:flex}.meal p{margin:8px 0 0}.plain-list{margin:8px 0 0;padding-left:20px;line-height:1.6}.checks{gap:12px;margin:12px 0;padding:0;list-style:none;display:grid}.checks li{align-items:flex-start;gap:12px;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px;margin-top:6px}.dot.ok{background:var(--brand)}.dot.bad{border:2px solid var(--ink-2);background:0 0}.dot.info{background:var(--ink-2)}.tabbar{z-index:25;min-height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--hairline);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:var(--tap);color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:clamp(10px,.647rem,13px);font-weight:600;text-decoration:none;display:flex}.tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.tab.active{color:var(--brand)}.tab.primary svg{background:var(--warm);width:44px;height:44px;stroke:var(--on-warm);stroke-width:2.2px;border-radius:50%;padding:10px}.tab.primary span{display:none}.target{align-items:baseline;gap:6px;margin:4px 0 8px;display:flex}.target-number{letter-spacing:-.02em;font-size:2.353rem;font-weight:700}.notice{border-radius:var(--r-control);background:var(--surface-sunk);margin:8px 0;padding:12px 14px;font-size:.882rem;line-height:1.4}.notice.bad{background:var(--surface-sunk);border-left:3px solid var(--ink)}.update-banner{z-index:50;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;background:var(--brand);color:var(--on-brand);font:inherit;text-align:center;cursor:pointer;border:0;font-size:.882rem;font-weight:600;position:fixed;top:0;left:0;right:0}.stats{grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:14px 12px;margin:16px 0 0;display:grid}.stats dt{color:var(--muted);font-size:.706rem}.stats dd{margin:2px 0 0;font-weight:600}.stats>div:first-child{grid-column:1/-1}.band{border-radius:var(--r-chip);background:var(--surface-sunk);color:var(--ink);margin-left:4px;padding:2px 8px;font-size:.706rem;font-weight:600}.profile-line{margin:8px 0 0;line-height:1.6}.link-button{font:inherit;color:var(--brand);cursor:pointer;min-height:var(--tap);background:0 0;border:0;align-items:center;padding:0;display:inline-flex}.form{gap:16px;display:grid}.form>*{min-width:0}.form fieldset{border:0;gap:6px;margin:0;padding:0;display:grid}.form legend,.field>span:first-child{margin-bottom:6px;padding:0;font-size:.824rem;font-weight:600}.form fieldset p{margin:4px 0 0}.field{gap:6px;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form input:not([type=radio]),.form select{width:100%;font:inherit;min-height:var(--tap);border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);appearance:none;padding:10px 12px;font-size:.941rem}.segmented{border:1px solid var(--edge);border-radius:var(--r-control);display:flex;overflow:hidden}.segmented label{text-align:center;min-height:var(--tap);cursor:pointer;flex:1;justify-content:center;align-items:center;padding:10px 4px;font-size:.882rem;display:flex}.segmented label+label{border-left:1px solid var(--line)}.segmented label.on{background:var(--brand);color:var(--on-brand);font-weight:600}.segmented input{opacity:0;pointer-events:none;position:absolute}.actions{justify-content:flex-end;gap:12px;display:flex}.button{font:inherit;min-height:var(--tap);border-radius:var(--r-chip);background:var(--brand);color:var(--on-brand);cursor:pointer;border:0;padding:11px 20px;font-weight:600}a.button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.button{overflow-wrap:anywhere;max-width:100%}.button.secondary{color:var(--brand);border:1px solid var(--edge);background:0 0}.search-row{align-items:flex-start;gap:8px;display:flex}.search-row .search{flex:1;min-width:0}.scan-button{white-space:nowrap;align-items:center;gap:6px;padding:11px 14px;text-decoration:none;display:flex}.scan-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}.scanner{border-radius:var(--radius);aspect-ratio:4/3;background:#000;margin-bottom:8px;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner-guide{background:var(--brand);height:2px;box-shadow:0 0 8px var(--brand);position:absolute;top:50%;left:12%;right:12%}.manual-barcode{margin-top:8px}.search{width:100%;font:inherit;min-height:var(--tap);border:1px solid var(--edge);border-radius:var(--r-chip);background:var(--card);color:var(--ink);appearance:none;margin-bottom:12px;padding:12px 16px;font-size:1rem}.results-meta{margin:0 4px 8px}.food-list{background:var(--card);border:1px solid var(--card-border);box-shadow:var(--card-shadow);border-radius:var(--r-card);margin:0 0 14px;padding:0;list-style:none;overflow:hidden}.food-list li+li{border-top:1px solid var(--hairline)}.food-row{width:100%;min-height:var(--tap);text-align:left;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;gap:4px;padding:12px 16px;display:grid}.food-row:active{background:var(--brand-soft)}.food-row.with-icon{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px}.food-row.with-icon .food-icon{grid-row:span 2}.food-name{font-size:1rem;line-height:1.3}.food-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.food-kcal{margin-left:auto;font-size:.824rem;font-weight:600}.badge{background:var(--brand-soft);color:var(--brand);border-radius:6px;padding:2px 6px;font-size:.647rem;font-weight:600}.badge-custom{background:var(--surface-sunk);color:var(--ink)}.badge-usda-fndds,.badge-off{background:var(--surface-sunk);color:var(--ink-2)}.incomplete{border:1px dashed var(--muted);color:var(--muted);border-radius:6px;padding:2px 6px;font-size:.647rem;font-weight:600}.list-title{letter-spacing:.02em;color:var(--ink-2);margin:18px 4px 8px;font-size:.765rem;font-weight:600}.meal-pick{margin-bottom:12px}.button.block{text-align:center;margin:16px 0;text-decoration:none;display:block}.button:disabled{opacity:.4}.button.danger{color:var(--ink);margin-right:auto}.segmented button{min-height:var(--tap);font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;flex:1;padding:10px 4px;font-size:.882rem}.segmented button+button{border-left:1px solid var(--line)}.segmented button.on{background:var(--brand);color:var(--on-brand);font-weight:600}.small-seg button,.small-seg label{padding:8px 2px;font-size:.824rem}.sheet-backdrop{background:var(--scrim);z-index:40;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border-radius:var(--r-sheet) var(--r-sheet) 0 0;width:100%;max-width:560px;max-height:90dvh;padding:26px 18px calc(18px + env(safe-area-inset-bottom));gap:14px;animation:.22s ease-out sheet-up;display:grid;position:relative;overflow-y:auto}.sheet:before{content:"";background:var(--edge);border-radius:3px;width:36px;height:5px;margin-left:-18px;position:absolute;top:8px;left:50%}@keyframes sheet-up{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sheet-head p{margin:6px 0 0}.star{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px;font-size:1.647rem;line-height:1}.star.on{color:var(--brand)}.chips{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{font:inherit;min-height:var(--tap);border-radius:var(--r-chip);border:1px solid var(--edge);background:var(--card);color:var(--ink);cursor:pointer;flex:none;padding:8px 14px;font-size:.882rem}.chip.on{border-color:var(--brand);background:var(--brand-soft);font-weight:600}.amount-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.stepper{align-items:center;gap:10px;display:flex}.stepper button{width:var(--tap);height:var(--tap);border:1px solid var(--edge);background:var(--bg);color:var(--ink);cursor:pointer;border-radius:50%;font-size:1.176rem}.grams{align-items:center;gap:6px;font-weight:600;display:flex}.grams input{width:90px;font:inherit;text-align:right;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px 10px;font-size:1.059rem}.preview{margin:0;font-size:.882rem}.toast{left:16px;right:16px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);background:var(--ink);max-width:528px;color:var(--bg);border-radius:var(--r-control);z-index:10;margin:0 auto;padding:12px 16px;font-size:.882rem;position:fixed}.toast a{color:var(--bg);font-weight:600}.day-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.day-header>div{flex:1}.day-nav{width:var(--tap);height:var(--tap);border:1px solid var(--edge);background:var(--card);color:var(--ink);cursor:pointer;border-radius:50%;font-size:1.294rem}.day-nav:disabled{opacity:.3}.back-today{margin:-8px 0 12px 48px}.day-total{margin-top:-4px}.entries{margin:8px 0 0;padding:0;list-style:none}.entries li+li{border-top:1px solid var(--hairline)}.entry{width:100%;min-height:var(--tap);font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:10px 0;display:flex}.entry-name{overflow-wrap:anywhere;flex:10rem;min-width:0;font-size:1rem}.entry-kcal{white-space:nowrap;flex:none;font-size:1rem;font-weight:600}.meal-actions{flex-wrap:wrap;column-gap:18px;margin-top:4px;font-size:.882rem;display:flex}.meal-actions a{min-height:var(--tap);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.save-meal{gap:8px;margin-top:10px;display:flex}.save-meal input{min-width:0;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);flex:1;padding:8px 10px;font-size:.941rem}.save-meal .button{padding:8px 14px}.nutrient-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.check{align-items:center;gap:8px;font-size:.882rem;display:flex}.form textarea,.steps-edit textarea{width:100%;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);resize:vertical;padding:10px 12px;font-size:.941rem}.card>h2{margin-bottom:12px}.chips.wrap{flex-wrap:wrap;overflow:visible}a.food-row,.day-header .button,.recipe-actions .button{text-decoration:none}.badge-recipe{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--ink);margin-left:6px}.recipe-actions{grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:8px;margin-bottom:12px;display:grid}.recipe-actions .button{text-align:center;padding:10px 4px}.nutrition-wrap{margin:0 -4px;overflow-x:auto}.nutrition{border-collapse:collapse;width:100%;font-size:.824rem}.nutrition th,.nutrition td{border-top:1px solid var(--line);vertical-align:top;padding:7px 4px}.nutrition thead th{color:var(--muted);text-align:right;border-top:0;font-size:.706rem;font-weight:600}.nutrition tbody th{text-align:left;white-space:nowrap;font-weight:500}.nutrition td{text-align:right}.nutrition .incomplete{white-space:nowrap;margin-top:2px;display:inline-block}.ingredients-edit{margin:0 0 12px;padding:0;list-style:none}.ingredients-edit li{border-bottom:1px solid var(--line);gap:8px;padding:10px 0;display:grid}.ing-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ing-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:.882rem;display:flex}.ing-amount{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ing-amount input,.ing-amount select{font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px 10px;font-size:.941rem}.ing-amount input{text-align:right;width:76px}.ing-amount select{max-width:190px}.segmented.mini{margin-left:auto}.segmented.mini button{padding:6px 10px;font-size:.765rem}.icon-button{border:1px solid var(--edge);background:var(--bg);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;font-size:.882rem}.icon-button:disabled{opacity:.3}.fat-reminder p{margin:0 0 10px}.steps-edit{gap:10px;margin:0 0 12px;padding:0;list-style:none;display:grid}.steps-edit li{grid-template-columns:24px 1fr auto;align-items:start;gap:8px;display:grid}.step-num{color:var(--brand);text-align:center;padding-top:10px;font-weight:700}.step-tools{gap:4px;display:grid}.ingredients{margin:0;padding:0;list-style:none}.ingredients li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.ingredients li:first-child{border-top:0}.ing-qty{text-align:right;flex:none;font-size:.824rem;font-weight:600}.steps{gap:10px;margin:0;padding-left:22px;line-height:1.45;display:grid}.danger-zone{margin:20px 4px 8px;font-size:.824rem}.danger-text{color:var(--ink);font-weight:600}.cooking-ingredients li{padding:0}.cooking-ingredients button{width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;gap:12px;padding:12px 0;font-size:1rem;display:flex}.cooking-ingredients li.done button{opacity:.45;text-decoration:line-through}.cooking-step .step-text{margin:8px 0 20px;font-size:1.412rem;line-height:1.45}.weigh-row{align-items:center;gap:12px;display:flex}.weigh-row .grams input{width:110px}.weigh-in p{margin:10px 0 0}.range-pick{min-width:190px}.weight-chart{width:100%;height:auto;margin:12px 0 4px;display:block}.weight-chart .grid{stroke:var(--line);stroke-width:1px}.weight-chart .axis{fill:var(--muted);font-size:.647rem}.weight-chart .dot-day{fill:var(--muted);opacity:.55}.weight-chart .trend{fill:none;stroke:var(--brand);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart-legend{align-items:center;gap:6px;margin:0 0 8px;display:flex}.key-dot{background:var(--muted);opacity:.55;border-radius:50%;width:8px;height:8px}.key-line{background:var(--brand);border-radius:2px;width:18px;height:3px;margin-left:10px}.bmi-line{align-items:center;gap:10px;margin:0 0 6px;font-size:1.294rem;display:flex}.averages{gap:12px;margin:0 0 8px;display:grid}.averages dt{font-size:.882rem;font-weight:600}.averages dd{gap:2px;margin:4px 0 0;font-size:.882rem;display:grid}.weight-list{margin:0 0 8px;padding:0;list-style:none}.weight-list li+li{border-top:1px solid var(--line)}.weight-edit{gap:10px;padding:10px 0;display:grid}.weight-edit input{width:100%;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px 10px;font-size:.941rem}.block-button{text-align:center;width:100%;margin:8px 0;display:block}.file-button{cursor:pointer}.backup-sub{margin:18px 0 4px;font-size:.882rem}.backup-contents{color:var(--muted);margin:6px 0;padding-left:18px;font-size:.824rem}.restore-confirm p{margin:0 0 6px}.restore-confirm .backup-contents{color:var(--ink)}.undo-row{gap:6px;margin-top:10px;display:grid}.undo-actions{gap:16px;display:flex}.safety{gap:10px;margin:12px 0;display:grid}.safety dt{color:var(--muted);font-size:.765rem;font-weight:600}.safety dd{margin:2px 0 0;font-size:.882rem;line-height:1.4}.backup-nudge h2{margin-bottom:4px}.backup-nudge p{margin:0 0 10px}.wipe-screen{z-index:70;background:var(--bg);padding:calc(env(safe-area-inset-top) + 32px) 20px calc(env(safe-area-inset-bottom) + 32px);position:fixed;inset:0;overflow-y:auto}.wipe-body{max-width:520px;margin:0 auto}.wipe-body h1{margin:8px 0 12px;font-size:1.647rem;line-height:1.2}.wipe-body p{line-height:1.45}.wipe-emoji{margin:0;font-size:2.824rem}.wipe-fresh{margin:20px auto 0;display:block}.strong{font-weight:600}.note-button{font:inherit;border:1px solid var(--edge);background:var(--card);color:var(--brand);cursor:pointer;border-radius:999px;flex:none;padding:8px 12px;font-size:.824rem;font-weight:600}.note-form{gap:8px;margin:-4px 0 14px;display:flex}.note-form input{min-width:0;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--card);color:var(--ink);flex:1;padding:10px 12px;font-size:.941rem}.note-form .button{padding:10px 14px}.notes-list{margin:0;padding:0;list-style:none}.notes-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.notes-list li:first-child{border-top:0}.notes-list li{flex-wrap:wrap}.notes-list li>div:first-child{overflow-wrap:anywhere;flex:12rem;min-width:0}.switch-row{align-items:flex-start}.switch-row input{width:20px;height:20px;accent-color:var(--brand);flex:none;margin-top:2px}.passcode-row{gap:8px;margin:10px 0 4px;display:flex}.passcode-row input{min-width:0;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);flex:1;padding:10px 12px;font-size:.941rem}.quick-actions{grid-template-columns:repeat(2,1fr);gap:8px;margin:-4px 0 12px;display:grid}.quick-actions .button{justify-content:center;align-items:center;gap:8px;padding:10px 6px;text-decoration:none;display:flex}.quick-actions svg,.scan-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.capture-preview{object-fit:cover;border-radius:var(--r-control);width:100%;max-height:320px;display:block}.capture textarea{width:100%;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);resize:vertical;padding:10px 12px;font-size:.941rem}.analysing{padding:24px 4px;font-size:.941rem}.test-badge{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--ink);margin-top:8px;display:inline-block}.meal-thumb{object-fit:cover;border-radius:var(--r-control);width:96px;height:96px;margin:0 0 12px;display:block}.dish-mode{margin-bottom:12px}.questions .question+.question{margin-top:14px}.questions p{margin:0 0 8px}.review-items{margin:0;padding:0;list-style:none}.review-item{gap:10px;display:grid}.review-item.weak{border-color:color-mix(in srgb, var(--accent) 60%, var(--line))}.ri-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ri-food{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.ri-kcal{flex:none;font-size:.882rem;font-weight:600}.ri-amount{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ri-amount .grams input{width:72px}.ri-actions{gap:18px;font-size:.824rem;display:flex}.food-picker{gap:8px;display:grid}.food-picker .search{margin-bottom:0}.add-item{margin:4px 4px 14px}.review-total{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.review-total p{margin:0}.rt-kcal{font-size:1.176rem}.entry{align-items:center}.entry-thumb{object-fit:cover;border-radius:var(--r-control);flex:none;width:36px;height:36px}.entry-name{flex:1}.via-tag{color:var(--muted);border:1px solid var(--line);border-radius:6px;margin-left:6px;padding:1px 5px;font-size:.647rem;font-weight:600}.activity-preview{border-top:1px solid var(--line);padding-top:12px}.activity-preview p{margin:0 0 4px}.exercise a.entry{text-decoration:none}.level-note p{margin:0 0 10px}.level-note .button{text-decoration:none}.steps-line{margin:10px 0 0;line-height:1.45}.continue-workout{color:var(--ink);border-color:var(--brand);gap:2px;text-decoration:none;display:grid}.rest-choice{align-items:center;gap:10px;margin:-6px 0 12px;display:flex}.gym-exercise h2{margin-bottom:2px}.gym-exercise>p{margin:0 0 8px}.sets{border-collapse:collapse;width:100%;margin-bottom:6px}.sets th{color:var(--muted);text-align:left;padding:4px;font-size:.706rem;font-weight:600}.sets td{padding:4px}.sets td:first-child{width:32px;color:var(--muted)}.sets input{width:100%;max-width:84px;font:inherit;text-align:center;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px;font-size:.941rem}.sets tr.done input{background:var(--brand-soft)}.done-button{width:var(--tap);height:var(--tap);border-radius:var(--r-control);border:1px solid var(--edge);background:var(--bg);color:var(--muted);cursor:pointer;font-size:1.059rem}.done-button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.exercise-picker{gap:8px;display:grid}.exercise-picker .search{margin:0}.new-exercise{gap:8px;display:flex}.new-exercise select{font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px;font-size:.941rem}.finish .check{align-self:end;padding-bottom:10px}.rest-timer{left:16px;right:16px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px);background:var(--ink);max-width:528px;color:var(--on-brand);z-index:15;border-radius:14px;align-items:center;gap:10px;margin:0 auto;padding:10px 14px;display:flex;position:fixed}.rest-timer span{flex:1;font-size:.941rem}.rest-timer strong{font-variant-numeric:tabular-nums;font-size:1.294rem}.rest-timer .chip{color:var(--on-brand);border-color:color-mix(in srgb, var(--bg) 40%, transparent);background:0 0}.routine-items{gap:12px;margin:0;padding:0;list-style:none;display:grid}.routine-items select{width:100%;font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);padding:8px 10px;font-size:.941rem}.routine-numbers{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:.824rem;display:flex}.routine-numbers input{width:52px;font:inherit;text-align:center;border:1px solid var(--edge);background:var(--bg);color:var(--ink);border-radius:8px;padding:6px;font-size:.941rem}.guide h2{margin:16px 0 6px;font-size:.941rem}.guide h2:first-child{margin-top:0}.guide ol,.guide ul{gap:10px;padding-left:20px;line-height:1.45;display:grid}.guide p{line-height:1.45}.guide code{background:var(--bg);border-radius:4px;padding:1px 4px;font-size:.765rem}.guide code.break{word-break:break-all}.steps-card p{margin:6px 0}.week-table{border-collapse:collapse;width:100%;margin-bottom:8px;font-size:.882rem}.week-table th{text-align:left;border-top:1px solid var(--line);padding:6px 0;font-weight:500}.week-table td{text-align:right;border-top:1px solid var(--line);white-space:nowrap;padding:6px 0 6px 12px}.week-table tr:first-child th,.week-table tr:first-child td{border-top:0}.week-activity p{margin:6px 0}.form input[type=checkbox]{appearance:auto;width:20px;height:20px;accent-color:var(--brand);flex:none;padding:0}.micro-panel{margin:12px 0 4px}.card .micro-panel{margin:0}.micro-panel summary{cursor:pointer;align-items:center;gap:8px;padding:6px 0;font-weight:600;display:flex}.micro-table{border-collapse:collapse;width:100%;font-size:.824rem}.micro-table th,.micro-table td{border-top:1px solid var(--line);text-align:left;vertical-align:top;padding:5px 0;font-weight:400}.micro-table td{padding-left:8px}.micro-table tr.sub th{color:var(--muted);padding-left:12px;font-size:.765rem}.micro-pct{text-align:right;width:30%}.micro-pct .bar{margin-top:4px;display:block}.badge-place{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--ink);font-weight:500}.place-picker{margin:10px 0}.place-picker .field-label{color:var(--muted);margin-bottom:4px;font-size:.765rem;display:block}.place-new{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.place-new input{flex:140px;min-width:0}.row-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notice.warn{background:var(--surface-sunk);border-left:3px solid var(--ink-2)}.ul-warnings p{margin:0 0 8px}.ul-warnings p:last-child{margin-bottom:0}.supp-fields{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.supp-input{align-items:center;gap:6px;display:flex}.supp-input input{flex:1;min-width:0}.supp-input select{max-width:55%}.supp-pick{flex-direction:column;gap:8px;margin-top:8px;display:flex}.supp-pick-row{align-items:center;gap:8px;display:flex}.supp-pick-name{flex:1;min-width:0}.micro-table .incomplete{white-space:nowrap;margin-top:2px;display:inline-block}.micro-notes{margin:6px 0 0;padding-left:16px}.micro-notes li{margin-bottom:4px}.badge-chain{background:color-mix(in srgb, var(--brand) 18%, transparent);color:var(--brand)}.badge-note{background:var(--line);color:var(--muted)}.badge-check{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--ink)}.sheet-flags{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px;display:flex}.places-card .badge{margin-left:6px}.count-row{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 4px;display:flex}.count-button{min-width:48px;min-height:var(--tap);border-radius:var(--r-control);border:1px solid var(--edge);background:var(--bg);color:var(--ink);font:inherit;padding:10px 0;font-size:1rem;font-weight:600}.count-button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.small-stepper{margin-left:auto}.portion-now{margin:4px 0 8px;font-weight:600}.weigh-toggle{border:1px dashed var(--muted);color:var(--muted);font:inherit;background:0 0;border-radius:999px;margin:8px 0;padding:6px 12px;font-size:.765rem;display:inline-block}.weigh-toggle.on{border-style:solid;border-color:var(--brand);color:var(--brand)}.weigh-row{margin:10px 0}.usual-check{margin:4px 0 8px}.usual-row{align-items:center;gap:4px;display:flex}.usual-row .food-row{flex:1;min-width:0}.ri-portion{flex-direction:column;gap:6px;margin:6px 0;display:flex}.ri-portion-text{font-weight:600}.ri-details summary{cursor:pointer;color:var(--muted);padding:2px 0;font-size:.765rem}.ri-details .ri-amount{margin-top:6px}.sheet{overflow-x:hidden}.sheet>*{min-width:0}.portion-rows{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.portion-rows li{align-items:center;gap:6px;display:flex}.portion-rows input:first-child{flex:2;min-width:0}.portion-rows input:nth-child(2){flex:1;min-width:0;max-width:90px}.set-serving{margin:8px 0}.sheet-edit{font-size:.765rem}.place-dishes{flex-wrap:wrap;gap:4px 10px;margin-top:4px;display:flex}fieldset{min-width:0}.programme-options{flex-direction:column;gap:8px;margin:8px 0 12px;display:flex}.programme-card h3.list-title{margin-top:14px}.programme-info ul{padding-left:18px}.programme-info li{margin-bottom:6px}.sources li{word-break:break-word;font-size:.765rem}.fit-tag{border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:1px 6px;font-size:.647rem}.fit-tag.fits{border-color:var(--brand);color:var(--brand)}.focus-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bar-fill.over{background:var(--warm)}.timing-now{font-weight:600}.medas-items{margin:0 0 8px;padding:0;font-size:.824rem;list-style:none}.medas-items li{padding:3px 0}.medas-items li.met>span:first-child{color:var(--brand);font-weight:700}.medas-q{flex-direction:column;gap:4px;margin:8px 0;font-size:.824rem;display:flex}.combo-card{background:var(--card);border:1px solid var(--brand);border-radius:var(--radius);margin-bottom:12px;padding:12px 14px}.combo-title{margin:0 0 6px;font-weight:600}.combo-parts{margin:0 0 8px;padding:0;list-style:none}.combo-parts li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.combo-parts li:last-child{border-bottom:0}.combo-card .button{margin-top:4px}.passphrase{gap:8px;margin:8px 0;display:grid}.passphrase input{font:inherit;border:1px solid var(--edge);border-radius:var(--r-control);background:var(--bg);color:var(--ink);min-width:0;padding:10px 12px;font-size:.941rem}.lab-chart{width:100%;height:auto;margin:8px 0 4px;display:block}.lab-chart .axis{fill:var(--muted);font-size:.647rem}.lab-chart .lab-band{fill:var(--brand-soft)}.lab-chart .lab-line{fill:none;stroke:var(--brand);stroke-width:2px;stroke-linejoin:round}.lab-chart .lab-line.second{stroke:var(--accent)}.lab-chart .lab-dot{fill:var(--brand)}.lab-chart .lab-dot.second{fill:var(--accent)}.lab-value-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.lab-value-row.three{grid-template-columns:1fr 1fr 1fr}.lab-value-row>*{min-width:0}.lab-history li{justify-content:space-between;align-items:center;gap:8px;display:flex}.range-within{color:var(--ok)}.range-above,.range-below{color:var(--ink);font-weight:600}.diet-beside{margin:4px 0 8px}.doctor-grid{gap:12px;display:grid}.med-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 0;display:flex}.med-row p{margin:2px 0 0}.bare-list{margin:8px 0 0;padding:0;list-style:none}.health-tag{border-radius:var(--r-chip);border:1px solid var(--edge);color:var(--ink);margin-left:4px;padding:1px 7px;font-size:.706rem;display:inline-block}.report-table{border-collapse:collapse;width:100%;font-size:.824rem}.report-table th,.report-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;padding:6px 4px}.report-table th{color:var(--muted);font-size:.706rem;font-weight:600}@media print{.no-print,nav,.tabbar,.toast{display:none!important}body{color:#000;background:#fff}.card{break-inside:avoid;border:0;margin:0 0 14px;padding:0}.report-section h2{font-size:.941rem}}.recipe-tags{flex-wrap:wrap;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.recipe-tag{background:var(--line);border-radius:999px;padding:2px 8px;font-size:.8rem}.recipe-tag.ok{background:var(--brand-soft);color:var(--brand)}.versions-toggle{border:1px solid var(--edge);color:inherit;background:0 0;border-radius:999px;margin:-4px 0 6px auto;padding:2px 10px;font-size:.8rem;display:block}.food-list.versions{margin:0 0 8px 16px}.library-cuisine{margin:6px 0}.library-cuisine>summary{cursor:pointer;padding:8px 0;font-weight:600}.developer-card>summary{cursor:pointer}.developer-card[open]>summary{margin-bottom:8px}.quick-kcal{margin:6px 0}.quick-kcal input{max-width:8rem}.where-sheet h2{margin-top:0}.where-search{gap:8px;display:flex}.where-search .search{flex:1;min-width:0}.where-search .button{white-space:nowrap;padding:8px 12px}.osm-row{align-items:center;gap:6px;display:flex}.osm-row .food-row{flex:1;min-width:0}.osm-credit a{color:inherit}.list-title{margin:12px 0 4px;font-size:.95rem}.where-backdrop{z-index:60}.campur-list{margin:8px 0;padding:0;list-style:none}.campur-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.campur-list li.on .campur-name{font-weight:600}.campur-name{flex:1;min-width:0}.campur-count{text-align:center;min-width:2.2em;display:inline-block}.builder-sizes{max-width:280px;margin-top:6px}.usual-plate p{margin:0 0 8px}.today-header{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:8px 0 16px;display:flex}.today-header>div:first-child{flex:10rem;min-width:0}.today-sub{color:var(--ink-2);margin:4px 0 0;font-size:.882rem;font-weight:500}.today-arrows{gap:8px;margin-left:auto;display:flex}.hero{background:var(--surface-sunk);width:100%;box-shadow:none;font:inherit;color:var(--ink);cursor:pointer;text-align:center;border:0;justify-items:center;gap:14px;padding:22px 18px;display:grid}.hero-ring{aspect-ratio:1;width:max(168px,10rem);display:block;position:relative}.hero-ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.hero-ring circle{fill:none;stroke-width:14px;stroke-linecap:round}.ring-track{stroke:color-mix(in srgb, var(--ink) 8%, transparent)}.ring-used{stroke:var(--brand)}.ring-over{stroke:var(--warm)}.hero-center{place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.hero-number{letter-spacing:-.02em;font-size:3.294rem;font-weight:700;line-height:1}.hero-number.over{color:var(--warm)}.hero-label{color:var(--ink-2);letter-spacing:.02em;margin-top:4px;font-size:.765rem;font-weight:600}.hero-sum{color:var(--ink-2);max-width:22rem;font-size:.882rem;line-height:1.4}.macro-card{gap:14px;display:grid}.macro-row{align-items:center;gap:12px;display:flex}.macro-body{flex:1;min-width:0}.macro-chip{border-radius:var(--r-chip);width:28px;height:28px;font-family:var(--font-number);border:1.5px solid;flex:none;place-items:center;font-size:.824rem;font-weight:700;display:grid}.macro-chip.macro-protein,.text-protein{color:var(--protein-text)}.macro-chip.macro-carbs,.text-carbs{color:var(--carbs-text)}.macro-chip.macro-fat,.text-fat{color:var(--fat-text)}.macro-amount{font-weight:600}.over-amount{color:var(--warm)}.next-up .label{margin-bottom:10px}.chip-food{text-align:left;align-items:center;gap:8px;max-width:100%;padding:6px 14px 6px 6px;display:inline-flex}.chip-food>span:last-child{overflow-wrap:anywhere;min-width:0;line-height:1.2;display:grid}.chip-sub{color:var(--ink-2);font-size:.765rem}.chip-strong{border-color:var(--brand);color:var(--brand);font-weight:600}.food-icon.xs{width:32px;height:32px}.undo-line{flex-wrap:wrap;align-items:center;gap:4px 10px;margin:10px 0 0;font-size:.882rem;display:flex}.meal-card .meal-head{margin-bottom:4px}.meal-card .entry{align-items:center}.meal-card .entry .food-icon,.meal-card .entry-thumb{width:48px;height:48px}.meal-card .entry-thumb{border-radius:50%}.entry-text{overflow-wrap:anywhere;flex:10rem;gap:2px;min-width:0;display:grid}.entry-sub{color:var(--ink-2);font-size:.824rem}.meal-empty{flex-wrap:wrap;align-items:center;gap:0 12px;margin:0 0 6px;padding:4px 6px;font-size:.941rem;display:flex}.meal-empty strong{font-weight:650}.meal-empty .muted{flex:auto}.meal-empty a{min-height:var(--tap);align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.empty-day{text-align:center;padding:26px 18px}.empty-day .food-icon{width:72px;height:72px;margin:0 auto 10px;display:grid}.empty-day p{margin:0 0 14px;font-size:1.059rem}.empty-routes{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.week-strip{align-items:center;gap:14px;display:flex}.week-ring{flex:none;place-items:center;width:52px;height:52px;display:grid;position:relative}.week-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.week-ring circle{fill:none;stroke-width:6px;stroke-linecap:round}.week-track{stroke:var(--hairline)}.week-used{stroke:var(--saffron)}.week-ring .num{color:var(--saffron-text);font-weight:700}.week-body{flex:1;min-width:0}.week-title{margin:0 0 6px;font-weight:600}.saffron-text{color:var(--saffron-text)}.week-dots{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.week-dots li{justify-items:center;gap:4px;display:grid}.week-day{color:var(--ink-2);font-size:.706rem;font-weight:600}.week-dot{border:1.5px solid var(--saffron-text);border-radius:50%;width:12px;height:12px}.week-dots li.on .week-dot{background:var(--saffron)}.week-leaf{opacity:.8;width:14px;height:14px}.day-nutrients{border-collapse:collapse;width:100%}.day-nutrients th,.day-nutrients td{border-top:1px solid var(--hairline);text-align:left;padding:9px 0;font-weight:500}.day-nutrients td{text-align:right}.day-nutrients .incomplete{margin-left:6px}.nutrient-sheet .micro-panel{margin-top:4px}.note-row{justify-content:center;margin:4px 0 8px;display:flex}.fab{right:16px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 14px);z-index:26;background:var(--warm);width:60px;height:60px;color:var(--on-warm);border:0;border-radius:50%;place-items:center;text-decoration:none;display:grid;position:fixed;box-shadow:0 6px 18px #2b242038}.fab svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;width:28px;height:28px}@media (width>=600px){.fab{right:calc(50% - 264px)}}.add-sheet{align-content:start;gap:12px;max-height:92dvh}.add-sheet .search{margin-bottom:0}.add-sheet .list-title{margin-top:6px}.add-head{align-items:center}.add-routes{grid-template-columns:repeat(auto-fit,minmax(max(3.6rem,60px),1fr));gap:6px;margin:2px 0 6px;display:grid}.add-route{min-height:var(--tap);border-radius:var(--r-control);background:var(--surface-sunk);color:var(--brand);text-align:center;justify-items:center;gap:4px;padding:8px 2px;font-size:.706rem;font-weight:600;line-height:1.15;text-decoration:none;display:grid}.add-route svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round}.add-route span{color:var(--ink);overflow-wrap:anywhere}.recent-row .icon-button{width:var(--tap);height:var(--tap);margin-right:8px;font-size:1.1rem}.sheet-open body{overflow:hidden}.focus-proxy{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;top:0;left:0}.undo-bar{left:16px;right:92px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 18px);z-index:27;border-radius:var(--r-control);background:var(--ink);min-height:52px;color:var(--bg);align-items:center;gap:4px;max-width:470px;padding:4px 4px 4px 16px;font-size:.882rem;display:flex;position:fixed}.undo-text{overflow-wrap:anywhere;flex:1;min-width:0}.undo-button,.undo-close{min-height:var(--tap);min-width:var(--tap);color:var(--bg);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 12px;font-weight:700}.undo-close{opacity:.8;font-weight:400}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.search:focus{outline:2px solid var(--brand);outline-offset:1px}
