@import url("https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Manrope:wght@400;500;600;700;800&display=swap");: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-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-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-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}.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--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--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-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)}.fv-chip--active,.fv-chip:hover{border-color:var(--fv-primary);color:var(--fv-primary)}.fv-chip--active{background:var(--fv-primary-subtle);font-weight:600}.fv-chip--diet{background:var(--fv-success-subtle);border-color:transparent;color:var(--fv-success)}.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;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)}.fv-segment-item:hover{color:var(--fv-primary)}.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-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-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-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);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:inline-flex;align-items:center;gap:var(--fv-space-1);font-size:var(--fv-text-xs);color:var(--fv-text-secondary)}.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)}.ingredients-list.collapsed>li:nth-child(n+5){display:none}.toggle-ingredients{align-self:flex-start;background:transparent;border:none;color:var(--fv-text-link);font-size:var(--fv-text-xs);font-weight:500;padding:0;cursor:pointer;text-decoration:underline}.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;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}.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}.recipe-card-footer{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--fv-space-1);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{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--fv-space-1);padding:var(--fv-space-2) var(--fv-space-1);background:transparent;border:none;border-radius:var(--fv-radius-sm);color:var(--fv-text-secondary);font-family:var(--fv-font-body);font-size:var(--fv-text-2xs);font-weight:500;text-align:center;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: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[data-saved=true]{color:var(--fv-accent)}.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}.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)}.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)}.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-body{padding:var(--fv-space-2) var(--fv-space-3)}.saved-recipes-card-title{font-size:var(--fv-text-sm);font-weight:600;color:var(--fv-text-primary);margin-bottom:var(--fv-space-1);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-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-thumb{flex-shrink:0;width:48px;height:48px;border-radius:var(--fv-radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center}.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-title{flex:1 1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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)}@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{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:center;gap:var(--fv-space-2);padding:var(--fv-space-2) var(--fv-space-3);background:var(--fv-bg-card);flex-shrink:0;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;height:44px;padding:0 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)}.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-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)}.chat-message-content--markdown li{margin-bottom:2px}.chat-message-content--markdown li:last-child{margin-bottom: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)}.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(3,1fr);grid-gap:var(--fv-space-3);gap:var(--fv-space-3)}.fv-feedback-type-btn{display:flex;flex-direction:column;align-items:center;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.is-selected{background:var(--fv-primary-subtle);border-color:var(--fv-primary);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-actions{display:flex;justify-content:space-between;gap:var(--fv-space-3)}.fv-feedback-actions .fv-btn{flex:1 1}@media (max-width:500px){.fv-feedback-type-grid{grid-template-columns:1fr}}