@import "https://fonts.googleapis.com/css2?family=Domine:wght@400;500;600;700&family=Karla:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--cream-50:#fffcf5;--cream-100:#fbf0dc;--cream-200:#f3dfb8;--squash-300:#ffb570;--squash-500:#e58a1f;--squash-600:#bd6e10;--squash-700:#8f540b;--basil-200:#dceac4;--basil-400:#8fb85e;--basil-500:#6b9a3d;--basil-600:#4d7328;--saffron-300:#fbd670;--saffron-500:#efb528;--saffron-600:#c6910f;--fig-300:#d9b3d6;--fig-500:#8b4d8c;--fig-600:#6e3b70;--blueberry-300:#afc8e8;--blueberry-500:#4a78b8;--blueberry-600:#375e96;--paprika-500:#c5313b;--paprika-600:#9e2530;--ink-900:#2e2620;--ink-700:#4c4038;--ink-500:#6e5f54;--ink-300:#a0917f;--ink-100:#dfd1bc;--white:#fff;--bg-page:#fff;--bg-surface:#fff;--bg-surface-sunken:#f5f1e9;--border-subtle:var(--cream-200);--border-default:var(--ink-100);--text-primary:var(--ink-900);--text-secondary:var(--ink-500);--text-tertiary:var(--ink-300);--text-on-accent:#fff;--accent-primary:var(--squash-600);--accent-primary-hover:var(--squash-700);--accent-primary-active:#6b4008;--accent-secondary:var(--basil-600);--accent-secondary-hover:#3d5c1f;--accent-tertiary:var(--saffron-500);--accent-berry:var(--fig-600);--success:var(--basil-600);--success-bg:var(--basil-600);--warning:var(--ink-900);--warning-bg:var(--saffron-500);--danger:var(--paprika-600);--danger-bg:var(--paprika-600);--danger-text:var(--paprika-600);--focus-ring:var(--squash-600);--font-display:"Domine",Georgia,serif;--font-body:"Karla",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;--text-2xl:2.25rem;--text-3xl:3rem;--text-4xl:3.75rem;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.55;--leading-relaxed:1.75;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--radius-sm:8px;--radius-md:14px;--radius-lg:28px;--radius-pill:999px;--radius-round:50%;--shadow-sm:0 1px 2px #2e26220f;--shadow-md:0 4px 12px #2e262214;--shadow-lg:0 12px 32px #2e26221f;--shadow-focus:0 0 0 3px #d9714b59;--border-width:1px;--ease-playful:cubic-bezier(.34,1.56,.64,1);--duration-fast:.12s;--duration-base:.22s}@keyframes hearth-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes hearth-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-10deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}@keyframes hearth-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-padding:var(--space-6);--bg-page:#fff;--bg-surface:#eff4ee;--bg-surface-sunken:#dee9dd;--bg-surface-inset:#c4d7c2;--bg-float:#fff;--bg-disabled:#f0f2ef;--control-bg:#dee9dd;--control-bg-hover:#fff;--row-hover:#dee9dd;--tile-bg:#dee9dd;--tile-bg-hover:#fff;--tile-nested-bg:#eff4ee;--text-primary:#17211a;--text-secondary:#48594c;--text-tertiary:#5c6e61;--text-on-accent:#fff;--accent-primary:#2a7247;--accent-primary-hover:#1f5836;--surface-accent:#c6e3d2;--surface-attention:#f7e6c0;--surface-danger:#f7dad8;--success:#2a7247;--danger:#b23530;--danger-text:#b23530;--warning:#2e2411;--warning-bg:#f2c94c;--badge-fg:#fff;--badge-fg-on-yellow:#2e2411;--badge-neutral-bg:#4a5a4e;--badge-success-bg:#2a7247;--badge-warning-bg:#f2c94c;--badge-danger-bg:#b23530;--badge-accent-bg:#2a7247;--badge-lime-bg:#4d7328;--badge-sun-bg:#efb528;--badge-berry-bg:#6e3b70;--badge-blue-bg:#375e96;--avatar-bg:#c6e3d2;--avatar-text:#1f5836;--mention-bg:#f0d89a;--mention-amount-bg:#e6c87e;--mention-text:#6b4704;--star-full:#b57f06;--star-muted:#d7b258;--star-empty:#748778;--divider:#c4d7c2;--shadow-sm:0 1px 2px #17211a12;--shadow-md:0 4px 14px #17211a1a;--shadow-lg:0 12px 34px #17211a24;--shadow-focus:0 0 0 3px #2a724759}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-page:#18221c;--bg-surface:#25332c;--bg-surface-sunken:#0b100d;--bg-surface-inset:#455b50;--bg-float:#33453c;--bg-disabled:#212c25;--control-bg:#33453c;--control-bg-hover:#455b50;--row-hover:#455b50;--tile-bg:#25332c;--tile-bg-hover:#33453c;--tile-nested-bg:#33453c;--text-primary:#edf4ef;--text-secondary:#afc2b7;--text-tertiary:#86998d;--text-on-accent:#08170e;--accent-primary:#5fbe84;--accent-primary-hover:#7ed09e;--surface-accent:#28513a;--surface-attention:#38310f;--surface-danger:#3b2422;--success:#5fbe84;--danger:#f0736b;--danger-text:#f0736b;--warning:#241c07;--warning-bg:#e8b93c;--badge-fg:#0d1410;--badge-fg-on-yellow:#241c07;--badge-neutral-bg:#a9bdb0;--badge-success-bg:#5fbe84;--badge-warning-bg:#e8b93c;--badge-danger-bg:#f0736b;--badge-accent-bg:#5fbe84;--badge-lime-bg:#9ad46a;--badge-sun-bg:#f0c94a;--badge-berry-bg:#cf95d1;--badge-blue-bg:#8fb6e8;--avatar-bg:#2f5a42;--avatar-text:#9ee0b8;--mention-bg:#4a3f18;--mention-amount-bg:#5c4e1e;--mention-text:#f0c94a;--star-full:#f0c94a;--star-muted:#7a6626;--star-empty:#6b7d71;--divider:#3a4a41;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000080;--shadow-lg:0 16px 40px #0009;--shadow-focus:0 0 0 3px #5fbe8473}@media (width<=720px){:root{--page-padding:var(--space-4)}}html,body{background:var(--bg-page);margin:0}#root{background:var(--bg-page);min-height:100svh;color:var(--text-primary);font-family:var(--font-body);box-sizing:border-box;flex-direction:column;display:flex}.button{font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) ease-out, transform var(--duration-fast) var(--ease-playful);border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.button--icon-right{flex-direction:row-reverse}.button--sm{padding:8px 14px;font-size:13px}.button--md{padding:11px 18px;font-size:14px}.button--lg{padding:14px 24px;font-size:16px}.button--primary{background:var(--accent-primary);color:var(--text-on-accent)}.button--secondary{background:var(--control-bg);color:var(--text-primary);border:none}.button--ghost{color:var(--text-primary);background:0 0}.button--danger{background:var(--danger);color:var(--text-on-accent)}.button--primary:hover:not(:disabled){background:var(--accent-primary-hover)}.button--secondary:hover:not(:disabled){background:var(--control-bg-hover)}.button--ghost:hover:not(:disabled){background:var(--control-bg)}.button:hover:not(:disabled){transform:translateY(-2px)}.button:active:not(:disabled){transform:scale(.96)}.button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button:disabled{background:var(--bg-disabled);color:var(--text-tertiary);cursor:not-allowed}.switch{font-family:var(--font-body);color:var(--text-primary);cursor:pointer;opacity:1;align-items:center;gap:10px;font-size:14px;display:inline-flex}.switch.is-disabled{cursor:not-allowed;opacity:.5}.switch-track{border-radius:var(--radius-pill);background:var(--bg-surface-inset);width:40px;height:24px;transition:background var(--duration-fast) ease-out;flex-shrink:0;position:relative}.switch-track.is-on{background:var(--accent-primary)}.switch-thumb{background:var(--white);width:18px;height:18px;box-shadow:var(--shadow-sm);transition:left var(--duration-fast) ease-out;border-radius:50%;position:absolute;top:3px;left:3px}.switch-track.is-on .switch-thumb{left:19px}.cookie-dialog-backdrop{z-index:200;padding:var(--page-padding);background:#2e262266;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cookie-dialog{background:var(--bg-float);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-lg);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.cookie-dialog-title{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:700}.cookie-dialog-intro{font-family:var(--font-body);color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:1.55}.cookie-link{color:var(--accent-primary);font-weight:600}.cookie-dialog-options{gap:var(--space-3);flex-direction:column;display:flex}.cookie-option{flex-direction:column;gap:4px;display:flex}.cookie-option-note{font-family:var(--font-body);color:var(--text-tertiary);margin:0;padding-left:50px;font-size:12px}.cookie-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.cookie-banner{z-index:150;background:var(--bg-float);box-shadow:var(--shadow-lg);animation:hearth-pop var(--duration-base) var(--ease-playful);position:fixed;bottom:0;left:0;right:0}.cookie-banner-inner{max-width:1120px;padding:var(--page-padding);align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.cookie-banner-text{font-family:var(--font-body);color:var(--text-primary);flex:320px;margin:0;font-size:14px;line-height:1.5}.cookie-banner-actions{flex-wrap:wrap;gap:8px;display:flex}.header-nav{align-items:center;gap:var(--space-5);display:flex}.header-login{align-items:center;display:inline-flex}.header-actions{align-items:center;gap:var(--space-3);display:flex}.header-toggle,.header-mobile-menu{display:none}.header-mobile-menu-section{margin-top:var(--space-5);padding-top:var(--space-3);border-top:none;flex-direction:column;display:flex}@media (width<=720px){.header-nav,.header-login,.header-actions{display:none}.header-toggle{justify-content:center;align-items:center;display:inline-flex}.header-mobile-menu.is-open{padding:var(--space-4) var(--page-padding) var(--page-padding);gap:var(--space-2);background:var(--bg-surface);flex-direction:column;display:flex}}.header-login-button{font:600 14px var(--font-body);border-radius:var(--radius-sm);background:var(--accent-primary);color:var(--text-on-accent);transition:background var(--duration-fast) ease-out, transform var(--duration-fast) var(--ease-playful);padding:11px 18px;text-decoration:none}.header-login-button:hover{background:var(--accent-primary-hover);transform:translateY(-2px)}.header-login-button:active{transform:scale(.96)}.header-login-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.header{z-index:10;background:var(--bg-surface);position:sticky;top:0}.header-bar{max-width:1120px;padding:0 var(--page-padding);justify-content:space-between;align-items:center;gap:var(--space-5);height:72px;margin:0 auto;display:flex}.header-wordmark{font:700 26px var(--font-display);color:var(--text-primary);text-decoration:none}.header-nav-link{font:600 14px var(--font-body);color:var(--text-secondary);text-decoration:none}.header-nav-link.is-active{color:var(--accent-primary)}.header-profile{position:relative}.header-avatar{border-radius:var(--radius-round);background:var(--avatar-bg);width:36px;height:36px;color:var(--avatar-text);font-family:var(--font-display);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;display:flex}.header-menu{margin-top:var(--space-2);gap:var(--space-1);min-width:180px;padding:var(--space-2);background:var(--bg-float);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;border:none;flex-direction:column;display:flex;position:absolute;top:100%;right:0}.header-menu-item{font:600 14px var(--font-body);color:var(--text-secondary);padding:var(--space-2);text-decoration:none}.header-menu-item--accent{color:var(--accent-primary)}.header-menu-button{font:600 14px var(--font-body);color:var(--text-secondary);cursor:pointer;text-align:left;padding:var(--space-2);background:0 0;border:none}.header-toggle-button{cursor:pointer;background:0 0;border:none;width:40px;height:40px;padding:0}.header-mobile-link{font:600 15px var(--font-body);color:var(--text-secondary);padding:var(--space-2) 0;text-decoration:none}.header-mobile-link.is-active,.header-mobile-link--accent{color:var(--accent-primary)}.header-mobile-action{font:600 14px var(--font-body);margin-top:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;padding:11px 18px;text-decoration:none;display:inline-flex}.header-mobile-action--primary{background:var(--accent-primary);color:var(--text-on-accent)}.header-mobile-action--secondary{background:var(--control-bg);color:var(--text-primary)}.theme-toggle{border-radius:var(--radius-round);background:var(--control-bg);width:36px;height:36px;color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) ease-out, transform var(--duration-fast) var(--ease-playful);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--control-bg-hover)}@media (prefers-reduced-motion:no-preference){.theme-toggle:hover svg{animation:hearth-wiggle var(--duration-base) var(--ease-playful)}}.theme-toggle:active{transform:scale(.94)}.theme-toggle:focus-visible{box-shadow:var(--shadow-focus);outline:none}.theme-toggle--row{width:100%;height:auto;padding:var(--space-2);border-radius:var(--radius-sm);font:600 15px var(--font-body);color:var(--text-secondary);background:0 0;justify-content:flex-start;gap:10px}.theme-toggle--row:hover{background:var(--control-bg)}.footer{background:var(--bg-surface-sunken);margin-top:var(--space-8)}.footer-inner{max-width:1120px;padding:var(--page-padding);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.footer-brand{flex-direction:column;gap:2px;display:flex}.footer-wordmark{font:700 20px var(--font-display);color:var(--text-primary)}.footer-copyright{font:400 13px var(--font-body);color:var(--text-tertiary)}.footer-nav{gap:var(--space-5);flex-wrap:wrap;display:flex}.footer-link{font:600 13px var(--font-body);color:var(--text-secondary);text-decoration:none}button.footer-link{cursor:pointer;background:0 0;border:none;padding:0}.page-shell{flex-direction:column;width:100%;min-height:100svh;display:flex}.page-shell-main{width:100%;padding:var(--page-padding);box-sizing:border-box;flex:1;margin:0 auto}.status-message{font-family:var(--font-body)}.status-message--secondary{color:var(--text-secondary)}.status-message--tertiary{color:var(--text-tertiary)}.status-message-back{font-family:var(--font-body);color:var(--accent-primary);font-weight:600}.home-hero{border-radius:var(--radius-lg);height:420px;margin-bottom:var(--space-7);background:var(--bg-surface-sunken);position:relative;overflow:hidden}.home-hero-image{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.home-hero-scrim{background:linear-gradient(#0000 25%,#2e262214 45%,#2e26229e);position:absolute;inset:0}.home-hero-text{left:var(--space-7);right:var(--space-7);bottom:var(--space-6);gap:var(--space-3);flex-direction:column;max-width:560px;display:flex;position:absolute}.home-hero-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:#ffffffd9;font-weight:500}.home-hero-heading{font-family:var(--font-display);color:var(--white);margin:0;font-size:40px;font-weight:700;line-height:1.1}.home-hero-subtext{font-family:var(--font-body);color:#ffffffeb;max-width:440px;margin:0;font-size:16px;line-height:1.5}.home-hero-cta{margin-top:var(--space-1);width:fit-content}@media (width<=720px){.home-hero{height:340px;margin-left:calc(-1 * var(--page-padding));margin-right:calc(-1 * var(--page-padding));border-radius:0;width:auto}.home-hero-text{left:var(--space-5);right:var(--space-5);bottom:var(--space-5);max-width:none}.home-hero-heading{font-size:30px}}.home-loading{align-items:center;gap:var(--space-2);padding:var(--space-7) 0;flex-direction:column;display:flex}.home-loading-text{font-family:var(--font-body);color:var(--text-tertiary);margin:0;font-size:14px}.home-empty{font-family:var(--font-body);color:var(--text-tertiary);font-size:14px}.home-section-head{margin-bottom:var(--space-5);justify-content:space-between;align-items:baseline;display:flex}.home-section-title{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:700}.home-section-link{font-family:var(--font-body);color:var(--accent-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.home-section-link:hover{color:var(--accent-primary-hover)}.home-featured{margin-bottom:var(--space-8)}.home-featured-row{gap:var(--space-6);cursor:pointer;align-items:center;display:flex}.home-featured-photo-wrap{aspect-ratio:4/3;border-radius:var(--radius-lg);background:var(--bg-surface-sunken);flex:0 0 46%;overflow:hidden}.home-featured-photo,.home-featured-photo-placeholder{object-fit:cover;width:100%;height:100%;transition:transform var(--duration-base) var(--ease-playful);display:block}.home-featured-photo-placeholder{background:var(--bg-surface-sunken)}.home-featured-body{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.home-featured-tags{font-family:var(--font-body);color:var(--text-secondary);font-size:12px;font-weight:600}.home-featured-title{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:30px;font-weight:700;line-height:1.15}.home-featured-meta{font-family:var(--font-mono);color:var(--text-secondary);font-size:13px}.home-featured-link{font-family:var(--font-body);color:var(--accent-primary);width:fit-content;margin-top:var(--space-1);align-items:center;gap:6px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}@media (width<=720px){.home-featured-row{flex-direction:column;align-items:stretch}.home-featured-photo-wrap{aspect-ratio:16/10;flex:none}.home-featured-title{font-size:24px}}.home-tile-grid{column-gap:var(--space-6);row-gap:var(--space-7);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=720px){.home-tile-grid{grid-template-columns:1fr}}.home-featured-row{position:relative}.home-featured-row:hover .home-featured-photo,.home-featured-row:hover .home-featured-photo-placeholder{transform:scale(1.05)}.home-featured-tagrow{align-items:center;gap:8px;display:flex}.home-featured-link:after{content:"";position:absolute;inset:0}.home-featured-link:focus-visible{outline:none}.home-featured-row:has(.home-featured-link:focus-visible){border-radius:var(--radius-lg);box-shadow:var(--shadow-focus)}.home-recipes-anchor{scroll-margin-top:88px}.badge{border-radius:var(--radius-pill);font-family:var(--font-body);align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge--neutral{background:var(--badge-neutral-bg);color:var(--badge-fg)}.badge--success{background:var(--badge-success-bg);color:var(--badge-fg)}.badge--warning{background:var(--badge-warning-bg);color:var(--badge-fg-on-yellow)}.badge--danger{background:var(--badge-danger-bg);color:var(--badge-fg)}.badge--accent{background:var(--badge-accent-bg);color:var(--badge-fg)}.badge--lime{background:var(--badge-lime-bg);color:var(--badge-fg)}.badge--sun{background:var(--badge-sun-bg);color:var(--badge-fg-on-yellow)}.badge--berry{background:var(--badge-berry-bg);color:var(--badge-fg)}.badge--blue{background:var(--badge-blue-bg);color:var(--badge-fg)}.recipe-card__media{width:100%;height:100%;transition:transform var(--duration-base) var(--ease-playful)}.recipe-card:hover .recipe-card__media{transform:scale(1.05)}img.recipe-card__media{object-fit:cover;display:block}.recipe-card{font-family:var(--font-body);cursor:default;position:relative}.recipe-card.is-clickable{cursor:pointer}.recipe-card__photo{aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--bg-surface-sunken);position:relative;overflow:hidden}.recipe-card__badge{z-index:1;position:absolute;top:8px;left:8px}.recipe-card__title{font-family:var(--font-display);color:var(--text-primary);margin-top:12px;font-size:17px;font-weight:700}.recipe-card__meta{font-family:var(--font-mono);color:var(--text-secondary);margin-top:4px;font-size:12.5px}.recipe-card__tags{font-family:var(--font-body);color:var(--text-tertiary);margin-top:4px;font-size:13px}.recipe-card__link{color:inherit;text-decoration:none}.recipe-card__link:after{content:"";position:absolute;inset:0}.recipe-card__link:focus-visible{outline:none}.recipe-card:has(.recipe-card__link:focus-visible){border-radius:var(--radius-md);box-shadow:var(--shadow-focus)}.loader-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes pot-loader-shake{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes pot-loader-steam{0%{opacity:0;transform:translateY(3px)}30%{opacity:.9}to{opacity:0;transform:translateY(-4px)}}.pot-loader__shake{transform-origin:16px 25px;animation:.62s ease-in-out infinite pot-loader-shake}.pot-loader__steam{animation:1.8s ease-out infinite pot-loader-steam}@keyframes book-loader-turn{0%{transform:rotate(0)scaleX(1)}14%{transform:rotate(-2deg)scaleX(.85)}26%{transform:rotate(-3deg)scaleX(.5)}33%{transform:rotate(0)scaleX(0)}40%{transform:rotate(3deg)scaleX(-.5)}52%{transform:rotate(2deg)scaleX(-.85)}60%,to{transform:rotate(0)scaleX(-1)}}.book-loader__page{transform-origin:16px 17.5px;animation:2s linear infinite book-loader-turn}@keyframes fridge-loader-door{0%,8%{transform:scaleX(1)}18%,82%{transform:scaleX(.1)}92%,to{transform:scaleX(1)}}@keyframes fridge-loader-nudge{0%{transform:translate(0)}4%{transform:translate(1.5px)}8%{transform:translate(-1.1px)}11.5%,to{transform:translate(0)}}.fridge-loader__door{transform-origin:6px 16px;animation:4.4s ease-in-out infinite fridge-loader-door}.fridge-loader__item{animation:4.4s ease-in-out infinite fridge-loader-nudge}@media (prefers-reduced-motion:reduce){.pot-loader__shake,.pot-loader__steam,.book-loader__page,.fridge-loader__door,.fridge-loader__item{animation:none!important}}.loader-root{color:var(--text-secondary);display:inline-block}.field{font-family:var(--font-body);flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-primary);font-size:13px;font-weight:600}.field-box{border-radius:var(--radius-sm);background:var(--bg-surface-sunken);box-shadow:none;transition:box-shadow var(--duration-fast) ease-out, background var(--duration-fast) ease-out;border:none;padding:11px 13px;display:flex}.field-box--inline{align-items:center;gap:8px}.field-box:focus-within{background:var(--bg-float);box-shadow:var(--shadow-focus)}.field-box.has-error,.field-box.has-error:focus-within{background:var(--surface-danger);box-shadow:none}.field-box.is-disabled{background:var(--bg-disabled);color:var(--text-tertiary)}.field-control{font-family:var(--font-body);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:14px}textarea.field-control{resize:vertical;line-height:1.55}.field-note{color:var(--text-tertiary);font-size:12px}.field-note.is-error{color:var(--danger-text)}.social-button{width:100%;font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) ease-out, transform var(--duration-fast) var(--ease-playful);justify-content:center;align-items:center;gap:10px;padding:11px 18px;font-size:14px;font-weight:600;display:flex}.social-button--light{background:var(--control-bg);color:var(--text-primary);border:none}.social-button--dark{color:var(--white);background:#000;border:none}.social-button--light:hover:not(:disabled){background:var(--control-bg-hover)}.social-button--dark:hover:not(:disabled){background:#262626}.social-button:hover:not(:disabled){transform:translateY(-2px)}.social-button:active:not(:disabled){transform:scale(.96)}.social-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.social-button:disabled{opacity:.6;cursor:default}.login-page{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100svh;display:flex}.login-column{width:100%;max-width:400px;padding:var(--space-5);box-sizing:border-box}.login-wordmark-block{text-align:center;margin-bottom:var(--space-6)}.login-wordmark{font:700 40px var(--font-display);color:var(--text-primary);text-decoration:none}.login-card{background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-6);gap:var(--space-5);flex-direction:column;display:flex}.login-heading{font:600 22px var(--font-display);color:var(--text-primary);margin:0}.login-subheading{color:var(--text-secondary);margin:6px 0 0;font-size:14px}.login-providers{gap:var(--space-3);flex-direction:column;display:flex}.login-google-slot{opacity:1;min-height:44px}.login-google-slot.is-authenticating{opacity:.6}.login-status{color:var(--text-secondary);text-align:center;margin:0;font-size:13px}.login-error{color:var(--danger-text);text-align:center;margin:0;font-size:13px}.login-divider{align-items:center;gap:var(--space-3);display:flex}.login-divider-rule{background:var(--divider);flex:1;height:1px}.login-divider-label{color:var(--text-tertiary);font-size:12px}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.login-forgot-row{justify-content:flex-end;display:flex}.login-inline-link{color:var(--accent-primary);font-size:13px;font-weight:600;text-decoration:none}.login-footer{text-align:center;color:var(--text-secondary);margin:0;font-size:14px}.login-footer-link{color:var(--accent-primary);font-weight:600;text-decoration:none}.picker{flex-direction:column;gap:10px;display:flex}.picker-field{position:relative}.picker-results{background:var(--bg-float);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:10;border:none;max-height:240px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.picker-searching{align-items:center;gap:10px;padding:8px 12px;display:flex}.picker-searching-text{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px}.picker-result{cursor:pointer;font-family:var(--font-body);color:var(--text-primary);transition:background var(--duration-fast) ease-out;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:flex}.picker-result:hover,.picker-suggest:hover{background:var(--row-hover)}.picker-suggest{cursor:pointer;font-family:var(--font-body);color:var(--accent-primary);opacity:1;padding:8px 12px;font-size:14px;font-weight:600}.picker-result.is-busy,.picker-suggest.is-busy{cursor:default}.picker-suggest.is-dimmed{opacity:.6}.picker-error{font-family:var(--font-body);color:var(--danger-text);margin:0;font-size:12px}.picker-chips{flex-wrap:wrap;gap:6px;display:flex}.picker-chip{align-items:center;gap:6px;display:flex}.picker-chip-note{opacity:.85;font-size:11px}.picker-chip-remove{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:13px;font-weight:700;line-height:1}.segmented-toggle{border-radius:var(--radius-pill);background:var(--control-bg);border:none;padding:2px;display:inline-flex}.segmented-toggle-option{border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;color:var(--text-primary);transition:background var(--duration-fast) ease-out, color var(--duration-fast) ease-out;background:0 0;border:none;padding:6px 14px;font-size:13px;font-weight:600}.segmented-toggle-option:hover:not(.is-selected){background:var(--control-bg-hover)}.segmented-toggle-option.is-selected{background:var(--accent-primary);color:var(--text-on-accent)}.search-page{gap:var(--space-6);flex-direction:column;display:flex}.search-fields{gap:var(--space-3);flex-direction:column;display:flex}.search-filter-row{align-items:center;gap:var(--space-4);display:flex}.search-match{align-items:center;gap:10px;display:flex}.search-match-label{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px}.search-text-button{cursor:pointer;font-family:var(--font-body);color:var(--accent-primary);background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.search-loading{align-items:center;gap:var(--space-2);padding:var(--space-7) 0;flex-direction:column;display:flex}.search-loading-text{color:var(--text-tertiary);font-family:var(--font-body);margin:0;font-size:14px}.search-results{column-gap:var(--space-6);row-gap:var(--space-7);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.search-empty{color:var(--text-tertiary);font-family:var(--font-body);flex-direction:column;gap:8px;font-size:14px;display:flex}.search-inline-button{cursor:pointer;font:inherit;color:var(--accent-primary);background:0 0;border:none;padding:0;font-weight:600}.meal-plan-notice{background:var(--bg-surface-sunken);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--text-secondary);font-family:var(--font-body);align-items:center;gap:var(--space-3);flex-direction:column;font-size:15px;display:flex}.meal-plan-title{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:700}.meal-plan-text{max-width:460px;line-height:var(--leading-normal);margin:0}.meal-plan-link{color:var(--accent-primary);font-weight:600}.confirm-backdrop{z-index:200;padding:var(--page-padding);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg-float);border-radius:var(--radius-md);width:100%;max-width:400px;box-shadow:var(--shadow-sm);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.confirm-title{font-family:var(--font-display);color:var(--text-primary);font-size:18px;font-weight:700}.confirm-message{font-family:var(--font-body);color:var(--text-secondary);margin-top:8px;font-size:14px}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.checkbox{font-family:var(--font-body);color:var(--text-primary);cursor:pointer;opacity:1;align-items:center;gap:10px;font-size:14px;display:inline-flex}.checkbox.is-disabled{cursor:not-allowed;opacity:.5}.checkbox-box{background:var(--bg-surface-inset);width:20px;height:20px;transition:background var(--duration-fast) ease-out;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.checkbox-box.is-checked{background:var(--accent-primary)}.shopping-item{padding:11px var(--space-3);margin:0 calc(-1 * var(--space-3));border-radius:var(--radius-sm);opacity:1;transition:background var(--duration-fast) ease-out;align-items:flex-start;gap:12px;display:flex}.shopping-item:hover{background:var(--bg-surface)}.shopping-item.is-busy{opacity:.5}.shopping-item-check{padding-top:1px}.shopping-item-amount{font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;width:70px;font-size:13px}.shopping-item-body{flex:1;min-width:0}.shopping-item-name{font-family:var(--font-body);color:var(--text-primary);opacity:1;font-size:14px;text-decoration:none}.shopping-item-name.is-checked{opacity:.5;text-decoration:line-through}.shopping-item-sources{font-family:var(--font-body);color:var(--text-tertiary);margin-top:2px;font-size:12px}.shopping-item-source-link{color:var(--text-tertiary)}.shopping-item-remove{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:0 2px;font-size:16px;font-weight:700;line-height:1}.shopping-item-remove:disabled{cursor:default}.add-item-form{flex-direction:column;gap:6px;display:flex}.add-item-row{align-items:stretch;gap:8px;display:flex}.add-item-field{font-family:var(--font-body);border-radius:var(--radius-sm);background:var(--bg-surface-sunken);color:var(--text-primary);min-width:0;transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;outline:none;padding:10px 11px;font-size:13px}.add-item-field:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.add-item-field--quantity{flex-shrink:0;width:56px}.add-item-field--unit{flex-shrink:0;width:80px}.add-item-field--name{box-sizing:border-box;width:100%}.add-item-name-wrap{flex:1;position:relative}.shopping-page{gap:var(--space-6);flex-direction:column;display:flex}.shopping-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.shopping-title{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700}.shopping-count{font-family:var(--font-body);color:var(--text-secondary);margin-top:2px;font-size:13px}.shopping-actions{gap:8px;display:flex}.shopping-error{font-family:var(--font-body);color:var(--danger-text);margin:0;font-size:13px}.shopping-notice{background:var(--bg-surface-sunken);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;color:var(--text-secondary);font-family:var(--font-body);font-size:15px}.shopping-notice-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-2);font-size:22px;font-weight:700}.shopping-notice-text{margin:0 0 var(--space-4)}.shopping-notice-link{font-family:var(--font-body);color:var(--accent-primary);font-weight:600}.recipe-detail-layout{align-items:start;gap:var(--space-8);grid-template-columns:minmax(0,1fr) 300px;display:grid}.recipe-detail-sidebar{top:var(--space-6);position:sticky}@media (width<=720px){.recipe-detail-layout{flex-direction:column;display:flex}.recipe-detail-sidebar{position:static}}.recipe-steps-list{gap:var(--space-3);flex-direction:column;display:flex}.recipe-sub-recipe-list{gap:var(--space-5);flex-direction:column;display:flex}.recipe-steps-break{align-items:center;gap:var(--space-3);margin:var(--space-7) 0 var(--space-5);display:flex}.recipe-steps-break:before,.recipe-steps-break:after{content:"";background:var(--divider);flex:1;height:1px}.recipe-steps-break-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.recipe-detail-main{gap:var(--space-6);flex-direction:column;display:flex}.recipe-detail-back{color:var(--text-secondary);font-family:var(--font-body);align-self:flex-start;font-size:13px;text-decoration:none}.recipe-detail-photo{border-radius:var(--radius-lg);height:280px;overflow:hidden}.recipe-detail-photo-img{object-fit:cover;width:100%;height:100%;display:block}.recipe-detail-photo-placeholder{background:var(--bg-surface-sunken);height:100%;color:var(--text-tertiary);font-family:var(--font-body);justify-content:center;align-items:center;display:flex}.recipe-detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.recipe-detail-titlerow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.recipe-detail-title{font-family:var(--font-display);color:var(--text-primary);font-size:30px;font-weight:700}.recipe-detail-meta{font-family:var(--font-mono);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.recipe-detail-rating{margin-top:8px}.recipe-detail-rating-error{font-family:var(--font-body);color:var(--danger-text);margin:4px 0 0;font-size:12px}.recipe-detail-description{font-family:var(--font-body);color:var(--text-secondary);max-width:560px;margin-top:8px;font-size:14px}.recipe-detail-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.recipe-detail-actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.recipe-detail-action-row{gap:10px;display:flex}.recipe-detail-review-note{font-family:var(--font-body);color:var(--text-tertiary);margin:0;font-size:12px}.recipe-detail-added-note{font-family:var(--font-body);color:var(--text-secondary);margin:0;font-size:12px}.recipe-detail-inline-link{color:var(--accent-primary);font-weight:600}.recipe-detail-action-error{font-family:var(--font-body);color:var(--danger-text);text-align:right;max-width:280px;margin:0;font-size:12px}.recipe-detail-steps-head{margin-bottom:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.recipe-detail-steps-progress{font-family:var(--font-body);color:var(--text-secondary);font-size:13px}.recipe-detail-steps-buttons{gap:8px;display:flex}.recipe-detail-ingredients{gap:var(--space-4);flex-direction:column;display:flex}.recipe-detail-no-nutrition{font-family:var(--font-body);color:var(--text-secondary)}.recipe-detail-ingredients-title{font-family:var(--font-body);color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:700}.tabs{font-family:var(--font-body);gap:24px;display:flex}.tabs-tab{cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-body);color:var(--text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 2px}.tabs-tab.is-active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.ingredient-row{align-items:center;gap:12px;padding:11px 0;display:flex}.ingredient-row-amount{font-family:var(--font-mono);color:var(--text-secondary);flex-shrink:0;width:70px;font-size:13px}.ingredient-row-name{font-family:var(--font-body);color:var(--text-primary);opacity:1;flex:1;font-size:14px;text-decoration:none}.ingredient-row-name.is-checked{opacity:.5;text-decoration:line-through}.portion-stepper{align-items:center;gap:6px;display:inline-flex}.portion-stepper-count{text-align:center;min-width:62px}.portion-stepper-button{background:var(--control-bg);width:22px;height:22px;color:var(--text-primary);transition:background var(--duration-fast) ease-out;cursor:pointer;font-family:var(--font-mono);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.portion-stepper-button:hover:not(:disabled){background:var(--control-bg-hover)}.portion-stepper-button:disabled{color:var(--text-tertiary);cursor:not-allowed}.ingredient-mention{border-radius:var(--radius-pill);background:var(--mention-bg);white-space:nowrap;font-size:.85em;line-height:.8em;font-family:var(--font-body);cursor:default;margin:0 .1em;padding:2px}.ingredient-mention.is-clickable{cursor:pointer}.ingredient-mention-amount{background:var(--mention-amount-bg);color:var(--mention-text);border-radius:var(--radius-pill);padding:0 .5em;font-weight:600}.ingredient-mention-name{color:var(--mention-text);padding:0 .5em;font-weight:700}.sub-recipe-tag{border-radius:var(--radius-pill);background:var(--badge-berry-bg);color:var(--badge-fg);white-space:nowrap;font-size:.85em;font-weight:600;line-height:1.4em;font-family:var(--font-body);cursor:default;align-items:center;margin:0 .15em;padding:2px 10px;display:inline-flex}.sub-recipe-tag.is-clickable{cursor:pointer}.step-tile{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--tile-bg);transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out, transform var(--duration-fast) ease-out;align-items:flex-start;display:flex}.step-tile--nested{background:var(--tile-nested-bg);box-shadow:var(--shadow-sm)}.step-tile--done{background:var(--bg-page)}.step-tile--nested.step-tile--done{background:var(--bg-surface-sunken)}.step-tile--clickable{cursor:pointer}.step-tile--clickable:hover{background:var(--tile-bg-hover)}.step-tile--nested.step-tile--clickable:hover{background:var(--tile-nested-bg);box-shadow:var(--shadow-md)}.step-tile--clickable:active{transform:scale(.99)}.step-tile--clickable:focus-visible{box-shadow:var(--shadow-focus);outline:none}.step-tile-number{border-radius:var(--radius-round);background:var(--bg-float);width:30px;height:30px;color:var(--text-secondary);font-family:var(--font-mono);font-weight:var(--weight-semibold);transition:background var(--duration-fast) ease-out;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex;box-shadow:0 1px 2px #2e26221a}.step-tile--nested .step-tile-number{background:var(--bg-surface-sunken);box-shadow:none}.step-tile-number--done,.step-tile--nested .step-tile-number--done{background:var(--success);color:var(--text-on-accent);box-shadow:none}.step-tile-text{font-family:var(--font-body);color:var(--text-primary);padding-top:2px;font-size:17px;line-height:1.6}.step-tile-text--done{opacity:.55}@media (width<=720px){.step-tile{gap:var(--space-3);padding:var(--space-4)}}.sub-recipe-panel{background:var(--bg-surface-sunken);border-radius:var(--radius-lg);padding:var(--space-5);border:none}.sub-recipe-panel-header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.sub-recipe-panel-title{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-md);color:var(--text-primary)}.sub-recipe-panel-meta{font-family:var(--font-body);font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-4)}.sub-recipe-panel-steps{gap:var(--space-3);flex-direction:column;display:flex}@media (width<=720px){.sub-recipe-panel{padding:var(--space-4)}}.related-recipes-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:var(--space-4);font-size:18px;font-weight:700}.related-recipes-list{gap:var(--space-6);flex-direction:column;display:flex}.nutrition-facts{border-radius:var(--radius-md);background:var(--bg-surface-sunken);padding:var(--space-4);font-family:var(--font-body);border:none;max-width:280px}.nutrition-facts-title{color:var(--text-primary);margin-bottom:4px;font-size:15px;font-weight:700}.nutrition-facts-serving{color:var(--text-tertiary);margin-bottom:10px;font-size:12px}.nutrition-facts-row{font-family:var(--font-mono);justify-content:space-between;padding:7px 0;font-size:13px;display:flex}.nutrition-facts-label{color:var(--text-secondary)}.nutrition-facts-value{color:var(--text-primary);font-weight:600}.star-rating{align-items:center;gap:6px;display:inline-flex}.star-rating-stars{gap:1px;display:inline-flex}.star-rating-star{cursor:pointer;opacity:1;background:0 0;border:none;padding:2px;line-height:0}.star-rating-star:disabled{cursor:not-allowed;opacity:.6}.star-rating-summary{font-family:var(--font-body);color:var(--text-secondary);font-size:13px}.focus-mode{z-index:100;background:var(--bg-page);flex-direction:column;display:flex;position:fixed;inset:0}.focus-header{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--page-padding) 0;display:flex}.focus-progress{flex:1;gap:4px;display:flex}.focus-progress-segment{border-radius:var(--radius-pill);background:var(--bg-surface-inset);height:4px;transition:background var(--duration-fast) ease-out;flex:1}.focus-progress-segment.is-done{background:var(--success)}.focus-progress-segment.is-current{background:var(--accent-primary)}.focus-close{background:var(--control-bg);width:36px;height:36px;color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.focus-tracks{padding:var(--space-3) var(--page-padding) 0;flex-wrap:wrap;gap:8px;display:flex}.focus-track-pill{border-radius:var(--radius-pill);font-family:var(--font-body);cursor:pointer;background:var(--control-bg);color:var(--text-secondary);transition:background var(--duration-fast) ease-out, color var(--duration-fast) ease-out;border:none;padding:6px 14px;font-size:13px;font-weight:600}.focus-track-pill:hover:not(.is-active){background:var(--control-bg-hover)}.focus-track-pill.is-active{background:var(--accent-primary);color:var(--text-on-accent)}.focus-body{padding:var(--space-6) var(--page-padding);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.focus-step{width:100%;max-width:640px}.focus-step-label{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--space-3);font-size:13px}.focus-step-text{font-family:var(--font-display);color:var(--text-primary);font-size:30px;font-weight:600;line-height:1.4}.focus-warning{margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--warning-bg);align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.focus-warning-text{font-family:var(--font-body);color:var(--warning);font-size:13px;font-weight:600}.focus-footer{justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--page-padding);background:var(--bg-surface);display:flex}.recipe-edit-main{gap:var(--space-6);flex-direction:column;display:flex}.recipe-edit-cancel{color:var(--text-secondary);font-family:var(--font-body);align-self:flex-start;font-size:13px;text-decoration:none}.recipe-edit-mode-label{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px;font-weight:600}.recipe-edit-error{font-family:var(--font-body);color:var(--danger-text);background:var(--surface-danger);border-radius:var(--radius-md);padding:var(--space-4);border:none;font-size:14px;font-weight:600}.recipe-edit-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.recipe-edit-head-fields{flex:1;min-width:260px}.recipe-edit-head-actions{gap:10px;display:flex}.recipe-edit-title-input{font:700 30px var(--font-display);color:var(--text-primary);border-radius:var(--radius-sm);background:var(--bg-surface-sunken);box-sizing:border-box;width:100%;transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;outline:none;margin-left:-10px;padding:4px 10px}.recipe-edit-title-input:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.recipe-edit-description{margin-top:10px}.recipe-edit-meta{font-family:var(--font-mono);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px;margin-top:10px;font-size:13px;display:flex}.recipe-edit-meta-input{font:inherit;color:inherit;border-radius:var(--radius-sm);background:var(--bg-surface-sunken);text-align:center;transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;outline:none;padding:2px 6px}.recipe-edit-meta-input:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.recipe-edit-meta-input--time{width:60px}.recipe-edit-meta-input--servings{width:52px}.recipe-edit-meta-input--calories{width:67px}.recipe-edit-tags{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.recipe-edit-tag{align-items:center;gap:6px;display:flex}.recipe-edit-tag-remove{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:13px;font-weight:700;line-height:1}.recipe-edit-tag-input{font-family:var(--font-body);border-radius:var(--radius-pill);background:var(--bg-surface-sunken);color:var(--text-primary);width:90px;transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;outline:none;padding:4px 11px;font-size:12px}.recipe-edit-tag-input:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.recipe-edit-steps{gap:var(--space-6);flex-direction:column;display:flex}.recipe-edit-sub-recipes,.recipe-edit-ingredients{gap:var(--space-4);flex-direction:column;display:flex}.recipe-edit-ingredients-note{font-family:var(--font-body);color:var(--text-tertiary);margin:0;font-size:13px}.recipe-edit-ingredients-title{font-family:var(--font-body);color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:700}.recipe-edit-ingredients-empty{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px}.recipe-edit-related{flex-direction:column;gap:6px;display:flex}.recipe-edit-related-label{font-family:var(--font-body);color:var(--text-primary);font-size:13px;font-weight:600}.step-row{align-items:flex-start;gap:16px;display:flex}.step-row+.step-row{margin-top:var(--space-5)}.step-row-number{background:var(--bg-surface-inset);width:32px;height:32px;color:var(--text-secondary);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:13px;font-weight:600;display:flex}.step-row-body{flex-direction:column;flex:1;gap:6px;display:flex}.step-row-actions{flex-direction:column;gap:6px;display:flex}.step-row-button{background:var(--control-bg);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) ease-out;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex}.step-row-button:hover{background:var(--control-bg-hover)}.step-row-button--insert{color:var(--accent-primary)}.step-list-add{margin-top:var(--space-4)}.step-input{position:relative}.step-input-box{border-radius:var(--radius-sm);background:var(--bg-surface-sunken);transition:box-shadow var(--duration-fast) ease-out;border:none;overflow:hidden}.step-input-box:focus-within{background:var(--bg-float);box-shadow:var(--shadow-focus)}.step-input-editable{min-height:60px;font-family:var(--font-body);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:0 0;outline:none;padding:10px 12px;font-size:14px;line-height:1.55}.step-input-footer{background:var(--bg-surface-inset);opacity:0;pointer-events:none;transition:opacity var(--duration-fast) ease-out;flex-wrap:wrap;gap:6px;padding:6px 10px;display:flex}.step-input-footer.is-visible{opacity:1;pointer-events:auto}.step-input-placeholder{font-family:var(--font-body);color:var(--text-tertiary);pointer-events:none;font-size:14px;line-height:1.55;position:absolute;top:10px;left:12px;right:12px}.step-input-error{font-family:var(--font-body);color:var(--danger-text);margin:4px 0 0;font-size:12px}.mention-dropdown{background:var(--bg-float);border-radius:var(--radius-sm);min-width:200px;box-shadow:var(--shadow-md);z-index:20;border:none;margin-top:4px;position:absolute;top:100%;left:0;overflow:hidden}.mention-option{cursor:pointer;font-family:var(--font-body);color:var(--text-primary);background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.mention-option.is-active{background:var(--surface-accent)}.mention-option--suggest{color:var(--accent-primary);font-weight:600}.mention-option--suggest.is-busy{cursor:default;opacity:.6}.mention-option--empty{cursor:default;color:var(--text-tertiary)}.mention-shortcut{font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-surface-sunken);border-radius:var(--radius-sm);text-transform:uppercase;padding:1px 6px;font-size:11px}.mention-insert-button{border-radius:var(--radius-pill);background:var(--bg-surface-inset);color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;border:none;padding:3px 9px;font-size:11px;font-weight:600}.sub-recipe-panel{background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-5);gap:var(--space-4);border:none;flex-direction:column;display:flex}.sub-recipe-panel-head{align-items:center;gap:10px;display:flex}.sub-recipe-panel-title{font:600 16px var(--font-body);color:var(--text-primary);border-radius:var(--radius-sm);background:var(--bg-surface-sunken);transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;outline:none;flex:1;padding:4px 8px}.sub-recipe-panel-title:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.sub-recipe-panel-hint{font-family:var(--font-body);color:var(--text-tertiary);margin:0;font-size:12px}.sub-recipe-panel-tag{font-family:var(--font-mono);background:var(--bg-surface-sunken);border-radius:var(--radius-sm);padding:1px 5px;font-size:11px}.dropzone{text-align:center;padding:var(--space-6) var(--space-5);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:none;cursor:pointer;transition:background var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;border:none;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.dropzone.is-active{background:var(--surface-accent);box-shadow:var(--shadow-focus)}.dropzone.is-disabled{background:var(--bg-page);cursor:default}.dropzone-icon{stroke:var(--text-tertiary);transition:stroke var(--duration-fast) ease-out}.dropzone.is-active .dropzone-icon{stroke:var(--accent-primary)}.dropzone-label{font-family:var(--font-body);color:var(--text-secondary);font-size:14px;font-weight:600}.dropzone.is-active .dropzone-label{color:var(--accent-primary-hover)}.dropzone-hint{font-family:var(--font-body);color:var(--text-tertiary);font-size:12px}.dropzone-placeholder-text{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px}.dropzone-field{flex-direction:column;gap:6px;display:flex}.dropzone-field-label{font-family:var(--font-body);color:var(--text-primary);font-size:13px;font-weight:600}.dropzone-preview{align-items:center;gap:14px;width:100%;display:flex}.dropzone-preview-image{border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;width:56px;height:56px}.dropzone-preview-text{text-align:left;flex-direction:column;gap:2px;display:flex}.dropzone-preview-title{font-family:var(--font-body);color:var(--text-secondary);font-size:14px;font-weight:600}.dropzone-file-input{display:none}.dropzone-error{font-family:var(--font-body);color:var(--danger-text);font-size:12px}.nutrition-fields{border-radius:var(--radius-md);background:var(--bg-surface-sunken);padding:var(--space-4);font-family:var(--font-body);border:none;flex-direction:column;gap:12px;max-width:340px;display:flex}.nutrition-fields-title{color:var(--text-primary);font-size:15px;font-weight:700}.nutrition-fields-hint{color:var(--text-tertiary);margin:0;font-size:12px}.nutrition-fields-macros{grid-template-columns:1fr 1fr;gap:12px;display:grid}.avatar{border-radius:var(--radius-round);background:var(--avatar-bg);color:var(--avatar-text);font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar--md{width:72px;height:72px;font-size:24px}.avatar--lg{width:96px;height:96px;font-size:32px}.profile-card{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-7);gap:var(--space-5);margin-bottom:var(--space-8);flex-wrap:wrap;align-items:center;display:flex}.profile-details{flex-direction:column;flex:1;gap:6px;min-width:240px;display:flex}.profile-name{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700}.profile-location{font-family:var(--font-mono);color:var(--text-secondary);font-size:13px}.profile-bio{font-family:var(--font-body);color:var(--text-primary);font-size:15px;line-height:var(--leading-normal);max-width:620px;margin-top:4px}.profile-edit-title{font:700 28px var(--font-display);color:var(--text-primary);margin:0 0 var(--space-2)}.profile-edit-intro{font-family:var(--font-body);color:var(--text-secondary);margin:0 0 var(--space-6);font-size:14px}.profile-edit-form{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-7);gap:var(--space-5);flex-direction:column;display:flex}.profile-edit-avatar-row{align-items:center;gap:var(--space-5);display:flex}.profile-edit-avatar-note{font-family:var(--font-body);color:var(--text-tertiary);font-size:13px}.profile-edit-error{font-family:var(--font-body);color:var(--danger-text);font-size:13px}.profile-edit-saved{font-family:var(--font-body);color:var(--accent-primary);font-size:13px}.profile-edit-actions{gap:var(--space-3);justify-content:flex-end;display:flex}.mcp-title{font:700 28px var(--font-display);color:var(--text-primary);margin:0 0 var(--space-2)}.mcp-intro{font-family:var(--font-body);color:var(--text-secondary);margin:0 0 var(--space-6);max-width:560px;font-size:14px}.mcp-card{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);margin-bottom:var(--space-6)}.mcp-section-title{font:700 16px var(--font-display);color:var(--text-primary);margin:0 0 var(--space-3)}.mcp-card-text{font-family:var(--font-body);color:var(--text-secondary);margin:0 0 var(--space-3);font-size:13px}.mcp-card-text--form{margin-bottom:var(--space-4)}.mcp-code{border-radius:var(--radius-sm);background:var(--bg-surface-sunken);color:var(--text-primary);word-break:break-all;padding:10px 12px;font-family:monospace;font-size:13px;display:block}.mcp-inline-code{margin:0 4px;font-family:monospace}.mcp-create-form{align-items:flex-start;gap:10px;display:flex}.mcp-create-field{flex:1}.mcp-issued{margin-top:var(--space-5);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--surface-attention);border:none}.mcp-issued-warning{font-family:var(--font-body);color:var(--text-primary);margin:0 0 8px;font-size:13px;font-weight:600}.mcp-issued-token{border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);word-break:break-all;margin-bottom:10px;padding:10px 12px;font-family:monospace;font-size:12px;display:block}.mcp-revoke-error{font-family:var(--font-body);color:var(--danger-text);margin:0 0 var(--space-3);font-size:13px}.mcp-empty{font-family:var(--font-body);color:var(--text-tertiary);font-size:14px}.mcp-token-list{flex-direction:column;gap:10px;display:flex}.mcp-token-row{border-radius:var(--radius-sm);background:var(--bg-surface-sunken);border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.mcp-token-row.is-revoked{opacity:.55}.mcp-token-label{font-family:var(--font-body);color:var(--text-primary);font-size:14px;font-weight:600}.mcp-token-revoked-flag{color:var(--danger-text);margin-left:8px;font-size:11px;font-weight:600}.mcp-token-meta{font-family:var(--font-body);color:var(--text-tertiary);font-size:12px}.mcp-back{margin-top:var(--space-6)}.mcp-back-link{font-family:var(--font-body);color:var(--accent-primary);font-size:13px;font-weight:600}.oauth-page{box-sizing:border-box;width:100%;min-height:100svh;padding:var(--space-5);flex-direction:column;justify-content:center;align-items:center;display:flex}.oauth-card{background:var(--bg-surface);border-radius:var(--radius-md);width:100%;max-width:440px;box-shadow:var(--shadow-sm);padding:var(--space-6);gap:var(--space-4);box-sizing:border-box;flex-direction:column;display:flex}.oauth-title{font:600 20px var(--font-display);color:var(--text-primary);margin:0}.oauth-body{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.oauth-muted{color:var(--text-secondary);text-align:center;margin:0;font-size:13px}.oauth-error{color:var(--danger-text);margin:0;font-size:13px}.oauth-google-slot{opacity:1;min-height:44px}.oauth-google-slot.is-authenticating{opacity:.6}.oauth-actions{gap:var(--space-3);justify-content:flex-end;display:flex}.queue-page{gap:var(--space-6);flex-direction:column;display:flex}.queue-title{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700}.queue-nav{gap:12px;margin-top:2px;display:flex}.queue-link{font-family:var(--font-body);color:var(--accent-primary);font-size:13px;font-weight:600}.queue-count{font-family:var(--font-body);color:var(--text-tertiary);font-size:12px}.queue-row{padding:var(--space-4);background:var(--bg-surface);border-radius:var(--radius-md)}.queue-row+.queue-row{margin-top:var(--space-3)}.queue-row--tight{padding:10px var(--space-4)}.queue-row-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.queue-row-title{font-family:var(--font-body);color:var(--text-primary);font-size:14px;font-weight:600}.queue-row-meta{font-family:var(--font-body);color:var(--text-tertiary);font-size:12px}.queue-row-error{font-family:var(--font-body);color:var(--danger-text);margin:4px 0 0;font-size:12px}.queue-empty{font-family:var(--font-body);color:var(--text-tertiary);font-size:14px}.queue-row-input{font-family:var(--font-body);border-radius:var(--radius-sm);background:var(--bg-surface-sunken);color:var(--text-primary);transition:box-shadow var(--duration-fast) ease-out;border:none;outline:none;flex:1;padding:9px 11px;font-size:14px}.queue-row-input:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.queue-row-input--sm{padding:7px 10px;font-size:13px}.queue-row-actions{align-items:center;gap:10px;display:flex}.queue-row-reject{align-items:center;gap:8px;margin-top:8px;display:flex}.queue-create{align-items:flex-start;gap:10px;display:flex}.queue-create-field{flex:1}.admin-users-main{gap:var(--space-6);flex-direction:column;display:flex}.admin-users-title{font-family:var(--font-display);color:var(--text-primary);font-size:26px;font-weight:700}.admin-users-search{position:relative}.admin-users-results{background:var(--bg-float);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:10;border:none;max-height:280px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.admin-users-result{cursor:pointer;font-family:var(--font-body);transition:background var(--duration-fast) ease-out;padding:8px 12px}.admin-users-result:hover{background:var(--row-hover)}.admin-users-result-name{color:var(--text-primary);font-size:14px;font-weight:600}.admin-users-result-meta{color:var(--text-tertiary);font-size:12px}.admin-users-no-results{font-family:var(--font-body);color:var(--text-tertiary);padding:8px 12px;font-size:13px}.admin-users-selected{font-family:var(--font-body);color:var(--text-secondary);margin:0;font-size:13px}.admin-users-selected-name{color:var(--text-primary);font-weight:600}.admin-users-clear{cursor:pointer;font-family:var(--font-body);color:var(--accent-primary);background:0 0;border:none;margin-top:4px;padding:0;font-size:12px;font-weight:600}.admin-users-field{font-family:var(--font-body);flex-direction:column;gap:6px;display:flex}.admin-users-field-label{color:var(--text-primary);font-size:13px;font-weight:600}.admin-users-select{font-family:var(--font-body);border-radius:var(--radius-sm);background:var(--bg-surface-sunken);color:var(--text-primary);transition:box-shadow var(--duration-fast) ease-out;border:none;outline:none;padding:11px 13px;font-size:14px}.admin-users-select:focus{background:var(--bg-float);box-shadow:var(--shadow-focus)}.admin-users-error{font-family:var(--font-body);color:var(--danger-text);margin:0;font-size:13px}.admin-users-success{font-family:var(--font-body);color:var(--success);margin:0;font-size:13px}.policy-page{gap:var(--space-6);flex-direction:column;display:flex}.policy-title{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:32px;font-weight:700}.policy-updated{font-family:var(--font-body);color:var(--text-secondary);margin:8px 0 0;font-size:14px;line-height:1.6}.policy-section{gap:var(--space-2);flex-direction:column;display:flex}.policy-heading{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:700}.policy-body{font-family:var(--font-body);color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.policy-link{color:var(--accent-primary);font-weight:600}.policy-table-scroll{border-radius:var(--radius-md);background:var(--bg-surface);border:none;overflow-x:auto}.policy-table{border-collapse:collapse;width:100%;min-width:520px}.policy-table th,.policy-table td{font-family:var(--font-body);color:var(--text-secondary);text-align:left;vertical-align:top;padding:10px 12px;font-size:13px}.policy-table th{color:var(--text-primary);background:var(--bg-surface-sunken);font-weight:700}.policy-table tbody tr:nth-child(2n){background:var(--bg-page)}.policy-table .policy-cell-key{font-family:var(--font-mono)}
