:root{--ground:#f2f5f2;--surface:#fff;--raised:#f5f7f5;--active:#e2e7e2;--border:#e6e6e6;--rule:#f0f0f0;--control:#d4d4d4;--text:#0a0a0a;--muted:#5e625e;--faint:#6b6b6b;--accent:#141414;--primary:#141414;--primary-ink:#fff;--positive:#2e7d32;--negative:#c4242a;--warning:#92400e;--hue:#1d5fbf;--macro-protein:#1d5fbf;--macro-protein-ink:#fff;--macro-carbs:#eb6834;--macro-carbs-ink:#0b0b0b;--macro-fat:#1baf7a;--macro-fat-ink:#0b0b0b;--pill-neutral-bg:#eee;--pill-neutral-ink:#3d3d3d;--font:var(--font-geist), Inter, system-ui, sans-serif;--fs-xs:11px;--fs-small:12px;--fs-sub:13px;--fs-body:14px;--fs-input:14px;--fs-section:16px;--fs-h3:18px;--fs-h2:20px;--fs-figure:22px;--fs-title:24px;--fs-kpi:30px;--sidebar-width:256px;--pad:32px;--gap:12px;--card-pad:20px;--radius-card:8px;--radius-control:6px;--control-height:36px;--row-height:44px;--nav-row:32px}body{font-family:var(--font)}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.92em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.money{font-weight:700}.app{grid-template-columns:var(--sidebar-width) minmax(0, 1fr)}.main{flex-direction:column;min-width:0;display:flex}.sidebar{gap:2px;padding:20px 12px 16px}.brand{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 8px 22px;display:grid}.brand-link{border-radius:6px;justify-self:start;display:inline-flex}.brand-link:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.brand .menu-close{grid-area:1/2}.nav{gap:2px;display:grid}.nav-item{height:var(--nav-row)}.menu-close{margin-left:auto;display:none}.topbar{display:none}.title-row{align-items:flex-start;margin-bottom:20px}.title-row h1{font-weight:600}.title-row .sub{max-width:72ch}.actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.actions .stamp{margin-right:4px}.btn[disabled]{cursor:progress;opacity:.75}.notice{margin-bottom:var(--gap);border-radius:var(--radius-card);color:var(--warning);background:#fffbeb;border:1px solid #fde68a;gap:4px;padding:12px 16px;display:grid}.notice.error{color:#831c1e;background:#ffedea;border-color:#f5c2c0}.s12{grid-column:span 12}.s7{grid-column:span 7}.s6{grid-column:span 6}.s5{grid-column:span 5}.s4{grid-column:span 4}.stack{gap:var(--gap);display:grid}.week{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;display:grid}.lead-label{color:var(--muted)}.lead-value{font-size:var(--fs-kpi);letter-spacing:-.01em;margin-top:6px;font-weight:700;line-height:1.15}.lead-value small{color:var(--muted);margin-right:4px;font-size:.55em;font-weight:400}.lead-sub{color:var(--muted);margin-top:6px}.kv{margin-top:20px;display:grid}.kv-row{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:12px;min-height:32px;padding:6px 0;display:grid}.kv-row dt{color:var(--muted)}.kv-row dd{text-align:right;font-variant-numeric:tabular-nums}.kv-row .target{color:var(--muted);min-width:92px}.kv-row .bad{color:var(--negative)}.meal-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.meal-head h2{font-size:var(--fs-section);font-weight:600}.meal-head .meta{color:var(--muted);font-size:var(--fs-small)}.items{display:grid}.item{border-top:1px solid var(--rule);grid-template-columns:84px minmax(0,1fr) auto;align-items:baseline;gap:12px;min-height:52px;padding:8px 0;display:grid}.item .slot{color:var(--muted);font-size:var(--fs-small)}.item .what{min-width:0}.item .amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.item .amount .sub,.what .sub{color:var(--muted);font-size:var(--fs-small);line-height:16px;display:block}.item.none .what{color:var(--muted)}.meal-total{border-top:1px solid var(--border);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding-top:10px;display:flex}.meal-total b{color:var(--text);font-weight:500}.product-btn{text-align:left;cursor:pointer;color:var(--text);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:500;display:inline}.product-btn:hover{text-decoration:underline}.store-tag{color:var(--muted);font-weight:400}.table-wrap{margin:0 calc(var(--card-pad) * -1);padding:0 calc(var(--card-pad) - 12px)}td.n,th.n{text-align:right;white-space:nowrap}td .cell-name{font-weight:500}.day-name{white-space:nowrap;font-weight:500}tr.flag td.k{color:var(--negative)}.pop-wrap{display:inline;position:relative}.popover{z-index:30;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:320px;color:var(--text);text-align:left;white-space:normal;padding:16px;font-weight:400;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #0000001f}.popover h3{font-size:var(--fs-body);font-weight:600;line-height:20px}.popover .why{color:var(--muted);margin-top:8px}.popover dl{font-variant-numeric:tabular-nums;grid-template-columns:1fr auto;gap:4px 12px;margin-top:12px;display:grid}.popover dt{color:var(--muted)}.popover dd{text-align:right}.popover .pop-actions{gap:8px;margin-top:14px;display:flex}.shop-row{border-top:1px solid var(--rule);cursor:pointer;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:56px;padding:8px 0;display:grid}.shop-row input{width:18px;height:18px;accent-color:var(--text);cursor:pointer}.shop-row.done .what .name{color:var(--muted);text-decoration:line-through}.shop-row .qty,.shop-row .price{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.shop-row .qty .sub,.shop-row .price .sub{color:var(--muted);font-size:var(--fs-small);line-height:16px;display:block}.filters .input{height:var(--control-height)}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding-top:14px;display:flex}.settings{display:grid;container:settings/inline-size}.set-row{border-top:1px solid var(--border);grid-template-columns:clamp(300px,36%,520px) minmax(0,1fr);align-items:start;gap:40px;padding:32px 0;display:grid}.set-row:first-child{border-top:0;padding-top:4px}.set-label h2{font-size:var(--fs-section);margin-top:6px;font-weight:500}.set-label p{color:var(--muted);margin-top:6px}.set-panel{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--border);min-width:0;padding:20px;container:panel/inline-size}@container settings (max-width:1315px){.set-row{grid-template-columns:minmax(0,1fr);gap:16px}}.settings .field .segmented{width:100%;display:flex}.settings .field .segmented button{text-wrap:balance;flex:1 1 0;min-width:0;height:auto;min-height:30px;padding:5px 8px;line-height:1.25}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.fields .wide,.fields .half{grid-column:1/-1}@container panel (min-width:760px){.fields{grid-template-columns:repeat(4,minmax(0,1fr))}.fields .half{grid-column:span 2}}@container panel (max-width:440px){.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.fields .many{grid-column:1/-1}.split-fields{grid-template-columns:minmax(0,1fr)}.settings .field .segmented button{font-size:var(--fs-sub);padding-left:4px;padding-right:4px}}@container panel (min-width:441px){.fields .input.num{max-width:240px}.fields .segmented,.fields .select-btn{max-width:400px}}.field label,.field .label{font-weight:500}.input{width:100%;height:40px}.choice-row{flex-wrap:wrap;gap:8px 16px;display:flex}.check{cursor:pointer;align-items:center;gap:8px;min-height:32px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--text)}.summary{margin-top:16px;display:grid}.summary div{border-top:1px solid var(--rule);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;display:flex}.summary dt{color:var(--muted)}.summary dd{white-space:nowrap;flex:none}.summary .big{font-size:var(--fs-h2);font-weight:500}.saved{color:var(--muted);font-size:var(--fs-small)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--control);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;height:28px;padding:0 10px;display:inline-flex}.chip-btn:hover{background:var(--raised)}@media (max-width:1100px){.week{grid-template-columns:minmax(0,1fr);gap:20px}.s4{grid-column:span 12}}@media (max-width:860px){.app{grid-template-columns:minmax(0,1fr)}.topbar{z-index:10;background:var(--ground);border-bottom:1px solid var(--border);align-items:center;gap:8px;height:48px;padding:0 8px;display:flex;position:sticky;top:0}.topbar-mark{display:inline-flex}.topbar-title{font-weight:600}.menu-close{display:inline-flex}.sidebar{padding:12px 12px 24px}.sidebar .nav-item{height:44px}.canvas{padding:20px 16px 40px}.title-row{flex-direction:column;align-items:stretch}.actions{justify-content:flex-start}.set-row{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 0}.filters .search{width:100%}.item{grid-template-columns:minmax(0,1fr) auto}.item .slot{grid-column:1/-1}.popover{width:auto;position:fixed;inset:auto 12px 12px}}.bad-cell{color:var(--negative)}.total-row td{border-top:1px solid var(--border);font-weight:500}.first-run :is(h1,h2){font-size:var(--fs-section);margin-bottom:6px;font-weight:600}.kpi-value.lead-kpi{font-size:var(--fs-kpi)}.kpis .kpi-value{font-size:var(--fs-figure)}.kpis .kpi-value small{margin:0 2px 0 0}.catalogue-list{display:none}@media (max-width:860px){.catalogue-table{display:none}.catalogue-list{display:grid}}.sort-btn{color:inherit;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:0}.sort-btn:hover{color:var(--text)}.sort-btn.active{color:var(--text);font-weight:500}.field{align-content:start}.item{align-items:start}.item .slot{line-height:20px}.popover{width:360px}.popover dl{grid-template-columns:max-content minmax(0,1fr)}.popover dt{white-space:nowrap}.pop-source{color:var(--muted);font-size:var(--fs-small);margin-top:10px;line-height:16px}.qty-inline{display:none}.shop-row:hover{background:var(--raised)}@media (max-width:860px){.shop-row{grid-template-columns:24px minmax(0,1fr) auto}.shop-row .qty{display:none}.qty-inline{display:inline}}td .sub,.item .what .sub,.shop-row .sub{font-size:var(--fs-sub);line-height:18px}.switch-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.switch-row .label{font-weight:500;display:block}.switch-row .hint{color:var(--muted);font-size:var(--fs-small);margin-top:2px;display:block}.switch-row .switch{flex:none;margin-top:2px}.thumb{object-fit:contain;background:#fff;border-radius:6px;flex:none;width:40px;height:40px;display:block}.empty-thumb{background:var(--raised);display:block}.item{grid-template-columns:84px 40px minmax(0,1fr) auto}.item.cat-item{grid-template-columns:40px minmax(0,1fr) auto}.shop-row{grid-template-columns:24px 40px minmax(0,1fr) auto auto}.name-cell{align-items:center;gap:12px;display:flex}.pop-head{align-items:flex-start;gap:12px;display:flex}.pop-head .thumb{width:72px;height:72px}@media (max-width:860px){.item{grid-template-columns:40px minmax(0,1fr) auto}.item .slot{grid-column:1/-1}.shop-row{grid-template-columns:24px 40px minmax(0,1fr) auto}}.notice.neutral{border-color:var(--border);background:var(--surface);color:var(--text)}.s8{grid-column:span 8}.catalogue-side{flex-direction:column;max-height:calc(100svh - 32px);display:flex;position:sticky;top:16px}.picker-controls{gap:8px;margin-bottom:8px;display:grid}.picker-controls .field{gap:6px}.picker-filters{grid-template-columns:1fr 1fr;gap:8px;display:grid}.picker-results{margin:0 calc(var(--card-pad) * -1);padding:0 var(--card-pad);min-height:0;overflow-y:auto}.cat-pick{border-top:1px solid var(--rule);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 0;display:grid}.cat-pick .sub{color:var(--muted);font-size:var(--fs-sub);line-height:18px;display:block}.add-btn{width:36px;font-size:var(--fs-h3);padding:0}.meal-editor.selected{border-color:var(--text)}.editor-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.editor-title{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.editor-title .grip{margin-left:-8px}.editor-title .title-input{margin-left:0}.title-input{border-radius:var(--radius-control);min-width:0;height:32px;font-size:var(--fs-section);background:0 0;border:1px solid #0000;flex:1;margin-left:-6px;padding:0 6px;font-weight:600}.title-input:hover{border-color:var(--control)}.title-input:focus{border-color:var(--text);outline:none}.day-toggles{background:var(--raised);border-radius:8px;padding:2px;display:inline-flex}.day-toggles button{min-width:36px;height:28px;color:var(--muted);cursor:pointer;font-size:var(--fs-small);background:0 0;border:0;border-radius:6px;padding:0 6px}.day-toggles button[aria-pressed=true]{background:var(--text);color:#fff}.edit-row{border-top:1px solid var(--rule);grid-template-columns:40px minmax(0,1fr) 112px 84px 36px;align-items:center;gap:10px;min-height:56px;padding:8px 0;display:grid}.edit-row .sub{color:var(--muted);font-size:var(--fs-sub);line-height:18px;display:block}.edit-row .grams{align-items:center;gap:6px;display:flex}.edit-row .price{text-align:right;white-space:nowrap}.remove{width:36px;font-size:var(--fs-h3);color:var(--muted);padding:0}.editor-actions{justify-content:space-between;gap:8px;margin-top:12px;display:flex}.danger{color:var(--negative)}@media (max-width:1100px){.s8{grid-column:span 12}.catalogue-side{grid-column:span 12;max-height:none;position:static}.picker-results{max-height:70svh}}@media (max-width:860px){.edit-row{grid-template-columns:40px minmax(0,1fr) auto}.edit-row .grams{grid-column:2}.edit-row .price{grid-area:2/3}.edit-row .remove{grid-area:1/3;justify-self:end}}.picker-results{display:block}.day-toggles button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:500}.day-toggles button[aria-pressed=false]{color:var(--faint);text-decoration:line-through}@media (max-width:860px){.editor-head .editor-title{flex-basis:100%}.day-toggles{justify-content:space-between;width:100%}.day-toggles button{flex:1;min-width:0}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#0e100e;--surface:#171917;--raised:#1f221f;--active:#272b27;--border:#2a2e2a;--rule:#222622;--control:#3f443f;--text:#f1f3f1;--muted:#aab0aa;--faint:#959b95;--accent:#f1f3f1;--primary:#f1f3f1;--primary-ink:#0e100e;--positive:#3fc07a;--negative:#f0717f;--warning:#e5a93b;--hue:#5b9bff;--macro-protein:#3987e5;--macro-protein-ink:#0b0b0b;--macro-carbs:#d95926;--macro-carbs-ink:#0b0b0b;--macro-fat:#199e70;--macro-fat-ink:#0b0b0b;--pill-positive-bg:#172a1d;--pill-positive-ink:#3fc07a;--pill-negative-bg:#2c1a20;--pill-negative-ink:#f0717f;--pill-warning-bg:#2b2414;--pill-warning-ink:#e5a93b;--pill-neutral-bg:#272b27;--pill-neutral-ink:#f1f3f1}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark] .notice{color:var(--warning);background:#241e12;border-color:#5a4720}:root[data-theme=dark] .notice.error{color:var(--negative);background:#2a1719;border-color:#5c2a30}:root[data-theme=dark] .notice.neutral{border-color:var(--border);background:var(--surface);color:var(--text)}:root[data-theme=dark] .switch:checked:after{background:var(--ground)}:root[data-theme=dark] .popover{border:1px solid var(--border);box-shadow:0 16px 48px #0000008c}:root[data-theme=dark] .thumb:not(.empty-thumb){filter:brightness(.92);background:#fff}.theme-switch{background:var(--seg-track);border-radius:9px;gap:2px;margin:0 8px 12px;padding:3px;display:flex;position:relative}.theme-thumb{background:var(--seg-on);width:calc(50% - 4px);box-shadow:var(--seg-shadow);border-radius:6px;transition:transform .48s cubic-bezier(.32,.72,0,1);position:absolute;top:3px;bottom:3px;left:3px}:root[data-theme=light] .theme-thumb{transform:translate(calc(100% + 2px))}@media (prefers-reduced-motion:no-preference){html.theme-anim .theme-switch .theme-thumb{transition:transform .48s cubic-bezier(.32,.72,0,1)!important}}.theme-opt{height:32px;color:var(--muted);cursor:pointer;transition:color var(--t-ui) ease;background:0 0;border:0;border-radius:6px;flex:1;place-items:center;padding:0;display:grid;position:relative}.theme-opt:hover,:root[data-theme=dark] .theme-opt.moon,:root[data-theme=light] .theme-opt.sun{color:var(--text)}.theme-opt:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.lang-switch{background:var(--seg-track);border-radius:9px;grid-template-columns:repeat(4,1fr);gap:2px;margin:0 8px 12px;padding:3px;display:grid;position:relative}.lang-thumb{background:var(--seg-on);width:calc(25% - 3px);box-shadow:var(--seg-shadow);pointer-events:none;border-radius:6px;transition:transform .48s cubic-bezier(.32,.72,0,1);position:absolute;top:3px;bottom:3px;left:3px}:root[lang=de-CH] .lang-thumb{transform:translate(calc(100% + 2px))}:root[lang=fr-CH] .lang-thumb{transform:translate(calc(200% + 4px))}:root[lang=en-CH] .lang-thumb{transform:translate(calc(300% + 6px))}@media (prefers-reduced-motion:reduce){.lang-thumb{transition:none}}.lang-switch button{height:28px;color:var(--muted);font:inherit;font-size:var(--fs-small);letter-spacing:.02em;cursor:pointer;transition:color var(--t-ui) ease;background:0 0;border:0;border-radius:6px;padding:0;font-weight:500;position:relative}.lang-switch button:hover,:root[lang=it-CH] .lang-switch button[lang=it],:root[lang=de-CH] .lang-switch button[lang=de],:root[lang=fr-CH] .lang-switch button[lang=fr],:root[lang=en-CH] .lang-switch button[lang=en]{color:var(--text)}.lang-switch button:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.lang-switch.lang-wide{max-width:320px;margin:0}.lang-switch.lang-wide button{height:32px}.theme-opt svg{width:18px;height:18px}.theme-opt .ic *{transform-origin:50%}@keyframes ic-sun-rays{0%{opacity:0;transform:rotate(-120deg)scale(.4)}}@keyframes ic-sun-core{0%{transform:scale(.5)}60%{transform:scale(1.18)}to{transform:none}}@keyframes ic-moon-rock{0%{opacity:.3;transform:rotate(-60deg)scale(.7)}55%{opacity:1;transform:rotate(14deg)scale(1.05)}80%{transform:rotate(-5deg)}to{transform:none}}@keyframes ic-twinkle{0%{opacity:0;transform:scale(0)rotate(-90deg)}60%{opacity:1;transform:scale(1.4)rotate(15deg)}to{transform:none}}:root[data-theme=light] .theme-opt.sun .i-rays{animation:ic-sun-rays .64s var(--ease-out)}:root[data-theme=light] .theme-opt.sun .i-core{animation:ic-sun-core .46s var(--ease-out)}:root[data-theme=dark] .theme-opt.moon .i-moon{animation:ic-moon-rock .68s var(--ease-out)}:root[data-theme=dark] .theme-opt.moon .i-star{animation:ic-twinkle .46s var(--ease-out) .26s backwards}.nav{grid-template-columns:minmax(0,1fr);position:relative}.nav-item{z-index:1;position:relative}.nav-thumb{height:var(--nav-h,0px);transform:translateY(var(--nav-y,0px));background:var(--active);opacity:0;pointer-events:none;border-radius:8px;position:absolute;top:0;left:0;right:0}.nav[data-ready] .nav-thumb{opacity:var(--nav-o,0);transition:transform .42s cubic-bezier(.32, .72, 0, 1), height .42s cubic-bezier(.32, .72, 0, 1), opacity var(--t-ui) ease}.nav[data-ready] .nav-item[aria-current=page]{background:0 0}.nav-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;transition:opacity .22s;overflow:hidden}.brand-link{min-width:max-content;position:relative}.logo{clip-path:inset(0);transition:transform .34s var(--ease-out), clip-path .34s var(--ease-out);flex:none}.logo img{max-width:none}.nav-toggle{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:8px}.nav-toggle .i-chev{transform-origin:50%;transition:transform .34s var(--ease-out)}@media (max-width:860px){.nav-toggle{display:none}}@media (min-width:861px){.app{transition:grid-template-columns .34s var(--ease-out)}.sidebar{transition:padding .34s var(--ease-out);overflow-x:hidden}.canvas{transition:padding .34s var(--ease-out)}.nav-item{transition:background-color var(--t-hover) ease, color var(--t-hover) ease, padding .34s var(--ease-out), height .34s var(--ease-out)}.nav-item svg{transition:width .34s var(--ease-out), height .34s var(--ease-out)}:root[data-nav=compact]{--sidebar-width:80px}:root[data-nav=compact] .sidebar{padding-left:16px;padding-right:16px}:root[data-nav=compact] .nav-item{height:40px;padding-left:15px}:root[data-nav=compact] .nav-item svg{width:18px;height:18px}:root[data-nav=compact] .canvas{padding-left:24px;padding-right:24px}:root[data-nav=compact] .nav-label{opacity:0}:root[data-nav=compact] .sidebar .logo{clip-path:inset(0 0 0 86.56%);transform:translate(-167px,-4px)}:root[data-nav=compact] .brand-link{width:32px;min-width:0}:root[data-nav=compact] .nav-pending{display:none}:root[data-nav=compact] .nav-item{overflow:hidden}:root[data-nav=compact] .nav-toggle .i-chev{transform:rotate(180deg)}:root[data-nav=compact] .theme-switch{margin:0 -8px 12px}:root[data-nav=compact] .theme-opt svg{width:17px;height:17px}}:root[data-theme=dark] .segmented button[aria-pressed=true],:root[data-theme=dark] .day-toggles button[aria-pressed=true]{color:var(--text);background:#363c36}.catalogue-table td{vertical-align:middle}:root{--gap:16px;--card-pad:24px;--control-height:36px;--radius-control:6px;--field:#fff;--btn:#ececec;--btn-hover:#e2e2e2;--control-hover:#b9bdb9;--focus-ring:color-mix(in srgb, var(--hue) 28%, transparent);--seg-track:#ebeeeb;--seg-on:#fff;--seg-shadow:0 1px 2px #00000014;--chevron-select:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5' fill='none' stroke='%235e625e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--search-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%236b6b6b' stroke-width='1.5'/%3E%3Cpath d='m10.5 10.5 3 3' stroke='%236b6b6b' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme=dark]{--field:#111311;--btn:#252925;--btn-hover:#2f342f;--control:#353a35;--control-hover:#4a504a;--seg-track:#1c1f1c;--seg-on:#353a35;--seg-shadow:none;--chevron-select:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5' fill='none' stroke='%23aab0aa' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--search-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.5' fill='none' stroke='%23959b95' stroke-width='1.5'/%3E%3Cpath d='m10.5 10.5 3 3' stroke='%23959b95' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");--check-mark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='%230e100e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.btn{height:var(--control-height);border-radius:var(--radius-control);background:var(--btn);color:var(--text);white-space:nowrap;transition:background-color var(--t-hover) ease, transform var(--t-press) var(--ease-out), opacity var(--t-hover) ease;border:1px solid #0000;gap:8px;padding:0 14px;font-weight:500}.btn svg{flex:none;width:16px;height:16px}.btn:hover{background:var(--btn-hover)}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.primary:hover{background:color-mix(in srgb, var(--primary) 88%, var(--ground))}.btn.ghost{color:var(--muted);background:0 0}.btn.ghost:hover{background:var(--btn);color:var(--text)}.btn.ghost.danger{color:var(--negative)}.btn.ghost.danger:hover{background:color-mix(in srgb, var(--negative) 12%, transparent)}.btn.icon{width:var(--control-height);padding:0}.btn.sm{height:30px;font-size:var(--fs-sub);padding:0 10px}.btn.icon.sm{width:30px;padding:0}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.btn.busy[disabled]{opacity:.8;cursor:progress}.btn:focus-visible,.input:focus-visible,.segmented button:focus-visible,.day-toggles button:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.spin{animation:.9s linear infinite ds-spin}@keyframes ds-spin{to{transform:rotate(360deg)}}.input,select.input{font-size:var(--fs-input);height:var(--control-height);border:1px solid var(--control);border-radius:var(--radius-control);background-color:var(--field);color:var(--text);transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;padding:0 12px}.input:hover{border-color:var(--control-hover)}.input:focus{border-color:color-mix(in srgb, var(--hue) 70%, var(--control));box-shadow:0 0 0 3px var(--focus-ring);outline:none}.settings .input{height:40px}select.input{appearance:none;background-image:var(--chevron-select);cursor:pointer;text-overflow:ellipsis;background-position:right 10px center;background-repeat:no-repeat;background-size:16px 16px;padding-right:36px}select.input option{background:var(--surface);color:var(--text)}input[type=search].input{background-image:var(--search-icon);background-position:12px;background-repeat:no-repeat;background-size:16px 16px;padding-left:36px}input[type=search]::-webkit-search-cancel-button{cursor:pointer}input[type=number].input{-moz-appearance:textfield;font-variant-numeric:tabular-nums}input[type=number].input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=checkbox]:not(.switch){appearance:none;border:1.5px solid var(--control-hover);background:var(--field) center / 14px 14px no-repeat;cursor:pointer;width:18px;height:18px;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease;border-radius:5px;flex:none;margin:0}input[type=checkbox]:not(.switch):hover{border-color:var(--muted)}input[type=checkbox]:not(.switch):checked{border-color:var(--text);background-color:var(--text);background-image:var(--check-mark)}input[type=checkbox]:not(.switch):focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.shop-row input[type=checkbox]{width:20px;height:20px}.segmented,.day-toggles{background:var(--seg-track);border-radius:9px;gap:2px;padding:3px}.segmented button,.day-toggles button{height:30px;color:var(--muted);cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease;background:0 0;border:0;border-radius:6px;padding:0 12px;font-weight:500}.segmented button:hover,.day-toggles button:hover{color:var(--text)}.segmented button[aria-pressed=true],.day-toggles button[aria-pressed=true],:root[data-theme=dark] .segmented button[aria-pressed=true],:root[data-theme=dark] .day-toggles button[aria-pressed=true]{background:var(--seg-on);color:var(--text);box-shadow:var(--seg-shadow)}.day-toggles button{min-width:38px;font-size:var(--fs-sub);padding:0 6px}.segmented.slide{position:relative}.segmented.slide button{z-index:1;position:relative}.seg-thumb{width:var(--thumb-w,0px);transform:translateX(var(--thumb-x,0px));background:var(--seg-on);box-shadow:var(--seg-shadow);opacity:0;pointer-events:none;border-radius:6px;position:absolute;top:3px;bottom:3px;left:0}.segmented.slide[data-ready] .seg-thumb{opacity:1;transition:transform .42s cubic-bezier(.32,.72,0,1),width .42s cubic-bezier(.32,.72,0,1)}:root .segmented.slide[data-ready] button[aria-pressed=true]{box-shadow:none;background:0 0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fields .sep{border-top:1px solid var(--rule);padding-top:16px}.label-count{font-weight:400}.toggle-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.toggle-chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:40px;transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease, box-shadow var(--t-hover) ease;border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-weight:500;display:flex;position:relative}.toggle-chip:hover{background:var(--raised)}.toggle-chip:has(input:checked){border-color:var(--text);background:var(--raised);box-shadow:inset 0 0 0 1px var(--text)}.toggle-chip:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.toggle-box{border:1.5px solid var(--control-hover);color:#0000;width:18px;height:18px;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease, color var(--t-hover) ease;border-radius:5px;flex:none;place-items:center;display:grid}.toggle-box svg{stroke-width:2.4px;width:12px;height:12px}.toggle-chip:has(input:checked) .toggle-box{border-color:var(--text);background:var(--text);color:var(--surface);animation:ds-check .22s var(--ease-out)}.add-word{gap:8px;display:flex}.add-word .btn{flex:none;height:40px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--border);background:var(--raised);height:30px;animation:ds-pop .16s var(--ease-out);border-radius:999px;align-items:center;gap:2px;padding:0 4px 0 12px;font-weight:500;display:inline-flex}.tag button{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.tag button:hover{background:var(--active);color:var(--text)}.tag button:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.tag svg{width:12px;height:12px}.pick-list{margin:0;padding:0;list-style:none}.pick-list li{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:4px 0;display:flex}.pick-list li:first-child{border-top:0}.pick-name{overflow-wrap:anywhere;min-width:0}.empty-note{border:1px dashed var(--border);color:var(--muted);font-size:var(--fs-small);border-radius:8px;margin:0;padding:10px 12px}.reveal{opacity:0;transition:grid-template-rows .38s var(--ease-out), opacity .22s ease;grid-template-rows:0fr;display:grid}.reveal.open{opacity:1;transition:grid-template-rows .38s var(--ease-out), opacity .3s ease 80ms;grid-template-rows:1fr}.reveal>*{min-height:0;margin:-4px;padding:4px;overflow:hidden}.reveal>*>*{transition:transform .38s var(--ease-out);transform:translateY(-6px)}.reveal.open>*>*{transform:none}.day-toggles button[aria-pressed=false]{color:var(--faint);opacity:.7;text-decoration:none}:root[data-theme=dark] .segmented{background:var(--seg-track)}.canvas{padding:32px 40px 64px}.sidebar{padding:20px 14px 18px}.nav{gap:2px}.nav-item{border-radius:8px;height:36px;padding:0 10px;font-weight:450}.nav-item[aria-current=page]{font-weight:500}.title-row{gap:24px;margin-bottom:24px}.title-row .sub{margin-top:6px}.grid,.stack{gap:var(--gap)}.panel{padding:var(--card-pad)}.notice{margin-bottom:var(--gap);border-radius:8px;padding:12px 16px}.meal-head{margin-bottom:12px}.meal-head h2{font-size:var(--fs-section)}.item{min-height:60px;padding:10px 0}.thumb{border-radius:8px}.meal-total{padding-top:12px}.kv-row{min-height:36px}th{height:40px}td{padding-top:12px;padding-bottom:12px}.week{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px}.chart-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.chart-head h3{font-weight:600}.chart-head .meta{color:var(--muted);font-size:var(--fs-small)}.m-protein{--m:var(--macro-protein);--m-ink:var(--macro-protein-ink)}.m-carbs{--m:var(--macro-carbs);--m-ink:var(--macro-carbs-ink)}.m-fat{--m:var(--macro-fat);--m-ink:var(--macro-fat-ink)}.swatch{background:var(--m);border-radius:2px;flex:none;width:10px;height:10px}.macro-bar{gap:2px;height:28px;display:flex}.macro-seg{background:var(--m);min-width:0;color:var(--m-ink);font-size:var(--fs-sub);text-indent:8px;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:4px;flex:1 1 0;font-weight:500;line-height:28px;display:block}.macro-caption{color:var(--muted);font-size:var(--fs-small);margin-top:8px}.macro-rows{gap:18px;margin:22px 0 0;padding:0;list-style:none;display:grid}.macro-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;display:grid}.macro-name{align-items:center;gap:8px;display:inline-flex}.macro-value{text-align:right;font-weight:500}.macro-track{grid-column:1/-1;height:18px;position:relative}.macro-rail,.macro-band,.macro-fill{border-radius:4px;height:8px;position:absolute;top:5px}.macro-rail{background:color-mix(in srgb, var(--m) 14%, var(--surface));left:0;right:0}.macro-band{background:color-mix(in srgb, var(--m) 34%, var(--surface))}.macro-band.open{background:linear-gradient(to right, color-mix(in srgb, var(--m) 34%, var(--surface)) 0%, color-mix(in srgb, var(--m) 34%, var(--surface)) 55%, color-mix(in srgb, var(--m) 14%, var(--surface)) 100%)}.macro-fill{background:var(--m);left:0}.macro-tick{background:var(--text);width:2px;box-shadow:0 0 0 2px var(--surface);pointer-events:none;border-radius:1px;margin-left:-1px;position:absolute;top:0;bottom:0}.macro-target{color:var(--muted);font-size:var(--fs-small);grid-column:1/-1;justify-content:space-between;gap:12px;display:flex}.macro-target .bad{color:var(--negative)}@media (max-width:1100px){.week{grid-template-columns:minmax(0,1fr);gap:28px}.canvas{padding:28px 24px 56px}}.popover{border-radius:10px;width:380px;padding:18px}.popover dl{border-top:1px solid var(--rule);gap:6px 16px;margin-top:14px;padding-top:12px}.popover .pop-actions{flex-wrap:wrap;margin-top:16px}.edit-row .grams .input{text-align:right;width:76px;height:34px}.remove{color:var(--muted)}.meal-editor.selected{border-color:color-mix(in srgb, var(--text) 55%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 25%, transparent)}.title-input{font-size:var(--fs-section)}.add-btn{width:32px;height:32px;padding:0}@media (max-width:860px){.canvas{padding:20px 16px 48px}.panel{padding:18px}.btn{height:40px}.btn.sm{height:34px}.input,select.input{height:40px}}.target-note{height:30px;color:var(--muted);font-size:var(--fs-sub);align-items:center;display:inline-flex}.editor-actions{align-items:center;margin-top:14px}@media (max-width:860px){.title-row .actions{justify-content:stretch;width:100%}.title-row .actions .stamp,.title-row .actions .saved{flex-basis:100%;margin:0}.title-row .actions .btn,.title-row .actions .segmented{flex:1 1 0;justify-content:center}}.select{min-width:0;display:block;position:relative}.select.auto{display:inline-block}.select-btn{text-align:left;cursor:pointer;background-image:var(--chevron-select);width:100%;font:inherit;background-position:right 10px center;background-repeat:no-repeat;background-size:16px 16px;align-items:center;gap:6px;padding-right:34px;display:flex}.select.auto .select-btn{width:auto;min-width:150px}.select-btn[aria-expanded=true]{border-color:color-mix(in srgb, var(--hue) 70%, var(--control));box-shadow:0 0 0 3px var(--focus-ring)}.select-prefix{color:var(--muted);white-space:nowrap}.select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings .select-btn{height:40px}.select-pop{z-index:60;border:1px solid var(--border);background:var(--surface);width:max-content;min-width:100%;max-width:min(360px,100vw - 32px);animation:ds-pop .12s var(--ease-out);border-radius:10px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 12px 32px #00000024}:root[data-theme=dark] .select-pop{box-shadow:0 16px 40px #0009}.select-pop.up{top:auto;bottom:calc(100% + 6px)}.select-pop.right{left:auto;right:0}.select.wide-pop .select-pop{min-width:280px}.select-list{outline:none;max-height:300px;overflow-y:auto}.select-search{border-bottom:1px solid var(--rule);margin-bottom:4px;padding:0 0 6px}.select-search .input{width:100%;height:34px}.select-opt{min-height:36px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:12px;padding:7px 10px;display:flex}.select-opt[data-active=true]{background:var(--btn)}.select-opt[aria-selected=true]{font-weight:500}.select-opt-text{min-width:0;display:grid}.select-hint{color:var(--muted);font-size:var(--fs-small);font-weight:400;line-height:16px}.select-check{color:var(--text);flex:none;margin-left:auto}.select-empty{color:var(--muted);padding:10px}@keyframes ds-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.select-pop.up{animation-name:ds-pop-up}@keyframes ds-pop-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.picker-controls .select{width:100%}@media (max-width:860px){.select.auto{flex:160px;display:block}.select.auto .select-btn{width:100%}.select-btn{height:40px}.select-opt{min-height:44px}}.select-pop,.select.wide-pop .select-pop{width:100%;min-width:100%;max-width:none}.date-field{min-width:0;position:relative}.date-btn{text-align:left;cursor:pointer;width:100%;font:inherit;align-items:center;gap:8px;display:flex}.date-btn[aria-expanded=true]{border-color:color-mix(in srgb, var(--hue) 70%, var(--control));box-shadow:0 0 0 3px var(--focus-ring)}.date-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.date-value b{font-weight:500}.date-value b:after{content:" · ";color:var(--muted);font-weight:400}.date-btn .ic{color:var(--muted);flex:none}.date-pop{z-index:60;border:1px solid var(--border);background:var(--surface);width:296px;max-width:calc(100vw - 32px);animation:ds-pop .14s var(--ease-out);border-radius:12px;padding:10px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 12px 32px #00000024}:root[data-theme=dark] .date-pop{box-shadow:0 16px 40px #0009}.date-pop.up{animation-name:ds-pop-up;top:auto;bottom:calc(100% + 6px)}.date-pop.right{left:auto;right:0}.cal-head{grid-template-columns:auto 1fr auto;align-items:center;gap:4px;margin-bottom:6px;display:grid}.cal-title{text-align:center;font-weight:600}.cal-title:first-letter{text-transform:uppercase}.cal-week,.cal-row{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-week span{color:var(--muted);font-size:var(--fs-xs);text-align:center;padding:4px 0;font-weight:500}.cal-grid{gap:2px;display:grid}.cal-grid.from-right{animation:cal-from-right .22s var(--ease-out)}.cal-grid.from-left{animation:cal-from-left .22s var(--ease-out)}@keyframes cal-from-right{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:none}}@keyframes cal-from-left{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:none}}.cal-day{height:36px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease;background:0 0;border:0;border-radius:8px;position:relative}.cal-day:focus-visible{outline:2px solid color-mix(in srgb, var(--hue) 70%, transparent);outline-offset:-2px}.cal-day.outside{color:var(--muted);opacity:.55}.cal-day:disabled{opacity:.25;cursor:default;background:0 0}.cal-day.today:after{content:"";background:var(--brand);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:5px;left:50%}.cal-day.today{font-weight:600}.cal-day[aria-selected=true]{background:var(--primary);color:var(--primary-ink);opacity:1;font-weight:600}.cal-day[aria-selected=true]:after{background:var(--primary-ink)}.cal-foot{border-top:1px solid var(--rule);gap:4px;margin-top:8px;padding-top:8px;display:flex}@media (max-width:860px){.cal-day{height:40px}}@media (prefers-reduced-motion:reduce){.cal-grid.from-right,.cal-grid.from-left{animation:none}}.filters .search{width:240px}.filters .select.auto .select-btn{min-width:0}.filters .select[data-field=negozio] .select-btn{width:168px}.filters .select[data-field=tipo] .select-btn{width:240px}.filters .select[data-field=dieta] .select-btn{width:200px}.picker-filters{grid-template-columns:minmax(0,1fr)}@media (max-width:860px){.filters .select[data-field] .select-btn,.filters .search{width:100%}}.sub-skel{vertical-align:-.1em;border-radius:4px;width:min(420px,90%);height:.9em;display:inline-block}.sub-skel.short{width:min(300px,70%)}.edit-row{grid-template-columns:20px 40px minmax(0,1fr) 112px 84px 36px}.grip{width:20px;height:32px;color:var(--faint);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.grip svg{fill:currentColor}.grip:hover{color:var(--text);background:var(--btn)}.grip:active{cursor:grabbing}.grip:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.sortable{background:var(--surface);position:relative}.sortable.dragging{opacity:.35;z-index:1}.stack>.sortable{background:0 0}.sortable.dragging>.meal-editor{border-style:dashed}.drag-meal{grid-template-columns:minmax(0,1fr)}.draggable-product{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.draggable-product.dragging{opacity:.4}.draggable-product:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);border-radius:8px;outline:none}.drop-area{min-height:56px;transition:background-color var(--t-hover) ease, box-shadow var(--t-hover) ease;border-radius:8px}.drop-area.drop-target{background:color-mix(in srgb, var(--hue) 8%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--hue) 45%, transparent)}.drag-card{border:1px solid var(--border);background:var(--surface);cursor:grabbing;border-radius:10px;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;width:320px;padding:10px 12px;display:grid;box-shadow:0 16px 40px #00000040}.drag-card .name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.drag-card .sub{color:var(--muted);font-size:var(--fs-sub);display:block}:root[data-theme=dark] .drag-card{box-shadow:0 16px 40px #0009}@media (max-width:860px){.edit-row{grid-template-columns:20px 40px minmax(0,1fr) auto}.edit-row .grams{grid-column:3}.edit-row .price{grid-area:2/4}.edit-row .remove{grid-area:1/4;justify-self:end}.edit-row .grip,.edit-row .thumb{grid-row:span 2;align-self:center}}:root{--w-dot:color-mix(in srgb, var(--muted) 55%, var(--surface))}.section-title{font-size:var(--fs-section);font-weight:600}.weigh-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px;display:grid}.weigh-form .btn{grid-column:1/-1}.weigh-form .hint,.weigh-form .form-error{color:var(--muted);font-size:var(--fs-small);grid-column:1/-1;margin:0}.weigh-form .form-error{color:var(--negative)}.weigh-list-title{color:var(--muted);font-size:var(--fs-small);margin:28px 0 6px;font-weight:500}.weigh-list{margin:0 0 8px;padding:0;list-style:none}.weigh-list li{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto 3.6em 30px;align-items:center;gap:8px;min-height:40px;display:grid}.weigh-list li>span:nth-child(2),.weigh-list li>span:nth-child(3){text-align:right}.chart-empty{text-align:center;padding:56px 0}.w-legend{color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;gap:4px 16px;margin-bottom:8px;display:flex}.w-legend>span{align-items:center;gap:6px;display:inline-flex}.w-key{flex:none;display:inline-block}.w-key.dot{background:var(--w-dot);border-radius:50%;width:8px;height:8px}.w-key.line{background:var(--hue);border-radius:1px;width:14px;height:2px}.wchart{position:relative}.wchart svg{touch-action:pan-y;display:block}.w-grid{stroke:var(--rule);stroke-width:1px;shape-rendering:crispedges}.w-tick{fill:var(--faint);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.w-cross{stroke:var(--control-hover);stroke-width:1px;shape-rendering:crispedges}.w-dot{fill:var(--w-dot);stroke:var(--surface);stroke-width:2px}.w-dot.on{fill:var(--text)}.w-line{fill:none;stroke:var(--hue);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.w-mean-dot{fill:var(--hue);stroke:var(--surface);stroke-width:2px}.w-tip{z-index:2;border:1px solid var(--border);background:var(--raised);min-width:180px;font-size:var(--fs-small);white-space:nowrap;pointer-events:none;border-radius:8px;gap:2px;padding:8px 10px;display:grid;position:absolute;transform:translate(-50%);box-shadow:0 6px 16px #0000002e}.w-tip>span{color:var(--muted);align-items:center;gap:6px;display:flex}.w-tip b{color:var(--text);margin-left:auto;padding-left:12px;font-weight:500}.bad-text{color:var(--negative)}.split{gap:12px;padding-top:4px;display:grid}.split-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.split-head .label{font-weight:500}.split-bar{gap:2px;height:8px;display:flex}.split-bar>span{background:var(--m);border-radius:4px;flex:1 1 0;min-width:0}.split-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.split-fields label{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.split-note{color:var(--muted);font-size:var(--fs-small);margin:0}.split-note.bad-text{color:var(--negative)}.split-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}@container panel (min-width:600px){.split-presets{grid-template-columns:repeat(4,minmax(0,1fr))}}.preset{border:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease, box-shadow var(--t-hover) ease, transform var(--t-press) var(--ease-out);border-radius:10px;gap:8px;padding:10px 12px 9px;display:grid}.preset:hover{background:var(--raised)}.preset:active{transform:scale(.98)}.preset:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.preset[aria-pressed=true]{border-color:var(--text);background:var(--raised);box-shadow:inset 0 0 0 1px var(--text)}.preset-name{font-size:var(--fs-sub);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:18px;overflow:hidden}.preset-bar{gap:2px;height:4px;display:flex}.preset-bar>span{background:var(--m);min-width:0;transition:flex-grow .42s var(--ease-out);border-radius:2px;flex:1 1 0}.preset-nums{color:var(--muted);font-size:var(--fs-small);line-height:16px}.text-link{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:3px;transition:text-decoration-color var(--t-hover) ease}.text-link:hover{text-decoration-color:currentColor}.chip-btn[aria-pressed=true]{border-color:var(--text);background:var(--active);font-weight:500}@media (max-width:560px){.split-fields{grid-template-columns:minmax(0,1fr)}}.select[data-field=ricetta],.select[data-field=pasto]{width:240px}.recipe-title{font-size:var(--fs-h2);height:38px}.servings{align-items:center;gap:10px;display:inline-flex}.stepper{align-items:center;gap:4px;display:inline-flex}.stepper .input{text-align:center;width:56px;height:32px}.stepper .btn{font-size:var(--fs-section)}.recipe-facts{border-top:1px solid var(--rule);grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:12px 0 0;padding:14px 0 0;display:grid}.recipe-facts dt{color:var(--muted);font-size:var(--fs-small)}.recipe-facts dd{font-size:var(--fs-section);margin:4px 0 0}.recipe-split{margin-top:14px}.recipe-actions{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.to-menu,.recipe-actions-end{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.to-menu .saved a{color:var(--text);text-underline-offset:3px}.steps{gap:0;margin:4px 0 16px;padding:0;list-style:none;display:grid}.step{grid-template-columns:28px minmax(0,1fr);gap:14px;padding-bottom:20px;display:grid;position:relative}.step:before{content:"";background:var(--border);width:1px;position:absolute;top:30px;bottom:2px;left:13.5px}.step:last-child:before{display:none}.step-num{background:var(--raised);border:1px solid var(--border);width:28px;height:28px;font-size:var(--fs-sub);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-weight:600;display:grid}.step-head{justify-content:space-between;align-items:center;gap:8px;min-height:28px;margin-bottom:8px;display:flex}.step-title{font-weight:600}.step-tools{gap:2px;display:inline-flex}.tasks{gap:10px;display:grid}.tasks.parallel{border:1px dashed var(--control);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding:10px}.task{align-content:start;gap:8px;display:grid}.tasks.parallel .task{background:var(--raised);border-radius:8px;padding:10px}.task-tag{color:var(--muted);font-size:var(--fs-small);font-weight:500}.task-text{resize:vertical;field-sizing:content;height:auto;min-height:64px;padding-top:8px;padding-bottom:8px;line-height:20px}.task-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.task-min{align-items:center;gap:6px;display:inline-flex}.task-min .input{text-align:right;width:64px;height:32px}.add-parallel{margin-top:6px}@media (max-width:860px){.recipe-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.select[data-field=ricetta],.select[data-field=pasto]{width:100%}}.editor-actions-end{flex-wrap:wrap;justify-content:flex-end;gap:4px;margin-left:auto;display:inline-flex}.editor-actions{flex-wrap:wrap}.side-tabs{grid-template-columns:1fr 1fr;display:grid}.side-tabs button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.tab-count{background:var(--active);min-width:18px;color:var(--muted);font-size:var(--fs-xs);border-radius:999px;padding:0 5px;line-height:18px}.recipe-thumb{width:40px;height:40px;display:block;position:relative}.recipe-thumb .thumb{border:2px solid var(--surface);border-radius:8px;position:absolute}.recipe-thumb .thumb:first-child{top:0;left:0}.recipe-thumb .thumb:last-child{bottom:-2px;right:-2px}.cat-pick a.product-btn{color:var(--text);text-decoration:none}.cat-pick a.product-btn:hover{text-underline-offset:3px;text-decoration:underline}@keyframes ds-rise{0%{opacity:0;transform:translateY(10px)}}@keyframes ds-row{0%{opacity:0;transform:translateY(4px)}}@keyframes ds-fade{0%{opacity:0}}@keyframes ds-fade-out{to{opacity:0}}@keyframes ds-reveal-x{0%{clip-path:inset(0 100% 0 0 round 4px)}to{clip-path:inset(0 round 4px)}}@keyframes ds-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes ds-dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes ds-dialog-out{to{opacity:0;transform:translateY(6px)scale(.98)}}@keyframes ds-check{0%{transform:scale(.82)}60%{transform:scale(1.1)}to{transform:none}}@keyframes ds-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.canvas>.notice,.canvas>.panel,.canvas>.grid>*,.canvas>.settings>*{animation:ds-rise .42s var(--ease-out) backwards}.canvas>.grid>:nth-child(2),.canvas>.settings>:nth-child(2){animation-delay:50ms}.canvas>.grid>:nth-child(3),.canvas>.settings>:nth-child(3){animation-delay:.1s}.canvas>.grid>:nth-child(4),.canvas>.settings>:nth-child(4){animation-delay:.15s}.canvas>.grid>:nth-child(5),.canvas>.settings>:nth-child(5){animation-delay:.2s}.canvas>.grid>:nth-child(n+6),.canvas>.settings>:nth-child(n+6){animation-delay:.24s}.stack>*{animation:ds-row .32s var(--ease-out) backwards}:is(.items,.picker-results,.weigh-list,.steps,.macro-rows,.kv,.spend,.tasks)>:not(.sortable),.sortable>.edit-row,.shop-row{animation:ds-row .28s var(--ease-out) backwards}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(2){animation-delay:25ms}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(3){animation-delay:50ms}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(4){animation-delay:75ms}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(5){animation-delay:.1s}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(6){animation-delay:.125s}:is(.items,.picker-results,.weigh-list,.macro-rows,.kv)>:nth-child(n+7){animation-delay:.15s}tbody tr{animation:.32s backwards ds-fade}.macro-bar,.split-bar{animation:ds-reveal-x .7s var(--ease-out) backwards}.macro-seg,.split-bar>span{transition:flex-grow .52s var(--ease-out)}.macro-fill{transition:width .52s var(--ease-out);animation:ds-reveal-x .76s var(--ease-out) .12s backwards}.macro-band,.macro-tick{transition:left .52s var(--ease-out), width .52s var(--ease-out);animation:.4s .3s backwards ds-fade}.spend-bar{transition:width .52s var(--ease-out)}.w-line{stroke-dasharray:1;animation:ds-draw .9s var(--ease-out) backwards}.w-dot{transition:r .15s var(--ease-out);animation:.5s .2s backwards ds-fade}.w-tip,.w-cross{animation:.12s ds-fade}.popover{animation:ds-pop .14s var(--ease-out)}.select-opt{transition:background-color var(--t-hover) ease}.saved,.form-error,.split-note.bad-text{animation:.26s ds-fade}input[type=checkbox]:not(.switch){transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease}input[type=checkbox]:not(.switch):checked{animation:ds-check .24s var(--ease-out)}.shop-row .what .name{transition:color var(--t-ui) ease}.meal-editor{transition:border-color var(--t-ui) ease, box-shadow var(--t-ui) ease}.chip-btn{transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease}.segmented button[aria-pressed=true]{transition:background-color var(--t-ui) ease, color var(--t-ui) ease, box-shadow var(--t-ui) ease}.btn:active{transform:translateY(1px)scale(.985)}.skeleton{background:linear-gradient(90deg, var(--raised) 0%, var(--active) 50%, var(--raised) 100%);background-size:200% 100%;animation:1.3s ease-in-out infinite ds-shimmer}html.theme-anim,html.theme-anim *,html.theme-anim :before,html.theme-anim :after,html.resizing,html.resizing *,html.resizing :before,html.resizing :after{transition:none!important}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}:root{--danger-ink:#fff}:root[data-theme=dark]{--danger-ink:#0e100e}.confirm{border:1px solid var(--border);background:var(--surface);width:min(440px,100vw - 32px);max-width:none;color:var(--text);max-height:calc(100svh - 32px);animation:ds-dialog-in .2s var(--ease-out);border-radius:14px;padding:0;overflow-y:auto;box-shadow:0 24px 64px #00000038}.confirm::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0a0a52;animation:.2s ds-fade}:root[data-theme=dark] .confirm{box-shadow:0 24px 64px #000000b3}:root[data-theme=dark] .confirm::backdrop{background:#0009}.confirm.closing{animation:.14s forwards ds-dialog-out}.confirm.closing::backdrop{animation:.14s forwards ds-fade-out}.confirm-panel{grid-template-columns:40px minmax(0,1fr);gap:0 14px;padding:22px;display:grid}.confirm-icon{background:var(--raised);width:40px;height:40px;color:var(--text);border-radius:50%;place-items:center;display:grid}.confirm-icon.danger{background:color-mix(in srgb, var(--negative) 14%, var(--surface));color:var(--negative)}.confirm-text{align-self:center}.confirm-text h2{font-size:var(--fs-section);font-weight:600;line-height:22px}.confirm-text p{color:var(--muted);margin-top:6px;line-height:20px}.confirm-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.btn.danger-solid{background:var(--negative);color:var(--danger-ink);border-color:#0000}.btn.danger-solid:hover{background:color-mix(in srgb, var(--negative) 86%, var(--text))}@media (max-width:560px){.confirm{margin:auto}.confirm-actions .btn{flex:1 1 0}}:root{--scroll-thumb:#00000038}:root[data-theme=dark]{--scroll-thumb:#ffffff2e}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}.item .what .name,.item .product-btn{overflow-wrap:anywhere}@container (max-width:460px){.item{grid-template-columns:40px minmax(0,1fr) auto;row-gap:2px}.item .slot{grid-column:1/-1;line-height:16px}}.recipe-browse{margin:0 0 var(--gap)}.recipe-browse-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.recipe-browse-head h2{font-size:var(--fs-section);font-weight:600}.recipe-browse-head h2 .muted{margin-left:4px;font-weight:400}.recipe-browse-tools{align-items:center;gap:8px;display:inline-flex}.recipe-browse-tools .input{width:280px}.recipe-gallery{scroll-snap-type:x proximity;grid-auto-columns:208px;grid-auto-flow:column;gap:12px;padding:2px 2px 10px;display:grid;overflow-x:auto}.recipe-gallery.as-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-flow:row;overflow:visible}.recipe-card{border:1px solid var(--border);background:var(--surface);scroll-snap-align:start;transition:border-color var(--t-hover) ease, transform var(--t-ui) var(--ease-out), box-shadow var(--t-ui) ease;animation:ds-row .3s var(--ease-out) backwards;border-radius:12px;position:relative;overflow:hidden}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0000001f}.recipe-card[aria-current=true]{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.recipe-card-open{width:100%;height:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-rows:auto 1fr;padding:0;display:grid}.recipe-card-open:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-ring);border-radius:12px;outline:none}.recipe-card-del{opacity:0;transition:opacity var(--t-hover) ease, background-color var(--t-hover) ease;position:absolute;top:8px;right:8px}.recipe-card:hover .recipe-card-del,.recipe-card:focus-within .recipe-card-del{opacity:1}.recipe-card-del:hover{background:color-mix(in srgb, var(--negative) 80%, #000)}@media (hover:none){.recipe-card-del{opacity:1}}@media (max-width:860px){.recipe-browse-tools{width:100%}.recipe-browse-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title select""search all";align-items:center;gap:10px 8px;display:grid}.recipe-browse-head h2{grid-area:title}.recipe-browse-tools{display:contents}.recipe-browse-tools .rb-search{grid-area:search;width:auto;min-width:0}.recipe-browse-head:not(:has(.rb-all)) .rb-search{grid-column:1/-1}.recipe-browse-tools .rb-all{width:var(--control-height);height:var(--control-height);grid-area:all;justify-content:center;padding:0}.recipe-browse-tools .rb-all .rb-label{display:none}.recipe-browse-tools .rb-select{grid-area:select;justify-self:end}}.recipe-card-img{aspect-ratio:16/10;object-fit:cover;background:var(--raised);width:100%;display:block}.recipe-card-img.placeholder{place-items:center;display:grid}.recipe-card-img.placeholder .recipe-thumb,.recipe-card-img.placeholder .thumb{transform:scale(1.4)}.recipe-card-text{gap:2px;padding:10px 12px 12px;display:grid}.recipe-card-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.recipe-card-sub{color:var(--muted);font-size:var(--fs-small)}.thumb.photo{object-fit:cover}.cover{margin:calc(var(--card-pad) * -1) calc(var(--card-pad) * -1) 18px;position:relative}.cover-img{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.cover-img img{aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius-card) var(--radius-card) 0 0;width:100%;animation:.4s ds-fade;display:block}.cover-loading{aspect-ratio:21/9;border-radius:var(--radius-card) var(--radius-card) 0 0}.cover-actions{gap:6px;display:inline-flex;position:absolute;bottom:12px;right:12px}.btn.glass{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e100e9e;border-color:#ffffff2e}.btn.glass:hover{background:#0e100ecc}.photo-drop{border:1px dashed var(--control);width:100%;color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease;background:0 0;border-radius:10px;align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.photo-drop:hover,.photo-drop.over{border-color:var(--text);background:var(--raised)}.photo-drop-icon{background:var(--raised);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.photo-drop-title{font-weight:500;display:block}.photo-drop-hint{color:var(--muted);font-size:var(--fs-small);display:block}.task-foot{flex-wrap:wrap;justify-content:flex-start}.task-foot>:last-child:not(.task-min){margin-left:auto}.step-photo{display:inline-block;position:relative}.step-photo-img{border:1px solid var(--border);background:var(--raised);cursor:zoom-in;border-radius:8px;width:72px;height:54px;padding:0;display:block;overflow:hidden}.step-photo-img img,.step-photo-img .skeleton{object-fit:cover;width:100%;height:100%;display:block}.step-photo-x{border:1px solid var(--border);background:var(--surface);width:20px;height:20px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-7px;right:-7px}.step-photo-x svg{width:12px;height:12px}.step-photo-x:hover{color:var(--text)}.photo-viewer{max-width:min(1200px,100vw - 32px);max-height:calc(100svh - 32px);animation:ds-dialog-in .22s var(--ease-out);cursor:zoom-out;background:0 0;border:0;border-radius:12px;padding:0;overflow:visible}.photo-viewer::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c7;animation:.2s ds-fade}.photo-viewer img{object-fit:contain;border-radius:12px;max-width:100%;max-height:calc(100svh - 32px);display:block}.photo-close{color:#fff;background:#0e100e9e;border-color:#ffffff2e;position:absolute;top:10px;right:10px}.popover.product-pop{gap:14px;padding:18px;display:grid}.product-pop .pop-head{align-items:center;gap:14px}.product-pop .pop-head .thumb{border-radius:12px;width:88px;height:88px}.pop-title{gap:3px;min-width:0;display:grid}.product-pop h3{font-size:var(--fs-section);font-weight:600;line-height:1.3}.pop-meta{color:var(--muted);font-size:var(--fs-sub)}.pop-fav{width:34px;height:34px;color:var(--muted);cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease;background:0 0;border:0;border-radius:9px;flex:none;align-self:flex-start;place-items:center;margin-left:auto;padding:0;display:grid}.pop-fav:hover{background:var(--raised);color:var(--text)}.pop-fav:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.pop-fav svg{width:19px;height:19px}.pop-fav.on{color:#f2b01e}.pop-fav.on svg path{fill:currentColor}.pop-fav.on svg{animation:ds-check .32s var(--ease-out)}.promo-badge{background:color-mix(in srgb, var(--brand) 14%, transparent);color:var(--brand);font-size:var(--fs-small);border-radius:999px;justify-self:start;margin-top:4px;padding:2px 8px;font-weight:600}.pop-why{background:color-mix(in srgb, var(--positive) 10%, transparent);font-size:var(--fs-sub);border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;line-height:1.4;display:flex}.pop-why svg{width:15px;height:15px;color:var(--positive);stroke-width:2px;flex:none;margin-top:1px}.pop-stats{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;display:grid}.pop-stat{border:1px solid var(--rule);border-radius:10px;align-content:start;gap:2px;padding:10px;display:grid}.pop-stat b{font-size:var(--fs-section);font-weight:600;line-height:1.25}.pop-stat s{font-size:var(--fs-small);font-weight:400}.pop-stat small{color:var(--muted);font-size:var(--fs-xs);line-height:1.3}.pop-nutri{gap:8px;display:grid}.pop-nutri-head{color:var(--muted);font-size:var(--fs-sub);justify-content:space-between;align-items:baseline;display:flex}.pop-nutri-head b{color:var(--text);font-size:var(--fs-section);font-weight:600}.pop-bar{gap:2px;height:6px;display:flex}.pop-bar>span{background:var(--m);border-radius:3px;flex:1 1 0;min-width:0}.pop-macros{color:var(--muted);font-size:var(--fs-sub);flex-wrap:wrap;gap:4px 14px;display:flex}.pop-macros>span{align-items:center;gap:6px;display:inline-flex}.pop-macros b{color:var(--text);font-weight:500}.product-pop .pop-source{margin:0}.product-pop .pop-actions{border-top:1px solid var(--rule);flex-wrap:wrap;gap:8px;margin:0;padding-top:14px;display:flex}.pop-site{gap:4px;margin-left:auto}.pop-site svg{width:13px;height:13px}@media (max-width:860px){.popover.product-pop{max-height:calc(100svh - 24px);overflow:auto}}@media (min-width:861px){.popover[data-side=above]{animation-name:ds-pop-up}}.thumb.zoomable{cursor:zoom-in;transition:transform var(--t-press) var(--ease-out), box-shadow var(--t-hover) ease}.thumb.zoomable:hover{box-shadow:0 0 0 1px var(--border)}.thumb.zoomable:active{transform:scale(.96)}.thumb.zoomable:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.product-photo{text-align:center}.product-photo img{aspect-ratio:1;background:#fff 50%/contain no-repeat;border-radius:16px;width:min(460px,100vw - 32px);height:auto;max-height:calc(100svh - 140px);margin:0 auto}.product-photo-caption{color:#fff;font-size:var(--fs-body);gap:2px;margin-top:14px;display:grid}.product-photo-caption span{color:#ffffffb3;font-size:var(--fs-sub)}@media (max-width:860px){.cover{margin:-18px -18px 16px}}.select-bar{border:1px solid var(--border);background:var(--raised);animation:ds-row .22s var(--ease-out);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:12px;padding:8px 8px 8px 16px;display:flex}.select-bar-actions{flex-wrap:wrap;gap:6px;display:inline-flex}.recipe-gallery.selecting .recipe-card:hover{transform:none}.recipe-card.picked{border-color:var(--hue);box-shadow:0 0 0 1px var(--hue)}.recipe-card.picked .recipe-card-img{opacity:.82}.card-check{z-index:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:22px;height:22px;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease;background:#0e100e73;border:1.5px solid #ffffffd9;border-radius:6px;position:absolute;top:10px;left:10px}.card-check.on{border-color:var(--hue);background:var(--hue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8.5 3 3 6-7' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;animation:ds-check .22s var(--ease-out)}:root{--sp-corsa:#2a78d6;--sp-bici:#eb6834;--sp-nuoto:#1baf7a;--sp-camminata:#eda100;--sp-forza:#e87ba4;--sp-hiit:#008300;--sp-sport:#6250d6;--sp-yoga:#e34948;--sp-altro:#8a8f8a}:root[data-theme=dark]{--sp-corsa:#3987e5;--sp-bici:#d95926;--sp-nuoto:#199e70;--sp-camminata:#c98500;--sp-forza:#d55181;--sp-hiit:#008300;--sp-sport:#9085e9;--sp-yoga:#e66767;--sp-altro:#6f756f}.sp-corsa{--sp:var(--sp-corsa)}.sp-bici{--sp:var(--sp-bici)}.sp-nuoto{--sp:var(--sp-nuoto)}.sp-camminata{--sp:var(--sp-camminata)}.sp-forza{--sp:var(--sp-forza)}.sp-hiit{--sp:var(--sp-hiit)}.sp-sport{--sp:var(--sp-sport)}.sp-yoga{--sp:var(--sp-yoga)}.sp-altro{--sp:var(--sp-altro)}[class*=sp-] .dot{background:var(--sp);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.cal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.cal-head h2:first-letter{text-transform:uppercase}.cal-nav{align-items:center;gap:2px;display:inline-flex}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-wd{color:var(--muted);font-size:var(--fs-small);padding:0 6px 4px}.cal-day{border:1px solid var(--rule);min-height:92px;color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease;background:0 0;border-radius:8px;flex-direction:column;align-items:stretch;gap:4px;padding:6px;display:flex}.cal-day:hover{background:var(--raised)}.cal-day.out{color:var(--faint)}.cal-day.out .cal-chips{opacity:.55}.cal-day.on{border-color:var(--text);background:var(--raised)}.cal-day:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.cal-num{min-width:24px;height:24px;font-size:var(--fs-sub);border-radius:999px;align-self:flex-start;place-items:center;padding:0 4px;font-weight:500;display:inline-grid}.cal-day.today .cal-num{background:var(--text);color:var(--ground)}.cal-chips{gap:3px;min-width:0;display:grid}.cal-chip{background:color-mix(in srgb, var(--sp) 16%, transparent);min-width:0;font-size:var(--fs-xs);animation:ds-row .24s var(--ease-out) backwards;border-radius:5px;align-items:center;gap:5px;padding:2px 6px;line-height:16px;display:flex}.cal-chip-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cal-more{color:var(--muted);font-size:var(--fs-xs);padding-left:6px}.day-title:first-letter{text-transform:uppercase}.day-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.wo-card{border:1px solid var(--border);border-left:3px solid var(--sp);background:var(--surface);animation:ds-row .26s var(--ease-out) backwards;border-radius:8px;display:grid;position:relative}.wo-main{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.wo-main:hover{background:var(--raised)}.wo-head{align-items:center;gap:8px;display:flex}.wo-title{font-weight:600}.wo-src{background:var(--active);color:var(--muted);font-size:var(--fs-xs);border-radius:4px;margin-left:auto;padding:0 6px;line-height:18px}.wo-facts,.wo-ex,.wo-notes{color:var(--muted);font-size:var(--fs-sub);line-height:18px}.wo-notes{font-style:italic}.wo-repeat{justify-self:start;margin:0 6px 6px}.sport-bars .spend-label{align-items:center;gap:8px;display:inline-flex}.sport-bars .spend-bar{background:var(--sp)}.tracker-steps{color:var(--text);gap:10px;margin:12px 0 0;padding-left:18px;line-height:20px;display:grid}.tracker-steps b{font-weight:600}.editor-dialog{border:1px solid var(--border);background:var(--surface);width:min(600px,100vw - 24px);max-width:none;max-height:calc(100svh - 32px);color:var(--text);animation:ds-dialog-in .2s var(--ease-out);border-radius:14px;padding:0;box-shadow:0 24px 64px #00000038}.editor-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a0a0a52;animation:.2s ds-fade}:root[data-theme=dark] .editor-dialog{box-shadow:0 24px 64px #000000b3}:root[data-theme=dark] .editor-dialog::backdrop{background:#0009}.editor-form{padding:20px 22px 22px}.editor-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.editor-top h2{font-size:var(--fs-h3);font-weight:600}.editor-dialog .editor-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:20px;display:flex}.editor-dialog .editor-actions-end{gap:8px;margin-left:auto}.range{width:100%;accent-color:var(--text)}.ex-block{border-top:1px solid var(--rule);gap:6px;margin-top:18px;padding-top:14px;display:grid}.ex-head{justify-content:space-between;align-items:baseline;display:flex}.ex-head .label{font-weight:500}.ex-row{animation:ds-row .22s var(--ease-out) backwards;grid-template-columns:minmax(0,1fr) 64px 64px 72px 30px;align-items:center;gap:6px;display:grid}.ex-row .input{height:34px}.ex-row .input.num{text-align:right}.ex-cols{color:var(--muted);font-size:var(--fs-small)}.ex-cols span:not(:first-child){text-align:right;padding-right:10px}.ex-block>.btn{justify-self:start}@media (max-width:860px){.cal-grid{gap:2px}.cal-day{min-height:54px;padding:4px}.cal-chip{background:0 0;justify-content:center;padding:0}.cal-chip-text,.cal-more{display:none}.cal-chips{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.ex-row{grid-template-columns:minmax(0,1fr) 52px 52px 60px 30px}}.spend{gap:4px;margin:0;padding:0;list-style:none;display:grid}.spend li{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:6px 0;display:grid}.spend-value{text-align:right}.spend-value .muted{min-width:2.6em;font-size:var(--fs-small);display:inline-block}.spend-track{background:var(--rule);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.spend-bar{background:var(--text);height:100%;animation:ds-reveal-x .7s var(--ease-out) backwards;border-radius:3px;display:block}@media (hover:none){.cal-hint{display:none}}.tracker summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;list-style:none;display:flex}.tracker summary::-webkit-details-marker{display:none}.tracker summary svg{color:var(--muted);transition:transform var(--t-ui) var(--ease-out)}.tracker[open] summary svg{transform:rotate(180deg)}.tracker:not([open]){padding-top:16px;padding-bottom:16px}.tracker[open] .tracker-steps{animation:ds-row .24s var(--ease-out)}.stack{align-content:start}@keyframes ds-bar-up{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}.mchart-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:10px;display:flex}.mseg{fill:var(--sp);animation:ds-bar-up .6s var(--ease-out) backwards;transition:opacity var(--t-hover) ease}.mcol-current{fill:var(--raised)}.mhit{fill:#0000;cursor:pointer;outline:none}.mhit:focus-visible{stroke:var(--focus-ring);stroke-width:3px}.w-base{stroke:var(--control-hover);stroke-width:1px;shape-rendering:crispedges}.w-tick.strong{fill:var(--text);font-weight:600}.w-tip .sp-corsa,.w-tip [class*=sp-]{color:var(--muted);align-items:center;gap:6px;display:flex}.w-tip-total{border-top:1px solid var(--border);color:var(--muted);margin-top:4px;padding-top:4px}.mchart-empty{pointer-events:none;place-items:center;margin:0;display:grid;position:absolute;inset:0}.w-tip.side{width:220px;transform:none}.mcol.dim .mseg{opacity:.55}.sync-state{color:var(--muted);font-size:var(--fs-small);align-items:center;gap:8px;margin:10px 8px 6px;display:flex}.sync-dot{background:var(--positive);width:7px;height:7px;transition:background-color var(--t-ui) ease;border-radius:50%}.sync-state.bad{color:var(--negative)}.sync-state.bad .sync-dot{background:var(--negative)}@keyframes ds-pulse{50%{opacity:.35}}.sync-toast{z-index:60;border:1px solid color-mix(in srgb, var(--negative) 45%, var(--border));background:var(--surface);max-width:min(440px,100vw - 32px);color:var(--text);animation:ds-dialog-in .2s var(--ease-out);border-radius:10px;align-items:center;gap:12px;padding:10px 10px 10px 16px;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 12px 32px #00000040}.logo{display:inline-grid}.logo img{grid-area:1/1;height:auto;display:block}.logo-light,:root[data-theme=light] .logo-dark{visibility:hidden}:root[data-theme=light] .logo-light{visibility:visible}.topbar-mark{width:26px;height:auto;display:block}:root{--brand:#ea0214}.ic{overflow:visible}.ic *{transform-box:fill-box}@keyframes ic-hop{0%,to{transform:none}35%{transform:translateY(-1.3px)}70%{transform:translateY(.3px)}}@keyframes ic-appear{0%{opacity:0}}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-piano .i-peg{animation:ic-hop .42s var(--ease-out)}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-piano .i-peg.i-2{animation-delay:90ms}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-piano .i-day{animation:.2s .2s backwards ic-appear}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-piano .i-day.i-2{animation-delay:.3s}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-piano .i-day.i-3{animation-delay:.4s}.ic-menu-edit .i-write{stroke-dasharray:1;stroke-dashoffset:0}.ic-menu-edit .i-pen{transform-origin:0 100%}@keyframes ic-write{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes ic-pen{0%,to{transform:none}15%{transform:translate(-4.5px,-8px)rotate(-8deg)}48%{transform:translate(-.5px,-8px)rotate(-4deg)}58%{transform:translate(-4.5px,-5.5px)rotate(-8deg)}82%{transform:translate(-2px,-5.5px)rotate(-4deg)}}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-menu-edit .i-pen{animation:.9s ease-in-out ic-pen}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-menu-edit .i-write{animation:.3s linear .135s backwards ic-write}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-menu-edit .i-write.i-2{animation-duration:.22s;animation-delay:.52s}.ic-ricette .i-page{opacity:0;transform-origin:0%;fill:currentColor;fill-opacity:.22}@keyframes ic-turn{0%{opacity:0;transform:scaleX(1)}12%{opacity:1}50%{transform:scaleX(.15)skewY(-6deg)}88%{opacity:1;transform:scaleX(-1)}to{opacity:0;transform:scaleX(-1)}}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-ricette .i-page{animation:.52s ease-in-out ic-turn}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-ricette .i-page.i-2{animation-delay:.24s;animation-fill-mode:backwards}@keyframes ic-roll{0%,to{transform:none}30%{transform:translate(1.8px)rotate(-5deg)}60%{transform:translate(-.6px)rotate(2deg)}80%{transform:translate(.3px)}}.ic-spesa .i-cart{transform-origin:50% 100%}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-spesa .i-cart{animation:ic-roll .56s var(--ease-out)}@keyframes ic-grow{0%{transform:scaleX(.15)}}.ic-catalogo .i-line{transform-origin:0%}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-catalogo .i-line{animation:ic-grow .32s var(--ease-out) backwards}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-catalogo .i-line.i-2{animation-delay:80ms}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-catalogo .i-line.i-3{animation-delay:.16s}@keyframes ic-swing{0%,to{transform:none}20%{transform:rotate(-80deg)}45%{transform:rotate(30deg)}65%{transform:rotate(-14deg)}85%{transform:rotate(5deg)}}.ic-peso .i-needle{transform-origin:0 100%}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-peso .i-needle{animation:.9s ease-out ic-swing}@keyframes ic-lift{0%,to{transform:none}30%{transform:translateY(-2px)rotate(-10deg)}55%{transform:translateY(-2.2px)rotate(6deg)}80%{transform:translateY(.4px)}}.ic-allenamenti .i-lift{transform-origin:50%}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-allenamenti .i-lift{animation:ic-lift .62s var(--ease-out)}@keyframes ic-nod{0%,to{transform:none}25%{transform:translateY(.9px)rotate(-8deg)}55%{transform:translateY(-.4px)rotate(6deg)}80%{transform:rotate(-2deg)}}.ic-profilo .i-head{transform-origin:50% 100%}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-profilo .i-head{animation:ic-nod .6s var(--ease-out)}.ic-finanze .i-drop{opacity:0;fill:currentColor;stroke:none;transform-origin:50%}.ic-finanze .i-wallet{transform-origin:50% 100%}@keyframes ic-drop{0%{opacity:0;animation-timing-function:cubic-bezier(.55,0,1,.45);transform:translateY(-7px)}12%{opacity:1}68%{opacity:1;animation-timing-function:ease-out;transform:none}to{opacity:0;transform:translateY(2.5px)scale(.5)}}@keyframes ic-catch{0%,38%,56%,to{transform:none}46%{transform:translateY(.7px)scaleY(.96)}66%{transform:translateY(.9px)scaleY(.95)}80%{transform:translateY(-.3px)}}@keyframes ic-shine{0%,to{transform:none}45%{transform:scale(2.2)}}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-finanze .i-drop{animation:.44s linear ic-drop}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-finanze .i-drop.i-2{animation-delay:.15s}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-finanze .i-wallet{animation:ic-catch .7s var(--ease-out)}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-finanze .i-coin{animation:ic-shine .34s var(--ease-out) .52s}.shop-actions{flex-wrap:wrap;justify-content:flex-end}.add-bar{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.add-bar>.add-tile{grid-column:span 2}.add-bar>.add-tile:nth-child(n+4){grid-column:span 3}@media (min-width:1690px){.add-bar{grid-template-columns:repeat(5,minmax(0,1fr))}.add-bar>.add-tile,.add-bar>.add-tile:nth-child(n+4){grid-column:auto}}@media (max-width:1100px){.add-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.add-bar>.add-tile,.add-bar>.add-tile:nth-child(n+4){grid-column:auto}.add-bar>.add-tile:last-child:nth-child(odd){grid-column:1/-1}}.add-tile{border:1px solid var(--border);background:var(--surface);min-height:64px;color:var(--text);text-align:left;cursor:pointer;transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease, transform var(--t-ui) var(--ease-out);animation:ds-row .3s var(--ease-out) backwards;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid;position:relative}.add-tile:nth-child(2){animation-delay:30ms}.add-tile:nth-child(3){animation-delay:60ms}.add-tile:nth-child(4){animation-delay:90ms}.add-tile:nth-child(5){animation-delay:.12s}.add-tile:hover:not(:disabled){border-color:var(--control-hover);background:var(--raised);transform:translateY(-1px)}.add-tile:active:not(:disabled){transform:translateY(0)scale(.99)}.add-tile:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.add-tile:disabled{opacity:.5;cursor:not-allowed}.add-tile-icon{background:var(--raised);width:36px;height:36px;color:var(--text);border-radius:10px;place-items:center;display:grid}.add-tile:hover:not(:disabled) .add-tile-icon{background:var(--active)}.add-tile-text{gap:1px;min-width:0;display:grid}.add-tile-title{font-weight:600;line-height:20px}.add-tile-hint{color:var(--muted);font-size:var(--fs-small);line-height:16px}.add-tile-plus{width:24px;height:24px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.add-tile.in .add-tile-plus{color:var(--positive)}.add-tile.attention{border-color:color-mix(in srgb, var(--warning) 55%, var(--border))}.add-tile.attention .add-tile-hint{color:var(--warning)}.src-chips{margin-bottom:var(--gap);flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.src-title{color:var(--muted);font-size:var(--fs-small);margin-right:2px}.src-chip{border:1px solid var(--border);background:var(--surface);height:28px;font-size:var(--fs-sub);animation:ds-row .22s var(--ease-out);border-radius:999px;align-items:center;gap:6px;padding:0 4px 0 10px;display:inline-flex}.src-chip .muted{font-size:var(--fs-small)}.src-chip button{width:20px;height:20px;color:var(--muted);cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.src-chip button:hover{background:var(--active);color:var(--text)}.src-chip svg{width:12px;height:12px}.shop-empty{text-align:center;justify-items:center;gap:8px;padding:48px 24px;display:grid}.shop-empty p{max-width:56ch}.cart-bar{background:var(--rule);border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.cart-bar span{background:var(--positive);height:100%;transition:width .42s var(--ease-out);border-radius:2px;display:block}.shop-card{flex-direction:column;display:flex}.shop-card-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.shop-card-head h2{font-size:var(--fs-h3);font-weight:600}.shop-card-head .meta{color:var(--muted);font-size:var(--fs-small)}.shop-progress{background:var(--rule);border-radius:2px;height:3px;margin:10px 0 6px;overflow:hidden}.shop-progress span{background:var(--positive);height:100%;transition:width .42s var(--ease-out);display:block}.aisle{animation:ds-row .26s var(--ease-out) backwards;margin-top:14px}.aisle h3{color:var(--muted);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-weight:600}.lines{margin:0;padding:0;list-style:none}.shop-line{transition:background-color var(--t-hover) ease, opacity var(--t-ui) ease;animation:ds-row .26s var(--ease-out) backwards;border-radius:10px;grid-template-columns:32px 44px minmax(0,1fr) auto 76px 30px;align-items:center;gap:12px;margin:0 -10px;padding:8px 10px;display:grid}.shop-line+.shop-line{box-shadow:0 -1px 0 var(--rule)}.shop-line:hover{background:var(--raised);box-shadow:none}.shop-line:hover+.shop-line{box-shadow:none}.shop-line .thumb{width:44px;height:44px}.free-thumb{background:var(--raised);color:var(--muted);place-items:center;display:grid}.shop-line .what{gap:2px;min-width:0;display:grid}.shop-line .name{overflow-wrap:anywhere;font-weight:500}.shop-line .name .product-btn{font-weight:500}.shop-line .sub{color:var(--muted);font-size:var(--fs-sub);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.line-src{color:var(--faint)}.shop-line .price{text-align:right;white-space:nowrap}.line-x{opacity:0;transition:opacity var(--t-hover) ease, background-color var(--t-hover) ease}.shop-line:hover .line-x,.shop-line:focus-within .line-x{opacity:1}@media (hover:none){.line-x{opacity:1}}.tick{border:1.5px solid var(--control-hover);color:#0000;cursor:pointer;width:28px;height:28px;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease, color var(--t-hover) ease, transform var(--t-press) var(--ease-out);background:0 0;border-radius:8px;place-items:center;padding:0;display:grid}.tick:hover{border-color:var(--text)}.tick:active{transform:scale(.9)}.tick:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.tick svg{stroke-width:2.2px;width:16px;height:16px}.shop-line.done .tick{border-color:var(--positive);background:var(--positive);color:var(--surface);animation:ds-check .24s var(--ease-out)}.shop-line .name{transition:color var(--t-ui) ease, text-decoration-color var(--t-ui) ease;-webkit-text-decoration:line-through #0000;text-decoration:line-through #0000}.shop-line .thumb,.shop-line .qty,.shop-line .price{transition:opacity var(--t-ui) ease}.shop-line.done .name{color:var(--muted);-webkit-text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--muted) 60%, transparent)}.shop-line.done .thumb,.shop-line.done .qty,.shop-line.done .price{opacity:.5}.qty{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:4px;padding:2px;display:inline-flex}.qty-btn{width:28px;height:28px;color:var(--text);font-size:var(--fs-section);cursor:pointer;transition:background-color var(--t-hover) ease;background:0 0;border:0;border-radius:7px;place-items:center;padding:0;line-height:1;display:grid}.qty-btn:hover:not(:disabled){background:var(--active)}.qty-btn:disabled{color:var(--faint);cursor:not-allowed}.qty-val{text-align:center;min-width:64px;line-height:16px;display:grid}.qty-val b{font-weight:600;font-size:var(--fs-sub)}.qty-val small{color:var(--muted);font-size:var(--fs-xs)}.qty-note{color:var(--muted);font-size:var(--fs-sub);text-align:right}.done-group{border-top:1px solid var(--rule);margin-top:14px;padding-top:8px;animation:.3s ds-fade}.done-count{animation:ds-check .32s var(--ease-out);display:inline-block}.done-group summary{color:var(--muted);font-size:var(--fs-sub);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:4px 6px 4px 2px;font-weight:500;list-style:none;display:inline-flex}.done-group summary::-webkit-details-marker{display:none}.done-group summary svg{transition:transform var(--t-ui) var(--ease-out);transform:rotate(-90deg)}.done-group[open] summary svg{transform:none}.done-group summary:hover{color:var(--text)}@media (prefers-reduced-motion:no-preference){.done-group{interpolate-size:allow-keywords}.done-group::details-content{height:0;transition:height .36s var(--ease-out), content-visibility .36s allow-discrete;overflow:clip}.done-group[open]::details-content{height:auto}}.editor-dialog.narrow{width:min(480px,100vw - 24px)}.recipe-pick{border:1px solid var(--border);border-radius:10px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding:12px;display:grid}.recipe-pick .what{gap:2px;min-width:0;display:grid}.recipe-pick .name{font-weight:600}.recipe-pick .sub{color:var(--muted);font-size:var(--fs-sub)}.recipe-pick .stepper b{text-align:center;min-width:24px}.pick-list{max-height:min(420px,55svh);margin-top:12px;display:grid;overflow-y:auto}.pick-line{border-top:1px solid var(--rule);animation:ds-row .2s var(--ease-out) backwards;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 4px;display:grid}.pick-line .what{gap:2px;min-width:0;display:grid}.pick-line .name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pick-line .sub{color:var(--muted);font-size:var(--fs-sub)}.pick-in{color:var(--positive);font-size:var(--fs-small);white-space:nowrap}.pick-empty{text-align:center;padding:24px 4px}.free-form{gap:12px;display:grid}.shop-card{container-type:inline-size}@container (max-width:620px){.shop-line{grid-template-columns:30px 44px minmax(0,1fr) auto;grid-template-areas:"tick thumb what x""tick thumb qty price";gap:8px 10px}.shop-line .tick{grid-area:tick}.shop-line .thumb,.shop-line .free-thumb{grid-area:thumb}.shop-line .what{grid-area:what}.shop-line .qty,.shop-line .qty-note{grid-area:qty;justify-self:start}.shop-line .price{grid-area:price;align-self:center}.line-x{grid-area:x}}@media (max-width:860px){.shop-actions{justify-content:stretch;width:100%}.shop-actions .btn{flex:auto;justify-content:center}.shop-line{grid-template-columns:30px 40px minmax(0,1fr) auto;grid-template-areas:"tick thumb what x""tick thumb qty price";gap:8px 10px}.shop-line .tick{grid-area:tick}.shop-line .thumb,.shop-line .free-thumb{grid-area:thumb;width:40px;height:40px}.shop-line .what{grid-area:what}.shop-line .qty,.shop-line .qty-note{grid-area:qty;justify-self:start}.shop-line .price{grid-area:price}.line-x{grid-area:x}}@media (max-width:560px){.add-tile{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;min-height:0;padding:12px}.add-tile-plus{position:absolute;top:10px;right:10px}.add-tile-hint{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}}.confirm-optout{color:var(--muted);font-size:var(--fs-sub);grid-column:1/-1;margin-top:16px}@media (max-width:1099px){:root{--fs-xs:12px;--fs-small:13px;--fs-sub:14px;--fs-body:15px;--fs-input:16px;--fs-section:17px;--fs-h3:19px;--fs-h2:21px;--fs-kpi:28px}}@media (max-width:767px){:root{--fs-body:16px;--fs-figure:20px;--fs-title:22px;--fs-kpi:26px}}@media (pointer:coarse){:root{--fs-input:16px}}@media (max-width:860px){.canvas{animation:ds-page-in .26s var(--ease-out)}.canvas.from-menu{animation-delay:.17s;animation-fill-mode:backwards}.canvas>.notice,.canvas>.panel,.canvas>.grid>*,.canvas>.settings>*,.stack>*,:is(.items,.picker-results,.weigh-list,.steps,.macro-rows,.kv,.spend,.tasks,.lines)>*,.sortable>.edit-row,.shop-row,.shop-line,.recipe-card,.add-tile,.src-chip,.wo-card,.cal-chip,tbody tr,.macro-bar,.split-bar,.macro-fill,.macro-band,.macro-tick,.mseg,.w-line,.w-dot,.spend-bar,.cover-img img{animation:none}}@keyframes ds-page-in{0%{opacity:0;transform:translateY(10px)}}.nav-pending{border:2px solid #0000;border-radius:50%;flex:none;width:14px;height:14px;margin-left:auto}.nav-pending.on{border-color:var(--muted);border-top-color:#0000;animation:.7s linear infinite ds-spin}.nav-item:has(.nav-pending.on){background:var(--active);color:var(--text)}@keyframes ds-drop-in{0%{opacity:0;transform:translateY(-6px)}}.catalogue-table tbody tr.row-in,.catalogue-list .row-in{animation:ds-drop-in .36s var(--ease-out) backwards;animation-delay:calc(min(var(--i,0), 16) * 28ms)}@media (max-width:860px){.catalogue-list .row-in{animation-duration:.32s;animation-delay:calc(min(var(--i,0), 10) * 30ms)}}.values-btn{white-space:nowrap}.values-cell{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.values-cell .values-edit{width:24px;height:24px;color:var(--muted)}.catalogue-list .values-btn{margin-top:4px;margin-left:-8px}.catalogue-list .values-edit{width:28px;height:28px;color:var(--muted);margin-top:2px;margin-left:-6px}.values-product{align-items:center;gap:12px;display:flex}.values-product>span{gap:2px;min-width:0;display:grid}.values-product b{overflow-wrap:anywhere;font-weight:600}.values-product .muted{font-size:var(--fs-small)}.values-intro{font-size:var(--fs-sub);margin:12px 0 0}.values-grid{gap:6px;margin:14px 0 16px;display:grid}.values-row{grid-template-columns:minmax(0,1fr) 132px;align-items:center;gap:12px;display:grid}.values-row label{font-weight:500}.values-row label .muted{font-weight:400}.values-row.sub label{color:var(--muted);padding-left:16px;font-weight:400}.values-input{position:relative}.values-input .input{text-align:right;width:100%;padding-right:44px}.values-input .unit{color:var(--muted);font-size:var(--fs-small);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.values-input .input[aria-invalid=true]{border-color:var(--negative)}.values-check{background:color-mix(in srgb, var(--warning) 14%, var(--surface));font-size:var(--fs-sub);border-radius:8px;margin:-4px 0 14px;padding:8px 12px}.values-dialog .field{gap:6px;display:grid}.values-hint{font-size:var(--fs-small)}.values-dialog .form-error{color:var(--negative);font-size:var(--fs-sub);margin:12px 0 0}@media (max-width:480px){.values-row{grid-template-columns:minmax(0,1fr) 112px}}.month-nav{align-items:center;gap:4px;display:inline-flex}.month-label{text-align:center;text-transform:capitalize;min-width:132px;font-weight:500}.finance .s5,.finance .s7{min-width:0}@media (max-width:1100px){.finance .s5,.finance .s7{grid-column:span 12}}.budget-bar{background:var(--rule);border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.budget-bar span{background:var(--positive);height:100%;transition:width .42s var(--ease-out);border-radius:2px;display:block}.budget-bar span.over{background:var(--negative)}.finance-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin-top:14px;display:grid}.finance-form .kind-switch,.finance-form .form-error,.finance-actions{grid-column:1/-1}.finance-form .kind-switch{width:100%;display:flex}.finance-form .kind-switch button{flex:1 1 0}.finance-actions{gap:8px;display:flex}.quick-add{border:1px dashed var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--t-hover) ease, border-color var(--t-hover) ease;background:0 0;border-radius:10px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:16px;padding:10px 12px;display:grid}.quick-add:hover{border-color:var(--control-hover);background:var(--raised)}.quick-add:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.quick-add-icon{background:var(--raised);width:36px;height:36px;color:var(--muted);border-radius:9px;place-items:center;display:grid}.quick-add-text{gap:2px;min-width:0;display:grid}.quick-add-text b{font-weight:500}.quick-add-text small{color:var(--muted);font-size:var(--fs-small)}.cat-bars{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.cat-bars li{animation:ds-row .26s var(--ease-out) backwards;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;display:grid}.cat-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.cat-amount small{color:var(--muted);font-size:var(--fs-small);margin-left:4px}.cat-bar{background:var(--rule);border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.cat-bar span{background:var(--text);opacity:.75;height:100%;transition:width .42s var(--ease-out);border-radius:3px;display:block}.budget-field{border-top:1px solid var(--rule);margin-top:20px;padding-top:16px}.budget-field .input{max-width:200px}.fin-day+.fin-day{margin-top:14px}.fin-day h3{color:var(--muted);font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;margin:12px 0 4px;font-weight:600}.fin-lines{margin:0;padding:0;list-style:none}.fin-line{border-top:1px solid var(--rule);animation:ds-row .24s var(--ease-out) backwards;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;display:grid}.fin-line:first-child{border-top:0}.fin-main{min-width:0;color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--t-hover) ease;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-left:-8px;padding:10px 8px;display:flex}.fin-main:hover,.fin-line.editing .fin-main{background:var(--raised)}.fin-main:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.fin-what{gap:2px;min-width:0;display:grid}.fin-cat{font-weight:500}.fin-note{color:var(--muted);font-size:var(--fs-sub);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fin-amount{white-space:nowrap;flex:none;font-weight:500}.fin-amount.entrata{color:var(--positive)}.finance-form .form-error{color:var(--negative);font-size:var(--fs-small);margin:0}.auth{--auth-m:clamp(16px, 2.5vw, 32px);--auth-bar:72px;--auth-panel:#141614;--auth-panel-ink:#f1f3f1;--auth-panel-soft:#a9b0a9;--auth-panel-line:#f1f3f11f;--auth-panel-hide:inset(0 100% 0 0);background:var(--ground);min-height:100dvh;color:var(--text);grid-template-columns:minmax(0,1fr);display:grid;position:relative}:root[data-theme=dark] .auth{--auth-panel:#171a17}@media (min-width:1180px) and (min-height:600px){.auth{--auth-bar:88px}}.auth-bar,.auth-panel-logo{top:0;left:var(--auth-m);height:var(--auth-bar);align-items:center;display:flex;position:absolute}.auth-bar{z-index:1}.auth-brand{border-radius:4px;display:inline-flex}.brand-svg{--logo-ink:#000;height:auto;display:block}.brand-svg .brand-ink{fill:var(--logo-ink)}:root[data-theme=dark] .brand-svg,.auth-panel-logo .brand-svg{--logo-ink:#fff}.auth-bar .brand-svg,.auth-panel-logo .brand-svg{border-radius:4px;width:clamp(128px,12vw,164px)}.auth:has(.auth-brand:focus-visible) .auth-panel-logo .brand-svg{outline-offset:4px;outline:2px solid #f1f3f1cc}.auth-tools{z-index:1;top:0;right:var(--auth-m);height:var(--auth-bar);align-items:center;display:flex;position:absolute}.auth-tools .theme-switch{background:color-mix(in srgb, var(--text) 8%, transparent);margin:0}.auth-tools .theme-opt{flex:none;width:36px;height:34px}.auth-panel{display:none}@media (min-width:960px){.auth{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"panel side"}.auth[data-mode=signUp]{--auth-panel-hide:inset(0 0 0 100%);grid-template-areas:"side panel"}.auth-side{grid-area:side}.auth-panel{z-index:2;pointer-events:none;padding:calc(var(--auth-bar) + 32px) clamp(32px, 6vw, 96px) 64px;background:radial-gradient(120% 70% at 0% 100%, #ffffff0f, transparent 62%), var(--auth-panel);color:var(--auth-panel-ink);animation:auth-panel-in .76s var(--ease-out) backwards;grid-area:panel;align-content:center;display:grid;position:relative;overflow:hidden}.auth[data-mode=signUp] .auth-panel{background:radial-gradient(120% 70% at 100% 100%, #ffffff0f, transparent 62%), var(--auth-panel)}:root[data-theme=dark] .auth-panel{box-shadow:inset -1px 0 0 var(--border)}:root[data-theme=dark] .auth[data-mode=signUp] .auth-panel{box-shadow:inset 1px 0 0 var(--border)}.auth[data-mode=signUp] .auth-panel-logo{left:calc(var(--auth-m) - 100%)}}@keyframes auth-panel-in{0%{clip-path:var(--auth-panel-hide)}to{clip-path:inset(0)}}@keyframes auth-rise{0%{opacity:0;transform:translateY(14px)}}.auth-panel-in{justify-self:center;gap:clamp(40px,7vh,72px);width:100%;max-width:34rem;display:grid}.auth-head{align-items:center;gap:clamp(16px,2.5vw,40px);display:flex}.auth-head .auth-pitch{flex:auto;min-width:0}.auth-head-art{flex:none;place-items:center;width:clamp(104px,13vw,220px);display:grid}.auth-head-art .art{--text:var(--auth-panel-ink);--surface:var(--auth-panel);--raised:#1f221f;--border:#2a2e2a;--control:#3f443f;--muted:#aab0aa;--macro-protein:#3987e5;--macro-carbs:#d95926;--macro-fat:#199e70;opacity:0;width:100%;height:auto;transition:opacity .42s var(--ease-out), transform .42s var(--ease-out);grid-area:1/1;margin:0;transform:translateY(8px)}.auth-head-art .art.on{opacity:1;transition-delay:.12s;transform:none}@media (prefers-reduced-motion:reduce){.auth-head-art .art{transition:none;transform:none}}.auth-pitch{letter-spacing:-.035em;text-wrap:balance;animation:auth-rise .72s var(--ease-out) .16s both;margin:0;font-size:clamp(40px,4.2vw,72px);font-weight:500;line-height:1.02}.auth-pitch>.headline-line{display:grid}.auth-pitch{position:relative}.headline-line>span,.headline-measure>span{white-space:nowrap}.headline-measure{visibility:hidden;pointer-events:none;width:max-content;display:grid;position:absolute;top:0;left:0}.auth-pitch>.headline-line+.headline-line{color:var(--auth-panel-soft)}.headline-line>span{grid-area:1/1}.headline-line>.out{animation:.32s ease-in .14s forwards headline-out}.headline-line>.in:not(:only-child){animation:headline-in .56s var(--ease-out) .42s backwards}@keyframes headline-out{to{opacity:0;transform:translateY(-5px)}}@keyframes headline-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.headline-line>.out{display:none}}.auth-reasons{color:var(--auth-panel-soft);gap:16px;margin:0;padding:0;font-size:15px;line-height:1.45;list-style:none;display:grid}.auth-reasons li{animation:auth-rise .6s var(--ease-out) .32s both;align-items:center;gap:14px;display:flex}.auth-reasons li:nth-child(2){animation-delay:.4s}.auth-reasons li:nth-child(3){animation-delay:.48s}.auth-reason-ic{border:1px solid var(--auth-panel-line);width:36px;height:36px;color:var(--auth-panel-ink);border-radius:10px;flex:none;place-items:center;display:grid}.auth-reason-ic svg{width:18px;height:18px}.auth-side{padding:calc(var(--auth-bar) + 16px) var(--auth-m) 48px;align-content:center;justify-items:center;gap:28px;display:grid;position:relative}.auth-body{width:min(400px,100%);animation:auth-rise .56s var(--ease-out) .12s both;gap:20px;display:grid}.auth-card{gap:18px;display:grid}.auth-card h1{letter-spacing:-.02em;margin:0;font-size:clamp(28px,2.4vw,34px);font-weight:600;line-height:1.15}.auth-card .sub{color:var(--muted);margin:-8px 0 4px;line-height:1.5}.auth-form{gap:16px;display:grid}.auth-form .form-error{color:var(--negative);font-size:var(--fs-small);margin:0}.auth .input{border-radius:10px;height:46px;padding-inline:14px}.auth .btn.primary.auth-submit{background:var(--brand);color:#fff;border-radius:10px;width:100%;height:48px;margin-top:4px;font-size:16px}.auth .btn.primary.auth-submit:hover{background:color-mix(in srgb, var(--brand) 86%, #000)}.auth .btn.primary.auth-submit:disabled{opacity:.55;cursor:default}.auth-pass{display:block;position:relative}.auth-pass .input{width:100%;padding-right:48px}.auth-eye{width:36px;height:36px;color:var(--muted);cursor:pointer;transition:color var(--t-hover) ease, background-color var(--t-hover) ease;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.auth-eye:hover{background:var(--raised);color:var(--text)}.auth-eye:focus-visible{box-shadow:0 0 0 3px var(--focus-ring);outline:none}.auth-eye svg{width:18px;height:18px}.auth-alt{border-top:1px solid var(--rule);color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin:2px 0 0;padding-top:18px;display:flex}.auth-alt a{color:var(--text);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);font-weight:500}.auth-alt a:hover{text-decoration-color:currentColor}.auth-lang{width:200px;margin:0}.auth-note{color:var(--muted);font-size:var(--fs-small);margin:0;line-height:1.5}.plan-consent{font-size:var(--fs-small);margin:12px 0 0;line-height:1.5}.plan-consent a{color:var(--text);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent)}.auth-consent{color:var(--muted);font-size:var(--fs-small);margin:0;line-height:1.5}.auth-consent a{color:var(--text);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--text) 30%, transparent)}.auth-consent a:hover{text-decoration-color:currentColor}.legal-links{font-size:var(--fs-small);flex-wrap:wrap;gap:4px 16px;display:flex}.legal-links a{color:var(--muted);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);transition:color var(--t-ui) ease}.legal-links a:hover{color:var(--text);text-decoration-color:currentColor}.set-legal{margin-top:12px}.recovery-key{border:1px dashed color-mix(in srgb, var(--brand) 55%, var(--border));background:var(--raised);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-section);letter-spacing:.06em;text-align:center;word-spacing:.2em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;border-radius:10px;padding:16px;font-weight:600;line-height:1.6;display:block}.auth-row{gap:8px;display:flex}.auth-row .btn{flex:1}.auth-check{align-items:flex-start;line-height:1.4}.auth-check input{margin-top:2px}@media (max-width:959px){.auth-side{padding-top:calc(var(--auth-bar) + 24px);align-content:start}}::view-transition-old(.page-out){animation:vt-page-out .24s var(--ease-out) both}@keyframes vt-page-out{to{opacity:0;transform:translateY(-10px)}}::view-transition-group(.brand-move){z-index:1;animation-duration:.56s;animation-timing-function:cubic-bezier(.22,1,.36,1)}.auth .auth-ghost{z-index:0;pointer-events:none;grid-area:auto;position:absolute;top:0}.auth-ghost,.auth-ghost *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){::view-transition-old(.page-out){animation:none}::view-transition-group(.brand-move){animation:none}::view-transition-old(.brand-move){animation:none}::view-transition-new(.brand-move){animation:none}}.nav-signout{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.nav-signout:hover{color:var(--text)}.account-line{justify-content:space-between;align-items:center;gap:12px;display:flex}.account-line .label{color:var(--muted);font-size:var(--fs-small);display:block}.account-email{overflow-wrap:anywhere;font-weight:500}.account-delete{justify-self:start;margin-top:12px}.account-confirm{border-top:1px solid var(--rule);gap:12px;max-width:440px;margin-top:16px;padding-top:16px;display:grid}.account-confirm p{margin:0;line-height:1.45}.account-confirm .form-error{color:var(--negative);font-size:var(--fs-small)}.account-actions{gap:8px;display:flex}.catalogue-table .measure-unit{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;display:inline}.catalogue-table td:last-child{white-space:nowrap}.auth:has(.auth-body.leaving) :is(.auth-body,.auth-bar,.auth-tools,.auth-lang){animation:auth-out .32s var(--ease-out) forwards}.auth:has(.auth-body.leaving) .auth-bar{animation-delay:60ms}.auth:has(.auth-body.leaving) .auth-panel{animation:auth-panel-out .42s var(--ease-out) forwards}@keyframes auth-out{to{opacity:0;transform:translateY(-10px)scale(.97)}}@keyframes auth-panel-out{0%{clip-path:inset(0)}to{clip-path:var(--auth-panel-hide)}}@media (prefers-reduced-motion:no-preference) and (min-width:861px){.app.from-door .sidebar{animation:door-side .64s var(--ease-out) backwards}.app.from-door .canvas{animation:ds-page-in .56s var(--ease-out) .14s backwards}}@keyframes door-side{0%{opacity:0;transform:translate(-28px)}}@media (prefers-reduced-motion:reduce){.auth:has(.auth-body.leaving) :is(.auth-body,.auth-bar,.auth-tools,.auth-lang,.auth-panel){opacity:0;animation:none}}.promo-sub{color:var(--brand);font-weight:500}.art{--art-edge:color-mix(in srgb, var(--control) 75%, var(--muted));--art-mid:color-mix(in srgb, var(--control) 45%, var(--muted));--art-faint:color-mix(in srgb, var(--control) 55%, var(--raised));--art-ink-soft:color-mix(in srgb, var(--text) 78%, var(--raised));width:auto;max-width:100%;height:120px;margin-bottom:18px;display:block}.art.art-wide{height:96px}.shop-empty .art,.art-empty .art{margin-bottom:10px}.art.auth-art{height:104px;margin-bottom:14px}.art-empty{text-align:center;justify-items:center;padding:12px 0 4px;display:grid}.art-card{fill:var(--raised);stroke:var(--control);stroke-width:1.5px}.art-edge{fill:none;stroke:var(--control);stroke-width:1.5px}.art-line{fill:var(--control)}.art-ink{fill:var(--text)}.art-ink-stroke{fill:none;stroke:var(--text)}.art-brand{fill:var(--brand)}.art-white-stroke{fill:none;stroke:#fff}.art-p{fill:var(--macro-protein)}.art-c{fill:var(--macro-carbs)}.art-f{fill:var(--macro-fat)}.af-card{fill:var(--raised)}.af-ink{fill:var(--text)}.af-ink-soft{fill:var(--art-ink-soft)}.af-line{fill:var(--control)}.af-white{fill:#fff}.af-brand{fill:var(--brand)}.af-p{fill:var(--macro-protein)}.af-p-deep{fill:color-mix(in srgb, var(--macro-protein) 72%, #000)}.af-box{fill:var(--art-edge)}.af-c{fill:var(--macro-carbs)}.af-f{fill:var(--macro-fat)}.as-paper{stroke:var(--surface)}.as-edge{stroke:var(--art-edge)}.as-mid{stroke:var(--art-mid)}.as-faint{stroke:var(--art-faint)}.as-line{stroke:var(--control)}.as-ink{stroke:var(--text)}.as-brand{stroke:var(--brand)}.as-p{stroke:var(--macro-protein)}.as-c{stroke:var(--macro-carbs)}.as-f{stroke:var(--macro-fat)}.cookie-note{z-index:70;border:1px solid var(--border);background:var(--surface);width:min(480px,100vw - 32px);color:var(--text);box-shadow:0 1px 0 color-mix(in srgb, var(--text) 4%, transparent) inset, 0 18px 44px #00000029;animation:cookie-in .52s var(--ease-out) .6s both;border-radius:18px;grid-template-columns:auto minmax(0,1fr);column-gap:18px;padding:22px 22px 20px;display:grid;position:fixed;bottom:16px;right:16px}:root[data-theme=dark] .cookie-note{box-shadow:inset 0 1px #ffffff0a,0 20px 52px #0009}.cookie-note.leaving{animation:.22s ease-in forwards cookie-out}.cookie-note-ic{--cookie-tile:color-mix(in srgb, var(--brand) 11%, var(--surface));background:var(--cookie-tile);border-radius:14px;grid-row:1/span 2;place-items:center;width:52px;height:52px;display:grid;overflow:visible}.cookie-note-ic svg{width:32px;height:32px;overflow:visible}.cookie-dough{fill:var(--brand)}.cookie-chip{fill:color-mix(in srgb, var(--brand) 50%, #000)}.crumb{fill:var(--brand);stroke:var(--cookie-tile);stroke-width:.5px}.cookie-note h2{font-size:var(--fs-section);letter-spacing:-.01em;grid-column:2;margin:3px 0 6px;font-weight:600}.cookie-note p{color:var(--muted);font-size:var(--fs-body);text-wrap:pretty;grid-column:2;margin:0;line-height:1.5}.cookie-note-actions{flex-wrap:wrap;grid-column:2;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.cookie-note-actions .btn{min-width:120px}@keyframes cookie-in{0%{opacity:0;transform:translateY(18px)scale(.98)}}@keyframes cookie-out{to{opacity:0;transform:translateY(12px)scale(.98)}}.cookie-body,.crumb{transform-box:fill-box;transform-origin:50%}.cookie-body{animation:cookie-bite .56s var(--ease-out) 1s both}.crumb{opacity:0;animation:crumb-fall var(--fall,1.1s) cubic-bezier(.5, 0, .9, .5) var(--at,1.08s) both}.crumb-1{--dx:3px;--dy:15px;--turn:140deg}.crumb-2{--dx:4.5px;--dy:17px;--turn:-200deg;--at:1.16s;--fall:1.25s}.crumb-3{--dx:2.5px;--dy:12px;--turn:90deg;--at:1.24s;--fall:.95s}.cookie-note:hover .cookie-body{animation-name:cookie-bite-again;animation-delay:0s}.cookie-note:hover .crumb{--at:80ms;animation-name:crumb-fall-again}.cookie-note:hover .crumb-2{--at:.16s}.cookie-note:hover .crumb-3{--at:.24s}@keyframes cookie-bite{0%{transform:none}30%{transform:rotate(-12deg)scale(.94)}65%{transform:rotate(5deg)}to{transform:none}}@keyframes cookie-bite-again{0%{transform:none}30%{transform:rotate(-12deg)scale(.94)}65%{transform:rotate(5deg)}to{transform:none}}@keyframes crumb-fall{0%{opacity:0;transform:none}12%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) rotate(var(--turn))}}@keyframes crumb-fall-again{0%{opacity:0;transform:none}12%{opacity:1}80%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) rotate(var(--turn))}}@media (prefers-reduced-motion:reduce){.cookie-note{animation:none}.cookie-note.leaving{animation:1ms forwards cookie-out}.cookie-body,.cookie-note:hover .cookie-body{animation:none}.crumb,.cookie-note:hover .crumb{opacity:0;animation:none}}body:has(.cookie-note) .sync-toast{left:16px;right:auto}@media (max-width:600px){.cookie-note{width:auto;bottom:12px;left:12px;right:12px}body:has(.cookie-note) .sync-toast{top:16px;bottom:auto}}.list-tabs{flex-wrap:wrap;gap:6px;margin:-8px 0 18px;display:flex}.list-tab{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--muted);font:inherit;font-size:var(--fs-sub);cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease, border-color var(--t-hover) ease;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.list-tab:hover{color:var(--text);background:var(--raised)}.list-tab[aria-pressed=true]{border-color:var(--text);background:var(--text);color:var(--surface)}.list-tab .ic{width:14px;height:14px}.list-tab-new{justify-content:center;width:32px;padding:0}.fin-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.avatar{background:var(--active);width:32px;height:32px;color:var(--text);font-size:var(--fs-sub);border-radius:50%;flex:none;place-items:center;font-weight:600;display:inline-grid}.avatar.sm{width:22px;height:22px;font-size:var(--fs-xs)}.fin-main .avatar+.fin-what{margin-right:auto}.share-start{gap:14px;display:grid}.share-start>p,.share-body>p{margin:0}.share-note{border-radius:var(--radius-control);background:var(--raised);padding:10px 12px}.share-body{gap:10px;display:grid}.share-h{font-size:var(--fs-body);margin:8px 0 0;font-weight:600}.share-people{gap:2px;margin:0;padding:0;list-style:none;display:grid}.share-people li{min-height:var(--row-height);align-items:center;gap:10px;display:flex}.share-people .what{flex:1;min-width:0;display:grid}.share-people .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-people .sub{color:var(--muted);font-size:var(--fs-small)}.share-link{gap:8px;display:grid}.share-link .input{font-size:var(--fs-sub);color:var(--muted)}.share-link-actions{flex-wrap:wrap;gap:8px;display:flex}.share-hint{color:var(--muted);font-size:var(--fs-small);margin:0}.join-card{justify-items:start;gap:10px;max-width:560px;margin:24px auto;padding:28px;display:grid}.join-card h1{font-size:var(--fs-title);font-weight:600}.join-card p{max-width:60ch;margin:0}.join-ic{background:var(--raised);border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.join-ic .ic{width:24px;height:24px}.join-lead{font-size:var(--fs-section);font-weight:500}.join-note{border-radius:var(--radius-control);background:var(--raised);padding:12px 14px}.join-note.warn{color:var(--warning)}.join-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.ic-esplora .i-needle{transform-box:view-box;transform-origin:8px 8px}:is(.nav-item:hover,.nav-item:focus-visible,.nav-item[aria-current=page]) .ic-esplora .i-needle{animation:ic-compass .9s var(--ease-out)}@keyframes ic-compass{0%{transform:rotate(0)}45%{transform:rotate(200deg)}75%{transform:rotate(170deg)}to{transform:rotate(180deg)}}@media (prefers-reduced-motion:reduce){.ic-esplora .i-needle{animation:none!important}}.link-btn{color:var(--text);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.publish-as{color:var(--muted)}.tag{background:var(--active);height:20px;color:var(--text);font-size:var(--fs-xs);border-radius:999px;align-items:center;padding:0 8px;font-weight:500;display:inline-flex}.tag.bad{background:color-mix(in srgb, var(--negative) 16%, transparent);color:var(--negative)}.explore-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.explore-search{flex:260px;min-width:0;max-width:420px}.explore-filters{margin:0}.explore-count{margin:0 0 10px}.explore-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0;padding:0;list-style:none;display:grid}.explore-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);width:100%;height:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--t-hover) ease, transform var(--t-hover) ease;grid-template-rows:auto 1fr;padding:0;display:grid;overflow:hidden}.explore-card:hover{border-color:var(--control)}.explore-card:focus-visible{outline:2px solid var(--text);outline-offset:2px}.explore-photo{aspect-ratio:4/3;background:var(--raised);display:block}.explore-photo img,.explore-cover img,.explore-task-photo img{object-fit:cover;width:100%;height:100%;display:block}.explore-ph{width:100%;height:100%;color:var(--faint);place-items:center;display:grid}.explore-ph .ic{width:28px;height:28px}.explore-body{align-content:start;gap:4px;padding:12px 14px 14px;display:grid}.explore-name{font-weight:600;line-height:1.3}.explore-by{color:var(--muted);font-size:var(--fs-sub)}.explore-facts{font-size:var(--fs-sub)}.explore-meta{flex-wrap:wrap;align-items:center;gap:6px;min-height:0;display:flex}.explore-meta:empty{display:none}.explore-saves{color:var(--muted);font-size:var(--fs-small);align-items:center;gap:4px;display:inline-flex}.explore-saves .ic{width:13px;height:13px}.explore-dialog{width:min(720px,100vw - 24px)}.explore-detail{gap:10px;display:grid}.explore-detail>p{margin:0}.explore-detail .recipe-facts{margin-top:0}.explore-cover{aspect-ratio:16/9;border-radius:var(--radius-card);background:var(--raised);display:block;overflow:hidden}.explore-ings{gap:2px;margin:0;padding:0;list-style:none;display:grid}.explore-ings li{min-height:var(--row-height);border-top:1px solid var(--rule);align-items:center;gap:10px;display:flex}.explore-ings .what{flex:1;min-width:0;display:grid}.explore-ings .sub{color:var(--muted);font-size:var(--fs-small)}.explore-steps{gap:12px;margin:0;padding:0;list-style:none;display:grid}.explore-step-n{color:var(--muted);font-size:var(--fs-small);margin-bottom:4px;font-weight:500;display:block}.explore-task{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;display:grid}.explore-task:not(:has(.explore-task-photo)){grid-template-columns:minmax(0,1fr)}.explore-task p{white-space:pre-wrap;margin:0}.explore-task-photo{border-radius:var(--radius-control);background:var(--raised);width:72px;height:72px;display:block;overflow:hidden}.explore-report{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.explore-report label{grid-column:1/-1;font-weight:500}.explore-actions-start{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:860px){.explore-detail .recipe-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.explore-dialog .editor-actions{flex-wrap:wrap}}.public-name-row{gap:8px;display:flex}.public-name-row .input{flex:1;min-width:0}.plan-bar{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:20px;padding:8px 8px 8px 14px;display:grid}.plan-bar>.ic{color:var(--warning)}.plan-bar p{margin:0}.plan-bar b{font-weight:600}.plan-bar span{color:var(--muted)}@media (max-width:860px){.plan-bar{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:12px}.plan-bar>.ic{margin-top:2px}.plan-bar .btn{grid-column:1/-1}}.plans-page{gap:20px;width:min(640px,100%);margin:16px auto 48px;display:grid}.plans-hero{text-align:center;justify-items:center;gap:10px;display:grid}.plans-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(26px,4vw,32px);line-height:1.15}.plans-hero .sub{max-width:46ch;color:var(--muted);margin:0}.plans-free{background:color-mix(in srgb, var(--brand,#ea0214) 14%, transparent);color:var(--text);font-size:var(--fs-small);letter-spacing:.01em;border-radius:999px;padding:4px 12px;font-weight:600}.plan-options{perspective:900px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}.plan-option{--lift:0 22px 44px -22px #00000080;border:1px solid var(--border);background:var(--surface);cursor:pointer;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease, box-shadow .3s ease, transform .6s cubic-bezier(.22, 1, .36, 1);will-change:transform;border-radius:14px;align-content:start;gap:2px;padding:18px 20px 20px;display:grid;position:relative}.plan-option:before{content:"";border-radius:inherit;background:radial-gradient(circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--text) 9%, transparent), transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.plan-option:hover{border-color:var(--control);box-shadow:var(--lift);transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease, box-shadow .3s ease, transform .12s ease-out}.plan-option:hover:before{opacity:1}.plan-option:active{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(.985)}.plan-option>*{transform:translateZ(10px)}.plan-option .plan-price{transform:translateZ(28px)}.plan-option:has(input:checked){border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.plan-option:has(input:checked):hover{box-shadow:inset 0 0 0 1px var(--text), var(--lift)}@media (prefers-reduced-motion:reduce){.plan-option,.plan-option:active,.plan-option>*,.plan-option .plan-price{transform:none}}.plan-option:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.plan-option:has(input:checked:focus-visible){box-shadow:inset 0 0 0 1px var(--text), 0 0 0 3px var(--focus-ring)}.plan-option input{appearance:none;border:1.5px solid var(--control);width:18px;height:18px;transition:border-color var(--t-hover) ease;border-radius:50%;flex:none;place-items:center;margin:0;display:grid}.plan-option input:after{content:"";background:var(--text);width:8px;height:8px;transition:transform .22s var(--ease-out);border-radius:50%;transform:scale(0)}.plan-option input:checked{border-color:var(--text)}.plan-option input:checked:after{transform:scale(1)}.plan-option input:focus-visible{outline:none}.plan-head{align-items:center;gap:10px;min-height:22px;display:flex}.plan-name{font-weight:600}.plan-save{background:var(--pill-positive-bg);color:var(--pill-positive-ink);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;margin-left:auto;padding:2px 8px;font-weight:600}.plan-price{letter-spacing:-.02em;margin-top:14px;font-size:30px;font-weight:700;line-height:1.1}.plan-per{color:var(--muted);font-size:var(--fs-small)}.plan-included{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:4px 0 0;padding:0;list-style:none;display:grid}.plan-included li{color:var(--muted);font-size:var(--fs-sub);align-items:flex-start;gap:10px;line-height:1.4;display:flex}.plan-included .ic{width:14px;height:14px;color:var(--positive);flex:none;margin-top:2px}.plan-when{background:var(--raised);border-radius:12px;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px 16px;display:grid}.plan-when>.ic{color:var(--muted);margin-top:2px}.plan-when p{gap:4px;margin:0;display:grid}.plan-when small{color:var(--muted);font-size:var(--fs-small)}.plan-cta{justify-items:center;gap:10px;display:grid}.plan-cta .btn.primary{border-radius:12px;width:100%;height:48px;font-size:16px}.plan-cta>p{margin:0}.plan-cta .plan-consent{text-align:center;max-width:52ch}.plan-cta .plan-leave{font-size:var(--fs-small)}.plan-cta .plan-leave a{color:var(--negative);font-weight:500}.plans-page .form-error,.plan-state .form-error,.plan-due .form-error,.plan-error{color:var(--negative);font-size:var(--fs-small);margin:0}.plans-page .welcome-steps{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:14px;gap:18px;width:100%;margin:0;padding:20px 22px;list-style:none;display:grid}.plan-mine .welcome-steps li:not(:last-child):before{animation-delay:.16s}.plan-mine .welcome-steps li.done:not(:last-child):before{animation-delay:80ms}.welcome-steps li.warn .dot{border-color:var(--warning);background:var(--warning);box-shadow:0 0 0 5px color-mix(in srgb, var(--warning) 18%, transparent)}.plans-hero .sub.warn{color:var(--warning)}.plan-section{font-size:var(--fs-section);text-align:center;margin:10px 0 -8px;font-weight:600}.plan-current{background:var(--primary);color:var(--primary-ink);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;margin-left:auto;padding:2px 8px;font-weight:600}.plan-manage{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.plan-pay,.plan-receipts{gap:12px;display:grid}.pay-cards,.receipt-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.plans-page .pay-cards,.plans-page .receipt-list{padding:0}.pay-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;grid-template-columns:auto auto 1fr auto;align-items:center;gap:4px 14px;min-height:60px;padding:12px 16px;display:grid}.pay-card.default{border-color:color-mix(in srgb, var(--primary) 55%, var(--border))}.pay-card.wait{background:linear-gradient(90deg, var(--surface), var(--raised), var(--surface));background-size:200% 100%;height:60px;animation:1.2s ease-in-out infinite pay-wait}@keyframes pay-wait{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.pay-card.wait{animation:none}}.pay-brand{background:var(--raised);font-size:var(--fs-xs);letter-spacing:.02em;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-weight:650;display:inline-flex}.pay-brand img{width:auto;height:16px}.pay-num{letter-spacing:.04em;font-weight:600}.pay-exp{font-size:var(--fs-small)}.pay-actions{justify-self:end;gap:6px;display:flex}.pay-add{justify-self:start;gap:8px}.pay-form{border:1px solid var(--border);background:var(--surface);animation:wt-rise .32s var(--ease-out) both;border-radius:14px;gap:12px;padding:18px;display:grid}.pay-field{opacity:0;min-height:0;transition:opacity .24s}.pay-field.ready{opacity:1}.pay-field-wait{background:linear-gradient(90deg, var(--raised), var(--surface), var(--raised));background-size:200% 100%;border-radius:10px;height:120px;margin-top:-12px;animation:1.2s ease-in-out infinite pay-wait}.pay-note{font-size:var(--fs-small);align-items:flex-start;gap:8px;margin:0;display:flex}.pay-note .ic{flex:none;width:14px;height:14px;margin-top:2px}.pay-form-actions{justify-content:flex-end;gap:8px;display:flex}.pay-empty{margin:0}.receipt-list li{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto 56px;align-items:center;gap:14px;padding:10px 14px;display:grid}.receipt-list li:last-child{border-bottom:0}.receipt-list{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:0}.receipt-amount{font-weight:600}.receipt-status{font-size:var(--fs-xs);border-radius:999px;padding:2px 8px;font-weight:600}.receipt-status.paid{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.receipt-status.open{background:var(--pill-warning-bg);color:var(--warning)}.receipt-status.uncollectible{background:var(--pill-negative-bg);color:var(--negative)}.receipt-pdf{color:var(--text);font-size:var(--fs-small);justify-self:end;align-items:center;gap:4px;font-weight:600;text-decoration:none;display:inline-flex}.receipt-pdf:hover{text-decoration:underline}.receipt-pdf .ic{width:12px;height:12px}@media (max-width:560px){.pay-card{grid-template-columns:auto 1fr}.pay-exp{grid-column:2}.pay-actions{grid-column:1/-1;justify-self:start}.receipt-list li{grid-template-columns:1fr auto 44px}.receipt-status{display:none}}.plan-flash{color:var(--positive);text-align:center;animation:wt-rise .42s var(--ease-out) both;margin:0}.plan-due{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.plan-due>span:first-child{flex:260px}@media (max-width:560px){.plan-options,.plan-included{grid-template-columns:minmax(0,1fr)}.plans-page{margin-top:0}}.plan-welcome{text-align:center;justify-items:center;gap:12px;width:min(520px,100%);margin:48px auto;display:grid}.plan-welcome h1{letter-spacing:-.02em;margin:6px 0 0;font-size:clamp(26px,4vw,32px)}.plan-welcome .plan-lead{color:var(--muted);margin:0;font-size:16px}.plan-welcome>:not(.welcome-burst){animation:wt-rise .62s var(--ease-out) both}.plan-welcome>h1{animation-delay:.7s}.plan-welcome>.plan-lead{animation-delay:.78s}.plan-welcome>.welcome-steps{animation-delay:.88s}.plan-welcome>.welcome-go{animation-delay:.98s}.welcome-burst{place-items:center;width:104px;height:104px;display:grid;position:relative}.welcome-burst:after{content:"";border:2px solid var(--positive);opacity:0;border-radius:50%;animation:.9s ease-out .56s both wt-pulse;position:absolute;inset:4px}.welcome-tick{width:96px;height:96px;animation:.52s cubic-bezier(.34,1.56,.64,1) .52s both wt-pop}.welcome-tick circle{fill:#0000;stroke:var(--positive);stroke-width:2.5px;stroke-dasharray:151;stroke-dashoffset:151px;animation:wt-ring .56s var(--ease-out) forwards, wt-fill .26s .52s ease-out forwards}.welcome-tick path{fill:none;stroke:var(--primary-ink);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:34;stroke-dashoffset:34px;animation:wt-tick .34s .7s var(--ease-out) forwards}.welcome-burst i{background:var(--c);opacity:0;height:12px;animation:wt-confetti 1.2s var(--d) cubic-bezier(.15, .75, .3, 1) forwards;border-radius:2px;margin:-6px 0 0 -4px;position:absolute;top:50%;left:50%}.plan-welcome .welcome-steps{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:14px;gap:18px;width:100%;margin:14px 0 6px;padding:20px 22px;list-style:none;display:grid}.welcome-steps li{grid-template-columns:18px minmax(0,1fr);align-items:start;gap:14px;line-height:1.45;display:grid;position:relative}.welcome-steps .dot{z-index:1;border:2px solid var(--control);background:var(--surface);border-radius:50%;width:18px;height:18px;margin-top:3px;position:relative}.welcome-steps li.done .dot{border-color:var(--positive);background:var(--positive);box-shadow:0 0 0 5px color-mix(in srgb, var(--positive) 18%, transparent)}.welcome-steps li:not(:last-child):before{content:"";background:var(--control);transform-origin:top;width:2px;animation:wt-line .52s 1.1s var(--ease-out) both;border-radius:1px;position:absolute;top:25px;bottom:-21px;left:8px}.welcome-steps li.done:not(:last-child):before{background:linear-gradient(var(--positive), var(--control));animation-delay:1s}.welcome-steps .wt-step{gap:2px;display:grid}.welcome-steps .wt-step>b{font-size:17px;font-weight:650;line-height:1.4}.welcome-steps .wt-step>span{color:var(--muted);font-size:15px;line-height:1.45;display:block}.welcome-steps .wt-step>span:first-letter{text-transform:uppercase}@keyframes wt-line{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.welcome-steps li:before{animation:none}}.welcome-go{border-radius:12px;gap:10px;height:48px;padding:0 22px 0 26px;font-size:16px}@keyframes wt-ring{to{stroke-dashoffset:0}}@keyframes wt-fill{to{fill:var(--positive)}}@keyframes wt-tick{to{stroke-dashoffset:0}}@keyframes wt-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes wt-pulse{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes wt-confetti{0%{opacity:1;transform:translate(0)rotate(0)scale(.4)}75%{opacity:1}to{opacity:0;transform:translate(var(--x), calc(var(--y) + 70px)) rotate(var(--r)) scale(1)}}@keyframes wt-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.plan-welcome>*,.welcome-tick,.welcome-burst:after{animation:none!important}.welcome-burst i{display:none}.welcome-tick circle{stroke-dashoffset:0;fill:var(--positive);animation:none}.welcome-tick path{stroke-dashoffset:0;animation:none}}:root[data-gate=plan] .sidebar .nav,:root[data-gate=plan] .sidebar .brand-link{opacity:.35;pointer-events:none}.plan-state{justify-items:start;gap:10px;max-width:560px;margin:24px auto;padding:28px;display:grid}.plan-state h1{font-size:var(--fs-title);font-weight:600}.plan-state p{max-width:60ch;margin:0}.plan-state .warn,.plan-status.warn{color:var(--warning)}.plan-state .plan-actions{margin-top:8px}.plan-ic{background:var(--raised);border-radius:14px;place-items:center;width:48px;height:48px;display:grid}.plan-ic>span{display:grid}.plan-ic .ic{width:24px;height:24px}.plan-lead{font-size:var(--fs-section);font-weight:500}.plan-note{border-radius:var(--radius-control);background:var(--raised);color:var(--muted);padding:10px 12px}.set-panel .plan-note{font-size:var(--fs-sub);margin:14px 0 0}.set-panel .plan-error{margin-top:10px}.plan-status{font-weight:500;display:block}.admin-tabs{justify-self:start;margin:4px 0 20px}.admin-tabs button{height:34px;padding:0 16px}.admin-body{gap:20px;display:grid}.admin-wait{border-radius:var(--radius-card);background:linear-gradient(90deg, var(--surface), var(--raised), var(--surface));background-size:200% 100%;height:160px;animation:1.2s ease-in-out infinite pay-wait}.admin-kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.admin-kpi{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);gap:6px;padding:16px 18px;display:grid}.admin-kpi-label{color:var(--muted);font-size:var(--fs-small)}.admin-kpi-value{font-size:var(--fs-figure);letter-spacing:-.02em;font-weight:650}.admin-facts{gap:10px;margin-top:16px;display:grid}.admin-fact{background:var(--raised);border-radius:12px;align-items:flex-start;gap:12px;margin:0;padding:12px 14px;display:flex}.admin-fact>.ic{color:var(--positive);flex:none;margin-top:2px}.admin-fact.warn>.ic{color:var(--warning)}.admin-fact span{gap:2px;display:grid}.admin-fact small{color:var(--muted);font-size:var(--fs-small)}.admin-search{max-width:420px;display:block;position:relative}.admin-search .ic{width:16px;height:16px;color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.admin-search .input{width:100%;padding-left:36px}.admin-table{margin-top:12px}.admin-row{cursor:pointer}.admin-row:hover td{background:var(--raised)}.admin-row td.warn{color:var(--warning)}.admin-email{color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:500}.admin-email:hover{text-decoration:underline}.admin-badge{font-size:var(--fs-xs);vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 8px;font-weight:600;display:inline-block}.admin-badge.owner{background:var(--primary);color:var(--primary-ink)}.admin-badge.honor{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.admin-paging{justify-content:flex-end;align-items:center;gap:8px;margin-top:10px;display:flex}.admin-paging>span{margin-right:auto}.admin-held{gap:16px;max-width:760px;display:grid}.admin-back{justify-self:start;gap:6px;padding-left:4px}.admin-held-head h2{font-size:var(--fs-title);word-break:break-all;margin:0;font-weight:600}.admin-held-head p{max-width:70ch;margin:6px 0 0}.admin-h3{font-size:var(--fs-section);align-items:center;gap:8px;margin:0 0 10px;font-weight:600;display:flex}.admin-h3 .ic{width:15px;height:15px;color:var(--muted)}.admin-dl{margin:0 0 18px;display:grid}.admin-dl:last-child{margin-bottom:0}.admin-dl>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(150px,34%) minmax(0,1fr);gap:16px;padding:9px 0;display:grid}.admin-dl>div:last-child{border-bottom:0}.admin-dl dt{color:var(--muted)}.admin-dl dd{word-break:break-word;margin:0}.admin-dl dd.warn{color:var(--warning)}.admin-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-actions .btn{gap:8px}.admin-owner-note{font-size:var(--fs-small);margin:0}.admin-invites{gap:24px;max-width:760px;display:grid}.admin-invite-form{gap:12px;display:grid}.admin-invite-form p{margin:0}.admin-invite-form form{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.admin-invite-form form .btn.primary{justify-self:start}.admin-invite-form .segmented{flex-wrap:wrap;justify-self:start;display:inline-flex}.admin-link{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding-top:12px;display:flex}.admin-link code{background:var(--raised);font-size:var(--fs-small);border-radius:6px;padding:3px 8px}.admin-link .btn{gap:6px}.admin-invite-list{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);margin:0;padding:0;list-style:none;display:grid}.admin-invites .admin-invite-list{padding:0}.admin-invite-list li{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.admin-invite-list li:last-child{border-bottom:0}.admin-email-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (max-width:640px){.admin-dl>div{grid-template-columns:minmax(0,1fr);gap:2px}.admin-invite-list li{grid-template-columns:minmax(0,1fr) auto}}.stores{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:20px;display:grid}.stores-side{gap:12px;max-height:calc(100dvh - 180px);margin:-5px 0 0 -5px;padding:5px 8px 5px 5px;display:grid;overflow:auto}.stores-map{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--raised);z-index:0;height:calc(100dvh - 180px);min-height:420px;position:sticky;top:16px;overflow:hidden}.stores-search{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.stores-here{justify-self:start;gap:6px;padding-left:6px}.stores-brands{flex-wrap:wrap;gap:6px;display:flex}.store-chip{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--muted);font:inherit;font-size:var(--fs-small);cursor:pointer;transition:background-color var(--t-hover) ease, color var(--t-hover) ease, border-color var(--t-hover) ease;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 8px;font-weight:500;display:inline-flex}.store-chip.on{border-color:var(--control);background:var(--raised);color:var(--text)}.store-chip:not(.on) .store-dot{opacity:.35}.store-dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.stores-section{gap:8px;display:grid}.stores-section h2{font-size:var(--fs-section);margin:6px 0 0;font-weight:600}.stores-section p{margin:0}.stores-side .store-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.store-row{border:1px solid var(--border);background:var(--surface);transition:border-color var(--t-hover) ease, background-color var(--t-hover) ease;border-radius:12px;gap:8px;padding:10px 12px;display:grid}.store-row.selected{border-color:color-mix(in srgb, var(--primary) 60%, var(--border));background:color-mix(in srgb, var(--primary) 5%, var(--surface))}.store-main{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;padding:0;display:grid}.store-main .store-dot{margin-top:4px}.store-text{gap:1px;min-width:0;display:grid}.store-text b{font-weight:600}.store-text span,.store-text small{text-overflow:ellipsis;overflow:hidden}.store-text small{font-size:var(--fs-small)}.store-km{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}.store-actions{align-items:center;gap:6px;padding-left:22px;display:flex}.store-actions .btn{gap:6px}.store-star.on .ic{color:var(--warning);fill:currentColor}.stores-source{font-size:var(--fs-small)}.stores-map.leaflet-container,.stores-map .leaflet-container{font:inherit;background:var(--raised)}.stores-map .leaflet-control-attribution{font-size:11px}:root[data-theme=dark] .stores-map .leaflet-tile-pane{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.88)}.stores-map .store-cluster{box-sizing:border-box;border:2px solid var(--surface);background:var(--primary);box-shadow:0 0 0 1px var(--primary), 0 6px 14px -6px #00000080;color:var(--primary-ink);cursor:pointer;transition:transform .16s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:650;line-height:1;display:flex}.stores-map .store-cluster:hover{transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.stores-map .store-cluster{transition:none}}.stores-map .store-pin{box-sizing:border-box;color:#fff;cursor:pointer;transition:transform .16s var(--ease-out);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:flex;box-shadow:0 2px 6px #00000059}.stores-map .store-pin:hover{transform:scale(1.12)}.stores-map .store-pin.on{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 45%, transparent), 0 4px 10px #0006;font-size:14px}.stores-map .store-pin-migros{background:#f60}.stores-map .store-pin-coop{background:#e3000f}.stores-map .store-pin-aldi{background:#1b3f8f}.stores-map .store-pin-lidl{color:#0050aa;background:#ffd500;border-color:#0050aa}@media (prefers-reduced-motion:reduce){.stores-map .store-pin{transition:none}}.stores-map .store-me{position:relative}.stores-map .store-me span{background:#2a7de1;border:3px solid #fff;border-radius:50%;position:absolute;inset:3px;box-shadow:0 1px 4px #0006}.stores-map .store-me:before{content:"";background:#2a7de159;border-radius:50%;animation:1.8s ease-out infinite store-me;position:absolute;inset:0}@keyframes store-me{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2.6)}}@media (prefers-reduced-motion:reduce){.stores-map .store-me:before{opacity:.5;animation:none;transform:scale(1.6)}}.pop-stock{gap:6px}@media (max-width:900px){.stores{grid-template-columns:minmax(0,1fr)}.stores-map{order:-1;height:46vh;min-height:300px;position:relative;top:0}.stores-side{max-height:none;overflow:visible}}
