@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-latin-ext.c4fcfea4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 600;font-stretch:100%;font-display:swap;src:url(/fonts/instrument-sans-latin.2ee17598.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/space-grotesk-latin-ext.952dddb4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/space-grotesk-latin.06408904.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/jetbrains-mono-cyrillic.e17cfd15.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.db5ff4db.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/jetbrains-mono-latin.83c005d4.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/material-symbols-rounded.aa2d1cca.woff2)format("woff2")}:root{--font-display:"Space Grotesk", "Instrument Sans", system-ui, sans-serif;--font-body:"Instrument Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-icon:"Material Symbols Rounded";--bg:#fff;--bg-sunken:#f6f6f5;--bg-nav:#fbfbfa;--bg-inset:#eeeeec;--surface:#fff;--surface-2:#fafafa;--surface-3:#e9e9e6;--line:#e7e7e5;--line-strong:#d4d4d2;--line-row:#ececea;--ink:#0c0d0d;--ink-2:#5c5f5e;--ink-3:#9a9d9c;--ink-4:#c0c4c1;--accent:#1f9d55;--accent-ink:#fff;--accent-text:color-mix(in srgb, var(--accent) 72%, var(--ink));--accent-fill:color-mix(in srgb, var(--accent) 80%, var(--ink));--accent-soft:color-mix(in srgb, var(--accent) 12%, var(--bg));--accent-line:color-mix(in srgb, var(--accent) 35%, var(--bg));--neg:#e5484d;--neg-ink:#fff;--neg-text:color-mix(in srgb, var(--neg) 82%, var(--ink));--neg-fill:var(--neg-text);--neg-soft:#fce9ea;--on-brand:#fff;--ok:#2e8f63;--ok-soft:#e4f3ec;--warn:#ad741f;--warn-text:color-mix(in srgb, var(--warn) 75%, var(--ink));--warn-soft:#faf0dd;--accent-wash:color-mix(in srgb, var(--accent) 5%, var(--surface));--press:color-mix(in srgb, var(--ink) 8%, transparent);--photo-veil:color-mix(in srgb, var(--ink) 4%, transparent);--nav-glass:color-mix(in srgb, var(--bg-nav) 78%, transparent);--focus:var(--accent);--shadow:0 1px 2px #0c0d0d0a, 0 8px 24px -12px #0c0d0d1a;--shadow-sheet:0 -24px 60px -24px #1418164d;--scrim:#1e211f66;--blur-nav:blur(24px) saturate(180%);--radius-xs:6px;--radius-sm:9px;--radius:14px;--radius-lg:22px;--radius-sheet:26px;--radius-full:999px;--space-0:2px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--text-2xs:11px;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--leading-tight:1.2;--leading:1.4;--weight-normal:400;--weight-medium:500;--weight-bold:600;--weight-display:700;--tracking-tight:-.01em;--tap:44px;--hairline:1px;--ring:2px;--icon:24px;--icon-sm:20px;--icon-lg:40px;--dot:8px;--thumb-sm:44px;--thumb:64px;--thumb-lg:120px;--mark:20px;--card-min:150px;--shelf-card:150px;--tile:76px;--bar-h:52px;--logo:40px;--control-sm:32px;--chip-h:36px;--chip-sm-h:28px;--badge:18px;--stroke:2px;--switch-w:48px;--switch-h:28px;--handle-w:36px;--handle-h:4px;--chart-h:72px;--field-max-h:132px;--card-est:260px;--need-est:112px;--content-max:640px;--content-wide:1080px;--sheet-max:480px;--sheet-max-h:90dvh;--rail-w:88px;--tabbar-h:60px;--bubble-max:85%;--z-header:10;--z-nav:20;--z-toast:60;--ease:cubic-bezier(.2, .8, .2, 1);--dur-fast:.12s;--dur:.26s;--dur-slow:.44s;--dur-shimmer:1.4s;--press-scale:.97;--bump-scale:1.5;--disabled:.45;--stale:.55;--kb:0px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#14171a;--bg-sunken:#0e1012;--bg-nav:#0b0d0e;--bg-inset:#0e1011;--surface:#1c2023;--surface-2:#262b30;--surface-3:#1c2022;--line:#2a3036;--line-strong:#353c43;--line-row:#1a1e20;--ink:#f4f5f4;--ink-2:#a3a8a6;--ink-3:#626866;--ink-4:#3a4143;--accent:#3ecf7c;--accent-ink:#06120d;--accent-text:var(--accent);--accent-fill:var(--accent);--neg:#ff6166;--neg-ink:#1a0607;--neg-text:var(--neg);--neg-fill:var(--neg);--neg-soft:#2a1518;--ok:#7ec9a2;--ok-soft:#14221c;--warn:#e0a35c;--warn-text:var(--warn);--warn-soft:#26200f;--shadow:0 1px 2px #0006, 0 12px 32px -14px #0009;--shadow-sheet:0 -24px 60px -20px #000000d9;--scrim:#0405069e;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:10ms;--dur:10ms;--dur-slow:10ms;--press-scale:1;--bump-scale:1}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading);overscroll-behavior:none;margin:0}h1,h2,h3,p,ul,ol,fieldset,legend{margin:0;padding:0}ul,ol{list-style:none}fieldset{border:0;min-width:0}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{outline:var(--ring) solid var(--focus);outline-offset:var(--ring)}[hidden]{display:none!important}.app{--tabs-space:calc(var(--tabbar-h) + var(--safe-b));--nav-bottom:var(--tabs-space);--page:var(--bg);--page-glass:color-mix(in srgb, var(--page) 78%, transparent);background:var(--page);flex-direction:column;display:flex;position:fixed;inset:0}.app[data-bar]{--nav-bottom:calc(var(--tabs-space) + var(--bar-h) + var(--space-3))}.app-main{flex:1;min-width:0;min-height:0;position:relative}.screen{overscroll-behavior:contain;padding-bottom:var(--nav-bottom);flex-direction:column;display:flex;position:absolute;inset:0;overflow-y:auto}.screen[data-wide]{--content-max:var(--content-wide)}.screen-header{z-index:var(--z-header);padding:calc(var(--safe-t) + var(--space-2)) 0 var(--space-2);background:var(--page-glass);-webkit-backdrop-filter:var(--blur-nav);backdrop-filter:var(--blur-nav);position:sticky;top:0}.screen-header-inner,.screen-body,.screen-footer-inner{width:100%;max-width:var(--content-max);padding-inline:var(--space-4);margin-inline:auto}.screen-header-inner{align-items:center;gap:var(--space-2);min-height:var(--tap);display:flex}.screen-title{min-width:0;font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);flex:1}.screen-actions{align-items:center;margin-inline-end:calc(var(--space-2) * -1);display:flex}.screen-body{gap:var(--space-5);padding-block:var(--space-2) var(--space-6);flex-direction:column;flex:1;display:flex}.screen-body>.field{flex:none}.screen-footer{bottom:max(0px, var(--kb) - var(--nav-bottom));z-index:var(--z-header);padding:var(--space-2) 0 var(--space-3);border-top:var(--hairline) solid var(--line);background:var(--page-glass);-webkit-backdrop-filter:var(--blur-nav);backdrop-filter:var(--blur-nav);position:sticky}.section{gap:var(--space-3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--chip-h);display:flex}.section-link{align-items:center;gap:var(--space-1);min-height:var(--chip-h);border-radius:var(--radius-sm);transition:opacity var(--dur-fast) var(--ease);display:inline-flex}.section-link:active{opacity:var(--stale)}.section-link .icon{color:var(--ink-2)}.section-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);line-height:var(--leading-tight)}@media (min-width:900px){.app{--tabs-space:0px;--page:var(--bg-sunken);flex-direction:row}.screen-header{padding-top:var(--space-5)}.screen-footer{padding-bottom:var(--space-5)}}.icon{width:1em;height:1em;font-family:var(--font-icon);font-size:var(--icon);font-weight:var(--weight-normal);letter-spacing:normal;text-transform:none;white-space:nowrap;font-feature-settings:"liga";font-variation-settings:"FILL" 0;-webkit-user-select:none;user-select:none;transition:font-variation-settings var(--dur-fast) var(--ease);direction:ltr;flex:none;font-style:normal;line-height:1;display:inline-block;overflow:hidden}html:not([data-icons]) .icon{visibility:hidden}.icon[data-fill]{font-variation-settings:"FILL" 1}.icon[data-size=sm]{font-size:var(--icon-sm)}.icon[data-size=lg]{font-size:var(--icon-lg)}.btn{--btn-bg:var(--accent-fill);--btn-fg:var(--accent-ink);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-5);border-radius:var(--radius);background:var(--btn-bg);color:var(--btn-fg);font-weight:var(--weight-bold);line-height:var(--leading-tight);text-align:center;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);display:inline-flex}.btn[data-variant=tonal]{--btn-bg:var(--accent-soft);--btn-fg:var(--accent-text)}.btn[data-variant=ghost]{--btn-bg:transparent;--btn-fg:var(--ink)}.btn[data-variant=danger]{--btn-bg:var(--neg-fill);--btn-fg:var(--neg-ink)}.btn[data-block]{width:100%;display:flex}.btn:active{transform:scale(var(--press-scale));background:color-mix(in srgb, var(--btn-bg) 86%, var(--ink))}.btn[data-variant=ghost]:active{background:var(--press)}.btn:disabled,.icon-btn:disabled,.chip:disabled{opacity:var(--disabled);pointer-events:none}.icon-btn{--btn-bg:transparent;--btn-fg:var(--ink);width:var(--tap);height:var(--tap);border-radius:var(--radius-full);background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex:none;place-items:center;display:inline-grid;position:relative}.icon-btn[data-variant=tonal]{--btn-bg:var(--accent-soft);--btn-fg:var(--accent-text)}.icon-btn[data-variant=primary]{--btn-bg:var(--accent-fill);--btn-fg:var(--accent-ink)}.icon-btn[data-size=sm]{width:var(--control-sm);height:var(--control-sm)}.icon-btn[data-size=sm]:after,.chip:after{content:"";inset:calc((var(--control-sm) - var(--tap)) / 2);position:absolute}.icon-btn:active{transform:scale(var(--press-scale));background:color-mix(in srgb, var(--btn-bg) 86%, var(--ink))}.icon-btn[data-variant=ghost]:active{background:var(--press)}.chip{align-items:center;gap:var(--space-1);max-width:100%;min-height:var(--chip-h);padding:var(--space-1) var(--space-3);border:var(--hairline) solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--ink);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight);text-align:start;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex:none;display:inline-flex;position:relative}.chip:after{inset:calc((var(--chip-h) - var(--tap)) / 2) 0}.chip:active{transform:scale(var(--press-scale));background:var(--bg-inset)}.chip[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-text)}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chips[data-scroll]{scrollbar-width:none;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);flex-wrap:nowrap;overflow-x:auto}.chips[data-scroll] .chip{white-space:nowrap;max-width:none}.field{align-items:center;gap:var(--space-2);min-width:0;min-height:var(--tap);padding:0 var(--space-1) 0 var(--space-3);border:var(--hairline) solid var(--line);border-radius:var(--radius);background:var(--bg-sunken);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);flex:1;display:flex}.field:focus-within{border-color:var(--accent-line);background:var(--surface)}.field>.icon{color:var(--ink-2)}.field[data-multiline]{align-items:flex-end}.field[data-multiline]>.icon,.field[data-multiline]>.icon-btn{margin-block:calc((var(--tap) - var(--hairline) * 2 - var(--control-sm)) / 2)}.field[data-multiline]>.icon{margin-block:calc((var(--tap) - var(--hairline) * 2 - var(--icon-sm)) / 2)}.field-input{min-width:0;padding:var(--space-2) 0;font-weight:var(--weight-medium);line-height:var(--leading);resize:none;appearance:none;background:0 0;border:0;outline:0;flex:1}textarea.field-input{max-height:var(--field-max-h);overflow-y:auto}.field-input::placeholder{color:var(--ink-2);font-weight:var(--weight-normal);opacity:1}.field-input::-webkit-search-cancel-button{display:none}.stepper{border-radius:var(--radius-full);background:var(--bg-inset);flex:none;align-items:center;display:inline-flex}.stepper-value{min-width:var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;text-align:center;animation:bump var(--dur) var(--ease);display:inline-block}@keyframes bump{0%{transform:scale(var(--bump-scale))}}.stepper[data-tone=accent]{background:var(--accent-fill);color:var(--accent-ink)}.stepper[data-tone=accent] .icon-btn{--btn-fg:var(--accent-ink)}.switch{width:var(--switch-w);height:var(--switch-h);border-radius:var(--radius-full);background:var(--line-strong);transition:background var(--dur) var(--ease);flex:none;position:relative}.switch:after{content:"";inset:calc((var(--switch-h) - var(--tap)) / 2) 0;position:absolute}.switch[aria-checked=true]{background:var(--accent-fill)}.switch-thumb{top:var(--space-0);left:var(--space-0);width:calc(var(--switch-h) - var(--space-0) * 2);height:calc(var(--switch-h) - var(--space-0) * 2);border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--shadow);transition:transform var(--dur) var(--ease);position:absolute}.switch[aria-checked=true] .switch-thumb{transform:translateX(calc(var(--switch-w) - var(--switch-h)));background:var(--accent-ink)}.segmented{gap:var(--space-2);flex-direction:column;display:flex}.segmented-label{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium)}.segmented-options{padding:var(--space-0);border-radius:var(--radius);background:var(--bg-inset);display:flex}.segmented-option{cursor:pointer;flex:1;min-width:0;position:relative}.segmented-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented-option span{min-height:calc(var(--tap) - var(--space-0) * 2);padding:var(--space-1) var(--space-2);border-radius:calc(var(--radius) - var(--space-0));color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight);text-align:center;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);place-items:center;display:grid}.segmented-option input:checked+span{background:var(--surface);color:var(--ink);font-weight:var(--weight-bold);box-shadow:var(--shadow)}.segmented-option input:focus-visible+span{outline:var(--ring) solid var(--focus);outline-offset:calc(var(--ring) * -1)}.money{font-family:var(--font-mono);font-size:var(--text-md);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);white-space:nowrap}.money[data-size=sm]{font-size:var(--text-xs)}.money[data-size=lg]{font-size:var(--text-lg)}.money[data-size=xl]{font-size:var(--text-xl)}.money[data-tone=muted],.money[data-tone=strike]{color:var(--ink-2);font-weight:var(--weight-medium)}.money[data-tone=accent]{color:var(--accent-text)}.store-chip{--store-color:var(--ink-3);align-items:center;gap:var(--space-1);min-height:var(--chip-sm-h);padding:0 var(--space-2);border:var(--hairline) solid var(--line);border-radius:var(--radius-full);background:var(--surface);color:var(--ink);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-tight);white-space:nowrap;flex:none;display:inline-flex}.store-chip[data-best]{border-color:var(--accent-line);background:var(--accent-soft)}.store-chip[data-muted]{color:var(--ink-2);text-decoration:line-through}.store-chip-note{color:var(--ink-2);font-weight:var(--weight-normal)}.store-dot{width:var(--dot);height:var(--dot);border-radius:var(--radius-full);background:var(--store-color);flex:none}.store-logo{--store-color:var(--ink-3);width:var(--logo);height:var(--logo);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--store-color) 16%, var(--surface));color:color-mix(in srgb, var(--store-color) 62%, var(--ink));font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);flex:none;place-items:center;display:grid;overflow:hidden}.store-logo img{object-fit:contain;width:100%;height:100%}.store-logo[data-size=xs]{width:var(--mark);height:var(--mark);border-radius:var(--radius-full);background:var(--store-color);color:var(--on-brand);font-size:var(--text-2xs);box-shadow:0 0 0 var(--space-0) var(--surface)}.store-marks{flex:none;padding-inline-start:var(--space-1);display:inline-flex}.store-marks .store-logo{margin-inline-start:calc(var(--space-1) * -1)}.photo{width:var(--thumb);aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--ink-3);flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.photo[data-size=sm]{width:var(--thumb-sm)}.photo[data-size=lg]{width:var(--thumb-lg);border-radius:var(--radius)}.photo[data-size=fill]{border-radius:var(--radius);width:100%}.photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo:after{content:"";background:var(--photo-veil);pointer-events:none;position:absolute;inset:0}.row{align-items:center;gap:var(--space-3);min-height:var(--tap);padding-block:var(--space-2);display:flex}.row+.row,li+li>.row{border-top:var(--hairline) solid var(--line-row)}.row-leading{flex:none;place-items:center;display:grid}.row-text{flex:1;min-width:0}.row-title{font-weight:var(--weight-medium);line-height:var(--leading-tight);overflow-wrap:anywhere}.row-subtitle{align-items:center;gap:var(--space-0) var(--space-2);margin-top:var(--space-1);color:var(--ink-2);font-size:var(--text-sm);line-height:var(--leading-tight);flex-wrap:wrap;display:flex}.row-trailing{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex:none;display:flex}.tag{align-items:center;gap:var(--space-1);padding:var(--space-0) var(--space-2);border-radius:var(--radius-xs);background:var(--warn-soft);color:var(--warn-text);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:var(--leading);white-space:nowrap;display:inline-flex}.tag[data-tone=accent]{background:var(--accent-fill);color:var(--accent-ink)}.tag[data-tone=neg]{background:var(--neg-fill);color:var(--neg-ink)}.tag[data-tone=neutral]{background:var(--bg-inset);color:var(--ink-2)}.card{padding:var(--space-4);border:var(--hairline) solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;display:flex}.skeleton-group{gap:var(--space-3);flex-direction:column;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(100deg, var(--bg-inset) 30%, var(--surface-2) 50%, var(--bg-inset) 70%);animation:skeleton-shimmer var(--dur-shimmer) linear infinite;background-size:300% 100%;display:block}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.skeleton-group[data-shape=product],.skeleton-group[data-shape=tile]{grid-template-columns:repeat(auto-fill, minmax(var(--card-min), 1fr));gap:var(--space-5) var(--space-3);display:grid}.skeleton-group[data-shape=tile]{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:var(--tile);gap:var(--space-3);overflow:hidden}.skeleton-cell{gap:var(--space-2);flex-direction:column;display:flex}.skeleton-photo{aspect-ratio:1;border-radius:var(--radius)}.skeleton-line{height:var(--text-sm)}.skeleton-line[data-w=l]{width:80%}.skeleton-line[data-w=m]{width:55%}.skeleton-need{height:var(--need-est);border-radius:var(--radius-lg)}.skeleton-chart{height:var(--chart-h)}.skeleton-card{height:calc(var(--tap) * 2.5);border-radius:var(--radius-lg)}.empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--ink-3);text-align:center;flex-direction:column;flex:1;display:flex}.empty-title{color:var(--ink-2);font-weight:var(--weight-medium)}.tabs{z-index:var(--z-nav);height:calc(var(--tabbar-h) + var(--safe-b));padding:0 var(--space-2) var(--safe-b);border-top:var(--hairline) solid var(--line);background:var(--nav-glass);-webkit-backdrop-filter:var(--blur-nav);backdrop-filter:var(--blur-nav);grid-template-columns:repeat(4,1fr);display:grid;position:absolute;inset:auto 0 0}.tab{justify-content:center;align-items:center;gap:var(--space-0);min-width:var(--tap);min-height:var(--tap);color:var(--ink-2);-webkit-user-select:none;user-select:none;transition:color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);flex-direction:column;display:flex}.tab:active{transform:scale(var(--press-scale))}.tab[aria-current=page]{color:var(--accent-text)}.tab:focus-visible{outline-offset:calc(var(--ring) * -1);border-radius:var(--radius)}.tab-icon{place-items:center;display:grid;position:relative}.tab-badge{top:calc(var(--space-1) * -1);left:calc(100% - var(--space-2));min-width:var(--badge);height:var(--badge);padding:0 var(--space-1);border-radius:var(--radius-full);background:var(--accent-fill);color:var(--accent-ink);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:var(--weight-bold);place-items:center;line-height:1;display:grid;position:absolute}.tab-label{max-width:100%;font-size:var(--text-2xs);font-weight:var(--weight-medium);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (min-width:900px){.tabs{align-content:start;gap:var(--space-2);width:var(--rail-w);height:auto;padding:var(--space-5) var(--space-2);border-top:0;border-right:var(--hairline) solid var(--line);background:var(--bg-nav);-webkit-backdrop-filter:none;backdrop-filter:none;flex:none;order:-1;grid-template-columns:none;grid-auto-rows:min-content;position:static}.tab{min-height:calc(var(--tap) + var(--space-4));border-radius:var(--radius)}.tab[aria-current=page]{background:var(--accent-soft)}}.sheet{width:100%;max-width:none;height:100%;max-height:none;padding:0 0 var(--kb);color:inherit;background:0 0;border:0;margin:0;position:fixed;inset:0;overflow:hidden}.sheet[open]{justify-content:center;align-items:flex-end;display:flex}.sheet::backdrop{background:var(--scrim);animation:sheet-fade var(--dur) var(--ease)}.sheet[data-state=closing]::backdrop{animation:sheet-fade var(--dur) var(--ease) reverse forwards}.sheet-panel{--drag:0px;width:100%;max-width:var(--sheet-max);max-height:min(var(--sheet-max-h), 100dvh - var(--kb) - var(--safe-t) - var(--space-4));border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;background:var(--surface);box-shadow:var(--shadow-sheet);transform:translateY(var(--drag));transition:transform var(--dur) var(--ease);animation:sheet-in var(--dur-slow) var(--ease);flex-direction:column;display:flex}.sheet-panel[data-dragging]{transition:none}.sheet[data-state=closing] .sheet-panel{animation:sheet-out var(--dur) var(--ease) forwards}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes sheet-fade{0%{opacity:0}}.sheet-header{padding:0 var(--space-2) var(--space-1) var(--space-5);flex:none;align-items:flex-end;display:flex}.sheet-grip{gap:var(--space-3);min-width:0;padding-top:var(--space-2);touch-action:none;cursor:grab;flex-direction:column;flex:1;display:flex}.sheet-handle{width:var(--handle-w);height:var(--handle-h);border-radius:var(--radius-full);background:var(--line-strong);align-self:center;margin-inline-start:calc(var(--tap) - var(--space-3))}.sheet-title{min-height:var(--tap);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);line-height:var(--leading-tight);overflow-wrap:anywhere;align-items:center;display:flex}.sheet-body{gap:var(--space-5);overscroll-behavior:contain;min-height:0;padding:var(--space-2) var(--space-5) calc(var(--space-5) + var(--safe-b));flex-direction:column;flex:1;display:flex;overflow-y:auto}.sheet-footer{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5) calc(var(--space-3) + var(--safe-b));border-top:var(--hairline) solid var(--line);flex:none;display:flex}.sheet-body:not(:last-child){padding-bottom:var(--space-5)}.confirm-actions{gap:var(--space-2);flex-direction:column;display:flex}@media (min-width:900px){.sheet[open]{align-items:center}.sheet-panel{border-radius:var(--radius-sheet);animation-name:sheet-pop}.sheet[data-state=closing] .sheet-panel{animation-name:sheet-pop-out}.sheet-handle{visibility:hidden}}@keyframes sheet-pop{0%{opacity:0;transform:translateY(var(--space-6))}}@keyframes sheet-pop-out{to{opacity:0;transform:translateY(var(--space-6))}}.toaster{inset:auto var(--space-4) calc(var(--nav-bottom) + var(--space-3) + var(--kb));z-index:var(--z-toast);pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-2);max-width:var(--sheet-max);min-height:var(--tap);padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--ink);color:var(--bg);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight);text-align:start;box-shadow:var(--shadow);pointer-events:auto;animation:toast-in var(--dur) var(--ease);display:flex}.toast .icon{color:var(--neg)}@keyframes toast-in{0%{opacity:0;transform:translateY(var(--space-3))}}.pcards{grid-template-columns:repeat(auto-fill, minmax(var(--card-min), 1fr));gap:var(--space-5) var(--space-3);display:grid}.pcards[data-layout=shelf]{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:var(--shelf-card);overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);overflow-x:auto}.pcard{gap:var(--space-2);content-visibility:auto;contain-intrinsic-size:auto var(--card-est);flex-direction:column;min-width:0;display:flex}.pcard-photo{border-radius:var(--radius);cursor:pointer;transition:transform var(--dur-fast) var(--ease);position:relative}.pcard-photo:active{transform:scale(var(--press-scale))}.pcard[data-in-basket] .photo{outline:var(--ring) solid var(--accent-fill);outline-offset:calc(var(--ring) * -1)}.pcard-off{top:var(--space-2);left:var(--space-2);position:absolute}.pcard-photo .store-marks{left:var(--space-2);bottom:var(--space-2);position:absolute}.pcard-add{right:var(--space-2);bottom:var(--space-2);border-radius:var(--radius-full);box-shadow:var(--shadow);animation:pop var(--dur) var(--ease);display:flex;position:absolute}@keyframes pop{0%{transform:scale(var(--press-scale))}}.pcard-text{gap:var(--space-1);border-radius:var(--radius-sm);text-align:start;flex-direction:column;flex:1;min-width:0;display:flex}.pcard-text:focus-visible{outline-offset:calc(var(--ring) * -1)}.pcard-name{font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pcard-meta{color:var(--ink-2);font-size:var(--text-xs);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pcard-price{align-items:baseline;gap:var(--space-0) var(--space-2);padding-top:var(--space-1);flex-wrap:wrap;margin-top:auto;display:flex}.tiles{grid-auto-flow:column;grid-auto-columns:var(--tile);gap:var(--space-3);overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:calc(var(--space-4) * -1);padding-inline:var(--space-4);display:grid;overflow-x:auto}.tile{gap:var(--space-2);border-radius:var(--radius);text-align:center;-webkit-user-select:none;user-select:none;min-width:0;transition:transform var(--dur-fast) var(--ease);flex-direction:column;display:flex}.tile:active{transform:scale(var(--press-scale))}.tile-name{font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:var(--leading-tight);overflow-wrap:anywhere}.basket-bar{inset:auto var(--space-3) calc(var(--tabs-space) + var(--space-2));z-index:var(--z-nav);align-items:center;gap:var(--space-2);max-width:calc(var(--content-max) - var(--space-4) * 2);height:var(--bar-h);padding-inline:var(--space-4) var(--space-3);border-radius:var(--radius-lg);background:var(--accent-fill);color:var(--accent-ink);text-align:start;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;transition:transform var(--dur-fast) var(--ease);animation:bar-in var(--dur) var(--ease);margin-inline:auto;display:flex;position:absolute}.basket-bar:active{transform:scale(var(--press-scale))}@keyframes bar-in{0%{opacity:0;transform:translateY(var(--space-3))}}.basket-bar-count{min-width:var(--icon);height:var(--icon);padding-inline:var(--space-1);border-radius:var(--radius-full);background:var(--accent-ink);color:var(--accent-fill);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;animation:bump var(--dur) var(--ease);place-items:center;line-height:1;display:grid}.basket-bar-label{min-width:0;font-weight:var(--weight-bold);flex:1}.basket-bar-total{transition:opacity var(--dur) var(--ease)}.basket-bar-total[data-stale]{opacity:var(--stale)}.basket-bar[data-inline]{width:100%;max-width:none;animation:none;position:static}.product-head{align-items:center;gap:var(--space-4);display:flex}.product-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.product-meta{color:var(--ink-2);font-size:var(--text-sm);line-height:var(--leading-tight)}.history{gap:var(--space-2);flex-direction:column;margin:0;display:flex}.history-title{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium)}.history-chart{gap:var(--space-3);height:var(--chart-h);display:flex}.history-chart svg{flex:1;min-width:0;height:100%;overflow:visible}.history-line{fill:none;stroke:var(--store-color,var(--ink-3));stroke-width:var(--stroke);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.history-scale{flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex}.plan-cards,.store-cards{gap:var(--space-3);transition:opacity var(--dur) var(--ease);flex-direction:column;display:flex}.plan-cards[data-stale],.store-cards[data-stale]{opacity:var(--stale)}.plan-card{gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);text-align:start;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}.plan-card:active{transform:scale(var(--press-scale));background:var(--surface-2)}.plan-card[data-lead]{gap:var(--space-3);padding:var(--space-4);border:var(--ring) solid var(--accent-fill);background:var(--accent-soft)}.plan-card[data-lead] .plan-card-title{font-size:var(--text-lg)}.plan-card-strip{align-items:center;gap:var(--space-1);display:flex;overflow:hidden}.plan-card-rest{width:var(--thumb-sm);aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-inset);color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-bold);flex:none;place-items:center;display:grid}.plan-card-head{align-items:center;gap:var(--space-2);color:var(--ink-3);display:flex}.plan-card-title{min-width:0;color:var(--ink);font-family:var(--font-display);font-weight:var(--weight-display);line-height:var(--leading-tight);flex:1}.plan-card-stores{gap:var(--space-2);flex-wrap:wrap;display:flex}.plan-card-figures{justify-content:space-between;align-items:flex-end;gap:var(--space-3);display:flex}.figure{gap:var(--space-0);flex-direction:column;min-width:0;display:flex}.figure[data-end]{align-items:flex-end}.figure[data-row]{justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-direction:row;flex:1}.figure-label{color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-tight)}.plan-card>.tag{align-self:flex-start}.stop{flex-direction:column;display:flex}.stop-name{font-family:var(--font-display);font-weight:var(--weight-display)}.stop-items{border-top:var(--hairline) solid var(--line-row)}.stop-missing{padding-inline-start:calc(var(--logo) + var(--space-3));padding-block:var(--space-2);display:flex}.times{align-items:baseline;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);display:inline-flex}.needs{gap:var(--space-2);flex-direction:column;display:flex}.need{gap:var(--space-2);padding:var(--space-3);content-visibility:auto;contain-intrinsic-size:auto var(--need-est);flex-direction:row}.need-main{align-items:center;gap:var(--space-3);border-radius:var(--radius-sm);text-align:start;min-width:0;transition:background var(--dur-fast) var(--ease);flex:1;display:flex}.need-main:active{background:var(--press)}.need-main:focus-visible{outline-offset:calc(var(--ring) * -1)}.need-text{align-items:flex-start;gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.need-name{font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.need-meta,.need-match{max-width:100%;color:var(--ink-2);font-size:var(--text-xs);line-height:var(--leading-tight)}.need-match{align-items:center;gap:var(--space-1);color:var(--accent-text);font-weight:var(--weight-medium);display:flex}.need-match span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.need-price{align-items:baseline;gap:var(--space-0) var(--space-2);flex-wrap:wrap;display:flex}.need-side{justify-content:space-between;align-items:flex-end;gap:var(--space-2);flex-direction:column;flex:none;display:flex}.anchor{scroll-margin-top:calc(var(--tap) + var(--space-6))}.chips[data-center]{justify-content:center}.thread{gap:var(--space-5);flex-direction:column;display:flex}.turn{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.turn[data-role=user]{max-width:var(--bubble-max);align-self:flex-end}.bubble{padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg);background:var(--accent-soft);white-space:pre-wrap;overflow-wrap:anywhere}.reply{white-space:pre-wrap;overflow-wrap:anywhere}.working{align-items:center;gap:var(--space-2);color:var(--ink-2);font-size:var(--text-sm);font-weight:var(--weight-medium);display:inline-flex}.working-dots{gap:var(--space-1);display:inline-flex}.working-dots i{width:var(--space-1);height:var(--space-1);border-radius:var(--radius-full);animation:working-pulse var(--dur-shimmer) var(--ease) infinite;background:currentColor}.working-dots i:nth-child(2){animation-delay:calc(var(--dur-shimmer) / 6)}.working-dots i:nth-child(3){animation-delay:calc(var(--dur-shimmer) / 3)}@keyframes working-pulse{0%,60%,to{opacity:.25}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.working-dots i{animation:none}}.store-card{padding-block:var(--space-2)}.store-card[data-off]>ul,.store-card[data-off] .store-logo{opacity:var(--disabled)}.store-none{padding-block:var(--space-2);color:var(--ink-2);font-size:var(--text-sm)}.distance{color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap}
