:root{--bg: #f1efea;--panel: #ffffff;--surface: #ffffff;--ink: #17191c;--muted: #6f6c66;--line: #e7e4dd;--action: #1f4a42;--action-ink: #ffffff;--accent: var(--action);--accent-ink: var(--action-ink);--danger: #b42318;--warn-bg: #fdf6e3;--warn: #b7791f;--meter-track: #e9e6df;--gradient: linear-gradient(90deg, #2fa564, #2bb3a3);--radius: 14px;--radius-panel: 28px;--radius-pill: 999px;--shadow-float: 0 8px 28px rgba(31, 38, 35, .12), 0 1px 3px rgba(31, 38, 35, .08);--tile-1: #d3e8df;--tile-2: #efe3c6;--tile-3: #d3e2ec;--tile-4: #eed9d1;--tap: 44px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #121413;--panel: #1c1f1e;--surface: #1c1f1e;--ink: #eef0f2;--muted: #9aa1ac;--line: #2c3130;--action: #8fd0bd;--action-ink: #0f2a25;--danger: #ff8a80;--warn-bg: #2a2619;--warn: #e3b55b;--meter-track: #24282d;--shadow-float: 0 0 0 1px #2c3130, 0 8px 28px rgba(0, 0, 0, .55);--tile-1: #22352f;--tile-2: #383223;--tile-3: #223039;--tile-4: #3a2a26}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif;-webkit-text-size-adjust:100%}.stack>*+*{margin-top:14px}h1,h2,p{margin:0}.section-title{font-size:20px;font-weight:700;letter-spacing:-.01em}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;padding:40px 0}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.hero{padding:8px 4px 4px}.hero-label{color:var(--muted);font-size:15px}.hero-week{margin-bottom:6px;font-size:14px;font-weight:600;color:var(--ink)}.hero-amount{font-size:clamp(44px,14vw,64px);font-weight:700;letter-spacing:-.035em;line-height:1.05;color:var(--accent);font-variant-numeric:tabular-nums;margin:2px 0 4px}.hero-amount.over{color:var(--danger)}.meter{height:10px;border-radius:5px;background:var(--meter-track);overflow:hidden;margin:14px 0 6px}.meter i{display:block;height:100%;background:var(--gradient);border-radius:5px;transition:width .4s ease}.card{background:var(--surface);border:1.5px solid var(--line);border-radius:20px;padding:14px 16px}.card-quiet{background:transparent;border-color:transparent;padding:4px}.card-title{font-size:17px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.loading{display:grid;gap:12px;padding:4px 0}.loading i{display:block;height:56px;border-radius:16px;background:var(--bg)}.loading i:nth-child(2){width:82%}.loading i:nth-child(3){width:64%}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.notice{background:var(--warn-bg);border-radius:10px;padding:10px 12px;font-size:14px}.rows{list-style:none;margin:0;padding:0}.rows>li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:var(--tap);padding:6px 0;border-top:1px solid var(--line)}.rows>li:first-child{border-top:0}.rows.recurring>li{flex-wrap:wrap}.rows.recurring>li>span:first-child{flex-basis:100%}.rows.recurring .row-actions{flex:1;gap:8px}.rows.recurring label{display:flex;align-items:center;gap:6px;white-space:nowrap}.rows.recurring select{flex:none;font-size:14px}.rows.recurring .icon-btn{margin-left:auto}.row-actions{display:flex;align-items:center;gap:2px}.split{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}.grow{flex:1}.inline-form,.spend-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.spend-form{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.spend-form select,.spend-form input{flex:1 1 140px}.field{display:flex;align-items:center;gap:8px;flex:1}.field>span:first-child{color:var(--muted);font-size:14px}.suffix{color:var(--muted)}input,select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;min-height:var(--tap);padding:0 12px;min-width:0}.field input{width:7em;text-align:right;font-variant-numeric:tabular-nums}.btn,.btn-ghost,.icon-btn{font:inherit;min-height:var(--tap);border-radius:10px;cursor:pointer;border:0}.btn{background:var(--accent);color:var(--accent-ink);font-weight:600;padding:0 16px}.btn-ghost{background:transparent;color:var(--accent);padding:0 10px}.icon-btn{min-width:var(--tap);display:inline-grid;place-items:center;background:transparent;color:var(--muted);font-size:17px}.btn-ghost.with-icon{display:inline-flex;align-items:center;gap:6px;font-weight:600}.btn-outline{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;border:1.5px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.btn-outline.danger{color:var(--danger)}.btn.danger{background:var(--danger);color:var(--surface)}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error{color:var(--danger);font-size:14px;flex-basis:100%}.ico{margin-right:.35em}.store-logo{width:1.15em;height:1.15em;border-radius:.25em;object-fit:contain;vertical-align:-.2em}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.over-text{color:var(--danger)}.line{display:block!important}.line-main{display:flex;align-items:center;gap:8px}.line-name{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer;min-height:var(--tap);justify-content:center}.status-to_send,.status-to_remove{color:var(--accent)}.status-replaced{color:var(--danger)}.line-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}.line-ordered{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:var(--radius-pill);background:var(--tile-1);color:var(--action);font-size:12px;font-weight:700}.shopping-date{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.shopping-select{flex:1 1 100%;min-width:0;border-radius:var(--radius-pill);border-width:1.5px;padding:0 14px;font-weight:600;color:var(--action);background:var(--surface)}.shopping-head>p{margin-top:4px}.bought-row{border-top:0}.stepper{display:flex;align-items:center}.step{width:36px;height:var(--tap);border:0;background:transparent;color:var(--accent);font-size:22px;cursor:pointer;border-radius:10px}.qty{min-width:1.6em;text-align:center;font-weight:600}.amount{min-width:4.6em;text-align:right}.line-actions{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 8px}.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.check-card{display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--surface)}.check-card>p{margin:0}.check-grid{display:grid;grid-template-columns:68px minmax(0,1fr) auto;column-gap:10px;row-gap:8px;align-items:baseline}.check-key{font-size:12px;color:var(--muted)}.check-label{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;overflow-wrap:anywhere}.check-foot{display:flex;margin:8px -14px -14px;border-top:1px solid var(--line)}.check-act{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:var(--tap);padding:8px 0 9px;border:0;background:none;color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.check-act .icon{color:var(--ink)}.check-act.on,.check-act.on .icon{color:var(--action);font-weight:600}.check-act.quiet .icon{color:var(--muted)}.check-field{display:flex;flex-direction:column;gap:4px}.check-ignored .rows{margin-top:4px}.link-btn{display:inline-grid;place-items:center;width:36px;height:36px;border:1.5px solid var(--line);border-radius:50%;background:none;color:var(--action);cursor:pointer}.warn-text{color:var(--warn)}.row-end{display:inline-flex;align-items:center;gap:8px}.row-button{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:var(--tap);padding:0;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.pill-count{min-width:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--warn-bg);color:var(--warn);font-size:12px;text-align:center}.small.block{display:block}.btn-ghost.danger{color:var(--danger)}.choices{flex-basis:100%}.search-field{display:flex;align-items:center;gap:8px;padding:0 16px;border:1.5px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--muted)}.search-field:focus-within{border-color:var(--action)}.search-field .search{flex:1;min-height:48px;padding:0;border:0;background:transparent}.search-field .search:focus-visible{outline:none}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font:inherit;font-size:14px;font-weight:600;min-height:var(--tap);padding:0 14px;border-radius:var(--radius-pill);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.chip.on{background:var(--action);color:var(--action-ink);border-color:var(--action)}.ranked{list-style:none;margin:0;padding:0}.rank{flex:none;width:24px;height:24px;border-radius:12px;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--meter-track);color:var(--muted)}.is-first .rank{background:var(--gradient);color:#fff}.ranked-main{flex:1;min-width:0;display:flex;flex-direction:column}.catalogue-list>li+li{border-top:1px solid var(--line)}.ingredient-row.is-empty .recipe-pick-name{color:var(--muted);font-weight:500}.stock-badge{flex:none;padding:2px 8px;border-radius:var(--radius-pill);background:var(--meter-track);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap}.sheet-section{display:grid;gap:6px;margin-top:8px}.product-line{display:flex;align-items:center;gap:2px;border-top:1px solid var(--line);background:var(--surface)}.product-line:first-child{border-top:0}.product-open{flex:1;min-width:0;display:flex;align-items:center;gap:8px;min-height:56px;padding:8px 0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.product-open .ico{margin-right:0}.product-sub{font-size:12px;line-height:1.35}.product-sub .ico{margin-right:4px}.price-warn{color:var(--warn);font-weight:600}.product-line .grip{padding:0 2px}.product-price{flex:none;margin-left:auto;margin-right:6px;display:flex;flex-direction:column;align-items:flex-end;font-weight:700;white-space:nowrap}.rise,.fall{font-size:12px;font-weight:700;white-space:nowrap}.rise{color:var(--danger)}.fall{color:var(--action)}.ingredient-row .rise{flex:none}.price-trend{display:grid;gap:2px;padding:12px}.price-trend-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.price-trend-head .num{font-size:22px;font-weight:800}.sparkline{width:100%;height:auto;margin-top:8px;overflow:visible}.sparkline-line{fill:none;stroke:var(--action);stroke-width:2;vector-effect:non-scaling-stroke}.sparkline-usual{stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.sparkline-dot{fill:var(--action)}.sparkline-up{fill:var(--danger)}.price-obs{min-height:44px}.state-btn{flex:none;width:34px;height:34px;margin-left:2px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}.state-btn.on{background:var(--action);border-color:var(--action);color:var(--action-ink)}.add-chip{justify-self:start;display:inline-flex;align-items:center;gap:6px}.add-product-head{display:flex;align-items:center;justify-content:space-between}.add-product-head .sub-title{margin:0}.sheet-box{border:1px solid var(--line);border-radius:var(--radius)}.box-row{display:flex;align-items:center;gap:10px;min-height:60px;padding:8px 12px}.box-row{flex-wrap:wrap}.box-controls{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-left:42px}.box-row+.box-row{border-top:1px solid var(--line)}.box-ic{flex:none;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--bg);color:var(--action)}.box-ic.is-done{background:var(--tile-1)}.box-text{flex:1;min-width:0;display:flex;flex-direction:column}.box-controls select{font-size:14px}.box-action{width:100%;border:0;border-radius:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.box-action>svg:last-child{flex:none;color:var(--muted)}.box-action.danger,.box-action.danger .box-ic{color:var(--danger)}.box-input{flex:1;min-width:0}.box-panel{display:grid;gap:10px;padding:12px}.box-panel p{margin:0}.box-panel-actions{display:flex;justify-content:flex-end;gap:8px}.pill-outline{flex:none;min-height:36px;padding:0 14px;border:1.5px solid var(--action);border-radius:var(--radius-pill);background:none;color:var(--action);font:inherit;font-weight:600;cursor:pointer}.product-form{display:grid;gap:12px}.product-form label{display:grid;gap:4px}.product-form .sub-title{margin:0}.product-form label,.product-form .pack{min-width:0}.product-form .pack input{width:0;min-width:0}.product-form .pack select{flex:none}.product-form-pair{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px}.product-form p{margin:0}.product-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.product-actions .btn-ghost{margin-left:auto}.catalogue-shortcuts .chip{display:inline-flex;align-items:center;gap:6px}.grip{cursor:grab;color:var(--muted);padding:0 6px;min-height:var(--tap);display:grid;place-items:center;touch-action:none;-webkit-user-select:none;user-select:none}.sortable-ghost{opacity:.4}.switch{flex:0 0 auto;position:relative;width:52px;height:var(--tap);padding:0;border:0;background:transparent;cursor:pointer}.switch:before{content:"";position:absolute;inset:8px 0;border-radius:var(--radius-pill);background:var(--meter-track);box-shadow:inset 0 0 0 1px var(--line);transition:background .15s}.switch[aria-checked=true]:before{background:var(--action);box-shadow:none}.switch-knob{position:absolute;top:11px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch[aria-checked=true] .switch-knob{transform:translate(24px)}.switch:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:var(--radius-pill)}.add-product,.rules,.manual-form{display:grid;gap:8px}.pack{display:flex;gap:8px}.pack input{flex:1}.still-planned{margin-top:8px}.stock-qty{min-width:4.5em;text-align:center;white-space:nowrap}.stock-actions{justify-content:flex-end;padding:0 0 4px}.stock-actions .icon-btn{color:var(--danger)}.sub-title{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--muted)}.unit-select{flex:0 0 auto}.line-name:disabled,span.line-name{cursor:default;opacity:1}.qty-button{background:none;border:0;font:inherit;font-weight:600;color:inherit;min-height:var(--tap);cursor:text;text-decoration:underline dotted var(--muted);text-underline-offset:4px}.inline-num{position:relative;display:inline-flex;align-items:center;gap:4px}.inline-num input{width:4.5em;text-align:right;font-variant-numeric:tabular-nums}.inline-num:not(.editing) input{position:absolute;inset:0;width:100%;min-height:0;padding:0;opacity:0;pointer-events:none}.line.saving .qty-button{opacity:.55;transition:opacity .15s}.menu-day{touch-action:pan-y}.menu-day>*+*{margin-top:12px}.week-strip{display:flex;margin:0 -6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;container-type:inline-size}.week-strip::-webkit-scrollbar{display:none}.strip-week{flex:none;display:flex;flex-direction:column;gap:6px}.strip-label{position:sticky;left:0;align-self:flex-start;padding:0 8px;font-size:12px;font-weight:700;line-height:18px;white-space:nowrap;color:var(--muted)}.strip-week.list .strip-label{color:var(--action)}.strip-days{display:flex;position:relative;isolation:isolate}.strip-week.list .strip-days:before{content:"";position:absolute;z-index:-1;top:17px;left:0;right:0;height:46px;background:var(--tile-1);border-radius:14px;pointer-events:none}.strip-week+.strip-week{box-shadow:inset 1.5px 0 0 var(--line)}.week-day{flex:none;width:calc(100cqw / 7);scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:66px;padding:2px 0;border:0;border-radius:14px;background:none;font:inherit;color:var(--muted);cursor:pointer}.week-abbr{font-size:11px;line-height:14px;font-weight:700;letter-spacing:.06em}.week-date{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-size:17px;font-weight:700;color:var(--ink)}.week-day:focus-visible{outline-offset:-2px}.week-day.past:not(.on){opacity:.45}.week-day.today .week-date{color:var(--action);box-shadow:inset 0 0 0 1.5px var(--action)}.week-day.on .week-abbr{color:var(--action)}.week-day.on .week-date{background:var(--action);color:var(--action-ink);box-shadow:none}.day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.day-title{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0}.day-heading{font-size:21px;font-weight:800;letter-spacing:-.02em;line-height:1.2;color:var(--action)}.badge{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:var(--radius-pill);background:var(--meter-track);color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap}.badge.invisible{visibility:hidden}.day-nav{flex:none;display:flex;gap:8px}.load-select{width:100%;min-height:var(--tap);border-radius:var(--radius-pill);padding:0 14px;font-size:15px;font-weight:600;text-align:center;text-align-last:center;color:var(--action);background:var(--surface);border-width:1.5px}.meals{list-style:none;margin:14px 0 0;padding:6px 0 0;border-top:1px solid var(--line)}.meal{--meal-change-w: var(--tap);position:relative;display:flex;align-items:center;padding:5px 0}.meal-main{flex:1;min-width:0;display:flex;align-items:center;gap:14px;min-height:64px;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}span.meal-main{cursor:default}.meal-thumb{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;font-size:28px;line-height:1}.meal-thumb.small{width:44px;height:44px;font-size:22px}.meal-thumb.empty{opacity:.45;filter:grayscale(1)}.meal-text{flex:1;min-width:0;display:flex;flex-direction:column;padding-right:calc(var(--meal-change-w) + 6px)}.meal-slot{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.meal-name{font-size:17px;font-weight:700;line-height:1.25}.meal-name.muted{font-weight:500}.meal-macros{margin-top:2px;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-change{position:absolute;right:0;top:50%;width:var(--meal-change-w);transform:translateY(-50%);color:var(--accent)}.gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.gauge{display:flex;flex-direction:column;gap:3px;font-size:13px;min-width:0}.gauge-track{display:block;height:6px;border-radius:3px;background:var(--meter-track);overflow:hidden}.gauge-track b{display:block;height:100%;border-radius:3px;transition:width .3s ease}.gauge-good{background:var(--gradient)}.gauge-warn{background:var(--warn)}.gauge-bad{background:var(--danger)}.gauge-text{color:var(--muted);line-height:1.3}.gauge-text-bad{color:var(--danger)}.unknown{margin-top:8px}.next-shopping{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:inherit;text-decoration:none}.next-shopping.saving strong{opacity:.55;transition:opacity .15s}.sheet{margin:auto auto 0;width:100%;max-width:560px;max-height:90vh;padding:0;border:0;border-radius:var(--radius-panel) var(--radius-panel) 0 0;background:var(--surface);color:var(--ink);overflow-y:auto;overscroll-behavior:contain}.sheet::backdrop{background:#0006}.sheet-body{padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-head h2{min-width:0;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.2}.sheet-head.centered{flex-direction:column-reverse;align-items:stretch;gap:4px}.sheet-head.centered .round-btn{align-self:flex-end}.sheet-head.centered h2{text-align:center;font-size:26px;line-height:1.15}.sheet-foot{position:sticky;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.sheet-foot .btn-pill{width:100%}.recipe-context{text-align:center}.meal-figures{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));margin:14px 0 0;text-align:center}.meal-figures>div+div{border-left:1.5px solid var(--line)}.meal-figures dd{margin:2px 0 0;font-size:24px;white-space:nowrap;font-weight:700;line-height:1.1}.meal-figure-unit{margin-left:3px;font-size:14px;font-weight:600;color:var(--muted)}.meal-figures-note{margin:6px 0 0;text-align:center}.meal-fat-note{margin-top:2px;font-size:12px}.recipe-meta{display:flex;justify-content:center;align-items:center;font-size:17px;font-weight:700}.recipe-meta>span{display:inline-flex;align-items:center;gap:6px;padding:0 14px}.recipe-meta>span+span{border-left:1.5px solid var(--line)}.tag-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.tag-chip{padding:5px 14px;border:1.5px solid var(--line);border-radius:var(--radius-pill);font-size:15px;font-weight:600}.tag-chip:first-letter{text-transform:uppercase}.recipe-section{margin:6px 0;font-size:20px;font-weight:800;letter-spacing:-.01em}.portions{width:100%;border-collapse:collapse;font-size:16px}.portions th{font-size:13px;font-weight:600;color:var(--muted);text-align:right;padding:0 0 2px 12px}.portions th:first-child,.portions td:first-child{text-align:left;padding-left:0}.portions td{text-align:right;padding:7px 0 7px 12px;border-top:1px solid var(--line);font-weight:600}.portions td.num{color:var(--action)}.portions tbody tr:first-child td{border-top:0}.capped{margin-top:6px}.slot-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.slot-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:76px;padding:8px 2px;border:1.5px solid var(--line);border-radius:16px;background:var(--surface);color:var(--muted);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.slot-card.on{background:var(--action);border-color:var(--action);color:var(--action-ink)}.add-meal-day{margin:0 0 12px}.add-meal-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.add-meal-cards .slot-card{min-height:96px;color:var(--ink);font-size:15px}.slot-card-hint{color:var(--muted);font-size:12px;font-weight:500}.add-meal-cards .slot-card.on,.slot-card.on .slot-card-hint{color:var(--action-ink)}.recipe-picks{list-style:none;margin:0;padding:0}.recipe-pick{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:6px 0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.recipe-pick-text{flex:1;min-width:0;display:flex;flex-direction:column}.recipe-pick-name{font-weight:600;line-height:1.3}.recipe-pick.on .recipe-pick-name,.recipe-pick-check{color:var(--action);font-weight:700}.recipe-pick>svg{flex:none;color:var(--muted)}.place-days{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px 16px;padding:0 16px 2px}.place-days .chip{flex:none}.steps{margin:0;padding-left:1.3em}.steps li+li{margin-top:6px}.picker-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-height:var(--tap);padding:4px 0;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.picker-item.on>span:first-child{color:var(--accent);font-weight:600}.picker-item.on>span:first-child:after{content:" \2713"}.rows.picker>li{display:block}.picker-group{margin-top:10px}.settings-group .sub-title{margin:0 0 6px 2px}.settings-box{list-style:none;margin:0;padding:0 12px;border-radius:12px;box-shadow:0 0 0 1px var(--line)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-top:1px solid var(--line)}.setting-row:first-child{border-top:0}.notif-device{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.setting-control{flex:0 0 9.5rem;width:9.5rem;height:38px}.setting-text{flex:0 1 13rem;width:13rem;height:38px;min-height:38px;padding:0 10px}.unit-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.unit-input:focus-within{border-color:var(--accent)}.unit-input input{flex:1;width:0;min-height:0;height:100%;border:0;background:transparent;padding:0 6px 0 10px;text-align:right;font-variant-numeric:tabular-nums}.unit-input input:focus-visible{outline:none}.unit-input .suffix{flex:0 0 3em;padding-right:10px;font-size:14px}.setting-stepper{flex:0 0 auto}.setting-stepper .step{width:44px;min-height:44px;font-size:24px}.setting-stepper .step:disabled{opacity:.35;cursor:default}.segmented{display:flex;padding:2px;border-radius:10px;background:var(--meter-track)}.segmented button{flex:1;font:inherit;font-weight:600;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.segmented button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.settings-box.rows>li{padding:0}.settings-box .picker-item{flex-direction:row;align-items:center;justify-content:space-between;min-height:48px}.settings-box .picker-item.on>span:first-child:after{content:none}.settings-box .picker-item.on:after{content:"\2713";color:var(--accent);font-weight:600}.icon{flex:none;display:block}.screen{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.screen-head{position:sticky;top:0;z-index:3;background:var(--bg);padding:calc(10px + env(safe-area-inset-top)) 16px 14px}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;height:var(--tap);max-width:560px;margin:0 auto}.top-home,.top-settings{border-color:transparent;text-decoration:none}.top-home.on{color:var(--action)}.top-context{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%;height:var(--tap);padding:0 18px 0 6px;border-radius:var(--radius-pill);background:var(--panel);font-size:18px;font-weight:700;white-space:nowrap}.top-context-name{min-width:3em;overflow:hidden;text-overflow:ellipsis}.top-context-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--bg);color:var(--muted)}.screen-sub{height:var(--tap);max-width:560px;margin:12px auto 0}.panel{flex:1;width:100%;max-width:560px;margin:0 auto;background:var(--panel);border-radius:var(--radius-panel) var(--radius-panel) 0 0;padding:22px 16px calc(120px + env(safe-area-inset-bottom))}.panel:has(.fab){padding-bottom:calc(184px + env(safe-area-inset-bottom))}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-title{min-width:0}.screen-title{font-size:30px;font-weight:800;letter-spacing:-.025em;line-height:1.1;min-width:0}.panel-actions{display:flex;gap:8px}.pills{display:flex;gap:8px;margin:-4px;padding:4px;overflow-x:auto;scrollbar-width:none}.pills::-webkit-scrollbar{display:none}.pill{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 18px;border-radius:var(--radius-pill);background:var(--panel);color:var(--ink);font-weight:600;text-decoration:none;white-space:nowrap}.pill.active{background:var(--action);color:var(--action-ink)}.round-btn{flex:none;display:grid;place-items:center;width:var(--tap);height:var(--tap);padding:0;border:1.5px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink);cursor:pointer}.btn-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:var(--radius-pill)}.fab{position:fixed;right:max(16px,calc(50% - 264px));bottom:calc(96px + env(safe-area-inset-bottom));z-index:2;display:grid;place-items:center;width:60px;height:60px;padding:0;border:0;border-radius:50%;background:var(--action);color:var(--action-ink);box-shadow:var(--shadow-float);cursor:pointer}.empty{text-align:center;padding:40px 8px}.empty-emoji{font-size:72px;line-height:1;margin-bottom:18px}.empty-title{font-size:24px;font-weight:800;letter-spacing:-.02em}.empty-text{color:var(--muted);max-width:32ch;margin:8px auto 22px}.home-date{padding:0 4px;font-size:clamp(22px,7.4vw,28px);font-weight:800;letter-spacing:-.03em;line-height:var(--tap);color:var(--action);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-line{margin-top:4px;font-size:15px;font-weight:600;color:var(--muted)}.home-line-part{white-space:nowrap}.home-meals{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:10px}.home-meal{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 12px 10px 16px;border-radius:var(--radius);background:var(--bg);color:var(--ink);text-decoration:none}.home-meal-slot{flex:none;width:40px;font-size:14px;font-weight:600;color:var(--muted)}.home-meal-name{flex:1;min-width:0;font-size:17px;font-weight:700;line-height:1.25}.home-meal-name.muted{font-weight:500}.home-meal .icon{color:var(--muted)}.home-meal-blank{flex:1;max-width:55%;height:14px;border-radius:7px;background:var(--line)}.home-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.home-tile{position:relative;overflow:hidden;aspect-ratio:1;display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:22px;color:var(--ink);text-decoration:none}.home-tile-title{font-size:21px;font-weight:800;letter-spacing:-.02em;line-height:1.15}.home-tile-value{position:relative;z-index:1;font-size:15px;font-weight:600;line-height:1.3;opacity:.75}.home-tile-note{position:relative;z-index:1;font-size:13px;line-height:1.3;color:var(--muted)}.home-tile-value.over{color:var(--danger);opacity:1}.home-tile-art{position:absolute;right:-6px;bottom:-10px;font-size:80px;line-height:1}.home-tile-art .icon{color:var(--action);stroke-width:1.25}.floating-tabs{position:fixed;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:3;max-width:528px;margin:0 auto;display:flex;justify-content:space-around;padding:6px 8px;border-radius:32px;background:var(--panel);box-shadow:var(--shadow-float)}.floating-tabs a{flex:1;display:grid;place-items:center;min-height:56px;color:var(--muted);border-radius:24px}.floating-tabs a.active{color:var(--action)}.floating-tabs .icon{stroke-width:1.75}.floating-tabs a.active .icon{stroke-width:2.25}
