:root{--bg:#f1eeec;--surface:#fff;--surface-2:#f8f7f5;--ink:#1e1a1c;--muted:#77706f;--line:#1e1a1c1a;--mint:#a2ecc0;--mint-soft:#e1fae9;--green:#4e7e5d;--green-deep:#3a573c;--lime:#e1f44f;--lime-hover:#d8ec3f;--lime-edge:#c1d142;--over:#e0896b;--over-soft:#f8e1d8;--over-ink:#8a3d22;--over-strong:#b5532f;--c-protein:#0089c9;--c-carbs:#00b9d6;--c-fat:#00e2a5;--c-fibre:#8aff46;--hatch:repeating-linear-gradient(135deg, var(--mint) 0 6px, var(--mint-soft) 6px 9px);--hatch-over:repeating-linear-gradient(135deg, var(--over) 0 6px, var(--over-soft) 6px 9px);--hatch-grey:repeating-linear-gradient(135deg, #d3cdca 0 6px, #ebe7e5 6px 9px);--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Poppins", "Inter", system-ui, sans-serif;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:14px;--fs-xl:17px;--fs-2xl:19px;--fs-stat:22px;--fs-big:34px;--fs-chev:24px;--fs-input:16px;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:10px;--sp-6:12px;--sp-7:14px;--sp-8:16px;--sp-10:20px;--sp-12:24px;--r-card:20px;--r-tile:12px;--r-ctl:10px;--r-pill:999px;--shadow-card:0 1px 2px #1e1a1c0a;--shadow-pop:0 8px 24px #1e1a1c1f;--h-ctl:36px;--h-tap:44px;--app-width:440px;--gutter:var(--sp-6);--shell-top:max(var(--sp-6), env(safe-area-inset-top));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);font-size:var(--fs-md);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100dvh;margin:0}body:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(#1e1a1c0d 1px,#0000 1px),linear-gradient(90deg,#1e1a1c0d 1px,#0000 1px);background-position:top;background-size:64px 64px;height:320px;position:fixed;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000 30%,#0000);mask-image:linear-gradient(#000 30%,#0000)}html.sheet-open{overflow:hidden}html.sheet-open body{top:var(--lock-top,0);position:fixed;left:0;right:0}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.error{color:var(--over-ink);font-size:var(--fs-sm)}.hint{font-size:var(--fs-xs);margin:0}.center{text-align:center}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{max-width:var(--app-width);padding:var(--shell-top) var(--gutter) calc(88px + env(safe-area-inset-bottom));margin:0 auto}.stack{gap:var(--sp-6);display:grid}.grid-2{gap:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-name{grid-template-columns:minmax(0,1fr) 80px}.actions{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.actions .btn-lime{min-width:104px;margin-left:auto}.page-head{align-items:center;gap:var(--sp-4);margin:var(--sp-2) 0 var(--sp-6);display:flex}.page-head h1,.date-nav-title{font-size:var(--fs-2xl);overflow-wrap:anywhere;margin:0;line-height:1.2}.page-head h1{min-width:0}.page-sub{max-width:50%;font-size:var(--fs-sm);text-align:right;flex:none;margin:0 0 0 auto}.page-head .btn-lime{margin-left:auto;text-decoration:none}.page-head .icon-btn{margin-left:calc(-1 * var(--sp-5))}.page-head .icon-btn,.date-nav .icon-btn{font-size:var(--fs-chev);line-height:1}.sticky-head{z-index:5;margin:calc(-1 * var(--shell-top)) calc(-1 * var(--gutter)) var(--sp-4);padding:var(--shell-top) var(--gutter) var(--sp-3);transition:background-color .2s,box-shadow .2s;position:sticky;top:0}.sticky-head.is-scrolled,html.sheet-open .sticky-head{background:var(--bg);box-shadow:0 1px 0 var(--line)}.sticky-sub{padding:0 var(--gutter) var(--sp-3);background:var(--bg);box-shadow:0 1px 0 var(--line);font-size:var(--fs-sm);text-align:center;opacity:0;pointer-events:none;margin:0;transition:opacity .15s,transform .15s;position:absolute;top:100%;left:0;right:0;transform:translateY(-4px)}.sticky-sub.is-shown{opacity:1;transform:none}.sticky-head:has(.sticky-sub.is-shown){box-shadow:none}.date-nav{grid-template-columns:var(--h-tap) minmax(0, 1fr) var(--h-tap);text-align:center;align-items:center;display:grid}.date-nav .icon-btn:disabled{opacity:.3}.date-nav-sub{margin:var(--sp-1) 0 0;font-size:var(--fs-sm)}.date-pill{align-items:center;gap:var(--sp-3);min-height:var(--h-ctl);padding:0 var(--sp-7);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-xl);cursor:pointer;display:inline-flex;position:relative}.date-pill svg{color:var(--green);flex:none}.date-pill:hover{background:var(--surface-2)}.date-pill.is-away{background:var(--mint-soft);border-color:var(--mint);color:var(--green-deep)}.card{padding:var(--sp-8);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow-card)}.card+.card{margin-top:var(--sp-4)}.card h2,.card-title,.sheet-head h2{font-family:var(--font-display);font-size:var(--fs-lg);overflow-wrap:anywhere;margin:0;font-weight:600;line-height:1.3}.card .card-title{margin-bottom:var(--sp-5)}.card-head{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.card-link{color:inherit;text-decoration:none;display:block;position:relative}.card-link:after{content:"›";top:var(--sp-5);right:var(--sp-7);color:var(--muted);font-size:var(--fs-2xl);line-height:1;position:absolute}.card-link:hover{box-shadow:var(--shadow-card), 0 0 0 1px var(--line)}.card-cover{z-index:1;border-radius:inherit;position:absolute;inset:0}.btn{justify-content:center;align-items:center;gap:var(--sp-3);min-height:var(--h-ctl);padding:0 var(--sp-7);border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--surface);cursor:pointer;font-weight:500;display:inline-flex;position:relative}.btn:after,.date-pill:after,.chip:after,.seg-btn:after{content:"";inset:calc((var(--h-ctl) - var(--h-tap)) / 2);position:absolute}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.6;cursor:default}.btn-lime{background:var(--lime);border-color:var(--lime-edge);color:var(--green-deep);font-weight:600}.btn-lime:hover{background:var(--lime-hover)}.btn-quiet{color:var(--muted);background:0 0;border-color:#0000}.icon-btn{width:var(--h-ctl);font-size:var(--fs-lg);padding:0}.link-btn{width:100%;margin-top:var(--sp-3);color:var(--green)}.field{gap:var(--sp-2);font-size:var(--fs-sm);color:var(--muted);display:grid}.field>.input{width:100%;min-width:0}.input{min-height:var(--h-ctl);padding:0 var(--sp-5);border-radius:var(--r-ctl);border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font-size:var(--fs-input)}.textarea{min-height:64px;padding:var(--sp-4) var(--sp-5);resize:vertical;line-height:1.4}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.label{font-size:var(--fs-sm);color:var(--muted);margin:0}.unit{font-family:var(--font-body);font-size:var(--fs-md);color:var(--muted);font-weight:400}.big{margin:var(--sp-1) 0 0;font-size:var(--fs-big);font-weight:700;line-height:1.1}.big.is-over{color:var(--over-strong)}.bar{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);height:8px;overflow:hidden}.bar-tall{border-radius:var(--sp-4);height:16px}.bar-fill{background:var(--hatch);border-radius:inherit;height:100%;transition:width .4s}.bar-fill.is-over{background:var(--hatch-over)}.bar-fill.is-grey{background:var(--hatch-grey)}.macros{gap:var(--sp-4);margin-top:var(--sp-6);grid-template-columns:repeat(2,1fr);display:grid}.tile{gap:var(--sp-2);padding:var(--sp-5);border-radius:var(--r-tile);background:var(--surface-2);display:grid}.tile-value{font-size:var(--fs-xl);margin:0;font-weight:700;line-height:1.1}.tile-value .unit{font-size:var(--fs-xs)}.macros-row{gap:var(--sp-2);grid-template-columns:repeat(4,minmax(0,1fr))}.macros-row .tile{gap:var(--sp-1);padding:var(--sp-4) var(--sp-3)}.macros-row .tile-value{font-size:var(--fs-lg)}.macros-row .label{font-size:var(--fs-xs)}.macros-roomy .tile{padding:var(--sp-5) var(--sp-4)}.macros-roomy .tile-value{font-size:var(--fs-stat);letter-spacing:-.02em;white-space:nowrap}.macros-roomy .tile-value .unit,.macros-roomy .label{font-size:var(--fs-md)}.nutrition-head{justify-content:space-between;align-items:center;gap:var(--sp-5);display:flex}.nutrition-head .big{margin:0}.nutrition-head .size-select{flex:0 auto;min-width:0;max-width:60%}.nutrition-head .size-select:disabled{opacity:1;padding-right:var(--sp-5);color:var(--ink);cursor:default;background-image:none}.nutrition-head+.macros{margin-top:0}.macros-line{font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.meal-totals{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.macro{white-space:nowrap}.macro-n{font-weight:600}.left-pill,.diff-pill{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);font-size:var(--fs-sm);white-space:nowrap;border:1px solid #0000;flex-shrink:0;display:inline-flex}.left-pill{background:var(--lime);border-color:var(--lime-edge);color:var(--green-deep);font-weight:500}.left-pill .num{font-weight:700}.diff-pill{font-weight:600}.diff-pill.is-ok{background:var(--mint-soft);border-color:var(--mint);color:var(--green-deep)}.diff-pill.is-short{background:var(--surface-2);border-color:var(--line);color:var(--ink)}.left-pill.is-over,.diff-pill.is-over,.btn-danger,.swipe-action.is-danger{background:var(--over-soft);border-color:var(--over);color:var(--over-ink)}.diff-pill.is-compact{padding:1px var(--sp-2);font-size:var(--fs-xs);gap:1px}.diff-pill.is-compact .num{font-variant-numeric:normal}.tag{margin-left:var(--sp-2);padding:0 var(--sp-3);border-radius:var(--r-pill);background:var(--mint-soft);color:var(--green-deep);font-size:var(--fs-xs);vertical-align:1px;font-weight:500;display:inline-block}.tag-est{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}.mark{margin-left:var(--sp-2);color:var(--green);vertical-align:-2px;flex:none;display:inline-block}.chip{min-height:30px;padding:0 var(--sp-5);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font-size:var(--fs-sm);cursor:pointer;flex:none;font-weight:500;position:relative}.chip:after{inset:calc((30px - var(--h-tap)) / 2) 0}.chip.is-active{background:var(--mint-soft);border-color:var(--green);color:var(--green-deep)}.seg{gap:var(--sp-1);border-radius:calc(var(--r-ctl) + 3px);background:var(--surface-2);border:1px solid var(--line);flex-wrap:wrap;padding:3px;display:inline-flex}.seg-wide{grid-template-columns:repeat(4,1fr);display:grid}.seg-btn{min-height:30px;padding:0 var(--sp-5);border-radius:var(--r-ctl);color:var(--muted);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;font-weight:500;position:relative}.seg-btn:after{inset:calc((30px - var(--h-tap)) / 2) 0}.seg-wide .seg-btn{padding:0 var(--sp-2)}.seg-btn.is-active{background:var(--surface);border-color:var(--line);color:var(--ink)}.list{margin:0;padding:0;list-style:none}.list>li+li{border-top:1px dashed var(--line)}.row-btn{width:100%;min-height:var(--h-tap);padding:var(--sp-4) 0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;text-decoration:none;display:grid}.row-title{overflow-wrap:anywhere;font-weight:500}.row-sub{font-size:var(--fs-xs)}.entry-btn{width:100%;min-height:var(--h-tap);padding:var(--sp-3) 0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:block}.ing-row .entry-btn{padding:var(--sp-2) 0}.row-btn:hover .row-title,.row-btn:hover .food-row-title,.entry-btn:hover .food-row-title{color:var(--green-deep)}.food-row{column-gap:var(--sp-5);row-gap:var(--sp-1);text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;width:100%;display:grid}.food-row-title{overflow-wrap:anywhere;font-weight:500}.food-row-desc{font-size:var(--fs-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:1px;font-weight:400;display:-webkit-box;overflow:hidden}.food-row-kcal{font-family:var(--font-display);font-size:var(--fs-md);text-align:right;white-space:nowrap;font-weight:600}.food-row-aside{font-size:var(--fs-xs);text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.food-row.is-simple{align-items:center;row-gap:0}.food-row.is-simple .food-row-kcal{font-size:var(--fs-xl);grid-area:1/2/span 2}.expand-row{padding:var(--sp-3) 0}.expand-list.is-stale{opacity:.55}.food-row.is-split{grid-template-columns:minmax(0,1fr);display:grid}.food-row-line{justify-content:space-between;align-items:baseline;gap:var(--sp-5);min-width:0;display:flex}.food-row-line .food-row-title{flex:1;min-width:0}.food-row.is-split .food-row-aside{text-align:left;white-space:normal;flex:1;min-width:0;max-width:none}.food-row.is-split .food-row-macros{text-align:right;flex:none}.food-row.is-simple .food-row-aside{max-width:none;font-size:var(--fs-sm);text-align:left;grid-column:1}.picker-caption{margin:var(--sp-5) 0 0}.picker-quick{margin:var(--sp-2) 0 var(--sp-4)}.picker-list{margin-top:var(--sp-2)}.picker-empty{padding:var(--sp-5) 0;font-size:var(--fs-sm)}.amount-row{gap:var(--sp-3);grid-template-columns:80px minmax(0,1fr);align-items:center;display:grid}.amount-qty{text-align:center;width:80px;font-weight:600}.amount-unit{width:100%;min-width:0}.amount .hint{margin-top:var(--sp-2)}.nutrient-line{gap:var(--sp-1);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-tile);background:var(--surface-2);font-size:var(--fs-sm);display:grid}.nl-kcal{font-size:var(--fs-2xl);font-weight:700}.combo{min-width:0;position:relative}.combo .input{width:100%}.combo-list{z-index:20;top:calc(100% + var(--sp-2));width:max-content;min-width:100%;max-width:240px;max-height:232px;padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow-pop);margin:0;list-style:none;position:absolute;right:0;overflow-y:auto}.combo-option{min-height:var(--h-ctl);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-ctl);cursor:pointer}.combo-option:hover,.combo-option.is-active{background:var(--surface-2)}.sheet{width:100%;max-width:var(--app-width);max-height:min(92dvh, calc(var(--vv-height,100dvh) - var(--sp-8)));margin:auto auto var(--vv-bottom,0);overscroll-behavior:contain;border-radius:var(--r-card) var(--r-card) 0 0;background:var(--surface);color:var(--ink);border:0;padding:0;box-shadow:0 -8px 32px #1e1a1c1f}.sheet.is-center{width:calc(100% - 2 * var(--gutter));border-radius:var(--r-card);max-width:400px;box-shadow:var(--shadow-pop);margin:auto}.sheet.is-center .sheet-body{padding-bottom:var(--sp-8)}.sheet.is-pop{inset:var(--pop-top,64px) auto auto var(--pop-left,var(--gutter));width:min(360px, calc(100% - 2 * var(--gutter)));border-radius:var(--r-card);max-height:none;box-shadow:var(--shadow-pop);margin:0;position:fixed;overflow:visible}.sheet.is-pop:before{content:"";top:-6px;left:calc(var(--arrow-x,50%) - 7px);background:var(--surface);border-radius:3px 0 0;width:14px;height:14px;position:absolute;transform:rotate(45deg)}.sheet.is-pop .sheet-body{max-height:calc(100dvh - var(--pop-top,64px) - var(--sp-8));overscroll-behavior:contain;border-radius:inherit;padding-bottom:var(--sp-8);padding-top:var(--sp-5);position:relative;overflow-y:auto}.sheet.is-pop::backdrop{background:#1e1a1c2e}.sheet::backdrop{background:#1e1a1c59}.sheet-body{padding:var(--sp-3) var(--sp-8) calc(var(--sp-8) + env(safe-area-inset-bottom))}.sheet-head{z-index:1;align-items:center;gap:var(--sp-2);margin:0 calc(-1 * var(--sp-3)) var(--sp-3) 0;padding-top:var(--sp-3);background:var(--surface);display:flex;position:sticky;top:0}.sheet-head h2{flex:1}.tabbar{left:50%;bottom:calc(var(--sp-5) + env(safe-area-inset-bottom));z-index:10;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #1e1a1c1a}.tab{align-items:center;gap:var(--sp-2);min-height:var(--h-tap);padding:0 var(--sp-8);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);font-weight:500;text-decoration:none;display:flex}.tab.is-active{background:var(--mint-soft);color:var(--green-deep)}.tab:hover:not(.is-active){color:var(--ink)}@media (width<=460px){.tabbar{gap:var(--sp-1)}.tab{justify-content:center;gap:var(--sp-1);min-width:64px;padding:var(--sp-1) var(--sp-4);font-size:var(--fs-xs);flex-direction:column;line-height:1.1}}.menu{position:relative}.menu-pop{top:calc(100% + var(--sp-2));z-index:20;min-width:240px;padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-tile);background:var(--surface);box-shadow:var(--shadow-pop);display:grid;position:absolute;right:0}.menu-item{gap:var(--sp-5);min-height:var(--h-tap);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-ctl);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--surface-2)}.menu-item:disabled{color:var(--muted);opacity:.55;cursor:default}.menu-icon{color:var(--green);display:grid}.menu-item-danger,.menu-item-danger .menu-icon{color:var(--over-ink)}.menu-text{display:grid}.menu-hint{font-size:var(--fs-xs)}.toast,.update-notice{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));max-width:calc(100% - 2 * var(--gutter));border-radius:var(--r-pill);font-size:var(--fs-sm);position:fixed;transform:translate(-50%)}.toast{z-index:30;padding:var(--sp-4) var(--sp-7);background:var(--ink);color:var(--surface)}.update-notice{z-index:25;align-items:center;gap:var(--sp-3);width:max-content;padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-7);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-pop);font-weight:500;display:flex}.update-reload{border-radius:var(--r-pill)}.swipe-row{position:relative;overflow:hidden}.swipe-actions{display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-action{background:var(--mint-soft);color:var(--green-deep);font:inherit;font-size:var(--fs-sm);cursor:pointer;border:0;flex:1;font-weight:600}.swipe-action:focus-visible{outline-offset:-3px}.swipe-action:disabled{color:var(--muted);opacity:.5;cursor:default}.swipe-content{background:var(--surface);touch-action:pan-y;transition:transform .2s;position:relative}.swipe-content.is-dragging{transition:none}.gauge{flex:none;position:relative}.gauge svg{display:block}.gauge path{fill:none;stroke-linecap:round}.gauge-track{stroke:var(--mint-soft)}.gauge-ok{stroke:var(--green)}.gauge-over{stroke:var(--over)}.gauge-center{text-align:center;place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.gauge-center .big{font-variant-numeric:normal;margin:0}.cal{gap:var(--sp-1);margin:0 calc(-1 * var(--sp-3));display:grid}.cal-row{grid-template-columns:repeat(7,minmax(0,1fr)) 54px;align-items:center;display:grid}.cal-head span{padding-bottom:var(--sp-2);font-size:var(--fs-xs);color:var(--muted);text-align:center}.cal-day,.cal-week{min-height:var(--h-tap);border-radius:var(--r-ctl);cursor:pointer;background:0 0;border:1px solid #0000}.cal-day{padding:var(--sp-1) 0;color:var(--ink);justify-items:center;gap:1px;display:grid}.cal-week{place-items:center;padding:0;display:grid}.cal-day:hover:not(:disabled),.cal-week:hover{background:var(--surface-2)}.cal-day:disabled{color:var(--muted);opacity:.5;cursor:default}.cal-day.is-outside{opacity:.4}.cal-day.is-today{border-color:var(--green);background:var(--mint-soft)}.cal-day.is-selected,.cal-row.is-selected{border-color:var(--ink)}.cal-row.is-selected{border:1px solid var(--ink);border-radius:var(--r-ctl)}.cal-today{width:100%;margin-top:var(--sp-5)}.date-nav-link{min-height:var(--h-ctl);padding:0 var(--sp-4);border-radius:var(--r-ctl);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}.date-nav-link:hover{background:var(--surface-2);color:var(--green-deep)}.cal-num{font-size:var(--fs-xs);line-height:1}.cal-day .gauge-track{stroke:var(--surface-2)}.cal-day .gauge-center{color:var(--green)}.cal-day.is-planned .gauge-ok{stroke:var(--muted);opacity:.45}.week-ok{font-size:var(--fs-lg);line-height:1}.week-over{color:var(--over-ink);font-size:var(--fs-xs);font-weight:600}.page-search{width:100%;margin-bottom:var(--sp-5);background:var(--surface)}.list-card{padding:var(--sp-2) var(--sp-8)}.list-card-head{padding:var(--sp-5) 0 var(--sp-2)}.list-card>.muted{margin:var(--sp-5) 0}.notice{margin:0 0 var(--sp-5);font-size:var(--fs-sm);background:var(--mint-soft)}.row-split{justify-content:space-between;align-items:center;gap:var(--sp-5);display:flex}.row-text{min-width:0;display:grid}.row-kcal{font-size:var(--fs-lg);white-space:nowrap;font-weight:700}.serving{gap:var(--sp-2);display:grid}.serving-row{gap:var(--sp-2);grid-template-columns:52px 64px auto 36px minmax(0,1fr) 28px;align-items:center;display:grid}.serving-row .input{padding-left:var(--sp-3);padding-right:var(--sp-3)}.serving-row .input.num{text-align:right}.serving-row .serving-count{text-align:center}.serving-unit{min-width:0;padding-right:var(--sp-2)}.serving-eq{white-space:nowrap}.serving-row .serving-x{width:28px;margin:0}.serving-err{font-size:var(--fs-xs);margin:0}.recipe-form{margin-top:var(--sp-5)}.ing-row{padding:var(--sp-3) 0}.source-row{gap:var(--sp-3);display:flex}.source-row .input{flex:1;min-width:0}.field-title{margin:var(--sp-2) 0 calc(-1 * var(--sp-2));font-size:var(--fs-sm);color:var(--muted)}.size-select{width:auto}.status{font-size:var(--fs-xs)}.actions-minor{justify-content:center}.entry-copy{gap:var(--sp-3);display:grid}.entry-copy-head{justify-content:space-between;align-items:center;gap:var(--sp-5);display:flex}.entry-copy-title{font-family:var(--font-display);color:var(--green-deep);margin:0;font-weight:600}.entry-copy-when{margin:var(--sp-1) 0 0;font-size:var(--fs-xs)}.entry-copy .hint{color:var(--green-deep)}.actions-entry{gap:var(--sp-3);display:grid}.actions-entry .btn-lime{margin-left:0}.card+.actions-entry{margin-top:var(--sp-6)}.btn-hint{font-size:var(--fs-sm);font-weight:400}.yield-row{grid-template-columns:80px minmax(0, 1fr) var(--h-ctl);gap:var(--sp-4);align-items:center;display:grid}.yield-row-custom{grid-template-columns:64px minmax(0, 1fr) 108px var(--h-ctl)}.yield-row .input.num{text-align:right}.yield-unit{min-width:0}.entry-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);display:flex}.entry-name{min-width:0}.entry-name .eyebrow{margin:0 0 var(--sp-1);font-size:var(--fs-xs)}.entry-name .eyebrow:empty{display:none}.entry-head .edit-link{margin:calc(-1 * var(--sp-4)) calc(-1 * var(--sp-2)) 0 0}.edit-link{padding:0 var(--sp-2) 0 var(--sp-5);color:var(--green);flex:none;font-weight:600}.stale{justify-content:space-between;align-items:center;gap:var(--sp-3) var(--sp-5);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-tile);flex-wrap:wrap;margin:0;display:flex}.login{place-items:center;min-height:100dvh;display:grid}.login-card{gap:var(--sp-6);width:100%;max-width:340px;padding:var(--sp-12) var(--sp-10);display:grid}.login-card h1{font-size:var(--fs-2xl);margin:0}.login-card p{margin:calc(-1 * var(--sp-3)) 0 var(--sp-2)}.stats-views{width:100%;margin-bottom:var(--sp-3);grid-template-columns:repeat(3,1fr)}.chips{justify-content:space-between;gap:var(--sp-2);margin:0 calc(-1 * var(--gutter)) var(--sp-4);padding:var(--sp-2) var(--gutter);scrollbar-width:none;display:flex;overflow-x:auto}.stats-body{transition:opacity .15s}.stats-body.is-stale,.cal-sheet.is-stale{opacity:.55}.stat-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-5);margin-bottom:var(--sp-6);display:flex}.stat-head .big{font-variant-numeric:normal}.stat-sub{margin:var(--sp-2) 0 0;font-size:var(--fs-xs)}.stat-head-inline{margin-bottom:var(--sp-6)}.stat-big-row{justify-content:space-between;align-items:last baseline;gap:var(--sp-5);display:flex}.stat-target{justify-items:end;gap:var(--sp-1);font-size:var(--fs-sm);white-space:nowrap;display:grid}.stat-avg{align-items:center;gap:var(--sp-2);color:var(--green-deep);display:inline-flex}.avg-swatch{width:var(--sp-7);border-top:1px dashed var(--green)}.stat-pill{justify-items:end;gap:var(--sp-2);padding-top:var(--sp-1);font-size:var(--fs-xs);text-align:right;display:grid}.stat-empty{margin:0 0 var(--sp-6);font-size:var(--fs-sm)}.bars{margin:0 calc(-1 * var(--sp-2));border-bottom:1px solid var(--line);grid-template-columns:repeat(7,1fr);align-items:end;display:grid;position:relative}.bars-col{justify-items:center;gap:var(--sp-2);padding:0 0 var(--sp-2);border-radius:var(--r-ctl);color:var(--muted);cursor:pointer;background:0 0;border:0;display:grid}.bars-col:hover{background:var(--surface-2)}.bars-plot{justify-content:center;align-items:flex-end;width:100%;display:flex;position:relative}.bars-stack{gap:var(--sp-1);flex-direction:column;width:20px;display:flex}.bars-seg{background:var(--hatch);border-radius:var(--sp-2) var(--sp-2) 0 0;display:block}.bars-seg:last-child:not(:first-child){border-radius:0}.bars-seg.is-over{background:var(--hatch-over)}.bars-seg.is-planned{background:var(--hatch-grey)}.bars-target{background:var(--ink);opacity:.55;border-radius:1px;height:2px;margin-bottom:-1px;position:absolute;left:18%;right:18%}.bars-avg{border-top:1px dashed var(--green);pointer-events:none;position:absolute;left:0;right:0}.bars-diff{padding:0 var(--sp-1);border-radius:var(--r-pill);background:var(--surface);white-space:nowrap;font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600;line-height:1.2;position:absolute;left:50%;transform:translate(-50%)}.bars-col:hover .bars-diff{background:var(--surface-2)}.bars-diff.is-over{color:var(--over-ink)}.bars-day{font-size:var(--fs-xs);font-weight:500}.bars-col.is-today .bars-day{color:var(--green-deep);font-weight:700}.day-list{margin-top:var(--sp-3)}.day-row{gap:var(--sp-3);width:100%;min-height:var(--h-tap);padding:var(--sp-2) 0;color:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto 88px;align-items:center;display:grid}.day-row:hover{color:var(--green-deep)}.day-row-value{font-size:var(--fs-md);text-align:right;font-weight:600}.day-row-value.muted{font-size:var(--fs-sm);grid-column:span 2;font-weight:400}.day-row-value .unit{font-size:var(--fs-xs)}.day-row-diff{font-size:var(--fs-xs);text-align:right;color:var(--muted)}.day-row-diff.is-over{color:var(--over-ink);font-weight:500}.day-row-value.is-planned{color:var(--muted);font-weight:400}.list>li.day-total{gap:var(--sp-3);min-height:var(--h-tap);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto 88px;align-items:center;font-weight:600;display:grid}.day-total .day-row-diff{color:var(--ink);font-weight:500}.prior{gap:var(--sp-2);grid-template-columns:repeat(4,1fr);display:grid}.prior-week{justify-items:center;gap:var(--sp-2);min-height:52px;padding:var(--sp-4) var(--sp-2);border-radius:var(--r-tile);background:var(--surface-2);font-size:var(--fs-xs);cursor:pointer;border:0;display:grid}.prior-week:hover{background:var(--mint-soft)}.prior+.hint{margin-top:var(--sp-4)}.day-cal{justify-items:center;display:grid}.sums{width:100%;margin:var(--sp-2) 0 0;display:grid}.sums>div{padding:var(--sp-3) 0;justify-content:space-between;display:flex}.sums dt{color:var(--muted)}.sums dd{margin:0;font-weight:600}.sums-total{border-top:1px solid var(--line)}.sums-total dt{color:var(--ink)}.sums .is-over{color:var(--over-strong)}.day-cal .link-btn{margin-top:var(--sp-2)}.split{gap:var(--sp-6);display:grid}.split-chart{justify-self:center;width:104px;height:104px;position:relative}.split-chart svg{display:block}.split-center{font-size:var(--fs-xs);place-content:center;justify-items:center;line-height:1.2;display:grid;position:absolute;inset:0}.split-kcal{font-size:var(--fs-xl);font-variant-numeric:normal;font-weight:700}.split-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.split-table thead th{padding:0 0 var(--sp-2);font-size:var(--fs-xs);color:var(--muted);text-align:right;font-weight:500}.split-table tbody th{text-align:left;white-space:nowrap;font-weight:500}.split-table tbody th,.split-table td{padding:var(--sp-3) 0;border-top:1px dashed var(--line)}.split-table td{text-align:right;white-space:nowrap}.split-table td+td{padding-left:var(--sp-5)}.split-table .num{font-weight:600}.split-target{font-size:var(--fs-xs);display:block}.swatch{width:var(--sp-4);height:var(--sp-4);margin-right:var(--sp-3);vertical-align:0;border-radius:3px;display:inline-block}.split-fibre .swatch{background:var(--c-fibre)}.energy-row{justify-content:space-between;align-items:flex-end;gap:var(--sp-5);margin-bottom:var(--sp-5);padding-right:var(--sp-6);display:flex}.energy-eaten{align-items:baseline;gap:var(--sp-3);display:flex}.social-btn{z-index:2;color:var(--green);cursor:pointer;background:0 0;border:0;flex:none;padding:0;display:inline-flex;position:relative}.social-btn:after{content:"";width:var(--h-tap);height:var(--h-tap);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.social-btn:hover,.social-btn.is-ask{color:var(--green-deep)}.day-plan-head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);display:flex}.day-plan-title{font-family:var(--font-display);font-size:var(--fs-lg);margin:0;font-weight:600}.day-plan-actions{justify-content:flex-end;gap:var(--sp-4);margin-top:var(--sp-6);display:flex}.day-plan-kcal{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600}.day-plan-note{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);line-height:1.4}.day-plan-btn{width:100%;margin-top:var(--sp-6)}.meal{padding:var(--sp-6) var(--sp-8)}.meal-head{align-items:center;gap:var(--sp-2);margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-3)) calc(-1 * var(--sp-2)) 0;display:flex}.meal-title{align-items:baseline;gap:var(--sp-3);min-width:0;min-height:var(--h-tap);color:inherit;flex-wrap:wrap;flex:1;align-content:center;text-decoration:none;display:flex}.meal-title:hover h2{color:var(--green-deep)}.add-btn{font-size:var(--fs-2xl);color:var(--green-deep);background:var(--mint-soft);border-color:#0000;font-weight:400}.add-btn:hover{background:var(--mint)}.empty{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.entries{margin:var(--sp-1) 0 0;padding:0;list-style:none}.entries li{border-top:1px dashed var(--line)}.entries li:first-child{border-top:0}.today-foot{margin-top:var(--sp-6);justify-content:center;display:flex}
