:root{--bg-app: oklch(18% .012 80);--bg-surface: oklch(22% .014 80);--bg-elevated: oklch(26% .016 80);--bg-hover: oklch(28% .018 80);--bg-input: oklch(20% .012 80);--border: oklch(32% .014 80);--border-strong: oklch(42% .018 80);--border-subtle: oklch(26% .012 80);--text-primary: oklch(94% .008 80);--text-secondary: oklch(76% .008 80);--text-muted: oklch(58% .01 80);--text-faint: oklch(46% .01 80);--accent: oklch(74% .1 145);--accent-strong: oklch(82% .12 145);--accent-tint: oklch(36% .06 145);--accent-on: oklch(16% .02 145);--danger: oklch(72% .13 28);--danger-tint: oklch(34% .07 28);--warning: oklch(78% .12 78);--warning-tint: oklch(34% .06 78);--cat-brunch: oklch(78% .1 145);--cat-brunch-tint: oklch(32% .05 145);--cat-main: oklch(80% .1 70);--cat-main-tint: oklch(32% .05 70);--cat-snack: oklch(78% .08 295);--cat-snack-tint: oklch(32% .05 295);--cat-side: oklch(80% .09 55);--cat-side-tint: oklch(32% .05 55);--cat-special: oklch(78% .1 28);--cat-special-tint: oklch(32% .06 28);--cat-gebäck: oklch(76% .09 22);--cat-gebäck-tint: oklch(30% .05 22);--timing-morning: oklch(82% .1 75);--timing-brunch: oklch(78% .1 145);--timing-main: oklch(76% .1 245);--timing-evening: oklch(72% .08 285);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display: "Playfair Display", Georgia, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;--nav-width: 256px;--bottom-nav-height: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--shadow-1: 0 1px 2px oklch(8% .01 80 / .4);--shadow-2: 0 4px 12px oklch(8% .01 80 / .35), 0 1px 3px oklch(8% .01 80 / .3);--shadow-3: 0 12px 32px oklch(6% .01 80 / .5), 0 2px 6px oklch(8% .01 80 / .3);--ease: cubic-bezier(.2, .8, .2, 1);--t-fast: .12s;--t-base: .18s;--t-slow: .24s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{background:var(--bg-app)}body{font-family:var(--font-body);color:var(--text-primary);font-size:15px;line-height:1.6;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit}button{font:inherit;color:inherit}img,svg{display:block;max-width:100%}::selection{background:var(--accent-tint);color:var(--text-primary)}.app-layout{display:flex;min-height:100dvh}.app-main{flex:1;margin-left:var(--nav-width);padding:40px 48px;max-width:1280px;margin-right:auto}.navbar{position:fixed;inset:0 auto 0 0;width:var(--nav-width);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:28px 16px 20px;z-index:100;overflow-y:auto}.navbar-logo{display:flex;align-items:center;gap:12px;margin-bottom:36px;padding:0 8px}.navbar-logo-icon{font-size:26px;line-height:1}.navbar-title{font-family:var(--font-body);font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--text-primary);line-height:1.2}.navbar-logo-text span{font-size:12px;color:var(--text-muted);font-weight:400;display:block;margin-top:2px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease);margin-bottom:2px}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:var(--accent-tint);color:var(--accent-strong)}.nav-link-icon{font-size:17px;width:22px;text-align:center;flex-shrink:0}.navbar-footer{margin-top:auto;padding-top:20px;border-top:1px solid var(--border-subtle);font-size:11px;color:var(--text-faint);text-align:center;letter-spacing:.04em}.page-header{margin-bottom:28px}.page-title{font-family:var(--font-body);font-size:26px;font-weight:600;letter-spacing:-.015em;color:var(--text-primary);margin-bottom:6px;line-height:1.2}.page-subtitle{color:var(--text-muted);font-size:14px;max-width:60ch}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease)}.filter-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;align-items:center}.search-input{flex:1;min-width:220px;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font:inherit;font-size:14px;outline:none;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease)}.search-input::placeholder{color:var(--text-faint)}.search-input:focus{border-color:var(--accent);background:var(--bg-surface)}.filter-btn{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:border-color var(--t-base) var(--ease),color var(--t-base) var(--ease),background var(--t-base) var(--ease);white-space:nowrap}.filter-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.filter-btn.active-all,.filter-btn[aria-pressed=true]{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-strong)}.filter-btn.active-brunch{background:var(--cat-brunch-tint);color:var(--cat-brunch);border-color:var(--cat-brunch)}.filter-btn.active-hauptmahlzeit{background:var(--cat-main-tint);color:var(--cat-main);border-color:var(--cat-main)}.filter-btn.active-snack{background:var(--cat-snack-tint);color:var(--cat-snack);border-color:var(--cat-snack)}.filter-btn.active-side{background:var(--cat-side-tint);color:var(--cat-side);border-color:var(--cat-side)}.filter-btn.active-sondermahlzeit{background:var(--cat-special-tint);color:var(--cat-special);border-color:var(--cat-special)}.filter-btn.active-gebäck{background:var(--cat-gebäck-tint);color:var(--cat-gebäck);border-color:var(--cat-gebäck)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.recipe-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-decoration:none;display:block;position:relative;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease),transform var(--t-base) var(--ease)}.recipe-card:hover{border-color:var(--border-strong);background:var(--bg-elevated);transform:translateY(-1px)}.recipe-card-emoji{font-size:36px;line-height:1;margin-bottom:12px;display:block}.recipe-card-category,.cat-badge-brunch,.cat-badge-hauptmahlzeit,.cat-badge-snack,.cat-badge-side,.cat-badge-sondermahlzeit,.cat-badge-gebäck{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}.cat-badge-brunch{background:var(--cat-brunch-tint);color:var(--cat-brunch)}.cat-badge-hauptmahlzeit{background:var(--cat-main-tint);color:var(--cat-main)}.cat-badge-snack{background:var(--cat-snack-tint);color:var(--cat-snack)}.cat-badge-side{background:var(--cat-side-tint);color:var(--cat-side)}.cat-badge-sondermahlzeit{background:var(--cat-special-tint);color:var(--cat-special)}.cat-badge-gebäck{background:var(--cat-gebäck-tint);color:var(--cat-gebäck)}.recipe-card-name{font-family:var(--font-body);font-size:16px;font-weight:600;letter-spacing:-.005em;color:var(--text-primary);margin-bottom:8px;line-height:1.35}.recipe-card-meta{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--text-muted)}.recipe-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.tag{padding:2px 8px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-muted);font-size:11px}.empty-state{text-align:center;padding:64px 20px;color:var(--text-muted)}.empty-state-icon{font-size:48px;margin-bottom:12px;display:block;opacity:.8}.empty-state h3{font-family:var(--font-body);font-size:18px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);text-decoration:none;font-size:13px;font-weight:500;margin-bottom:20px;padding:6px 10px 6px 6px;border-radius:var(--radius-sm);transition:background var(--t-base) var(--ease),color var(--t-base) var(--ease)}.back-link:hover{color:var(--text-primary);background:var(--bg-surface)}.back-link-arrow{width:16px;height:16px;flex-shrink:0;stroke-width:2}.recipe-hero{border-radius:var(--radius-xl);padding:28px 32px;display:flex;align-items:flex-start;gap:24px;margin-bottom:40px;border:1px solid var(--border-subtle);background:var(--bg-surface);position:relative;overflow:hidden}.recipe-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.55;border-radius:inherit}.recipe-hero--brunch:before{background:radial-gradient(120% 100% at 0% 0%,var(--cat-brunch-tint),transparent 70%)}.recipe-hero--hauptmahlzeit:before{background:radial-gradient(120% 100% at 0% 0%,var(--cat-main-tint),transparent 70%)}.recipe-hero--snack:before{background:radial-gradient(120% 100% at 0% 0%,var(--cat-snack-tint),transparent 70%)}.recipe-hero--side:before{background:radial-gradient(120% 100% at 0% 0%,var(--cat-side-tint),transparent 70%)}.recipe-hero--sondermahlzeit:before{background:radial-gradient(120% 100% at 0% 0%,var(--cat-special-tint),transparent 70%)}.recipe-hero-emoji{font-size:64px;line-height:1;flex-shrink:0;position:relative}.recipe-hero-content{flex:1;min-width:0;position:relative}.recipe-detail-title{font-family:var(--font-display);font-size:32px;font-weight:600;letter-spacing:-.01em;line-height:1.15;margin:6px 0 12px;color:var(--text-primary)}.recipe-hero-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--text-secondary);margin-bottom:14px}.recipe-sections{display:grid;grid-template-columns:320px 1fr;gap:48px;margin-bottom:40px;align-items:start}.section-title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.ingredients-list{list-style:none}.ingredient{display:grid;grid-template-columns:14px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-subtle);font-size:14px;color:var(--text-primary);line-height:1.5}.ingredient:last-child{border-bottom:none}.ingredient:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);justify-self:center}.ingredient-divider{grid-column:1 / -1;list-style:none;padding:10px 0 6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);border-top:1px solid var(--border-subtle);margin-top:4px}.ingredient-divider:first-child{border-top:none;margin-top:0}.steps-list{list-style:none}.step-item{display:grid;grid-template-columns:28px 1fr;gap:18px;margin-bottom:22px}.step-item:last-child{margin-bottom:0}.step-number{width:28px;height:28px;border-radius:50%;background:var(--accent-tint);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.step-text{font-size:15px;color:var(--text-secondary);line-height:1.7;max-width:62ch;padding-top:2px}.step-divider{grid-column:1 / -1;height:1px;background:var(--border-subtle);margin:4px 0 18px;list-style:none}.notes-card{background:var(--warning-tint);border:1px solid oklch(50% .08 78);border-radius:var(--radius-lg);padding:18px 22px;display:flex;gap:14px;align-items:flex-start;margin-bottom:32px}.notes-card-icon{font-size:20px;flex-shrink:0;margin-top:2px}.notes-card-text{font-size:14px;color:var(--warning);line-height:1.65;max-width:72ch}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;font-family:var(--font-body);transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease),color var(--t-base) var(--ease);text-decoration:none}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover{background:var(--accent-strong)}.btn-secondary{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{border-color:var(--border-strong);color:var(--text-primary)}.supplements-layout{display:flex;flex-direction:column;gap:20px}.timing-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.timing-group-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.timing-label{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14px;color:var(--text-primary)}.timing-dot{width:8px;height:8px;border-radius:50%}.timing-morning .timing-dot{background:var(--timing-morning)}.timing-brunch .timing-dot{background:var(--timing-brunch)}.timing-main .timing-dot{background:var(--timing-main)}.timing-evening .timing-dot{background:var(--timing-evening)}.supp-table{width:100%;border-collapse:collapse}.supp-table th{padding:10px 20px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);background:transparent;border-bottom:1px solid var(--border-subtle)}.supp-table td{padding:14px 20px;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:top}.supp-table tr:last-child td{border-bottom:none}.supp-name{font-weight:600;color:var(--text-primary);font-size:14px}.supp-dosage{font-family:var(--font-mono);font-size:12.5px;color:var(--accent-strong);background:var(--accent-tint);padding:3px 8px;border-radius:6px;display:inline-block}.supp-notes{font-size:12px;color:var(--text-muted);margin-top:4px;line-height:1.5}.principles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:36px}.principle-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;display:flex;gap:16px;transition:border-color var(--t-base) var(--ease)}.principle-card:hover{border-color:var(--border-strong)}.principle-icon{font-size:26px;flex-shrink:0;line-height:1}.principle-title{font-family:var(--font-body);font-size:15px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.principle-desc{font-size:13px;color:var(--text-secondary);line-height:1.6}.timing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:36px}.timing-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;text-align:center}.timing-card-icon{font-size:28px;margin-bottom:10px}.timing-card-time{font-size:12px;color:var(--text-faint);margin-bottom:4px}.timing-card-meal{font-size:15px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.timing-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.tea-cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.tea-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px;flex:1;min-width:180px}.tea-time{font-size:12px;color:var(--text-faint);margin-bottom:6px}.tea-names{font-weight:600;color:var(--text-primary);font-size:14px;margin-bottom:6px}.tea-desc{font-size:12px;color:var(--text-secondary);line-height:1.5}.tea-note{background:var(--cat-special-tint);border:1px solid oklch(48% .1 28);border-radius:var(--radius-md);padding:12px 16px;font-size:13px;color:var(--cat-special);margin-top:10px;margin-bottom:28px}.zero-prep-list{list-style:none;display:flex;flex-direction:column;gap:8px}.zero-prep-list li{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);font-size:14px;color:var(--text-secondary);transition:border-color var(--t-base) var(--ease),color var(--t-base) var(--ease)}.zero-prep-list li:hover{border-color:var(--border-strong);color:var(--text-primary)}.zero-prep-list li:before{content:"⚡";font-size:14px;flex-shrink:0;opacity:.8}.breathing-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;display:flex;gap:18px;align-items:flex-start}.breathing-icon{font-size:36px;flex-shrink:0}.breathing-title{font-family:var(--font-body);font-size:17px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.breathing-desc{font-size:14px;color:var(--text-secondary);line-height:1.7}.section-row{margin-bottom:36px}.section-row-title{font-family:var(--font-body);font-size:16px;font-weight:600;letter-spacing:-.005em;color:var(--text-primary);margin-bottom:16px;display:flex;align-items:center;gap:12px}.section-row-title:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.pairs-with-grid{display:flex;gap:10px;flex-wrap:wrap}.pairs-with-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:14px;font-weight:500;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease)}.pairs-with-card:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.pairs-with-emoji{font-size:18px}.leftovers-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.leftovers-card{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--accent-tint);border:1px solid oklch(38% .07 145);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:14px;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease)}.leftovers-card:hover{background:#29532b;border-color:var(--accent)}.leftovers-emoji{font-size:20px;line-height:1}.leftovers-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.leftovers-card-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leftovers-card-cat{font-size:12px;color:var(--accent-strong);letter-spacing:.02em}.leftovers-chains{display:flex;flex-direction:column;gap:28px}.leftovers-chain{display:flex;flex-direction:row;align-items:center;gap:0;overflow-x:auto;padding:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.leftovers-chain-step{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.leftovers-chain-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:14px;transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease);white-space:nowrap}.leftovers-chain-card:hover{background:var(--bg-hover);border-color:var(--accent)}.leftovers-chain-emoji{font-size:20px;line-height:1}.leftovers-chain-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.leftovers-chain-card-name{font-weight:600;font-size:14px}.leftovers-chain-card-cat{font-size:11px;color:var(--accent-strong);letter-spacing:.02em;text-transform:uppercase}.leftovers-chain-connector{color:var(--accent);display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0}@media (max-width: 640px){.leftovers-grid{grid-template-columns:1fr}.leftovers-chain{flex-direction:column;align-items:stretch;gap:0;overflow-x:visible}.leftovers-chain-step{flex-direction:row;align-items:center;gap:12px}.leftovers-chain-connector{transform:rotate(90deg);padding:4px 0;align-self:center}}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;min-height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:#191610eb;backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-top:1px solid var(--border);z-index:100;align-items:stretch}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--text-muted);font-size:10.5px;font-weight:500;letter-spacing:.02em;transition:color var(--t-fast) var(--ease);-webkit-tap-highlight-color:transparent;padding:8px 4px;background:none;border:none;cursor:pointer}.bottom-nav-icon{font-size:20px;line-height:1;transition:transform var(--t-base) var(--ease)}.bottom-nav-item.active{color:var(--accent-strong)}.bottom-nav-item.active .bottom-nav-icon{transform:translateY(-1px)}.bottom-nav-lang{font-size:10.5px;font-weight:700;letter-spacing:.06em;line-height:1}.lang-toggle{display:flex;align-items:center;gap:6px;margin-top:18px;padding:7px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-muted);transition:border-color var(--t-base) var(--ease),background var(--t-base) var(--ease);width:fit-content}.lang-toggle:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.lang-option{transition:color var(--t-base) var(--ease);letter-spacing:.06em}.lang-option.lang-active{color:var(--accent-strong)}.lang-divider{color:var(--text-faint);font-weight:300}.skip-link{position:absolute;top:-100px;left:0;background:var(--accent);color:var(--accent-on);padding:8px 16px;z-index:1000;font-weight:600;border-radius:0 0 var(--radius-md) 0;text-decoration:none}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.search-input:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.auth-gate{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg-app);padding:24px}.auth-form{width:100%;max-width:340px;display:flex;flex-direction:column;gap:14px}.auth-header{text-align:center;margin-bottom:8px}.auth-logo{font-size:40px;display:inline-block;margin-bottom:8px}.auth-title{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.auth-subtitle{color:var(--text-muted);font-size:14px}.auth-input{padding:12px 16px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);font:inherit;font-size:16px;outline:none;width:100%;transition:border-color var(--t-base) var(--ease)}.auth-input:focus{border-color:var(--accent)}.auth-input-error{border-color:var(--danger)}.auth-error{color:var(--danger);font-size:13px;text-align:center}.auth-submit{padding:12px;border-radius:var(--radius-md);border:none;background:var(--accent);color:var(--accent-on);font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background var(--t-base) var(--ease)}.auth-submit:hover{background:var(--accent-strong)}.error-boundary{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;color:var(--text-primary)}.error-boundary-icon{font-size:44px;margin-bottom:12px}.error-boundary-title{font-family:var(--font-body);font-size:20px;font-weight:600;margin-bottom:8px}.error-boundary-desc{color:var(--text-muted);font-size:14px;margin-bottom:24px;max-width:40ch}.loader-spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp var(--t-slow) var(--ease) both}.recipe-grid>*{animation:fadeInUp var(--t-slow) var(--ease) both}.recipe-grid>*:nth-child(1){animation-delay:20ms}.recipe-grid>*:nth-child(2){animation-delay:40ms}.recipe-grid>*:nth-child(3){animation-delay:60ms}.recipe-grid>*:nth-child(4){animation-delay:80ms}.recipe-grid>*:nth-child(5){animation-delay:.1s}.recipe-grid>*:nth-child(6){animation-delay:.12s}.recipe-grid>*:nth-child(n+7){animation-delay:.14s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:0ms!important;animation-iteration-count:1!important;transition-duration:0ms!important;scroll-behavior:auto!important}}@media (max-width: 1024px){.recipe-sections{grid-template-columns:1fr;gap:32px}.timing-cards{grid-template-columns:1fr}.app-main{padding:32px}}@media (max-width: 768px){:root{--nav-width: 0px}.navbar{display:none}.bottom-nav{display:flex}.app-main{margin-left:0;padding:20px 16px;padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 24px)}.page-title{font-size:22px}.recipe-grid{grid-template-columns:1fr;gap:12px}.principles-grid{grid-template-columns:1fr}.recipe-hero{flex-direction:column;gap:14px;padding:22px}.recipe-hero-emoji{font-size:48px}.recipe-detail-title{font-size:26px}.recipe-sections{grid-template-columns:1fr;gap:28px}.supp-table th,.supp-table td{padding:10px 14px;font-size:13px}.supp-name{font-size:13px}.timing-group-header{flex-direction:column;align-items:flex-start;gap:4px}}
