:root,[data-theme=light]{--fv-brand:#485643;--fv-brand-light:#5E6E58;--fv-brand-subtle:#EEF2EC;--fv-primary:#3A7D5C;--fv-primary-hover:#2E6549;--fv-primary-subtle:#E6F2EC;--fv-primary-on:#FFFFFF;--fv-accent:#D4763A;--fv-accent-hover:#BE6530;--fv-accent-subtle:#FDF0E8;--fv-accent-on:#FFFFFF;--fv-success:#2D8659;--fv-success-subtle:#E6F5ED;--fv-warning:#C4881D;--fv-warning-subtle:#FEF5E7;--fv-error:#C53D3D;--fv-error-subtle:#FCEAEA;--fv-error-on:#FFFFFF;--fv-info:#3B7FC4;--fv-info-subtle:#E8F1FB;--fv-bg-page:#F8F7F4;--fv-bg-card:#FFFFFF;--fv-bg-elevated:#FFFFFF;--fv-bg-inset:#F1F0EC;--fv-bg-chat-user:#5A9978;--fv-bg-chat-ai:#E6F2EC;--fv-border:#D1CFC9;--fv-border-focus:#3A7D5C;--fv-divider:#E0DED8;--fv-border-width:1px;--fv-border-width-thick:1.5px;--fv-cat-fisch:#1565c0;--fv-cat-fleisch:#b71c1c;--fv-cat-milchprodukte:#e65100;--fv-cat-brot_backwaren:#4e342e;--fv-cat-trockenwaren:#827717;--fv-cat-tiefkuehl:#006064;--fv-cat-gewuerze_oele:#6a1b9a;--fv-cat-getraenke:#00695c;--fv-cat-hygiene:#0097a7;--fv-cat-haushalt:#558b2f;--fv-cat-sonstiges:#546e7a;--fv-text-primary:#1C1C1A;--fv-text-secondary:#5C5C57;--fv-text-tertiary:#9C9C95;--fv-text-inverse:#FFFFFF;--fv-text-link:#3A7D5C;--fv-shadow-sm:0 1px 3px rgba(0,0,0,0.06);--fv-shadow-md:0 4px 12px rgba(0,0,0,0.08);--fv-shadow-lg:0 8px 28px rgba(0,0,0,0.10);--fv-shadow-focus:0 0 0 3px rgba(58,125,92,0.2);--fv-shadow-top-sm:0 -2px 8px rgba(0,0,0,0.04);--fv-shadow-top-md:0 -4px 16px rgba(0,0,0,0.08);--fv-overlay-light:rgba(0,0,0,0.35);--fv-overlay-light-hover:rgba(0,0,0,0.5);--fv-overlay-medium:rgba(0,0,0,0.45);--fv-overlay-medium-hover:rgba(0,0,0,0.65);--fv-overlay-strong:rgba(0,0,0,0.55)}[data-theme=dark]{--fv-brand:#8FA889;--fv-brand-light:#A3B89E;--fv-brand-subtle:#2A2F28;--fv-primary:#6BAF8A;--fv-primary-hover:#82C19E;--fv-primary-subtle:#1E2E25;--fv-primary-on:#0F1A14;--fv-accent:#E8935E;--fv-accent-hover:#F0A878;--fv-accent-subtle:#2E2118;--fv-accent-on:#1A1008;--fv-success:#5CC489;--fv-success-subtle:#162820;--fv-warning:#E4A948;--fv-warning-subtle:#2A2214;--fv-error:#E06B6B;--fv-error-subtle:#2E1818;--fv-error-on:#FFFFFF;--fv-info:#6BAAE0;--fv-info-subtle:#172230;--fv-bg-page:#141413;--fv-bg-card:#1E1E1C;--fv-bg-elevated:#262624;--fv-bg-inset:#1A1A18;--fv-bg-chat-user:#4F8A6A;--fv-bg-chat-ai:#1E2E25;--fv-border:#444440;--fv-border-focus:#6BAF8A;--fv-divider:#363633;--fv-text-primary:#EDECE8;--fv-text-secondary:#A8A8A2;--fv-text-tertiary:#6E6E68;--fv-text-inverse:#141413;--fv-text-link:#6BAF8A;--fv-shadow-sm:0 1px 3px rgba(0,0,0,0.3);--fv-shadow-md:0 4px 12px rgba(0,0,0,0.4);--fv-shadow-lg:0 8px 28px rgba(0,0,0,0.5);--fv-shadow-focus:0 0 0 3px rgba(107,175,138,0.25);--fv-shadow-top-sm:0 -2px 8px rgba(0,0,0,0.25);--fv-shadow-top-md:0 -4px 16px rgba(0,0,0,0.4);--fv-overlay-light:rgba(0,0,0,0.55);--fv-overlay-light-hover:rgba(0,0,0,0.7);--fv-overlay-medium:rgba(0,0,0,0.65);--fv-overlay-medium-hover:rgba(0,0,0,0.8);--fv-overlay-strong:rgba(0,0,0,0.75)}:root{--fv-font-display:"Manrope",sans-serif;--fv-font-body:"Figtree",sans-serif;--fv-text-3xs:0.625rem;--fv-text-2xs:0.6875rem;--fv-text-xs:0.75rem;--fv-text-meta:0.8125rem;--fv-text-sm:0.875rem;--fv-text-card:0.9375rem;--fv-text-base:1rem;--fv-text-md:1.125rem;--fv-text-lg:1.25rem;--fv-text-xl:1.5rem;--fv-text-2xl:1.875rem;--fv-text-3xl:2.25rem;--fv-leading-tight:1.25;--fv-leading-normal:1.5;--fv-leading-relaxed:1.7;--fv-tracking-tight:-0.02em;--fv-tracking-normal:0;--fv-tracking-wide:0.04em;--fv-tracking-caps:0.1em;--fv-space-1:4px;--fv-space-1-5:6px;--fv-space-2:8px;--fv-space-3:12px;--fv-space-4:16px;--fv-space-5:20px;--fv-space-6:24px;--fv-space-8:32px;--fv-space-10:40px;--fv-space-12:48px;--fv-space-16:64px;--fv-radius-sm:6px;--fv-radius-md:10px;--fv-radius-lg:16px;--fv-radius-xl:24px;--fv-radius-full:9999px;--fv-textarea-autogrow-max-h:130px;--fv-media-max-h:50vh;--fv-ease:cubic-bezier(0.25,0.1,0.25,1);--fv-ease-out:cubic-bezier(0,0,0.25,1);--fv-duration-fast:120ms;--fv-duration-base:200ms;--fv-duration-slow:350ms}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--fv-font-body);font-size:var(--fv-text-base);line-height:var(--fv-leading-normal);color:var(--fv-text-primary);background:var(--fv-bg-page);-webkit-font-smoothing:antialiased;transition:background var(--fv-duration-slow) var(--fv-ease),color var(--fv-duration-slow) var(--fv-ease)}:root{--fv-avatar-on:#FFFFFF;--fv-spacing-xs:var(--fv-space-1);--fv-spacing-sm:var(--fv-space-2);--fv-spacing-md:var(--fv-space-4);--fv-spacing-lg:var(--fv-space-6);--fv-spacing-xl:var(--fv-space-8);--fv-spacing-2xl:var(--fv-space-12);--fv-color-text:var(--fv-text-primary);--fv-color-text-muted:var(--fv-text-tertiary);--fv-color-border:var(--fv-border);--fv-color-primary:var(--fv-primary);--fv-color-surface:var(--fv-bg-card)}.fv-std-amount{-moz-appearance:textfield}.fv-std-amount::-webkit-inner-spin-button,.fv-std-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fv-std-new-amount{-moz-appearance:textfield}.fv-std-new-amount::-webkit-inner-spin-button,.fv-std-new-amount::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fv-std-edit{border:none;border-bottom:var(--fv-border-width) solid transparent;border-radius:0;background:transparent;transition:border-color var(--fv-duration-fast) var(--fv-ease)}.fv-std-edit--immer{border-bottom-color:var(--fv-primary)}.fv-std-edit:focus,.fv-std-edit:focus-visible{outline:none;border-bottom-width:var(--fv-border-width-thick);border-bottom-color:var(--fv-border-focus);background:var(--fv-bg-inset)}.fv-prose{color:var(--fv-text-primary);font-family:var(--fv-font-body);font-size:var(--fv-text-base);line-height:var(--fv-leading-relaxed)}.fv-prose h1{font-size:var(--fv-text-2xl);font-weight:800;margin-top:0;margin-bottom:var(--fv-space-6)}.fv-prose h1,.fv-prose h2{font-family:var(--fv-font-display);letter-spacing:var(--fv-tracking-tight);color:var(--fv-text-primary)}.fv-prose h2{font-size:var(--fv-text-xl);font-weight:700;margin-top:var(--fv-space-8);margin-bottom:var(--fv-space-3)}.fv-prose h3{font-family:var(--fv-font-display);font-size:var(--fv-text-md);margin-top:var(--fv-space-6)}.fv-prose h3,.fv-prose h4{font-weight:600;margin-bottom:var(--fv-space-2);color:var(--fv-text-primary)}.fv-prose h4{font-family:var(--fv-font-body);font-size:var(--fv-text-base);margin-top:var(--fv-space-4)}.fv-prose p{margin-top:0;margin-bottom:var(--fv-space-4);color:var(--fv-text-secondary)}.fv-prose p:last-child{margin-bottom:0}.fv-prose ol,.fv-prose ul{margin-top:0;margin-bottom:var(--fv-space-4);padding-left:var(--fv-space-6)}.fv-prose li{margin-bottom:var(--fv-space-1);color:var(--fv-text-secondary)}.fv-prose strong{color:var(--fv-text-primary);font-weight:600}.fv-prose em{font-style:italic;color:var(--fv-text-tertiary)}.fv-prose a{color:var(--fv-text-link);text-decoration:underline}.fv-prose a:hover{color:var(--fv-primary-hover)}.fv-prose hr{border:none;border-top:1px solid var(--fv-divider);margin:var(--fv-space-8) 0}@media (max-width:640px){:root{--fv-media-max-h:75vh}}.fv-media{display:block;margin:var(--fv-space-4) auto;max-width:100%;max-height:var(--fv-media-max-h);width:auto;height:auto;border-radius:var(--fv-radius-md);background:var(--fv-bg-inset);border:var(--fv-border-width) solid var(--fv-border)}.fv-bild-fehlt,.fv-verweis-fehlt{display:inline-block;padding:0 var(--fv-space-2);border:1px dashed var(--fv-warning);border-radius:var(--fv-radius-sm);color:var(--fv-warning);font-size:var(--fv-text-xs)}.fv-help-verweis,.fv-howto-verweis{color:var(--fv-text-link);text-decoration:underline}.fv-help-verweis:hover,.fv-howto-verweis:hover{color:var(--fv-primary-hover)}.fv-link{color:var(--fv-text-link);text-decoration:underline;transition:color var(--fv-duration-fast) var(--fv-ease)}.fv-link:hover{color:var(--fv-primary-hover)}.fv-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--fv-space-2);font-family:var(--fv-font-body);font-weight:600;font-size:var(--fv-text-sm);line-height:1;padding:var(--fv-space-3) var(--fv-space-5);border-radius:var(--fv-radius-md);border:none;cursor:pointer;transition:all var(--fv-duration-base) var(--fv-ease);text-decoration:none;white-space:nowrap}.fv-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.fv-btn--primary{background:var(--fv-primary);color:var(--fv-primary-on)}.fv-btn--primary:hover{background:var(--fv-primary-hover);transform:translateY(-1px)}.fv-btn--accent{background:var(--fv-accent);color:var(--fv-accent-on)}.fv-btn--accent:hover{background:var(--fv-accent-hover);transform:translateY(-1px)}.fv-btn--secondary{background:var(--fv-bg-card);color:var(--fv-text-primary);border:.8px solid var(--fv-border);box-shadow:var(--fv-shadow-sm)}.fv-btn--secondary:hover{border-color:var(--fv-text-tertiary);background:var(--fv-bg-inset);box-shadow:var(--fv-shadow-md);transform:translateY(-1px)}.fv-btn--ghost{background:transparent;color:var(--fv-text-link);padding:var(--fv-space-2) var(--fv-space-3)}.fv-btn--ghost:hover{background:var(--fv-primary-subtle)}.fv-btn--danger{background:transparent;color:var(--fv-error);border:1.5px solid var(--fv-error)}.fv-btn--danger:hover:not(:disabled){background:var(--fv-error-subtle)}.fv-btn--card-action{white-space:normal;min-width:0;min-height:56px;padding:var(--fv-space-2);line-height:var(--fv-leading-tight);text-align:center}.fv-btn--sm{font-size:var(--fv-text-xs);padding:var(--fv-space-2) var(--fv-space-3);border-radius:var(--fv-radius-sm)}.fv-btn--lg{font-size:var(--fv-text-base);padding:var(--fv-space-4) var(--fv-space-8);border-radius:var(--fv-radius-md)}.fv-btn--full{width:100%}.fv-btn--back{background:var(--fv-bg-card);color:var(--fv-text-primary);border:.8px solid var(--fv-border);border-radius:var(--fv-radius-sm);font-size:var(--fv-text-xs);padding:var(--fv-space-2) var(--fv-space-3);font-weight:500}.fv-btn--back:hover{background:var(--fv-bg-inset);border-color:var(--fv-text-tertiary)}.fv-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;color:var(--fv-text-secondary);cursor:pointer;border-radius:var(--fv-radius-sm);transition:background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease);flex-shrink:0}.fv-btn-icon:hover{background:var(--fv-bg-inset);color:var(--fv-text-primary)}.fv-btn-icon:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-btn-icon:disabled{opacity:.5;cursor:not-allowed}.fv-btn-icon--danger{color:var(--fv-text-secondary)}.fv-btn-icon--danger:hover{background:var(--fv-error-subtle);color:var(--fv-error)}.fv-btn-icon--bordered{border:1.5px solid var(--fv-border)}.fv-btn-icon--bordered:hover{background:var(--fv-bg-inset);color:var(--fv-text-primary)}.fv-info-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;padding:0;background:var(--fv-info-subtle);border:1px solid var(--fv-border);border-radius:8px;color:var(--fv-info);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.fv-info-btn:hover{background:var(--fv-info);border-color:var(--fv-info);color:var(--fv-text-inverse)}.fv-info-btn:focus-visible{outline:2px solid var(--fv-info);outline-offset:2px}.fv-btn-icon--bordered.fv-btn-icon--danger,.fv-btn-icon--bordered.fv-btn-icon--danger:hover{border-color:var(--fv-error);color:var(--fv-error)}.fv-btn-icon--bordered.fv-btn-icon--danger:hover{background:var(--fv-error-subtle)}.fv-btn-icon--toggle[aria-pressed=true]{background:var(--fv-primary);border-color:var(--fv-primary);color:var(--fv-text-inverse)}.fv-btn-icon--toggle[aria-pressed=true]:hover{background:var(--fv-primary-hover);border-color:var(--fv-primary-hover);color:var(--fv-text-inverse)}.fv-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--fv-primary);color:var(--fv-text-inverse);font-family:var(--fv-font-body);font-size:var(--fv-text-xs);font-weight:700;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:0}.fv-avatar--md{width:36px;height:36px;font-size:var(--fv-text-sm)}.fv-avatar--lg{width:40px;height:40px;font-size:var(--fv-text-sm)}.fv-page-header{display:flex;align-items:center;justify-content:space-between;padding:var(--fv-space-4) var(--fv-space-5);border-bottom:1px solid var(--fv-border);gap:var(--fv-space-3);background:var(--fv-bg-card)}.fv-page-header__center{flex:1 1;display:flex;justify-content:center;align-items:center;gap:var(--fv-space-2)}.fv-chip{display:inline-flex;align-items:center;gap:var(--fv-space-1);font-family:var(--fv-font-body);font-size:var(--fv-text-xs);font-weight:500;padding:var(--fv-space-1) var(--fv-space-3);border-radius:var(--fv-radius-full);border:1px solid var(--fv-border);background:var(--fv-bg-card);color:var(--fv-text-secondary);cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:all var(--fv-duration-fast) var(--fv-ease)}@media (hover:hover){.fv-chip:hover{border-color:var(--fv-primary);color:var(--fv-primary)}}.fv-chip:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-chip:disabled{opacity:.5;cursor:not-allowed}.fv-chip-group.fv-chip-group--start{justify-content:flex-start}.fv-chip--active{background:var(--fv-primary-subtle);border-color:var(--fv-primary);color:var(--fv-primary);font-weight:600}.fv-chip--diet{background:var(--fv-success-subtle);border-color:transparent;color:var(--fv-success)}.fv-btn--saved{display:flex;align-items:center;justify-content:center;gap:var(--fv-space-2);width:100%;padding:var(--fv-space-3);background:var(--fv-bg-card);border:var(--fv-border-width) solid var(--fv-border);border-radius:var(--fv-radius-md);color:var(--fv-accent);font-family:var(--fv-font-body);font-weight:600;font-size:var(--fv-text-sm);cursor:pointer;transition:border-color var(--fv-duration-fast) var(--fv-ease)}@media (hover:hover){.fv-btn--saved:hover{border-color:var(--fv-accent)}}.fv-btn--saved:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-field-label{display:block;font-size:var(--fv-text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fv-text-secondary);margin-bottom:var(--fv-space-2)}.fv-segment-group{display:flex;border:1.5px solid var(--fv-border);border-radius:var(--fv-radius-full);background:var(--fv-bg-card);overflow:hidden;padding:2px;gap:2px}.fv-segment-item{flex:1 1;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:var(--fv-space-1-5);padding:var(--fv-space-2) var(--fv-space-3);background:transparent;border:1.5px solid transparent;color:var(--fv-text-primary);font-family:var(--fv-font-body);font-size:var(--fv-text-sm);font-weight:600;cursor:pointer;border-radius:var(--fv-radius-full);transition:background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease)}@media (hover:hover){.fv-segment-item:hover{color:var(--fv-primary)}}.fv-segment-item:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-segment-item--active{background:var(--fv-primary-subtle);border-color:var(--fv-primary);color:var(--fv-primary)}.fv-segment-item:disabled{opacity:.5;cursor:not-allowed}.fv-toggle-pill{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--fv-space-3) var(--fv-space-5);background:var(--fv-bg-card);border:1.5px solid var(--fv-border);border-radius:var(--fv-radius-full);cursor:pointer;min-width:140px;transition:border-color var(--fv-duration-fast) var(--fv-ease),background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.fv-toggle-pill__title{font-family:var(--fv-font-body);font-size:var(--fv-text-sm);font-weight:700;color:var(--fv-text-primary);line-height:1.2}.fv-toggle-pill__sub{font-size:var(--fv-text-xs);color:var(--fv-text-secondary);line-height:1.2}.fv-toggle-pill:hover{border-color:var(--fv-primary)}.fv-toggle-pill:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-toggle-pill--active{background:var(--fv-primary-subtle);border-color:var(--fv-primary)}.fv-toggle-pill--active .fv-toggle-pill__sub,.fv-toggle-pill--active .fv-toggle-pill__title{color:var(--fv-primary)}.fv-toggle-pill:disabled{opacity:.5;cursor:not-allowed}.fv-input-group{display:flex;flex-direction:column;gap:var(--fv-space-1)}.fv-input-label{font-size:var(--fv-text-sm);font-weight:500}.fv-input,.fv-input-label{color:var(--fv-text-primary)}.fv-input{font-family:var(--fv-font-body);font-size:var(--fv-text-base);background:var(--fv-bg-card);border:1.5px solid var(--fv-border);border-radius:var(--fv-radius-md);padding:var(--fv-space-3) var(--fv-space-4);transition:border-color var(--fv-duration-fast) var(--fv-ease),box-shadow var(--fv-duration-fast) var(--fv-ease);width:100%}.fv-input::placeholder{color:var(--fv-text-tertiary)}.fv-input:focus{outline:none;border-color:var(--fv-border-focus);box-shadow:var(--fv-shadow-focus)}.fv-input--error{border-color:var(--fv-error)}.fv-textarea-autogrow{resize:none;overflow-y:auto;line-height:22px;padding-top:10px;padding-bottom:10px;max-height:var(--fv-textarea-autogrow-max-h);box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--fv-border) transparent}.fv-input-hint{font-size:var(--fv-text-xs);color:var(--fv-text-tertiary)}.fv-input-error{font-size:var(--fv-text-xs);color:var(--fv-error)}.fv-no-spin::-webkit-inner-spin-button,.fv-no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fv-no-spin{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.fv-card{background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-lg);overflow:hidden;transition:box-shadow var(--fv-duration-base) var(--fv-ease),transform var(--fv-duration-base) var(--fv-ease)}.fv-card--interactive:hover{box-shadow:var(--fv-shadow-md);transform:translateY(-2px)}.fv-card__img{width:100%;height:180px;background:var(--fv-bg-inset);display:flex;align-items:center;justify-content:center;font-size:var(--fv-card-placeholder-size,3rem)}.fv-card__body{padding:var(--fv-space-4) var(--fv-space-5)}.fv-card__title{font-family:var(--fv-font-display);font-size:var(--fv-text-md);font-weight:700;color:var(--fv-text-primary);margin-bottom:var(--fv-space-1)}.fv-card__subtitle{font-size:var(--fv-text-sm);color:var(--fv-text-secondary);margin-bottom:var(--fv-space-3)}.fv-card__meta{display:flex;gap:var(--fv-space-4);font-size:var(--fv-text-xs);color:var(--fv-text-tertiary)}.fv-card__meta span{display:flex;align-items:center;gap:var(--fv-space-1)}.fv-chat{display:flex;flex-direction:column;gap:var(--fv-space-3)}.fv-chat-bubble{max-width:85%;padding:var(--fv-space-3) var(--fv-space-4);font-size:var(--fv-text-sm);line-height:var(--fv-leading-relaxed);animation:fv-fadeSlide var(--fv-duration-slow) var(--fv-ease-out)}.fv-chat-bubble--ai{align-self:flex-start;background:var(--fv-bg-chat-ai);color:var(--fv-text-primary);border-radius:var(--fv-radius-lg) var(--fv-radius-lg) var(--fv-radius-lg) var(--fv-space-1)}.fv-chat-bubble--user{align-self:flex-end;background:var(--fv-bg-chat-user);color:var(--fv-text-inverse);border-radius:var(--fv-radius-lg) var(--fv-radius-lg) var(--fv-space-1) var(--fv-radius-lg)}.fv-chat-sender{font-size:var(--fv-text-xs);font-weight:600;margin-bottom:var(--fv-space-1);opacity:.7}@keyframes fv-fadeSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fv-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fv-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fv-skeleton{background:linear-gradient(90deg,var(--fv-bg-inset) 25%,var(--fv-divider) 50%,var(--fv-bg-inset) 75%);background-size:200% 100%;animation:fv-shimmer 1.5s ease infinite;border-radius:var(--fv-radius-md)}.fv-skeleton--recipe-card{height:320px;border-radius:var(--fv-radius-md)}.fv-instructions-list{list-style:none;padding-left:0;margin:0;counter-reset:step 0;font-size:var(--fv-text-sm);line-height:1.7;color:var(--fv-text-primary)}.fv-instructions-list>li{counter-increment:step 1;margin-bottom:var(--fv-space-2);padding-left:0}.fv-instructions-list>li:before{content:counter(step) ". ";font-weight:700;color:var(--fv-primary);margin-right:var(--fv-space-1)}.fv-list-flat{list-style:none;padding:0;margin:0}.fv-list-flat>li{border-bottom:1px solid var(--fv-border);padding:var(--fv-space-3) 0}.fv-list-flat>li:last-child{border-bottom:none}.fv-cooked-checkbox{width:24px;height:24px;flex-shrink:0;border:1.5px solid var(--fv-border);border-radius:var(--fv-radius-sm);background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:background var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.fv-cooked-checkbox[aria-pressed=true]{background:var(--fv-primary);border-color:var(--fv-primary);color:var(--fv-text-inverse)}.fv-cooked-checkbox:hover:not(:disabled){border-color:var(--fv-primary)}.fv-cooked-checkbox:disabled{opacity:.5;cursor:not-allowed}.fv-kebab-dropdown{position:absolute;right:0;top:100%;margin-top:4px;background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-md);box-shadow:var(--fv-shadow-md);min-width:160px;z-index:10;padding:var(--fv-space-1)}.fv-kebab-item{display:flex;align-items:center;gap:var(--fv-space-2);padding:var(--fv-space-2) var(--fv-space-3);background:transparent;border:none;width:100%;text-align:left;cursor:pointer;border-radius:var(--fv-radius-sm);color:var(--fv-text-primary);font-size:var(--fv-text-sm);font-family:var(--fv-font-body)}.fv-kebab-item:hover:not(:disabled){background:var(--fv-bg-inset)}.fv-kebab-item:disabled{opacity:.5;cursor:not-allowed}.fv-kebab-item--danger{color:var(--fv-error)}.fv-kebab-item--danger:hover:not(:disabled){background:var(--fv-error-subtle);color:var(--fv-error)}.fv-kebab-trenner{height:1px;background:var(--fv-border);margin:var(--fv-space-1) 0}.fv-navbar{justify-content:space-around;background:var(--fv-bg-card);border-top:1px solid var(--fv-border);padding:var(--fv-space-2) 0 var(--fv-space-3)}.fv-nav-item,.fv-navbar{display:flex;align-items:center}.fv-nav-item{flex-direction:column;gap:2px;font-size:var(--fv-text-3xs);font-weight:500;color:var(--fv-text-tertiary);text-decoration:none;padding:var(--fv-space-1) var(--fv-space-3);border-radius:var(--fv-radius-sm);transition:color var(--fv-duration-fast) var(--fv-ease);cursor:pointer}.fv-nav-item:hover{color:var(--fv-text-secondary)}.fv-nav-item--active{color:var(--fv-primary)}.fv-nav-icon{font-size:1.3rem}.fv-list-item{display:flex;align-items:center;gap:var(--fv-space-3);padding:var(--fv-space-3) var(--fv-space-4);border-bottom:1px solid var(--fv-divider);color:var(--fv-text-primary);transition:background var(--fv-duration-fast) var(--fv-ease);cursor:pointer}.fv-list-item:hover{background:var(--fv-bg-inset)}.fv-list-item:last-child{border-bottom:none}.fv-list-icon{width:40px;height:40px;border-radius:var(--fv-radius-md);background:var(--fv-primary-subtle);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.fv-list-content{flex:1 1;min-width:0}.fv-list-title{font-size:var(--fv-text-sm);font-weight:500;color:var(--fv-text-primary)}.fv-list-sub{font-size:var(--fv-text-xs)}.fv-list-action,.fv-list-sub{color:var(--fv-text-tertiary)}.fv-list-action{font-size:var(--fv-text-sm)}.fv-badge{display:inline-flex;align-items:center;font-size:var(--fv-text-3xs);font-weight:700;padding:2px 7px;border-radius:var(--fv-radius-full);letter-spacing:var(--fv-tracking-wide)}.fv-badge--success{background:var(--fv-success-subtle);color:var(--fv-success)}.fv-badge--warning{background:var(--fv-warning-subtle);color:var(--fv-warning)}.fv-badge--error{background:var(--fv-error-subtle);color:var(--fv-error)}.fv-badge--info{background:var(--fv-info-subtle);color:var(--fv-info)}.fv-mt-2{margin-top:var(--fv-space-2)}.fv-mt-3{margin-top:var(--fv-space-3)}.fv-mt-4{margin-top:var(--fv-space-4)}.fv-page-title{font-family:var(--fv-font-display);font-size:var(--fv-text-lg);font-weight:600;margin:0;color:var(--fv-text-primary)}.fv-page-subtitle{font-size:var(--fv-text-sm);color:var(--fv-text-secondary);margin:0 0 var(--fv-space-6) 0}.fv-action-row{display:flex;gap:var(--fv-space-3);flex-wrap:wrap;margin-bottom:var(--fv-space-5)}.fv-text-meta{font-size:var(--fv-text-meta)}.fv-btn--dashed,.fv-text-meta{color:var(--fv-text-secondary)}.fv-btn--dashed{display:inline-flex;align-items:center;justify-content:center;gap:var(--fv-space-2);width:100%;padding:var(--fv-space-3) var(--fv-space-4);background:transparent;border:1.5px dashed var(--fv-border);border-radius:var(--fv-radius-md);font-family:var(--fv-font-body);font-size:var(--fv-text-sm);font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}.fv-btn--dashed:hover:not(:disabled){border-color:var(--fv-primary);color:var(--fv-primary)}.fv-btn--dashed:disabled{opacity:.6;cursor:not-allowed}.fv-plan-item{display:flex;align-items:center;gap:var(--fv-space-3);background:var(--fv-bg-card);border:1.5px solid var(--fv-border);border-radius:var(--fv-radius-md);padding:var(--fv-space-3) var(--fv-space-4);margin-bottom:var(--fv-space-2)}.fv-plan-item--selected{border-color:var(--fv-primary);background:var(--fv-primary-subtle)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:var(--fv-space-5);gap:var(--fv-space-5);margin-top:var(--fv-space-4)}.recipe-card{background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-md);overflow:hidden;display:flex;flex-direction:column;padding:var(--fv-space-4);transition:box-shadow var(--fv-duration-base) var(--fv-ease);position:relative}.recipe-card:hover{box-shadow:var(--fv-shadow-md)}.recipe-card-header{margin-bottom:var(--fv-space-3)}.recipe-title{font-family:var(--fv-font-display);font-size:var(--fv-text-md);font-weight:700;color:var(--fv-text-primary);margin-bottom:var(--fv-space-1)}.recipe-meta{display:flex;gap:var(--fv-space-3);color:var(--fv-text-secondary)}.recipe-detail-toggle,.recipe-meta{align-items:center;font-size:var(--fv-text-xs)}.recipe-detail-toggle{margin-left:auto;display:inline-flex;gap:var(--fv-space-1);background:transparent;border:none;padding:0;color:var(--fv-primary);font-family:var(--fv-font-body);font-weight:600;cursor:pointer}.recipe-detail-toggle:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.recipe-card-body{flex:1 1;display:flex;flex-direction:column;gap:var(--fv-space-3)}.why-fits{font-size:var(--fv-text-sm);color:var(--fv-text-secondary);font-style:italic;line-height:1.5}.ingredients-label{font-size:var(--fv-text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--fv-tracking-wide);color:var(--fv-text-tertiary)}.ingredients-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--fv-space-1);font-size:var(--fv-text-sm);color:var(--fv-text-primary)}.recipe-nutrition{display:flex;flex-wrap:wrap;gap:var(--fv-space-3);font-size:var(--fv-text-xs);color:var(--fv-text-secondary)}.recipe-nutrition span{display:inline-flex;align-items:center;gap:4px}.nutrition-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--fv-space-2)}.nutrition-pill{display:inline-flex;align-items:center;gap:var(--fv-space-1);background:var(--fv-bg-inset);border-radius:var(--fv-radius-sm);padding:var(--fv-space-1) var(--fv-space-2);font-size:var(--fv-text-xs);color:var(--fv-text-primary)}.nutrition-pill-value{font-weight:600}.nutrition-pill-label{color:var(--fv-text-secondary)}.recipe-card-img{width:calc(100% + var(--fv-space-8));height:180px;object-fit:cover;object-position:center 65%;display:block;margin:calc(-1 * var(--fv-space-4)) calc(-1 * var(--fv-space-4)) var(--fv-space-4);border-radius:var(--fv-radius-md) var(--fv-radius-md) 0 0}.recipe-guard-msg{text-align:center;padding:var(--fv-space-8) var(--fv-space-4);color:var(--fv-text-secondary);font-size:var(--fv-text-sm)}.recipe-image-wrapper{position:relative;width:calc(100% + var(--fv-space-8));margin:calc(-1 * var(--fv-space-4)) calc(-1 * var(--fv-space-4)) var(--fv-space-4)}.recipe-image-wrapper .recipe-card-img{width:100%;margin:0;border-radius:var(--fv-radius-md) var(--fv-radius-md) 0 0}.recipe-card-img--placeholder{display:flex;align-items:center;justify-content:center;background:var(--fv-bg-inset);color:var(--fv-text-tertiary);object-fit:unset}.heart-overlay{position:absolute;top:var(--fv-space-3);right:var(--fv-space-3);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--fv-overlay-light);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:var(--fv-radius-full);color:var(--fv-text-inverse);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),transform var(--fv-duration-fast) var(--fv-ease);z-index:1}.heart-overlay:hover:not(:disabled){background:var(--fv-overlay-light-hover);transform:scale(1.05)}.heart-overlay:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.heart-overlay:disabled{opacity:.6;cursor:not-allowed}.heart-overlay[data-saved=true]{color:var(--fv-accent)}.heart-overlay[data-saved=true]:hover:not(:disabled){color:var(--fv-accent-hover)}@keyframes heart-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.heart-overlay.is-popping{animation:heart-pop var(--fv-duration-base) var(--fv-ease)}.recipe-card.no-image .heart-overlay{background:var(--fv-bg-inset);color:var(--fv-text-secondary);-webkit-backdrop-filter:none;backdrop-filter:none}.recipe-card.no-image{position:relative}.hero-loading-overlay{inset:0;display:flex;background:var(--fv-bg-inset);border-radius:var(--fv-radius-lg) var(--fv-radius-lg) 0 0;color:var(--fv-text-tertiary)}.hero-loading-overlay,.regenerate-overlay{position:absolute;align-items:center;justify-content:center;z-index:1}.regenerate-overlay{bottom:var(--fv-space-3);right:var(--fv-space-3);width:36px;height:36px;display:inline-flex;background:var(--fv-overlay-light);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:var(--fv-radius-full);color:var(--fv-text-inverse);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),transform var(--fv-duration-fast) var(--fv-ease)}.regenerate-overlay:hover:not(:disabled){background:var(--fv-overlay-light-hover);transform:scale(1.05)}.regenerate-overlay:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.regenerate-overlay:disabled{opacity:.6;cursor:not-allowed}.scene-overlay{position:absolute;bottom:var(--fv-space-3);right:calc(var(--fv-space-3) + 36px + var(--fv-space-2));width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--fv-overlay-light);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:var(--fv-radius-full);color:var(--fv-text-inverse);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),transform var(--fv-duration-fast) var(--fv-ease);z-index:1}.scene-overlay:hover:not(:disabled){background:var(--fv-overlay-light-hover);transform:scale(1.05)}.scene-overlay:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.scene-overlay:disabled{opacity:.6;cursor:not-allowed}.fv-spin-icon{animation:fv-spin .8s linear infinite}.generate-image-cta{display:inline-flex;align-items:center;gap:var(--fv-space-2);padding:var(--fv-space-2) var(--fv-space-4);background:var(--fv-bg-card);color:var(--fv-text-primary);border:1px solid var(--fv-border);border-radius:var(--fv-radius-md);font-family:var(--fv-font-body);font-size:var(--fv-text-sm);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease)}.generate-image-cta:hover:not(:disabled){background:var(--fv-bg-inset);border-color:var(--fv-primary);color:var(--fv-primary)}.generate-image-cta:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.generate-image-cta:disabled{opacity:.6;cursor:not-allowed}.recipe-card-footer{display:flex;gap:var(--fv-space-1);padding-top:var(--fv-space-3);margin-top:var(--fv-space-3);border-top:1px solid var(--fv-divider)}.footer-btn{flex:1 1;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:var(--fv-space-2) var(--fv-space-1);background:transparent;border:none;border-radius:var(--fv-radius-sm);color:var(--fv-text-secondary);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.footer-btn:hover:not(:disabled){background:var(--fv-bg-inset);color:var(--fv-text-primary)}.footer-btn-label{margin-left:var(--fv-space-1-5);font-size:var(--fv-text-sm);font-weight:600;white-space:nowrap}.footer-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.footer-btn:disabled,.footer-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.footer-btn[aria-pressed=true],.footer-btn[data-saved=true]{color:var(--fv-primary)}.fv-modal-backdrop{position:fixed;inset:0;background:var(--fv-overlay-strong);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--fv-space-4);animation:fv-fadeIn var(--fv-duration-base) var(--fv-ease)}.fv-modal{position:relative;background:var(--fv-bg-card);border-radius:var(--fv-radius-lg);max-width:720px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--fv-shadow-lg);animation:fv-modalIn var(--fv-duration-base) var(--fv-ease-out)}.fv-modal-close-btn{position:absolute;top:var(--fv-space-3);right:var(--fv-space-3);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--fv-overlay-medium);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;border-radius:var(--fv-radius-full);color:var(--fv-text-inverse);cursor:pointer;z-index:2;transition:background var(--fv-duration-fast) var(--fv-ease)}.fv-modal-close-btn:hover{background:var(--fv-overlay-medium-hover)}.fv-modal-close-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-modal-state-msg{padding:var(--fv-space-12) var(--fv-space-4);text-align:center;font-size:var(--fv-text-sm)}.fv-modal-state-msg--loading{color:var(--fv-text-secondary)}.fv-modal-state-msg--error{color:var(--fv-error)}@keyframes fv-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fv-modalIn{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}body.fv-modal-open{overflow:hidden}.recipe-image-button,.recipe-title-button{display:block;width:100%;padding:0;margin:0;background:transparent;border:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.recipe-image-button:disabled,.recipe-title-button:disabled{cursor:default}.recipe-image-button:focus-visible,.recipe-title-button:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus);border-radius:var(--fv-radius-sm)}.recipe-title-button:hover:not(:disabled) .recipe-title{color:var(--fv-primary)}.recipe-image-button{line-height:0}.home-section-symbols{display:flex;flex-wrap:nowrap;overflow:hidden;align-items:center;gap:var(--fv-space-2);list-style:none;margin:0;padding:0 0 var(--fv-space-2) 0}.home-section-symbols-rest{font-family:var(--fv-font-body);font-size:var(--fv-text-sm);font-weight:600;color:var(--fv-text-secondary);flex-shrink:0}.saved-recipes-section{margin-top:var(--fv-space-8);margin-bottom:var(--fv-space-6)}.saved-recipes-header{display:flex;align-items:center;gap:var(--fv-space-3);padding:var(--fv-space-3) 0;border-bottom:1px solid var(--fv-divider)}.saved-recipes-toggle{display:flex;align-items:center;justify-content:space-between;flex:1 1;background:transparent;border:none;padding:0;cursor:pointer;color:inherit;font-family:inherit}.saved-recipes-toggle:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus);border-radius:var(--fv-radius-sm)}.saved-recipes-title{font-family:var(--fv-font-display);font-size:var(--fv-text-lg);font-weight:700;color:var(--fv-text-primary);margin:0}.saved-recipes-chevron{color:var(--fv-text-secondary);transition:transform var(--fv-duration-base) var(--fv-ease)}.saved-recipes-chevron.is-expanded{transform:rotate(180deg)}.saved-recipes-body{padding-top:var(--fv-space-4)}.saved-recipes-empty{text-align:center;padding:var(--fv-space-8) var(--fv-space-4);color:var(--fv-text-secondary);font-size:var(--fv-text-sm)}.saved-recipes-view-toggle{display:inline-flex;border:1px solid var(--fv-border);border-radius:var(--fv-radius-md);overflow:hidden;flex-shrink:0}.saved-recipes-view-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--fv-space-1) var(--fv-space-2);background:transparent;border:none;color:var(--fv-text-tertiary);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.saved-recipes-view-btn:hover{background:var(--fv-bg-inset)}.saved-recipes-view-btn.is-active{background:var(--fv-primary-subtle);color:var(--fv-primary)}.saved-recipes-view-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.recipe-search{position:relative;display:flex;align-items:center;flex:1 1 12rem;min-width:0}.recipe-search-icon{position:absolute;left:var(--fv-space-3);color:var(--fv-text-tertiary);pointer-events:none}.recipe-search-input{padding-left:calc(var(--fv-space-3) + var(--fv-space-6));padding-right:var(--fv-space-8)}.recipe-search-input::-webkit-search-cancel-button{display:none}.recipe-search-clear{position:absolute;right:var(--fv-space-2);display:inline-flex;align-items:center;justify-content:center;padding:var(--fv-space-1);background:transparent;border:none;border-radius:var(--fv-radius-pill);color:var(--fv-text-tertiary);cursor:pointer}.recipe-search-clear:hover{color:var(--fv-text-primary);background:var(--fv-bg-inset)}.recipe-search-clear:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.recipe-tools-row{display:flex;align-items:center;gap:var(--fv-space-3);flex-wrap:wrap;margin-bottom:var(--fv-space-4)}.recipe-search-empty{padding:var(--fv-space-8) var(--fv-space-4);text-align:center;color:var(--fv-text-secondary);font-size:var(--fv-text-sm)}.saved-recipes-rows{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--fv-space-2)}.saved-recipes-row{display:flex;align-items:center;gap:var(--fv-space-3);padding:var(--fv-space-2) var(--fv-space-3);text-decoration:none;color:inherit;border-radius:var(--fv-radius-md);transition:background var(--fv-duration-fast) var(--fv-ease);width:100%;border:none;background:none;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer}.saved-recipes-row-wrap{display:flex;align-items:center;gap:var(--fv-space-1)}.saved-recipes-card-action,.saved-recipes-row-action{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:none;color:var(--fv-primary);border-radius:var(--fv-radius-full,9999px);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease)}.saved-recipes-card-action:hover:not(:disabled),.saved-recipes-row-action:hover:not(:disabled){background:var(--fv-primary-subtle)}.saved-recipes-card-action:focus-visible,.saved-recipes-row-action:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.saved-recipes-card-action:disabled,.saved-recipes-row-action:disabled{color:var(--fv-text-tertiary);cursor:default}.saved-recipes-row:hover{background:var(--fv-bg-inset)}.saved-recipes-row-thumb{width:52px;height:52px;border-radius:var(--fv-radius-sm);object-fit:cover;flex-shrink:0}.saved-recipes-row-thumb--placeholder{background:var(--fv-bg-inset)}.saved-recipes-row-title{font-size:var(--fv-text-sm);color:var(--fv-text-primary);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.saved-recipes-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:var(--fv-space-3);gap:var(--fv-space-3)}.saved-recipes-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;border-radius:var(--fv-radius-lg);overflow:hidden;background:var(--fv-bg-card);transition:transform var(--fv-duration-fast) var(--fv-ease),box-shadow var(--fv-duration-fast) var(--fv-ease)}.saved-recipes-card:hover{transform:translateY(-2px);box-shadow:var(--fv-shadow-md)}.saved-recipes-card-image{width:100%;aspect-ratio:1;object-fit:cover}.saved-recipes-card-image--placeholder{background:var(--fv-bg-inset)}.saved-recipes-card-main{display:flex;flex-direction:column;text-decoration:none;color:inherit;width:100%;padding:0;border:none;background:none;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer}.saved-recipes-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--fv-space-2);padding:0 var(--fv-space-2) var(--fv-space-1);min-height:44px}.saved-recipes-card-title{font-size:var(--fv-text-sm);font-weight:600;color:var(--fv-text-primary);padding:var(--fv-space-2) var(--fv-space-3) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.saved-recipes-card-time{display:inline-flex;align-items:center;gap:var(--fv-space-1);font-size:var(--fv-text-xs);color:var(--fv-text-secondary)}.mealplan-home-section{margin-top:var(--fv-space-8);margin-bottom:var(--fv-space-6);background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-lg);padding:var(--fv-space-5)}.mealplan-home-section--empty{text-align:center}.mealplan-home-header{display:flex;align-items:center;justify-content:space-between;gap:var(--fv-space-3);margin-bottom:var(--fv-space-3)}.mealplan-home-header-chevron{color:var(--fv-text-tertiary);flex-shrink:0;transition:color var(--fv-duration-fast) var(--fv-ease),transform var(--fv-duration-fast) var(--fv-ease)}.mealplan-home-header--link:hover .mealplan-home-header-chevron{color:var(--fv-primary);transform:translateX(2px)}.mealplan-home-header--link{padding:var(--fv-space-2);margin:calc(var(--fv-space-2) * -1);margin-bottom:var(--fv-space-3);border-radius:var(--fv-radius-md);text-decoration:none;color:inherit;transition:background var(--fv-duration-fast) var(--fv-ease)}.mealplan-home-header--link:hover{background:var(--fv-bg-inset)}.mealplan-home-header--link:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.mealplan-home-header-text{display:flex;flex-direction:column;gap:var(--fv-space-1);min-width:0}.mealplan-home-title{font-family:var(--fv-font-display);font-size:var(--fv-text-lg);font-weight:700;color:var(--fv-text-primary);margin:0}.mealplan-home-sublabel{font-size:var(--fv-text-xs);color:var(--fv-text-secondary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mealplan-home-dishes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--fv-space-1)}.mealplan-home-group+.mealplan-home-group{margin-top:var(--fv-space-4);padding-top:var(--fv-space-4);border-top:1px solid var(--fv-divider)}.mealplan-home-group-header{margin-bottom:var(--fv-space-2)}.mealplan-home-dish{display:block}.mealplan-home-dish-btn{display:flex;align-items:center;gap:var(--fv-space-3);width:100%;background:transparent;border:none;padding:var(--fv-space-2);border-radius:var(--fv-radius-md);cursor:pointer;text-align:left;font-family:var(--fv-font-body);font-size:var(--fv-text-sm);color:var(--fv-text-primary);transition:background var(--fv-duration-fast) var(--fv-ease)}.mealplan-home-dish-btn:hover:not(:disabled){background:var(--fv-bg-inset)}.mealplan-home-dish-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.mealplan-home-dish-btn:disabled{cursor:default;opacity:.6}.mealplan-home-dish-day{width:32px}.mealplan-home-dish-day,.mealplan-home-dish-thumb{flex-shrink:0;display:flex;align-items:center;justify-content:center}.mealplan-home-dish-thumb{width:48px;height:48px;border-radius:var(--fv-radius-md);overflow:hidden}.mealplan-home-dish-thumb-img{width:100%;height:100%;object-fit:cover}.mealplan-home-dish-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--fv-bg-inset);color:var(--fv-text-tertiary)}.mealplan-home-dish-text{flex:1 1;min-width:0;display:flex;flex-direction:column;text-align:left}.mealplan-home-dish-title{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mealplan-home-dish-meta{font-size:var(--fv-text-sm);color:var(--fv-text-secondary);margin-top:2px}.mealplan-home-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:var(--fv-space-3);gap:var(--fv-space-3)}.mealplan-home-card{display:flex;flex-direction:column;width:100%;padding:0;text-align:left;color:inherit;background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-lg);overflow:hidden;cursor:pointer;transition:transform var(--fv-duration-fast) var(--fv-ease),box-shadow var(--fv-duration-fast) var(--fv-ease)}.mealplan-home-card:hover{transform:translateY(-2px);box-shadow:var(--fv-shadow-md)}.mealplan-home-card:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.mealplan-home-card-image{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}.mealplan-home-card-media{position:relative;display:block}.mealplan-home-card-day{position:absolute;top:var(--fv-space-2);left:var(--fv-space-2)}.mealplan-home-card-image--placeholder{display:flex;align-items:center;justify-content:center;background:var(--fv-bg-inset);color:var(--fv-text-tertiary)}.mealplan-home-card-body{display:flex;flex-direction:column;gap:var(--fv-space-1);padding:var(--fv-space-2) var(--fv-space-3)}.mealplan-home-card-title{font-size:var(--fv-text-sm);font-weight:600;color:var(--fv-text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mealplan-home-card-meta{font-size:var(--fv-text-xs);color:var(--fv-text-secondary)}.mealplan-home-empty{padding:var(--fv-space-6) var(--fv-space-4);color:var(--fv-text-secondary);font-size:var(--fv-text-sm)}.mealplan-home-empty p{margin:0 0 var(--fv-space-4)}.home-section-symbol{position:relative;display:inline-flex}.mealplan-home-empty-note{margin:0;padding:var(--fv-space-3) var(--fv-space-4) 0}.mealplan-home-empty-note,.mealplan-home-pseudo{color:var(--fv-text-secondary);font-size:var(--fv-text-sm)}.mealplan-home-pseudo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--fv-space-2);height:100%;min-height:180px;padding:var(--fv-space-4);border:var(--fv-border-width-thick) dashed var(--fv-border);border-radius:var(--fv-radius-md);font-family:var(--fv-font-body);font-weight:600;text-align:center;text-decoration:none;transition:border-color var(--fv-duration-fast) var(--fv-ease)}.mealplan-home-pseudo:hover{border-color:var(--fv-primary)}.mealplan-home-pseudo:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.mealplan-home-verlauf{flex-wrap:wrap;align-content:flex-start}.mealplan-home-verlauf--unten{padding:var(--fv-space-3) var(--fv-space-4);border-top:var(--fv-border-width) solid var(--fv-divider)}.home-section-symbol-haken{position:absolute;right:-2px;bottom:-2px;color:var(--fv-primary);background:var(--fv-bg-card);border-radius:var(--fv-radius-full);padding:2px}@media (max-width:640px){.mealplan-home-title{font-size:var(--fv-text-base)}.mealplan-home-sublabel{font-size:var(--fv-text-xs)}.mealplan-home-dish-thumb{width:40px;height:40px}}.fv-page-main{max-width:1100px;margin:0 auto;padding:var(--fv-space-8) var(--fv-space-4) var(--fv-space-12);font-family:var(--fv-font-body);color:var(--fv-text-primary)}.fv-page-h2{font-family:var(--fv-font-display);font-size:var(--fv-text-xl);font-weight:700;margin:0}.fv-page-h2-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--fv-space-5)}.fv-section-stack{display:flex;flex-direction:column;gap:var(--fv-space-3)}.fv-section-stack--with-mb{margin-bottom:var(--fv-space-4)}.fv-chip-group{display:flex;flex-wrap:wrap;gap:var(--fv-space-2);justify-content:center;padding:var(--fv-space-2) 0 0}:root{--fv-chat-input-row-h:64px;--fv-chat-open-top:136px}body{padding-bottom:calc(var(--fv-chat-input-row-h) + env(safe-area-inset-bottom, 0px))}.chat-panel{position:fixed;bottom:0;left:0;right:0;max-width:1160px;margin-inline:auto;background:var(--fv-bg-card);display:flex;flex-direction:column;z-index:50;transition:height var(--fv-duration-base) var(--fv-ease);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0)}.chat-panel--closed{min-height:calc(var(--fv-chat-input-row-h) + env(safe-area-inset-bottom, 0px));border-top:1px solid var(--fv-border);box-shadow:var(--fv-shadow-top-sm)}.chat-panel--open{top:var(--fv-chat-open-top);border-top:1px solid var(--fv-border);box-shadow:var(--fv-shadow-top-md)}.chat-panel-header{display:flex;align-items:center;gap:var(--fv-space-2);height:48px;padding:0 var(--fv-space-3) 0 var(--fv-space-4);background:var(--fv-primary);color:var(--fv-primary-on);flex-shrink:0}.chat-panel-status-dot{width:8px;height:8px;border-radius:var(--fv-radius-full);background:var(--fv-primary-on);opacity:.9;flex-shrink:0}.chat-panel-header-title{flex:1 1;font-family:var(--fv-font-display);font-size:var(--fv-text-base);font-weight:600;color:var(--fv-primary-on)}.chat-panel-close-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--fv-radius-sm);color:var(--fv-primary-on);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease)}.chat-panel-close-btn:hover{background:rgba(255,255,255,.15)}.chat-panel-close-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--fv-primary-on)}.chat-panel-input-row{display:flex;align-items:flex-end;gap:var(--fv-space-2);padding:var(--fv-space-2) var(--fv-space-3);background:var(--fv-bg-card);flex-shrink:0;min-height:var(--fv-chat-input-row-h);border-top:1px solid transparent}.chat-panel--open .chat-panel-input-row{border-top-color:var(--fv-border)}.chat-panel-input{flex:1 1;min-height:44px;padding-left:var(--fv-space-4);padding-right:var(--fv-space-4);border:1px solid var(--fv-border);border-radius:var(--fv-radius-full);background:var(--fv-bg-inset);font-family:var(--fv-font-body);font-size:16px;color:var(--fv-text-primary);transition:border-color var(--fv-duration-fast) var(--fv-ease),border-radius var(--fv-duration-fast) var(--fv-ease)}.chat-panel-input--grown{border-radius:var(--fv-radius-lg)}.chat-panel-input:focus{outline:none;border-color:var(--fv-primary)}.chat-panel-input:disabled{opacity:.6;cursor:not-allowed}.chat-panel-send-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--fv-primary);color:var(--fv-primary-on);border:none;border-radius:var(--fv-radius-full);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease)}.chat-panel-send-btn:hover:not(:disabled){background:var(--fv-primary-hover,var(--fv-primary))}.chat-panel-send-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.chat-panel-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-panel-tool-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;color:var(--fv-text-secondary);border:none;border-radius:var(--fv-radius-full);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.chat-panel-tool-btn:hover:not(:disabled){background:var(--fv-bg-inset);color:var(--fv-primary)}.chat-panel-tool-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.chat-panel-tool-btn:disabled{opacity:.4;cursor:not-allowed}.chat-message--greeting{background:var(--fv-primary-subtle,color-mix(in srgb,var(--fv-primary) 10%,var(--fv-bg-card)))}.chat-panel-messages{flex:1 1;overflow-y:auto;padding:var(--fv-space-4);display:flex;flex-direction:column;gap:var(--fv-space-3);min-height:0}.chat-message{max-width:85%;padding:var(--fv-space-3) var(--fv-space-4);border-radius:var(--fv-radius-lg);word-wrap:break-word}.chat-message-content{font-family:var(--fv-font-body);font-size:var(--fv-text-sm);line-height:1.4;white-space:pre-wrap}.chat-message--user{background:var(--fv-bg-chat-user);color:var(--fv-text-inverse);align-self:flex-end;border-bottom-right-radius:var(--fv-radius-sm)}.chat-message--assistant{color:var(--fv-text-primary);border-bottom-left-radius:var(--fv-radius-sm)}.chat-message--assistant,.chat-message--loading{background:var(--fv-bg-chat-ai);align-self:flex-start}.chat-message--loading{display:inline-flex;align-items:center;gap:var(--fv-space-2);color:var(--fv-text-secondary);font-size:var(--fv-text-sm);padding:var(--fv-space-2) var(--fv-space-3)}.chat-loading-spinner{animation:chat-spin 1s linear infinite;color:var(--fv-text-secondary)}@keyframes chat-spin{to{transform:rotate(1turn)}}.chat-message--error{display:inline-flex;align-items:center;gap:var(--fv-space-2);align-self:flex-start;background:var(--fv-error-subtle);color:var(--fv-error);font-size:var(--fv-text-sm);padding:var(--fv-space-2) var(--fv-space-3);border-radius:var(--fv-radius-md)}.chat-panel-quick-replies{display:flex;flex-wrap:wrap;gap:var(--fv-space-2);padding:0;align-self:flex-start;max-width:85%}.chat-quick-reply{display:inline-flex;align-items:center;padding:var(--fv-space-1) var(--fv-space-3);background:var(--fv-primary-subtle);border:1px solid var(--fv-primary);border-radius:var(--fv-radius-full);font-family:var(--fv-font-body);font-size:var(--fv-text-xs);color:var(--fv-primary);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.chat-quick-reply:hover:not(:disabled){background:var(--fv-primary);border-color:var(--fv-primary);color:var(--fv-primary-on)}.chat-quick-reply:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.chat-quick-reply:disabled{cursor:not-allowed;opacity:.5}.chat-message-content--markdown p{margin:0;padding:0}.chat-message-content--markdown p+p{margin-top:4px}.chat-message-content--markdown strong{font-weight:700}.chat-message-content--markdown em{font-style:italic}.chat-message-content--markdown ol,.chat-message-content--markdown ul{margin:2px 0;padding-left:var(--fv-space-4);list-style-position:outside}.chat-message-content--markdown li{margin-bottom:2px}.chat-message-content--markdown li:last-child{margin-bottom:0}.chat-message-content--markdown li>p{margin:0}.chat-message-content--markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--fv-bg-inset);padding:0 var(--fv-space-1);border-radius:var(--fv-radius-sm)}.chat-message-content--markdown table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;margin:4px 0;font-size:.9em}.chat-message-content--markdown td,.chat-message-content--markdown th{border:var(--fv-border-width) solid var(--fv-border);padding:var(--fv-space-1) var(--fv-space-2);text-align:left;vertical-align:top}.chat-message-content--markdown th{font-weight:700;background:var(--fv-bg-inset)}.chat-message-content--markdown del{text-decoration:line-through}.fv-feedback-page{min-height:calc(100vh - 56px);background:var(--fv-bg-page)}.fv-feedback-container{max-width:600px;margin:0 auto;padding:var(--fv-space-6) var(--fv-space-4) var(--fv-space-12);display:flex;flex-direction:column;gap:var(--fv-space-5)}.fv-feedback-header h1{display:inline-flex;align-items:center;gap:var(--fv-space-2);font-family:var(--fv-font-display);font-size:var(--fv-text-xl);font-weight:700;color:var(--fv-text-primary);margin:0 0 var(--fv-space-2) 0}.fv-feedback-header p{font-size:var(--fv-text-sm);color:var(--fv-text-secondary);margin:0}.fv-feedback-type-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--fv-space-3);gap:var(--fv-space-3)}.fv-feedback-type-btn{display:flex;flex-direction:column;gap:var(--fv-space-2);padding:var(--fv-space-4) var(--fv-space-3);background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-lg);color:var(--fv-text-primary);font-family:var(--fv-font-body);font-size:var(--fv-text-sm);cursor:pointer;transition:background var(--fv-duration-fast) var(--fv-ease),border-color var(--fv-duration-fast) var(--fv-ease),color var(--fv-duration-fast) var(--fv-ease)}.fv-feedback-type-btn:hover{border-color:var(--fv-primary)}.fv-feedback-type-btn{flex-direction:row;align-items:center;text-align:left;gap:var(--fv-space-3)}.fv-feedback-type-btn>svg{flex-shrink:0}.fv-feedback-type-text{display:flex;flex-direction:column;gap:var(--fv-space-1);min-width:0}.fv-feedback-type-btn.is-selected{background:var(--fv-primary-subtle);border-color:var(--fv-primary);color:var(--fv-primary);box-shadow:0 0 0 1px var(--fv-primary)}.fv-feedback-type-btn.is-selected .fv-text-meta{color:var(--fv-primary)}.fv-feedback-type-btn:focus-visible{outline:none;box-shadow:var(--fv-shadow-focus)}.fv-feedback-field{position:relative}.fv-feedback-input,.fv-feedback-textarea{width:100%;padding:var(--fv-space-3);background:var(--fv-bg-card);border:1px solid var(--fv-border);border-radius:var(--fv-radius-md);font-family:var(--fv-font-body);font-size:var(--fv-text-sm);color:var(--fv-text-primary);transition:border-color var(--fv-duration-fast) var(--fv-ease)}.fv-feedback-input:focus,.fv-feedback-textarea:focus{outline:none;border-color:var(--fv-primary);box-shadow:var(--fv-shadow-focus)}.fv-feedback-textarea{resize:vertical;min-height:120px}.fv-feedback-counter{position:absolute;right:var(--fv-space-2);bottom:var(--fv-space-2);font-size:var(--fv-text-xs);color:var(--fv-text-tertiary);pointer-events:none}.fv-feedback-field:has(>.fv-feedback-input) .fv-feedback-counter{top:50%;bottom:auto;transform:translateY(-50%)}.fv-feedback-input{padding-right:calc(var(--fv-space-3) + 7ch)}.fv-feedback-counter.is-incomplete{color:var(--fv-error)}.fv-feedback-actions{display:flex;justify-content:space-between;gap:var(--fv-space-3)}.fv-feedback-actions .fv-btn{flex:1 1}.fv-feedback-reason{text-align:center;margin:0;color:var(--fv-text-secondary)}.fv-feedback-send{display:flex;flex-direction:column;gap:var(--fv-space-2);flex:1 1}.fv-feedback-actions .fv-btn--ghost{flex:0 0 auto}@media (max-width:500px){.fv-feedback-type-grid{grid-template-columns:1fr}}.recipe-editor{margin-top:var(--fv-space-5);padding:var(--fv-space-4);background:var(--fv-bg-inset);border:var(--fv-border-width) solid var(--fv-border);border-radius:var(--fv-radius-md);text-align:left}.recipe-editor .fv-input-label{display:block;margin:var(--fv-space-3) 0 var(--fv-space-1)}.recipe-editor-hint{margin:0 0 var(--fv-space-2);font-size:var(--fv-text-xs);color:var(--fv-text-secondary)}.recipe-editor-section{margin:var(--fv-space-5) 0 var(--fv-space-2);font-size:var(--fv-text-sm);font-weight:600;color:var(--fv-text-primary)}.recipe-editor-suggestions{margin-top:var(--fv-space-4);padding:var(--fv-space-3);background:var(--fv-bg-card);border:var(--fv-border-width) solid var(--fv-border);border-radius:var(--fv-radius-md);font-size:var(--fv-text-sm)}.recipe-editor-suggestions button{margin:0 var(--fv-space-1) var(--fv-space-1) 0}.recipe-editor-error{margin-top:var(--fv-space-3);font-size:var(--fv-text-sm);color:var(--fv-error)}.recipe-editor-actions{display:flex;gap:var(--fv-space-2);margin-top:var(--fv-space-5)}.recipe-editor-actions .fv-btn{flex:1 1}