:root{--c-green-50: #E1EEE6;--c-green-100: #c5ddcf;--c-green-500: #3E9B5F;--c-green-600: #2F6B47;--c-green-700: #1E5236;--c-green-900: #16201A;--c-green-950: #11221A;--c-paper: #F6F7F4;--c-stone-50: #F2F4F0;--c-stone-100: #EEF1EC;--c-stone-200: #E3E7DF;--c-stone-300: #DDE2D9;--c-stone-400: #c8cfc6;--c-stone-500: #8a948c;--c-stone-600: #56625B;--c-stone-700: #4f5a52;--c-stone-800: #2c352e;--c-canvas: #e7e5df;--c-clay-100: #F4E5DC;--c-clay-200: #e7d3c6;--c-clay-300: #E9A079;--c-clay-500: #C8633D;--c-clay-700: #9E4A2A;--c-cool-100: #E7ECEE;--c-cool-300: #aebac1;--c-cool-700: #3C4D55;--c-cat-green: #3E9B5F;--c-cat-amber: #E0A23E;--c-cat-cyan: #4FB0C6;--c-cat-clay: #C8633D;--c-danger: #B23A3A;--c-danger-border: #ead2d2;--c-d-bezel: #1f2a24;--c-d-surface: #11221A;--c-d-sunken: #0d1c15;--c-d-card: #13261c;--c-d-card-2: #15241c;--c-d-raised: #1b3326;--c-d-green-tint: #16301f;--c-d-amber-tint: #1f1a10;--c-d-border: #22402f;--c-d-border-2: #2c4d39;--c-d-border-green: #2c5c3f;--c-d-border-amber: #5c4a23;--c-d-text-hi: #eafaee;--c-d-text: #cfe0d5;--c-d-text-mid: #bcd9c4;--c-d-text-soft: #a8c4b1;--c-d-text-muted: #7fa98c;--c-d-text-faint: #5f8a6d;--c-d-green-bright: #7fe09b;--c-d-on-green: #06180e;--c-d-amber: #E0A23E;--c-d-amber-text: #f0dcb6;--bg-canvas: var(--c-canvas);--bg-page: var(--c-paper);--bg-surface: #ffffff;--bg-surface-sunken: var(--c-paper);--bg-subtle: var(--c-stone-50);--border-default: var(--c-stone-300);--border-subtle: var(--c-stone-200);--border-hairline: var(--c-stone-100);--border-strong: var(--c-stone-400);--text-strong: var(--c-green-900);--text-default: var(--c-stone-800);--text-secondary: var(--c-stone-700);--text-muted: var(--c-stone-600);--text-faint: var(--c-stone-500);--text-on-accent: #ffffff;--text-on-dark: var(--c-d-text-hi);--accent: var(--c-green-600);--accent-bright: var(--c-green-500);--accent-text: var(--c-green-700);--accent-strong: var(--c-green-700);--accent-surface: var(--c-green-50);--accent-surface-bd: var(--c-green-100);--clay: var(--c-clay-500);--clay-text: var(--c-clay-700);--clay-bright: var(--c-clay-300);--clay-surface: var(--c-clay-100);--clay-surface-bd: var(--c-clay-200);--time-active-surface: var(--c-green-50);--time-active-text: var(--c-green-700);--time-active-bar: var(--c-green-600);--time-passive-surface: var(--c-cool-100);--time-passive-text: var(--c-cool-700);--time-passive-bar: var(--c-cool-300);--danger: var(--c-danger);--danger-border: var(--c-danger-border);--rating: var(--c-clay-500);--rating-empty: #e3d2c8;--font-display: "Fraunces", Georgia, serif;--font-body: "Hanken Grotesk", -apple-system, sans-serif;--font-mono: var(--font-body);--font-measure: var(--font-body);--fw-regular: 400;--fw-medium: 500;--fw-semibold:600;--fw-bold: 700;--fw-display: 600;--fs-hero: 60px;--lh-hero: .95;--fs-title: 30px;--lh-title: 1.05;--fs-cook: 26px;--lh-cook: 1.4;--fs-h2: 19px;--lh-h2: 1.15;--fs-h3: 17px;--fs-lg: 18px;--lh-body: 1.6;--fs-md: 14.5px;--fs-base: 14px;--fs-sm: 13px;--fs-xs: 12px;--fs-2xs: 11px;--fs-label: 11px;--fs-label-sm:10px;--ls-tight: -.03em;--ls-snug: -.01em;--ls-label: .12em;--ls-label-wide: .14em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10:40px;--space-12:48px;--control-sm: 30px;--control-md: 32px;--control-lg: 40px;--control-xl: 54px;--tap-min: 44px;--radius-xs: 5px;--radius-sm: 6px;--radius-md: 7px;--radius-lg: 9px;--radius-xl: 11px;--radius-2xl: 14px;--radius-pill:99px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 2px 8px rgba(20,33,26,.06);--shadow-card: var(--shadow-md);--shadow-lg: 0 8px 24px rgba(0,0,0,.18);--shadow-xl: 0 10px 30px rgba(0,0,0,.22);--ease-standard: cubic-bezier(.2,.6,.2,1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s}[data-theme=dark]{--bg-canvas: var(--c-d-bezel);--bg-page: var(--c-d-surface);--bg-surface: var(--c-d-card);--bg-surface-sunken: var(--c-d-sunken);--bg-subtle: var(--c-d-raised);--border-default: var(--c-d-border);--border-subtle: var(--c-d-border);--border-hairline: var(--c-d-border);--border-strong: var(--c-d-border-2);--text-strong: #ffffff;--text-default: var(--c-d-text-hi);--text-secondary: var(--c-d-text);--text-muted: var(--c-d-text-muted);--text-faint: var(--c-d-text-faint);--text-on-accent: var(--c-d-on-green);--accent: var(--c-green-500);--accent-bright: var(--c-d-green-bright);--accent-text: var(--c-d-green-bright);--accent-strong: var(--c-d-green-bright);--accent-surface: var(--c-d-green-tint);--accent-surface-bd: var(--c-d-border-green);--clay: var(--c-clay-300);--clay-text: var(--c-clay-300);--clay-surface: var(--c-d-amber-tint);--clay-surface-bd: var(--c-d-border-amber);--time-active-surface: var(--c-d-green-tint);--time-active-text: var(--c-d-green-bright);--time-active-bar: var(--c-green-500);--time-passive-surface: var(--c-d-raised);--time-passive-text: var(--c-d-text-soft);--time-passive-bar: var(--c-d-border-2);--rating: var(--c-clay-300);--rating-empty: var(--c-d-border-2)}:root{--container-max: 1200px;--container-padding: var(--space-4);--color-primary: var(--accent);--color-primary-hover: var(--accent-bright);--color-accent: var(--clay);--color-accent-hover: var(--clay-text);--color-text-dark: var(--text-strong);--color-text-body: var(--text-default);--color-text-muted: var(--text-muted);--color-bg-main: var(--bg-page);--color-bg-white: var(--bg-surface);--color-bg-light: var(--bg-subtle);--color-cream: var(--bg-subtle);--color-dark-brown: var(--text-strong);--color-border: var(--border-default);--color-border-light: var(--border-subtle);--color-green: var(--accent);--color-green-light: var(--accent-surface);--color-timing-active-bg: var(--time-active-surface);--color-timing-active-text: var(--time-active-text);--color-timing-passive-bg: var(--time-passive-surface);--color-timing-passive-text: var(--time-passive-text);--color-danger: var(--danger)}@media(min-width:768px){:root{--container-padding: var(--space-6)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);line-height:var(--lh-body);color:var(--text-default);background:var(--bg-page);font-size:var(--fs-base);min-height:100vh;text-rendering:optimizeLegibility}@media(min-width:768px){body{font-size:var(--fs-md)}}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);line-height:1.15;letter-spacing:var(--ls-snug);text-wrap:balance}h1{font-size:var(--fs-title);font-weight:var(--fw-display);line-height:var(--lh-title)}h2{font-size:var(--fs-h2);font-weight:var(--fw-bold)}h3{font-size:var(--fs-h3);font-weight:var(--fw-bold)}h4{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}p{text-wrap:pretty}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:var(--fs-lg);line-height:1;letter-spacing:normal;text-transform:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased}.material-icons.icon-sm{font-size:var(--fs-base)}.material-icons.icon-lg{font-size:var(--space-6)}.btn .material-icons{font-size:var(--fs-base)}.skip-link{position:absolute;top:-100%;left:var(--space-4);background:var(--accent);color:var(--text-on-accent);padding:var(--space-2) var(--space-4);border-radius:0 0 var(--radius-sm) var(--radius-sm);z-index:999;font-family:var(--font-body);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.skip-link:focus{top:0}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}button,input,select,textarea{color:inherit;font:inherit}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}header{background:var(--bg-surface);border-bottom:1px solid var(--border-default);position:sticky;top:0;z-index:100}nav{max-width:var(--container-max);margin:0 auto;min-height:var(--control-xl);padding:var(--space-3) var(--container-padding);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.logo{display:inline-flex;align-items:baseline;gap:0;font-family:var(--font-display);font-weight:var(--fw-display);font-size:var(--fs-lg);color:var(--text-strong);letter-spacing:var(--ls-snug)}.logo-wordmark{color:var(--text-strong)}.logo-db{color:var(--accent)}.nav-toggle{display:none;align-items:center;justify-content:center;width:var(--control-md);height:var(--control-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}.nav-toggle:hover{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-text)}.nav-actions{display:flex;align-items:center;gap:var(--space-2)}.nav-search-bar{display:flex;flex:1;align-items:center;max-width:300px}.nav-search-bar #search-input{width:100%}.nav-user-menu{position:relative}.nav-user-btn{min-height:var(--control-md);background:var(--bg-subtle);border:1px solid var(--border-subtle);cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-sm);transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.nav-user-btn:hover{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-text)}.nav-user-label{display:none}.nav-user-dropdown{display:none;position:absolute;top:100%;right:0;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-3);margin-top:var(--space-2);z-index:200;min-width:200px}.nav-user-dropdown.open{display:flex;flex-direction:column;gap:var(--space-2)}.nav-user-email{padding:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-user-account{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-sm);color:var(--text-strong);text-decoration:none;transition:background var(--dur-base) var(--ease-standard);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.nav-user-account:hover{background:var(--bg-subtle)}@media(max-width:767px){.nav-toggle{display:flex;align-items:center}.logo{display:none}.nav-search-bar{max-width:none}.nav-actions{display:none;flex-direction:column;align-items:stretch;position:absolute;top:100%;left:0;right:0;background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:var(--space-3) var(--container-padding);gap:var(--space-2);box-shadow:var(--shadow-md);z-index:99}.nav-actions.open{display:flex}.nav-actions .btn{justify-content:center}.nav-user-label{display:inline}.nav-user-dropdown{position:fixed;inset:auto auto 0 0;width:100%;border-radius:0;margin-top:0;max-height:none;border:none;box-shadow:none}nav{position:relative}}main{max-width:var(--container-max);margin:var(--space-6) auto;padding:0 var(--container-padding)}@media(min-width:768px){main{margin:var(--space-8) auto}}.recipe-list-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.recipe-list-header{display:grid;grid-template-columns:64px 1fr 150px 76px 56px;gap:var(--space-4);padding:11px 20px;border-bottom:1px solid var(--border-hairline);background:var(--bg-subtle);font-family:var(--font-mono);font-size:var(--fs-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-faint)}.recipe-list-header-serves{text-align:right}.recipe-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}.recipe-grid--cols{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media(min-width:1120px){.recipe-grid--cols{grid-template-columns:repeat(3,minmax(0,1fr))}}.meal-plan-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}@media(min-width:1120px){.meal-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.recipe-list-card .recipe-grid,.meal-plan-recipe-grid{display:block}.recipe-grid:empty{display:block}@media(max-width:640px){.recipe-list-header{grid-template-columns:56px 1fr 40px}.recipe-list-header :nth-child(3),.recipe-list-header :nth-child(4){display:none}}.pagination{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-8);padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.pagination-info{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-faint)}.pagination-nav{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;justify-content:flex-start}.pagination-btn{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--control-sm);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);font-size:var(--fs-xs);font-family:var(--font-body);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard);color:var(--text-secondary)}.pagination-btn:hover:not(:disabled):not(.pagination-btn--active){background:var(--bg-subtle);border-color:var(--accent-surface-bd);color:var(--accent-text)}.pagination-btn--active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);font-weight:var(--fw-bold);cursor:default}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn .material-icons{font-size:var(--fs-base)}.pagination-ellipsis{padding:0 var(--space-1);color:var(--text-faint);font-size:var(--fs-xs)}@media(max-width:480px){.pagination-nav{gap:.15rem}.pagination-btn{padding:.35rem .5rem;font-size:.8rem}}@media(min-width:768px){.pagination{flex-direction:row;justify-content:space-between;align-items:center}}.loading{display:grid;place-items:center;gap:var(--space-2);min-height:180px;padding:var(--space-8) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-surface-sunken);box-shadow:inset 0 1px #fff6;color:var(--text-muted);text-align:center}.error{color:var(--danger);font-size:var(--fs-sm);padding:var(--space-3) var(--space-4);border:1px solid var(--danger-border);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.empty-state{display:grid;gap:var(--space-3);justify-items:center;min-height:220px;padding:var(--space-8) var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-surface-sunken);color:var(--text-default);text-align:center}.empty-state h2{margin-bottom:0}.empty-state p,.loading{max-width:40ch}.state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}#search-input{min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--fs-sm);width:180px;font-family:var(--font-body);color:var(--text-default);background:var(--bg-subtle);transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}#search-input:focus{background:var(--bg-surface);border-color:var(--accent-surface-bd);outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--fs-sm);font-family:var(--font-body);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard);white-space:nowrap}.btn:hover{background:var(--bg-subtle);border-color:var(--accent-surface-bd);color:var(--text-strong)}.btn-secondary{background:var(--bg-surface);color:var(--text-secondary)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--bg-subtle);border-color:transparent;color:var(--text-strong)}.btn-primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);font-weight:var(--fw-semibold)}.btn-primary:hover{background:var(--accent-bright);border-color:var(--accent-bright);color:var(--text-on-accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-clay{background:var(--clay);color:var(--text-on-accent);border-color:var(--clay);font-weight:var(--fw-semibold)}.btn-clay:hover{background:var(--clay-text);border-color:var(--clay-text);color:var(--text-on-accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-danger{color:var(--danger);border-color:var(--danger-border);background:var(--bg-surface)}.btn-danger:hover{background:var(--danger-border);border-color:var(--danger);color:var(--danger)}.btn-small{min-height:var(--control-sm);padding:0 var(--space-3);font-size:var(--fs-xs)}.btn[disabled],.btn-disabled,.btn.is-loading,.btn[aria-busy=true]{opacity:.45;cursor:default;pointer-events:none}.btn.is-loading,.btn[aria-busy=true]{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-text)}.filters-container{margin-bottom:var(--space-6)}.filters-card{display:grid;gap:var(--space-4);padding:var(--space-4);background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-default);box-shadow:var(--shadow-sm)}.filters-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.filters-header-text,.discover-header{display:grid;gap:var(--space-1)}.view-toggle{display:flex;gap:var(--space-1);flex-shrink:0;padding-top:var(--space-1)}.view-toggle-btn--active{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-text)}.filters-title{font-size:clamp(1.7rem,2.2vw,2.25rem)}.section-kicker{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent)}.section-kicker--clay{color:var(--clay)}.filters{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.filter-field{display:grid;gap:var(--space-1)}.filter-label{font-family:var(--font-mono);font-size:var(--fs-label-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-faint)}.filter-select{min-height:40px;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--fs-sm);font-family:var(--font-body);background:var(--bg-subtle);color:var(--text-default);cursor:pointer;width:100%;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard)}.filter-select:focus{outline:none;background:var(--bg-surface);border-color:var(--accent-surface-bd);box-shadow:0 0 0 3px var(--accent-surface)}.filter-actions{display:flex;align-items:end;grid-column:2 / -1;justify-content:flex-end}.filter-actions .btn{min-width:max-content}@media(min-width:768px){.filters-card{padding:var(--space-5)}.filters{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}.filter-field{grid-column:span 2}.filter-field[for=filter-tag]{grid-column:span 4}.filter-field[for=discover-tag]{grid-column:span 5}.filter-actions{grid-column:span 2;justify-content:flex-end}.filter-actions--discover{grid-column:span 3}}.recipe-edit-form{max-width:720px;margin-top:var(--space-6)}.recipe-edit-form label{display:block;font-weight:var(--fw-semibold);font-size:var(--fs-sm);margin-bottom:var(--space-1);margin-top:var(--space-5);color:var(--text-strong)}.recipe-edit-form label:first-child{margin-top:0}.recipe-edit-form .required{color:var(--danger)}.recipe-edit-form .hint{font-weight:var(--fw-regular);font-size:var(--fs-xs);color:var(--text-secondary)}.recipe-edit-form input[type=text],.recipe-edit-form input[type=url],.recipe-edit-form input[type=number],.recipe-edit-form textarea{display:block;width:100%;padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font-body);background:var(--bg-surface);transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard);box-sizing:border-box}.recipe-edit-form input:focus,.recipe-edit-form textarea:focus{outline:none;border-color:var(--accent-surface-bd)}.recipe-edit-form textarea{resize:vertical}.recipe-edit-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4);margin-top:var(--space-5)}.recipe-edit-row label{margin-top:0}.json-editor{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.5;min-height:300px;tab-size:2;white-space:pre}.mono-textarea{font-family:var(--font-mono);font-size:var(--fs-xs)}.json-error{color:var(--danger);font-size:var(--fs-xs);margin-top:var(--space-1);min-height:1.2em}.recipe-edit-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-subtle)}.image-manager{margin-top:var(--space-1)}.image-manager-grid{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.image-thumb-card{position:relative;width:120px;height:120px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-default)}.image-thumb{width:100%;height:100%;object-fit:cover;display:block}.image-thumb-remove{position:absolute;top:var(--space-1);right:var(--space-1);width:28px;height:28px;border-radius:50%;border:none;background:var(--text-strong);color:var(--text-on-accent);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;padding:0}.image-thumb-remove .material-icons{font-size:var(--fs-base)}.image-thumb-card:hover .image-thumb-remove{opacity:1}.image-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard);background:var(--bg-subtle)}.image-drop-zone:hover{border-color:var(--accent-surface-bd);background:var(--accent-surface)}.image-drop-zone.dragover{border-color:var(--accent);background:var(--accent-surface);box-shadow:var(--shadow-sm)}.image-drop-zone.uploading{opacity:.6;pointer-events:none}.image-upload-status{margin-top:var(--space-2);font-size:var(--fs-xs)}.image-uploading{color:var(--text-secondary)}.image-upload-error{color:var(--danger)}@media(max-width:600px){.recipe-edit-row{grid-template-columns:1fr}.image-thumb-card{width:100px;height:100px}.image-thumb-remove{opacity:1}input,textarea,select{font-size:16px!important}}.recipe-card{background:var(--bg-surface);border-radius:var(--radius-lg);overflow:clip;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard);display:flex;flex-direction:column;min-width:0;position:relative}.recipe-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--accent-surface-bd)}.recipe-card-media{position:relative;aspect-ratio:16 / 10;background:var(--bg-subtle);overflow:hidden}.recipe-card-link{position:absolute;inset:0;z-index:1}.recipe-card-add-today-btn{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:6px 12px 6px 9px;border:none;border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-sm);font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-xs);cursor:pointer;transition:gap var(--dur-fast) var(--ease-standard),padding var(--dur-fast) var(--ease-standard),filter var(--dur-fast) var(--ease-standard)}.recipe-card-add-today-btn:hover:not([aria-disabled=true]){filter:brightness(.96)}.recipe-card-add-today-btn[aria-disabled=true]{cursor:default;opacity:1}.recipe-card-add-today-btn .material-icons{font-size:16px}.recipe-card-add-today-label{white-space:nowrap}.recipe-card-img{width:100%;height:100%;object-fit:cover;display:block}.recipe-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--border-strong)}.recipe-card-placeholder .material-icons{font-size:40px}.recipe-card-time{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:var(--space-2);padding:16px 10px 8px;background:linear-gradient(transparent,#16201aa6);font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-xs)}.recipe-card-time-active{color:#fff;white-space:nowrap}.recipe-card-time-total{color:#ffffffb3;white-space:nowrap}.recipe-card-time-bar{flex:1;display:flex;height:5px;border-radius:var(--radius-pill);overflow:hidden}.recipe-card-time-bar-active{background:var(--time-active-bar)}.recipe-card-time-bar-passive{flex:1;background:var(--time-passive-bar)}.recipe-card-body{padding:13px 14px 15px;flex:1;display:flex;flex-direction:column;min-width:0}.recipe-card-copy{display:grid;gap:var(--space-2)}.recipe-card-eyebrow{font-family:var(--font-mono);font-size:var(--fs-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent-text);margin-bottom:5px}.recipe-card-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h2);line-height:1.15;color:var(--text-strong);margin:0 0 6px}.recipe-card-desc{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-meta{display:flex;align-items:center;gap:var(--space-4);margin-bottom:11px}.recipe-card-meta-item{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-weight:var(--fw-medium);font-size:var(--fs-xs);color:var(--text-secondary)}.recipe-card-meta-item .material-icons{font-size:15px;color:var(--text-faint)}.recipe-card-meta-item--rating .material-icons{color:var(--rating)}.recipe-card-tags{display:flex;flex-wrap:nowrap;gap:6px;margin-top:auto;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent);position:relative;z-index:2}.recipe-card-tags::-webkit-scrollbar{display:none}.recipe-card-tags .tag{flex:none;white-space:nowrap;min-height:0;padding:3px 8px;border:none;border-radius:var(--radius-xs);background:var(--bg-subtle);font-family:var(--font-body);font-size:var(--fs-xs);font-weight:var(--fw-regular);letter-spacing:normal;text-transform:none;color:var(--text-secondary)}.recipe-row{display:grid;grid-template-columns:64px 1fr 150px 76px minmax(112px,max-content);gap:var(--space-4);align-items:center;padding:13px 20px;border-bottom:1px solid var(--border-hairline);text-decoration:none;color:inherit;background:var(--bg-surface);transition:background var(--dur-fast) var(--ease-standard)}.recipe-row:last-child{border-bottom:none}.recipe-row:hover{background:var(--bg-subtle)}.recipe-row-thumb{width:64px;height:64px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-subtle);flex:none}.recipe-row-img{width:100%;height:100%;object-fit:cover;display:block}.recipe-row-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--border-strong)}.recipe-row-thumb-placeholder .material-icons{font-size:26px}.recipe-row-copy{min-width:0}.recipe-row-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:3px}.recipe-row-eyebrow{font-family:var(--font-mono);font-size:var(--fs-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent-text)}.recipe-row-rating{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.recipe-row-rating .material-icons{font-size:13px;color:var(--rating)}.recipe-row-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-lg);color:var(--text-strong);line-height:1.2}.recipe-row-desc{font-size:var(--fs-sm);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.recipe-row-time-total{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--text-strong);margin-bottom:5px}.recipe-row-bar{display:flex;height:5px;border-radius:var(--radius-pill);overflow:hidden;width:120px;margin-bottom:4px}.recipe-row-bar-active{background:var(--time-active-bar)}.recipe-row-bar-passive{flex:1;background:var(--time-passive-bar)}.recipe-row-time-label{font-family:var(--font-mono);font-size:var(--fs-label-sm);color:var(--text-faint)}.recipe-row-serves{font-family:var(--font-mono);font-weight:var(--fw-medium);font-size:var(--fs-base);color:var(--text-secondary);text-align:right}.recipe-row-action{display:flex;justify-content:flex-end}.recipe-row-action-btn{width:34px;height:34px;border:1px solid var(--border-default);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--accent);flex:none}.recipe-row-action-btn .material-icons{font-size:20px}.recipe-row-add-today-btn{height:34px;border:none;border-radius:var(--radius-pill);background:var(--accent);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;gap:5px;padding:0 11px 0 9px;color:var(--text-on-accent);font-family:var(--font-body);font-weight:var(--fw-semibold);font-size:var(--fs-xs);cursor:pointer;flex:none}.recipe-row-add-today-btn:hover:not([aria-disabled=true]){filter:brightness(.96)}.recipe-row-add-today-btn[aria-disabled=true]{cursor:default;opacity:1}.recipe-row-add-today-btn .material-icons{font-size:16px}.recipe-row-add-today-label{white-space:nowrap}@media(max-width:640px){.recipe-row{grid-template-columns:56px 1fr 40px;padding:12px 16px;gap:var(--space-3)}.recipe-row-time,.recipe-row-serves{display:none}.recipe-row-add-today-btn{width:34px;padding:0;justify-content:center}.recipe-row-add-today-label{display:none}}.recipe-detail{background:transparent;border-radius:0;border:none;padding:0}@media(min-width:768px){.recipe-detail{border-radius:0;border:none;padding:0}}.recipe-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.back-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--accent);font-weight:600;transition:color .2s;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase}.back-link:hover{color:var(--color-primary-hover)}.recipe-detail-actions{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;position:relative}.actions-toggle{display:none}.actions-menu{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}@media(max-width:767px){.actions-toggle{display:inline-flex}.actions-menu{display:none;position:absolute;top:100%;right:0;flex-direction:column;align-items:stretch;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;padding:.5rem;gap:.25rem;box-shadow:var(--shadow-md);z-index:50;min-width:170px}.recipe-detail-actions.open .actions-menu{display:flex}.actions-menu .btn{justify-content:flex-start;width:100%}}.schedule-toast{font-size:.8rem;font-weight:500;color:var(--color-green);padding:.25rem .5rem;background:var(--color-green-light);border-radius:6px;animation:toast-fade 2.5s ease forwards}@keyframes toast-fade{0%{opacity:0;transform:translateY(4px)}15%{opacity:1;transform:translateY(0)}75%{opacity:1}to{opacity:0}}.recipe-ticket-layout{display:grid;gap:1.25rem;background:var(--bg-page);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.recipe-meal-strip+.recipe-ticket-layout{border-top-left-radius:0;border-top-right-radius:0}@media(min-width:1024px){.recipe-ticket-layout{grid-template-columns:248px minmax(0,1fr);gap:0}}.recipe-spec-rail{background:var(--bg-surface)}.recipe-spec-rail-inner{display:flex;flex-direction:column;gap:.9rem}@media(min-width:1024px){.recipe-spec-rail{padding:1.1rem;border-right:1px solid var(--border-default)}.recipe-spec-rail-inner{position:sticky;top:5rem}}.spec-details-toggle,.recipe-inline-scale{display:none}@media(max-width:1023px){.recipe-spec-rail{padding:.85rem 1rem 0;background:transparent}.recipe-inline-scale{display:block}.recipe-inline-scale .spec-block--scale{display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;border:1px solid var(--border-default);border-radius:10px;background:var(--bg-surface)}.recipe-inline-scale .spec-label{margin:0;white-space:nowrap}.recipe-inline-scale .scale-controls--rail{flex:1}.recipe-spec-rail-inner .spec-block--scale{display:none}.spec-details-toggle{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;padding:.6rem .85rem;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;cursor:pointer}.recipe-spec-rail.is-expanded .spec-details-toggle{border-radius:10px 10px 0 0}.spec-summary{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.spec-summary-rating{display:inline-flex;color:var(--rating)}.spec-summary-rating .material-icons{font-size:1rem}.spec-summary-item{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.8rem;font-weight:700;color:var(--text-strong)}.spec-summary-item .material-icons{color:var(--text-muted)}.spec-details-label{display:inline-flex;align-items:center;gap:.1rem;font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.spec-details-chevron{font-size:1.1rem;transition:transform .2s ease}.recipe-spec-rail.is-expanded .spec-details-chevron{transform:rotate(180deg)}.recipe-spec-rail-inner{display:none;gap:.65rem;padding:.85rem;border:1px solid var(--border-default);border-top:none;border-radius:0 0 10px 10px;background:var(--bg-surface)}.recipe-spec-rail.is-expanded .recipe-spec-rail-inner{display:flex}}.recipe-cook-column{min-width:0;display:flex;flex-direction:column;gap:1.25rem;padding:1rem;background:var(--bg-page)}@media(min-width:1024px){.recipe-cook-column{padding:1.1rem 1.4rem 1.4rem;background:var(--bg-page)}}.recipe-meal-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:46px;margin-bottom:0;padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-bottom:none;background:var(--bg-subtle)}.recipe-meal-strip-scroll{display:flex;align-items:center;gap:var(--space-2);min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.recipe-meal-strip-scroll::-webkit-scrollbar{display:none}.recipe-meal-strip-label{flex:none;margin-right:var(--space-1);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase}.recipe-meal-pill,.recipe-meal-pill-add{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface)}.recipe-meal-pill{color:var(--text-muted);font-size:var(--fs-sm)}.recipe-meal-pill.is-active{border-color:var(--accent);color:var(--text-strong);font-weight:var(--fw-semibold)}.recipe-meal-pill-dot{width:8px;height:8px;border-radius:999px;background:var(--meal-cat-color);flex:none}.recipe-meal-pill-text{white-space:nowrap}.recipe-meal-pill-add{justify-content:center;width:30px;padding:0;border-style:dashed;color:var(--text-faint)}.recipe-meal-pass-cta{flex:none;background:#16201a;color:#fff;border-color:#16201a;border-radius:7px;min-height:32px}.recipe-meal-pass-cta:hover{background:#1f2a24;border-color:#1f2a24}.recipe-ticket-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:var(--control-sm);margin-bottom:.6rem}.back-link--toolbar{flex-shrink:0}.spec-block{border:1px solid var(--border-default);border-radius:7px;background:var(--bg-surface);padding:.8rem}.spec-block--times{border:none;background:transparent;padding:0}.spec-block--scale,.spec-block--nutrition,.spec-block--tags{border:none;background:transparent}.spec-block--source{border:none;background:transparent;padding:0}.spec-label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.45rem}.spec-table{overflow:hidden;border-radius:7px;border:1px solid var(--border-subtle)}.spec-row{display:flex;justify-content:space-between;align-items:center;padding:.65rem .75rem;border-bottom:1px solid var(--border-subtle)}.spec-row:last-child{border-bottom:none}.spec-key{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.spec-value{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;color:var(--text-strong)}.spec-value--active{color:var(--accent-strong)}.spec-value--passive{color:var(--time-passive-text)}.spec-block--ready{display:flex;justify-content:space-between;align-items:center;gap:.75rem;border-style:dashed}.ready-by-copy{flex:1}.ready-by-copy input[type=time]{width:100%;border:none;padding:0;background:transparent;font-family:var(--font-mono);font-size:.92rem;font-weight:700;color:var(--text-strong)}.recipe-hero-card{position:relative}.recipe-gallery{margin-bottom:0}.recipe-hero{margin:0;overflow:hidden;border-radius:10px}.recipe-detail-img{width:100%;height:220px;object-fit:cover;cursor:pointer;transition:transform .4s ease}@media(min-width:768px){.recipe-detail-img{height:300px}}.recipe-hero:hover .recipe-detail-img{transform:scale(1.02)}.recipe-gallery-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:.5rem;margin-top:.5rem}.recipe-gallery-thumb{width:100%;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;border:2px solid transparent;opacity:.7;transition:opacity .2s,border-color .2s}.recipe-gallery-thumb:hover{opacity:1}.recipe-gallery-thumb.active{border-color:var(--color-primary);opacity:1}.recipe-hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:1.25rem;background:linear-gradient(to top,#0c140fd1,#0c140f00);border-radius:0 0 10px 10px}.recipe-hero-overlay h1{margin:0;color:var(--text-on-dark);font-size:var(--fs-title)}.recipe-hero-eyebrow{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-bright);margin-bottom:.45rem}.recipe-empty-hero{min-height:140px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);overflow:hidden;padding:var(--space-6);border:1px solid var(--border-default);border-radius:10px;background:var(--bg-subtle)}.recipe-empty-hero-copy{min-width:0}.recipe-empty-hero .recipe-hero-eyebrow{color:var(--clay-text)}.recipe-empty-hero h1{max-width:24ch;margin:0}.recipe-empty-hero-icon{flex:none;color:var(--border-strong);font-size:clamp(3.5rem,8vw,5.5rem);opacity:.55}.recipe-mobile-title-block{display:none}.recipe-detail h1{font-size:var(--fs-title);margin-bottom:.5rem}.recipe-description{color:var(--color-text-body);margin-bottom:.5rem;font-size:1rem;line-height:1.6;max-width:40rem}.recipe-description-wrap{margin-bottom:0}@media(max-width:1023px){.recipe-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.recipe-description-wrap.expanded .recipe-description{display:block}}.recipe-desc-toggle{display:none}@media(max-width:1023px){.recipe-desc-toggle{display:inline-block;background:none;border:none;padding:0;font-size:.875rem;font-weight:600;color:var(--color-primary);cursor:pointer;font-family:var(--font-body)}}.recipe-section{margin-top:0}.recipe-section-heading{display:flex;align-items:center;gap:.75rem;margin-bottom:.8rem}.recipe-section h2{font-size:1.15rem;margin:0;color:var(--color-text-dark)}.recipe-section-rule{flex:1;height:1px;background:var(--border-default)}.ingredient-mode-label{display:flex;align-items:center;gap:.35rem;color:var(--color-text-body);font-size:.75rem;white-space:nowrap}.ingredient-mode-label select{padding:.25rem .4rem;border:1px solid var(--border-default);border-radius:5px;background:var(--bg-surface);color:var(--color-text-dark);font:inherit}.ingredient-list{list-style:none;padding:0}.ingredient-item{display:grid;grid-template-columns:1.25rem minmax(3.5rem,auto) 1fr;align-items:start;column-gap:.75rem;padding:.55rem 0;border-bottom:1px solid var(--border-subtle);font-size:.95rem;cursor:pointer;user-select:none}.ingredient-check{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid var(--color-green);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-surface);transition:all .2s ease}.ingredient-item:hover .ingredient-check{background:var(--color-green-light)}.ingredient-checkmark{display:none;color:var(--text-on-accent);font-size:.7rem;line-height:1}.ingredient-item.completed .ingredient-check{background:var(--color-green);border-color:var(--color-green)}.ingredient-item.completed .ingredient-checkmark{display:block}.ingredient-measure{display:flex;align-items:baseline;gap:.25rem}.ingredient-text{display:block;transition:opacity .25s ease}.ingredient-item.completed .ingredient-text,.ingredient-item.completed .ingredient-measure{opacity:.4;text-decoration:line-through}@media(min-width:768px){.ingredient-text{max-height:10rem;overflow:hidden;transition:max-height .35s ease,opacity .25s ease}.ingredient-item.completed .ingredient-text{max-height:1.6em}}.ingredient-amount{font-weight:700;color:var(--color-text-dark);font-family:var(--font-measure);font-variant-numeric:tabular-nums;min-width:2.8rem}.ingredient-unit,.ingredient-name{color:var(--color-text-body)}.ingredient-group-header{font-size:var(--fs-label);font-weight:700;color:var(--accent);margin-top:1.5rem;margin-bottom:.5rem;font-family:var(--font-mono);letter-spacing:var(--ls-label);text-transform:uppercase}.ingredient-group-header:first-child{margin-top:0}.scale-controls{display:flex;align-items:center;gap:.35rem;margin-bottom:0;color:var(--color-text-body);flex-wrap:wrap}.scale-btn{padding:.28rem .5rem;border:1px solid var(--border-default);border-radius:5px;background:var(--bg-surface);cursor:pointer;font-size:.75rem;font-family:var(--font-mono);font-weight:700;transition:all .2s ease}.scale-btn:hover{background:var(--color-cream);border-color:var(--color-primary)}.scale-btn.active{background:var(--color-primary);color:var(--text-on-accent);border-color:var(--color-primary)}.scale-custom-input{width:100%;max-width:6rem;padding:.28rem .5rem;border:1px solid var(--border-default);border-radius:5px;background:var(--bg-surface);font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-body);text-align:center;outline:none}.scale-custom-input:focus{border-color:var(--color-primary)}.recipe-variant-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:0;padding:0;background:transparent;border:none;flex-wrap:wrap}.recipe-variant-label{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;color:var(--text-muted);white-space:nowrap;letter-spacing:.12em;text-transform:uppercase}.recipe-variant-tabs{display:flex;gap:.35rem;flex-wrap:wrap}.recipe-variant-tab{padding:.28rem .5rem;border:1px solid var(--border-default);border-radius:5px;background:var(--bg-surface);cursor:pointer;font-size:.75rem;font-family:var(--font-mono);font-weight:700;color:var(--color-text-body);transition:all .2s ease}.recipe-variant-tab.active{background:var(--color-primary);color:var(--text-on-accent);border-color:var(--color-primary)}.variant-tabs{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--border-default)}.variant-tab{padding:.5rem .75rem;border:none;background:none;cursor:pointer;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.variant-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag{display:inline-flex;align-items:center;min-height:var(--control-sm);padding:0 var(--space-3);background:var(--bg-subtle);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.04em;color:var(--text-secondary);border:1px solid var(--border-subtle)}.tag-clickable{cursor:pointer}.recipe-rating-card{display:flex;align-items:flex-start;gap:.55rem;padding:0;margin-top:0;background:transparent;border:none;flex-wrap:wrap}.recipe-status-pill{display:inline-flex;align-items:center;gap:.3rem;min-height:28px;padding:0 .55rem;border-radius:6px;border:1px solid var(--border-default);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.recipe-status-pill.is-cooked{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-strong)}.rating-stars{display:inline-flex;gap:.1rem}.rating-star{background:none;border:none;padding:.15rem;cursor:pointer;color:var(--rating-empty);line-height:1}.rating-star i{font-size:1rem}.rating-star.filled{color:var(--rating)}.nutrition-card-subtitle{font-size:.8rem;color:var(--color-text-muted);margin-bottom:.75rem}.nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.nutrition-item{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:.5rem;background:var(--color-bg-light);border-radius:6px}.nutrition-value{font-family:var(--font-mono);font-size:.95rem;font-weight:700;color:var(--color-text-dark)}.nutrition-value--accent{color:var(--accent-strong)}.nutrition-label{font-size:.7rem;color:var(--color-text-muted);margin-top:.15rem;text-transform:uppercase;letter-spacing:.05em}.nutrition-card-note{font-size:.75rem;color:var(--color-text-muted);margin-top:.75rem;text-align:left;font-style:italic}.recipe-source{font-size:.8rem;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.service-timeline-card{border:1px solid var(--border-default);border-radius:9px;background:var(--bg-surface);padding:.95rem}.service-timeline-header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.9rem;align-items:flex-start}.service-timeline-summary{display:flex;flex-wrap:wrap;gap:.35rem}.service-timeline-legend{display:inline-flex;flex-wrap:wrap;gap:.8rem;font-size:.72rem;color:var(--text-muted)}.service-timeline-legend-item{display:inline-flex;align-items:center;gap:.3rem}.service-timeline-legend-swatch{width:10px;height:10px;border-radius:2px}.service-timeline-legend-swatch--active{background:var(--time-active-bar)}.service-timeline-legend-swatch--passive{background:var(--time-passive-bar)}.service-timeline-track{position:relative;height:34px;border-radius:6px;background:var(--bg-subtle);overflow:hidden}.service-timeline-segment{position:absolute;top:0;bottom:0;border:none;padding:0;display:flex;align-items:center;justify-content:center;color:var(--text-on-accent);font-family:var(--font-mono);font-size:.68rem;font-weight:700;cursor:pointer}.service-timeline-segment--active{background:var(--time-active-bar)}.service-timeline-segment--passive{background:var(--time-passive-bar);color:var(--text-on-accent)}.service-timeline-segment--idle{background:transparent;border:1px dashed var(--border-default);color:var(--text-muted)}.service-timeline-segment--completed{opacity:.45}.service-timeline-labels{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.service-timeline-label{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--border-default);background:var(--bg-surface);border-radius:99px;padding:.3rem .55rem;cursor:pointer}.service-timeline-name{font-size:.74rem;font-weight:600;color:var(--text-default)}.service-timeline-type{font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.recipe-notes{color:var(--color-text-body);line-height:1.7}.recipe-notes>*:first-child{margin-top:0}.recipe-notes>*:last-child{margin-bottom:0}.recipe-notes p{margin:.75rem 0}.recipe-notes strong{color:var(--color-text-dark)}.recipe-notes ul,.recipe-notes ol{padding-left:1.5rem;margin:.75rem 0}.recipe-notes li{margin:.25rem 0}.recipe-notes a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.recipe-notes code{font-size:.88em;background:var(--color-cream);padding:.15em .4em;border-radius:4px;border:1px solid var(--border-subtle)}.recipe-notes pre{background:var(--color-cream);border:1px solid var(--border-default);border-radius:8px;padding:.75rem 1rem;overflow-x:auto;margin:.75rem 0}.recipe-notes pre code{background:none;border:none;padding:0}.recipe-pass-cta{display:none}@media(max-width:767px){.recipe-detail{padding:0}.recipe-meal-strip{position:sticky;top:54px;z-index:5;align-items:stretch;flex-direction:column;padding:var(--space-2) var(--space-3)}.recipe-meal-pass-cta{width:100%;justify-content:center}.recipe-ticket-layout{border:none;border-radius:0}.recipe-cook-column{padding:.9rem}.recipe-hero-overlay{display:none}.recipe-mobile-title-block{display:block;padding-top:.7rem}.recipe-mobile-title-block h1{margin:0;font-size:1.3rem}.recipe-empty-hero{min-height:0;padding:.9rem 1rem}.recipe-empty-hero h1{font-size:1.3rem}.recipe-empty-hero-icon,.recipe-service-section{display:none}.recipe-pass-cta{position:sticky;bottom:.5rem;display:flex;align-items:center;gap:.7rem;margin-top:.25rem;padding:.8rem .95rem;border-radius:7px;background:#16201a;color:#fff;font-weight:600;box-shadow:var(--shadow-md)}.recipe-pass-cta span{flex:1}}.step-timeline{display:flex;flex-direction:column;gap:.9rem}.step-card{display:grid;grid-template-columns:2.5rem 1fr;gap:.9rem;align-items:start}.step-check{width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--text-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--bg-surface);transition:all .2s ease}.step-check:hover{transform:translateY(-1px)}.step-number{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-sm);color:var(--text-strong)}.step-checkmark{display:none;color:var(--text-on-accent);font-size:1.1rem;line-height:1}.step-card.completed .step-check{background:var(--accent);border-color:var(--accent)}.step-card.completed .step-number{display:none}.step-card.completed .step-checkmark{display:block}.step-content{min-width:0}.step-card.completed .step-content{opacity:.4}.step-card.completed .step-text{text-decoration:line-through}.step-mobile-progress{display:none}.step-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:.35rem}.step-head .step-meta{margin-top:0;margin-left:auto}.step-head--bare{align-items:flex-start;flex-wrap:nowrap;margin-bottom:0}.step-head--bare .step-text{flex:1;min-width:0}.step-name{font-family:var(--font-body);font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-strong)}.step-text{margin:0;line-height:1.6;color:var(--text-default);font-size:var(--fs-base)}.step-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.6rem}.step-group-header{font-size:var(--fs-label);font-weight:var(--fw-semibold);color:var(--text-muted);margin-top:1.5rem;margin-bottom:.35rem;font-family:var(--font-mono);letter-spacing:var(--ls-label);text-transform:uppercase}.step-group-header:first-child{margin-top:0}.step-timing{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;padding:.25rem .55rem;border-radius:99px;background:var(--color-timing-active-bg);color:var(--color-timing-active-text)}.step-timing.passive{background:var(--color-timing-passive-bg);color:var(--color-timing-passive-text)}.step-note{display:block;font-size:var(--fs-xs);color:var(--color-text-muted);font-style:italic;margin-top:.35rem}.ingredient-ref{font-weight:600;color:var(--clay-text);background:var(--clay-surface);border-radius:var(--radius-xs);padding:1px 5px}.ingredient-ref--completed{opacity:.45;text-decoration:line-through}@media(min-width:768px){.step-content{max-height:50rem;overflow:hidden;transition:max-height .35s ease,opacity .25s ease}.step-card.completed .step-content{max-height:1.6em}}@media(max-width:767px){.step-card{position:relative;grid-template-columns:1fr;gap:.6rem;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:11px;padding:.9rem;box-shadow:var(--shadow-card);opacity:1;transition:opacity var(--dur-base) var(--ease-standard)}.step-card--upcoming{opacity:var(--step-upcoming-opacity, .55);box-shadow:none}.step-card.completed{opacity:.45;box-shadow:none}.step-card--current{opacity:1}.step-mobile-progress{display:block;font-family:var(--font-mono);font-size:var(--fs-label-sm);font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:.4rem}.step-check{width:1.9rem;height:1.9rem;position:absolute;top:.9rem;left:.9rem}.step-content{padding-left:2.45rem}.step-name,.step-text{font-size:var(--fs-sm)}}.timeline-section{margin-top:2rem}.timeline-section h2{font-size:1.35rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-border);color:var(--color-text-dark)}.timeline-summary{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.timeline-chip{display:inline-flex;align-items:center;min-height:var(--control-sm);padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em}.timeline-chip--total{background:var(--bg-subtle);border-color:var(--border-subtle);color:var(--text-strong)}.timeline-chip--active{background:var(--time-active-surface);border-color:var(--accent-surface-bd);color:var(--time-active-text)}.timeline-chip--passive{background:var(--time-passive-surface);border-color:var(--border-default);color:var(--time-passive-text)}.timeline-chart{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0}.timeline-group-header{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-top:.5rem;padding-bottom:.2rem;border-bottom:1px solid var(--color-border-light)}.timeline-group-header:first-child{margin-top:0}.timeline-row{display:grid;grid-template-columns:6rem 1fr;gap:.5rem;align-items:center;cursor:pointer}.timeline-row:hover .timeline-bar{filter:brightness(.92)}.timeline-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-track{position:relative;height:1.75rem;background:var(--color-border-light);border-radius:6px;overflow:hidden}.timeline-bar{position:absolute;top:0;height:100%;border-radius:6px;display:flex;align-items:center;justify-content:center;min-width:2.5rem;transition:filter .15s ease}.timeline-bar--active{background:var(--color-timing-active-bg);border:1px solid var(--accent-surface-bd)}.timeline-bar--passive{background:var(--color-timing-passive-bg);border:1px solid var(--border-default);opacity:.85}.timeline-bar--idle{background:transparent;border:1px dashed var(--color-border)}.timeline-row--idle{cursor:default}.timeline-row--idle:hover .timeline-bar{filter:none}.timeline-label--idle{font-style:italic;font-weight:400;color:var(--color-text-muted);opacity:.7}.timeline-bar-text{font-size:.65rem;font-weight:700;white-space:nowrap;color:var(--color-text-dark)}.timeline-row--idle .timeline-bar-text{color:var(--color-text-muted);font-weight:500}.timeline-legend{display:flex;gap:1.25rem;font-size:.8rem;margin-top:.75rem;color:var(--color-text-body)}.timeline-legend-active:before,.timeline-legend-passive:before{content:"";display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:.4rem;vertical-align:middle}.timeline-legend-active:before{background:var(--color-timing-active-bg);border:1px solid var(--accent-surface-bd)}.timeline-legend-passive:before{background:var(--color-timing-passive-bg);border:1px solid var(--border-default)}.timeline-row--completed .timeline-bar{opacity:.4}.timeline-row--completed .timeline-bar:after{content:"\2713";position:absolute;right:.3rem;font-size:.7rem;font-weight:700;color:var(--color-text-dark)}.timeline-row--completed .timeline-label{text-decoration:line-through;opacity:.5}@keyframes step-highlight{0%{box-shadow:0 0 0 3px var(--color-primary)}to{box-shadow:0 0 0 0 transparent}}.step-card--highlight{animation:step-highlight 1.5s ease-out}.timeline-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.85rem}.timeline-controls label{display:flex;align-items:center;gap:.35rem;font-weight:500;color:var(--color-text-body)}.timeline-controls input[type=time]{padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:6px;font-size:.85rem;background:var(--color-bg-white)}.mp-timeline-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem;flex-shrink:0;vertical-align:middle}.mp-timeline-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;font-size:.8rem;color:var(--color-text-body)}.mp-timeline-legend-item{display:flex;align-items:center;gap:0}.mp-timeline-recipe-tag{display:inline-block;font-size:.6rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;color:var(--text-on-accent);margin-right:.3rem;vertical-align:middle}.mp-timeline-color-0{background:var(--c-cat-green)}.mp-timeline-color-1{background:var(--c-cat-amber)}.mp-timeline-color-2{background:var(--c-cat-cyan)}.mp-timeline-color-3{background:var(--c-cat-clay)}.mp-timeline-color-4{background:var(--c-cat-green)}.mp-timeline-color-5{background:var(--c-cat-amber)}.mp-gantt{display:flex;flex-direction:column;gap:.35rem;margin:.5rem 0}.mp-gantt-track{position:relative;height:2rem}.mp-gantt-bar{position:absolute;top:0;height:100%;border-radius:6px;display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;min-width:3rem;overflow:hidden;color:var(--text-on-accent);font-size:.75rem;cursor:default;box-sizing:border-box}.mp-gantt-color-0{background:var(--c-cat-green)}.mp-gantt-color-1{background:var(--c-cat-amber);color:var(--text-strong)}.mp-gantt-color-2{background:var(--c-cat-cyan)}.mp-gantt-color-3{background:var(--c-cat-clay)}.mp-gantt-color-4{background:var(--c-cat-green)}.mp-gantt-color-5{background:var(--c-cat-amber);color:var(--text-strong)}.mp-gantt-bar--passive{opacity:.6;border:1.5px dashed rgba(255,255,255,.5)}.mp-gantt-bar--idle{background:transparent;border:1.5px dashed var(--color-border);color:var(--color-text-muted)}.mp-gantt-bar-label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.mp-gantt-bar-dur{font-weight:500;white-space:nowrap;flex-shrink:0;margin-left:.5rem;font-size:.7rem;opacity:.9}.mp-timeline-step-list{display:flex;flex-direction:column;gap:.5rem}.mp-timeline-step-card{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:8px;background:var(--color-bg-white);border-left:4px solid var(--color-border)}.mp-timeline-step-card .step-meta{flex:1;min-width:0}.mp-timeline-step-card .step-meta .step-name{font-weight:600;font-size:.85rem;color:var(--color-text-dark)}.mp-timeline-step-card .step-meta .step-text{font-size:.8rem;color:var(--color-text-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-timeline-idle-divider{text-align:center;padding:.5rem 0;font-size:.8rem;font-style:italic;color:var(--color-text-muted)}#mp-timeline-container{margin:1rem 0;padding:1rem;background:var(--color-cream);border-radius:8px}#mp-timeline-container h2{font-size:1.2rem;margin-bottom:.75rem}.mp-timeline-mobile{display:none}@media(max-width:767px){.timeline-chart{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.5rem}.timeline-chart>*{min-width:20rem}.timeline-summary{flex-shrink:0}.mp-timeline-desktop{display:none}.mp-timeline-mobile{display:block}}.meal-plan-hero{display:grid;gap:var(--space-4);padding:var(--space-5);margin-bottom:var(--space-5);border-radius:var(--radius-xl);border:1px solid var(--border-default);background:radial-gradient(circle at top right,color-mix(in srgb,var(--clay) 16%,transparent),transparent 32%),linear-gradient(180deg,var(--bg-surface),var(--bg-subtle));box-shadow:var(--shadow-sm)}.meal-plan-hero--list{grid-template-columns:minmax(0,1fr) auto;align-items:end}.meal-plan-hero-copy{display:grid;gap:var(--space-3)}.meal-plan-hero-copy p{max-width:62ch;color:var(--text-secondary)}.meal-plan-cta{justify-self:start}.meal-plan-grid{align-items:stretch}.meal-plan-card{min-height:100%}.meal-plan-card-media{position:relative;padding:var(--space-3);background:linear-gradient(180deg,var(--bg-subtle),transparent)}.meal-plan-thumbs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(88px,1fr));gap:2px;min-height:182px;overflow:hidden;border-radius:calc(var(--radius-lg) - 2px);background:var(--border-subtle)}.meal-plan-thumb{width:100%;height:100%;min-width:0;object-fit:cover}.meal-plan-thumb.placeholder{display:grid;place-items:end start;padding:var(--space-3);background:linear-gradient(135deg,var(--bg-subtle),var(--clay-surface))}.meal-plan-thumb--empty{grid-column:1 / -1}.meal-plan-thumb-label{display:inline-flex;align-items:center;min-height:26px;padding:0 var(--space-2);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--bg-surface) 88%,transparent);border:1px solid var(--border-subtle);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.meal-plan-card-count{position:absolute;top:calc(var(--space-3) + var(--space-2));left:calc(var(--space-3) + var(--space-2));z-index:1;display:inline-flex;align-items:center;min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text-strong) 82%,transparent);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.meal-plan-card-body{gap:var(--space-4)}.meal-plan-card .recipe-card-desc{-webkit-line-clamp:2}.meal-plan-card-list{display:grid;gap:var(--space-2)}.meal-plan-card-list-item,.meal-plan-card-list-more{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0;font-size:var(--fs-sm);color:var(--text-secondary)}.meal-plan-card-list-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meal-plan-card-list-item--empty,.meal-plan-card-list-more{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.meal-plan-card-list-dot{width:8px;height:8px;border-radius:999px;flex:none;background:var(--meal-cat-color)}.meal-plan-detail{display:grid;gap:var(--space-5)}.meal-plan-summary-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.meal-plan-summary-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-surface) 72%,transparent);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.meal-plan-summary-chip--accent{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--time-active-text)}.meal-plan-hero-actions{display:flex;flex-wrap:wrap;align-items:start;justify-content:flex-start;gap:var(--space-2)}.meal-plan-notes-card{margin:0;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.meal-plan-timeline-panel{padding:var(--space-5);background:linear-gradient(180deg,var(--bg-subtle),var(--bg-surface));border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.meal-plan-recipes-section{display:grid;gap:var(--space-4)}.meal-plan-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-3)}.meal-plan-section-heading h2{font-size:clamp(1.5rem,2vw,1.9rem)}.meal-plan-recipe-grid{align-items:stretch}.mp-editor{margin-top:1.5rem}.mp-editor label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.25rem;margin-top:1.25rem}.mp-editor label:first-child{margin-top:0}.mp-name-input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;font-family:var(--font-body)}.label-hint{font-weight:400;color:var(--color-text-muted);font-size:.8rem}.mp-notes-input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;font-family:var(--font-body);resize:vertical}.mp-search-container{position:relative}.mp-search-input{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:8px;font-size:.9rem;font-family:var(--font-body)}.mp-search-results{position:absolute;top:100%;left:0;right:0;background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:0 0 8px 8px;max-height:300px;overflow-y:auto;z-index:50}.mp-search-results:empty{display:none}.mp-search-result{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;cursor:pointer;font-size:.9rem;transition:background .15s}.mp-search-result:hover{background:var(--color-cream)}.mp-search-result.disabled{opacity:.5;cursor:default}.mp-search-result.disabled:hover{background:none}.mp-search-result-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}.mp-search-result-thumb.placeholder{background:var(--color-border-light)}.mp-search-added{margin-left:auto;font-size:.75rem;color:var(--color-text-muted)}.mp-search-empty{padding:.75rem;font-size:.85rem;color:var(--color-text-muted);text-align:center}.mp-selected-recipes{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.mp-selected-recipe{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--color-cream);border:1px solid var(--color-border);border-radius:10px}.mp-selected-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;flex-shrink:0}.mp-selected-thumb.placeholder{background:var(--color-border-light)}.mp-selected-title{flex:1;font-size:.9rem;font-weight:500}.mp-empty-hint{color:var(--color-text-muted);font-size:.85rem;padding:1rem 0}.mp-editor-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}#mp-timeline-toggle{background:#16201a;color:#fff;border-color:#16201a;border-radius:7px;min-height:32px}#mp-timeline-toggle:hover{background:#1f2a24;border-color:#1f2a24}@media(max-width:767px){.meal-plan-hero,.meal-plan-hero--list{grid-template-columns:1fr}.meal-plan-hero{padding:var(--space-4)}.meal-plan-thumbs{min-height:164px}.meal-plan-timeline-panel{padding:var(--space-4)}.meal-plan-section-heading{align-items:start}}.pass-shell{display:grid;gap:var(--space-5);min-height:calc(100vh - 7.5rem);padding:var(--space-4);background:var(--bg-page);color:var(--text-strong)}body.pass-active header{display:none}body.pass-active #app{max-width:none;margin:0;padding:0}body.pass-active .pass-shell{min-height:100dvh}.pass-shell-bar{display:grid;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default);border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--bg-page)}.pass-shell-exit{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-lg);padding:0 var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-subtle);color:var(--text-secondary);font-weight:var(--fw-semibold)}.pass-shell-exit:hover{color:var(--text-strong)}.pass-shell-title-block{display:grid;gap:var(--space-1)}.pass-shell-title-block h1{margin:0;font-size:var(--fs-lg)}.pass-shell-kicker,.pass-shell-section-heading,.pass-shell-panel-kicker{font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase}.pass-shell-kicker{color:var(--text-faint)}.pass-shell-statuses{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-start}.pass-shell-status{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.pass-shell-status strong{color:var(--text-strong);font-weight:var(--fw-bold)}.pass-shell-status-button{cursor:pointer}.pass-shell-status-button.is-active{border-color:var(--accent-bright);color:var(--text-strong)}.pass-shell-status-button.is-disabled{opacity:.72;cursor:not-allowed}.pass-shell-layout{display:grid;gap:0;min-height:0;border:1px solid var(--border-default);border-radius:0 0 var(--radius-2xl) var(--radius-2xl);overflow:hidden;background:var(--bg-page)}.pass-shell-sidebar,.pass-shell-main{min-width:0}.pass-shell-sidebar{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:var(--space-4);padding:var(--space-4);border-right:1px solid var(--border-default);background:var(--bg-surface-sunken)}.pass-shell-section-heading{color:var(--text-faint)}.pass-shell-sidebar-header,.pass-shell-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.pass-shell-sidebar-count,.pass-shell-panel-meta{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase}.pass-shell-switcher{display:grid;gap:var(--space-2)}.pass-switcher-card{position:relative;display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-subtle);transition:border-color .16s ease,background-color .16s ease,opacity .16s ease}.pass-switcher-card:before{content:"";position:absolute;inset:var(--space-2) auto var(--space-2) var(--space-2);width:4px;border-radius:var(--radius-pill);background:var(--meal-cat-color)}.pass-switcher-card.is-active{border-color:var(--accent-bright);background:var(--bg-surface)}.pass-switcher-card.is-done{opacity:.72}.pass-switcher-card-title-row{display:flex;align-items:center;gap:var(--space-2);padding-left:var(--space-3)}.pass-switcher-card-dot,.pass-shell-recipe-dot{width:10px;height:10px;border-radius:999px;background:var(--meal-cat-color);flex:none}.pass-switcher-card-title{color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-base);font-weight:var(--fw-bold)}.pass-switcher-card-meta,.pass-shell-recipe-count{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label)}.pass-switcher-progress{display:flex;gap:var(--space-1);padding-left:var(--space-3)}.pass-switcher-progress-segment{flex:1;height:4px;border-radius:var(--radius-pill);background:var(--border-default);opacity:.8}.pass-switcher-progress-segment.is-filled{background:var(--meal-cat-color);opacity:1}.pass-step-rail-list{display:grid;gap:var(--space-2)}.pass-step-rail-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid transparent;border-radius:var(--radius-xl);background:transparent;color:inherit;text-align:left;cursor:pointer;opacity:.6}.pass-step-rail-item.is-current{border-color:var(--accent-bright);background:var(--bg-subtle);opacity:1}.pass-step-rail-item.is-done{opacity:.82}.pass-step-rail-item.is-done .pass-step-rail-badge{border:1px solid color-mix(in srgb,var(--accent-bright) 60%,transparent);background:transparent;color:var(--accent-bright)}.pass-step-rail-badge{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:var(--radius-pill);background:var(--border-default);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold);flex:none}.pass-step-rail-item.is-current .pass-step-rail-badge{background:var(--accent-bright);color:var(--bg-page)}.pass-step-rail-copy{display:grid;gap:.125rem;min-width:0}.pass-step-rail-name{color:var(--text-strong);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.pass-step-rail-meta{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label-sm);text-transform:uppercase}.pass-current-step{display:grid;gap:var(--space-4);min-height:100%;align-content:center}.pass-current-step--done{align-content:center}.pass-current-step-head{display:flex;align-items:flex-start;gap:var(--space-3)}.pass-current-step-head h3{margin:0;color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-cook);line-height:1;letter-spacing:var(--ls-tight)}.pass-current-step-number{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--accent-bright);color:var(--bg-page);font-family:var(--font-display);font-size:var(--fs-title);font-weight:var(--fw-bold);flex:none}.pass-current-step-kicker{display:block;margin-bottom:var(--space-1);color:var(--accent-bright);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase}.pass-current-step-summary{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pass-current-step-text,.pass-current-step-note{margin:0;max-width:29ch;line-height:1.4;text-wrap:pretty}.pass-current-step-text{color:color-mix(in srgb,var(--text-strong) 92%,transparent);font-size:var(--fs-cook);font-weight:var(--fw-medium)}.pass-current-step-highlight{color:var(--clay-text);font-weight:var(--fw-bold)}.pass-current-step-note{color:var(--text-faint)}.pass-current-step-chip{display:inline-flex;align-items:center;justify-self:start;gap:var(--space-1);padding:.375rem .625rem;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-subtle);color:var(--accent-bright);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase}.pass-current-step-summary-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.375rem .625rem;border-radius:var(--radius-lg);background:var(--bg-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold)}.pass-current-step-ingredients{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pass-ingredient-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.625rem;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-subtle);color:var(--text-secondary);font:inherit;cursor:pointer}.pass-ingredient-chip.is-checked{border-color:color-mix(in srgb,var(--accent-bright) 60%,transparent);color:var(--text-strong)}.pass-ingredient-chip .material-icons{color:var(--accent-bright)}.pass-ingredient-chip-measure{color:var(--text-faint);font-family:var(--font-measure);font-variant-numeric:tabular-nums;font-size:var(--fs-label);font-weight:var(--fw-bold)}.pass-ingredient-chip-name{font-size:var(--fs-md);font-weight:var(--fw-semibold)}.pass-up-next{display:none}.pass-up-next-label{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label-sm);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase}.pass-up-next-list{display:grid;gap:var(--space-2)}.pass-up-next-item{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-default);opacity:var(--pass-up-next-opacity, .5)}.pass-up-next-number{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-lg);background:var(--border-default);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-bold);flex:none}.pass-up-next-copy{color:var(--text-secondary);font-size:var(--fs-sm)}.pass-current-step-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto}.pass-step-nav-button{min-height:var(--control-xl);padding:0 var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-subtle);color:var(--text-secondary);font:inherit;font-weight:var(--fw-semibold);cursor:pointer}.pass-step-nav-button[disabled]{opacity:.48;cursor:not-allowed}.pass-step-nav-button--primary{border-color:var(--accent-bright);background:var(--accent-bright);color:var(--bg-page)}.pass-shell-main{display:grid;gap:var(--space-4);padding:var(--space-4)}.pass-shell-recipe-header,.pass-shell-panel,.pass-shell-alert{border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-surface)}.pass-shell-recipe-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4)}.pass-shell-recipe-header h2{margin:0;color:var(--text-strong)}.pass-shell-current-layout{display:grid;gap:var(--space-4);min-height:min(38rem,calc(100vh - 18rem))}.pass-shell-panel{display:grid;gap:var(--space-3);align-content:start;padding:var(--space-4)}.pass-shell-panel--timers{min-height:0;overflow:hidden}.pass-timer-stack{display:grid;gap:var(--space-3);max-height:100%;overflow:auto;padding-right:var(--space-1)}.pass-timer-card,.pass-timer-row{border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-surface)}.pass-timer-card{display:grid;gap:var(--space-3);padding:var(--space-3)}.pass-timer-card--running{border-color:color-mix(in srgb,var(--accent-bright) 40%,var(--border-default))}.pass-timer-card-topline,.pass-timer-row-recipe,.pass-timer-row-step{display:block}.pass-timer-card-recipe,.pass-timer-row-recipe{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label-sm);letter-spacing:var(--ls-label);text-transform:uppercase}.pass-timer-card-step,.pass-timer-row-step{margin-top:var(--space-1);color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.pass-timer-card-body{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.pass-timer-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;flex:none}.pass-timer-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.pass-timer-ring-track,.pass-timer-ring-progress{fill:none;stroke-width:5}.pass-timer-ring-track{stroke:color-mix(in srgb,var(--accent-bright) 18%,transparent)}.pass-timer-ring-progress{stroke:var(--accent-bright);stroke-linecap:round}.pass-timer-ring span,.pass-timer-row-countdown{color:var(--text-strong);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-bold)}.pass-timer-card-controls,.pass-timer-row-right{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.pass-timer-control{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:2.5rem;padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-subtle);color:var(--text-secondary);font:inherit;font-size:var(--fs-xs);font-weight:var(--fw-semibold);cursor:pointer}.pass-timer-control--primary{border-color:color-mix(in srgb,var(--accent-bright) 48%,transparent);background:var(--accent);color:var(--text-strong)}.pass-timer-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3)}.pass-timer-row--passive{border-color:var(--border-default)}.pass-timer-row--passive .pass-timer-row-countdown{color:var(--accent-bright);animation:pass-timer-pulse 1.6s infinite}.pass-timer-row--soon{border-color:color-mix(in srgb,var(--c-cat-amber) 38%,var(--border-default));background:color-mix(in srgb,var(--c-cat-amber) 10%,var(--bg-surface))}.pass-timer-row--soon .pass-timer-row-countdown{color:var(--c-cat-amber)}.pass-timer-row--done{opacity:.82}.pass-step-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.pass-step-nav-button--timer-active{border-color:color-mix(in srgb,var(--accent-bright) 48%,transparent);color:var(--accent-bright)}.pass-step-nav-button-meta{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-label-sm)}.pass-shell-step-rail,.pass-shell-current-step{min-width:0}.pass-shell-current-step.pass-shell-panel{padding:var(--space-6)}.pass-shell-placeholder{display:grid;gap:var(--space-2);padding:var(--space-4);border:1px dashed var(--border-subtle);border-radius:var(--radius-xl);background:var(--bg-subtle);color:var(--text-secondary)}.pass-shell-placeholder strong{color:var(--text-strong);font-family:var(--font-display);font-size:var(--fs-base)}.pass-shell-placeholder p{margin:0;max-width:58ch;line-height:var(--lh-body)}.pass-shell-placeholder--spacious{min-height:100%;align-content:center}.pass-shell-alert{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--text-secondary);background:var(--bg-page);border-top-color:var(--border-default)}.pass-shell-alert .material-icons{color:var(--c-cat-amber)}@keyframes pass-timer-pulse{0%,to{opacity:1}50%{opacity:.5}}@media(min-width:960px){.pass-shell-bar{grid-template-columns:auto minmax(0,1fr) auto}.pass-shell-layout{grid-template-columns:340px minmax(0,1fr)}.pass-shell-current-layout{grid-template-columns:224px minmax(0,1fr)}}@media(max-width:959px){.pass-shell,.pass-shell-bar{padding:var(--space-3)}.pass-shell-layout{grid-template-columns:minmax(0,1fr)}.pass-shell-sidebar{border-right:0;border-bottom:1px solid var(--border-default)}.pass-shell-current-layout{min-height:auto}.pass-current-step-text,.pass-current-step-note{max-width:none}}@media(max-width:720px){.pass-shell{gap:var(--space-3);min-height:calc(100vh - 6rem);padding:var(--space-2)}.pass-shell-bar,.pass-shell-main,.pass-shell-sidebar{padding:var(--space-3)}.pass-shell-title-block h1{font-size:var(--fs-base)}.pass-shell-statuses{width:100%}.pass-shell-statuses .pass-shell-status:first-child{flex:1}.pass-shell-sidebar{gap:var(--space-3);background:transparent}.pass-shell-sidebar-header,.pass-shell-panel--timers,.pass-shell-alert,.pass-shell-step-rail,.pass-shell-panel-head{display:none}.pass-shell-switcher{grid-auto-flow:column;grid-auto-columns:max-content;overflow-x:auto;padding-bottom:var(--space-1)}.pass-switcher-card{min-width:max-content;padding:.625rem .875rem .625rem 1rem;border-radius:var(--radius-pill);gap:.35rem}.pass-switcher-card-title-row{gap:.5rem;padding-left:0}.pass-switcher-card:before{inset:50% auto auto var(--space-2);width:.5rem;height:.5rem;transform:translateY(-50%);border-radius:var(--radius-pill)}.pass-switcher-card-title{font-size:var(--fs-sm)}.pass-switcher-card-meta{padding-left:0;font-size:.625rem}.pass-switcher-progress{padding-left:0}.pass-shell-main{padding-top:0}.pass-shell-recipe-header{padding:var(--space-3)}.pass-shell-recipe-header h2{font-size:var(--fs-lg)}.pass-shell-current-layout{grid-template-columns:minmax(0,1fr)}.pass-shell-current-step.pass-shell-panel{padding:var(--space-4);background:transparent;border:0}.pass-current-step{gap:var(--space-3)}.pass-current-step-head h3{font-size:1.125rem}.pass-current-step-number{width:2.125rem;height:2.125rem;font-size:var(--fs-h2)}.pass-current-step-summary{order:1}.pass-current-step-text{font-size:1.125rem;line-height:1.45}.pass-current-step-ingredients{display:none}.pass-up-next{display:grid;gap:var(--space-2)}.pass-current-step-actions{display:grid;grid-template-columns:3.25rem minmax(0,1fr);align-items:stretch}.pass-current-step-actions [data-pass-inline-timer]{grid-column:1 / -1}.pass-current-step-actions .pass-step-nav-button{width:100%}.pass-current-step-actions .pass-step-nav-button[data-action=pass-prev-step]{padding:0}.pass-current-step-actions .pass-step-nav-button[data-action=pass-prev-step] .pass-step-nav-button-label{display:none}.pass-current-step-actions [data-pass-inline-timer] .pass-step-nav-button{min-height:var(--tap-min)}.pass-shell-placeholder--spacious{min-height:16rem}}.cal-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:radial-gradient(circle at top right,color-mix(in srgb,var(--accent) 16%,transparent),transparent 34%),linear-gradient(180deg,var(--bg-surface),var(--bg-subtle));box-shadow:var(--shadow-sm)}.cal-header-copy{display:grid;gap:var(--space-3)}.cal-header-copy p{max-width:66ch;color:var(--text-secondary)}.cal-toolbar{display:grid;justify-items:end;gap:var(--space-3)}.cal-controls{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.cal-title{display:inline-flex;align-items:center;justify-content:center;min-height:var(--control-md);padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--border-subtle);background:color-mix(in srgb,var(--bg-surface) 72%,transparent);font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;min-width:220px;text-align:center}.cal-view-toggle{display:flex;gap:var(--space-2)}.cal-view-toggle .btn.active{background:var(--clay);color:var(--text-on-accent);border-color:var(--clay)}.cal-shell{display:grid;gap:var(--space-4)}.cal-frame{display:grid;gap:var(--space-3)}.cal-legend{display:flex;flex-wrap:wrap;gap:var(--space-2)}.cal-legend-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid transparent;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.cal-legend-chip--recipe{background:var(--time-active-surface);border-color:var(--accent-surface-bd);color:var(--time-active-text)}.cal-legend-chip--meal-plan{background:var(--clay-surface);border-color:var(--clay-surface-bd);color:var(--clay-text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--border-default);border-radius:var(--radius-xl);overflow:hidden;background:var(--bg-surface);box-shadow:var(--shadow-sm)}.cal-day-header{padding:var(--space-3);text-align:center;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);background:var(--bg-subtle);border-bottom:1px solid var(--border-default)}.cal-day{min-height:144px;padding:var(--space-3);border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-2);position:relative;background:var(--bg-surface)}.cal-day:nth-child(7n+14){border-right:none}.cal-day--today{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 62%),var(--bg-surface)}.cal-day--outside{background:var(--bg-subtle)}.cal-day-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.cal-day-number{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 var(--space-2);border-radius:999px;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--text-strong);background:var(--bg-subtle);border:1px solid var(--border-subtle)}.cal-day--today .cal-day-number{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.cal-day-mobile-label{display:none;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.cal-day-pass-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.cal-day-pass-link:hover{filter:brightness(.96)}.cal-event{padding:var(--space-2);border-radius:var(--radius-md);font-size:var(--fs-xs);line-height:1.3;display:flex;align-items:flex-start;gap:var(--space-2);overflow:hidden;border:1px solid transparent}.cal-event--recipe{background:var(--time-active-surface);color:var(--time-active-text);border-color:var(--accent-surface-bd)}.cal-event--meal-plan{background:var(--clay-surface);color:var(--clay-text);border-color:var(--clay-surface-bd)}.cal-event-thumb{width:24px;height:24px;border-radius:7px;flex-shrink:0;object-fit:cover}.cal-event-thumb--placeholder{display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--text-strong) 8%,transparent)}.cal-event-thumb--placeholder .material-icons{font-size:14px}.cal-event-body{flex:1;min-width:0;overflow:hidden}.cal-event-kind{display:inline-flex;align-items:center;margin-bottom:.15rem;font-family:var(--font-mono);font-size:10px;font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;opacity:.75}.cal-event-label-text{font-weight:var(--fw-semibold)}.cal-event-link{color:inherit;text-decoration:none;overflow-wrap:anywhere}.cal-event-link:hover{text-decoration:underline}.cal-event-edit{flex-shrink:0;align-self:flex-start;border:none;background:none;color:inherit;cursor:pointer;padding:0;display:flex;align-items:center;opacity:.55;transition:opacity .15s}.cal-event:hover .cal-event-edit{opacity:.9}.cal-event-edit:hover{opacity:1!important}.cal-event-edit .material-icons{font-size:.8rem}.cal-add-btn{margin-top:auto;align-self:flex-end;border:1px dashed var(--border-subtle);background:var(--bg-surface);cursor:pointer;color:var(--text-muted);padding:0 var(--space-2);min-height:28px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;opacity:.78;transition:opacity .15s}.cal-day:hover .cal-add-btn{opacity:1}.cal-add-btn:hover{background:var(--accent-surface);color:var(--time-active-text);border-color:var(--accent-surface-bd)}.cal-agenda{display:grid;gap:var(--space-4)}.cal-agenda-day{overflow:hidden;border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.cal-agenda-day--today{border-color:var(--accent-surface-bd);box-shadow:0 0 0 3px var(--accent-surface)}.cal-agenda-day-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 56%),var(--bg-subtle);border-bottom:1px solid var(--border-default)}.cal-agenda-day-header h2{margin:0;font-family:var(--font-display);font-size:var(--fs-h2);color:var(--text-strong)}.cal-agenda-day-header p{margin:2px 0 0;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.cal-agenda-day--today .cal-agenda-day-header h2:before{content:"";display:inline-block;width:.65rem;height:.65rem;margin-right:var(--space-2);border-radius:var(--radius-pill);background:var(--accent);vertical-align:.08em}.cal-agenda-day-actions{display:flex;align-items:center;gap:var(--space-2)}.cal-agenda-events{display:grid}.cal-agenda-row{grid-template-columns:64px 1fr 150px 76px 92px}.cal-agenda-title{display:inline-block;text-decoration:none}.cal-agenda-title:hover{text-decoration:underline}.cal-agenda-kind{display:inline-flex;align-items:center;min-height:18px;padding:0 var(--space-2);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:10px;font-weight:var(--fw-bold);letter-spacing:.04em;text-transform:uppercase}.cal-agenda-kind--recipe{background:var(--time-active-surface);color:var(--time-active-text)}.cal-agenda-kind--meal-plan{background:var(--clay-surface);color:var(--clay-text)}.cal-agenda-actions{gap:var(--space-2)}.cal-agenda-edit{background:var(--bg-surface);cursor:pointer}.cal-agenda-meal-plan-thumb{color:var(--clay-text);background:var(--clay-surface)}.cal-agenda--empty{border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.cal-agenda-empty-card{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);text-align:center}.cal-agenda-empty-card>.material-icons{font-size:42px;color:var(--accent)}.cal-agenda-empty-card h2{margin:0}.cal-agenda-empty-card p{max-width:46ch;margin:0;color:var(--text-muted)}.cal-type-toggle{display:flex;gap:var(--space-2);margin-bottom:.75rem}.cal-type-toggle .btn.active{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent)}.cal-selected-item{display:flex;align-items:center;gap:.75rem;padding:var(--space-3);background:var(--bg-subtle);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-top:.5rem}.cal-selected-item-thumb{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0}.cal-selected-item-thumb.placeholder{background:var(--border-subtle)}.cal-selected-item-title{flex:1;font-size:.9rem;font-weight:500}.today-schedule{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm)}.today-schedule-header{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between;font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-3)}.today-schedule-header span,.today-schedule-pass{display:inline-flex;align-items:center;gap:var(--space-2)}.today-schedule-pass{min-height:30px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--accent);color:var(--text-on-accent);text-decoration:none}.today-schedule-pass:hover{filter:brightness(.96)}.today-schedule-events{display:flex;flex-wrap:wrap;gap:.5rem}.today-event{display:inline-flex;align-items:center;gap:var(--space-2);min-height:30px;padding:0 var(--space-3);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:.04em;text-decoration:none;border:1px solid transparent;transition:border-color var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}.today-event:hover{transform:translateY(-1px)}.today-event--recipe{background:var(--color-timing-active-bg);color:var(--color-timing-active-text)}.today-event--meal-plan{background:var(--clay-surface);border-color:var(--clay-surface-bd);color:var(--clay-text)}.today-event-label{font-weight:600}.today-event-label:after{content:":";margin-right:.15rem}.today-event-title{font-weight:500}@media(max-width:600px){.cal-header{grid-template-columns:1fr;padding:var(--space-4)}.cal-toolbar{justify-items:stretch}.cal-controls,.cal-view-toggle{justify-content:flex-start}.cal-title{min-width:0;width:100%}.cal-week{grid-template-columns:1fr}.cal-week .cal-day-header{display:none}.cal-week .cal-day{min-height:auto;border-right:none;padding:var(--space-3)}.cal-week .cal-day:before{content:attr(data-day-label);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.25rem}.cal-month-wrapper{overflow:visible}.cal-month{grid-template-columns:1fr;border-radius:0;border-left:none;border-right:none;box-shadow:none}.cal-month .cal-day-header{display:none}.cal-month .cal-day{min-height:128px;border-right:none}.cal-month .cal-day-top{align-items:start;flex-direction:column}.cal-month .cal-day-mobile-label{display:inline}.cal-event-edit{opacity:.72}.cal-agenda-day-header{align-items:flex-start;flex-direction:column;padding:var(--space-4)}.cal-agenda-row{grid-template-columns:56px 1fr 80px}.cal-agenda-row .recipe-row-action{display:flex}.cal-agenda-row .recipe-row-action-btn:first-child{display:none}.cal-add-btn{opacity:1}}.lightbox-backdrop{position:fixed;inset:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:300}.lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius-lg)}.lightbox-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text-on-accent);cursor:pointer;z-index:301;opacity:.7;transition:opacity var(--dur-base) var(--ease-standard);display:flex;align-items:center;justify-content:center}.lightbox-close .material-icons{font-size:var(--space-8)}.lightbox-close:hover{opacity:1}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;color:var(--text-on-accent);padding:var(--space-2) var(--space-4);cursor:pointer;border-radius:var(--radius-sm);z-index:301;transition:background var(--dur-base) var(--ease-standard);display:flex;align-items:center;justify-content:center}.lightbox-prev .material-icons,.lightbox-next .material-icons{font-size:var(--space-8)}.lightbox-prev{left:var(--space-4)}.lightbox-next{right:var(--space-4)}.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff40}.lightbox-counter{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);color:#fff9;font-family:var(--font-mono);font-size:var(--fs-xs)}.modal-backdrop{position:fixed;inset:0;background:#11221a85;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-4);backdrop-filter:blur(10px)}.modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--space-8);width:90%;max-width:480px;max-height:min(90vh,720px);overflow:auto}.modal h2{margin-bottom:var(--space-2);font-family:var(--font-display)}.modal p{color:var(--text-secondary)}.modal label{display:block;font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--space-1)}.modal input[type=url],.modal input[type=text],.modal input[type=date]{width:100%;min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font-body);background:var(--bg-surface);transition:border-color var(--dur-base) var(--ease-standard);margin-bottom:var(--space-4);box-sizing:border-box}.modal input[type=url]:focus,.modal input[type=text]:focus,.modal input[type=date]:focus{outline:none;border-color:var(--accent-surface-bd)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.import-modal{max-width:640px}.import-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:var(--tap-min);min-width:var(--tap-min);height:var(--tap-min);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-subtle);color:var(--text-muted);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}.modal-close:hover{background:var(--accent-surface);border-color:var(--accent-surface-bd);color:var(--accent-text)}.import-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--bg-surface-sunken)}.import-tab{flex:1;min-height:var(--tap-min);padding:0 var(--space-4);border:none;background:none;cursor:pointer;font-size:var(--fs-sm);font-family:var(--font-body);color:var(--text-secondary);border-radius:var(--radius-pill);transition:color var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard)}.import-tab:hover{color:var(--text-strong)}.import-tab.active{color:var(--accent-text);background:var(--accent-surface);box-shadow:inset 0 0 0 1px var(--accent-surface-bd);font-weight:var(--fw-semibold)}.import-panel-copy{margin-bottom:var(--space-4)}.import-panel-copy p{font-size:var(--fs-sm)}.import-textarea{width:100%;min-height:200px;padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font-body);background:var(--bg-subtle);color:var(--text-default);line-height:1.5;resize:vertical;margin-bottom:var(--space-4)}.import-textarea:focus{outline:none;background:var(--bg-surface);border-color:var(--accent-surface-bd)}.import-photo-hint{font-size:var(--fs-xs);color:var(--text-secondary);margin-bottom:var(--space-3)}.import-photo-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),box-shadow var(--dur-base) var(--ease-standard);background:var(--bg-subtle)}.import-photo-zone:hover{border-color:var(--accent-surface-bd);background:var(--accent-surface)}.import-photo-zone.dragover{border-color:var(--accent);background:var(--accent-surface);box-shadow:var(--shadow-sm)}.import-photo-previews{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.import-photo-thumb{position:relative;width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-default)}.import-photo-thumb img{width:100%;height:100%;object-fit:cover}.import-photo-remove{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:none;background:#0009;color:var(--text-on-accent);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .15s}.import-photo-remove .material-icons{font-size:var(--fs-xs)}.import-photo-count{margin-top:var(--space-2);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase}@media(max-width:640px){.modal{width:100%;padding:var(--space-5)}.import-modal-header{gap:var(--space-3)}.import-tabs{display:grid;grid-template-columns:1fr}}.import-photo-thumb:hover .import-photo-remove{opacity:1}.import-photo-count{font-size:var(--fs-xs);color:var(--text-muted);margin-top:var(--space-1)}@media(max-width:600px){.import-photo-remove{opacity:1}}#timer-bar{position:fixed;bottom:0;left:0;right:0;z-index:150;background:var(--text-strong);box-shadow:var(--shadow-md);display:none}@supports (padding: env(safe-area-inset-bottom)){#timer-bar{padding-bottom:env(safe-area-inset-bottom)}}.timer-bar-inner{max-width:var(--container-max);margin:0 auto;padding:var(--space-2) var(--container-padding);display:flex;gap:var(--space-2);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.timer-bar-inner::-webkit-scrollbar{display:none}.timer-pill{display:flex;align-items:center;gap:var(--space-2);min-height:var(--control-sm);padding:0 var(--space-3);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-pill);background:#ffffff14;color:var(--text-on-dark);font-size:var(--fs-xs);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0}.timer-pill-label{font-weight:var(--fw-medium);max-width:120px;overflow:hidden;text-overflow:ellipsis;color:#ffffffd1}.timer-pill-countdown{font-variant-numeric:tabular-nums;font-weight:var(--fw-bold)}.timer-pill-cancel{background:none;border:none;color:#ffffff8f;cursor:pointer;padding:0;display:flex;align-items:center;transition:color .15s}.timer-pill-cancel:hover{color:var(--text-on-dark)}.timer-pill--done{background:var(--accent);border-color:var(--accent);animation:timerPulse 1s ease-in-out 3}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05);box-shadow:var(--shadow-sm)}}body.has-active-timers{padding-bottom:calc(var(--control-xl) + var(--space-3))}@supports (padding: env(safe-area-inset-bottom)){body.has-active-timers{padding-bottom:calc(var(--control-xl) + var(--space-3) + env(safe-area-inset-bottom))}}.is-offline #timer-bar{bottom:2rem}.step-timer-btn{display:inline;padding:0;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--accent-text);font-size:inherit;font-weight:var(--fw-semibold);font-family:inherit;cursor:pointer;margin:0;vertical-align:middle;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em;transition:background var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard)}.step-timer-btn:hover{background:var(--accent-surface);color:var(--accent-text)}.step-timer-btn--active{background:transparent;color:var(--time-active-text);pointer-events:none}@media print{#timer-bar,.step-timer-btn{display:none!important}}.account-shell,.account-grid{display:grid;gap:var(--space-5)}.account-intro{max-width:52ch;color:var(--text-secondary)}.account-section{display:grid;gap:var(--space-4);padding:var(--space-5);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.account-section-heading{display:grid;gap:var(--space-1)}.account-section-heading h2{margin:0}.account-section-heading p{color:var(--text-secondary)}.account-profile-card,.notif-inline-card,.notif-device-item,.notif-target-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface-sunken)}.account-profile-card{align-items:flex-end}.account-profile-label,.notif-device-meta{display:block;margin-bottom:var(--space-1);color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-label);text-transform:uppercase}.account-email{margin:0;font-size:var(--fs-lg);color:var(--text-strong)}.account-logout-btn{display:inline-flex}.notif-card{display:grid;gap:var(--space-4)}.notif-section{display:grid;gap:var(--space-3)}.notif-section-heading{display:grid;gap:var(--space-1)}.notif-section h3{margin:0;font-size:var(--fs-h3)}.notif-section-heading p,.notif-status,.notif-empty{color:var(--text-secondary)}.notif-status{margin:0}.notif-status--enabled{color:var(--time-active-text)}.notif-inline-card{align-items:flex-start}.notif-inline-card strong{display:block;margin-bottom:var(--space-1);color:var(--text-strong)}.notif-inline-card--accent{border-color:var(--accent-surface-bd);background:var(--accent-surface)}.notif-device-list,.notif-target-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-3)}.notif-device-main{display:flex;align-items:flex-start;gap:var(--space-3);flex:1}.notif-device-copy{flex:1}.notif-device-dot{width:10px;height:10px;margin-top:11px;border-radius:50%;background:var(--border-default);flex-shrink:0}.notif-device-dot.active{background:var(--accent)}.notif-device-name{width:100%;min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-default);font-size:var(--fs-sm);font-family:var(--font-body)}.notif-target-toggle{display:flex;align-items:flex-start;gap:var(--space-3);width:100%;cursor:pointer}.notif-target-toggle strong{display:block;color:var(--text-strong)}.notif-target-toggle small{display:block;margin-top:2px;color:var(--text-muted)}#notif-error{margin-top:0}@media(min-width:960px){.account-grid{grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);align-items:start}}@media(max-width:640px){.account-section,.account-profile-card,.notif-inline-card,.notif-device-item,.notif-target-item{padding:var(--space-4)}.account-profile-card,.notif-inline-card,.notif-device-item{flex-direction:column;align-items:stretch}}@media print{header,.recipe-detail-header,.recipe-detail-actions,.scale-controls,.recipe-variant-selector,.variant-tabs,.related-recipes-section,.timeline-section,.back-link,.tag-clickable,.step-check,.step-connector,#modal-root,.skip-link,.nav-actions,.btn-share,.recipe-gallery-thumbs{display:none!important}body{background:#fff;color:#000;font-size:11pt;line-height:1.5}.recipe-detail{border:none!important;padding:0!important;box-shadow:none!important}.recipe-detail-grid{display:block!important}.recipe-meta-card{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;border:1px solid #ccc;padding:.5rem;page-break-inside:avoid}.recipe-hero,.recipe-detail-img{max-height:250px}.step-card{grid-template-columns:1.5rem 1fr;page-break-inside:avoid}.step-card:before{content:counter(step-print) ".";counter-increment:step-print;font-weight:700}.step-timeline{counter-reset:step-print}a[href]:after{content:none}}.offline-indicator{position:fixed;bottom:0;left:0;right:0;background:var(--color-text-dark);color:#fff;text-align:center;padding:.5rem;font-size:.85rem;font-weight:600;z-index:10000;font-family:var(--font-body)}.update-banner{position:fixed;top:0;left:0;right:0;background:var(--color-primary);color:#fff;text-align:center;padding:.6rem 1rem;font-size:.9rem;font-weight:600;z-index:10000;font-family:var(--font-body)}.update-banner button{background:#fff;color:var(--color-primary);border:none;border-radius:4px;padding:.25rem .75rem;margin-left:.5rem;font-weight:700;cursor:pointer}.is-offline #import-btn,.is-offline .btn-danger,.is-offline .mp-add-btn{opacity:.4;pointer-events:none;cursor:not-allowed}@supports (padding: env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
