@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";body.review-mode-active,body.review-mode-active *{cursor:crosshair!important}.review-toolbar{position:fixed;bottom:1.5rem;left:1.5rem;display:flex;align-items:center;gap:.5rem;z-index:10000;background:#1a1a2e;border-radius:2rem;padding:.5rem;box-shadow:0 4px 24px #00000080;border:1px solid #2a2a40}.review-toolbar__btn{width:2.5rem;height:2.5rem;border-radius:50%;border:none;background:transparent;color:#888;font-size:1.1rem;cursor:pointer!important;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.review-toolbar__btn:hover{background:#333;color:#fff;border-color:transparent}.review-toolbar__btn--active{background:#4a7cff;color:#fff}.review-toolbar__btn--active:hover{background:#3a6cf0}.review-toolbar__author{color:#888;font-size:.8rem;padding:0 .5rem;cursor:pointer!important;-webkit-user-select:none;user-select:none}.review-toolbar__author:hover{color:#fff}.review-toolbar__btn--resolve-all{font-size:.9rem;color:#2ed573!important}.review-toolbar__btn--resolve-all:hover{background:#2ed57326!important}.review-toolbar__badge{background:#ff4757;color:#fff;font-size:.7rem;font-weight:700;min-width:1.3rem;height:1.3rem;border-radius:.65rem;display:flex;align-items:center;justify-content:center;padding:0 .35rem}.review-author-prompt{position:absolute;bottom:calc(100% + .75rem);left:0;background:#1a1a2e;border:1px solid #2a2a40;border-radius:.75rem;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;min-width:220px;box-shadow:0 4px 20px #0006}.review-author-prompt label{font-size:.8rem;color:#aaa}.review-author-prompt input{padding:.4rem .6rem;border-radius:.4rem;border:1px solid #444;background:#2a2a3e;color:#fff;font-size:.9rem}.review-author-prompt input:focus{outline:none;border-color:#4a7cff}.review-author-prompt button{padding:.4rem .8rem;border-radius:.4rem;border:none;background:#4a7cff;color:#fff;cursor:pointer!important;font-size:.85rem}.review-pins-layer{position:absolute;top:0;left:0;width:100%;height:0;overflow:visible;pointer-events:none;z-index:10001}.review-pins-layer .review-pin,.review-pins-layer .review-comment-input{pointer-events:auto}.review-screen-info{position:fixed;top:.75rem;left:50%;transform:translate(-50%);background:#1a1a2e;color:#aaa;font-size:.8rem;padding:.4rem 1.25rem;border-radius:1rem;border:1px solid #2a2a40;z-index:10001;pointer-events:none;white-space:nowrap}.review-pin{position:absolute;transform:translate(-50%,-50%);z-index:10001;cursor:pointer!important}.review-pin__number{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#ff6b35;color:#fff;font-size:.75rem;font-weight:700;cursor:pointer!important;box-shadow:0 2px 8px #ff6b3566;transition:transform .15s,box-shadow .15s;border:2px solid #fff}.review-pin:hover .review-pin__number{transform:scale(1.15);box-shadow:0 3px 12px #ff6b3599}.review-pin--selected .review-pin__number{background:#4a7cff;box-shadow:0 2px 8px #4a7cff66}.review-pin--new .review-pin__number{background:#4a7cff;animation:review-pulse 1.5s infinite}@keyframes review-pulse{0%,to{box-shadow:0 0 #4a7cff80}50%{box-shadow:0 0 0 10px #4a7cff00}}.review-pin__popover{position:absolute;top:2.5rem;left:-.5rem;background:#1a1a2e;border:1px solid #2a2a40;border-radius:.75rem;padding:.75rem;min-width:240px;max-width:320px;box-shadow:0 8px 32px #00000080;z-index:10002;cursor:default!important}.review-pin__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.75rem}.review-pin__header strong{color:#fff;font-size:.85rem}.review-pin__header span{color:#555;font-size:.7rem;white-space:nowrap}.review-pin__text{color:#ccc;font-size:.85rem;margin:0 0 .5rem;line-height:1.4}.review-pin__selector{display:block;color:#4a7cff;font-size:.7rem;margin-bottom:.25rem;word-break:break-all;background:#12122a;padding:.25rem .5rem;border-radius:.3rem}.review-pin__element-text{color:#666;font-size:.7rem;margin-bottom:.5rem;font-style:italic}.review-pin__actions{display:flex;gap:.5rem;margin-top:.5rem}.review-pin__actions button{flex:1;padding:.35rem .5rem;border-radius:.4rem;border:1px solid #333;background:transparent;color:#aaa;font-size:.75rem;cursor:pointer!important}.review-pin__actions button:hover{background:#333;color:#fff}.review-comment-input{position:absolute;transform:translate(-50%);z-index:10002;display:flex;flex-direction:column;align-items:center}.review-comment-input__form{margin-top:.5rem;background:#1a1a2e;border:2px solid #4a7cff;border-radius:.75rem;padding:.75rem;min-width:280px;box-shadow:0 8px 32px #4a7cff26}.review-comment-input__form textarea{width:100%;padding:.5rem;border-radius:.4rem;border:1px solid #444;background:#2a2a3e;color:#fff;font-size:.85rem;font-family:inherit;resize:vertical;min-height:60px}.review-comment-input__form textarea:focus{outline:none;border-color:#4a7cff}.review-comment-input__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.review-comment-input__actions button{padding:.35rem .75rem;border-radius:.4rem;border:1px solid #333;background:transparent;color:#aaa;font-size:.8rem;cursor:pointer!important}.review-comment-input__actions button:hover{background:#333;color:#fff}.review-comment-input__submit{background:#4a7cff!important;color:#fff!important;border-color:#4a7cff!important}.review-comment-input__submit:hover{background:#3a6cf0!important}.review-comment-input__submit:disabled{opacity:.4;cursor:not-allowed!important}.review-chat{position:fixed;top:0;right:0;width:380px;max-width:90vw;height:100vh;background:#1a1a2e;border-left:1px solid #2a2a40;z-index:10003;display:flex;flex-direction:column;box-shadow:-8px 0 32px #0000004d}.review-chat__header{position:relative;padding:1.25rem 1rem 1rem;border-bottom:1px solid #2a2a40}.review-chat__header h3{margin:0;font-size:1rem;color:#fff}.review-chat__subtitle{margin:.25rem 0 0;font-size:.75rem;color:#666}.review-chat__close{position:absolute;top:1rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;border:none;background:transparent;color:#666;font-size:1rem;cursor:pointer!important;display:flex;align-items:center;justify-content:center;padding:0}.review-chat__close:hover{background:#333;color:#fff}.review-chat__messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.review-chat__empty{color:#555;text-align:center;margin-top:2rem;font-size:.85rem;line-height:1.5}.review-chat__empty p{margin:0 0 .5rem}.review-chat__msg{background:#2a2a3e;border-radius:.75rem;padding:.75rem}.review-chat__msg-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.review-chat__msg-header strong{color:#fff;font-size:.85rem}.review-chat__msg-header span{color:#555;font-size:.7rem}.review-chat__msg p{margin:0;color:#ccc;font-size:.85rem;line-height:1.4;white-space:pre-wrap}.review-chat__author-prompt{padding:.75rem 1rem;border-top:1px solid #2a2a40;display:flex;gap:.5rem}.review-chat__author-prompt input{flex:1;padding:.4rem .6rem;border-radius:.4rem;border:1px solid #444;background:#2a2a3e;color:#fff;font-size:.85rem}.review-chat__author-prompt input:focus{outline:none;border-color:#4a7cff}.review-chat__author-prompt button{padding:.4rem .8rem;border-radius:.4rem;border:none;background:#4a7cff;color:#fff;cursor:pointer!important;font-size:.85rem}.review-chat__input{padding:.75rem 1rem;border-top:1px solid #2a2a40;display:flex;gap:.5rem;align-items:flex-end}.review-chat__input textarea{flex:1;padding:.5rem;border-radius:.5rem;border:1px solid #444;background:#2a2a3e;color:#fff;font-size:.85rem;font-family:inherit;resize:none}.review-chat__input textarea:focus{outline:none;border-color:#4a7cff}.review-chat__input textarea:disabled{opacity:.4}.review-chat__input button{padding:.5rem 1rem;border-radius:.5rem;border:none;background:#4a7cff;color:#fff;cursor:pointer!important;font-size:.85rem;white-space:nowrap}.review-chat__input button:hover{background:#3a6cf0}.review-chat__input button:disabled{opacity:.4;cursor:not-allowed!important}@media(max-width:640px){.review-toolbar{bottom:1rem;left:1rem}.review-chat{width:100vw}.review-comment-input__form{min-width:220px}.review-pin__popover{min-width:200px}}:root{color-scheme:light dark;--surface-dim: #131313;--surface: #131313;--surface-container-lowest: #0e0e0e;--surface-container-low: #1c1b1b;--surface-container: #201f1f;--surface-container-high: #2a2a2a;--surface-container-highest: #353534;--surface-bright: #393939;--surface-variant: #353534;--surface-tint: #c8c6c3;--on-surface: #e5e2e1;--on-surface-variant: #c6c7c1;--on-background: #e5e2e1;--inverse-surface: #e5e2e1;--inverse-on-surface: #313030;--primary: #ffffff;--primary-container: #e4e2df;--primary-fixed: #e4e2df;--primary-fixed-dim: #c8c6c3;--on-primary: #30302f;--on-primary-container: #656462;--on-primary-fixed: #1b1c1a;--on-primary-fixed-variant: #474745;--inverse-primary: #5f5e5c;--secondary: #aad0aa;--secondary-container: #2f5033;--secondary-fixed: #c6edc5;--secondary-fixed-dim: #aad0aa;--on-secondary: #16371c;--on-secondary-container: #9cc29d;--on-secondary-fixed: #012109;--on-secondary-fixed-variant: #2d4e31;--tertiary: #ff8c42;--tertiary-container: #ffdbc9;--tertiary-fixed: #ffdbc9;--tertiary-fixed-dim: #ffb68d;--on-tertiary: #532200;--on-tertiary-container: #a44a00;--on-tertiary-fixed: #331200;--on-tertiary-fixed-variant: #763300;--error: #ffb4ab;--error-container: #93000a;--on-error: #690005;--on-error-container: #ffdad6;--outline: #90918c;--outline-variant: #454743;--text-primary: var(--on-surface);--text-secondary: var(--on-surface-variant);--text-muted: var(--outline);--text-disabled: #666;--text-hint: #aaa;--text-on-accent: var(--on-tertiary-fixed);--success: var(--secondary);--success-text: var(--secondary);--success-container: var(--secondary-container);--on-success: var(--on-secondary);--destructive: #e74c3c;--destructive-hover: rgba(231, 76, 60, .1);--destructive-text: #e74c3c;--accent: var(--tertiary);--accent-container: var(--tertiary-container);--on-accent: var(--on-tertiary-fixed);--interactive-hover: rgba(170, 208, 170, .1);--interactive-active: rgba(170, 208, 170, .15);--interactive-selected: rgba(170, 208, 170, .2);--interactive-muted: rgba(170, 208, 170, .05);--input-bg: var(--surface-container-lowest);--input-bg-focus: var(--surface-bright);--input-border: var(--outline-variant);--input-border-focus: var(--secondary);--input-placeholder: var(--text-muted);--card-bg: var(--surface-container);--card-bg-hover: var(--surface-container-high);--card-border: var(--outline-variant);--badge-bg: var(--surface-container-high);--badge-text: var(--on-surface-variant);--toast-bg: #1a1a2e;--toast-border: #2a2a40;--font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .05em;--tracking-widest: .2em;--text-display-lg: 3.5rem;--text-display-md: 2.75rem;--text-display-sm: 2.25rem;--text-headline-lg: 2rem;--text-headline-md: 1.75rem;--text-headline-sm: 1.5rem;--text-title-lg: 1.375rem;--text-title-md: 1rem;--text-title-sm: .875rem;--text-body-lg: 1rem;--text-body-md: .875rem;--text-body-sm: .75rem;--text-label-lg: .875rem;--text-label-md: .75rem;--text-label-sm: .6875rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--leading-none: 1;--leading-tight: 1.1;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.6;--space-0: 0;--space-px: 1px;--space-0_5: .125rem;--space-1: .25rem;--space-1_5: .375rem;--space-2: .5rem;--space-2_5: .625rem;--space-3: .75rem;--space-3_5: .875rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-default: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-pill: 2rem;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 4px 16px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .4);--glow-accent: 0 0 40px rgba(255, 140, 66, .06);--glow-accent-strong: 0 0 40px rgba(255, 140, 66, .15);--color-primary: var(--secondary);--color-primary-dark: #2d4e31;--color-surface: var(--surface-container);--color-surface-hover: var(--surface-container-high);--color-border: var(--outline-variant)}@media(prefers-color-scheme:light){:root{--surface-dim: #e0d5cf;--surface: #fff8f6;--surface-container-lowest: #ffffff;--surface-container-low: #fef1eb;--surface-container: #fceae2;--surface-container-high: #f6e5dd;--surface-container-highest: #f0dfd7;--surface-bright: #fff8f6;--surface-variant: #f3ded4;--surface-tint: #9b4500;--on-surface: #221a15;--on-surface-variant: #52443c;--on-background: #221a15;--inverse-surface: #382e28;--inverse-on-surface: #ffede5;--primary: #9b4500;--primary-container: #ff8c42;--primary-fixed: #ffdbc9;--primary-fixed-dim: #ffb68d;--on-primary: #ffffff;--on-primary-container: #331200;--on-primary-fixed: #331200;--on-primary-fixed-variant: #763300;--inverse-primary: #ffb68d;--secondary: #446647;--secondary-container: #c6edc5;--secondary-fixed: #c6edc5;--secondary-fixed-dim: #aad0aa;--on-secondary: #ffffff;--on-secondary-container: #012109;--on-secondary-fixed: #012109;--on-secondary-fixed-variant: #2d4e31;--tertiary: #7a5732;--tertiary-container: #fad7c4;--tertiary-fixed: #ffdbc9;--tertiary-fixed-dim: #e6bd9e;--on-tertiary: #ffffff;--on-tertiary-container: #2c1600;--on-tertiary-fixed: #2c1600;--on-tertiary-fixed-variant: #5f401e;--error: #ba1a1a;--error-container: #ffdad6;--on-error: #ffffff;--on-error-container: #410002;--outline: #85746b;--outline-variant: #d7c3b8;--text-disabled: #999;--text-hint: #888;--destructive: #c0392b;--destructive-text: #c0392b;--interactive-hover: rgba(68, 102, 71, .08);--interactive-active: rgba(68, 102, 71, .12);--interactive-selected: rgba(68, 102, 71, .15);--interactive-muted: rgba(68, 102, 71, .04);--color-primary: var(--secondary);--color-primary-dark: #2d4e31;--color-surface: var(--surface-container);--color-surface-hover: var(--surface-container-high);--color-border: var(--outline-variant)}}.display-lg{font-size:var(--display-lg);font-weight:800;line-height:1.05;letter-spacing:var(--letter-spacing-tight)}.display-md{font-size:var(--display-md);font-weight:800;line-height:1.1;letter-spacing:var(--letter-spacing-tight)}.display-sm{font-size:var(--display-sm);font-weight:700;line-height:1.15;letter-spacing:var(--letter-spacing-tight)}.headline-lg{font-size:var(--headline-lg);font-weight:700;line-height:1.2}.headline-md{font-size:var(--headline-md);font-weight:700;line-height:1.25}.headline-sm{font-size:var(--headline-sm);font-weight:600;line-height:1.3}.title-lg{font-size:var(--title-lg);font-weight:600;line-height:1.3}.title-md{font-size:var(--title-md);font-weight:600;line-height:1.4}.title-sm{font-size:var(--title-sm);font-weight:600;line-height:1.4}.body-lg{font-size:var(--body-lg);font-weight:400;line-height:1.6}.body-md{font-size:var(--body-md);font-weight:400;line-height:1.5}.body-sm{font-size:var(--body-sm);font-weight:400;line-height:1.5}.label-lg{font-size:var(--label-lg);font-weight:600;line-height:1.4;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.label-md{font-size:var(--label-md);font-weight:700;line-height:1.4;letter-spacing:var(--letter-spacing-wide);text-transform:uppercase}.label-sm{font-size:var(--label-sm);font-weight:700;line-height:1.4;letter-spacing:var(--letter-spacing-widest);text-transform:uppercase}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-family);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--text-primary);background-color:var(--surface);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}a{font-weight:var(--weight-medium);color:var(--accent);text-decoration:inherit}a:hover{opacity:.85}h1{font-size:var(--text-display-sm);line-height:var(--leading-tight);margin-top:0}h2{font-size:var(--text-headline-md);line-height:var(--leading-snug)}button{border-radius:var(--radius-default);border:1px solid transparent;padding:var(--space-2_5) var(--space-5);font-size:var(--text-body-lg);font-weight:var(--weight-medium);font-family:inherit;background-color:var(--surface-container-lowest);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--secondary)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-4) var(--space-8);background:var(--surface-container-lowest)}.app-logo{font-size:var(--text-headline-sm);font-weight:var(--weight-bold);text-decoration:none;color:inherit}.app-logo:hover{color:inherit}.app-nav{display:flex;gap:var(--space-2)}.app-nav a{padding:var(--space-2) var(--space-4);border-radius:var(--radius-default);text-decoration:none;color:var(--text-muted);transition:color .2s,background .2s}.app-nav a:hover{color:var(--text-primary);background:var(--card-bg-hover)}.app-nav a.active{color:var(--on-secondary);background:var(--secondary)}.user-menu{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.user-avatar{width:2rem;height:2rem;border-radius:var(--radius-full);object-fit:cover}.user-avatar--fallback{display:flex;align-items:center;justify-content:center;background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-body-sm);font-weight:var(--weight-semibold)}.user-sign-out{padding:var(--space-1) var(--space-3);background:none;border:none;color:var(--text-muted);font-family:var(--font-family);font-size:var(--text-body-sm);cursor:pointer;border-radius:var(--radius-default);transition:color .15s,background .15s}.user-sign-out:hover{color:var(--text-primary);background:var(--surface-container-high)}.app-main{flex:1;padding:var(--space-8)}@media(max-width:640px){.app-header{flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.app-nav a{min-height:var(--space-11);padding:var(--space-2_5) var(--space-5);display:inline-flex;align-items:center}.app-main{padding:var(--space-4)}}.page{max-width:1200px;margin:0 auto}.recipes-layout,.lists-layout{width:100%}.page-header{margin-bottom:var(--space-8)}.page-header p{color:var(--text-muted);margin-top:var(--space-1)}.back-link{display:inline-block;margin-bottom:var(--space-6);color:var(--text-muted);text-decoration:none;font-size:var(--text-body-md)}.back-link:hover{color:var(--accent)}.recipe-add-new-btn{padding:var(--space-2_5) var(--space-5);border-radius:var(--radius-default);border:none;background:var(--accent);color:var(--on-accent);font-size:var(--text-body-md);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);cursor:pointer;white-space:nowrap;transition:transform .1s;box-shadow:var(--glow-accent-strong)}.recipe-add-new-btn:hover{transform:scale(.98)}.recipe-card__add-btn{margin-top:var(--space-3);padding:var(--space-1_5) var(--space-4);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);color:var(--accent);font-size:var(--text-body-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background .15s,transform .1s;align-self:flex-start}.recipe-card__add-btn:hover{background:var(--surface-container-highest);transform:scale(1.02)}.recipe-card__add-btn--added{background:var(--success-container);color:var(--on-secondary-container);cursor:default}.recipe-card__add-btn--added:hover{background:var(--success-container);transform:none}.recipe-action-menu-wrapper{position:relative;align-self:flex-start;margin-top:var(--space-3)}.add-recipe-week-btn{padding:var(--space-2) var(--space-5);background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--radius-default);font-size:var(--text-body-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background .15s,transform .1s;box-shadow:var(--glow-accent)}.add-recipe-week-btn:hover:not(:disabled){transform:scale(.98)}.recipe-action-menu{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:50;min-width:220px;background:var(--surface-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}.recipe-action-menu__item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-0_5);padding:var(--space-3) var(--space-4);border:none;background:none;cursor:pointer;text-align:left;transition:background .15s;color:var(--text-primary)}.recipe-action-menu__item:hover{background:var(--surface-container-high)}.recipe-action-menu__item--primary{background:var(--surface-container-low)}.recipe-action-menu__label{font-size:var(--text-body-md);font-weight:var(--weight-semibold)}.recipe-action-menu__hint{font-size:var(--text-label-sm);color:var(--text-muted)}.add-recipe-week-btn--added{background:var(--success-container);color:var(--on-secondary-container);border:none;cursor:default;opacity:.8}.add-all-row{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.add-all-row .add-all-btn{margin-bottom:0}.add-all-btn{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-0_5);padding:var(--space-2_5) var(--space-4);border-radius:var(--radius-default);border:none;background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-body-md);font-weight:var(--weight-medium);cursor:pointer;margin-bottom:var(--space-4);transition:background .15s}.add-all-btn:hover{background:var(--surface-container-highest)}.add-all-btn--primary{background:var(--accent);color:var(--on-accent);box-shadow:var(--glow-accent)}.add-all-btn--primary:hover{opacity:.92;background:var(--accent)}.add-all-btn__label{font-weight:var(--weight-semibold)}.add-all-btn__hint{font-size:var(--text-label-sm);opacity:.7}.add-all-btn--primary .add-all-btn__hint{opacity:.8}@media(max-width:640px){.recipe-add-new-btn{width:100%;min-height:var(--space-11);display:flex;align-items:center;justify-content:center}.recipe-card__add-btn{min-height:var(--space-11);padding:var(--space-2) var(--space-5);font-size:var(--text-body-md)}.add-recipe-week-btn{min-height:var(--space-11);padding:var(--space-2_5) var(--space-6)}.recipe-action-menu__item{padding:var(--space-4) var(--space-5);min-height:var(--space-11)}.add-all-btn{min-height:var(--space-11);padding:var(--space-3) var(--space-4)}}.action-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-12);background:var(--surface-container-low);border-radius:var(--radius-xl);text-decoration:none;color:inherit;transition:transform .2s,background .2s;border:none}.action-card:hover{transform:translateY(-4px);background:var(--surface-container);color:inherit}.action-icon{font-size:var(--text-display-sm)}.action-label{font-size:var(--text-title-md);font-weight:var(--weight-medium)}@media(max-width:640px){.action-card{width:100%}}.recipe-card{position:relative;background:var(--surface-container);border:none;border-radius:var(--radius-xl);overflow:hidden;color:inherit;transition:transform .2s,background .15s;display:flex;flex-direction:column}.recipe-card:hover{transform:translateY(-4px);background:var(--surface-container-high);box-shadow:var(--glow-accent);color:inherit}.recipe-card__link{text-decoration:none;color:inherit;display:block;flex:1}.recipe-card__link:hover{color:inherit}.recipe-card__image{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--surface-container-highest)}.recipe-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.recipe-card:hover .recipe-card__image img{transform:scale(1.05)}.recipe-card__difficulty{position:absolute;top:var(--space-3);right:var(--space-3);padding:var(--space-1) var(--space-2_5);border-radius:var(--radius-full);font-size:var(--text-label-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.recipe-card__difficulty--easy{background:var(--success-container);color:var(--on-secondary-container)}.recipe-card__difficulty--medium{background:var(--accent);color:var(--on-accent)}.recipe-card__difficulty--hard{background:var(--error-container);color:var(--on-error-container)}.recipe-card__body{padding:var(--space-4)}.recipe-card__title{font-size:var(--text-title-lg);font-weight:var(--weight-bold);margin:0 0 var(--space-1_5);line-height:var(--leading-snug)}.recipe-card__desc{color:var(--text-secondary);font-size:var(--text-body-md);margin:0 0 var(--space-3);line-height:var(--leading-snug);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card__meta{display:flex;gap:var(--space-4);font-size:var(--text-body-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.recipe-card__tags{display:flex;gap:var(--space-1_5);flex-wrap:wrap}.list-card{background:var(--surface-container);border:none;border-radius:var(--radius-xl);padding:var(--space-5);text-decoration:none;color:inherit;transition:transform .2s,background .15s;display:block}.list-card:hover{transform:translateY(-2px);background:var(--surface-container-high);box-shadow:var(--glow-accent);color:inherit}.list-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.list-card__header h3{margin:0;font-size:var(--text-title-lg)}.list-card__date{color:var(--text-muted);font-size:var(--text-body-sm)}.list-card__progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.list-card__progress-bar{flex:1;height:6px;background:var(--card-border);border-radius:3px;overflow:hidden}.list-card__progress-bar--lg{height:8px;border-radius:4px}.list-card__progress-fill{height:100%;background:var(--secondary);border-radius:inherit;transition:width .3s}.list-card__progress-text{font-size:var(--text-body-sm);color:var(--text-muted);white-space:nowrap}.list-card__preview{display:flex;flex-wrap:wrap;gap:var(--space-1_5)}.list-card__preview-item{font-size:var(--text-label-md);padding:var(--space-0_5) var(--space-2);background:var(--card-bg-hover);border-radius:var(--radius-xs);color:var(--text-hint)}.list-card__preview-more{font-size:var(--text-label-md);color:var(--text-disabled);padding:var(--space-0_5) var(--space-2)}.recipe-list-controls{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);align-items:center}.recipe-list-controls__count{font-size:var(--text-label-md);font-weight:var(--weight-medium);color:var(--text-muted);white-space:nowrap}.recipe-search__input{flex:1;padding:var(--space-2_5) var(--space-4);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;transition:border-color .15s;height:var(--space-10)}.recipe-search__input::placeholder{color:var(--input-placeholder)}.recipe-search__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.recipe-filter__select{padding:var(--space-2_5) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;cursor:pointer;appearance:auto;transition:border-color .15s;height:var(--space-10)}.recipe-filter__select:focus{outline:none;border-bottom-color:var(--input-border-focus)}@media(max-width:640px){.recipe-list-controls{flex-wrap:wrap}.recipe-filter__select{flex:0 0 auto;min-width:120px}.recipe-search__input{flex:1 1 150px;min-width:0}.recipe-list-controls__count{order:3}}.recipe-add-menu-wrapper{position:relative}.recipe-add-menu{position:absolute;top:100%;right:0;margin-top:var(--space-1_5);background:var(--surface-container-high);border:none;border-radius:var(--radius-lg);box-shadow:var(--glow-accent-strong);z-index:50;overflow:hidden;min-width:180px}.recipe-add-menu__item{display:block;width:100%;padding:var(--space-2_5) var(--space-4);background:none;border:none;text-align:left;font-size:var(--text-body-md);color:var(--text-primary);cursor:pointer;transition:background .15s}.recipe-add-menu__item:hover{background:var(--surface-container-highest)}@media(max-width:640px){.recipe-add-menu-wrapper{width:100%;order:-1}.recipe-add-menu{left:0;right:0;min-width:auto}.recipe-add-menu__item{padding:var(--space-3) var(--space-4);min-height:var(--space-11);display:flex;align-items:center}}.confirm-modal{background:var(--surface-container);border:none;border-radius:var(--radius-xl);width:90%;max-width:360px;padding:var(--space-5);box-shadow:var(--glow-accent-strong);display:flex;flex-direction:column;gap:var(--space-3)}.confirm-modal__title{margin:0;font-size:var(--text-title-md);font-weight:var(--weight-semibold)}.confirm-modal__message{margin:0;font-size:var(--text-body-md);color:var(--text-secondary);line-height:var(--leading-relaxed)}.confirm-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.confirm-modal__btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-default);font-size:var(--text-body-md);font-weight:var(--weight-medium);cursor:pointer;transition:background .15s}.confirm-modal__btn--cancel{background:var(--surface-container-high);color:var(--text-primary)}.confirm-modal__btn--cancel:hover{background:var(--surface-container-highest)}.confirm-modal__btn--confirm{background:var(--accent);color:var(--on-accent)}.confirm-modal__btn--confirm:hover{filter:brightness(1.1)}.confirm-modal__btn--destructive{background:var(--destructive);color:#fff}.confirm-modal__btn--destructive:hover{filter:brightness(1.1)}@media(max-width:640px){.confirm-modal{width:95%;border-radius:var(--radius-lg)}.confirm-modal__btn{min-height:var(--space-11);padding:var(--space-2_5) var(--space-5)}}.picker-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.picker-modal{background:var(--surface-container);border:none;border-radius:var(--radius-xl);width:90%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--glow-accent-strong)}.picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:var(--surface-container-high);border-radius:var(--radius-xl) var(--radius-xl) 0 0}.picker-header h3{margin:0;font-size:var(--text-title-md)}.picker-close{background:none;border:none;font-size:var(--text-headline-sm);cursor:pointer;color:var(--text-muted);line-height:var(--leading-none);padding:0}.picker-close:hover{color:inherit}.picker-meal-type{display:flex;gap:var(--space-1_5);padding:var(--space-3) var(--space-5);background:var(--surface-container-low);flex-wrap:wrap}.picker-type-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:none;background:var(--surface-container);font-size:var(--text-body-sm);cursor:pointer;text-transform:capitalize;transition:background .15s;color:var(--text-secondary)}.picker-type-btn:hover{background:var(--surface-container-high)}.picker-type-btn--active{background:var(--success-container);color:var(--on-secondary-container)}.picker-ingredients-toggle{padding:var(--space-3) var(--space-5);background:var(--surface-container-low)}.picker-toggle-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-body-md)}.picker-toggle-checkbox{width:1.1rem;height:1.1rem;accent-color:var(--secondary);cursor:pointer}.picker-toggle-text{-webkit-user-select:none;user-select:none}.picker-add-actions{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-5)}.picker-add-action-btn{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-default);font-size:var(--text-body-md);font-weight:var(--weight-medium);cursor:pointer;transition:background .15s,transform .1s}.picker-add-action-btn:hover{transform:scale(1.01)}.picker-add-action-btn--primary,.picker-add-action-btn--secondary{background:var(--surface-container-high);color:var(--text-primary);border:none}.picker-add-action-btn--primary:hover,.picker-add-action-btn--secondary:hover{background:var(--surface-container-highest)}.picker-day-prompt{font-size:var(--text-body-md);color:var(--text-secondary);margin:0;text-align:center}.picker-note{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-5);align-items:center}.picker-note__input{flex:1;padding:var(--space-2) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md)}.picker-note__input::placeholder{color:var(--input-placeholder);font-style:italic}.picker-note__input:focus{outline:none;border-bottom-color:var(--accent)}.picker-note__add{padding:var(--space-1_5) var(--space-3);border:none;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--text-body-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:transform .1s}.picker-note__add:hover{transform:scale(.98)}.picker-search{padding:var(--space-3) var(--space-5)}.picker-search__input{width:100%;padding:var(--space-2) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md)}.picker-search__input::placeholder{color:var(--input-placeholder)}.picker-search__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.picker-recipes{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1}.picker-recipes--empty{padding:var(--space-8) var(--space-5);text-align:center;color:var(--text-muted);font-size:var(--text-body-md)}.picker-recipe{display:flex;flex-direction:column;gap:var(--space-0_5);width:100%;padding:var(--space-3) var(--space-5);background:none;border:none;text-align:left;cursor:pointer;transition:background .15s}.picker-recipe:hover{background:var(--card-bg-hover)}.picker-recipe__title{font-size:var(--text-body-lg);font-weight:var(--weight-medium)}.picker-recipe__meta{font-size:var(--text-label-md);color:var(--text-muted)}.new-recipe-modal{background:var(--surface-container);border:none;border-radius:var(--radius-xl);width:90%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--glow-accent-strong)}.new-recipe-modal form{display:flex;flex-direction:column;max-height:85vh}.new-recipe-modal__body{padding:var(--space-5);overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.new-recipe-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--surface-container-high);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.new-recipe-field{display:flex;flex-direction:column;gap:var(--space-1_5)}.new-recipe-field--sm{flex:1;min-width:0}.new-recipe-label{font-size:var(--text-label-md);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-secondary)}.new-recipe-input{padding:var(--space-2) var(--space-2_5);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit}.new-recipe-input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.new-recipe-textarea{resize:vertical;min-height:var(--space-11)}.new-recipe-meta-row{display:flex;gap:var(--space-3)}.new-recipe-tags{display:flex;gap:var(--space-1_5);flex-wrap:wrap}.new-recipe-ing-row{display:flex;gap:var(--space-1_5);align-items:center;margin-bottom:var(--space-1_5)}.new-recipe-input--amount{flex:0 0 55px}.new-recipe-input--unit{flex:0 0 65px}.new-recipe-input--name{flex:1}.new-recipe-input--cat{flex:0 0 90px;font-size:var(--text-body-sm)}.new-recipe-step-row{display:flex;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-1_5)}.new-recipe-step-num{flex-shrink:0;width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);background:var(--secondary);color:var(--on-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-label-md);font-weight:var(--weight-semibold);margin-top:var(--space-1_5)}.new-recipe-step-row .new-recipe-textarea{flex:1}.new-recipe-remove-btn{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);font-size:var(--text-body-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.new-recipe-remove-btn:hover{color:var(--destructive-text);background:var(--destructive-hover)}.new-recipe-add-row-btn{align-self:flex-start;padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-sm);background:var(--surface-container-high);color:var(--accent);font-size:var(--text-body-sm);font-weight:var(--weight-medium);cursor:pointer;margin-top:var(--space-1)}.new-recipe-add-row-btn:hover{background:var(--surface-container-highest)}.new-recipe-cancel-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-default);background:var(--surface-container-low);color:inherit;font-size:var(--text-body-md);cursor:pointer}.new-recipe-cancel-btn:hover{background:var(--card-bg-hover)}.new-recipe-save-btn{padding:var(--space-2) var(--space-5);border:none;border-radius:var(--radius-default);background:var(--accent);color:var(--on-accent);font-size:var(--text-body-md);font-weight:var(--weight-semibold);cursor:pointer}.new-recipe-save-btn:hover:not(:disabled){filter:brightness(1.1)}.new-recipe-save-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:640px){.picker-modal{width:95%;max-height:85vh;border-radius:var(--radius-lg)}.new-recipe-modal{width:95%;max-height:92vh;border-radius:var(--radius-lg)}.picker-type-btn{padding:var(--space-2) var(--space-4);min-height:var(--space-11);font-size:var(--text-body-md)}.picker-close{width:var(--space-11);height:var(--space-11);display:flex;align-items:center;justify-content:center}.picker-add-action-btn{min-height:var(--space-11);padding:var(--space-3) var(--space-4)}.picker-recipe{padding:var(--space-4) var(--space-5);min-height:var(--space-11)}.new-recipe-cancel-btn,.new-recipe-save-btn{min-height:var(--space-11);padding:var(--space-2_5) var(--space-5)}.new-recipe-ing-row{flex-wrap:wrap}.new-recipe-input--amount{flex:0 0 50px}.new-recipe-input--unit{flex:0 0 55px}.new-recipe-input--name{flex:1 1 calc(100% - 120px);min-width:100px}.new-recipe-input--cat{flex:1 1 calc(100% - 50px)}}.tag{padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-label-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-wide);border:none}.toast-container{position:fixed;bottom:var(--space-20);left:50%;transform:translate(-50%);z-index:9998;display:flex;flex-direction:column;gap:var(--space-2);align-items:center;pointer-events:none}.toast{background:var(--toast-bg);color:#fff;padding:var(--space-2_5) var(--space-5);border-radius:var(--radius-lg);font-size:var(--text-body-md);box-shadow:var(--shadow-md);border:1px solid var(--toast-border);animation:toast-in .25s ease-out;white-space:nowrap;pointer-events:auto;display:flex;align-items:center;gap:var(--space-3)}.toast__text{flex:1}.toast__action{background:none;border:none;color:var(--accent);font-size:var(--text-body-md);font-weight:var(--weight-semibold);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.toast__action:hover{background:#ffffff1a}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.store-combobox{position:relative}.store-combobox__input{width:100%;padding:var(--space-2) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;transition:border-color .15s}.store-combobox__input::placeholder{color:var(--input-placeholder)}.store-combobox__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.store-combobox__dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;list-style:none;margin:0;padding:var(--space-1) 0;background:var(--surface-container-high);border-radius:0 0 var(--radius-default) var(--radius-default);box-shadow:var(--shadow-md);max-height:180px;overflow-y:auto}.store-combobox__option{display:block;width:100%;padding:var(--space-2_5) var(--space-3);background:none;border:none;color:inherit;font-size:var(--text-body-md);font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.store-combobox__option:hover{background:var(--interactive-hover)}@media(max-width:640px){.store-combobox__option{min-height:var(--space-11);display:flex;align-items:center}}.ingredient-combobox{position:relative}.ingredient-combobox__input{width:100%;padding:var(--space-2_5) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--input-bg);color:var(--text-primary);font-size:var(--text-body-md);font-family:inherit;transition:border-color .15s}.ingredient-combobox__input::placeholder{color:var(--input-placeholder)}.ingredient-combobox__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.ingredient-combobox__dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;list-style:none;margin:0;padding:var(--space-1) 0;background:var(--surface-container-high);border-radius:0 0 var(--radius-default) var(--radius-default);box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto}.ingredient-combobox__option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2_5) var(--space-3);background:none;border:none;color:inherit;font-size:var(--text-body-md);font-family:inherit;text-align:left;cursor:pointer;gap:var(--space-3);transition:background .1s}.ingredient-combobox__option:hover{background:var(--interactive-hover)}.ingredient-combobox__option-name{font-weight:var(--weight-medium);flex:1;min-width:0}.ingredient-combobox__option-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.ingredient-combobox__option-store{font-size:var(--text-label-sm);color:var(--text-secondary);background:var(--surface-container-highest);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-pill);white-space:nowrap}.ingredient-combobox__option-amount{font-size:var(--text-label-sm);color:var(--text-muted);white-space:nowrap}@media(max-width:640px){.ingredient-combobox__option{min-height:var(--space-11)}}.onboarding{max-width:32rem;margin:var(--space-8) auto;text-align:center;padding:var(--space-4)}.onboarding__hero{margin-bottom:var(--space-8)}.onboarding__icon{font-size:4rem;display:block;margin-bottom:var(--space-4)}.onboarding__title{font-size:var(--text-headline-md);font-weight:var(--weight-bold);color:var(--text-primary);margin:0 0 var(--space-3)}.onboarding__desc{font-size:var(--text-body-lg);color:var(--text-secondary);line-height:var(--leading-relaxed, 1.6);margin:0}.onboarding__actions{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6);text-align:left}.onboarding-action{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-container);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:background .2s,transform .2s;text-decoration:none;color:inherit}.onboarding-action:hover{background:var(--surface-container-high);transform:translateY(-2px);color:inherit}.onboarding-action--primary{background:var(--surface-container-high);box-shadow:var(--glow-accent)}.onboarding-action--primary:hover{background:var(--surface-container-highest)}.onboarding-action__icon{font-size:2rem;flex-shrink:0}.onboarding-action__text{display:flex;flex-direction:column;gap:var(--space-1)}.onboarding-action__text strong{font-size:var(--text-body-lg);font-weight:var(--weight-semibold);color:var(--text-primary)}.onboarding-action__text span{font-size:var(--text-body-sm);color:var(--text-muted)}.onboarding__tip{font-size:var(--text-body-sm);color:var(--text-secondary);padding:var(--space-3) var(--space-4);background:var(--surface-container-low);border-radius:var(--radius-lg);border-left:4px solid var(--success);text-align:left}@media(max-width:640px){.onboarding{padding:var(--space-3);margin:var(--space-4) auto}.onboarding__icon{font-size:3rem}.onboarding__title{font-size:var(--text-headline-sm)}.onboarding-action{padding:var(--space-3) var(--space-4);min-height:var(--space-11)}.onboarding-action__icon{font-size:1.5rem}}.home-page{padding-top:0}.home-hero{padding-top:var(--space-4);margin-bottom:var(--space-12)}.home-hero__greeting{font-size:var(--text-label-md);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent);margin-bottom:var(--space-2)}.home-hero__title{font-size:var(--text-display-lg);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--text-primary);margin:0 0 var(--space-3)}.home-subtitle{color:var(--text-secondary);font-size:var(--text-body-lg);line-height:var(--leading-relaxed);max-width:480px}.quick-actions{display:flex;gap:var(--space-6);margin-top:var(--space-12);justify-content:center;flex-wrap:wrap}.meal-plan-section{margin-top:0}.unscheduled-hint{font-size:var(--text-body-sm);color:var(--text-muted);font-style:italic}.unscheduled-list{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-container-low)}.unscheduled-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-container);border-radius:var(--radius-default);border-left:3px solid var(--accent);cursor:grab;transition:transform .15s,background .15s}.unscheduled-item:active{cursor:grabbing}.unscheduled-item:hover{transform:translateY(-2px);background:var(--surface-container-high)}.unscheduled-item__link{text-decoration:none;color:inherit}.unscheduled-item__link:hover{color:inherit}.unscheduled-item__title{font-size:var(--text-body-md);font-weight:var(--weight-medium)}.unscheduled-item__remove{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);font-size:var(--text-body-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:var(--leading-none);transition:color .15s,background .15s}.unscheduled-item__remove:hover{color:var(--destructive-text);background:var(--destructive-hover)}.week-section-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.week-section-header--next{margin-top:var(--space-10)}.week-section-label{margin:0;font-size:var(--text-label-lg);font-weight:var(--weight-extrabold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--text-primary)}.week-section-add{width:var(--space-7);height:var(--space-7);border-radius:var(--radius-full);border:none;background:var(--surface-container-high);color:var(--accent);font-size:var(--text-title-md);font-weight:var(--weight-semibold);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 1px;line-height:1;transition:background .15s}.week-section-add:hover{background:var(--surface-container-highest)}.week-day-picker{position:relative}.week-day-picker__dropdown{position:absolute;top:100%;left:0;z-index:50;display:flex;gap:var(--space-1);padding:var(--space-2);background:var(--surface-container);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-top:var(--space-2);white-space:nowrap}.week-day-picker__day{padding:var(--space-1_5) var(--space-2_5);border:none;border-radius:var(--radius-default);background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-label-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background .15s,color .15s}.week-day-picker__day:hover{background:var(--accent);color:var(--on-accent)}.week-toggle-btn{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--accent);cursor:pointer;transition:background .15s}.week-toggle-btn:hover{background:var(--surface-container-highest)}.past-days-toggle,.meal-plan-grid--past{margin-bottom:var(--space-4)}.meal-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.meal-plan-day{background:var(--surface-container-low);border:none;border-radius:var(--radius-lg);padding:var(--space-5);min-height:120px;transition:background .2s;display:flex;flex-direction:column}.meal-plan-day:hover{background:var(--surface-container)}.meal-plan-day--drag-over{background:var(--interactive-selected)}.meal-plan-day--past{opacity:.5}.meal-plan-day--today{background:var(--surface-container);border-left:4px solid var(--success);box-shadow:var(--glow-accent)}.meal-plan-day--today:hover{background:var(--surface-container-high)}.meal-plan-grid--next .meal-plan-day{background:var(--surface-container-lowest)}.meal-plan-grid--next .meal-plan-day:hover{background:var(--surface-container-low)}.meal-plan-day__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.meal-plan-day__name{font-size:var(--text-label-md);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--text-muted);margin:0;font-weight:var(--weight-semibold);display:flex;align-items:center;gap:var(--space-2)}.meal-plan-day--today .meal-plan-day__name{color:var(--success)}.meal-plan-day__today-badge{font-size:var(--text-label-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);background:var(--success-container);color:var(--on-secondary-container);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-pill);font-weight:var(--weight-bold)}.meal-plan-day__add{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);border:none;background:var(--surface-container-high);color:var(--accent);font-size:var(--text-body-lg);font-weight:var(--weight-semibold);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:var(--leading-none);transition:background .15s}.meal-plan-day__add:hover{background:var(--surface-container-highest)}.meal-plan-day__meals{display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-height:var(--space-12)}.meal-plan-empty{font-size:var(--text-body-sm);color:var(--text-hint);font-style:italic;padding:var(--space-2) 0;flex:1;display:flex;align-items:center}.meal-plan-meal{display:flex;align-items:flex-start;gap:var(--space-0_5);padding:var(--space-2);border-radius:var(--radius-default);color:inherit;transition:background .15s;cursor:grab}.meal-plan-meal:active{cursor:grabbing}.meal-plan-meal:hover{background:var(--surface-container-high);color:inherit}.meal-plan-meal__link{display:flex;flex-direction:column;gap:var(--space-0_5);text-decoration:none;color:inherit;flex:1;min-width:0}.meal-plan-meal__link:hover{color:inherit}.meal-plan-meal__type{font-size:var(--text-label-sm);text-transform:capitalize;color:var(--text-muted)}.meal-plan-meal__title{font-size:var(--text-body-md);font-weight:var(--weight-medium)}.meal-plan-meal--note{opacity:.85}.meal-plan-meal__title--note{font-style:italic;color:var(--text-secondary)}.meal-plan-meal__clear{flex-shrink:0;width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-hint);font-size:var(--text-body-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:var(--leading-none);transition:color .15s,background .15s;opacity:0}.meal-plan-meal:hover .meal-plan-meal__clear{opacity:1}.meal-plan-meal__clear:hover{color:var(--destructive-text);background:var(--destructive-hover)}.today-card{background:var(--surface-container);border-left:4px solid var(--success);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);box-shadow:var(--glow-accent);transition:background .2s}.today-card.meal-plan-day--drag-over{background:var(--interactive-selected)}.today-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.today-card__name{font-size:var(--text-title-md);font-weight:var(--weight-bold);color:var(--success);margin:0;display:flex;align-items:center;gap:var(--space-2);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.today-card__empty{color:var(--text-hint);font-style:italic;font-size:var(--text-body-md);padding:var(--space-4) 0}.today-card__meals{display:flex;flex-direction:column;gap:var(--space-3)}.today-meal{display:flex;align-items:flex-start;gap:var(--space-1);border-radius:var(--radius-default);transition:background .15s;cursor:grab}.today-meal:active{cursor:grabbing}.today-meal:hover{background:var(--surface-container-high)}.today-meal__link{display:flex;align-items:center;gap:var(--space-4);text-decoration:none;color:inherit;flex:1;min-width:0;padding:var(--space-2)}.today-meal__link:hover{color:inherit}.today-meal__image{flex-shrink:0;width:80px;height:56px;border-radius:var(--radius-default);overflow:hidden;background:var(--surface-container-highest)}.today-meal__image img{width:100%;height:100%;object-fit:cover;display:block}.today-meal__image .recipe-placeholder{width:100%;height:100%;aspect-ratio:auto;border-radius:0}.today-meal__image .recipe-placeholder__emoji{font-size:var(--text-title-md)}.today-meal__info{display:flex;flex-direction:column;gap:var(--space-0_5);min-width:0}.today-meal__type{font-size:var(--text-label-sm);text-transform:capitalize;color:var(--text-muted)}.today-meal__title{font-size:var(--text-body-lg);font-weight:var(--weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-meal__meta{font-size:var(--text-label-md);color:var(--text-muted)}.today-meal--note .today-meal__title{font-style:italic;color:var(--text-secondary)}.today-meal__clear{flex-shrink:0;width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-hint);font-size:var(--text-body-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:var(--leading-none);transition:color .15s,background .15s;opacity:0;margin-top:var(--space-2)}.today-meal:hover .today-meal__clear{opacity:1}.today-meal__clear:hover{color:var(--destructive-text);background:var(--destructive-hover)}@media(max-width:640px){.quick-actions{flex-direction:column}.meal-plan-grid{grid-template-columns:1fr 1fr}.home-hero__title{font-size:var(--text-display-sm)}.today-meal__image{width:64px;height:44px}.meal-plan-day__add,.week-section-add,.meal-plan-meal__clear,.today-meal__clear{width:var(--space-11);height:var(--space-11);font-size:var(--text-title-md)}.meal-plan-meal .meal-plan-meal__clear,.today-meal .today-meal__clear{opacity:.5}.week-toggle-btn{padding:var(--space-2_5) var(--space-4);min-height:var(--space-11);display:inline-flex;align-items:center}}.recipe-list-hero{margin-bottom:var(--space-12)}.recipe-list-hero__label{font-size:var(--text-label-md);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent);margin:0 0 var(--space-2)}.recipe-list-hero__title{font-size:var(--text-display-lg);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--text-primary);margin:0 0 var(--space-3)}.recipe-list-hero__subtitle{color:var(--text-secondary);font-size:var(--text-body-lg);line-height:var(--leading-relaxed);margin:0}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.recipe-grid--empty{grid-column:1 / -1;text-align:center;padding:var(--space-12) var(--space-4);color:var(--text-muted);font-size:var(--text-body-lg)}.import-hint{font-size:var(--text-body-md);color:var(--text-muted);line-height:var(--leading-normal);margin:0}.import-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-12) var(--space-4)!important;text-align:center;color:var(--text-muted)}.import-spinner{width:var(--space-8);height:var(--space-8);border:3px solid var(--card-border);border-top-color:var(--secondary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.import-error{text-align:center;padding:var(--space-6) 0}.import-error__icon{font-size:var(--text-headline-lg);margin:0 0 var(--space-2)}.import-error__msg{color:var(--text-muted);font-size:var(--text-body-md);line-height:var(--leading-normal)}.camera-viewfinder{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:0!important}.camera-viewfinder__video{width:100%;max-height:60vh;border-radius:0;object-fit:cover;background:var(--surface-container-lowest)}.camera-viewfinder__hint{color:var(--text-muted);font-size:var(--text-body-md);margin:0;padding:0 var(--space-4)}.camera-snap-btn{font-size:var(--text-title-md)!important;padding:var(--space-2_5) var(--space-8)!important}.ingredient-view-toggle{display:flex;gap:0;margin-bottom:var(--space-3);border-radius:var(--radius-default);overflow:hidden;background:var(--surface-container-low)}.ingredient-view-btn{flex:1;padding:var(--space-2) var(--space-3);background:transparent;border:none;color:var(--text-muted);font-size:var(--text-body-md);cursor:pointer;transition:background .15s,color .15s}.ingredient-view-btn--active{background:var(--success-container);color:var(--on-secondary-container)}.shopping-preview-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0}.shopping-preview-item__qty{min-width:5rem;font-weight:var(--weight-semibold);color:var(--secondary);font-size:var(--text-body-md);flex-shrink:0}.shopping-preview-item__info{flex:1;display:flex;flex-direction:column;gap:var(--space-0_5)}.shopping-preview-item__name{font-size:var(--text-body-md)}.shopping-preview-item__sources{font-size:var(--text-label-md);color:var(--text-muted);font-style:italic}.import-review-image{margin-bottom:var(--space-3);border-radius:var(--radius-default);overflow:hidden;min-height:80px}.import-review-image__img{width:100%;height:200px;object-fit:cover;border-radius:var(--radius-default);display:block;background:var(--toast-bg)}.import-review-image .recipe-placeholder{aspect-ratio:3 / 1;border-radius:var(--radius-default)}.import-review-image .recipe-placeholder__emoji{font-size:var(--text-headline-lg)}.import-review-banner{padding:var(--space-2_5) var(--space-4);background:var(--success-container);border:none;border-left:4px solid var(--success);border-radius:var(--radius-default);font-size:var(--text-body-md);color:var(--on-secondary-container)}.import-review-ingredient{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1_5) var(--space-2);margin-bottom:var(--space-1);border-radius:var(--radius-sm);background:var(--surface-container-low);font-size:var(--text-body-md)}.import-review-ingredient__amount{color:var(--text-muted);min-width:80px;white-space:nowrap}.import-review-ingredient__name{flex:1}.import-review-ingredient__cat{font-size:var(--text-label-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--secondary);background:var(--interactive-hover);padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-pill)}.import-review-step{display:flex;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-2);font-size:var(--text-body-md);line-height:var(--leading-normal)}.import-review-step p{margin:0;padding-top:var(--space-0_5)}.import-source{font-size:var(--text-body-sm);color:var(--text-muted);margin:0}.import-source a{color:var(--accent)}.recipe-detail-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.recipe-overflow{position:relative}.recipe-overflow__btn{background:var(--surface-container-high);border:none;border-radius:var(--radius-full);width:var(--space-10);height:var(--space-10);font-size:var(--text-title-lg);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.recipe-overflow__btn:hover{background:var(--surface-container-highest);color:var(--text-primary)}.recipe-overflow__menu{position:absolute;top:calc(100% + var(--space-2));right:0;background:var(--surface-container-high);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:12rem;z-index:20;overflow:hidden}.recipe-overflow__item{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;padding:var(--space-3) var(--space-4);border:none;background:transparent;color:var(--text-primary);font-size:var(--text-body-md);cursor:pointer;transition:background .15s}.recipe-overflow__item:hover{background:var(--surface-container-highest)}.recipe-overflow__item--danger{color:var(--destructive-text)}.recipe-overflow__item--danger:hover{background:var(--destructive-hover)}.recipe-header{margin-bottom:var(--space-8);padding-bottom:var(--space-8)}.recipe-header__layout{display:flex;gap:var(--space-8);align-items:flex-start}.recipe-header__info{flex:1;min-width:0}.recipe-header__visual{flex-shrink:0;width:320px;border-radius:var(--radius-lg);overflow:hidden;position:relative}.recipe-fab{position:absolute;bottom:var(--space-4);right:var(--space-4);padding:var(--space-2_5) var(--space-6);border:none;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--text-body-lg);font-weight:var(--weight-bold);cursor:pointer;box-shadow:var(--glow-accent-strong),var(--shadow-md);transition:transform .15s,box-shadow .15s;z-index:2;letter-spacing:var(--tracking-wide)}.recipe-fab:hover{transform:scale(1.05);box-shadow:var(--glow-accent-strong),var(--shadow-lg)}.recipe-fab--added{background:var(--success-container);color:var(--on-secondary-container);box-shadow:none;cursor:default}.recipe-header__visual img{width:100%;aspect-ratio:3 / 2;object-fit:cover;display:block}.recipe-header__title{font-size:var(--text-display-sm);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);margin:0 0 var(--space-2)}.recipe-header__desc{color:var(--text-muted);font-size:var(--text-title-md);line-height:var(--leading-normal);margin:0 0 var(--space-4)}.recipe-header__meta{display:flex;gap:var(--space-5);font-size:var(--text-body-md);color:var(--text-muted);margin-bottom:var(--space-3);flex-wrap:wrap}.recipe-header__difficulty{font-weight:var(--weight-semibold);text-transform:capitalize}.recipe-header__difficulty--easy{color:var(--success-text)}.recipe-header__difficulty--medium{color:var(--tertiary)}.recipe-header__difficulty--hard{color:var(--error)}.recipe-header__tags{display:flex;gap:var(--space-1_5);flex-wrap:wrap}.recipe-placeholder{width:100%;aspect-ratio:3 / 2;border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);position:relative;overflow:hidden}.recipe-placeholder--card{aspect-ratio:3/2;border-radius:0}.recipe-placeholder__emojis{display:flex;gap:var(--space-2)}.recipe-placeholder__emoji{font-size:var(--text-display-sm);filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.recipe-placeholder--card .recipe-placeholder__emoji{font-size:var(--text-display-md)}.recipe-placeholder__worm{position:absolute;bottom:var(--space-2);right:var(--space-3);font-size:var(--text-title-lg);opacity:.6}.ingredients-header{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-3)}.ingredients-header h2{margin:0}.serving-adjuster{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.serving-adjuster__btn{width:var(--space-7);height:var(--space-7);border-radius:var(--radius-full);border:none;background:var(--surface-container-high);color:inherit;font-size:var(--text-body-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:var(--leading-none);transition:background .15s}.serving-adjuster__btn:hover{background:var(--surface-container-highest)}.serving-adjuster__btn:disabled{opacity:.3;cursor:not-allowed}.serving-adjuster__value{font-size:var(--text-body-md);white-space:nowrap}.serving-adjuster__multiplier{color:var(--secondary);font-weight:var(--weight-semibold);margin-left:var(--space-1)}.ingredients-header__toggle{display:flex;align-items:center;gap:var(--space-3);background:none;border:none;cursor:pointer;padding:var(--space-2) 0;color:inherit;flex:1}.ingredients-header__toggle h2{margin:0}.ingredients-header__count{font-size:var(--text-body-sm);color:var(--text-muted);font-weight:var(--weight-regular)}.ingredients-header__chevron{font-size:var(--text-body-lg);color:var(--text-muted);margin-left:auto}.ingredient-select-bar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.ingredient-select-btn{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-pill);background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-body-sm);cursor:pointer;transition:background .15s}.ingredient-select-btn:hover{background:var(--surface-container-highest)}.ingredient-select-count{font-size:var(--text-body-sm);color:var(--accent);font-weight:var(--weight-semibold)}.ingredient-item__check{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-xs);border:2px solid var(--card-border);display:flex;align-items:center;justify-content:center;font-size:var(--text-label-sm);flex-shrink:0;color:transparent;transition:background .15s,border-color .15s,color .15s}.ingredient-item__check--on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ingredient-item{cursor:pointer;-webkit-user-select:none;user-select:none}.ingredient-item--selected{background:var(--interactive-selected)}.ingredient-bulk-bar{display:flex;gap:var(--space-2);padding:var(--space-3);margin-top:var(--space-4);background:var(--surface-container-high);border-radius:var(--radius-lg);position:sticky;bottom:var(--space-4);box-shadow:var(--shadow-lg)}.ingredient-bulk-btn{flex:1;padding:var(--space-2_5) var(--space-4);border:none;border-radius:var(--radius-default);font-size:var(--text-body-md);font-weight:var(--weight-semibold);cursor:pointer;transition:background .15s,transform .1s}.ingredient-bulk-btn:hover{transform:scale(.98)}.ingredient-bulk-btn--review{background:var(--accent);color:var(--on-accent);box-shadow:var(--glow-accent)}.ingredient-bulk-btn--shopping{background:var(--surface-container-highest);color:var(--text-primary)}.recipe-detail__content{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-8);margin-bottom:var(--space-8)}.recipe-detail__ingredients h2,.recipe-detail__steps h2{margin-top:0;margin-bottom:var(--space-4)}.ingredient-group{margin-bottom:var(--space-5)}.ingredient-group__label{font-size:var(--text-label-md);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--secondary);margin:0 0 var(--space-2)}.ingredient-group ul{list-style:none;padding:0;margin:0}.ingredient-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);border-radius:var(--radius-sm);background:var(--surface-container-low);font-size:var(--text-body-md)}.ingredient-item__amount{color:var(--text-muted);white-space:nowrap;min-width:80px}.ingredient-item__name{flex:1}.steps-list{list-style:none;padding:0;margin:0;counter-reset:none}.step-item{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);align-items:flex-start}.step-item__number{flex-shrink:0;width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);background:var(--secondary);color:var(--on-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--text-body-md);font-weight:var(--weight-semibold)}.step-item p{margin:0;padding-top:var(--space-1);line-height:var(--leading-normal)}.recipe-detail__tags{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-4)}@media(max-width:640px){.recipe-detail__content,.recipe-grid{grid-template-columns:1fr}.recipe-header__layout{flex-direction:column-reverse;gap:var(--space-4)}.recipe-header__visual{width:100%;max-width:none}.recipe-header__title{font-size:var(--text-headline-lg)}.ingredients-header{flex-direction:column;align-items:flex-start}.serving-adjuster{margin-left:0}.serving-adjuster__btn{width:var(--space-11);height:var(--space-11)}.ingredient-item__check{min-width:var(--space-11);min-height:var(--space-11);display:flex;align-items:center;justify-content:center}.ingredient-bulk-bar{position:fixed;bottom:var(--space-4);left:var(--space-4);right:var(--space-4)}.step-item__number{width:var(--space-11);height:var(--space-11);font-size:var(--text-body-lg)}}.recipe-not-found{text-align:center;max-width:24rem;margin:0 auto;padding:var(--space-12) var(--space-8)}.recipe-not-found__icon{font-size:3rem;display:block;margin-bottom:var(--space-4)}.recipe-not-found__title{font-size:var(--text-headline-md);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-3)}.recipe-not-found__desc{font-size:var(--text-body-md);color:var(--text-muted);margin-bottom:var(--space-6);line-height:var(--leading-relaxed, 1.6)}.recipe-not-found__link{font-size:var(--text-body-md);font-weight:var(--weight-medium);color:var(--accent);text-decoration:none}.recipe-not-found__link:hover{text-decoration:underline}.list-hero{margin-bottom:var(--space-10)}.list-hero__label{font-size:var(--text-label-md);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--accent);margin:0 0 var(--space-2)}.list-hero__title{font-size:var(--text-display-lg);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight);color:var(--text-primary);margin:0 0 var(--space-3)}.list-hero__subtitle{color:var(--text-secondary);font-size:var(--text-body-lg);line-height:var(--leading-relaxed);margin:0}.lists-page{display:flex;flex-direction:column;gap:var(--space-6)}.lists-tabs{display:flex;gap:0;border-bottom:2px solid var(--card-border)}.lists-tab{flex:1;padding:var(--space-3) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-2px;font-size:var(--text-body-lg);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;text-align:center}.lists-tab:hover{color:inherit}.lists-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.lists-empty{text-align:center;color:var(--text-muted);padding:var(--space-10)}.lists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-6)}.quick-add-bar{display:flex;align-items:stretch;gap:var(--space-2);margin-bottom:var(--space-6)}.quick-add-bar__input{flex:1;padding:var(--space-3) var(--space-4);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--surface-container-low);color:var(--text-primary);font-size:var(--text-body-lg);font-family:inherit;transition:border-color .15s}.quick-add-bar__input::placeholder{color:var(--input-placeholder)}.quick-add-bar__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.quick-add-bar__store{padding:var(--space-3) var(--space-4);border:none;border-bottom:2px solid var(--outline-variant);border-left:2px solid var(--outline-variant);border-radius:0 var(--radius-sm) 0 0;background:var(--surface-container-low);color:var(--secondary);font-size:var(--text-body-lg);font-family:inherit;cursor:pointer;appearance:auto;transition:border-color .15s;height:auto}.quick-add-bar__store:focus{outline:none;border-bottom-color:var(--input-border-focus)}.quick-add-bar__btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);font-size:var(--text-body-md);font-weight:var(--weight-bold);cursor:pointer;white-space:nowrap;transition:transform .1s;box-shadow:var(--glow-accent-strong)}.quick-add-bar__btn:hover{transform:scale(.98)}.list-detail__header{margin-bottom:var(--space-8)}.list-detail__header h1{margin-bottom:var(--space-3)}.list-detail__progress{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-body-md);color:var(--text-muted)}.list-detail__categories{display:flex;flex-direction:column;gap:var(--space-10)}.list-tabs{display:flex;gap:0;margin-bottom:var(--space-6);border-bottom:2px solid var(--card-border)}.list-tab{flex:1;padding:var(--space-3) var(--space-4);background:none;border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-2px;font-size:var(--text-body-lg);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;transition:color .15s,border-color .15s;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.list-tab:hover{color:inherit}.list-tab--active{color:var(--accent);border-bottom-color:var(--accent)}.list-tab__badge{font-size:var(--text-label-sm);background:var(--accent);color:var(--on-accent);padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-full);font-weight:var(--weight-bold);min-width:1.2rem;text-align:center}.list-tab:not(.list-tab--active) .list-tab__badge{background:var(--surface-container-highest);color:var(--text-secondary)}.store-tabs{display:flex;gap:var(--space-1_5);margin-bottom:var(--space-6);flex-wrap:wrap}.store-tab{padding:var(--space-1_5) var(--space-3_5);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);color:inherit;font-size:var(--text-body-md);cursor:pointer;display:flex;align-items:center;gap:var(--space-1_5);transition:background .15s}.store-tab:hover{background:var(--surface-container-highest)}.store-tab--active{background:var(--success-container);color:var(--on-secondary-container)}.store-tab--editing{display:inline-flex;align-items:center}.store-tab__rename-input{padding:var(--space-1) var(--space-2);border:none;border-bottom:2px solid var(--input-border-focus);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;width:120px}.store-tab__rename-input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.store-tab__count{font-size:var(--text-label-sm);background:#fff3;padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-full);font-weight:var(--weight-semibold)}.store-tab:not(.store-tab--active) .store-tab__count{background:var(--interactive-selected);color:var(--secondary)}.list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.list-controls .store-tabs{margin-bottom:0}.group-toggle{display:flex;align-items:center;gap:var(--space-1_5);margin-left:auto}.group-toggle__label{font-size:var(--text-body-sm);color:var(--text-muted);margin-right:var(--space-0_5)}.group-toggle__btn{padding:var(--space-1) var(--space-2_5);border-radius:var(--radius-xs);border:none;background:var(--surface-container-high);color:inherit;font-size:var(--text-body-sm);cursor:pointer;transition:background .15s}.group-toggle__btn:hover{background:var(--surface-container-highest)}.group-toggle__btn--active{background:var(--success-container);color:var(--on-secondary-container)}.list-subcategory{margin-left:var(--space-2);margin-bottom:var(--space-3)}.list-subcategory__name{font-size:var(--text-label-sm);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--text-muted);margin:var(--space-2) 0 var(--space-1);font-weight:var(--weight-bold)}.list-category__name{font-size:var(--text-body-sm);font-weight:var(--weight-extrabold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--secondary);margin:0 0 var(--space-2)}.list-category__items{list-style:none;padding:0;margin:0}.list-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-1);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,opacity .2s,transform .2s;-webkit-user-select:none;user-select:none}.list-item:hover{background:var(--surface-container-high)}.list-item[draggable=true]{cursor:grab}.list-item[draggable=true]:active{cursor:grabbing}.list-item--checked{opacity:.5}.list-item--checked .list-item__name{text-decoration:line-through}.list-item__check{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);border:2px solid var(--card-border);display:flex;align-items:center;justify-content:center;font-size:var(--text-label-md);flex-shrink:0;color:var(--secondary)}.list-item--checked .list-item__check{background:var(--secondary);border-color:var(--secondary);color:#fff}.list-item__name{font-size:var(--text-body-lg)}.list-item__amount{color:var(--text-muted);font-size:var(--text-body-sm);white-space:nowrap;margin-right:auto}.list-item__edit-btn{opacity:0;background:transparent;border:none;font-size:var(--text-body-md);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);transition:opacity .15s;flex-shrink:0}.list-item:hover .list-item__edit-btn{opacity:.6}.list-item__edit-btn:hover{opacity:1!important}.list-item--editing{background:var(--card-bg)!important;border-radius:var(--radius-default)}.list-item__edit-form{display:flex;align-items:center;gap:var(--space-2);width:100%}.list-item__edit-input{padding:var(--space-1_5) var(--space-2_5);border-radius:0;border:none;border-bottom:2px solid var(--outline-variant);background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit}.list-item__edit-input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.list-item__edit-input--name{flex:2}.list-item__edit-input--amount{flex:0 0 60px;text-align:center}.list-item__edit-input--unit{flex:0 0 80px}.list-item__edit-input--store{flex:0 0 110px;cursor:pointer;appearance:auto}.list-item__edit-save,.list-item__edit-cancel{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-body-md);flex-shrink:0;padding:0}.list-item__edit-save{background:var(--secondary);color:var(--on-secondary)}.list-item__edit-cancel{background:var(--surface-container-high);color:var(--text-muted);border:none}.list-item__edit-cancel:hover{color:var(--text-primary);background:var(--surface-container-highest)}.list-category--done{opacity:.5}.list-category__count{font-weight:var(--weight-regular);font-size:var(--text-label-sm);color:var(--text-disabled);margin-left:var(--space-3);text-transform:none;letter-spacing:0}.list-category__name--collapsible{cursor:pointer;display:flex;align-items:center;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);transition:background .15s}.list-category__name--collapsible:hover{background:var(--surface-container-high)}.list-category__chevron{margin-left:auto;font-size:var(--text-body-lg);color:var(--text-muted)}.shopping-list-view{display:flex;flex-direction:column;gap:var(--space-6)}.shopping-list-header{display:flex;align-items:center;justify-content:space-between}.shopping-list-header h2{margin:0;font-size:var(--text-headline-sm)}.shopping-list-header{flex-wrap:wrap;gap:var(--space-2)}.shopping-list-progress{font-size:var(--text-body-sm);color:var(--text-muted)}.shopping-list-clear-btn{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--destructive-text);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-3);border-radius:var(--radius-default);transition:background .15s}.shopping-list-clear-btn:hover{background:var(--destructive-hover)}.shopping-add-form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--surface-container-low);border-radius:var(--radius-xl)}.shopping-add-form__row{display:flex;gap:var(--space-2);align-items:stretch}.shopping-add-form__input{padding:var(--space-2_5) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--input-bg);color:var(--text-primary);font-size:var(--text-body-md);font-family:inherit;transition:border-color .15s}.shopping-add-form__input::placeholder{color:var(--input-placeholder)}.shopping-add-form__input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.shopping-add-form__input--name{flex:1}.shopping-add-form__input--name .ingredient-combobox__input{padding:var(--space-2_5) var(--space-3);border:none;border-bottom:2px solid var(--outline-variant);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--input-bg);color:var(--text-primary);font-size:var(--text-body-md)}.shopping-item__edit-input--name .ingredient-combobox__input{padding:var(--space-1_5) var(--space-2_5);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;width:100%}.shopping-add-form__input--amount{flex:0 0 60px;text-align:center}.shopping-add-form__input--unit{flex:0 0 80px}.shopping-add-form__store{flex:1}.shopping-add-form__btn{flex-shrink:0}.shopping-group-toggle{display:flex;gap:var(--space-1_5)}.shopping-group-btn{padding:var(--space-1_5) var(--space-3_5);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);color:inherit;font-size:var(--text-body-md);cursor:pointer;transition:background .15s}.shopping-group-btn:hover{background:var(--surface-container-highest)}.shopping-group-btn--active{background:var(--success-container);color:var(--on-secondary-container)}.shopping-group{display:flex;flex-direction:column;gap:var(--space-2)}.shopping-group__label{font-size:var(--text-label-md);font-weight:var(--weight-extrabold);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--secondary);margin:0}.shopping-group__items{list-style:none;padding:0;margin:0}.shopping-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-1);border-radius:var(--radius-sm);transition:background .15s,opacity .2s}.shopping-item:hover{background:var(--surface-container-high)}.shopping-item--checked{opacity:.5}.shopping-item--checked .shopping-item__name{text-decoration:line-through}.shopping-item__check{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);border:2px solid var(--card-border);background:none;display:flex;align-items:center;justify-content:center;font-size:var(--text-label-md);flex-shrink:0;color:var(--secondary);cursor:pointer;padding:0}.shopping-item--checked .shopping-item__check{background:var(--secondary);border-color:var(--secondary);color:#fff}.shopping-item__name{font-size:var(--text-body-lg);cursor:pointer;flex:1;min-width:0}.shopping-item__amount{font-size:var(--text-body-sm);color:var(--text-muted);white-space:nowrap}.shopping-item__store{font-size:var(--text-label-sm);color:var(--text-secondary);background:var(--surface-container-high);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-pill);white-space:nowrap}.shopping-item__edit-btn{opacity:0;background:transparent;border:none;font-size:var(--text-body-md);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);transition:opacity .15s;flex-shrink:0}.shopping-item:hover .shopping-item__edit-btn{opacity:.6}.shopping-item__edit-btn:hover{opacity:1!important}.shopping-item__remove{opacity:0;background:transparent;border:none;font-size:var(--text-body-lg);color:var(--text-muted);cursor:pointer;padding:var(--space-1);flex-shrink:0;transition:opacity .15s,color .15s}.shopping-item:hover .shopping-item__remove{opacity:.6}.shopping-item__remove:hover{opacity:1!important;color:var(--destructive-text)}.shopping-item--editing{background:var(--surface-container-low);border-radius:var(--radius-default);padding:var(--space-3)}.shopping-item__edit-form{display:flex;align-items:center;gap:var(--space-2);width:100%;flex-wrap:wrap}.shopping-item__edit-input{padding:var(--space-1_5) var(--space-2_5);border:none;border-bottom:2px solid var(--outline-variant);border-radius:0;background:var(--input-bg);color:inherit;font-size:var(--text-body-md);font-family:inherit;transition:border-color .15s}.shopping-item__edit-input:focus{outline:none;border-bottom-color:var(--input-border-focus)}.shopping-item__edit-input--name{flex:1 1 120px}.shopping-item__edit-input--amount{flex:0 0 50px;text-align:center}.shopping-item__edit-input--unit{flex:0 0 70px}.shopping-item__edit-store{flex:0 0 120px}.shopping-item__edit-save,.shopping-item__edit-cancel{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-body-md);flex-shrink:0;padding:0}.shopping-item__edit-save{background:var(--secondary);color:var(--on-secondary)}.shopping-item__edit-save:disabled{opacity:.3;cursor:not-allowed}.shopping-item__edit-cancel{background:var(--surface-container-high);color:var(--text-muted)}.shopping-item__edit-cancel:hover{color:var(--text-primary);background:var(--surface-container-highest)}.shopping-add-form__categories,.shopping-item__edit-categories{display:flex;gap:var(--space-1_5);flex-wrap:wrap}.category-pill{padding:var(--space-1_5) var(--space-3);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-label-md);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.category-pill:hover{background:var(--surface-container-highest)}.category-pill--active{background:var(--success-container);color:var(--on-secondary-container)}.category-pill--sm{padding:var(--space-1) var(--space-2);font-size:var(--text-label-sm)}.staples-view{display:flex;flex-direction:column;gap:var(--space-6)}.staples-view__hint{color:var(--text-muted);font-size:var(--text-body-md);margin:0}.staple-frequency-badge{font-size:var(--text-label-sm);color:var(--text-muted);padding:var(--space-0_5) var(--space-2);background:var(--surface-container-high);border-radius:var(--radius-pill);white-space:nowrap}.shopping-add-form__frequency{display:flex;gap:var(--space-2);flex-wrap:wrap}.shopping-empty{text-align:center;color:var(--text-muted);padding:var(--space-10);font-size:var(--text-body-lg)}.review-section{margin-bottom:var(--space-8);padding:var(--space-5);border:none;border-left:4px solid var(--success);border-radius:var(--radius-xl);background:var(--surface-container-low)}.review-section__header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-1)}.review-section__title{margin:0;font-size:var(--text-title-md)}.review-section__count{font-size:var(--text-body-sm);color:var(--text-muted)}.review-section__hint{font-size:var(--text-body-md);color:var(--text-muted);margin:0 0 var(--space-4)}.review-category{margin-bottom:var(--space-4)}.review-category__name{font-size:var(--text-label-md);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--secondary);margin:0 0 var(--space-2);font-weight:var(--weight-semibold)}.review-section__items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.review-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3);background:var(--surface-container);border:none;border-radius:var(--radius-default)}.review-item__info{display:flex;align-items:center;gap:var(--space-3);min-width:0}.review-item__name{font-size:var(--text-body-lg);font-weight:var(--weight-medium)}.review-item__amount{font-size:var(--text-body-sm);color:var(--text-muted);white-space:nowrap}.review-item__actions{display:flex;gap:var(--space-1_5);flex-wrap:wrap;flex-shrink:0}.review-item__dismiss{padding:var(--space-1) var(--space-2_5);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);font-size:var(--text-label-md);cursor:pointer;color:var(--text-secondary);transition:background .15s}.review-item__dismiss:hover{background:var(--success-container);color:var(--success-text)}.review-item__assign{padding:var(--space-1) var(--space-2_5);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);font-size:var(--text-label-md);cursor:pointer;transition:background .15s}.review-item__assign:hover{background:var(--surface-container-highest)}.done-section{margin-top:var(--space-10);padding-top:var(--space-4)}.done-section__header{display:flex;align-items:center;gap:var(--space-2)}.done-section__toggle{display:flex;align-items:center;gap:var(--space-2);flex:1;padding:var(--space-3) var(--space-2);background:none;border:none;color:var(--text-muted);font-size:var(--text-body-md);font-weight:var(--weight-medium);cursor:pointer;transition:color .15s}.done-section__toggle:hover{color:inherit}.done-section__chevron{font-size:var(--text-body-lg)}.done-section__clear{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:none;background:var(--surface-container-high);color:var(--text-secondary);font-size:var(--text-label-md);cursor:pointer;transition:color .15s,background .15s;flex-shrink:0}.done-section__clear:hover{color:var(--destructive-text);background:var(--destructive-hover)}.done-section__items{list-style:none;padding:0;margin:0;opacity:.5}@media(max-width:640px){.lists-grid{grid-template-columns:1fr}.list-hero__title{font-size:var(--text-display-sm)}.list-tab{min-height:var(--space-11)}.store-tab{min-height:var(--space-11);padding:var(--space-2) var(--space-4)}.group-toggle__btn{min-height:var(--space-11);padding:var(--space-2) var(--space-4);display:inline-flex;align-items:center}.list-item{min-height:var(--space-11)}.list-item__check{width:var(--space-8);height:var(--space-8)}.list-item__edit-btn{opacity:.5;font-size:var(--text-body-lg);padding:var(--space-2);min-width:var(--space-11);min-height:var(--space-11);display:flex;align-items:center;justify-content:center}.list-item__edit-form{flex-wrap:wrap;gap:var(--space-1_5)}.list-item__edit-input--name{flex:1 1 100%}.list-item__edit-input--amount{flex:1 1 60px}.list-item__edit-input--unit{flex:1 1 70px}.list-item__edit-input--store{flex:1 1 100px}.list-item__edit-save,.list-item__edit-cancel{width:var(--space-11);height:var(--space-11)}.done-section__clear{min-height:var(--space-11);padding:var(--space-2) var(--space-4);display:inline-flex;align-items:center}.done-section__toggle,.list-category__name--collapsible{min-height:var(--space-11)}.review-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.review-item__actions{width:100%;flex-shrink:1}.review-item__dismiss,.review-item__assign{min-height:var(--space-11);padding:var(--space-2) var(--space-3);font-size:var(--text-body-sm);display:inline-flex;align-items:center}.quick-add-bar{gap:0}.quick-add-bar__input{border-radius:var(--radius-sm) 0 0 0}.quick-add-bar__store{border-radius:0 var(--radius-sm) 0 0;min-width:100px}.shopping-add-form__row{flex-wrap:wrap}.shopping-add-form__input--name{flex:1 1 100%}.shopping-add-form__input--amount{flex:1 1 60px}.shopping-add-form__input--unit{flex:1 1 70px}.shopping-add-form__store{flex:1 1 calc(100% - var(--space-2) - 60px)}.shopping-item{min-height:var(--space-11);flex-wrap:wrap}.shopping-item__name{flex:1 1 calc(100% - var(--space-11) - var(--space-3));order:1}.shopping-item__check{order:0}.shopping-item__amount{order:3;margin-left:calc(var(--space-11) + var(--space-3))}.shopping-item__store{order:4}.shopping-item__edit-btn,.shopping-item__remove{order:2}.shopping-item__check{min-width:var(--space-11);min-height:var(--space-11);display:flex;align-items:center;justify-content:center}.shopping-item__edit-btn,.shopping-item__remove{opacity:.5;min-width:var(--space-11);min-height:var(--space-11);display:flex;align-items:center;justify-content:center}.shopping-item__edit-form{flex-wrap:wrap}.shopping-item__edit-input--name{flex:1 1 100%}.shopping-item__edit-store{flex:1 1 100px}.shopping-item__edit-save,.shopping-item__edit-cancel{width:var(--space-11);height:var(--space-11)}.shopping-group-btn{min-height:var(--space-11);padding:var(--space-2) var(--space-4)}.category-pill{min-height:var(--space-11);padding:var(--space-2) var(--space-3);display:inline-flex;align-items:center}.category-pill--sm{min-height:var(--space-8);padding:var(--space-1_5) var(--space-2)}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:var(--space-6);background:var(--surface)}.login-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);width:100%;max-width:24rem;padding:var(--space-10);background:var(--card-bg);border-radius:var(--radius-xl)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.login-logo{font-size:var(--text-display-sm);line-height:1}.login-title{font-size:var(--text-headline-md);font-weight:var(--weight-bold);color:var(--text-primary);letter-spacing:var(--tracking-tight)}.login-subtitle{font-size:var(--text-body-md);color:var(--text-muted);max-width:18rem}.login-google-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-6);background:var(--surface-container-high);color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-body-lg);font-weight:var(--weight-medium);border:none;border-radius:var(--radius-default);cursor:pointer;transition:background .15s ease}.login-google-btn:hover{background:var(--surface-container-highest)}.login-google-btn:active{background:var(--surface-bright)}.login-google-btn:disabled{opacity:.5;cursor:not-allowed}.login-google-btn svg{width:1.25rem;height:1.25rem;flex-shrink:0}.login-dev{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.login-dev__divider{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-label-md);letter-spacing:var(--tracking-wider);text-transform:uppercase}.login-dev__divider:before,.login-dev__divider:after{content:"";flex:1;height:1px;background:var(--surface-container-highest)}.login-dev__input{padding:var(--space-3) var(--space-4);background:var(--input-bg);color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-body-md);border:none;border-radius:var(--radius-default)}.login-dev__input::placeholder{color:var(--input-placeholder)}.login-dev__input:focus{outline:none;box-shadow:0 2px 0 var(--input-border-focus)}.login-dev__actions{display:flex;gap:var(--space-2)}.login-dev__btn{flex:1;padding:var(--space-3) var(--space-4);background:var(--surface-container-high);color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-body-md);font-weight:var(--weight-medium);border:none;border-radius:var(--radius-default);cursor:pointer;transition:background .15s ease}.login-dev__btn:hover{background:var(--surface-container-highest)}.login-dev__btn--secondary{background:none;color:var(--text-muted)}.login-dev__btn--secondary:hover{background:var(--surface-container-high);color:var(--text-primary)}.login-dev__btn:disabled{opacity:.5;cursor:not-allowed}.login-error{font-size:var(--text-body-sm);color:var(--destructive-text);text-align:center}.date-override{position:fixed;bottom:var(--space-4);left:50%;transform:translate(-50%);z-index:90}.date-override__toggle{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-full);border:1px solid var(--card-border);background:var(--card-bg);font-size:var(--text-title-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,width .15s,border-radius .15s;white-space:nowrap;padding:0 var(--space-2)}.date-override__toggle:hover{background:var(--card-bg-hover)}.date-override__toggle:not(:only-child),.date-override__toggle[title*=override]{width:auto;border-radius:var(--radius-pill);padding:0 var(--space-3);font-size:var(--text-body-md);gap:var(--space-1)}.date-override__panel{position:absolute;bottom:var(--space-12);left:50%;transform:translate(-50%);background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:var(--space-3);min-width:240px;box-shadow:var(--shadow-md)}.date-override__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.date-override__title{font-size:var(--text-body-md);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted)}.date-override__reset{font-size:var(--text-label-md);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--card-border);background:transparent;color:var(--destructive-text);cursor:pointer}.date-override__reset:hover{background:var(--destructive-hover)}.date-override__input{width:100%;padding:var(--space-1_5) var(--space-2);border:1px solid var(--input-border);border-radius:var(--radius-default);background:var(--input-bg);color:inherit;font-size:var(--text-body-md);color-scheme:dark}.date-override__input:focus{outline:none;border-color:var(--input-border-focus)}.date-override__quick{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-2)}.date-override__quick-btn{padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--card-border);background:transparent;color:inherit;font-size:var(--text-label-md);cursor:pointer;transition:background .15s,border-color .15s}.date-override__quick-btn:hover{background:var(--interactive-active);border-color:var(--secondary)}.date-override__info{margin-top:var(--space-2);font-size:var(--text-body-sm);color:var(--text-secondary);text-align:center}.not-found-page{display:flex;align-items:center;justify-content:center;min-height:60vh}.not-found-content{text-align:center;max-width:24rem;padding:var(--space-8)}.not-found-icon{font-size:3rem;display:block;margin-bottom:var(--space-4)}.not-found-title{font-size:var(--text-headline-md);font-weight:var(--weight-bold);color:var(--text-primary);margin-bottom:var(--space-3)}.not-found-desc{font-size:var(--text-body-md);color:var(--text-muted);margin-bottom:var(--space-6);line-height:var(--leading-relaxed, 1.6)}.not-found-link{font-size:var(--text-body-md);font-weight:var(--weight-medium);color:var(--accent);text-decoration:none}.not-found-link:hover{text-decoration:underline}
