@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/m-plus-rounded-1c-400-cyrillic-Da-sdmT1.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/m-plus-rounded-1c-400-latin-BD1WQKfn.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/m-plus-rounded-1c-500-cyrillic-Cl3PppfV.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/m-plus-rounded-1c-500-latin-2n0hcgD-.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/m-plus-rounded-1c-700-cyrillic-CfSKU49-.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"M PLUS Rounded 1c";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/m-plus-rounded-1c-700-latin-DvAatqdI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans: ui-rounded, "SF Pro Rounded", "M PLUS Rounded 1c", "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--color-surface: #ffffff;--color-bg: #f4f5f7;--color-surface-muted: #f3f4f6;--color-tile: #eaecef;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-ink: #2c3e50;--color-text: #374151;--color-text-muted: #6b7280;--color-text-subtle: #9ca3af;--color-accent: #636efa;--color-highlight: #fecb52;--color-danger: #991b1b;--color-danger-bg: #fee2e2;--color-success: #065f46;--color-success-bg: #d1fae5;--color-warn: #92400e;--color-warn-bg: #fef3c7;--palette-1: #2563eb;--palette-2: #ea580c;--palette-3: #16a34a;--palette-4: #7c3aed;--palette-5: #e11d48;--palette-6: #0891b2;--palette-7: #ca8a04;--palette-8: #1e3a8a;--palette-9: #84cc16;--palette-10: #581c87;--palette-11: #c026d3;--palette-12: #14532d;--palette-13: #7c2d12;--palette-14: #475569;--palette-15: #164e63;--radius: 10px;--radius-sm: 8px;--radius-card: 14px;--radius-pill: 999px;--shadow-card: 0 0 0 1px rgba(17, 24, 39, .05), 0 1px 2px rgba(17, 24, 39, .04), 0 8px 24px -12px rgba(17, 24, 39, .14);--shadow-popover: 0 8px 24px rgba(0, 0, 0, .12);--space-1: 2px;--space-2: 4px;--space-4: 8px;--space-6: 12px;--space-8: 16px;--space-12: 24px;--fs-12: 12px;--fs-15: 15px;--fs-17: 17px;--fs-20: 20px;--fs-26: 26px;--fw-bold: 600}:root[data-theme=dark]{--color-surface: #232833;--color-bg: #101319;--color-surface-muted: #2c313d;--color-tile: #343a47;--color-border: #2c313d;--color-border-strong: #454c5c;--color-ink: #eef0f3;--color-text: #e8eaed;--color-text-muted: #9aa0aa;--color-text-subtle: #6f7682;--color-accent: #7c85ff;--color-highlight: #fecb52;--color-danger: #fca5a5;--color-danger-bg: #3a1d22;--color-success: #6ee7b7;--color-success-bg: #12302a;--color-warn: #fcd34d;--color-warn-bg: #3a2e12;--shadow-card: 0 0 0 1px rgba(255, 255, 255, .03);--shadow-popover: 0 10px 28px rgba(0, 0, 0, .5)}:root{--app-chrome: var(--color-bg);--app-sheet: var(--color-bg);--app-raised: var(--color-surface);--sheet-shade-mid: color-mix(in srgb, var(--color-ink) 6%, transparent);--sheet-shade-end: color-mix(in srgb, var(--color-ink) 28%, transparent);--sheet-lift: 0 -10px 40px rgba(16, 24, 40, .16), 0 -1px 0 rgba(16, 24, 40, .05);--color-ok: var(--palette-3);--color-over: #dc2626;--chin-bg: #2c3e50;--chin-fg: #fff;--chin-dim: color-mix(in srgb, #fff 60%, transparent);--chin-faint: color-mix(in srgb, #fff 45%, transparent);--chin-tile: color-mix(in srgb, #fff 12%, transparent);--chin-accent: #7c85ff;--chin-over: #ff5c5c;--chin-ok: #45c46a;--chin-kcal: var(--color-highlight);--r-s: 12px;--r-m: 18px;--r-l: 28px;--fs-13: 13px;--fs-24: 24px;--fs-30: 30px;--fs-64: 64px;--col-g: 52px;--col-k: 40px;--fw-heavy: 700;--focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-accent) 45%, transparent);--kb-inset: 0px;--bar-bottom: max(var(--space-6), calc(env(safe-area-inset-bottom) - 12px) );--bar-space: calc(var(--bar-bottom) + 60px)}:root[data-theme=dark]{color-scheme:dark;--app-chrome: var(--color-bg);--app-sheet: #1a1e26;--app-raised: var(--color-surface-muted);--sheet-shade-mid: rgba(0, 0, 0, .15);--sheet-shade-end: rgba(0, 0, 0, .6);--sheet-lift: 0 -10px 40px rgba(0, 0, 0, .5), 0 -1px 0 rgba(255, 255, 255, .06);--color-ok: #45c46a;--color-over: #ff5c5c}*{box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}html{height:100%;background:var(--app-chrome);color-scheme:light;-webkit-text-size-adjust:100%;text-size-adjust:100%}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--color-bg);transition:opacity .25s}.splash.is-hiding{opacity:0;pointer-events:none}.splash-icon{display:block;width:120px;height:120px;overflow:hidden;border-radius:var(--r-l)}.splash-fill{fill:var(--color-accent)}.rotate-lock{display:none}@media (orientation: landscape) and (max-height: 500px){.rotate-lock{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-12);background:var(--color-bg)}.rotate-lock-text{color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--fs-17);font-weight:var(--fw-bold);text-align:center}}html,body,#root{height:100%;margin:0;overflow:hidden}#root{position:fixed;top:0;right:0;bottom:0;left:0}body{background:var(--app-chrome);color:var(--color-text);font-family:var(--font-sans);font-size:var(--fs-15);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select,textarea{font-family:inherit}.icon{display:block;width:1em;height:1em;flex:none;overflow:visible}.app{position:relative;height:100%;max-width:720px;margin:0 auto;overflow:hidden}.topbar{position:fixed;top:0;left:0;right:0;max-width:720px;margin:0 auto;z-index:10;padding:calc(env(safe-area-inset-top) + var(--space-2)) var(--space-8) var(--space-8);border-radius:0 0 var(--r-l) var(--r-l);background:var(--chin-bg);box-shadow:0 14px 32px -18px #11182780}.topbar-date{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-6)}.date-btn{padding:0;border:none;background:none;color:var(--chin-dim);font-family:inherit;text-align:left;cursor:pointer}.date-btn span{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-24);font-weight:var(--fw-heavy);letter-spacing:-.01em;line-height:1.1}.date-btn .icon{color:var(--chin-dim);font-size:var(--fs-15)}.topbar-day{display:flex;align-items:center;gap:var(--space-1);min-width:0}.today-btn{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:none;color:var(--chin-dim);font-size:var(--fs-17);cursor:pointer;transition:transform .12s,color .15s}.today-btn:active{transform:scale(.9);color:var(--chin-fg)}.header-gear{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:var(--chin-tile);color:var(--chin-dim);font-size:var(--fs-17);cursor:pointer;transition:transform .12s,color .15s}.header-gear:active{transform:scale(.92);color:var(--chin-fg)}.sum{position:relative;user-select:none;-webkit-user-select:none}.sum-plate{display:flex;align-items:center;gap:var(--space-6)}.sum-eaten{flex:none;color:var(--chin-kcal);font-size:var(--fs-30);font-weight:var(--fw-heavy);letter-spacing:-.02em;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.sum-bar{position:relative;flex:1;min-width:0;height:44px;overflow:hidden;border-radius:var(--r-s);background:var(--chin-tile)}.sum-bar-fill,.sum-bar-soft{position:absolute;top:0;left:0;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1)}.sum-bar-fill{border-radius:var(--r-s);background:var(--chin-accent)}.sum-bar-soft{background:var(--chin-over)}.sum-bar-hard{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--chin-over) 55%,#000)}.sum-bar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding-left:var(--space-6);font-size:var(--fs-15);font-weight:var(--fw-bold);white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none}.sum-bar-text.is-under{color:var(--chin-dim)}.sum-bar-text.is-over{color:var(--chin-fg)}.sum-lines{display:grid;grid-template-columns:52px minmax(0,1fr) auto;column-gap:var(--space-4);row-gap:var(--space-4);padding:0 var(--space-1) var(--space-6)}.sum-line{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center;height:26px}.sum-lbl{color:var(--chin-dim);font-size:var(--fs-13)}.sum-track{display:block;height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--chin-tile)}.sum-track i{display:block;height:100%;border-radius:var(--radius-pill);background:var(--chin-faint)}.sum-track i.is-reached{background:var(--chin-ok)}.sum-cells{display:flex;gap:var(--space-2);min-width:0}.sum-cell{flex:none;display:flex;align-items:center;height:26px;padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--chin-tile);color:var(--chin-fg);font-size:var(--fs-13);font-weight:var(--fw-bold);white-space:nowrap;font-variant-numeric:tabular-nums}.sum-cell.is-split{flex:1;min-width:0;justify-content:space-between;gap:var(--space-4);overflow:hidden}.sum-cell i{margin-right:var(--space-1);color:var(--chin-faint);font-style:normal;font-weight:400}.sum-val{min-width:52px;color:var(--chin-dim);font-size:var(--fs-15);font-weight:var(--fw-bold);text-align:right;font-variant-numeric:tabular-nums}.sum-val.is-reached{color:var(--chin-ok)}.day-list{display:flex;flex-direction:column;margin-bottom:var(--space-4);overflow:hidden;border-radius:var(--r-m);background:var(--app-raised);box-shadow:var(--shadow-card)}.day-row-btn+.day-row-btn:before{content:"";position:absolute;top:0;left:var(--space-8);right:0;border-top:1px solid var(--color-border)}.day-row-btn.is-on:before,.day-row-btn.is-on+.day-row-btn:before{border-color:transparent}.day-row-btn{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:56px;padding:0 var(--space-8);border:none;background:none;color:var(--color-ink);font-family:inherit;font-size:var(--fs-17);text-align:left;cursor:pointer}.day-row-btn small{margin-left:var(--space-2);color:var(--color-text-subtle);font-size:var(--fs-13)}.day-row-btn b{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.day-row-btn.is-on{background:color-mix(in srgb,var(--color-accent) 12%,transparent);color:var(--color-accent)}.day-row-btn.is-on small{color:inherit;opacity:.7}@supports (text-box: trim-both cap alphabetic){.m-grams,.m-kcal,.chip{text-box:trim-both cap alphabetic}}.feed{position:absolute;top:0;left:0;right:0;bottom:0;container-type:size;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:var(--color-bg);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--bar-space) - 24px),transparent calc(100% - var(--bar-bottom)));mask-image:linear-gradient(to bottom,#000 calc(100% - var(--bar-space) - 24px),transparent calc(100% - var(--bar-bottom)))}.feed-body{min-height:calc(100cqh + 1px);padding:calc(var(--head-h, 260px) + var(--space-6)) var(--space-8) calc(var(--bar-space) + var(--space-8));display:flex;flex-direction:column;gap:var(--space-4);box-sizing:border-box;position:relative;transition:transform .2s ease}.feed-body.is-pulling{transition:none;will-change:transform}.feed .swipe,.feed .swipe-fg,.feed .card{border-radius:var(--r-m)}.feed .card.collapsed.meal{padding:var(--space-6) var(--space-8) var(--space-6) var(--space-6)}.feed .collapsed-grid{column-gap:var(--space-6);min-height:48px}.feed .mini-photo{width:44px;height:44px;border-radius:var(--r-s)}.feed .m-dish.two-line{color:var(--color-ink);font-size:var(--fs-15);line-height:20px}body.scroll-locked .feed{overflow:hidden}body.scroll-locked{overflow:hidden;overscroll-behavior:none}.sheet-overlay:has(~:is(.sheet-overlay,.modal-overlay,.photo-viewer-overlay)) .sheet-body{overflow:hidden;touch-action:none}.error-banner,.error{padding:var(--space-6);border-radius:var(--r-s);background:color-mix(in srgb,var(--color-over) 12%,transparent);color:var(--color-over);font-size:var(--fs-15);line-height:20px}.card{background:var(--color-surface);border-radius:var(--r-m);box-shadow:var(--shadow-card);padding:var(--space-6)}.m-label{font-size:var(--fs-13);line-height:18px;color:var(--color-text-muted)}.meta-sep{color:var(--color-text-muted)}.m-dish{font-size:var(--fs-15);font-weight:var(--fw-bold);color:var(--color-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.m-dish.two-line{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.m-stats{display:grid;grid-template-columns:var(--col-g) var(--col-k);column-gap:var(--space-4);align-items:baseline;flex-shrink:0;font-variant-numeric:tabular-nums;white-space:nowrap}.m-kcal{grid-column:2;justify-self:end;color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);text-align:right}.m-grams{grid-column:1;color:var(--color-text-subtle);font-size:var(--fs-15);text-align:right}.card.collapsed.meal{padding:var(--space-4) var(--space-6);cursor:pointer}.collapsed-grid{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--space-4)}.mini-photo{width:40px;height:40px;border-radius:var(--r-s);object-fit:cover;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--color-surface-muted)}.mini-photo.placeholder{color:var(--color-text-subtle);font-size:var(--fs-17)}.m-body{display:flex;flex-direction:column;min-width:0;flex:1;gap:var(--space-1)}.m-body .m-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pin-loading{height:100%;background:var(--color-bg)}.pin-gate{height:100%;display:flex;flex-direction:column;align-items:center;padding:calc(env(safe-area-inset-top) + 88px) var(--space-8) max(var(--space-6),env(safe-area-inset-bottom));background:var(--color-bg)}.pin-gate .tone-icon{margin-bottom:var(--space-8)}.pin-title{color:var(--color-ink);font-size:var(--fs-24);font-weight:var(--fw-heavy);line-height:28px;letter-spacing:-.01em;text-align:center}.pin-hint{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--fs-15);text-align:center}.pin-hint.is-error{color:var(--color-over)}.pin-row{display:flex;gap:var(--space-6);margin-top:var(--space-12)}.pin-cell{width:56px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-m);background:var(--app-raised);box-shadow:var(--shadow-card)}.pin-cell.is-filled:after{content:"";width:14px;height:14px;border-radius:50%;background:var(--color-ink)}.pin-cell.is-current{box-shadow:var(--shadow-card),var(--focus-ring)}.pin-row.pin-error .pin-cell{background:color-mix(in srgb,var(--color-over) 14%,var(--app-raised))}.pin-row.pin-error{animation:pin-shake .35s}@keyframes pin-shake{25%{transform:translate(-8px)}50%{transform:translate(6px)}75%{transform:translate(-4px)}}.pin-gate .num-pad,.pin-gate .cta-btn{width:100%;max-width:420px;margin-top:auto}.pin-gate .num-key:not(.is-erase){background:var(--app-raised);box-shadow:var(--shadow-card)}.meal-photo{position:relative;display:block;flex:none;width:100%;height:200px;padding:0;overflow:hidden;border:none;border-radius:var(--r-m);background:var(--color-surface-muted);cursor:pointer}.meal-photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.meal-total{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6) var(--space-8)}.meal-total-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:var(--space-4);color:var(--color-ink);font-size:var(--fs-15);font-weight:var(--fw-bold)}.meal-total .items{padding-top:var(--space-6);border-top:1px solid var(--color-border)}.meal-sum{display:flex;flex-direction:column;gap:var(--space-1)}.meal-actions{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-m);background:var(--color-surface);box-shadow:var(--shadow-card)}.meal-action{position:relative;display:flex;align-items:center;gap:var(--space-6);min-height:52px;padding:0 var(--space-8);border:none;background:none;color:var(--color-ink);font-family:inherit;font-size:var(--fs-17);text-align:left;cursor:pointer}.meal-action:active{background:var(--color-surface-muted)}.meal-action+.meal-action:before{content:"";position:absolute;top:0;left:48px;right:0;border-top:1px solid var(--color-border)}.meal-action>.icon{color:var(--color-text-muted);font-size:var(--fs-17)}.meal-action-go{margin-left:auto;color:var(--color-text-subtle);font-size:var(--fs-15);transform:rotate(-90deg)}.model{position:relative;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6) var(--space-8);border-radius:var(--r-m);background:var(--color-surface);box-shadow:var(--shadow-card)}.model.is-marked{box-shadow:0 0 0 2px var(--color-accent),var(--shadow-card)}.model-top{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.model-src{min-width:0;overflow:hidden;color:var(--color-text-muted);font-size:var(--fs-13);line-height:18px;white-space:nowrap;text-overflow:ellipsis}.model-src b{color:var(--color-text);font-weight:var(--fw-bold)}.model-src.is-accent,.model-src.is-accent b{color:var(--color-accent);font-weight:var(--fw-bold)}.model-src .icon{display:inline-block;margin-right:var(--space-2);vertical-align:-2px}.model{--col-k: 56px}.model-head{display:grid;grid-template-columns:minmax(0,1fr) var(--col-g) var(--col-k);align-items:baseline;column-gap:var(--space-4);font-variant-numeric:tabular-nums}.model-dish{color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);line-height:22px}.model-g{color:var(--color-text-subtle);font-size:var(--fs-15);text-align:right;white-space:nowrap}.model-k{color:var(--color-ink);font-size:var(--fs-24);font-weight:var(--fw-heavy);line-height:26px;letter-spacing:-.01em;text-align:right;white-space:nowrap}.model-note{color:var(--color-text-subtle);font-size:var(--fs-13);line-height:18px}.estimate-section{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}.estimate-section:first-child{margin-top:0}.estimate-section .sheet-section-head{margin-bottom:0}.req-row-stage .req-thumb{width:56px;height:56px}.req-row-stage.has-text{align-items:start}.req-text-row{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-2)}.req-text{flex:1;min-width:0;color:var(--color-text);font-size:var(--fs-15);line-height:20px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.req-text-row .icon-btn{margin:-5px 0}.req-lines{min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.req-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--fs-15);line-height:20px}.req-line b{flex:none;color:var(--color-ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.model-fail{width:100%;border:none;font:inherit;text-align:left;cursor:pointer}.model-fail .ms-time{max-width:140px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.model-error-full{white-space:pre-wrap;word-break:break-word;max-height:60dvh;overflow:auto}.items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--fs-15);line-height:20px}.items li{display:grid;grid-template-columns:minmax(0,1fr) var(--col-g) var(--col-k);column-gap:var(--space-4);font-variant-numeric:tabular-nums}.items.items-names-only li{grid-template-columns:minmax(0,1fr)}.items .it-name{overflow:hidden;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis}.items .it-g{color:var(--color-text-subtle);text-align:right}.items .it-kcal{color:var(--color-text-muted);text-align:right}.chip{flex:none;height:40px;padding:0 var(--space-8);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-4);border:none;border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-ink);font-family:inherit;font-size:var(--fs-15);font-weight:var(--fw-bold);white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .12s}.chip .icon{color:var(--color-text-muted);font-size:var(--fs-15)}.chip:active:not(:disabled){transform:scale(.96)}.chip:disabled{opacity:.5;cursor:default}.chip.is-accent{background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-accent)}.chip.is-accent .icon{color:inherit}.chip.chip-sm{height:28px;padding:0 var(--space-6) 0 var(--space-4);gap:var(--space-2);font-size:var(--fs-13)}.chip.chip-sm .icon{font-size:var(--fs-13)}.text-btn{flex:none;min-height:48px;padding:0 var(--space-8);display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--color-text-muted);font-family:inherit;font-size:var(--fs-17);font-weight:var(--fw-bold);cursor:pointer;transition:transform .12s,opacity .15s}.text-btn.is-accent{color:var(--color-accent)}.text-btn:active:not(:disabled){transform:scale(.97)}.text-btn:disabled{opacity:.5;cursor:default}.icon-btn{flex:none;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:var(--color-tile);color:var(--color-text-muted);font-size:var(--fs-15);cursor:pointer;transition:transform .12s,background .15s,color .15s}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn.is-on{background:var(--color-accent);color:#fff}.icon-btn.is-accent{background:color-mix(in srgb,var(--color-accent) 14%,transparent);color:var(--color-accent)}.icon-btn.is-danger{background:color-mix(in srgb,var(--color-over) 14%,transparent);color:var(--color-over)}.tone-icon{--tone: var(--color-accent);flex:none;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone);font-size:var(--fs-24)}.tone-icon.is-muted{--tone: var(--color-text-muted)}.bottombar{position:absolute;left:50%;bottom:var(--bar-bottom);z-index:10;display:grid;grid-template-columns:repeat(3,104px);gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-pill);background:var(--color-ink);box-shadow:0 16px 32px -10px #11182773;transform:translate(-50%)}.bar-btn{height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);border:none;border-radius:var(--radius-pill);background:transparent;color:var(--color-surface);font-family:inherit;font-size:var(--fs-13);font-weight:var(--fw-bold);line-height:1;white-space:nowrap;cursor:pointer;transition:transform .12s,background .15s}.bar-btn .icon{font-size:var(--fs-17)}.bar-btn:active{transform:scale(.94);background:color-mix(in srgb,var(--color-surface) 12%,transparent)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;overscroll-behavior:none}.overlay-backdrop{--fade-top: var(--sheet-fade-top, 140px);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.overlay-shade,.overlay-blur{position:absolute;left:0;right:0;bottom:0;opacity:0;transition:opacity var(--anim-sheet, .35s) ease}.is-active>.overlay-backdrop>*{opacity:1}.overlay-shade{top:0;background:linear-gradient(to bottom,transparent 0,color-mix(in srgb,var(--sheet-shade-mid) 20%,transparent) calc(var(--fade-top) * .45),var(--sheet-shade-mid) var(--fade-top),var(--sheet-shade-end) 100%)}.overlay-blur{top:calc(var(--fade-top) * var(--s));-webkit-backdrop-filter:blur(var(--b));backdrop-filter:blur(var(--b));-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--fade-top) * var(--w)));mask-image:linear-gradient(to bottom,transparent 0,#000 calc(var(--fade-top) * var(--w)))}.overlay-blur.is-l1{--s: 0;--w: .4;--b: 1px}.overlay-blur.is-l2{--s: .2;--w: .4;--b: 2.5px}.overlay-blur.is-l3{--s: .4;--w: .4;--b: 5px}.overlay-blur.is-l4{--s: .6;--w: .4;--b: 8px}.sheet{width:100%;max-width:720px;height:var(--sheet-h);max-height:calc(100dvh - env(safe-area-inset-top));background:var(--app-sheet);border-radius:var(--r-l) var(--r-l) 0 0;display:flex;flex-direction:column;touch-action:pan-y;transform:translateY(100%);box-shadow:var(--sheet-lift);position:relative;z-index:1;transition:transform var(--anim-sheet, .35s) cubic-bezier(.32,.72,0,1)}.sheet.sheet-medium{--sheet-h: var(--sheet-h-medium, 75dvh)}.sheet.sheet-max{--sheet-h: var(--sheet-h-max, 88dvh)}.sheet:after{content:"";position:absolute;top:calc(100% - 1px);left:0;right:0;height:100vh;background:inherit;pointer-events:none}.sheet.is-active{transform:translateY(0)}.sheet.is-dragging{transition:none;will-change:transform}.sheet-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:var(--space-8) var(--space-8) var(--space-4)}.sheet-head-draggable{flex-direction:column;align-items:stretch;gap:var(--space-4);padding-top:var(--space-4);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.sheet-head-draggable:active{cursor:grabbing}.sheet-head-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.sheet-drag-hint{display:block;width:36px;height:4px;margin:0 auto;border-radius:var(--radius-pill);background:var(--color-border)}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.sheet-content{min-height:100%;display:flex;flex-direction:column;gap:var(--space-6);padding:0 var(--space-8) calc(env(safe-area-inset-bottom) + var(--space-4))}.sheet-body.is-fit{touch-action:none}.sheet.is-locked .sheet-body{pointer-events:none}.sheet-footer{flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6) var(--space-8) max(env(safe-area-inset-bottom),var(--space-6));background:var(--app-sheet)}.sheet-body:has(+.sheet-footer) .sheet-content{padding-bottom:0}.sheet-title{flex:1;min-width:0;color:var(--color-ink);font-size:var(--fs-24);font-weight:var(--fw-heavy);line-height:36px;letter-spacing:-.01em}.sheet-close,.sheet-back{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);border:none;background:var(--color-tile);color:var(--color-text-muted);font-size:var(--fs-13);line-height:1;cursor:pointer;transition:transform .12s}.sheet-close:active,.sheet-back:active{transform:scale(.92)}.photo-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.slot-remove{position:absolute;top:var(--space-2);right:var(--space-2);width:24px;height:24px;border-radius:var(--radius-pill);border:none;display:flex;align-items:center;justify-content:center;padding:0;background:#1118278c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:var(--fs-13);cursor:pointer}.field-clear{position:absolute;right:var(--space-2);top:calc(50% - 14px);width:28px;height:28px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:var(--color-text-subtle);font-size:var(--fs-13);line-height:1;cursor:pointer}.field-clear:active{color:var(--color-text)}.sheet.sheet-white,.sheet-white .sheet-footer{background:var(--color-surface)}.sheet-white .sheet-content{gap:var(--space-8)}.ai-cam{position:relative;aspect-ratio:1;min-height:136px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--r-m);background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface));color:var(--color-accent);cursor:pointer}.ai-cam-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-size:var(--fs-30)}.ai-cam-title{font-size:var(--fs-17);font-weight:var(--fw-bold)}.ai-cam-sub{font-size:var(--fs-13);opacity:.8}.ai-photo{position:relative;aspect-ratio:1;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-m);background:var(--color-surface-muted)}.ai-photo img{display:block;flex:0 1 auto;min-height:0;width:100%;height:100%;object-fit:cover;cursor:pointer}.ai-photo .slot-remove{top:var(--space-4);right:var(--space-4);width:30px;height:30px;font-size:var(--fs-13)}.ai-fields{overflow:hidden;border-radius:var(--r-m);background:var(--color-surface-muted)}.ai-fields:focus-within{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-accent) 45%,transparent)}.ai-field{position:relative;display:block;padding:var(--space-4) 44px var(--space-6) var(--space-8)}.ai-field+.ai-field:before{content:"";position:absolute;top:0;left:var(--space-8);right:0;border-top:1px solid var(--color-tile)}.ai-field-label{display:block;margin-bottom:var(--space-1);color:var(--color-text-muted);font-size:var(--fs-13)}.ai-field-input{width:100%;padding:0;border:none;outline:none;background:none;color:var(--color-ink);font-family:inherit;font-size:var(--fs-17)}.ai-field-input::placeholder{color:var(--color-text-subtle)}.ai-hint{margin:calc(-1 * var(--space-4)) var(--space-2) 0;color:var(--color-text-subtle);font-size:var(--fs-13);line-height:1.4}.weight-lines{margin-top:calc(-1 * var(--space-4));padding:0 var(--space-2) 0 var(--space-8);min-height:128px;display:grid;grid-template-columns:minmax(0,1fr) 16px auto auto 30px;grid-auto-rows:32px;align-content:start;align-items:center;column-gap:var(--space-4);font-size:var(--fs-13);line-height:18px}.wl-row{display:contents}.wl-slug{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text)}.wl-meta{color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.wl-g{color:var(--color-ink);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;text-align:right}.wl-act{display:flex;align-items:center;justify-content:center}.wl-row.is-fail .wl-slug{color:var(--color-text-muted)}.wl-row.is-off :is(.wl-slug,.wl-meta,.wl-g){opacity:.4}.wl-row.is-off .wl-g{text-decoration:line-through}.wl-dislike{position:relative;width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:var(--color-text-subtle);font-size:var(--fs-13);cursor:pointer}.wl-dislike:after{content:"";position:absolute;inset:calc(-1 * var(--space-4))}.wl-dislike.is-on{color:var(--color-over)}.wl-dislike:disabled,.weight-lines .icon-btn:disabled{opacity:.4;cursor:default}.cta-btn{width:100%;height:56px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);border:none;border-radius:var(--r-m);background:var(--color-accent);color:#fff;font-family:inherit;font-size:var(--fs-17);font-weight:var(--fw-bold);cursor:pointer;transition:transform .12s,opacity .15s}.cta-btn small{font-size:var(--fs-15);font-weight:400;opacity:.75}.cta-btn.is-danger{background:color-mix(in srgb,var(--color-over) 14%,transparent);color:var(--color-over)}.cta-btn.is-neutral{background:var(--color-tile);color:var(--color-ink)}.cta-btn:active:not(:disabled){transform:scale(.98)}.cta-btn:disabled{opacity:.45;cursor:default}.qty-foot{display:flex;gap:var(--space-4)}.qty-foot .cta-btn{flex:1;width:auto;min-width:0;white-space:nowrap}.qty{flex:none;display:flex;align-items:center;height:56px;padding:0 var(--space-4);border-radius:var(--r-m);background:var(--color-surface-muted)}.sheet:not(.sheet-white) .qty{background:var(--app-raised);box-shadow:var(--shadow-card)}.qty-btn{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-pill);background:var(--color-tile);color:var(--color-ink);font-family:inherit;font-size:var(--fs-15);cursor:pointer}.qty-btn:disabled{opacity:.4;cursor:default}.qty-val{display:flex;align-items:baseline;justify-content:center;gap:var(--space-1);min-width:var(--col-g);padding:0 var(--space-2);border:none;background:none;color:var(--color-ink);font-family:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.qty-val b{font-size:var(--fs-17);font-weight:var(--fw-heavy)}.qty-val span{color:var(--color-text-muted);font-size:var(--fs-13);font-weight:var(--fw-bold)}.manual-num{display:flex;align-items:baseline;justify-content:center;gap:var(--space-4);padding:var(--space-4) 0 0;border:none;background:none;font-family:inherit}.manual-num b{color:var(--color-ink);font-size:var(--fs-64);font-weight:var(--fw-heavy);line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.manual-num.is-empty b{color:var(--color-text-subtle)}.manual-num:before,.fav-num:before{content:"";flex:1 1 0}.manual-num span,.fav-num span{flex:1 1 0;color:var(--color-text-subtle);font-size:var(--fs-24);font-weight:var(--fw-bold)}.manual-caret{display:none;align-self:center;width:3px;height:52px;margin-left:-6px;border-radius:var(--radius-pill);background:var(--color-accent);animation:manual-caret 1s steps(1) infinite}.manual-num.is-active .manual-caret{display:block}@keyframes manual-caret{50%{opacity:0}}.manual-num.is-fresh.is-active b{padding:0 var(--space-4);border-radius:var(--r-s);background:color-mix(in srgb,var(--color-accent) 16%,transparent)}.manual-num.is-fresh .manual-caret{display:none}.manual-steps{display:flex;justify-content:center;gap:var(--space-4)}.num-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.num-key{height:52px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-m);background:var(--color-surface-muted);color:var(--color-ink);font-family:inherit;font-size:var(--fs-24);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s}.num-key:active:not(:disabled){transform:scale(.96);background:var(--color-tile)}.num-key.is-erase{background:none;color:var(--color-text-muted)}.num-key.is-on{background:var(--color-ink);color:var(--color-surface)}.num-key:disabled{opacity:.4;cursor:default}.model-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.ms-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);min-height:56px;padding:0 var(--space-6) 0 var(--space-8);border-radius:var(--r-m);background:var(--color-surface);box-shadow:var(--shadow-card)}.ms-label{min-width:0;overflow:hidden;color:var(--color-ink);font-size:var(--fs-17);white-space:nowrap;text-overflow:ellipsis}.ms-fail .ms-label{color:var(--color-text-muted)}.ms-right{flex:none;min-width:0;display:flex;align-items:center;gap:var(--space-4)}.ms-time{color:var(--color-text-muted);font-size:var(--fs-15);font-variant-numeric:tabular-nums}.ms-icon{--tone: var(--color-ok);flex:none;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone);font-size:var(--fs-13)}.ms-fail .ms-icon{--tone: var(--color-over)}.ms-row .ms-spinner{width:24px;height:24px;margin:var(--space-1);border-width:2.5px}.ms-spinner{width:16px;height:16px;border-radius:var(--radius-pill);border:2px solid var(--color-tile);border-top-color:var(--color-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.results{display:flex;flex-direction:column;gap:var(--space-4)}.sheet-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.sheet-section-title{font-size:var(--fs-17);font-weight:var(--fw-bold);color:var(--color-ink)}.sheet-section-meta{font-size:var(--fs-15);font-weight:400;color:var(--color-text-muted)}.req-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:var(--space-6);padding:var(--space-6) var(--space-8) var(--space-6) var(--space-6);border-radius:var(--r-m);background:var(--color-surface);box-shadow:var(--shadow-card)}.req-row.no-photo{grid-template-columns:minmax(0,1fr);padding-left:var(--space-8)}.req-thumbs{display:flex;flex-wrap:wrap;gap:var(--space-4);flex-shrink:0}.req-thumb{display:block;flex-shrink:0;width:44px;height:44px;padding:0;margin:0;overflow:hidden;border:none;border-radius:var(--r-s);background:none;cursor:pointer}.req-thumbs.is-large .req-thumb{width:64px;height:64px}.req-thumb img{width:100%;height:100%;object-fit:cover;display:block}.model-clickable{cursor:pointer}.model-clickable:active{opacity:.92}.model-src.is-expanded{white-space:normal}.model-pick-src{position:relative;flex:none;max-width:62%;height:30px;display:inline-flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4) 0 var(--space-6);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text);font-size:var(--fs-13);font-weight:var(--fw-bold)}.model-pick-src span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.model-pick-src .icon{color:var(--color-text-subtle);font-size:var(--fs-13)}.model-pick-src select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;font-size:var(--fs-17);cursor:pointer}.swipe{position:relative;border-radius:var(--r-m);overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-card);background:var(--color-surface)}.swipe-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-over);display:flex;align-items:center;justify-content:flex-end;padding-right:var(--space-8);opacity:0;visibility:hidden;pointer-events:none}.swipe.is-swiping .swipe-bg{opacity:1;visibility:visible}.swipe-bg-label{display:inline-flex;align-items:center;gap:var(--space-2);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-15)}.swipe-fg{position:relative;touch-action:pan-y;background:var(--color-surface);border-radius:var(--r-m)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-6) var(--space-6) max(var(--space-6),env(safe-area-inset-bottom))}.modal{--tone: var(--color-accent);position:relative;z-index:1;width:100%;max-width:420px;height:330px;max-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--space-12) var(--space-8) var(--space-8);border-radius:var(--r-l);background:var(--color-surface);box-shadow:var(--shadow-popover);text-align:center;transform:translateY(24px);opacity:0;transition:transform var(--anim-modal, .25s) cubic-bezier(.32,.72,0,1),opacity var(--anim-modal, .25s) ease}.modal.is-danger{--tone: var(--color-over)}.modal.is-active{transform:none;opacity:1}.modal-icon{--tone: var(--color-accent);width:56px;height:56px;flex:none;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-6);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone);font-size:var(--fs-24)}.modal-icon.is-danger{--tone: var(--color-over)}.modal-title{flex:none;max-width:100%;overflow:hidden;color:var(--color-ink);font-size:var(--fs-24);font-weight:var(--fw-heavy);line-height:28px;letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis}.modal-body{flex:1;min-height:0;overflow-y:auto;width:100%;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-6);margin-top:var(--space-4)}.modal-text{color:var(--color-text-muted);font-size:var(--fs-17);line-height:22px;text-wrap:balance;overflow-wrap:anywhere}.modal-actions{flex:none;width:100%;display:flex;flex-direction:column;gap:var(--space-2);margin-top:auto;padding-top:var(--space-12)}.modal-btn{width:100%;min-height:56px;display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:0 var(--space-8);border:none;border-radius:var(--r-m);background:var(--tone);color:#fff;font-family:inherit;font-size:var(--fs-17);font-weight:var(--fw-bold);cursor:pointer;transition:transform .12s,opacity .15s}.modal.is-danger .modal-btn{background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone)}.modal .modal-btn.is-neutral{background:var(--color-tile);color:var(--color-ink)}.modal-cancel{min-height:52px;padding:0 var(--space-8);border:none;background:none;color:var(--color-text-muted);font-family:inherit;font-size:var(--fs-17);font-weight:var(--fw-bold);cursor:pointer;transition:transform .12s,opacity .15s}.modal-btn:active:not(:disabled),.modal-cancel:active:not(:disabled){transform:scale(.97)}.modal-btn:disabled,.modal-cancel:disabled{opacity:.5;cursor:default}.sheet-title-meta{margin-left:var(--space-4);color:var(--color-text-subtle);font-size:var(--fs-15);font-weight:400;letter-spacing:0;font-variant-numeric:tabular-nums}.sheet-settings .sheet-content{gap:var(--space-8);padding-bottom:calc(env(safe-area-inset-bottom) + var(--space-12))}.settings-section{display:flex;flex-direction:column;gap:var(--space-4)}.settings-section .sheet-section-head{margin-bottom:0}.slug-list{background:var(--app-raised);box-shadow:var(--shadow-card);border-radius:var(--r-m);overflow:hidden}.slug-row{position:relative;display:flex;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-2) var(--space-8) var(--space-2) var(--space-4);cursor:pointer}.slug-row+.slug-row:before{content:"";position:absolute;top:0;left:48px;right:0;border-top:1px solid var(--color-border)}.slug-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.slug-row-slug{color:var(--color-ink);font-size:var(--fs-17);line-height:22px;overflow-wrap:anywhere}.slug-row:not(.is-active) .slug-row-slug,.slug-row:not(.is-active) .slug-row-stat{color:var(--color-text-subtle)}.slug-row-trash{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:none;color:var(--color-text-subtle);font-size:var(--fs-17);cursor:pointer}.slug-row-trash:active:not(:disabled){color:var(--color-over);background:color-mix(in srgb,var(--color-over) 12%,transparent)}.slug-row-trash:disabled{opacity:.3;cursor:default}.slug-row-pick{flex:none;width:24px;height:24px;margin:0;border-radius:50%;box-shadow:inset 0 0 0 2px var(--color-border-strong);background:center / 14px no-repeat;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:background-color .15s,box-shadow .15s}.slug-row-pick:checked{background-color:var(--color-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E");box-shadow:none}.slug-row-pick:disabled{opacity:.5;cursor:default}.slug-row-pick:focus-visible{box-shadow:var(--focus-ring)}.slug-row-add{width:100%;border:none;background:none;color:var(--color-accent);font-family:inherit;font-size:var(--fs-17);font-weight:var(--fw-bold);text-align:left}.slug-row-add .slug-row-trash{color:inherit}.slug-row-add:disabled{opacity:.5;cursor:default}.tag-name{display:inline-flex;align-items:center;gap:var(--space-4)}.tag-name:before{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--tag-color, var(--color-text-subtle))}.slug-row.is-static{cursor:default}.slug-row-gap{flex:none;width:32px}.sheet.sheet-input{--kb-pad: var(--kb-inset);height:auto;padding-bottom:max(var(--kb-pad),env(safe-area-inset-bottom))}.sheet.sheet-input.is-kb-await,.sheet.sheet-input:not(.is-active){--kb-pad: max(var(--kb-inset, 0px), var(--kb-last, 0px))}.sheet-input .sheet-body{overflow:hidden}.sheet-input .sheet-content{min-height:0;gap:var(--space-2);padding-bottom:var(--space-6)}.text-input{display:block;line-height:22px}.text-input.is-mono,.text-field-value.is-mono{font-family:var(--font-mono)}.text-input-hint{margin:0 var(--space-2);color:var(--color-text-subtle);font-size:var(--fs-13);line-height:18px}.ai-field.is-btn{padding:0}.text-field-btn{display:block;width:100%;padding:var(--space-4) 44px var(--space-6) var(--space-8);border:none;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.text-field-btn:disabled{cursor:default;opacity:.6}.text-field-value{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--color-ink);font-size:var(--fs-17);line-height:22px;overflow-wrap:anywhere}.text-field-value.is-empty{color:var(--color-text-subtle)}.sheet-input-form:has(.ai-photo,.ai-cam) .sheet-body{display:flex;flex-direction:column}.sheet-input-form:has(.ai-photo,.ai-cam) .sheet-content{flex:1 1 auto;min-height:0}.sheet-input-form:has(.ai-photo,.ai-cam) .sheet-content>:not(.ai-photo,.ai-cam){flex-shrink:0}.sheet-input-form:has(.ai-photo,.ai-cam) :is(.ai-photo,.ai-cam){flex:0 1 auto}.sheet-input-form:has(.ai-photo) .ai-photo{min-height:96px}.param-row{padding-left:var(--space-8)}.param-row-label{color:var(--color-ink);font-size:var(--fs-17);line-height:22px}.switch{flex:none;position:relative;width:50px;height:30px;margin:0;border-radius:var(--radius-pill);background:var(--color-tile);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:background .2s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #11182733;transition:transform .2s cubic-bezier(.2,.8,.2,1)}.switch:checked{background:var(--color-accent)}.switch:checked:after{transform:translate(20px)}.switch:focus-visible{box-shadow:var(--focus-ring)}.stepper{flex:none;display:flex;align-items:center;gap:var(--space-2)}.stepper-btn{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:var(--color-tile);color:var(--color-accent);font-size:var(--fs-17);cursor:pointer}.stepper-btn:active:not(:disabled){background:color-mix(in srgb,var(--color-accent) 16%,var(--color-tile))}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-btn:focus-visible{box-shadow:var(--focus-ring)}.stepper-value{min-width:48px;color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;line-height:22px;text-align:center;white-space:nowrap}.settings-note{margin:0;padding:0 var(--space-8);color:var(--color-text-muted);font-size:var(--fs-13);line-height:18px}.slug-row-stat{color:var(--color-text-muted);font-size:var(--fs-13);line-height:18px}.modal-btn .ms-spinner{display:inline-block;vertical-align:middle}.busy-btn{display:inline-flex;align-items:center;justify-content:center;gap:0;min-height:36px}.cta-btn.busy-btn{display:flex;gap:var(--space-2)}.btn-spinner{width:18px;height:18px}.feed-skeleton{display:flex;flex-direction:column;gap:var(--space-4)}.skeleton-card{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;column-gap:var(--space-6);min-height:72px;padding:var(--space-6) var(--space-8) var(--space-6) var(--space-6);border-radius:var(--r-m);background:var(--color-surface);box-shadow:var(--shadow-card)}.skeleton-line,.skeleton-thumb,.skeleton-kcal{position:relative;overflow:hidden;background:var(--color-surface-muted);border-radius:var(--r-s)}.skeleton-line:after,.skeleton-thumb:after,.skeleton-kcal:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-surface-muted) 40%,var(--color-border)) 50%,transparent 100%);transform:translate(-100%);animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line{height:12px}.skeleton-w50{width:50%}.skeleton-w80{width:80%}.skeleton-thumb{width:44px;height:44px;border-radius:var(--r-s)}.skeleton-col{display:flex;flex-direction:column;gap:var(--space-4)}.skeleton-kcal{width:36px;height:16px}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.photo-viewer-overlay{--anim-sheet: var(--anim-photo, .25s);--sheet-shade-mid: color-mix(in srgb, var(--color-ink) 30%, transparent);--sheet-shade-end: color-mix(in srgb, var(--color-ink) 70%, transparent);position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + var(--space-8)) var(--space-8) calc(var(--bar-space) + var(--space-8));overscroll-behavior:none}:root[data-theme=dark] .photo-viewer-overlay{--sheet-shade-mid: rgba(0, 0, 0, .4);--sheet-shade-end: rgba(0, 0, 0, .85)}.photo-viewer-img{position:relative;z-index:1;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-l);box-shadow:var(--shadow-popover);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;transform:scale(.94);opacity:0;transition:transform var(--anim-photo, .25s) cubic-bezier(.32,.72,0,1),opacity var(--anim-photo, .25s) ease}.photo-viewer-img.is-active{transform:scale(1);opacity:1}.photo-viewer-img.is-dragging{transition:none}.photo-viewer-bar{z-index:1;grid-template-columns:repeat(2,104px);opacity:0;transform:translate(-50%,16px);transition:transform var(--anim-photo, .25s) cubic-bezier(.32,.72,0,1),opacity var(--anim-photo, .25s) ease}.is-active>.photo-viewer-bar{opacity:1;transform:translate(-50%)}.photo-viewer-bar .bar-btn:disabled{opacity:.5}.app .bottombar{transition:opacity var(--anim-photo, .25s) ease}body:has(>.photo-viewer-overlay.is-active) .app .bottombar{opacity:0}@media (prefers-reduced-motion: reduce){.overlay-backdrop>*,.sheet,.modal,.photo-viewer-img,.photo-viewer-bar,.skeleton-line:after,.skeleton-thumb:after,.skeleton-kcal:after{transition:none!important;animation:none!important}.sheet{transform:translateY(0)}.overlay-backdrop>*{opacity:1}.modal,.photo-viewer-img{transform:none;opacity:1}.photo-viewer-bar{transform:translate(-50%);opacity:1}}.fav-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);padding-bottom:var(--space-8)}.fav-empty{grid-column:1 / -1}.fav-tile{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r-m);background:var(--color-surface-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .14s}.fav-tile:active{transform:scale(.97)}.fav-tile:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.fav-tile-photo{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:0 0 var(--r-m) var(--r-m);background:var(--color-tile)}.fav-tile-photo.is-letter{display:flex;align-items:center;justify-content:center;background:none;color:var(--color-text-subtle);font-size:var(--fs-30);font-weight:var(--fw-heavy)}.fav-tile-info{position:absolute;top:var(--space-4);right:var(--space-4);width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-ink);box-shadow:0 2px 8px #00000029;font-size:var(--fs-13);cursor:pointer;transition:transform .15s}.fav-tile-info:active{transform:scale(.88)}.fav-tile-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-6)}.fav-tile-name{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--color-ink);font-size:var(--fs-15);font-weight:var(--fw-bold);line-height:20px;overflow-wrap:anywhere}.fav-tile-nums{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums}.fav-tile-nums b{color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);line-height:20px}.fav-tile-nums small{color:var(--color-text-subtle);font-size:var(--fs-15);line-height:20px;white-space:nowrap}.fav-cats{grid-column:1 / -1}.fav-cat-name{color:var(--color-ink);font-weight:var(--fw-bold)}.fav-title{display:inline-flex;align-items:center;gap:var(--space-4)}.fav-title:after{content:"";flex:none;width:10px;height:10px;border-radius:50%;background:var(--tag-color)}.fav-cat-count{color:var(--color-text-subtle);font-size:var(--fs-15);line-height:20px;white-space:nowrap;font-variant-numeric:tabular-nums}.fav-tile.is-skeleton{pointer-events:none}.fav-tile.is-skeleton .fav-tile-photo{background:var(--color-tile)}.fav-head{display:flex;align-items:center;gap:var(--space-6);min-width:0}.fav-head-thumb{flex:none;width:56px;height:56px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--r-s);background:var(--color-surface-muted);color:var(--color-text-subtle);font-size:var(--fs-24)}.fav-head-thumb img{width:100%;height:100%;object-fit:cover}.fav-head-text{min-width:0;display:flex;flex-direction:column}.fav-head-text b{display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:28px;overflow-wrap:anywhere}.fav-head-text small{color:var(--color-text-muted);font-size:var(--fs-13);font-weight:400;line-height:18px;letter-spacing:0}.portion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.portion-cell{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);padding:var(--space-6);border:2px solid transparent;border-radius:var(--r-m);background:var(--color-surface-muted);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}.portion-cell:disabled{cursor:default;opacity:.6}.portion-cell:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.portion-cap{align-self:stretch;display:flex;align-items:baseline;justify-content:space-between;color:var(--color-text-muted);font-size:var(--fs-13);font-weight:var(--fw-bold);line-height:18px}.portion-cap small{color:var(--color-text-subtle);font-size:var(--fs-13);font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}.portion-val{min-height:40px;display:flex;align-items:center;gap:var(--space-2)}.portion-val b{color:var(--color-ink);font-size:var(--fs-30);font-weight:var(--fw-heavy);line-height:36px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;border-radius:var(--r-s)}.portion-unit{align-self:flex-end;padding-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--fs-17);font-weight:var(--fw-bold)}.portion-caret{display:none;width:3px;height:28px;border-radius:var(--radius-pill);background:var(--color-accent);animation:manual-caret 1s steps(1) infinite}.portion-cell.is-on{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface))}.portion-cell.is-on .portion-caret{display:block}.portion-cell.is-on.is-fresh .portion-caret{display:none}.portion-cell.is-on.is-fresh b{padding:0 var(--space-2);background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.portion-per100{margin-top:var(--space-4);color:var(--color-text-subtle);font-size:var(--fs-13);line-height:18px}.portion-per100 b{color:var(--color-accent);font-weight:var(--fw-bold)}.fav-edit-photo{position:relative;flex:none;aspect-ratio:2 / 1;overflow:hidden;border-radius:var(--r-m);background:var(--color-surface-muted)}.fav-edit-photo-img{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover}.fav-edit-photo-open{position:absolute;top:0;right:0;bottom:0;left:0;padding:0;border:none;background:none;cursor:pointer}.fav-edit-photo-img.is-letter{display:flex;align-items:center;justify-content:center;color:var(--color-text-subtle);font-size:var(--fs-64);font-weight:var(--fw-heavy)}.fav-edit-photo-btn{position:absolute;right:var(--space-4);bottom:var(--space-4);height:36px;padding:0 var(--space-6);overflow:hidden}.fav-edit-photo-btn.is-on-photo{background:#1118278c;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fav-edit-photo-btn .icon{color:inherit;font-size:var(--fs-17)}.ai-fields.is-invalid{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-over) 55%,transparent)}.ai-hint.is-error{color:var(--color-over)}.prop-list{overflow:hidden;border-radius:var(--r-m);background:var(--color-surface-muted)}.prop-row{position:relative;width:100%;min-height:56px;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6) var(--space-4) var(--space-8);border:none;background:none;color:var(--color-text);font-family:inherit;font-size:var(--fs-17);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}button.prop-row:active{background:var(--color-tile)}.prop-row.is-static{cursor:default}.prop-row+.prop-row:before{content:"";position:absolute;top:0;left:var(--space-8);right:0;border-top:1px solid var(--color-tile)}.prop-label{flex:1;min-width:0}.prop-value{display:flex;flex-direction:column;align-items:flex-end;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.prop-value b{color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);line-height:22px}.prop-row.is-changed .prop-value b{color:var(--color-accent)}.prop-value small{color:var(--color-text-subtle);font-size:var(--fs-13);line-height:16px}.prop-empty{color:var(--color-accent)}.prop-chev{color:var(--color-text-subtle);font-size:var(--fs-15);transform:rotate(-90deg)}.prop-gap{flex:none;width:var(--fs-15)}.fav-label{margin-bottom:var(--space-4);color:var(--color-text-subtle);font-size:var(--fs-13);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase}.fav-items{padding:var(--space-6);border-radius:var(--r-m);background:var(--color-surface-muted)}.fav-items+.ai-hint{margin-top:var(--space-4)}.text-btn.is-danger{color:var(--color-over)}.fav-edit-delete{align-self:center}.sheet-num .sheet-content{justify-content:center;gap:0}.fav-num{display:flex;align-items:baseline;justify-content:center;gap:var(--space-4)}.fav-num b{color:var(--color-ink);font-size:var(--fs-64);font-weight:var(--fw-heavy);line-height:76px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.fav-num-caret{align-self:center;width:3px;height:52px;margin-left:-6px;border-radius:var(--radius-pill);background:var(--color-accent);animation:manual-caret 1s steps(1) infinite}.fav-num.is-fresh b{padding:0 var(--space-4);border-radius:var(--r-s);background:color-mix(in srgb,var(--color-accent) 16%,transparent)}.fav-num.is-fresh .fav-num-caret{display:none}.fav-num-hint{min-height:2lh;margin-top:var(--space-1);color:var(--color-text-muted);text-align:center;font-size:var(--fs-15);line-height:20px;font-variant-numeric:tabular-nums}.tag-list .prop-row:disabled{opacity:.5;cursor:default}.tag-list .icon{color:var(--color-accent)}.fav-add-dish{display:flex;flex-direction:column;gap:var(--space-1)}.fav-add-dish b{color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);line-height:22px;overflow-wrap:anywhere}.fav-add-dish small{color:var(--color-text-muted);font-size:var(--fs-15);line-height:20px;font-variant-numeric:tabular-nums}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-8);text-align:center}.empty-state .tone-icon{margin-bottom:var(--space-4)}.empty-state b{color:var(--color-ink);font-size:var(--fs-17);font-weight:var(--fw-bold);line-height:22px}.empty-state p{margin:0;max-width:300px;color:var(--color-text-muted);font-size:var(--fs-15);line-height:20px}.ptr{position:absolute;top:calc(var(--head-h, 0px) - 30px);left:50%;transform:translate(-50%);width:26px;height:26px;display:flex;align-items:center;justify-content:center;opacity:0}.ptr-spinner{width:20px;height:20px;border-radius:var(--radius-pill);border:2px solid var(--color-tile);border-top-color:var(--color-text-muted)}.ptr.is-ready .ptr-spinner{border-top-color:var(--color-accent)}.ptr.is-refreshing .ptr-spinner{border-top-color:var(--color-accent);animation:ptr-spin .7s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}
