@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff)format("woff");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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff)format("woff");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}:root{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-body:"Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--cream:#f6eee3;--cream-deep:#efe4d4;--card:#fff;--ink:#2b211d;--ink-soft:#6b5d55;--ink-faint:#9a8b82;--line:#e6dccf;--tomato:#a63a24;--tomato-strong:#8e2f1c;--tomato-soft:#f5dfd8;--on-tomato:#fff;--green:#3f6b4a;--green-soft:#dfeadf;--yellow-soft:#fdf3d8;--yellow-line:#e8c872;--danger:#b3261e;--bg:var(--cream);--surface:var(--card);--surface-2:var(--cream-deep);--text:var(--ink);--text-soft:var(--ink-soft);--text-faint:var(--ink-faint);--border:var(--line);--accent:var(--tomato);--accent-strong:var(--tomato-strong);--accent-soft:var(--tomato-soft);--on-accent:var(--on-tomato);--dark-btn:var(--ink);--on-dark-btn:#fff;--notice:var(--yellow-soft);--notice-line:var(--yellow-line);--radius-sm:.625rem;--radius:1rem;--radius-lg:1.25rem;--radius-pill:999px;--shadow:0 1px 2px #2b211d0f, 0 2px 8px #2b211d0d;--tap:2.75rem;--tabbar-h:4rem;--gutter:1rem;--maxw:72rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c1714;--surface:#2a221e;--surface-2:#342a25;--text:#f3ebe2;--text-soft:#c9bbb0;--text-faint:#978a80;--border:#3d332d;--accent:#e07a5f;--accent-strong:#ea8e75;--accent-soft:#4a2c23;--on-accent:#1c1714;--dark-btn:#f3ebe2;--on-dark-btn:#1c1714;--notice:#3d3420;--notice-line:#8a7131;--green-soft:#26372a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1c1714;--surface:#2a221e;--surface-2:#342a25;--text:#f3ebe2;--text-soft:#c9bbb0;--text-faint:#978a80;--border:#3d332d;--accent:#e07a5f;--accent-strong:#ea8e75;--accent-soft:#4a2c23;--on-accent:#1c1714;--dark-btn:#f3ebe2;--on-dark-btn:#1c1714;--notice:#3d3420;--notice-line:#8a7131;--green-soft:#26372a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{font-size:100%}:root[data-text-size=large]{font-size:112.5%}:root[data-text-size=xlarge]{font-size:125%}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:1rem;line-height:1.45}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.12}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.125rem}p{margin:0}a{color:var(--accent)}img{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);font-size:.75rem;font-weight:700}.muted{color:var(--text-soft)}.small{font-size:.875rem}.tiny{font-size:.8125rem}.page{max-width:var(--maxw);padding:1rem var(--gutter) calc(var(--tabbar-h) + 6rem + env(safe-area-inset-bottom));margin:0 auto}.page.narrow{max-width:40rem}.page.no-tabs{padding-bottom:4rem}.stack{gap:var(--gap,1rem);flex-direction:column;display:flex}.row{align-items:center;gap:var(--gap,.75rem);display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.btn{min-height:var(--tap);border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.125rem;font-weight:700;text-decoration:none;transition:transform 60ms,background .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.dark{background:var(--dark-btn);border-color:var(--dark-btn);color:var(--on-dark-btn)}.btn.ghost{background:0 0;border-color:#0000}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.btn.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.big{border-radius:var(--radius);width:100%;min-height:3.5rem;font-size:1.0625rem}.btn.small{min-height:2.25rem;padding:.375rem .875rem;font-size:.875rem}.btn.link{color:var(--accent);min-height:var(--tap);background:0 0;border:none;padding:.5rem .25rem}.icon-btn{width:var(--tap);height:var(--tap);background:var(--surface);color:var(--text);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:50%;flex:none;place-items:center;display:inline-grid}.icon-btn.plain{box-shadow:none;background:0 0}.icon-btn.soft{background:var(--surface-2);box-shadow:none}.field{flex-direction:column;gap:.375rem;display:flex}.field>label,.label{font-size:.9375rem;font-weight:700}.field .hint{color:var(--text-soft);font-size:.8125rem}.input,.textarea,.select{width:100%;min-height:var(--tap);border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--text);padding:.625rem .875rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);outline:none}.textarea{resize:vertical;min-height:5rem;line-height:1.45}.input.title-input{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.checkbox-row{min-height:var(--tap);cursor:pointer;align-items:center;gap:.75rem;display:flex}.checkbox-row input{width:1.375rem;height:1.375rem;accent-color:var(--accent)}.error-text{color:var(--danger);font-size:.9375rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid color-mix(in srgb, var(--border) 60%, transparent)}.card.pad{padding:1rem}.chip{border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface);min-height:2.5rem;color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:.375rem;padding:.375rem 1rem;font-size:.9375rem;font-weight:700;display:inline-flex}.chip[aria-pressed=true],.chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip.tag{background:var(--surface-2);cursor:default;border-color:#0000;min-height:1.75rem;padding:.125rem .625rem;font-size:.8125rem}.notice{background:var(--notice);border:1.5px solid var(--notice-line);border-radius:var(--radius-sm);padding:.75rem 1rem}.notice.info{background:var(--green-soft);border-color:#0000}.segmented{background:var(--surface-2);border-radius:var(--radius);grid-auto-columns:1fr;grid-auto-flow:column;gap:.25rem;padding:.25rem;display:grid}.segmented button{min-height:var(--tap);border-radius:calc(var(--radius) - .25rem);cursor:pointer;color:var(--text-soft);background:0 0;border:none;justify-content:center;align-items:center;gap:.375rem;font-weight:700;display:inline-flex}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.avatar{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:1.5rem;height:1.5rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100dvh;padding:1.5rem var(--gutter);place-items:center;display:grid}.app-header{max-width:var(--maxw);padding:calc(1rem + env(safe-area-inset-top)) var(--gutter) .25rem;justify-content:space-between;align-items:flex-start;gap:1rem;margin:0 auto;display:flex}.brand{color:inherit;text-decoration:none;display:block}.brand .eyebrow{margin-bottom:.125rem;display:block}.brand .display{font-size:2rem}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-height:var(--tabbar-h);color:var(--text-soft);flex-direction:column;justify-content:center;align-items:center;gap:.125rem;font-size:.8125rem;font-weight:700;text-decoration:none;display:flex}.tabbar a.active{color:var(--accent)}@media (width>=48rem){.tabbar{padding-left:calc(50vw - 20rem);padding-right:calc(50vw - 20rem)}.tabbar a{flex-direction:row;gap:.5rem;font-size:.9375rem}}.fab{z-index:15;right:max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter)));bottom:calc(var(--tabbar-h) + 1rem + env(safe-area-inset-bottom));min-height:3.25rem;padding:.75rem 1.375rem;position:fixed;box-shadow:0 6px 18px #0003}.sheet-backdrop{z-index:50;background:#140e0b73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=40rem){.sheet-backdrop{align-items:center}}.sheet{background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:32rem;max-height:90dvh;padding:1.25rem var(--gutter) calc(1.25rem + env(safe-area-inset-bottom));overflow:auto}@media (width>=40rem){.sheet{border-radius:var(--radius-lg)}}.menu-list{flex-direction:column;display:flex}.menu-list button,.menu-list a{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;min-height:3.25rem;color:var(--text);background:0 0;align-items:center;gap:.75rem;padding:0 .5rem;font-weight:700;text-decoration:none;display:flex}.menu-list>:last-child{border-bottom:none}.menu-list .danger{color:var(--danger)}.toast{z-index:60;left:50%;bottom:calc(var(--tabbar-h) + 1.25rem + env(safe-area-inset-bottom));background:var(--dark-btn);color:var(--on-dark-btn);border-radius:var(--radius-pill);max-width:calc(100vw - 2rem);padding:.75rem 1.25rem;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.timer-chips{scrollbar-width:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.timer-chips::-webkit-scrollbar{display:none}.timer-chip{border-radius:var(--radius-pill);border:1.5px solid var(--accent);background:var(--accent-soft);min-height:3rem;color:var(--text);cursor:pointer;flex:none;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:700;display:inline-flex}.timer-chip .timer-time{font-variant-numeric:tabular-nums;font-size:1.125rem}.timer-chip .timer-label{text-overflow:ellipsis;white-space:nowrap;max-width:9rem;overflow:hidden}.timer-chip.paused{opacity:.7;border-style:dashed}.timer-chip.done{background:var(--accent);color:var(--on-accent);animation:.8s ease-in-out infinite alternate timer-flash}@keyframes timer-flash{0%{filter:brightness()}to{filter:brightness(1.35)}}@media (prefers-reduced-motion:reduce){.timer-chip.done,.timer-dock.done{animation:none}}.timer-big{text-align:center;font-variant-numeric:tabular-nums;font-size:3.5rem;font-weight:700;font-family:var(--font-display)}.timer-dock{z-index:16;left:50%;bottom:calc(var(--tabbar-h) + 5rem + env(safe-area-inset-bottom));min-height:var(--tap);border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:700;text-decoration:none;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #0003}.timer-dock.done{animation:.8s ease-in-out infinite alternate timer-flash}.timer-dock-more{border-radius:var(--radius-pill);background:#ffffff40;padding:0 .5rem;font-size:.875rem}.login{min-height:100dvh;padding:1.5rem var(--gutter) calc(1.5rem + env(safe-area-inset-bottom));place-items:center;display:grid}.login-card{flex-direction:column;gap:1.25rem;width:100%;max-width:26rem;display:flex}.login-brand{text-align:center;margin-bottom:.5rem}.login-brand .display{margin:.25rem 0 .5rem;font-size:2.75rem}.login-or{color:var(--text-faint);align-items:center;gap:.75rem;font-size:.875rem;display:flex}.login-or:before,.login-or:after{content:"";background:var(--border);flex:1;height:1px}.center{text-align:center}.code-input{letter-spacing:.3em;text-align:center;font-size:1.75rem;font-weight:700}.photo-pick{align-items:center;gap:1rem;display:flex}.plan-list{gap:.75rem;display:grid}.plan-week{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:.625rem;display:grid}.day-card{background:var(--surface);border:1.5px solid color-mix(in srgb, var(--border) 70%, transparent);border-radius:var(--radius);box-shadow:var(--shadow);gap:.75rem;padding:.875rem 1rem;display:grid}.day-card.today{border:2px solid var(--accent)}.day-card.empty{box-shadow:none;border:2px dashed var(--border);background:0 0;padding:.5rem .75rem .5rem 1rem}.day-card.drop-over{outline:3px solid var(--accent);outline-offset:2px}.day-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.day-head h2{font-size:1.25rem}.day-date{font-family:var(--font-body);color:var(--text-soft);font-size:.875rem;font-weight:400}.plan-week .day-head{flex-direction:column;align-items:flex-start}.plan-week .day-head h2{font-size:1.0625rem;display:grid}.day-entries{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.entry-row{border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:.25rem;display:flex}.entry-row.dragging{z-index:5;position:relative;box-shadow:0 10px 28px #0003}.plan-week .entry-row{cursor:grab}.entry-main{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.75rem;padding:.25rem 0;display:flex}.plan-week .entry-main{flex-direction:column;align-items:flex-start;gap:.375rem}.entry-text{min-width:0;display:grid}.entry-text strong{overflow-wrap:anywhere;line-height:1.25}.meal-label{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.plan-thumb{border-radius:var(--radius-sm);flex:none;width:3.25rem;height:3.25rem;position:relative;overflow:hidden}.plan-week .plan-thumb{width:100%;height:4.5rem}.plan-thumb img{object-fit:cover;width:100%;height:100%}.start-cooking-today{width:100%}.day-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.day-picker button{border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:3.5rem;color:var(--text);cursor:pointer;justify-items:center;gap:.125rem;padding:.5rem .25rem;display:grid}.day-picker button.on{border-color:var(--accent);background:var(--accent-soft)}.pick-list{gap:.375rem;max-height:55dvh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.pick-list button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;width:100%;color:inherit;cursor:pointer;align-items:center;gap:.75rem;padding:.375rem;display:flex}.pick-list button>span:last-child{display:grid}.build-days .checkbox-row{border-bottom:1px solid var(--border);min-height:3.25rem;padding:0 .25rem}.today-strip{gap:.5rem;display:grid}.today-strip-list{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) .25rem;gap:.625rem;display:flex;overflow-x:auto}.today-strip-list::-webkit-scrollbar{display:none}.today-card{width:15rem;color:inherit;border:2px solid var(--accent);flex:none;align-items:center;gap:.625rem;padding:.5rem;text-decoration:none;display:flex}.today-card>span:nth-child(2){min-width:0;display:grid}.today-card strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shopping-tools{min-height:2.25rem}.offline-pill{border-radius:var(--radius-pill);background:var(--notice);padding:.25rem .75rem;font-size:.8125rem;font-weight:700}.plan-banner{border-radius:var(--radius);background:var(--green-soft);align-items:center;gap:.75rem;padding:.75rem .75rem .75rem 1rem;font-size:.9375rem;display:flex}.update-btn{background:var(--green);border-color:var(--green);color:#fff}.add-item{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);align-items:center;gap:.5rem;padding:.375rem .375rem .375rem 1rem;display:flex;position:relative}.add-item:focus-within{border-color:var(--accent)}.add-item input{min-width:0;min-height:var(--tap);color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.add-item-btn{background:var(--dark-btn);color:var(--on-dark-btn);border-radius:var(--radius-sm);box-shadow:none}.add-item-btn:disabled{opacity:.45}.suggestions{z-index:12;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;box-shadow:0 8px 24px #0000001f}.suggestions button{text-align:left;width:100%;min-height:var(--tap);cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:.375rem;padding:0 .75rem}.suggestions button:hover{background:var(--surface-2)}.frequent{gap:.25rem;display:grid}.shop-section{gap:.5rem;display:grid}.shop-section>.eyebrow,.shop-section h2.eyebrow{font-family:var(--font-body);font-size:.8125rem}.shop-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.shop-row{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);border:1px solid color-mix(in srgb, var(--border) 60%, transparent)}.shop-row-main{align-items:center;min-height:3.25rem;display:flex}.shop-check{cursor:pointer;background:0 0;border:none;flex:none;align-self:stretch;place-items:center;width:3.25rem;display:grid}.shop-name{text-align:left;min-width:0;color:var(--text);cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:.75rem;padding:.625rem .25rem;display:flex}.shop-title{overflow-wrap:anywhere;flex:1;min-width:0}.shop-amount{white-space:nowrap;font-weight:700}.shop-more{color:var(--text-faint);width:2.5rem}.shop-row.checked{opacity:.55;box-shadow:none}.shop-row.checked .shop-title,.shop-row.checked .shop-amount{text-decoration:line-through}.shop-row.checked .check-box{background:var(--text-soft);border-color:var(--text-soft);color:var(--surface)}.shop-sources{gap:.25rem;margin:0;padding:0 1rem .75rem 3.25rem;font-size:.875rem;list-style:none;display:grid}.shop-sources li{color:var(--accent);justify-content:space-between;gap:1rem;display:flex}.shop-sources li span{color:var(--text-soft)}.shop-sources a{color:var(--accent)}.hidden-note{min-height:var(--tap);border-radius:var(--radius-sm);border:1.5px dashed var(--border);color:var(--text-soft);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.hidden-note strong{color:var(--text)}.got{margin-top:.5rem}.picker-list{max-height:52dvh;padding:.125rem;overflow:auto}.picker-row .check-box.ticked{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.picker-row.off{opacity:.55;box-shadow:none}.picker-confirm{position:sticky;bottom:0}.searchbar{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);min-height:3.25rem;color:var(--text-soft);align-items:center;gap:.625rem;padding:0 .5rem 0 1rem;display:flex}.searchbar:focus-within{border-color:var(--accent)}.searchbar input{min-width:0;min-height:3rem;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.searchbar input::-webkit-search-cancel-button{display:none}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (width>=40rem){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}}@media (width>=64rem){.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.recipe-card{position:relative;overflow:hidden}.recipe-card-link{color:inherit;height:100%;text-decoration:none;display:block}.recipe-card-photo{aspect-ratio:4/3.3;position:relative}.recipe-card-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-card-body{padding:.75rem .75rem .875rem}.recipe-card-body h3{overflow-wrap:anywhere;margin-bottom:.25rem;font-size:1.0625rem}.recipe-card-heart{position:absolute;top:.5rem;right:.5rem}.recipe-card-body{padding-right:2.25rem}.recipe-card-more{color:var(--text-faint);position:absolute;bottom:.25rem;right:.125rem}.heart-btn{color:var(--text)}.heart-btn.on{color:var(--accent)}.star-inline{color:#d99a1e}.chip-scroll{margin:0 calc(-1 * var(--gutter));padding:.125rem 0 .25rem;padding-left:var(--gutter);padding-right:var(--gutter);scrollbar-width:none;gap:.5rem;display:flex;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.chip-scroll .chip{flex:none}.more-chip{background:var(--surface-2);border-color:#0000}.chip-count{opacity:.7;font-size:.8125rem;font-weight:400}.library-summary{align-items:center;gap:.75rem;display:flex}.sort-select{flex:none;align-items:center;gap:.25rem;font-weight:700;display:inline-flex;position:relative}.sort-select select{appearance:none;min-height:var(--tap);cursor:pointer;color:var(--text);background:0 0;border:none;padding:.5rem 1.25rem .5rem .125rem;font-size:.875rem;font-weight:700}.sort-select svg{pointer-events:none;position:absolute;right:0}.filter-sheet h3{font-family:var(--font-body);font-size:.9375rem}.center-block{place-items:center;padding:3rem 0;display:grid}.empty{text-align:center;gap:.5rem;padding:2rem 1rem;display:grid}
