@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-opsz-normal-DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #fbf6ee;--surface: #ffffff;--surface-sunk: #f3e4d6;--segment: #f1e6d6;--warm-muted: #efe3d2;--ink: #2b2118;--ink-2: #5b4b3e;--ink-3: #6b5d50;--ink-4: #8a7664;--line: #eadccb;--line-strong: #e3d0ba;--line-dashed: #cdb79e;--line-dashed-strong: #b59b80;--checkbox-line: #a8957f;--accent: #b83a22;--accent-soft: #f4c9b8;--accent-ink: #7a2a14;--on-accent: #ffffff;--danger: #a32e1a;--danger-soft: #f8e1db;--disabled: #b9a28f;--disabled-soft: #eadccb;--ok: #3f6b3a;--ok-ink: #2f5230;--ok-soft: #d6e3cf;--ok-wash: #e4eddf;--ok-card: #eef4ea;--ok-card-line: #cfe0c8;--ok-on-dark: #9ccb92;--butter: #f6e4a8;--butter-ink: #6b3f00;--butter-line: #9a7b3c;--avatar-1: #f1d9c4;--avatar-2: #d6e3cf;--avatar-placeholder-line: #b59b80;--avatar-placeholder-ink: #7a6652;--toast-bg: #2b2118;--toast-ink: #fbf6ee;--toast-action: #f4c9b8;--backdrop: rgba(43, 33, 24, .5);--shadow-card: 0 8px 24px rgba(43, 33, 24, .08);--shadow-menu: 0 8px 24px rgba(43, 33, 24, .18);--shadow-sheet: 0 -8px 32px rgba(43, 33, 24, .2);--shadow-toast: 0 6px 16px rgba(43, 33, 24, .3);--shadow-raised: 0 1px 3px rgba(43, 33, 24, .15);--fade-mask: #000;--font-display: "Fraunces Variable", "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, Menlo, Consolas, monospace;--fs-hero: 48px;--fs-h1: 30px;--fs-brand: 28px;--fs-h2: 24px;--fs-sheet: 22px;--fs-h3: 20px;--fs-card: 18px;--fs-lg: 16px;--fs-md: 15px;--fs-sm: 14px;--fs-xs: 13px;--fs-label: 12px;--fs-tiny: 11px;--tracking-label: .6px;--gutter: 20px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--r-xs: 8px;--r-sm: 12px;--r-md: 14px;--r-lg: 16px;--r-xl: 18px;--r-pill: 999px;--r-sheet: 24px;--tap: 44px;--tap-lg: 48px;--tap-xl: 52px;--tap-row: 56px;--tab-height: 72px;--content-max: 560px;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--fs-md);line-height:1.4}img{max-width:100%}h1,h2,h3,h4,p,ul,ol{margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;text-wrap:balance}h1{font-size:var(--fs-h1);line-height:1.1;letter-spacing:-.5px}h2{font-size:var(--fs-h3);line-height:1.2}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus-visible,textarea:focus-visible{outline-offset:1px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.muted{color:var(--ink-2);font-size:var(--fs-sm)}.eyebrow{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--tracking-label);color:var(--accent);text-transform:uppercase}.label-caps{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:var(--tracking-label);color:var(--ink-2);text-transform:uppercase}.hint{font-size:var(--fs-xs);line-height:1.4;color:var(--ink-2)}.input{width:100%;height:var(--tap-lg);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);padding:0 14px;font-size:var(--fs-lg);color:var(--ink)}.input::placeholder{color:var(--ink-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--r-pill);border:0;font-size:var(--fs-sm);font-weight:600;background:transparent;color:var(--ink)}.btn-primary{background:var(--accent);color:var(--on-accent);min-height:var(--tap-lg);font-size:var(--fs-md)}.btn-primary:disabled{background:var(--disabled)}.btn-block{width:100%}.btn-lg{min-height:var(--tap-xl);font-size:var(--fs-lg)}.btn-outline{background:var(--surface);border:1px solid var(--line-strong)}.btn-text{color:var(--accent);padding:0 var(--space-3)}.btn-danger-text{color:var(--danger);font-size:var(--fs-md)}.btn-dashed{border:1.5px dashed var(--line-dashed-strong);background:transparent}.btn-add{min-height:var(--tap-lg);background:var(--disabled-soft);color:var(--ink-4)}.btn-add.ready{background:var(--accent);color:var(--on-accent)}.btn-ok-outline,.btn-danger-outline{flex:1;min-height:var(--tap-xl);border-radius:var(--r-lg);background:var(--surface);font-size:var(--fs-md)}.btn-ok-outline{border:1.5px solid var(--ok);color:var(--ok-ink)}.btn-danger-outline{border:1.5px solid var(--danger);color:var(--danger)}.icon-btn{flex:none;width:var(--tap);height:var(--tap);border-radius:var(--r-pill);border:0;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center}.icon-btn.outlined{background:var(--surface);border:1px solid var(--line-strong)}.icon-btn.accent{background:var(--accent);color:var(--on-accent)}.info-box{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--r-md);background:var(--ok-wash);font-size:var(--fs-xs);line-height:1.4}.info-box svg{flex:none;margin-top:1px;color:var(--ok-ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.app-shell{min-height:100dvh}.app-main{max-width:var(--content-max);margin:0 auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:calc(var(--tab-height) + env(safe-area-inset-bottom,0px));padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px)}.tab-bar{position:fixed;z-index:20;inset:auto 0 0 0;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--line);padding:6px max(4px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px))}.tab-bar-item{flex:1;max-width:calc(var(--content-max) / 5);min-height:var(--tap-row);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink-3);font-size:var(--fs-label);font-weight:500}.tab-bar-item[aria-current=page]{color:var(--accent);font-weight:600}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);padding:var(--space-5) var(--gutter) 10px}.page-header-text{min-width:0}.page-header-text h1{margin-top:2px}.page-header-actions{display:flex;gap:var(--space-1)}.wrap.legacy{display:grid;gap:24px;padding:24px 16px calc(var(--tab-height) + 32px);max-width:980px}.legacy-account{display:flex;flex-direction:column;align-items:center;gap:4px}.app-version{text-align:center;font-size:var(--fs-label);color:var(--ink-2);font-variant-numeric:tabular-nums}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:var(--backdrop)}.bottom-sheet{position:fixed;z-index:40;left:0;right:0;bottom:0;max-width:var(--content-max);max-height:92dvh;margin:0 auto;overflow-y:auto;padding:var(--space-2) var(--gutter) calc(var(--gutter) + env(safe-area-inset-bottom,0px));border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:var(--bg);box-shadow:var(--shadow-sheet);animation:sheet-in .2s ease-out}.bottom-sheet:focus{outline:none}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.bottom-sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--line-dashed);margin:0 auto var(--space-2)}.bottom-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.bottom-sheet-title{font-size:var(--fs-sheet);line-height:1.2}.bottom-sheet-subtitle{font-size:var(--fs-xs);color:var(--ink-2);margin:0 0 var(--space-2)}.bottom-sheet-body .label-caps{margin:14px 0 6px}.bottom-sheet-body .label-caps:first-child{margin-top:var(--space-2)}.sheet-footer{margin-top:22px;display:grid;gap:var(--space-2)}.click-away{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.popup-menu{position:absolute;z-index:20;min-width:220px;padding:6px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-menu)}.popup-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:0 10px;border:0;border-radius:10px;background:transparent;font-size:var(--fs-md);font-weight:500;color:var(--ink);text-align:left}.popup-menu-item:hover,.popup-menu-item:focus-visible{background:var(--bg)}.popup-menu-item.danger{color:var(--danger)}.popup-menu-item:disabled{opacity:.5}.snackbar-region{position:fixed;z-index:60;left:0;right:0;bottom:calc(var(--tab-height) + 18px + env(safe-area-inset-bottom,0px));max-width:var(--content-max);margin:0 auto;padding:0 var(--gutter);pointer-events:none}.snackbar{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:var(--toast-bg);color:var(--toast-ink);font-size:var(--fs-sm);line-height:1.3;box-shadow:var(--shadow-toast);pointer-events:auto;animation:toast-in .18s ease-out}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.snackbar-icon{flex:none;color:var(--ok-on-dark)}.snackbar-text{flex:1;min-width:0}.snackbar-action{flex:none;min-height:var(--tap);margin:-8px -6px -8px 0;padding:0 10px;border:0;background:transparent;color:var(--toast-action);font-size:var(--fs-sm);font-weight:600}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-sm);font-weight:500}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.segmented{display:flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--r-sheet);background:var(--segment)}.segmented.choice{flex-wrap:wrap;border-radius:22px}.segmented-item{flex:1 1 auto;min-height:var(--tap);padding:0 var(--space-3);border:0;border-radius:20px;background:transparent;color:var(--ink-2);font-size:var(--fs-xs);font-weight:500;white-space:nowrap}.segmented.tabs .segmented-item{flex:1;padding:0}.segmented-item[aria-selected=true],.segmented-item[aria-pressed=true]{background:var(--surface);font-weight:600;box-shadow:var(--shadow-raised)}.segmented-item[aria-selected=true]{color:var(--ink)}.segmented-item[aria-pressed=true]{color:var(--accent)}.check-switch{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-xl);padding:0;border:0;background:transparent;color:var(--ink);text-align:left;font-size:var(--fs-sm);line-height:1.35}.check-switch-box{flex:none;width:26px;height:26px;border-radius:var(--r-xs);border:1.5px solid var(--line-dashed-strong);background:var(--surface);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.check-switch[aria-checked=true] .check-switch-box{background:var(--accent);border-color:var(--accent)}.qty-stepper{display:flex;align-items:center;gap:var(--space-2)}.qty-stepper-btn{flex:none;width:var(--tap-row);height:var(--tap-row);border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center}.qty-stepper-field{flex:1;min-width:0;height:var(--tap-row);display:flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface)}.qty-stepper-field input{width:84px;border:0;background:transparent;text-align:right;font-size:var(--fs-sheet);font-weight:600;color:var(--ink)}.qty-stepper-field input:focus-visible{outline:none}.qty-stepper-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.qty-stepper-field input[aria-invalid=true]{color:var(--danger)}.qty-stepper-unit{font-size:var(--fs-lg);color:var(--ink-2);min-width:36px}.num-stepper{display:flex;align-items:center;height:var(--tap-lg);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface)}.num-stepper button{flex:none;width:var(--tap);height:calc(var(--tap-lg) - 2px);padding:0;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center}.num-stepper button:disabled{opacity:.35}.num-stepper-value{flex:1;text-align:center;font-size:var(--fs-lg);font-weight:600}.num-stepper.large{height:auto;border:0;background:transparent;gap:var(--space-2)}.num-stepper.large button{width:var(--tap-xl);height:var(--tap-xl);border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface)}.num-stepper.large .num-stepper-value{height:var(--tap-xl);display:flex;align-items:center;justify-content:center;border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--surface);font-size:var(--fs-card)}.status{display:grid;justify-items:center;gap:var(--space-3);padding:40px var(--gutter);text-align:center;color:var(--ink-2)}.status h2{color:var(--ink)}.status-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:status-spin 1s linear infinite}@keyframes status-spin{to{transform:rotate(360deg)}}.login{min-height:100dvh;max-width:var(--content-max);margin:0 auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.login-brand{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6) 28px var(--space-2);text-align:center}.login-badge{width:148px;height:148px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.login-title{margin-top:var(--space-6);font-size:var(--fs-hero);line-height:1.02;letter-spacing:-1.5px}.login-tagline{margin-top:10px;max-width:280px;font-family:var(--font-display);font-weight:500;font-size:var(--fs-h3);line-height:1.3;color:var(--accent)}.login-form{padding:0 28px var(--space-6)}.login-card{padding:var(--space-5);border-radius:var(--r-sheet);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card)}.login-label{margin:14px 0 6px}.login-label:first-child{margin-top:0}.login-input{height:var(--tap-xl);background:var(--bg)}.login-input:focus-visible{outline-offset:1px}.login-password{position:relative}.login-password .login-input{padding-right:52px}.login-eye{position:absolute;right:2px;top:4px;color:var(--ink-2)}.login-submit{min-height:54px;margin-top:var(--space-5);font-size:var(--fs-lg)}.login-secondary{text-align:center;margin-top:var(--space-1)}.login-message{margin-top:2px;padding:10px 14px;border-radius:var(--r-sm);background:var(--ok-wash);color:var(--ok-ink);font-size:var(--fs-xs);line-height:1.4}.login-message.error{margin-top:var(--space-3);background:var(--danger-soft);color:var(--danger)}.login-step-text{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:var(--space-1)}.page-body{padding:0 var(--gutter) var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.shopping-link{display:flex;align-items:center;justify-content:space-between;min-height:var(--tap-lg);padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--accent);font-size:var(--fs-sm);font-weight:600}.shopping-link-text{display:flex;align-items:center;gap:10px}.day-list{display:flex;flex-direction:column;gap:var(--space-2)}.day-card{position:relative;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);scroll-margin-top:var(--space-3)}.day-card.today{border:2px solid var(--accent)}.day-card.cooked{background:var(--ok-card);border:1px solid var(--ok-card-line)}.day-card.skipped .day-card-title,.day-card.skipped .day-card-num{color:var(--ink-2)}.day-card-row{display:flex;align-items:stretch;gap:var(--space-3);min-height:90px;padding:var(--space-2) 3px 3px 9px}.day-card-date{flex:none;width:48px;display:flex;flex-direction:column;align-items:center;padding-top:var(--space-1)}.day-card-dow{font-size:var(--fs-label);font-weight:700;letter-spacing:.5px;color:var(--ink-2)}.day-card-num{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:600;line-height:1.1}.day-card.today .day-card-dow,.day-card.today .day-card-num{color:var(--accent)}.day-card-check{margin-top:6px;width:22px;height:22px;border-radius:50%;background:var(--ok);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.day-card-main{flex:1;min-width:0;padding:var(--space-1) 0 var(--space-2)}.day-card-title{font-size:var(--fs-card);line-height:1.2}.day-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:6px;font-size:var(--fs-xs);color:var(--ink-2)}.day-card-side{flex:none;display:flex;flex-direction:column;justify-content:space-between}.expand-btn{color:var(--accent)}.rotated{transform:rotate(180deg)}.badge{padding:1px 8px;border-radius:10px;font-size:var(--fs-label);font-weight:600}.badge.ok{background:var(--ok-soft);color:var(--ok-ink)}.badge.accent{background:var(--accent);color:var(--on-accent)}.badge.muted{background:var(--warm-muted);color:var(--ink-2)}.cook-btn{margin-top:var(--space-2);padding:0 18px 0 14px;background:var(--ok);color:var(--on-accent)}.day-card-menu{top:48px;right:10px;width:230px}.day-card-details{margin:0 14px var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line)}.plate{display:flex;flex-wrap:wrap;gap:6px}.plate-chip{display:inline-flex;align-items:baseline;gap:6px;padding:5px 10px;border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:600}.plate-chip-label{font-size:var(--fs-tiny);letter-spacing:.5px;color:var(--ink-2);text-transform:uppercase}.plate-chip.protein{background:var(--accent-soft)}.plate-chip.side{background:var(--butter)}.plate-chip.veg{background:var(--ok-soft)}.day-card-steps-label{margin:14px 0 var(--space-2)}.steps{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.steps li{display:flex;gap:10px;font-size:var(--fs-sm);line-height:1.35}.step-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--surface-sunk);display:flex;align-items:center;justify-content:center;font-size:var(--fs-label);font-weight:600}.recipe-link{display:flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);margin-top:var(--space-3);border:1.5px solid var(--accent);border-radius:var(--r-sm);color:var(--accent);font-size:var(--fs-sm);font-weight:600}.day-empty{display:flex;align-items:center;gap:var(--space-3);min-height:68px;padding:var(--space-2) 10px;border:1.5px dashed var(--line-dashed);border-radius:var(--r-xl)}.day-empty .day-card-num{font-weight:500}.day-empty-link{flex:1;min-height:var(--tap);display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-md);font-weight:600;color:var(--accent)}.day-row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:6px var(--space-1);border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left}.day-row:disabled{opacity:.55}.day-row-date{flex:none;width:48px;text-align:center}.day-row-dow{display:block;font-size:var(--fs-label);font-weight:600;letter-spacing:.5px;color:var(--ink-2)}.day-row-num{display:block;font-family:var(--font-display);font-size:var(--fs-sheet);font-weight:600;line-height:1.1}.day-row-label{flex:1;min-width:0;font-size:var(--fs-md);font-weight:500;line-height:1.25}.hint-chip{flex:none;padding:2px 10px;border-radius:var(--r-sm);font-size:var(--fs-label);font-weight:600}.hint-chip.free{background:var(--ok-wash);color:var(--ok-ink)}.hint-chip.swap{background:var(--accent-soft);color:var(--accent-ink)}.hint-chip.neutral{background:var(--warm-muted);color:var(--ink-2)}.draft-banner{display:grid;gap:var(--space-2);padding:var(--space-4);border-radius:var(--r-xl);background:var(--butter)}.draft-banner h2{color:var(--butter-ink)}.draft-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.form-error{color:var(--danger);font-weight:500;font-size:var(--fs-sm)}.week-notes{padding:var(--space-4);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);display:grid;gap:var(--space-2)}.week-notes ul{padding-left:var(--space-5);font-size:var(--fs-sm);line-height:1.5}.shop-body{position:relative}.shop-progress{margin:0 var(--gutter) var(--space-2)}.shop-progress-text{display:flex;justify-content:space-between;font-size:var(--fs-sm);font-weight:500;margin-bottom:var(--space-2)}.shop-bar{display:block;width:100%;height:8px;border:0;border-radius:4px;background:var(--line);overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.shop-bar::-webkit-progress-bar{background:var(--line);border-radius:4px}.shop-bar::-webkit-progress-value{background:var(--ok)}.shop-bar::-moz-progress-bar{background:var(--ok)}.shop-toolbar{position:relative;display:flex;align-items:center;gap:var(--space-1);padding:0 var(--space-3) 0 var(--gutter)}.filter-btn{flex:none;padding:0 14px 0 var(--space-3);background:var(--surface);border:1px solid var(--line-strong)}.filter-btn.active{color:var(--accent);border:1.5px solid var(--accent)}.shop-active-filters{flex:1;min-width:0;display:flex;align-items:center;overflow-x:auto;scrollbar-width:none}.active-chip{flex:none;min-height:var(--tap);padding:0 3px;border:0;background:transparent}.active-chip>span{display:flex;align-items:center;gap:var(--space-1);height:34px;padding:0 var(--space-2) 0 var(--space-3);border-radius:17px;background:var(--surface-sunk);color:var(--ink);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.shop-menu{top:48px;right:var(--space-3)}.sync-note{margin:var(--space-2) var(--gutter) 0;font-size:var(--fs-xs);color:var(--butter-ink);background:var(--butter);padding:var(--space-2) var(--space-3);border-radius:var(--r-sm)}.shop-list{padding:0 var(--gutter) var(--space-6)}.store-head{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;justify-content:space-between;margin:0 calc(-1 * var(--gutter));padding:14px var(--gutter) 6px;background:var(--bg);border-bottom:1px solid var(--line-strong);font-size:var(--fs-h3)}.store-meta{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:400;color:var(--ink-2)}.category-head{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-2);padding-top:var(--space-3)}.shop-rows{list-style:none;padding:0}.shop-row{display:flex;align-items:center;gap:var(--space-1);min-height:var(--tap-row);border-bottom:1px solid var(--line)}.shop-tick{flex:none;width:var(--tap);min-height:var(--tap-row);display:flex;align-items:center;padding:0;border:0;background:transparent}.shop-tick-box{width:28px;height:28px;border-radius:var(--r-xs);border:2px solid var(--checkbox-line);background:var(--surface);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.shop-row.done .shop-tick-box{background:var(--ok);border-color:var(--ok)}.shop-open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-row);padding:6px 0;border:0;background:transparent;color:var(--ink);text-align:left}.shop-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.shop-name{font-size:var(--fs-md);font-weight:500;line-height:1.25}.shop-row.done .shop-name{text-decoration:line-through;color:var(--ink-2)}.shop-recipe{font-size:var(--fs-label);color:var(--ink-2)}.shop-qty{flex:none;max-width:110px;text-align:right;font-size:var(--fs-sm);font-weight:500;line-height:1.2}.shop-chevron{flex:none;color:var(--ink-4)}.all-done{display:flex;align-items:center;gap:10px;margin-top:var(--space-4);padding:14px var(--space-4);border-radius:var(--r-lg);background:var(--ok-wash);color:var(--ok-ink);font-size:var(--fs-sm);font-weight:600;line-height:1.35}.all-done svg{flex:none}.done-head{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--tap-xl);margin-top:14px;padding:0;border:0;border-top:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:var(--fs-md);font-weight:600}.done-head svg{color:var(--ink-2)}.shop-empty{padding:32px 0;text-align:center;font-size:var(--fs-md);color:var(--ink-2)}.shop-note{margin-top:var(--space-3)}.filter-gap{margin-top:18px!important}.filter-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-6)}.filter-apply{flex:1}.qty-actions{display:flex;gap:10px;margin-top:var(--space-2)}.qty-label{margin-top:var(--space-5)!important;margin-bottom:var(--space-2)!important}.qty-hint{margin-top:var(--space-3)}.qty-save{margin-top:18px}.qty-done-note{margin-top:var(--space-2)}.add-item-hint{margin:-4px 0 var(--space-2)}.pantry-body{padding:0 var(--gutter) var(--space-6)}.pantry-body>.info-box{margin-bottom:var(--space-1)}.outlook{margin-top:var(--space-3);border-radius:var(--r-lg);background:var(--butter);color:var(--ink)}.outlook-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;min-height:var(--tap-row);padding:6px var(--space-3) 6px var(--space-4);border:0;background:transparent;color:inherit;text-align:left;font-size:var(--fs-sm);line-height:1.35}.outlook-toggle svg{flex:none;color:var(--butter-ink)}.outlook-title{display:block;font-weight:600;color:var(--butter-ink)}.outlook-summary{display:block}.outlook-body{padding:0 var(--space-4) var(--space-4)}.outlook-label{font-size:var(--fs-label);font-weight:600;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--butter-ink);margin-top:14px}.outlook-label:first-child{margin-top:0}.outlook-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.outlook-chips span{padding:6px var(--space-3);border-radius:var(--r-lg);border:1.5px dashed var(--butter-line);font-size:var(--fs-xs);font-weight:500}.outlook-body ul{margin-top:6px;padding-left:var(--space-5);font-size:var(--fs-sm);line-height:1.5}.pantry-group{font-size:var(--fs-h3);padding:var(--space-4) 0 var(--space-1)}.pantry-rows{list-style:none;padding:0}.pantry-row{display:flex;align-items:center;gap:var(--space-1);border-bottom:1px solid var(--line)}.pantry-open{display:flex;align-items:center;flex:1;min-width:0;gap:var(--space-2);min-height:60px;padding:6px 0;border:0;background:transparent;color:var(--ink);text-align:left}.pantry-list-toggle{flex:none;display:flex;align-items:center;gap:var(--space-1);min-height:var(--tap);padding:0 var(--space-2);border:0;background:transparent;color:var(--accent);font-size:var(--fs-xs);font-weight:600}.pantry-list-toggle[aria-pressed=true]{color:var(--ok-ink)}.pantry-name{flex:1;min-width:0;display:flex;flex-direction:column;font-size:var(--fs-md);font-weight:500;line-height:1.25}.pantry-hint{font-size:var(--fs-label);font-weight:600;color:var(--butter-ink);margin-top:2px}.pantry-qty{flex:none;font-size:var(--fs-sm);font-weight:500}.staples-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:60px;margin-top:var(--space-5);padding:var(--space-2) 14px var(--space-2) var(--space-4);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}.staples-link-title{display:block;font-size:var(--fs-md);font-weight:600}.staples-link-sub{display:block;font-size:var(--fs-xs);color:var(--ink-2)}.sheet-submit{margin-top:22px}.household-tabs{margin:0 var(--gutter) var(--space-1)}.household-body{padding:var(--space-2) var(--gutter) var(--space-6)}.tab-intro{font-size:var(--fs-sm);line-height:1.4;color:var(--ink-2);padding:2px 0 6px}.section-title{font-size:var(--fs-h3);padding:18px 0 6px}.person-card{display:flex;align-items:center;gap:var(--space-3);width:100%;margin-top:10px;padding:14px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left}.person-avatar{flex:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:var(--fs-card)}.avatar-1{background:var(--accent-soft);color:var(--accent-ink)}.avatar-2{background:var(--ok-soft);color:var(--ok-ink)}.avatar-3{background:var(--butter);color:var(--butter-ink)}.person-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.person-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-card)}.person-meta{font-size:var(--fs-xs);color:var(--ink-2)}.add-wide{width:100%;min-height:var(--tap-xl);margin-top:10px;border-radius:var(--r-xl);font-size:var(--fs-md)}.add-pill{margin-top:var(--space-1)}.bday-row{display:flex;align-items:center;gap:var(--space-3)}.bday-row .input{flex:1}.bday-age{flex:none;font-size:var(--fs-md);font-weight:600;color:var(--ink-2)}.field-hint{margin-top:6px}.row-card{display:flex;align-items:center;gap:10px;width:100%;min-height:64px;margin-top:10px;padding:10px 14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left}.row-card-text{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}.row-card-title{font-size:var(--fs-lg);font-weight:600;line-height:1.3}.row-card-summary{font-size:var(--fs-xs);color:var(--ink-2);line-height:1.35}.reason-tag{padding:1px 8px;border-radius:10px;font-size:var(--fs-label);font-weight:600;background:var(--accent-soft);color:var(--accent-ink)}.reason-tag.none{background:var(--warm-muted);color:var(--ink-2)}.removable-row{display:flex;align-items:center;gap:var(--space-1);min-height:var(--tap-xl);margin-bottom:var(--space-2);padding:2px var(--space-1) 2px 14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}.removable-row span{flex:1;min-width:0;font-size:var(--fs-sm);line-height:1.4}.remove-btn{color:var(--ink-3)}.add-row{display:flex;gap:var(--space-2)}.add-row .input{flex:1;min-width:0}.add-row .btn-add{flex:none}.add-row-gap{margin-top:10px}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap);margin-left:-8px;padding:0 var(--space-3) 0 var(--space-1);color:var(--accent);font-size:var(--fs-md);font-weight:600}.sub-title{font-size:var(--fs-h2);padding-bottom:var(--space-1)}.sub-subtitle{padding-bottom:var(--space-3)}.weekday-row{display:flex;gap:6px;margin-bottom:var(--space-1)}.weekday-row .chip{flex:1;min-width:0;padding:0}.household-body .label-caps{margin:var(--space-2) 0}.stepper-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-top:6px}.stepper-label{font-size:var(--fs-xs);font-weight:600;line-height:1.25;min-height:34px;margin-bottom:var(--space-1)}.staples-chips{margin-top:var(--space-3)}.staple-chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 var(--space-3) 0 var(--space-4);border-radius:var(--r-pill);border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-ink);font-size:var(--fs-sm);font-weight:500}.suggestion-chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--r-pill);border:1.5px dashed var(--line-dashed-strong);background:transparent;color:var(--ink);font-size:var(--fs-sm);font-weight:500}.suggestions-label{margin-top:var(--space-4)!important}.where-card{margin-top:10px;padding:var(--space-3) var(--space-3) var(--space-3) 14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}.where-label{font-size:var(--fs-md);font-weight:600;margin-bottom:10px}.where-empty{margin-top:var(--space-2)}.account-card{margin-top:var(--space-3);padding:var(--space-4);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line)}.account-card:first-child{margin-top:var(--space-2)}.account-card h2{margin-bottom:var(--space-1)}.members{list-style:none;padding:0;margin:var(--space-3) 0 var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--fs-md);overflow-wrap:anywhere}.invite-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.invite-code{flex:1 0 100%;font-family:var(--font-mono);font-weight:600;font-size:var(--fs-h2);letter-spacing:2px;color:var(--accent);overflow-wrap:anywhere}.connected{display:flex;align-items:center;gap:var(--space-2);margin-top:14px;font-size:var(--fs-sm);font-weight:600;color:var(--ok-ink);overflow-wrap:anywhere}.connected svg{flex:none}.account-btn{margin-top:14px;padding:0 28px}.account-footer{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-6)}.confirm-text{font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);margin-top:var(--space-2)}.chat-page{display:flex;flex-direction:column;height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--gutter) var(--space-3)}.chat-brand{display:flex;align-items:center;gap:var(--space-2);color:var(--accent)}.chat-brand-name{font-family:var(--font-display);font-weight:600;font-size:var(--fs-brand);letter-spacing:-.5px}.member-initials{display:flex;align-items:center;padding-left:var(--space-2)}.member-initial{width:32px;height:32px;margin-left:-8px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600}.member-initial.avatar-1{background:var(--avatar-1)}.member-initial.avatar-2{background:var(--avatar-2)}.today-card{display:flex;align-items:center;gap:var(--space-3);margin:0 var(--gutter) var(--space-1);padding:10px var(--space-3) 10px var(--space-4);border-radius:var(--r-lg);border:2px solid var(--accent);background:var(--surface);color:var(--accent)}.today-text{flex:1;min-width:0;color:var(--ink)}.today-eyebrow{display:block;font-size:var(--fs-tiny);font-weight:700;letter-spacing:var(--tracking-label);color:var(--accent);text-transform:uppercase}.today-title{display:block;margin-top:2px;font-family:var(--font-display);font-weight:600;font-size:var(--fs-lg);line-height:1.2}.today-meta{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--ink-2)}.chat-thread{flex:1;min-height:0;overflow-y:auto;-webkit-mask-image:linear-gradient(to bottom,transparent 0,var(--fade-mask) 28px);mask-image:linear-gradient(to bottom,transparent 0,var(--fade-mask) 28px)}.chat-list{list-style:none;margin:0;padding:var(--space-3) var(--gutter) var(--space-2);display:flex;flex-direction:column;justify-content:flex-end;gap:14px;min-height:100%}.bubble{padding:10px 14px;font-size:var(--fs-md);line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;max-width:280px;background:var(--accent);color:var(--on-accent);border-radius:var(--r-xl) var(--r-xl) 6px var(--r-xl)}.bubble.bot{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl) var(--r-xl) var(--r-xl) 6px}.bubble.bot.error{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.bot-row{display:flex;gap:var(--space-2);align-items:flex-end;max-width:330px}.bot-content{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.bot-row.with-cards{align-items:flex-start;max-width:none}.bot-row.with-cards .bot-content{flex:1}.bot-avatar{flex:none;width:36px;height:36px;border-radius:50%;background:var(--surface-sunk);color:var(--accent);display:flex;align-items:center;justify-content:center}.suggestions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.suggestion{font-weight:500}.thinking{display:flex;gap:var(--space-2);align-items:flex-end}.bot-content .thinking .bot-avatar{display:none}.thinking-dots{display:flex;align-items:center;gap:5px;height:40px;padding:0 var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl) var(--r-xl) var(--r-xl) 6px}.thinking-dots span{width:7px;height:7px;border-radius:4px;background:var(--ink-4);animation:jc-dot 1.2s infinite ease-in-out}.thinking-dots span:nth-child(2){animation-delay:.18s}.thinking-dots span:nth-child(3){animation-delay:.36s}@keyframes jc-dot{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.thinking-dots span{opacity:.6}}.thinking-text{font-size:var(--fs-label);color:var(--ink-2);padding-bottom:var(--space-2)}.composer{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--gutter) var(--space-3)}.composer-actions{display:flex;gap:var(--space-2)}.composer-actions .btn{font-weight:500}.composer-row{display:flex;align-items:center;gap:var(--space-2)}.composer-input{flex:1;min-width:0;height:var(--tap-lg);border-radius:var(--r-sheet);border:1px solid var(--line-strong);background:var(--surface);padding:0 18px;font-size:var(--fs-md);color:var(--ink)}.send-btn{flex:none;width:var(--tap-lg);height:var(--tap-lg);border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center}.send-btn:disabled{opacity:.45}.rule-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 2px}.rule-chips-label{font-size:var(--fs-tiny);font-weight:600;letter-spacing:.5px;color:var(--ink-2);text-transform:uppercase}.rule-chip{padding:3px 9px;border-radius:var(--r-sm);background:var(--surface-sunk);font-size:var(--fs-label);font-weight:500}.rule-chips-link{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 6px;font-size:var(--fs-xs);font-weight:600;color:var(--accent)}.recipe-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.recipe-card{display:flex;align-items:center;gap:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 6px 10px 14px}.recipe-card-text{flex:1;min-width:0}.recipe-card-title{margin:0;font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.2}.recipe-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:var(--space-2)}.recipe-tag{padding:3px 9px;border-radius:var(--r-sm);font-size:var(--fs-label);font-weight:600;color:var(--ink)}.recipe-tag.protein{background:var(--accent-soft)}.recipe-tag.side{background:var(--butter)}.recipe-tag.veg{background:var(--ok-soft)}.recipe-card-meta{margin-top:6px;font-size:var(--fs-xs);color:var(--ink-2)}.recipe-card-add,.recipe-card-day{flex:none;height:var(--tap);border:0;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center}.recipe-card-add{width:var(--tap);background:var(--surface-sunk);color:var(--ink)}.recipe-card-day{gap:var(--space-1);min-width:var(--tap);padding:0 12px 0 10px;background:var(--ok-soft);color:var(--ok-ink);font-size:var(--fs-sm);font-weight:600}.recipe-card-add:disabled,.recipe-card-day:disabled,.composer-actions .btn:disabled{opacity:.5}.day-sheet-remove{margin-top:var(--space-2)}
