:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--color-text-primary);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--breakpoint-mobile: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--breakpoint-wide: 1280px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-xxl: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--touch-target-min: 44px;--touch-target-comfortable: 48px;--color-primary: #007bff;--color-primary-hover: #0069d9;--color-primary-light: #60a5fa;--color-success: #28a745;--color-success-hover: #218838;--color-success-light: #d4edda;--color-danger: #dc3545;--color-danger-hover: #c82333;--color-danger-light: #f8d7da;--color-warning: #fd7e14;--color-warning-hover: #e8590c;--color-warning-light: #fff3cd;--color-text-primary: #213547;--color-text-secondary: #6c757d;--color-text-muted: #adb5bd;--color-text-inverse: #ffffff;--color-bg: #ffffff;--color-bg-page: #ffffff;--color-bg-card: #ffffff;--color-bg-input: #ffffff;--color-bg-hover: #f8f9fa;--color-bg-stripe: #fafbfc;--color-border: #e9ecef;--color-border-light: #e2e8f0;--color-border-focus: #007bff;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-heavy: rgba(0, 0, 0, .2);--color-overlay: rgba(0, 0, 0, .5)}[data-theme=dark]{--color-primary: #60a5fa;--color-primary-hover: #3b82f6;--color-primary-light: #1e3a5f;--color-success: #34d058;--color-success-hover: #28a745;--color-success-light: rgba(34, 197, 94, .15);--color-danger: #f87171;--color-danger-hover: #dc3545;--color-danger-light: rgba(239, 68, 68, .15);--color-warning: #fbbf24;--color-warning-hover: #f59e0b;--color-warning-light: rgba(251, 191, 36, .15);--color-text-primary: #f3f4f6;--color-text-secondary: #a0aec0;--color-text-muted: #6b7280;--color-text-inverse: #1f2937;--color-bg: #1a1a2e;--color-bg-page: #1a1a2e;--color-bg-card: #2d3748;--color-bg-input: #374151;--color-bg-hover: #4a5568;--color-bg-stripe: #333a47;--color-border: #4b5563;--color-border-light: #4a5568;--color-border-focus: #60a5fa;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-heavy: rgba(0, 0, 0, .5);--color-overlay: rgba(0, 0, 0, .7)}a{font-weight:500;color:var(--color-primary);text-decoration:inherit}a:hover{color:var(--color-primary-hover)}a:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:4px}select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}body{margin:0;min-width:320px;min-height:100vh;font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-weight:500;font-family:inherit;background-color:var(--color-bg-hover);color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;min-height:var(--touch-target-min);min-width:var(--touch-target-min);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}button:hover{border-color:var(--color-primary);transform:translateY(-1px)}button:active{transform:translateY(0);background-color:var(--color-border)}button:focus{outline:none}button:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@media(hover:none){button:hover{transform:none;border-color:transparent}button:active{background-color:var(--color-border);transform:scale(.98)}}input,select,textarea{font-size:var(--font-size-base);min-height:var(--touch-target-min);padding:var(--spacing-sm) var(--spacing-md);border-radius:8px;border:1px solid var(--color-border);font-family:inherit;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media screen and (max-width:767px){input,select,textarea{font-size:16px}}.mobile-only{display:block}.tablet-up,.desktop-up{display:none}.text-mobile{font-size:var(--font-size-sm)}.text-tablet{font-size:var(--font-size-base)}.text-desktop{font-size:var(--font-size-lg)}.p-mobile{padding:var(--spacing-sm)}.p-tablet{padding:var(--spacing-md)}.p-desktop{padding:var(--spacing-lg)}.gap-mobile{gap:var(--spacing-sm)}.gap-tablet{gap:var(--spacing-md)}.gap-desktop{gap:var(--spacing-lg)}@media(min-width:480px){.mobile-only{display:none}.tablet-up{display:block}}@media(min-width:768px){.tablet-up,.desktop-up{display:block}}@media(min-width:1024px){.desktop-up{display:block}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color:var(--color-text-primary);background-color:var(--color-bg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 18px;border:none;border-radius:8px;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease;min-height:var(--touch-target-min);text-decoration:none;line-height:1.4}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse)}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover);transform:translateY(-1px)}.btn-danger{background-color:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover);transform:translateY(-1px)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-inverse)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-hover);transform:translateY(-1px)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-hover);color:var(--color-text-primary)}.btn-sm{padding:6px 12px;font-size:var(--font-size-xs);min-height:32px}.btn-lg{padding:14px 24px;font-size:var(--font-size-base);min-height:52px}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:var(--font-size-xs);font-weight:600;line-height:1.4;white-space:nowrap}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-neutral{background-color:var(--color-bg-hover);color:var(--color-text-secondary)}.form-input,.form-select{width:100%;padding:10px 14px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-input);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:500;outline:none;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.form-select{cursor:pointer;min-width:130px}.form-input:focus,.form-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #007bff26}[data-theme=dark] .form-input:focus,[data-theme=dark] .form-select:focus{box-shadow:0 0 0 3px #60a5fa33}.form-label{display:block;margin-bottom:6px;font-weight:600;font-size:var(--font-size-sm);color:var(--color-text-primary)}.form-input.error,.form-select.error{border-color:var(--color-danger)}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-start{display:flex;align-items:center;justify-content:flex-start}.flex-wrap{display:flex;flex-wrap:wrap}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.status-success{background-color:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success);padding:10px 16px;border-radius:8px;font-size:var(--font-size-sm)}.status-error{background-color:var(--color-danger-light);border:1px solid var(--color-danger);color:var(--color-danger);padding:10px 16px;border-radius:8px;font-size:var(--font-size-sm)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.95)}}.modal-overlay{position:fixed;inset:0;background-color:var(--color-overlay);display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:10vh 20px 20px;overflow-y:auto;animation:fadeIn .2s ease}.modal-content{background-color:var(--color-bg-card);color:var(--color-text-primary);border-radius:16px;box-shadow:0 20px 60px var(--color-shadow-heavy);animation:slideUp .3s ease;max-height:90vh;overflow-y:auto}@keyframes skeleton-pulse{0%{opacity:.6}50%{opacity:.3}to{opacity:.6}}.skeleton{background-color:var(--color-bg-hover);border-radius:8px;animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-text{height:14px;margin-bottom:8px;width:80%}.skeleton-text-short{height:14px;width:40%}.skeleton-card{height:120px;margin-bottom:12px}.skeleton-row{padding:12px 16px;border-bottom:1px solid var(--color-border)}.toast-container{position:fixed;top:20px;right:20px;z-index:100000;display:flex;flex-direction:column;gap:10px;max-width:420px;width:calc(100% - 40px);pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:12px;font-size:14px;font-weight:500;line-height:1.4;cursor:pointer;pointer-events:auto;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #00000026,0 2px 8px #0000001a;border:1px solid rgba(255,255,255,.2);word-break:break-word}.toast-enter{animation:toastSlideIn .3s cubic-bezier(.4,0,.2,1) forwards}.toast-exit{animation:toastSlideOut .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100%) scale(.9)}}.toast-success{background-color:#28a745f2;color:#fff}.toast-error{background-color:#dc3545f2;color:#fff}.toast-info{background-color:#007bfff2;color:#fff}.toast-warning{background-color:#fd7e14f2;color:#fff}[data-theme=dark] .toast-success{background-color:#34d058e6}[data-theme=dark] .toast-error{background-color:#f87171e6}[data-theme=dark] .toast-info{background-color:#60a5fae6}[data-theme=dark] .toast-warning{background-color:#fbbf24e6;color:#1f2937}.toast-icon{font-size:18px;flex-shrink:0;width:22px;text-align:center}.toast-message{flex:1}.toast-close{background:none;border:none;color:inherit;font-size:20px;cursor:pointer;padding:0;margin:0;opacity:.7;transition:opacity .2s ease;flex-shrink:0;min-height:auto;min-width:auto;line-height:1}.toast-close:hover{opacity:1;transform:none;border-color:transparent}@media(max-width:479px){.toast-container{top:10px;right:10px;left:10px;max-width:none;width:auto}.toast{padding:12px 14px;font-size:13px}}@keyframes authFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;animation:authFadeIn .5s cubic-bezier(.4,0,.2,1) forwards}.auth-container{width:100%;max-width:500px}.auth-back-link-wrapper{text-align:center;margin-bottom:1rem}.auth-back-link{color:var(--color-primary);text-decoration:none;font-size:.9rem;display:inline-flex;align-items:center;gap:.25rem;transition:opacity .2s}.auth-back-link-arrow{font-size:1.1rem}.auth-header{text-align:center;margin-bottom:2rem}.auth-header-title{color:#fff;font-size:2.5rem;margin-bottom:.5rem;text-shadow:0 2px 8px rgba(0,0,0,.3)}.auth-header-subtitle{color:#ffffffb3;font-size:1.1rem}.auth-theme-toggle-wrapper{display:flex;justify-content:center;margin-bottom:1.5rem}.auth-theme-toggle-btn{padding:.5rem 1rem;background-color:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s}@keyframes authCardSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card{background:#ffffff1a;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:16px;border:1px solid rgba(255,255,255,.15);padding:2rem;box-shadow:0 8px 32px #0003;animation:authCardSlideUp .6s cubic-bezier(.4,0,.2,1) .1s forwards;opacity:0}.auth-form-container{max-width:min(400px,calc(100vw - 32px));margin:0 auto;padding:clamp(1rem,4vw,2rem);background-color:var(--color-bg-card);border-radius:12px;border:1px solid var(--color-border)}.auth-form-title{color:var(--color-text-primary);text-align:center;margin-bottom:1.5rem;font-size:1.5rem}.auth-form-group{margin-bottom:1rem}.auth-form-group--last{margin-bottom:1.5rem}.auth-label{display:block;color:var(--color-text-primary);margin-bottom:.5rem;font-size:.9rem}.auth-input{width:100%;padding:.75rem;border-radius:6px;border:1px solid var(--color-border);background-color:var(--color-bg-input);color:var(--color-text-primary);font-size:1rem;outline:none;box-sizing:border-box}.auth-input:focus{border-color:var(--color-border-focus)}.auth-input--error{border-color:var(--color-danger)}.auth-input-wrapper{position:relative;display:flex;align-items:center}.auth-input--with-toggle{padding-right:3.5rem}.auth-password-toggle{position:absolute;right:.5rem;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;padding:.25rem .5rem;min-height:auto;min-width:auto;border-radius:4px;transition:color .2s}.auth-password-toggle:hover{color:var(--color-primary);transform:none;border-color:transparent}.auth-field-error{color:var(--color-danger);font-size:.8rem;margin-top:.25rem;display:block}.auth-submit-error{color:var(--color-danger);font-size:.9rem;margin-bottom:1rem;text-align:center;padding:.5rem;background-color:var(--color-danger-light);border-radius:6px;border:1px solid var(--color-danger)}.auth-submit-error--locked{color:var(--color-warning);background-color:var(--color-warning-light);border-color:var(--color-warning);padding:.75rem;font-weight:500}.auth-locked-title{font-size:1.2rem;margin-bottom:.5rem}.auth-submit-btn{width:100%;padding:.75rem;background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:1rem;cursor:pointer;transition:background-color .2s}.auth-submit-btn:hover{background-color:var(--color-primary-hover);transform:none}.auth-submit-btn:disabled{background-color:var(--color-border);cursor:not-allowed}.auth-submit-btn--success{background-color:var(--color-success)}.auth-submit-btn--success:hover{background-color:var(--color-success-hover)}.auth-switch{text-align:center;margin-top:1.5rem;color:var(--color-text-secondary)}.auth-switch-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;font-size:.9rem;padding:0;min-height:auto;min-width:auto}.auth-switch-btn:hover{transform:none;border-color:transparent}.auth-password-strength{margin-top:.5rem;padding:.5rem;background-color:var(--color-bg-hover);border-radius:4px;font-size:.75rem}.auth-password-strength-label{color:var(--color-text-muted);margin-bottom:.25rem}.auth-password-strength-grid{display:grid;grid-template-columns:1fr 1fr;gap:.25rem}.auth-password-req{color:var(--color-text-muted)}.auth-password-req--met{color:var(--color-success)}.auth-forgot-password-wrapper{text-align:right;margin-top:.5rem}.auth-form-subtitle{color:var(--color-text-secondary);text-align:center;margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.auth-success-message{color:var(--color-success);background-color:var(--color-success-light, rgba(34, 197, 94, .1));border:1px solid var(--color-success);border-radius:6px;padding:1rem;text-align:center;font-size:.9rem;line-height:1.6}.auth-success-message p{margin:.25rem 0}.landing-container{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.landing-header,.landing-hero,.landing-features,.landing-contact,.landing-final-cta,.landing-footer,.stats-section,.testimonials-section,.landing-testimonials-wrapper{position:relative;z-index:1}.landing-hero{min-height:60vh;display:flex;align-items:flex-start;justify-content:center;padding:8vh 2rem 4rem}.hero-content{max-width:800px;text-align:center}.hero-title{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;margin-bottom:1.5rem;line-height:1.2;padding-bottom:.1em}.hero-text-column{display:flex;flex-direction:column}.hero-content-layout .hero-text-column{text-align:center}.hero-content-layout .hero-cta{justify-content:center}.hero-subtitle{font-size:clamp(1.1rem,2.5vw,1.4rem);color:#3d5a7a;margin-bottom:2.5rem;line-height:1.6;max-width:600px;margin-left:auto;margin-right:auto;text-shadow:none}[data-theme=dark] .hero-subtitle{color:#ffffffd9;text-shadow:0 2px 8px rgba(0,0,0,.2)}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.cta-primary{padding:1rem 2rem;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #3b82f666}.cta-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #3b82f680;background:var(--color-primary-hover)}.cta-primary.cta-large{padding:1.25rem 2.5rem;font-size:1.2rem}.cta-secondary{padding:1rem 2rem;background:#ffffff80;color:#1e3a5f;border:1px solid rgba(30,58,95,.2);border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1)}.cta-secondary:hover{background:#ffffffa6;transform:translateY(-2px)}[data-theme=dark] .cta-secondary{background:#ffffff26;color:#fff;border-color:#ffffff4d}[data-theme=dark] .cta-secondary:hover{background:#ffffff40}.landing-features{padding:5rem 2rem}.features-title{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;color:#1e3a5f;text-align:center;margin-bottom:.75rem;text-shadow:none}[data-theme=dark] .features-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.features-subtitle{font-size:1.1rem;color:#4a6d8c;text-align:center;margin-bottom:3rem}[data-theme=dark] .features-subtitle{color:#ffffffb3}.features-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1.5rem;max-width:1200px;margin:0 auto}.feature-card{background:#ffffff73;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:16px;padding:2rem;border:1px solid rgba(255,255,255,.5);transition:all .3s cubic-bezier(.4,0,.2,1)}.feature-card:hover{box-shadow:0 12px 40px #0000001a;background:#ffffff8c;border-color:#fff9}.feature-card:not(.feature-card-3d):hover{transform:translateY(-4px)}[data-theme=dark] .feature-card{background:#1f29374d;border-color:#4b55634d}[data-theme=dark] .feature-card:hover{background:#1f293766;border-color:#4b556380;box-shadow:0 12px 40px #0000004d}.feature-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#3b82f61f;border-radius:12px;margin-bottom:1rem}[data-theme=dark] .feature-icon{background:#60a5fa26}.feature-title{font-size:1.25rem;font-weight:600;color:#1e3a5f;margin-bottom:.5rem}[data-theme=dark] .feature-title{color:#fff}.feature-description{font-size:.95rem;color:#4a6d8c;line-height:1.6;margin:0}[data-theme=dark] .feature-description{color:#ffffffb3}.landing-contact{padding:5rem 2rem}.contact-title{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;color:#1e3a5f;text-align:center;margin-bottom:.75rem;text-shadow:none}[data-theme=dark] .contact-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.contact-subtitle{font-size:1.1rem;color:#4a6d8c;text-align:center;margin-bottom:2.5rem}[data-theme=dark] .contact-subtitle{color:#ffffffb3}.contact-form{max-width:600px;margin:0 auto;background:#ffffff73;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:16px;padding:2rem;border:1px solid rgba(255,255,255,.5)}.contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.contact-form-group{display:flex;flex-direction:column;gap:.5rem}.contact-form-group.contact-form-full{margin-bottom:1rem}.contact-form-group label{font-size:.9rem;font-weight:500;color:#2c3e50}[data-theme=dark] .contact-form-group label{color:#ffffffe6}.contact-form-group input,.contact-form-group select,.contact-form-group textarea{padding:.75rem 1rem;background:#fff9;border:1px solid rgba(0,0,0,.1);border-radius:8px;color:#2c3e50;font-size:1rem;font-family:inherit;transition:all .2s ease}[data-theme=dark] .contact-form-group input,[data-theme=dark] .contact-form-group select,[data-theme=dark] .contact-form-group textarea{background:#ffffff1a;border-color:#fff3;color:#fff}.contact-form-group input::placeholder,.contact-form-group textarea::placeholder{color:#00000059}[data-theme=dark] .contact-form-group input::placeholder,[data-theme=dark] .contact-form-group textarea::placeholder{color:#fff6}.contact-form-group input:focus,.contact-form-group select:focus,.contact-form-group textarea:focus{outline:none;border-color:#3b82f699;background:#ffffffbf}[data-theme=dark] .contact-form-group input:focus,[data-theme=dark] .contact-form-group select:focus,[data-theme=dark] .contact-form-group textarea:focus{background:#ffffff26}.contact-form-group select{cursor:pointer}.contact-form-group select option{background:#fff;color:#2c3e50}[data-theme=dark] .contact-form-group select option{background:#1f2937;color:#fff}.contact-form-group textarea{resize:vertical;min-height:120px}.contact-status{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;text-align:center}.contact-status.success{background:#22c55e33;border:1px solid rgba(34,197,94,.3);color:#86efac}.contact-status.error{background:#ef444433;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.contact-submit{width:100%}.contact-submit:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .contact-form{background:#1f29374d;border-color:#4b55634d}[data-theme=dark] .contact-form-group input,[data-theme=dark] .contact-form-group select,[data-theme=dark] .contact-form-group textarea{background:#1f293780;border-color:#4b556380}.landing-final-cta{padding:5rem 2rem;text-align:center}.cta-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;color:#1e3a5f;margin-bottom:1rem;text-shadow:none}[data-theme=dark] .cta-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.cta-subtitle{font-size:1.1rem;color:#4a6d8c;margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto}[data-theme=dark] .cta-subtitle{color:#ffffffb3}.landing-footer{padding:2rem;text-align:center;color:#5a7d9a;font-size:.9rem}[data-theme=dark] .landing-footer{color:#ffffff80}.landing-footer-link{color:#667eea;text-decoration:none;font-size:.85rem;font-weight:500;transition:opacity .15s}.landing-footer-link:hover{opacity:.7;text-decoration:underline}@media(min-width:480px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.landing-hero{min-height:85vh}.hero-cta{gap:1.5rem}.hero-content-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;max-width:1100px}.hero-content-layout .hero-text-column{text-align:left}.hero-content-layout .hero-cta{justify-content:flex-start}.hero-content-layout .app-preview-wrapper{margin-top:0}}.landing-testimonials-wrapper{padding:0}@media(min-width:1024px){.features-grid{grid-template-columns:repeat(4,1fr)}.feature-card{padding:2.5rem}}@media(max-width:479px){.landing-hero{min-height:auto;padding:3rem 1.5rem 2rem}.hero-cta{flex-direction:column;align-items:center}.cta-primary,.cta-secondary{width:100%;max-width:280px}.landing-features{padding:3rem 1.5rem}.feature-card{padding:1.5rem}.landing-final-cta,.landing-contact{padding:3rem 1.5rem}.contact-form{padding:1.5rem}.contact-form-row{grid-template-columns:1fr}.landing-header{padding:.75rem 1rem!important}.app-preview-wrapper{margin-top:2rem}.app-preview-frame{max-width:100%}.app-preview-content,.testimonials-carousel{min-height:160px}.testimonial-quote{font-size:1rem}.stat-number{font-size:2rem}.stats-section-title,.testimonials-title{font-size:1.75rem}}@keyframes revealUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes revealLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes revealRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes wordReveal{0%{transform:translateY(20px);filter:blur(4px)}to{transform:translateY(0);filter:blur(0)}}@keyframes gradientShimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes floatUpOrb{0%{transform:translateY(0) scale(.9);opacity:0}8%{opacity:1}50%{opacity:.8;transform:translateY(-40vh) scale(1.1)}92%{opacity:0}to{transform:translateY(-80vh) scale(.9);opacity:0}}@keyframes countPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes slideInRight{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0)}}@keyframes progressGlow{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6b3}}@keyframes fadeInUp{0%{transform:translateY(20px);filter:blur(4px)}to{transform:translateY(0);filter:blur(0)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes mockItemReveal{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.landing-reveal{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:no-preference){.landing-reveal:not(.is-visible){opacity:0;transform:translateY(40px)}.landing-reveal.reveal-left:not(.is-visible){transform:translate(-40px)}.landing-reveal.reveal-right:not(.is-visible){transform:translate(40px)}}.landing-reveal.is-visible{opacity:1;transform:translateY(0) translate(0)}.hero-word{display:inline-block;padding-bottom:.05em}.hero-title-gradient{color:#7c3aed}[data-theme=dark] .hero-title-gradient{color:#a78bfa}.feature-card-3d{transition:box-shadow .3s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;will-change:transform}.feature-card.feature-card-3d:hover{transform:none}.scroll-progress-bar{position:fixed;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#3b82f6,#8b5cf6,#ec4899,#f97316);transform-origin:left;transform:scaleX(0);z-index:1001;pointer-events:none;transition:transform .1s linear}[data-theme=dark] .scroll-progress-bar{background:linear-gradient(90deg,#60a5fa,#a78bfa,#f472b6,#fb923c)}.floating-elements-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.floating-orb{position:absolute;border-radius:50%;filter:blur(8px);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;animation:floatUpOrb linear infinite}.stats-section{padding:5rem 2rem}.stats-section-title{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;color:#1e3a5f;text-align:center;margin-bottom:.75rem}[data-theme=dark] .stats-section-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.stats-section-subtitle{font-size:1.1rem;color:#4a6d8c;text-align:center;margin-bottom:3rem}[data-theme=dark] .stats-section-subtitle{color:#ffffffb3}.stats-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;max-width:900px;margin:0 auto}.stat-card{background:#ffffff73;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:16px;padding:2rem;border:1px solid rgba(255,255,255,.5);text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001a}[data-theme=dark] .stat-card{background:#1f29374d;border-color:#4b55634d}[data-theme=dark] .stat-card:hover{box-shadow:0 12px 40px #0000004d}.stat-icon{font-size:2.5rem;margin-bottom:.75rem;display:block}.stat-number{font-size:clamp(2.5rem,5vw,3.5rem);font-weight:800;background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2;margin-bottom:.5rem}[data-theme=dark] .stat-number{background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:1.1rem;font-weight:600;color:#4a6d8c}[data-theme=dark] .stat-label{color:#ffffffb3}.testimonials-section{padding:5rem 2rem}.testimonials-title{font-size:clamp(2rem,4vw,2.5rem);font-weight:700;color:#1e3a5f;text-align:center;margin-bottom:.75rem}[data-theme=dark] .testimonials-title{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.2)}.testimonials-subtitle{font-size:1.1rem;color:#4a6d8c;text-align:center;margin-bottom:3rem}[data-theme=dark] .testimonials-subtitle{color:#ffffffb3}.testimonials-carousel{max-width:700px;margin:0 auto;position:relative;min-height:200px}.testimonial-card{background:#ffffff73;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:16px;padding:2rem;border:1px solid rgba(255,255,255,.5);animation:slideInRight .5s cubic-bezier(.4,0,.2,1) forwards}[data-theme=dark] .testimonial-card{background:#1f29374d;border-color:#4b55634d}.testimonial-quote{font-size:1.1rem;color:#3d5a7a;line-height:1.7;margin-bottom:1.5rem;font-style:italic;position:relative;padding-left:1.5rem}.testimonial-quote:before{content:"“";position:absolute;left:0;top:-.25rem;font-size:2rem;color:#3b82f6;font-style:normal;line-height:1}[data-theme=dark] .testimonial-quote{color:#ffffffd9}[data-theme=dark] .testimonial-quote:before{color:#60a5fa}.testimonial-author{display:flex;align-items:center;gap:1rem}.testimonial-avatar{width:48px;height:48px;border-radius:50%;background:#3b82f61f;display:flex;align-items:center;justify-content:center;font-size:1.5rem}[data-theme=dark] .testimonial-avatar{background:#60a5fa26}.testimonial-name{font-weight:600;color:#1e3a5f;font-size:1rem}[data-theme=dark] .testimonial-name{color:#fff}.testimonial-role{font-size:.85rem;color:#4a6d8c}[data-theme=dark] .testimonial-role{color:#fff9}.testimonials-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1.5rem}.testimonial-dot{width:10px;height:10px;border-radius:50%;border:none;background:#3b82f64d;cursor:pointer;transition:all .3s ease;padding:0}.testimonial-dot.active{background:#3b82f6;transform:scale(1.3)}[data-theme=dark] .testimonial-dot{background:#60a5fa4d}[data-theme=dark] .testimonial-dot.active{background:#60a5fa}.testimonials-disclaimer{text-align:center;font-size:.75rem;color:#89a;margin-top:1.5rem;font-style:italic}[data-theme=dark] .testimonials-disclaimer{color:#fff6}.app-preview-wrapper{margin-top:2.5rem;perspective:1000px}.app-preview-frame{background:#ffffffb3;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border-radius:12px;border:1px solid rgba(255,255,255,.5);overflow:hidden;box-shadow:0 20px 60px #00000026;max-width:480px;margin:0 auto;transform:rotateY(-2deg) rotateX(2deg);transition:transform .5s cubic-bezier(.4,0,.2,1)}.app-preview-frame:hover{transform:rotateY(0) rotateX(0)}[data-theme=dark] .app-preview-frame{background:#1f293799;border-color:#4b556366;box-shadow:0 20px 60px #0006}.app-preview-toolbar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#f3f4f6cc;border-bottom:1px solid rgba(0,0,0,.08)}[data-theme=dark] .app-preview-toolbar{background:#11182799;border-bottom-color:#ffffff14}.toolbar-dot{width:10px;height:10px;border-radius:50%}.toolbar-dot.red{background:#ef4444}.toolbar-dot.yellow{background:#f59e0b}.toolbar-dot.green{background:#22c55e}.toolbar-url{flex:1;margin-left:8px;padding:4px 10px;background:#fff9;border-radius:6px;font-size:.7rem;color:#6b7280;font-family:monospace}[data-theme=dark] .toolbar-url{background:#37415199;color:#ffffff80}.app-preview-content{padding:16px;min-height:200px}.mock-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.08)}[data-theme=dark] .mock-header{border-bottom-color:#ffffff14}.mock-header-title{font-size:.9rem;font-weight:700;color:#1e3a5f}[data-theme=dark] .mock-header-title{color:#fff}.mock-header-badge{font-size:.65rem;padding:3px 8px;background:#3b82f61f;color:#3b82f6;border-radius:12px;font-weight:600}[data-theme=dark] .mock-header-badge{background:#60a5fa26;color:#60a5fa}.mock-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;margin-bottom:6px;opacity:0;animation:mockItemReveal .4s cubic-bezier(.4,0,.2,1) forwards;background:#fff6}[data-theme=dark] .mock-item{background:#3741514d}.mock-item-color{width:8px;height:32px;border-radius:4px;flex-shrink:0}.mock-item-details{flex:1;min-width:0}.mock-item-name{font-size:.75rem;font-weight:600;color:#374151}[data-theme=dark] .mock-item-name{color:#ffffffe6}.mock-item-meta{font-size:.65rem;color:#9ca3af}[data-theme=dark] .mock-item-meta{color:#fff6}.mock-item-qty{font-size:.7rem;font-weight:600;color:#6b7280;white-space:nowrap}[data-theme=dark] .mock-item-qty{color:#fff9}@media(min-width:768px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:479px){.stats-section,.testimonials-section{padding:3rem 1.5rem}.stat-card,.testimonial-card{padding:1.5rem}.floating-orb:nth-child(2n){display:none}.app-preview-frame,.app-preview-frame:hover{transform:none}}@media(hover:none){.feature-card-3d{transition:all .3s cubic-bezier(.4,0,.2,1)!important}}@media(prefers-reduced-motion:reduce){.landing-reveal{opacity:1!important;transform:none!important;transition:none!important}.floating-orb{display:none!important}.feature-card-3d,.scroll-progress-bar{transition:none!important}.testimonial-card,.mock-item{animation:none!important;opacity:1!important}.app-preview-frame{transform:none!important;transition:none!important}.stat-card:hover{transform:none!important}}.pantry-container{padding:20px;font-family:Arial,sans-serif;max-width:1600px;margin:0 auto;background-color:var(--color-bg-hover);min-height:100vh;border-radius:16px;box-shadow:0 8px 32px var(--color-shadow-heavy)}.pantry-title-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;background-color:var(--color-bg-card);padding:20px;border-radius:10px;box-shadow:0 2px 4px var(--color-shadow)}.pantry-title-spacer{width:120px}.pantry-title{margin:0;color:var(--color-text-primary);font-size:32px}.pantry-unit-toggle{padding:10px 16px;color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px;box-shadow:0 2px 4px var(--color-shadow);transition:background-color .2s ease;width:120px;height:40px}.pantry-unit-toggle.is-metric{background-color:var(--color-primary)}.pantry-unit-toggle.is-imperial{background-color:#ff6b35}.pantry-error{background-color:var(--color-danger-light);color:var(--color-danger);padding:15px;border-radius:8px;margin-bottom:20px;border:1px solid var(--color-danger)}.pantry-controls{display:flex;gap:25px;margin-bottom:25px;flex-wrap:wrap;background-color:var(--color-bg-card);padding:25px;border-radius:10px;box-shadow:0 2px 4px var(--color-shadow);align-items:center;justify-content:space-between}.pantry-controls-left{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.pantry-controls-right{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.pantry-filter-label{margin-right:10px;font-weight:700;color:var(--color-text-secondary)}.pantry-filter-select{padding:10px 14px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-input);color:var(--color-text-secondary);font-size:14px;font-weight:500;outline:none;cursor:pointer;box-shadow:0 1px 3px var(--color-shadow);min-width:140px}.pantry-filter-select.sort-select{min-width:180px}.pantry-total-badge{padding:10px 15px;background-color:var(--color-bg-hover);border-radius:8px;border:1px solid var(--color-border)}.pantry-total-badge span{color:var(--color-text-secondary);font-weight:700;font-size:14px}.pantry-add-btn{padding:12px 24px;background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:16px;box-shadow:0 2px 4px var(--color-shadow);transition:all .2s ease}.pantry-add-btn:hover{background-color:var(--color-success-hover);transform:translateY(-1px)}.pantry-items-container{background-color:#fff4e6;border:1px solid var(--color-border);border-radius:10px;box-shadow:0 2px 4px var(--color-shadow);overflow:hidden}[data-theme=dark] .pantry-items-container{background-color:var(--color-bg-card)}.pantry-loading,.pantry-empty-state{padding:40px;text-align:center;color:var(--color-text-secondary)}.pantry-category-header{display:flex;align-items:center;padding:12px 20px;cursor:pointer;transition:background-color .2s ease;background-color:#e6f3ff;border-bottom:1px solid var(--color-border);gap:10px}[data-theme=dark] .pantry-category-header{background-color:var(--color-bg-input);border-bottom-color:var(--color-border)}.pantry-category-header:hover{background-color:#d1ecf1}[data-theme=dark] .pantry-category-header:hover{background-color:var(--color-bg-hover)}.pantry-category-color-bar{width:8px;height:20px;border-radius:4px}.pantry-category-icon{font-size:18px;line-height:1}.pantry-category-title{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--color-text-primary);font-size:16px;margin-right:12px}.pantry-category-count{font-size:12px;color:var(--color-text-secondary);margin-right:12px}.pantry-category-arrow{font-size:14px;color:var(--color-text-primary);transition:transform .25s ease;display:inline-block}.pantry-category-arrow.is-expanded{transform:rotate(90deg)}.pantry-category-items{overflow:hidden;transition:max-height .38s ease-in-out}.pantry-category-items.is-collapsed{max-height:0}.pantry-category-items.is-expanded{max-height:2000px}.pantry-item-row{display:flex;flex-direction:row;gap:8px;padding:12px 16px;border-bottom:1px solid var(--color-bg-hover);min-height:45px;transition:all .3s cubic-bezier(.4,0,.2,1);justify-content:space-between;align-items:center}.pantry-item-row.is-deleting{height:0;min-height:0;padding:0;opacity:0;transform:translate(-30px) scale(.95);border-bottom:none;overflow:hidden;max-height:0}.pantry-item-row.even-row{background-color:var(--color-bg-card)}.pantry-item-row.odd-row{background-color:var(--color-bg-stripe)}.pantry-item-content{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0;cursor:pointer}.pantry-item-row-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.pantry-item-row-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.pantry-item-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pantry-meta-tag{font-size:11px;font-weight:500;padding:1px 8px;border-radius:8px;background:#0000000d;color:var(--color-text-secondary)}[data-theme=dark] .pantry-meta-tag{background:#ffffff14}.pantry-meta-date{font-size:11px;color:var(--color-text-muted)}.pantry-item-info{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;flex-wrap:wrap}.pantry-color-bar{width:4px;height:20px;border-radius:2px;flex-shrink:0}.pantry-item-name{font-weight:700;font-size:15px;color:var(--color-text-primary)}.pantry-item-category{color:var(--color-text-secondary);font-size:13px;font-style:italic}.pantry-item-details{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}.pantry-item-detail{display:flex;align-items:center;gap:5px}.pantry-item-detail-label{color:var(--color-text-secondary);font-size:12px}.pantry-delete-btn-inline{background-color:transparent;color:var(--color-danger);opacity:0;transition:opacity .15s;border:none;border-radius:4px;padding:8px;cursor:pointer;font-size:16px;transition:background-color .2s;flex-shrink:0;margin-left:auto}.pantry-item-row:hover .pantry-delete-btn-inline{opacity:1}.pantry-delete-btn-inline:hover{background-color:var(--color-danger-light)}@media(hover:none){.pantry-delete-btn-inline{opacity:1}}.pantry-expiration-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.pantry-expiration-badge:hover{opacity:.8}.pantry-exp-safe{background:#10b9811f;color:#10b981}.pantry-exp-warning{background:#f59e0b1f;color:#f59e0b}.pantry-exp-urgent{background:#ef44441f;color:#ef4444}.pantry-exp-expired{background:#ef44441a;color:#ef4444;text-decoration:line-through;opacity:.7}.pantry-exp-none{background:#0000000a;color:var(--color-text-muted);font-weight:500}[data-theme=dark] .pantry-exp-safe{background:#10b98133}[data-theme=dark] .pantry-exp-warning{background:#f59e0b33}[data-theme=dark] .pantry-exp-urgent{background:#ef444433}[data-theme=dark] .pantry-exp-expired{background:#ef444426}[data-theme=dark] .pantry-exp-none{background:#ffffff0f}.pantry-expiration-edit{display:inline-flex}.pantry-expiration-date-input{font-size:12px;padding:2px 6px;border:1px solid var(--color-primary);border-radius:6px;background:var(--color-bg-input);color:var(--color-text-primary);outline:none}.pantry-location-tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:10px;white-space:nowrap}.pantry-location-fridge{background:#3b82f61a;color:#3b82f6}.pantry-location-freezer{background:#63b3ed1f;color:#0ea5e9}.pantry-location-pantry{background:#f59e0b1a;color:#f59e0b}[data-theme=dark] .pantry-location-fridge{background:#3b82f62e}[data-theme=dark] .pantry-location-freezer{background:#63b3ed2e}[data-theme=dark] .pantry-location-pantry{background:#f59e0b2e}.pantry-edit-overlay{position:fixed;inset:0;background:#0009;z-index:99999;overflow-y:auto;padding:3vh 20px 20px;display:flex;align-items:flex-start;justify-content:center;animation:fadeIn .2s ease;transition:opacity .25s ease}.pantry-edit-overlay.is-closing{opacity:0}.pantry-edit-modal{background:var(--color-bg-card);border-radius:14px;width:100%;max-width:380px;margin-top:8vh;box-shadow:0 20px 60px var(--color-shadow-heavy);border:1px solid var(--color-border);animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease}.pantry-edit-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.pantry-edit-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--color-border)}.pantry-edit-header h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pantry-edit-close{background:none;border:none;font-size:22px;color:var(--color-text-muted);cursor:pointer;padding:0 4px;line-height:1}.pantry-edit-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.pantry-edit-field label{display:block;font-size:12px;font-weight:600;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.pantry-edit-optional{font-weight:400;text-transform:none;letter-spacing:0;color:var(--color-text-muted)}.pantry-edit-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box}.pantry-edit-input:focus{outline:none;border-color:var(--color-primary)}.pantry-freeze-action-btn{width:100%;padding:10px;border:1.5px dashed #0ea5e9;border-radius:10px;background:#0ea5e90f;color:#0ea5e9;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.pantry-freeze-action-btn:hover{background:#0ea5e91f;border-style:solid}[data-theme=dark] .pantry-freeze-action-btn{background:#0ea5e91a}.pantry-edit-footer{padding:12px 20px 16px;display:flex;justify-content:flex-end}.pantry-edit-save-btn{padding:8px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.pantry-edit-save-btn:hover{opacity:.9}.pantry-quantity-display{padding:6px 10px;border-radius:6px;font-weight:700;font-size:14px;color:var(--color-text-primary);min-width:80px;text-align:center;cursor:pointer;transition:all .2s ease}.pantry-quantity-display.is-metric{background-color:#e7f3ff;border:1px solid #4dabf7}.pantry-quantity-display.is-metric:hover{background-color:#d4e9ff;transform:scale(1.02)}.pantry-quantity-display.is-imperial{background-color:#fff7e7;border:1px solid #ffb347}.pantry-quantity-display.is-imperial:hover{background-color:#fff3d4;transform:scale(1.02)}[data-theme=dark] .pantry-quantity-display.is-metric{background-color:#60a5fa26;border-color:var(--color-primary);color:var(--color-text-primary)}[data-theme=dark] .pantry-quantity-display.is-metric:hover{background-color:#60a5fa40}[data-theme=dark] .pantry-quantity-display.is-imperial{background-color:#ffb34726;border-color:#ffb347;color:var(--color-text-primary)}[data-theme=dark] .pantry-quantity-display.is-imperial:hover{background-color:#ffb34740}.pantry-quantity-editor{display:flex;align-items:center;gap:4px;padding:4px;background-color:var(--color-bg-input);border:2px solid var(--color-primary);border-radius:6px;min-width:180px}.pantry-quantity-editor-input{border:none;outline:none;font-size:14px;width:80px;padding:4px;background-color:transparent;color:var(--color-text-primary)}.pantry-quantity-editor-select{border:none;outline:none;font-size:14px;padding:4px;min-width:50px;background-color:transparent;color:var(--color-text-primary)}.pantry-quantity-editor-save{border:none;background:var(--color-success);color:var(--color-text-inverse);font-size:12px;padding:4px 6px;border-radius:3px;cursor:pointer}.pantry-quantity-editor-save:disabled{background:var(--color-text-secondary);cursor:not-allowed;opacity:.6}.pantry-quantity-editor-cancel{border:none;background:var(--color-danger);color:var(--color-text-inverse);font-size:12px;padding:4px 6px;border-radius:3px;cursor:pointer}.pantry-inline-display{cursor:pointer;padding:3px 6px;border-radius:4px;border:1px solid transparent;transition:all .2s;min-width:50px;display:inline-block;color:var(--color-text-secondary);background-color:transparent;font-size:13px}.pantry-inline-display:hover{background-color:var(--color-bg-hover)}.pantry-inline-input{padding:3px 6px;border:2px solid var(--color-primary);border-radius:4px;font-size:13px;min-width:50px;outline:none;background-color:var(--color-bg-input);color:var(--color-text-primary)}.pantry-inline-wrapper{position:relative;display:inline-block}.pantry-warning-dialog{position:absolute;top:100%;left:0;background-color:var(--color-warning-light);border:1px solid #ffeaa7;border-radius:8px;padding:15px;box-shadow:0 4px 12px var(--color-shadow);z-index:1000;min-width:250px}[data-theme=dark] .pantry-warning-dialog{background-color:#fbbf2426;border-color:var(--color-warning)}.pantry-warning-text{color:#856404;font-size:14px;margin-bottom:10px}[data-theme=dark] .pantry-warning-text{color:var(--color-warning)}.pantry-warning-actions{display:flex;gap:8px}.pantry-warning-confirm{padding:6px 12px;background-color:var(--color-warning);color:#212529;border:none;border-radius:4px;cursor:pointer;font-size:12px}.pantry-warning-cancel{padding:6px 12px;background-color:var(--color-text-secondary);color:var(--color-text-inverse);border:none;border-radius:4px;cursor:pointer;font-size:12px}.pantry-modal-overlay{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;z-index:1000;transition:background-color .3s ease;padding-top:10vh;background-color:#0000}.pantry-modal-overlay.is-animating{background-color:var(--color-overlay)}.pantry-modal-panel{background-color:var(--color-bg-hover);color:var(--color-text-primary);border-radius:12px;padding:30px;width:90%;max-width:500px;max-height:90vh;overflow:auto;box-shadow:0 10px 30px var(--color-shadow-heavy);transform:scale(.9) translateY(-10px);opacity:0;transition:all .3s ease}.pantry-modal-panel.is-animating{transform:scale(1) translateY(0);opacity:1}.pantry-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.pantry-modal-header h2{margin:0;color:var(--color-text-primary)}.pantry-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--color-text-secondary);padding:5px}.pantry-modal-close:hover{color:var(--color-text-primary)}.pantry-modal-form{display:grid;gap:20px}.pantry-modal-label{display:block;margin-bottom:8px;font-weight:700;color:var(--color-text-secondary)}.pantry-modal-input{width:100%;padding:12px 16px;border:2px solid var(--color-border);border-radius:8px;font-size:14px;background-color:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box;outline:none}.pantry-modal-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #007bff26}[data-theme=dark] .pantry-modal-input:focus{box-shadow:0 0 0 3px #60a5fa33}.pantry-form-grid{display:grid;grid-template-columns:1fr;gap:12px}.pantry-modal-expiration{display:flex;flex-direction:column;gap:8px}.pantry-modal-auto-hint{font-weight:400;font-size:11px;color:var(--color-success)}.pantry-modal-date-input{max-width:200px}.pantry-modal-quickset{display:flex;gap:6px;flex-wrap:wrap}.pantry-quickset-btn{padding:4px 12px;border-radius:14px;border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.pantry-quickset-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pantry-quickset-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pantry-modal-location-pills{display:flex;gap:6px;flex-wrap:wrap}.pantry-location-pill{padding:5px 14px;border-radius:16px;border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:4px}.pantry-location-pill:hover{border-color:var(--color-text-secondary)}.pantry-location-pill.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.pantry-modal-actions{display:flex;gap:15px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}.pantry-modal-cancel-btn{padding:12px 24px;background-color:var(--color-text-secondary);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700}.pantry-modal-cancel-btn:hover{opacity:.9}.pantry-modal-another-btn{padding:12px 24px;background-color:var(--color-primary, #7c3aed);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700}.pantry-modal-another-btn:hover:not(:disabled){opacity:.9}.pantry-modal-another-btn:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}.pantry-modal-submit-btn{padding:12px 24px;background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700}.pantry-modal-submit-btn:hover:not(:disabled){background-color:var(--color-success-hover)}.pantry-modal-submit-btn:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}@media(max-width:479px){.pantry-item-detail-label{display:none}.pantry-item-details{gap:6px}.pantry-item-name{font-size:13px}.pantry-item-category{display:none}.pantry-item-meta{gap:4px}.pantry-item-row{padding:8px 10px;gap:6px}.pantry-quantity-display{padding:4px 8px;font-size:12px;min-width:60px}.pantry-date,.pantry-modifier{font-size:11px}}@media(min-width:480px){.pantry-form-grid{grid-template-columns:1fr 1fr;gap:15px}}@media(min-width:768px){.pantry-item-row{padding:12px 25px}.pantry-item-info{flex-wrap:nowrap}}.pantry-delete-btn{padding:8px 10px;background-color:var(--color-danger-light);color:var(--color-danger);border:none;border-radius:4px;cursor:pointer;font-size:14px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pantry-delete-btn:hover{background-color:#f5c6cb}.pantry-quantity-input{width:60px;padding:4px 6px;border:1px solid var(--color-border);border-radius:4px;text-align:center;font-size:14px;min-height:36px}.pantry-unit-select{padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background:var(--color-bg-input);min-height:36px;color:var(--color-text-primary)}.pantry-modifier{padding:2px 8px;border-radius:4px;font-size:12px;background-color:var(--color-border);color:var(--color-text-secondary)}.pantry-date{font-size:12px;color:var(--color-text-secondary)}.pantry-filters{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}.pantry-filter-item{flex:1 1 auto;min-width:140px}.pantry-filter-item select,.pantry-filter-item input{width:100%;min-height:44px;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px}@media(max-width:479px){.pantry-filters{gap:10px}.pantry-filter-item{min-width:100%}}.pantry-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.pantry-header h2{margin:0;font-size:24px}.pantry-header-btn{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;min-height:44px;white-space:nowrap}@media(max-width:479px){.pantry-header{flex-direction:column;align-items:stretch}.pantry-header h2{font-size:20px;text-align:center}.pantry-header-btn{width:100%}}.pantry-empty{text-align:center;padding:40px 20px;color:var(--color-text-secondary)}[data-theme=dark] .pantry-quantity-input,[data-theme=dark] .pantry-unit-select{background-color:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.recipe-manager{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto;background-color:var(--color-bg-hover);min-height:100vh;border-radius:16px;box-shadow:0 8px 32px #0000001f}.recipe-header-card{text-align:center;margin-bottom:25px;background-color:var(--color-bg-card);padding:20px;border-radius:10px;box-shadow:0 2px 4px var(--color-shadow)}.recipe-title-bar{display:flex;justify-content:space-between;align-items:center}.recipe-title-spacer{width:120px}.recipe-header-title{margin:0;color:var(--color-text-primary);font-size:32px}.recipe-unit-toggle{padding:10px 16px;color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:13px;box-shadow:0 2px 4px var(--color-shadow);transition:background-color .2s ease;width:120px;height:40px}.recipe-unit-toggle.is-metric{background-color:var(--color-primary)}.recipe-unit-toggle.is-imperial{background-color:#ff6b35}.recipe-error{background-color:var(--color-danger-light);color:var(--color-danger);padding:15px;border-radius:8px;margin-bottom:20px;border:1px solid var(--color-danger)}.recipe-controls{display:flex;gap:25px;margin-bottom:25px;flex-wrap:wrap;background-color:var(--color-bg-card);padding:25px;border-radius:10px;box-shadow:0 2px 4px var(--color-shadow);align-items:center;justify-content:space-between}.recipe-controls-left{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.recipe-controls-right{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.recipe-filter-label{margin-right:10px;font-weight:700;color:var(--color-text-secondary)}.recipe-filter-select{padding:10px 14px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-input);color:var(--color-text-secondary);font-size:14px;font-weight:500;outline:none;cursor:pointer;box-shadow:0 1px 3px var(--color-shadow);min-width:130px}.recipe-filter-select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #007bff26}.recipe-filter-input{padding:10px 14px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-input);color:var(--color-text-secondary);font-size:14px;font-weight:500;outline:none;box-shadow:0 1px 3px var(--color-shadow);min-width:200px}.recipe-filter-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px #007bff26}.recipe-total-count{padding:10px 15px;background-color:var(--color-bg-hover);border-radius:8px;border:1px solid var(--color-border);color:var(--color-text-secondary);font-weight:700;font-size:14px}.recipe-create-btn{padding:12px 24px;background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-weight:700;font-size:16px;box-shadow:0 2px 4px var(--color-shadow);transition:all .2s ease}.recipe-create-btn:hover{background-color:var(--color-success-hover);transform:translateY(-1px)}.recipe-list-container{background-color:var(--color-bg-card);border-radius:10px;box-shadow:0 2px 4px var(--color-shadow)}.recipe-list-title{padding:20px 25px 10px;margin:0;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.recipe-list-empty{padding:40px;text-align:center;color:var(--color-text-secondary)}.recipe-list-item{padding:20px 25px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color .15s ease}.recipe-list-item:last-child{border-bottom:none}.recipe-list-item:nth-child(odd){background-color:var(--color-bg-card)}.recipe-list-item:nth-child(2n){background-color:var(--color-bg-stripe)}.recipe-list-item:hover{background-color:var(--color-primary-light)}[data-theme=dark] .recipe-list-item:hover{background-color:var(--color-bg-hover)}.recipe-item-title{margin:0;color:var(--color-text-primary);font-size:20px}.recipe-difficulty-badge{color:var(--color-text-inverse);padding:4px 12px;border-radius:15px;font-size:12px;font-weight:700;display:inline-block}.recipe-difficulty-easy{background-color:#28a745}.recipe-difficulty-medium{background-color:#ffc107}.recipe-difficulty-hard{background-color:#dc3545}[data-theme=dark] .recipe-difficulty-easy{background-color:var(--color-success)}[data-theme=dark] .recipe-difficulty-medium{background-color:var(--color-warning)}[data-theme=dark] .recipe-difficulty-hard{background-color:var(--color-danger)}.recipe-rating{font-size:14px;color:#f39c12}.recipe-tags-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;margin-bottom:8px}.recipe-tag{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.recipe-tag-cuisine{background-color:#e8f4fd;color:#1565c0}.recipe-tag-diet{background-color:#e8f5e9;color:#2e7d32}[data-theme=dark] .recipe-tag-cuisine{background-color:var(--color-primary-light);color:var(--color-primary)}[data-theme=dark] .recipe-tag-diet{background-color:var(--color-success-light);color:var(--color-success)}.recipe-style-tag{background-color:var(--color-bg-hover);color:var(--color-text-secondary);padding:3px 10px;border-radius:10px;font-size:11px;margin-right:6px;border:1px solid var(--color-border);display:inline-block}.recipe-item-info{color:var(--color-text-secondary);font-size:14px;margin-bottom:8px}.recipe-item-info-separator{margin:0 12px}.recipe-item-description{color:var(--color-text-secondary);font-size:14px;margin:6px 0;line-height:1.4}.recipe-style-tags-row{margin-top:8px}.recipe-modal{background-color:var(--color-bg-card);border-radius:12px;width:95%;max-width:1200px;height:calc(100vh - 40px);box-shadow:0 10px 25px var(--color-shadow-heavy);display:flex;flex-direction:column;overflow:hidden}@media(max-width:767px){.recipe-modal{width:100%;max-width:none;height:100vh;border-radius:0}}.recipe-view-overlay{position:fixed;inset:0;background-color:#0009;z-index:99999;overflow-y:auto;padding:3vh 20px 20px;animation:fadeIn .2s ease;transition:opacity .25s ease}.recipe-view-overlay.is-closing{opacity:0}.recipe-view-modal{background-color:var(--color-bg-card);border-radius:12px;width:100%;max-width:800px;margin:0 auto;box-shadow:0 20px 60px var(--color-shadow-heavy);border:1px solid var(--color-border);animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease}.recipe-view-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.recipe-view-header{padding:20px 24px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:flex-start}.recipe-view-header-left{flex:1}.recipe-view-title{margin:0;color:var(--color-text-primary);font-size:24px}.recipe-view-badges{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;align-items:center}.recipe-view-time-badge{background-color:var(--color-bg-hover);color:var(--color-text-secondary);padding:4px 12px;border-radius:12px;font-size:12px}.recipe-view-header-actions{display:flex;gap:8px;align-items:center}.recipe-edit-btn{padding:8px 16px;background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:14px}.recipe-edit-btn:hover{background-color:var(--color-primary-hover)}.recipe-modal-close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--color-text-secondary);padding:0;line-height:1;min-width:auto;min-height:auto}.recipe-modal-close-btn:hover{color:var(--color-text-primary);transform:none;border-color:transparent}.recipe-view-content{padding:24px}.recipe-view-description{color:var(--color-text-secondary);font-size:15px;line-height:1.6;margin-bottom:24px}.recipe-view-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.recipe-view-tag{background-color:#e8f4fd;color:#1565c0;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}[data-theme=dark] .recipe-view-tag{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.recipe-servings-adjuster{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding:16px;background-color:var(--color-bg-hover);border-radius:8px}.recipe-servings-label{color:var(--color-text-secondary);font-weight:700}.recipe-servings-controls{display:flex;align-items:center;gap:12px}.recipe-servings-btn{width:36px;height:36px;border-radius:50%;border:none;color:var(--color-text-inverse);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:0}.recipe-servings-btn:hover{transform:none;border-color:transparent}.recipe-servings-btn-minus{background-color:var(--color-danger)}.recipe-servings-btn-minus:hover{background-color:var(--color-danger-hover)}.recipe-servings-btn-plus{background-color:var(--color-success)}.recipe-servings-btn-plus:hover{background-color:var(--color-success-hover)}.recipe-servings-value{font-size:24px;font-weight:700;color:var(--color-text-primary);min-width:40px;text-align:center}.recipe-servings-original{color:var(--color-text-secondary);font-size:13px}.recipe-view-ingredients{margin-bottom:32px}.recipe-view-instructions{margin-bottom:24px}.recipe-view-section-title{color:var(--color-text-primary);font-size:18px;margin-bottom:16px;padding-bottom:8px}.recipe-view-section-title-ingredients{border-bottom:2px solid var(--color-success)}[data-theme=dark] .recipe-view-section-title-ingredients{border-bottom-color:var(--color-success)}.recipe-view-section-title-instructions{border-bottom:2px solid var(--color-primary)}[data-theme=dark] .recipe-view-section-title-instructions{border-bottom-color:var(--color-primary)}.recipe-view-ingredient-list{list-style:none;padding:0;margin:0}.recipe-view-ingredient{padding:10px 0;border-bottom:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.ingredient-name-chip{display:inline-block;padding:3px 10px;border-radius:14px;border:2px solid var(--color-border-light, #ddd);font-size:13px;line-height:1.4;transition:border-color .15s ease}.ingredient-name-chip.ingredient-have{border-color:#28a745}.ingredient-name-chip.ingredient-partial{border-color:#ffc107}.ingredient-name-chip.ingredient-missing{border-color:#dc3545}.ingredient-legend{display:flex;gap:16px;margin-bottom:12px;font-size:12px;color:var(--color-text-secondary)}.ingredient-legend-item{display:flex;align-items:center;gap:5px}.ingredient-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.legend-dot-have{background-color:#28a745}.legend-dot-partial{background-color:#ffc107}.legend-dot-missing{background-color:#dc3545}.recipe-view-ingredient-qty{color:var(--color-text-secondary);font-weight:500}.recipe-view-instruction-list{padding:0 0 0 24px;margin:0}.recipe-view-instruction{padding:12px 0;color:var(--color-text-secondary);font-size:14px;line-height:1.6}.recipe-view-notes{padding:16px;background-color:var(--color-warning-light);border-radius:8px;border-left:4px solid #ffc107}[data-theme=dark] .recipe-view-notes{background-color:var(--color-bg-hover)}.recipe-view-notes-label{color:#856404;font-weight:700}[data-theme=dark] .recipe-view-notes-label{color:var(--color-warning)}.recipe-view-notes-text{margin:8px 0 0;color:#856404;font-size:14px}[data-theme=dark] .recipe-view-notes-text{color:var(--color-text-primary)}.recipe-view-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.recipe-close-btn{padding:10px 24px;background-color:var(--color-text-secondary);color:var(--color-text-inverse);border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:14px}.recipe-close-btn:hover{transform:none;border-color:transparent;opacity:.9}.recipe-edit-overlay{position:fixed;inset:0;background-color:#0009;z-index:99999;overflow-y:auto;padding:3vh 20px 20px;animation:fadeIn .2s ease;transition:opacity .25s ease}.recipe-edit-overlay.is-closing{opacity:0}.recipe-edit-modal{background-color:var(--color-bg-card);border-radius:12px;width:100%;max-width:900px;margin:0 auto;box-shadow:0 20px 60px var(--color-shadow-heavy);border:1px solid var(--color-border);animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease}.recipe-edit-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.recipe-edit-header{padding:15px 20px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.recipe-edit-title{margin:0;color:var(--color-text-primary);font-size:18px}.recipe-edit-close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:var(--color-text-secondary);padding:0;line-height:1;min-width:auto;min-height:auto}.recipe-edit-close-btn:hover{color:var(--color-text-primary);transform:none;border-color:transparent}.recipe-edit-body{padding:20px}.recipe-edit-form{display:flex;flex-direction:column;gap:15px}.recipe-edit-form-label{display:block;margin-bottom:4px;font-weight:700;color:var(--color-text-secondary);font-size:13px}.recipe-edit-form-input{width:100%;padding:8px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background-color:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box}.recipe-edit-form-input:focus{border-color:var(--color-border-focus);outline:none}.recipe-edit-form-select{width:100%;padding:8px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background-color:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box}.recipe-edit-form-select:focus{border-color:var(--color-border-focus);outline:none}.recipe-edit-form-textarea{width:100%;padding:8px;border:1px solid var(--color-border);border-radius:4px;font-size:13px;background-color:var(--color-bg-input);color:var(--color-text-primary);resize:none;box-sizing:border-box}.recipe-edit-form-textarea:focus{border-color:var(--color-border-focus);outline:none}.recipe-tag-selector{display:flex;flex-direction:column;gap:12px;padding:12px;background-color:var(--color-bg-hover);border-radius:6px;max-height:180px;overflow-y:auto}.recipe-tag-category-label{font-size:11px;font-weight:700;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.recipe-tag-btn-row{display:flex;flex-wrap:wrap;gap:6px}.recipe-tag-btn{padding:4px 10px;font-size:11px;border:1px solid var(--color-border);border-radius:12px;background-color:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease;min-width:auto;min-height:auto}.recipe-tag-btn:hover{transform:none;border-color:var(--color-success)}.recipe-tag-btn-selected{padding:4px 10px;font-size:11px;border:1px solid var(--color-success);border-radius:12px;background-color:var(--color-success);color:var(--color-text-inverse);cursor:pointer;transition:all .15s ease;min-width:auto;min-height:auto}.recipe-tag-btn-selected:hover{transform:none;border-color:var(--color-success-hover);background-color:var(--color-success-hover)}.recipe-section-column{display:flex;flex-direction:column;overflow:hidden}.recipe-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.recipe-section-title{color:var(--color-text-primary);margin:0;font-size:14px;font-weight:700}.recipe-section-add-btn{padding:4px 8px;color:var(--color-text-inverse);border:none;border-radius:4px;cursor:pointer;font-size:11px;min-width:auto;min-height:auto}.recipe-section-add-btn:hover{transform:none}.recipe-section-add-btn-ingredient{background-color:var(--color-success)}.recipe-section-add-btn-ingredient:hover{background-color:var(--color-success-hover);border-color:transparent}.recipe-section-add-btn-instruction{background-color:var(--color-primary)}.recipe-section-add-btn-instruction:hover{background-color:var(--color-primary-hover);border-color:transparent}.recipe-section-scroll{flex:1;overflow:auto;padding-right:15px}.recipe-section-scroll-instructions{flex:1;overflow:auto;padding-right:8px}.recipe-edit-ingredient-row{display:grid;grid-template-columns:2fr 70px 60px 35px;gap:10px;align-items:center;margin-bottom:8px;padding:10px;background-color:var(--color-bg-hover);border-radius:4px}.recipe-edit-ingredient-input{width:100%;padding:6px;border:1px solid var(--color-border);border-radius:3px;font-size:12px;background-color:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box}.recipe-edit-ingredient-input:focus{border-color:var(--color-border-focus);outline:none}.recipe-edit-ingredient-select{width:100%;padding:6px;border:1px solid var(--color-border);border-radius:3px;font-size:12px;background-color:var(--color-bg-input);color:var(--color-text-primary);box-sizing:border-box}.recipe-edit-ingredient-select:focus{border-color:var(--color-border-focus);outline:none}.recipe-remove-btn{padding:4px;background-color:var(--color-danger);color:var(--color-text-inverse);border:none;border-radius:3px;cursor:pointer;font-size:10px;min-width:auto;min-height:auto}.recipe-remove-btn:hover{background-color:var(--color-danger-hover);transform:none;border-color:transparent}.recipe-instruction-row-edit{display:flex;gap:10px;margin-bottom:8px;padding:8px;align-items:flex-start;background-color:var(--color-bg-hover);border-radius:4px}.recipe-step-number{background-color:var(--color-primary);color:var(--color-text-inverse);border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:4px}.recipe-edit-instruction-textarea{flex:1;padding:6px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;background-color:var(--color-bg-input);color:var(--color-text-primary);resize:none}.recipe-edit-instruction-textarea:focus{border-color:var(--color-border-focus);outline:none}.recipe-remove-btn-instruction{padding:4px;background-color:var(--color-danger);color:var(--color-text-inverse);border:none;border-radius:3px;cursor:pointer;font-size:10px;margin-top:4px;min-width:auto;min-height:auto}.recipe-remove-btn-instruction:hover{background-color:var(--color-danger-hover);transform:none;border-color:transparent}.recipe-edit-footer{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--color-border);padding-top:12px;margin-top:12px;flex-shrink:0}.recipe-cancel-btn{padding:8px 16px;background-color:var(--color-text-secondary);color:var(--color-text-inverse);border:none;border-radius:4px;cursor:pointer;font-weight:700;font-size:13px}.recipe-cancel-btn:hover{transform:none;border-color:transparent;opacity:.9}.recipe-submit-btn{padding:8px 16px;color:var(--color-text-inverse);border:none;border-radius:4px;cursor:pointer;font-weight:700;font-size:13px}.recipe-submit-btn:hover{transform:none;border-color:transparent}.recipe-submit-btn:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}.recipe-submit-btn-primary{background-color:var(--color-primary)}.recipe-submit-btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.recipe-submit-btn-success{background-color:var(--color-success)}.recipe-submit-btn-success:hover:not(:disabled){background-color:var(--color-success-hover)}.recipe-form-full{grid-column:1 / -1}.recipe-form-row{display:flex;gap:10px}.recipe-form-row>div{flex:1}.recipe-form-row-numbers{display:flex;gap:20px;align-items:flex-end}.recipe-form-field-small{width:60px}.recipe-basic-info-border{border-bottom:1px solid var(--color-border)}.recipe-basic-info{display:grid;grid-template-columns:1fr;gap:12px;padding-bottom:12px}@media(min-width:480px){.recipe-basic-info{grid-template-columns:1fr 1fr;gap:15px}}.recipe-content-grid{display:grid;grid-template-columns:1fr;gap:20px;flex:1;min-height:0;overflow:auto}@media(min-width:768px){.recipe-content-grid{grid-template-columns:1fr 1fr;overflow:hidden}.recipe-content-grid>div{overflow:hidden;display:flex;flex-direction:column}}.ingredient-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start;margin-bottom:8px;padding:10px;background-color:var(--color-bg-hover);border-radius:4px}.ingredient-fields{display:grid;grid-template-columns:1fr;gap:8px}@media(min-width:480px){.ingredient-fields{grid-template-columns:2fr 70px 60px}}@media(min-width:768px){.ingredient-row{grid-template-columns:2fr 70px 60px 35px;gap:10px;align-items:center}.ingredient-fields{display:contents}}.instruction-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px;padding:10px;background-color:var(--color-bg-hover);border-radius:4px}.instruction-row textarea{flex:1;min-height:60px;resize:vertical}.recipe-card-container{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}@media(max-width:599px){.recipe-card-container{flex-direction:column}}.recipe-card-content{flex:1;min-width:0}.recipe-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.recipe-favorite-btn{background:none;border:none;cursor:pointer;color:#d1d5db;padding:2px;display:flex;align-items:center;transition:color .15s,transform .15s;flex-shrink:0}.recipe-favorite-btn:hover{color:#ef4444;transform:scale(1.15)}.recipe-favorite-btn.favorited{color:#ef4444}[data-theme=dark] .recipe-favorite-btn{color:#4b5563}[data-theme=dark] .recipe-favorite-btn:hover,[data-theme=dark] .recipe-favorite-btn.favorited{color:#ef4444}.recipe-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:16px;transition:all .2s ease}.recipe-info-row{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px}.recipe-card-actions{display:flex;gap:10px;flex-shrink:0}.recipe-action-btn{padding:8px 12px;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px;white-space:nowrap}.recipe-action-btn-cook{background-color:var(--color-success);color:var(--color-text-inverse)}.recipe-action-btn-cook:hover{background-color:var(--color-success-hover)}.recipe-action-btn-delete{background-color:var(--color-danger);color:var(--color-text-inverse)}.recipe-action-btn-delete:hover{background-color:var(--color-danger-hover)}@media(max-width:599px){.recipe-card-actions{width:100%;justify-content:flex-start}.recipe-action-btn{padding:10px 16px}}.recipe-filters{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}.recipe-filter-item{flex:1;min-width:140px}.recipe-filter-item input,.recipe-filter-item select{width:100%;min-height:44px}@media(max-width:479px){.recipe-filters{gap:10px}.recipe-filter-item{min-width:100%}}[data-theme=dark] .recipe-filter-select:focus,[data-theme=dark] .recipe-filter-input:focus{box-shadow:0 0 0 3px #60a5fa33}[data-theme=dark] .recipe-card{background-color:var(--color-bg-card);border-color:var(--color-border)}.recipe-featured-warning-overlay{position:fixed;inset:0;background-color:#00000080;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;animation:fadeIn .2s ease}.recipe-featured-warning{background-color:var(--color-bg-card);border-radius:12px;padding:24px;max-width:450px;width:90%;box-shadow:0 20px 60px var(--color-shadow-heavy);border:1px solid var(--color-warning);animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.recipe-featured-warning-title{margin:0 0 12px;color:var(--color-warning);font-size:18px}.recipe-featured-warning-text{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin:0 0 20px}.recipe-featured-warning-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.recipe-featured-warning-dismiss{background:none;border:none;color:var(--color-text-secondary);font-size:12px;cursor:pointer;text-decoration:underline;padding:4px 8px;min-width:auto;min-height:auto;margin-left:auto}.recipe-featured-warning-dismiss:hover{color:var(--color-text-primary);transform:none;border-color:transparent}.recipe-match-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;line-height:1.4}.recipe-match-full{background-color:#28a745;color:#fff}.recipe-match-high{background-color:#7cb342;color:#fff}.recipe-match-medium{background-color:#ffc107;color:#333}.recipe-match-low{background-color:var(--color-bg-hover, #e0e0e0);color:var(--color-text-secondary, #666)}.recipe-almost-cookable{font-size:12px;color:#e67e22;margin-top:4px;font-style:italic}[data-theme=dark] .recipe-match-medium{color:#1a1a1a}[data-theme=dark] .recipe-almost-cookable{color:#f0ad4e}@media(max-width:479px){.recipe-match-badge{font-size:11px;padding:1px 6px}.recipe-almost-cookable{font-size:11px}}.recipe-view-nutrition{margin:12px 0;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden}.recipe-view-section-title-nutrition{display:flex;align-items:center;gap:8px;padding:10px 14px;margin:0;background:var(--surface-color, #f8f9fa);font-size:.95rem}.nutrition-per-serving-label{font-size:.75rem;font-weight:400;color:var(--text-secondary, #666);margin-left:auto}.nutrition-panel-content{padding:0 14px;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .25s ease,padding .3s ease}.nutrition-panel-content.nutrition-panel-open{max-height:300px;opacity:1;padding:12px 14px}.nutrition-loading,.nutrition-unavailable{text-align:center;color:var(--text-secondary, #888);font-size:.85rem;padding:8px 0}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px}.nutrition-item{display:flex;flex-direction:column;align-items:center;padding:6px 4px;background:var(--surface-color, #f8f9fa);border-radius:6px}.nutrition-value{font-size:1.05rem;font-weight:600;color:var(--text-primary, #222)}.nutrition-label{font-size:.7rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.nutrition-disclaimer{font-size:.75rem;color:var(--text-secondary, #888);text-align:center;margin-top:8px;font-style:italic}.day-nutrition-summary{margin-top:8px;border-top:1px solid var(--border-color, #e0e0e0);padding-top:6px}.day-nutrition-collapsed{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;font-size:.8rem;transition:background .15s}.day-nutrition-collapsed:hover{background:var(--surface-hover, rgba(0, 0, 0, .04))}.day-nutrition-cal{font-weight:600;color:var(--text-primary, #333)}.day-nutrition-partial{color:var(--text-secondary, #888);font-size:.7rem}.day-nutrition-toggle{margin-left:auto;font-size:.6rem;color:var(--text-secondary, #888)}.day-nutrition-expanded{max-height:0;overflow:hidden;opacity:0;padding:0 8px;transition:max-height .3s ease,opacity .25s ease,padding .3s ease}.day-nutrition-expanded.day-nutrition-open{max-height:200px;opacity:1;padding:4px 8px}.day-nutrition-row{display:flex;justify-content:space-between;padding:2px 0;font-size:.75rem}.day-nutrition-label{color:var(--text-secondary, #666)}.day-nutrition-value{font-weight:500;color:var(--text-primary, #333)}.nutrition-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;margin-bottom:8px}.nutrition-toggle-checkbox{width:18px;height:18px;cursor:pointer}.nutrition-nutrient-picker{margin-top:8px}.nutrition-picker-hint{font-size:.8rem;color:var(--text-secondary, #666);margin-bottom:8px}[data-theme=dark] .recipe-view-nutrition{border-color:var(--border-color, #444)}[data-theme=dark] .recipe-view-section-title-nutrition,[data-theme=dark] .nutrition-item{background:var(--surface-color, #2a2a2a)}[data-theme=dark] .day-nutrition-summary{border-top-color:var(--border-color, #444)}[data-theme=dark] .day-nutrition-collapsed:hover{background:var(--surface-hover, rgba(255, 255, 255, .06))}[data-theme=dark] .day-nutrition-cal,[data-theme=dark] .day-nutrition-value{color:var(--text-primary, #e0e0e0)}[data-theme=dark] .day-nutrition-label{color:var(--text-secondary, #aaa)}[data-theme=dark] .nutrition-value{color:var(--text-primary, #e0e0e0)}[data-theme=dark] .nutrition-label{color:var(--text-secondary, #aaa)}.day-nutrition-loading{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:.8rem;color:var(--text-secondary, #888)}.nutrition-loading-spinner{width:12px;height:12px;border:2px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #4a90d9);border-radius:50%;animation:nutrition-spin .8s linear infinite}@keyframes nutrition-spin{to{transform:rotate(360deg)}}.leftover-modal-overlay{position:fixed;inset:0;background-color:transparent;display:flex;justify-content:center;align-items:flex-start;z-index:1000;padding:10vh 20px 20px;overflow-y:auto;transition:background-color .3s ease}.leftover-modal-overlay.animating{background-color:var(--color-overlay)}.leftover-modal{background-color:var(--color-bg-card);padding:32px;border-radius:16px;width:90%;max-width:500px;max-height:80vh;overflow:auto;transform:scale(.9);opacity:0;transition:all .3s ease;box-shadow:0 20px 40px var(--color-shadow-heavy);border:1px solid var(--color-border)}.leftover-modal.animating{transform:scale(1);opacity:1}.leftover-modal-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.leftover-modal-title{margin:0 0 12px;font-size:22px;font-weight:700;color:var(--color-text-primary)}.leftover-modal-subtitle{margin:0;font-size:15px;color:var(--color-text-secondary)}.leftover-available-info{padding:16px;background-color:var(--color-success);border-radius:8px;font-size:15px;color:var(--color-text-inverse);font-weight:500}.leftover-form{display:flex;flex-direction:column;gap:20px}.leftover-form-group{display:flex;flex-direction:column;gap:8px}.leftover-form-label{font-size:15px;font-weight:600;color:var(--color-text-primary)}.leftover-form-input{padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;font-size:15px;background-color:var(--color-bg-input);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}.leftover-form-input:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #007bff26}.leftover-form-select{padding:12px 16px;border:1px solid var(--color-border);border-radius:8px;font-size:15px;background-color:var(--color-bg-input);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}.leftover-form-select:focus{border-color:var(--color-border-focus);outline:none;box-shadow:0 0 0 3px #007bff26}.leftover-error{color:var(--color-danger);font-size:14px;margin-top:8px;font-weight:500}.leftover-button-group{display:flex;gap:16px;margin-top:24px}.leftover-btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;cursor:pointer;font-weight:600;transition:all .2s ease}.leftover-btn-cancel{background-color:var(--color-text-secondary);color:var(--color-text-inverse)}.leftover-btn-cancel:hover:not(:disabled){opacity:.85}.leftover-btn-submit{background-color:var(--color-success);color:var(--color-text-inverse)}.leftover-btn-submit:hover:not(:disabled){background-color:var(--color-success-hover)}.leftover-btn-submit:disabled,.leftover-btn-cancel:disabled{opacity:.6;cursor:not-allowed}@media(max-width:479px){.leftover-modal-overlay{padding:20px 10px 10px}.leftover-modal{padding:20px;width:95%}.leftover-button-group{flex-direction:column}.leftover-btn{width:100%;text-align:center}}.prev-grocery-container{background-color:var(--color-bg-card);border-radius:15px;box-shadow:0 4px 8px var(--color-shadow);padding:20px;margin-bottom:20px;border:1px solid var(--color-border)}.prev-grocery-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:8px 0}.prev-grocery-header.expanded{margin-bottom:20px}.prev-grocery-title{font-size:20px;font-weight:700;color:var(--color-text-primary);margin:0}.prev-grocery-count{font-size:14px;color:var(--color-text-secondary);margin-left:8px}.prev-grocery-toggle-icon{font-size:16px;color:var(--color-text-secondary);transition:transform .2s ease}.prev-grocery-toggle-icon.expanded{transform:rotate(180deg)}.prev-grocery-body{overflow:hidden;transition:max-height .35s ease-in-out,opacity .3s ease}.prev-grocery-body.is-collapsed{max-height:0;opacity:0}.prev-grocery-body.is-expanded{max-height:1000px;opacity:1}.prev-grocery-empty{text-align:center;padding:40px 0;color:var(--color-text-secondary);font-style:italic}.prev-grocery-list-items{display:flex;flex-direction:column;gap:12px}.prev-grocery-list-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;padding:16px;transition:all .2s ease}.prev-grocery-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.prev-grocery-card-content{flex:1}.prev-grocery-card-date{font-size:16px;font-weight:700;color:var(--color-text-primary);margin-bottom:4px}.prev-grocery-card-count{font-size:14px;color:var(--color-text-secondary);margin-bottom:8px}.prev-grocery-card-preview{font-size:13px;color:var(--color-text-primary);line-height:1.4}.prev-grocery-card-actions{display:flex;gap:8px;margin-left:16px}.prev-grocery-view-btn{background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer;white-space:nowrap}.prev-grocery-view-btn:hover{background-color:var(--color-primary-hover)}.prev-grocery-delete-btn{background-color:var(--color-danger);color:var(--color-text-inverse);border:none;border-radius:4px;padding:6px 12px;font-size:12px;cursor:pointer}.prev-grocery-delete-btn:hover{background-color:var(--color-danger-hover)}.prev-grocery-view-all{text-align:center;margin-top:16px}.prev-grocery-view-all-btn{background-color:transparent;border:1px solid var(--color-border);border-radius:4px;padding:8px 16px;font-size:14px;cursor:pointer;color:var(--color-text-primary)}.prev-grocery-view-all-btn:hover{background-color:var(--color-bg-hover)}.prev-grocery-modal-overlay{position:fixed;inset:0;background-color:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overscroll-behavior:contain;animation:fadeIn .2s ease;transition:opacity .25s ease}.prev-grocery-modal-overlay.is-closing{opacity:0}.prev-grocery-modal{background-color:var(--color-bg-card);border-radius:15px;width:95%;max-width:1200px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 25px var(--color-shadow-heavy);border:1px solid var(--color-border);animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease;overflow:hidden}.prev-grocery-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.prev-grocery-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 24px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.prev-grocery-modal-header h3{margin:0;color:var(--color-text-primary);font-size:24px}.prev-grocery-modal-subtitle{margin:4px 0 0;font-size:14px;color:var(--color-text-secondary)}.prev-grocery-modal-header-actions{display:flex;align-items:center;gap:12px}.prev-grocery-modal-close{background-color:transparent;border:none;font-size:20px;cursor:pointer;padding:4px;color:var(--color-text-primary)}.prev-grocery-modal-content{display:flex;gap:24px;padding:24px;overflow-y:auto;flex:1;min-height:0}.prev-grocery-modal-left{flex:1;padding-right:12px;min-width:0}.prev-grocery-modal-section-title{margin:0 0 16px;color:var(--color-text-primary);font-size:18px;border-bottom:2px solid var(--color-border);padding-bottom:8px}.prev-grocery-category-group{margin-bottom:24px;border-left:3px solid var(--color-border);padding-left:16px}.prev-grocery-category-group .grocery-aisle-icon{font-size:18px;line-height:1;margin-right:6px}.prev-grocery-item-row{display:flex;justify-content:space-between;align-items:flex-start;padding:12px;margin-bottom:8px;border-radius:8px;background-color:var(--color-bg-hover);border:1px solid var(--color-border);transition:opacity .2s ease}.prev-grocery-item-row.removing{opacity:.5}.prev-grocery-item-row.in-pantry{opacity:.45;pointer-events:none}.prev-grocery-item-row.in-pantry .prev-grocery-item-name,.prev-grocery-item-row.in-pantry .prev-grocery-item-quantity{text-decoration:line-through;color:var(--color-text-secondary)}.prev-grocery-item-content{flex:1}.prev-grocery-item-name{color:var(--color-text-primary)}.prev-grocery-item-quantity{color:var(--color-text-secondary);margin-top:4px;display:block}.prev-grocery-item-context{font-size:12px;color:var(--color-text-secondary);margin-top:4px;word-break:break-word}.prev-grocery-remove-item-btn{background-color:transparent;color:var(--color-danger);border:none;padding:4px 8px;cursor:pointer;font-size:16px;border-radius:4px;transition:background-color .2s}.prev-grocery-remove-item-btn:hover{background-color:var(--color-danger-light)}.prev-grocery-remove-item-btn:disabled{cursor:not-allowed}.prev-grocery-modal-right{flex:0 0 400px;padding-left:12px;border-left:1px solid var(--color-border)}.prev-grocery-modal-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:space-between;align-items:center;flex-shrink:0}.prev-grocery-footer-info{font-size:14px;color:var(--color-text-secondary)}.prev-grocery-footer-actions{display:flex;gap:12px}.prev-grocery-close-modal-btn{background-color:var(--color-text-secondary);color:var(--color-text-inverse);border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-weight:700;font-size:14px}.prev-grocery-add-pantry-btn{background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-weight:700;font-size:14px}.prev-grocery-add-pantry-btn:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}.prev-grocery-add-pantry-btn:hover:not(:disabled){background-color:var(--color-success-hover)}.prev-grocery-context-empty{text-align:center;padding:40px 20px;color:var(--color-text-secondary);font-style:italic}.prev-grocery-context-intro{font-size:14px;color:var(--color-text-secondary);margin-bottom:16px}.prev-grocery-meal-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;padding:16px;margin-bottom:16px}.prev-grocery-meal-card h5{margin:0 0 8px;color:var(--color-text-primary);font-size:16px}.prev-grocery-meal-servings{font-size:13px;color:var(--color-text-secondary);margin-bottom:8px}.prev-grocery-meal-ingredients{font-size:13px}.prev-grocery-meal-ingredients strong{color:var(--color-text-primary)}.prev-grocery-meal-ingredients-list{margin-top:4px}.prev-grocery-ingredient-item{color:var(--color-text-secondary);margin-bottom:2px}.prev-grocery-ingredient-more{color:var(--color-text-secondary);font-style:italic}@media(max-width:767px){.prev-grocery-modal-overlay{padding:10px}.prev-grocery-modal-content{flex-direction:column}.prev-grocery-modal-right{flex:none;width:100%;border-left:none;border-top:1px solid var(--color-border);padding-left:0;padding-top:12px}.prev-grocery-modal{max-height:95vh;overflow-y:auto;overflow-x:hidden;width:98%;display:block;-webkit-overflow-scrolling:touch}.prev-grocery-modal-header{position:static;padding:16px 16px 12px}.prev-grocery-modal-content{overflow-y:visible;min-height:auto;padding:16px}.prev-grocery-modal-footer{flex-wrap:wrap;padding:12px 16px}.prev-grocery-modal-header h3{font-size:20px}.prev-grocery-card-header{flex-direction:column;gap:8px}.prev-grocery-card-actions{margin-left:0}}@media(max-width:479px){.prev-grocery-modal-overlay{padding:0;align-items:flex-start}.prev-grocery-modal{max-height:100vh;width:100%;border-radius:0}.prev-grocery-modal-header{padding:12px 12px 10px}.prev-grocery-modal-content{padding:12px}.prev-grocery-modal-footer{padding:10px 12px}}.grocery-list-overlay{position:fixed;inset:0;background-color:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;overscroll-behavior:contain;animation:fadeIn .2s ease;transition:opacity .25s ease}.grocery-list-overlay.is-closing{opacity:0}.grocery-list-modal{background-color:var(--color-bg-card);border-radius:15px;padding:24px;width:95%;max-width:1200px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px var(--color-shadow-heavy);border:1px solid var(--color-border);animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease}.grocery-list-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.grocery-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border);position:sticky;top:-24px;background-color:var(--color-bg-card);z-index:1;padding-top:0}.grocery-list-header h3{margin:0;color:var(--color-text-primary);font-size:24px}.grocery-list-header-subtitle{margin:4px 0 0;font-size:14px;color:var(--color-text-secondary)}.grocery-list-header-actions{display:flex;gap:12px;align-items:center}.grocery-view-toggle{display:inline-flex;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.grocery-toggle-btn{padding:6px 14px;font-size:13px;font-weight:600;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color .2s ease,color .2s ease;white-space:nowrap}.grocery-toggle-btn:hover{color:var(--color-text-primary)}.grocery-toggle-btn.active{background-color:var(--color-primary);color:#fff}.grocery-item-row.in-pantry{opacity:.45;pointer-events:none}.grocery-item-row.in-pantry .grocery-item-name,.grocery-item-row.in-pantry .grocery-item-quantity{text-decoration:line-through;color:var(--color-text-secondary)}.grocery-pantry-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;border-radius:50%;background-color:var(--color-success);color:#fff;font-size:11px;font-weight:700}.grocery-item-pantry-label{font-size:11px;color:var(--color-success);font-weight:600;margin-top:2px}.grocery-close-btn{background-color:transparent;border:none;font-size:20px;cursor:pointer;padding:4px;color:var(--color-text-primary)}.grocery-list-content{display:flex;gap:24px}.grocery-list-left{flex:1;padding-right:12px}.grocery-section-title{margin:0 0 16px;color:var(--color-text-primary);font-size:18px;border-bottom:2px solid var(--color-border);padding-bottom:8px}.grocery-empty-state{text-align:center;padding:40px 0;color:var(--color-text-secondary)}.grocery-aisle-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:12px;background-color:var(--color-bg-hover);border-radius:10px;border:1px solid var(--color-border)}.grocery-aisle-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:600;color:#fff;white-space:nowrap}.grocery-category-group{margin-bottom:24px;border-left:3px solid #9E9E9E;padding-left:16px;transition:border-color .2s ease}.grocery-category-title{margin:0 0 12px;font-size:16px;padding-bottom:6px;border-bottom:2px solid var(--color-border);display:flex;align-items:center;gap:8px}.grocery-aisle-icon{font-size:18px;line-height:1}.grocery-item-row{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:6px;border-radius:8px;background-color:var(--color-bg-hover);border:1px solid var(--color-border);transition:opacity .2s ease}.grocery-item-row.editing{background-color:var(--color-bg-hover)}.grocery-item-row.is-completed{opacity:.5}.grocery-item-row.is-completed .grocery-item-name,.grocery-item-row.is-completed .grocery-item-quantity{text-decoration:line-through}.grocery-item-checkbox{width:18px;height:18px;min-width:18px;cursor:pointer;accent-color:var(--color-success)}.grocery-item-content{flex:1}.grocery-item-edit-input{border:1px solid var(--color-primary);border-radius:4px;padding:8px;font-size:14px;font-weight:700;width:100%;background-color:var(--color-bg-input);color:var(--color-text-primary)}.grocery-item-name{color:var(--color-text-primary)}.grocery-item-name.editable{cursor:pointer}.grocery-item-name.editable:hover{color:var(--color-primary)}.grocery-edit-row{display:flex;align-items:center;gap:8px;margin-top:8px}.grocery-edit-quantity{border:1px solid var(--color-primary);border-radius:4px;padding:6px;font-size:13px;width:80px;background-color:var(--color-bg-input);color:var(--color-text-primary)}.grocery-edit-unit{border:1px solid var(--color-primary);border-radius:4px;padding:6px;font-size:13px;background-color:var(--color-bg-input);color:var(--color-text-primary)}.grocery-item-quantity{color:var(--color-text-secondary);margin-top:4px;display:block}.grocery-item-quantity.editable{cursor:pointer}.grocery-item-quantity.editable:hover{color:var(--color-primary)}.grocery-item-context{font-size:12px;color:var(--color-text-secondary);margin-top:4px}.grocery-item-error{font-size:12px;color:var(--color-danger);margin-top:4px}.grocery-item-actions{margin-left:auto;flex-shrink:0}.grocery-remove-btn{background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:4px;padding:6px 8px;font-size:14px;cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease}.grocery-item-row:hover .grocery-remove-btn{opacity:1}.grocery-remove-btn:hover{color:var(--color-danger)}@media(hover:none){.grocery-remove-btn{opacity:.6}}.grocery-list-footer{margin-top:20px;padding:16px 0;border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:flex-end}.grocery-add-pantry-btn{background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-weight:700;font-size:14px}.grocery-add-pantry-btn:hover{background-color:var(--color-success-hover)}.grocery-list-right{flex:0 0 400px;padding-left:12px;border-left:1px solid var(--color-border)}.grocery-context-empty{text-align:center;padding:40px 20px;color:var(--color-text-secondary);font-style:italic}.grocery-context-intro{font-size:14px;color:var(--color-text-secondary);margin-bottom:16px}.grocery-recipe-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;padding:16px;margin-bottom:16px}.grocery-recipe-card h5{margin:0 0 8px;color:var(--color-text-primary);font-size:16px}.grocery-recipe-description{font-size:13px;color:var(--color-text-secondary);margin:0 0 8px}.grocery-recipe-meals{font-size:13px;margin-bottom:8px}.grocery-recipe-meal-item{color:var(--color-text-primary);margin-bottom:4px}.grocery-recipe-tags{display:flex;gap:4px;flex-wrap:wrap}.grocery-recipe-tag{background-color:var(--color-bg-hover);color:var(--color-text-primary);padding:2px 8px;border-radius:12px;font-size:11px}@media(max-width:767px){.grocery-list-overlay{padding:10px}.grocery-list-content{flex-direction:column}.grocery-list-right{flex:none;width:100%;border-left:none;border-top:1px solid var(--color-border);padding-left:0;padding-top:12px}.grocery-list-modal{height:auto;max-height:95vh;overflow-y:auto;width:98%;padding:16px;-webkit-overflow-scrolling:touch}.grocery-list-content{overflow-y:visible;min-height:auto}.grocery-list-header h3{font-size:20px}.grocery-list-header{flex-wrap:wrap;gap:8px}.grocery-list-header-actions{gap:8px}.grocery-toggle-btn{padding:5px 10px;font-size:12px}.grocery-list-footer{flex-wrap:wrap}}@media(max-width:479px){.grocery-list-overlay{padding:0;align-items:flex-start}.grocery-list-modal{max-height:100vh;width:100%;padding:12px;border-radius:0}}.meal-planning-container{padding:20px;font-family:Arial,sans-serif;max-width:1600px;margin:0 auto;background-color:var(--color-bg-hover);min-height:100vh;border-radius:16px;box-shadow:0 8px 32px var(--color-shadow-heavy)}.mp-header{text-align:center;margin-bottom:25px;background-color:var(--color-bg-card);padding:20px;border-radius:15px;box-shadow:0 4px 8px var(--color-shadow)}.mp-header-title{margin:0 0 16px;font-size:32px;font-weight:700;color:var(--color-text-primary)}.stats-container{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap;justify-content:center}.stat-item{background-color:var(--color-bg-hover);padding:10px 18px;border-radius:8px;color:var(--color-text-secondary);font-size:14px;flex:1 1 auto;min-width:120px;text-align:center}.stat-item-leftovers{background-color:var(--color-success-light);color:var(--color-success)}.stat-item-available{background-color:var(--color-warning-light);color:#856404}[data-theme=dark] .stat-item-available{color:var(--color-warning)}@media(max-width:479px){.stats-container{gap:8px}.stat-item{padding:8px 12px;font-size:13px;min-width:100px}}.preset-section{margin-bottom:16px;background-color:var(--color-bg-hover);border-radius:10px;overflow:hidden}.preset-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.preset-header:hover{background:#00000008}[data-theme=dark] .preset-header:hover{background:#ffffff0a}.preset-header-left{display:flex;align-items:center;gap:8px}.preset-chevron{transition:transform .25s ease;color:var(--color-text-secondary);flex-shrink:0}.preset-chevron.open{transform:rotate(90deg)}.preset-header-title{font-size:13px;font-weight:600;color:var(--color-text-primary)}.preset-header-count{font-size:12px;color:var(--color-text-muted);background:#0000000f;padding:1px 8px;border-radius:10px}[data-theme=dark] .preset-header-count{background:#ffffff14}.preset-header-right{display:flex;align-items:center;gap:8px}.preset-active-tag{font-size:11px;font-weight:600;color:#1976d2;background:#2196f31a;padding:2px 10px;border-radius:10px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}[data-theme=dark] .preset-active-tag{color:#64b5f6;background:#2196f326}.preset-add-btn{width:28px;height:28px;border-radius:50%;border:2px solid #17a2b8;background:transparent;color:#17a2b8;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .15s;padding:0}.preset-add-btn:hover{background:#17a2b8;color:#fff}.preset-body{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1)}.preset-body.open{max-height:500px}.preset-container{display:flex;gap:8px;flex-wrap:wrap;padding:0 12px 12px}.preset-slot{position:relative;background-color:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:10px;padding:10px 14px;min-width:0;flex:1 1 calc(50% - 4px);max-width:calc(50% - 4px);cursor:pointer;transition:all .2s ease}.preset-slot:hover{border-color:var(--color-text-secondary)}.preset-slot.has-meals{border-color:var(--color-success)}.preset-slot.is-active{border-color:#2196f3;background-color:#e3f2fd}[data-theme=dark] .preset-slot.is-active{background-color:#1e3a5f}.preset-slot.card-expanded{flex-basis:100%;max-width:100%}.preset-slot-summary{display:flex;align-items:center;justify-content:space-between}.preset-slot-info{min-width:0}.preset-slot-name{font-weight:600;font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-slot.is-active .preset-slot-name{color:#1976d2}[data-theme=dark] .preset-slot.is-active .preset-slot-name{color:#64b5f6}.preset-slot-count{font-size:11px;color:var(--color-text-muted);margin-top:1px}.preset-slot.has-meals .preset-slot-count{color:var(--color-success)}.preset-active-dot{width:8px;height:8px;border-radius:50%;background:#2196f3;flex-shrink:0;box-shadow:0 0 0 3px #2196f333}.preset-slot-actions{display:flex;gap:6px;flex-wrap:wrap;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,margin .25s ease;margin-top:0}.preset-slot-actions.open{max-height:50px;opacity:1;margin-top:10px}.preset-btn{border:none;border-radius:6px;padding:6px 12px;font-size:11px;cursor:pointer;font-weight:600;transition:opacity .15s}.preset-btn:hover{opacity:.85}.preset-btn-save{background-color:#17a2b8;color:#fff}.preset-btn-load{background-color:var(--color-success);color:#fff}.preset-btn-rename{background-color:var(--color-text-secondary);color:#fff}.preset-btn-clear{background-color:var(--color-danger);color:#fff}@media(max-width:479px){.mp-actions{flex-wrap:wrap}.mp-action-btn{flex:1;min-width:0;padding:10px 12px;font-size:13px}.meal-modal-overlay,.preset-modal-overlay{padding:20px 10px 10px}}@media(min-width:600px){.preset-slot{flex:1 1 calc(25% - 6px);max-width:calc(25% - 6px)}.preset-slot.card-expanded{flex-basis:calc(50% - 4px);max-width:calc(50% - 4px)}}.mp-actions{display:flex;gap:12px;justify-content:center}.mp-action-btn{color:#fff;border:none;border-radius:8px;padding:12px 20px;cursor:pointer;font-weight:700;font-size:14px;box-shadow:0 2px 4px var(--color-shadow);transition:all .2s ease}.mp-action-btn-add{background-color:#17a2b8}.mp-action-btn-add:hover{background-color:#138496}.mp-action-btn-generate{background-color:var(--color-primary)}.mp-action-btn-generate:hover:not(:disabled){background-color:var(--color-primary-hover)}.mp-action-btn-generate:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}.mp-action-btn-clear{background-color:var(--color-danger)}.mp-action-btn-clear:hover{background-color:var(--color-danger-hover)}.mp-calendar-section{background-color:var(--color-bg-card);border-radius:15px;box-shadow:0 4px 8px var(--color-shadow);padding:20px;margin-bottom:20px}.calendar-week{display:flex;flex-direction:column;gap:12px;padding-bottom:16px}.calendar-day{flex:1;min-width:0;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:12px;padding:16px;min-height:200px;box-shadow:0 2px 4px #0000000d}.calendar-day-error{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.calendar-day-title{text-align:center;margin:0 0 16px;font-size:18px;font-weight:700;color:var(--color-text-primary)}.meal-type-section{margin-bottom:20px}.meal-type-header{margin-bottom:8px}.meal-type-title{margin:0;font-size:14px;font-weight:700;color:var(--color-text-secondary)}.meal-type-content{min-height:60px}.day-empty-message{color:var(--color-text-secondary);font-style:italic;font-size:14px;text-align:center;padding:40px 20px;background-color:var(--color-bg-hover);border-radius:8px;border:2px dashed var(--color-border)}@media(min-width:480px){.calendar-week{flex-direction:row;flex-wrap:wrap;gap:12px}.calendar-day{flex:0 0 calc(50% - 6px);min-width:0}}@media(min-width:768px){.calendar-week{gap:16px}.calendar-day{flex:0 0 calc(25% - 12px)}.calendar-week-bottom .calendar-day{flex:0 0 calc(33.333% - 11px)}}@media(min-width:1200px){.calendar-week{flex-wrap:nowrap}.calendar-day,.calendar-week-bottom .calendar-day{flex:1;min-width:180px}}.meal-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:6px;padding:8px;margin:4px 0;position:relative}.meal-card--leftover{background-color:var(--color-bg-hover);border:2px dashed var(--color-text-secondary)}.meal-card-layout{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.meal-card-info{flex:1;min-width:0}.meal-card-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:4px}.meal-card-name{margin:0;font-size:15px;font-weight:700;color:var(--color-text-primary);line-height:1.2}.meal-card-leftover-icon{color:var(--color-text-secondary)}.meal-card-meta{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.meal-card-details-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.meal-card-origin{font-size:12px;color:var(--color-text-secondary)}.meal-card-leftovers-count{font-size:12px;color:var(--color-success);font-weight:500}.meal-card-tag{display:inline-block;background-color:var(--color-bg-hover);color:var(--color-text-secondary);padding:1px 6px;border-radius:8px;font-size:11px;line-height:1.3}.meal-card-tag-overflow{font-size:11px;color:var(--color-text-secondary)}.meal-card-actions{display:flex;gap:4px;flex-shrink:0}.meal-card-btn-plan{background-color:var(--color-success);color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;line-height:1.2;white-space:nowrap;font-weight:500;box-shadow:0 1px 2px var(--color-shadow);min-height:auto;min-width:auto}.meal-card-btn-plan:hover{background-color:var(--color-success-hover);transform:none;border-color:transparent}.meal-card-btn-remove{background-color:var(--color-danger);color:#fff;border:none;border-radius:3px;padding:3px 6px;font-size:11px;cursor:pointer;line-height:1.2;min-width:20px;min-height:auto}.meal-card-btn-remove:hover{background-color:var(--color-danger-hover);transform:none;border-color:transparent}.meal-modal-overlay{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:10vh 20px 20px;overflow-y:auto;transition:background-color .3s ease;background-color:#0000}.meal-modal-overlay--visible{background-color:var(--color-overlay)}.meal-modal-content{background-color:var(--color-bg-card);border-radius:15px;padding:24px;max-width:500px;width:90%;box-shadow:0 10px 25px var(--color-shadow-heavy);transition:all .3s ease;transform:scale(.9);opacity:0}.meal-modal-content--visible{transform:scale(1);opacity:1}.meal-modal-title{margin:0 0 16px;color:var(--color-text-primary);text-align:center}.meal-modal-row{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap}.meal-modal-field{flex:1;min-width:200px}.meal-modal-field-full{margin-bottom:20px}.meal-modal-label{display:block;margin-bottom:8px;font-weight:700;color:var(--color-text-primary)}.meal-modal-select{width:100%;padding:12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;background-color:var(--color-bg-input);color:var(--color-text-primary)}.meal-modal-recipe-picker{margin-bottom:16px}.meal-modal-search-row{margin-bottom:10px}.meal-modal-search-wrap{position:relative;display:flex;align-items:center}.meal-modal-search-icon{position:absolute;left:10px;color:var(--color-text-muted);pointer-events:none}.meal-modal-search-input{width:100%;padding:10px 32px 10px 34px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background-color:var(--color-bg-input);color:var(--color-text-primary);outline:none;transition:border-color .15s}.meal-modal-search-input:focus{border-color:var(--color-primary)}.meal-modal-search-clear{position:absolute;right:8px;background:none;border:none;color:var(--color-text-muted);font-size:18px;cursor:pointer;padding:2px 6px;line-height:1}.meal-modal-filter-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.meal-modal-filter-chips{display:flex;gap:6px;flex-wrap:wrap}.meal-modal-filter-selects{display:flex;gap:6px}.meal-modal-mini-select{padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;font-size:11px;background:var(--color-bg-input);color:var(--color-text-primary);cursor:pointer}.meal-modal-chip{padding:4px 12px;border-radius:16px;border:1.5px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.meal-modal-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.meal-modal-chip:hover:not(.active){border-color:var(--color-text-secondary)}.meal-modal-recipe-list{max-height:220px;overflow-y:auto;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-input)}.meal-modal-recipe-empty{padding:24px 16px;text-align:center;color:var(--color-text-muted);font-size:13px}.meal-modal-recipe-card{padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--color-border);transition:background .12s}.meal-modal-recipe-card:last-child{border-bottom:none}.meal-modal-recipe-card:hover{background:#00000008}[data-theme=dark] .meal-modal-recipe-card:hover{background:#ffffff0a}.meal-modal-recipe-card.selected{background:#667eea14;border-left:3px solid var(--color-primary)}[data-theme=dark] .meal-modal-recipe-card.selected{background:#667eea26}.meal-modal-recipe-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.meal-modal-fav-btn{background:none;border:none;cursor:pointer;color:#d1d5db;padding:0;display:flex;align-items:center;flex-shrink:0;transition:color .15s,transform .15s}.meal-modal-fav-btn:hover{color:#ef4444;transform:scale(1.2)}.meal-modal-fav-btn.favorited{color:#ef4444}[data-theme=dark] .meal-modal-fav-btn{color:#4b5563}[data-theme=dark] .meal-modal-fav-btn:hover,[data-theme=dark] .meal-modal-fav-btn.favorited{color:#ef4444}.meal-modal-recipe-card-name{font-size:13px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.meal-modal-cookability{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;flex-shrink:0}.meal-modal-cookability.high{background:#10b9811f;color:#10b981}.meal-modal-cookability.mid{background:#f59e0b1f;color:#f59e0b}.meal-modal-cookability.low{background:#ef44441a;color:#ef4444}[data-theme=dark] .meal-modal-cookability.high{background:#10b98133}[data-theme=dark] .meal-modal-cookability.mid{background:#f59e0b33}[data-theme=dark] .meal-modal-cookability.low{background:#ef44442e}.meal-modal-recipe-card-meta{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.meal-modal-recipe-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:#0000000d;color:var(--color-text-muted)}[data-theme=dark] .meal-modal-recipe-tag{background:#ffffff14}.meal-modal-recipe-info{margin-bottom:20px;padding:12px;background-color:var(--color-bg-hover);border-radius:4px}.meal-modal-recipe-info-text{font-size:14px;color:var(--color-text-secondary)}.meal-modal-recipe-description{font-size:14px;margin-top:4px;color:var(--color-text-primary)}.meal-modal-servings-row{display:flex;gap:24px;margin-bottom:20px;align-items:end;justify-content:center}.meal-modal-serving-field{flex:none;width:140px;text-align:center}.meal-modal-serving-input{width:60px;padding:12px;border:1px solid var(--color-border);border-radius:4px;font-size:14px;background-color:var(--color-bg-input);color:var(--color-text-primary);text-align:center;margin:0 auto}.meal-modal-leftover-preview{background-color:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;padding:12px;margin-bottom:20px;color:#0c5460}[data-theme=dark] .meal-modal-leftover-preview{background-color:#2d4a22;border-color:#38a169;color:#9ae6b4}.meal-modal-footer{display:flex;gap:12px;justify-content:flex-end}.meal-modal-btn-cancel{background-color:var(--color-text-secondary);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.meal-modal-btn-confirm{background-color:var(--color-primary);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}.meal-modal-btn-confirm:disabled{background-color:var(--color-text-secondary);cursor:not-allowed}.preset-modal-overlay{position:fixed;inset:0;background-color:var(--color-overlay);animation:fadeIn .2s ease;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:10vh 20px 20px;overflow-y:auto}.preset-modal-content{background-color:var(--color-bg-card);border-radius:12px;padding:24px;max-width:400px;width:90%;box-shadow:0 10px 25px var(--color-shadow-heavy);animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.preset-modal-title{margin:0 0 16px;color:var(--color-text-primary)}.preset-modal-field{margin-bottom:16px}.preset-modal-label{display:block;margin-bottom:8px;font-weight:700;color:var(--color-text-primary)}.preset-modal-input{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:14px;box-sizing:border-box;background-color:var(--color-bg-input);color:var(--color-text-primary)}.preset-modal-warning{background-color:var(--color-warning-light);color:#856404;padding:10px 12px;border-radius:6px;margin-bottom:16px;font-size:13px}[data-theme=dark] .preset-modal-warning{color:var(--color-warning)}.preset-modal-footer{display:flex;gap:12px;justify-content:flex-end}.preset-modal-btn-cancel{background-color:var(--color-text-secondary);color:#fff;border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-size:14px}.preset-modal-btn-save{background-color:#17a2b8;color:#fff;border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:700}.preset-modal-btn-rename{background-color:var(--color-success);color:#fff;border:none;border-radius:6px;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:700}.mp-error-message{background-color:var(--color-danger-light);color:#721c24;padding:15px;border-radius:10px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;border:1px solid #f5c6cb;box-shadow:0 2px 4px var(--color-shadow)}[data-theme=dark] .mp-error-message{color:var(--color-danger);border-color:var(--color-danger)}.mp-dismiss-btn{background:none;border:none;cursor:pointer;font-size:16px;color:inherit;min-height:auto;min-width:auto;padding:0}.mp-dismiss-btn:hover{transform:none;border-color:transparent}.mp-success-toast{position:fixed;top:100px;left:20px;z-index:9999;background-color:var(--color-success-light);color:#155724;padding:12px 16px;border-radius:8px;display:flex;align-items:center;gap:12px;border:1px solid #c3e6cb;box-shadow:0 4px 12px #00000026;max-width:350px;animation:slideIn .3s ease-out}[data-theme=dark] .mp-success-toast{color:var(--color-success);border-color:var(--color-success)}.mp-success-toast-text{flex:1}.mp-success-dismiss-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:0 4px;opacity:.7;color:inherit;min-height:auto;min-width:auto}.mp-success-dismiss-btn:hover{transform:none;border-color:transparent}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.mp-loading{padding:40px;text-align:center;min-height:400px;display:flex;flex-direction:column;justify-content:center;align-items:center}.mp-loading-title{font-size:18px;color:var(--color-text-secondary);margin-bottom:10px}.mp-loading-subtitle{font-size:14px;color:var(--color-text-muted)}.mp-error-fallback{padding:20px;text-align:center}.mp-error-fallback-text{color:var(--color-danger);margin-top:20px}.meal-plan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.meal-plan-header h2{margin:0;font-size:24px}.header-actions{display:flex;gap:10px;flex-wrap:wrap}.header-btn{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;min-height:44px;white-space:nowrap}.header-btn-primary{background-color:var(--color-primary);color:#fff}.header-btn-success{background-color:var(--color-success);color:#fff}.header-btn-danger{background-color:var(--color-danger);color:#fff}@media(max-width:479px){.meal-plan-header{flex-direction:column;align-items:stretch}.meal-plan-header h2{font-size:20px;text-align:center}.header-actions{justify-content:center}.header-btn{padding:10px 12px;font-size:13px;flex:1;min-width:0}}.error-boundary{padding:20px;text-align:center;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;margin:20px}.error-boundary-title{color:var(--color-danger);margin-bottom:16px}.error-boundary-message{color:var(--color-text-secondary);margin-bottom:20px}.error-boundary-details{text-align:left;margin-top:20px}.error-boundary-summary{cursor:pointer;margin-bottom:10px}.error-boundary-stack{background-color:var(--color-bg-card);padding:10px;border:1px solid var(--color-border);border-radius:4px;font-size:12px;font-family:monospace;white-space:pre-wrap;color:var(--color-text-primary)}.error-boundary-refresh-btn{background-color:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:4px;padding:10px 20px;cursor:pointer;margin-top:16px}.error-boundary-refresh-btn:hover{background-color:var(--color-primary-hover)}.feedback-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:10vh 1rem 1rem;animation:feedbackFadeIn .2s ease;overflow-y:auto}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}@keyframes feedbackSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.feedback-modal{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:feedbackSlideUp .3s cubic-bezier(.4,0,.2,1)}.feedback-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.feedback-modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary, #1f2937)}.feedback-modal-close{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-secondary, #6b7280);border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.feedback-modal-close:hover{background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #1f2937)}.feedback-modal-form{padding:1.5rem}.feedback-user-info{font-size:.875rem;color:var(--text-secondary, #6b7280);margin-bottom:1rem;padding:.5rem .75rem;background:var(--bg-secondary, #f3f4f6);border-radius:6px}.feedback-form-group{margin-bottom:1rem}.feedback-form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-primary, #1f2937);margin-bottom:.5rem}.feedback-form-group input,.feedback-form-group select,.feedback-form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:1rem;font-family:inherit;background:var(--bg-primary, #ffffff);color:var(--text-primary, #1f2937);transition:all .2s ease;box-sizing:border-box}.feedback-form-group input:focus,.feedback-form-group select:focus,.feedback-form-group textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #3b82f61a}.feedback-form-group textarea{resize:vertical;min-height:100px}.feedback-status{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;text-align:center}.feedback-status.success{background:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.feedback-status.error{background:var(--color-danger-light);border:1px solid var(--color-danger);color:var(--color-danger)}.feedback-modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.feedback-cancel-btn{padding:.75rem 1.25rem;background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;font-size:.9375rem;font-weight:500;color:var(--text-primary, #1f2937);cursor:pointer;transition:all .2s ease}.feedback-cancel-btn:hover{background:var(--bg-tertiary, #e5e7eb)}.feedback-submit-btn{padding:.75rem 1.25rem;background:var(--color-primary);border:none;border-radius:8px;font-size:.9375rem;font-weight:500;color:var(--color-text-inverse);cursor:pointer;transition:all .2s ease}.feedback-submit-btn:hover{background:var(--color-primary-hover)}.feedback-submit-btn:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .feedback-modal{background:var(--color-bg-card)}[data-theme=dark] .feedback-modal-header{border-color:var(--color-border)}[data-theme=dark] .feedback-modal-header h2{color:var(--color-text-primary)}[data-theme=dark] .feedback-modal-close{color:var(--color-text-secondary)}[data-theme=dark] .feedback-modal-close:hover{background:var(--color-bg-input);color:var(--color-text-primary)}[data-theme=dark] .feedback-user-info{background:var(--color-bg-input);color:var(--color-text-secondary)}[data-theme=dark] .feedback-form-group label{color:var(--color-text-primary)}[data-theme=dark] .feedback-form-group input,[data-theme=dark] .feedback-form-group select,[data-theme=dark] .feedback-form-group textarea,[data-theme=dark] .feedback-cancel-btn{background:var(--color-bg-input);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .feedback-cancel-btn:hover{background:var(--color-bg-hover)}@media(max-width:480px){.feedback-modal{max-height:95vh}.feedback-modal-header{padding:1rem 1.25rem}.feedback-modal-form{padding:1.25rem}.feedback-modal-actions{flex-direction:column-reverse}.feedback-cancel-btn,.feedback-submit-btn{width:100%}}.settings-dropdown{position:relative;display:inline-block}.settings-dropdown-trigger{display:flex;align-items:center;gap:6px;padding:var(--spacing-xs) var(--spacing-sm);background-color:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:inherit;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-height:var(--touch-target-min)}.settings-dropdown-trigger:hover{background-color:#ffffff4d}.settings-dropdown-trigger.active{background-color:#ffffff59;box-shadow:0 0 0 2px #fff6}.settings-username{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-gear-icon{width:18px;height:18px;flex-shrink:0;transition:transform .3s ease}.settings-dropdown-trigger.active .settings-gear-icon{transform:rotate(90deg)}.settings-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background-color:var(--color-bg-card);border-radius:12px;box-shadow:0 4px 20px var(--color-shadow);border:1px solid var(--color-border-light);z-index:1100;overflow:hidden;animation:dropdownFadeIn .2s ease}[data-theme=dark] .settings-dropdown-menu{background-color:var(--color-bg-card);border-color:#ffffff1a;box-shadow:0 4px 20px var(--color-shadow-heavy)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.settings-menu-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;font-size:14px;color:var(--color-text-primary)}[data-theme=dark] .settings-menu-item{color:var(--color-text-primary)}.settings-menu-button{width:100%;background:none;border:none;cursor:pointer;text-align:left;transition:background-color .15s ease}.settings-menu-button:hover,[data-theme=dark] .settings-menu-button:hover{background-color:var(--color-bg-hover)}.settings-menu-disabled{opacity:.5;cursor:default;font-style:italic;font-size:12px}.settings-menu-divider{height:1px;background-color:var(--color-border);margin:0}[data-theme=dark] .settings-menu-divider{background-color:var(--color-border)}.settings-item-label{flex:1}.settings-theme-toggle{flex-wrap:nowrap}.theme-toggle-switch{display:flex;align-items:center;gap:8px;padding:4px 8px;background:none;border:none;cursor:pointer;border-radius:6px;transition:background-color .15s ease}.theme-toggle-switch:hover{background-color:#0000000d}[data-theme=dark] .theme-toggle-switch:hover{background-color:#ffffff1a}.theme-toggle-track{position:relative;width:40px;height:22px;background-color:var(--color-text-muted);border-radius:11px;transition:background-color .2s ease}.theme-toggle-switch.dark .theme-toggle-track{background-color:var(--color-bg-hover)}.theme-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;background-color:var(--color-bg-card);border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.theme-toggle-switch.dark .theme-toggle-thumb{transform:translate(18px)}.theme-toggle-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);min-width:35px}[data-theme=dark] .theme-toggle-label{color:var(--color-text-secondary)}@media(max-width:768px){.settings-dropdown-menu{min-width:200px;right:-10px}.settings-username{max-width:80px}}@media(max-width:480px){.settings-dropdown-trigger{padding:var(--spacing-xs)}.settings-username{display:none}.settings-dropdown-menu{right:-20px;min-width:180px}}.onboarding-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:flex-start;justify-content:center;z-index:2000;padding:10vh 20px 20px;overflow-y:auto;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.onboarding-modal{background-color:var(--color-bg-card);border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.onboarding-modal.dark{background-color:var(--color-bg-card);color:var(--color-text-primary)}.onboarding-header{padding:24px 24px 16px;text-align:center;position:relative;border-bottom:1px solid var(--color-border)}.onboarding-modal.dark .onboarding-header{border-bottom-color:var(--color-border)}.onboarding-header h2{margin:0;font-size:24px;color:var(--color-text-primary)}.onboarding-modal.dark .onboarding-header h2{color:var(--color-text-primary)}.onboarding-subtitle{margin:8px 0 0;color:var(--color-text-secondary);font-size:14px}.onboarding-modal.dark .onboarding-subtitle{color:var(--color-text-secondary)}.onboarding-close-btn{position:absolute;top:16px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--color-text-secondary);padding:4px 8px;border-radius:4px;transition:background-color .15s ease}.onboarding-close-btn:hover{background-color:var(--color-bg-hover)}.onboarding-modal.dark .onboarding-close-btn{color:var(--color-text-secondary)}.onboarding-modal.dark .onboarding-close-btn:hover{background-color:var(--color-bg-hover)}.onboarding-progress{display:flex;justify-content:center;gap:12px;padding:16px}.progress-dot{width:10px;height:10px;border-radius:50%;background-color:var(--color-border);transition:all .3s ease}.onboarding-modal.dark .progress-dot{background-color:var(--color-bg-hover)}.progress-dot.active{background-color:var(--color-success)}.progress-dot.current{transform:scale(1.3)}.onboarding-error{margin:0 24px;padding:12px;background-color:var(--color-danger-light);color:var(--color-danger);border-radius:8px;font-size:14px;text-align:center}.onboarding-content{flex:1;overflow-y:auto;padding:16px 24px 24px;transition:opacity .2s ease,transform .2s ease}.onboarding-content.step-enter-forward{animation:stepEnterForward .2s ease}.onboarding-content.step-enter-backward{animation:stepEnterBackward .2s ease}.onboarding-content.step-exit-forward{opacity:0;transform:translate(-20px)}.onboarding-content.step-exit-backward{opacity:0;transform:translate(20px)}@keyframes stepEnterForward{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes stepEnterBackward{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.onboarding-step h3{margin:0 0 20px;font-size:18px;text-align:center;color:var(--color-text-primary)}.onboarding-modal.dark .onboarding-step h3{color:var(--color-text-primary)}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.option-grid.three-col{grid-template-columns:repeat(3,1fr)}@media(max-width:500px){.option-grid{grid-template-columns:1fr}.option-grid.three-col{grid-template-columns:repeat(2,1fr)}}.option-card{display:flex;flex-direction:column;align-items:center;padding:16px 12px;background-color:var(--color-bg-hover);border:2px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:center}.onboarding-modal.dark .option-card{background-color:var(--color-bg-hover);border-color:var(--color-bg-hover)}.option-card:hover{border-color:var(--color-success);background-color:#f0fff4}.onboarding-modal.dark .option-card:hover{border-color:var(--color-success);background-color:#2f4f3f}.option-card.selected{border-color:var(--color-success);background-color:var(--color-success-light)}.onboarding-modal.dark .option-card.selected{border-color:var(--color-success);background-color:#1e4d2b}.option-label{font-weight:600;font-size:15px;color:var(--color-text-primary);margin-bottom:4px}.onboarding-modal.dark .option-label{color:var(--color-text-primary)}.option-description{font-size:12px;color:var(--color-text-secondary)}.onboarding-modal.dark .option-description{color:var(--color-text-secondary)}.settings-section{margin-bottom:24px}.settings-section h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text-secondary)}.onboarding-modal.dark .settings-section h4{color:var(--color-text-primary)}.allergy-grid{display:flex;flex-wrap:wrap;gap:8px}.allergy-chip{padding:8px 14px;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:20px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .2s ease}.onboarding-modal.dark .allergy-chip{background-color:var(--color-bg-hover);border-color:var(--color-bg-hover);color:var(--color-text-primary)}.allergy-chip:hover{border-color:var(--color-danger)}.allergy-chip.selected{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}.onboarding-modal.dark .allergy-chip.selected{background-color:#742a2a;border-color:var(--color-danger);color:#feb2b2}.slider-container{display:flex;align-items:center;gap:12px}.slider-label{font-size:12px;color:var(--color-text-secondary);min-width:50px}.slider-label:first-of-type{text-align:right}.slider-value{font-size:13px;font-weight:600;color:var(--color-success);min-width:45px;text-align:right}.preference-slider{flex:1;height:6px;-webkit-appearance:none;appearance:none;background:var(--color-border);border-radius:3px;outline:none}.onboarding-modal.dark .preference-slider{background:var(--color-bg-hover)}.preference-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-success);border-radius:50%;cursor:pointer;transition:transform .15s ease}.preference-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.preference-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-success);border-radius:50%;cursor:pointer;border:none}.onboarding-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--color-border);background-color:var(--color-bg-hover)}.onboarding-modal.dark .onboarding-footer{border-top-color:var(--color-border);background-color:#1a202c}.footer-left,.footer-right{display:flex;gap:12px}.skip-btn,.back-btn{padding:10px 20px;background:none;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:14px;color:var(--color-text-secondary);transition:all .2s ease}.onboarding-modal.dark .skip-btn,.onboarding-modal.dark .back-btn{border-color:var(--color-border);color:var(--color-text-secondary)}.skip-btn:hover,.back-btn:hover{background-color:var(--color-border)}.onboarding-modal.dark .skip-btn:hover,.onboarding-modal.dark .back-btn:hover{background-color:var(--color-bg-hover)}.next-btn,.submit-btn{padding:10px 24px;background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.next-btn:hover,.submit-btn:hover{background-color:var(--color-success-hover)}.next-btn:disabled,.submit-btn:disabled,.skip-btn:disabled,.back-btn:disabled{opacity:.6;cursor:not-allowed}.preferences-page{max-width:640px;margin:0 auto;padding:20px}.preferences-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.preferences-header h2{margin:0;font-size:22px;color:var(--color-text-primary)}.preferences-back-btn{padding:8px 16px;background:none;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:14px;color:var(--color-text-secondary);transition:all .2s ease}.preferences-back-btn:hover{background-color:var(--color-bg-hover)}.preferences-form{display:flex;flex-direction:column;gap:24px}.preferences-section{display:flex;flex-direction:column;gap:8px;padding:16px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px}[data-theme=dark] .preferences-section{background-color:var(--color-bg-card);border-color:var(--color-border)}.preferences-label{font-size:14px;font-weight:600;color:var(--color-text-primary)}.preferences-select{padding:10px 12px;font-size:14px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;transition:border-color .2s ease;appearance:auto}.preferences-select:focus{outline:none;border-color:var(--color-success)}[data-theme=dark] .preferences-select{background-color:var(--color-bg-hover);border-color:var(--color-border);color:var(--color-text-primary)}.preferences-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.preferences-chip{padding:8px 14px;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:20px;cursor:pointer;font-size:13px;color:var(--color-text-secondary);transition:all .2s ease}[data-theme=dark] .preferences-chip{background-color:var(--color-bg-hover);border-color:var(--color-bg-hover);color:var(--color-text-primary)}.preferences-chip:hover{border-color:var(--color-text-muted)}.preferences-chip.allergy.selected{background-color:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger)}[data-theme=dark] .preferences-chip.allergy.selected{background-color:#742a2a;border-color:var(--color-danger);color:#feb2b2}.preferences-chip.nutrient.selected{background-color:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}[data-theme=dark] .preferences-chip.nutrient.selected{background-color:#1e4d2b;border-color:var(--color-success);color:#9ae6b4}.preferences-slider-row{display:flex;align-items:center;gap:12px}.preferences-slider-label{font-size:12px;color:var(--color-text-secondary);min-width:50px}.preferences-slider-label:first-of-type{text-align:right}.preferences-slider-value{font-size:13px;font-weight:600;color:var(--color-success);min-width:45px;text-align:right}.preferences-slider{flex:1;height:6px;-webkit-appearance:none;appearance:none;background:var(--color-border);border-radius:3px;outline:none}[data-theme=dark] .preferences-slider{background:var(--color-bg-hover)}.preferences-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-success);border-radius:50%;cursor:pointer;transition:transform .15s ease}.preferences-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.preferences-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-success);border-radius:50%;cursor:pointer;border:none}.preferences-toggle-label{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-text-primary);cursor:pointer}.preferences-toggle-checkbox{width:18px;height:18px;accent-color:var(--color-success);cursor:pointer}.preferences-nutrient-picker{margin-top:12px}.preferences-picker-hint{margin:0 0 8px;font-size:13px;color:var(--color-text-secondary)}.preferences-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border)}.preferences-cancel-btn{padding:10px 20px;background:none;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:14px;color:var(--color-text-secondary);transition:all .2s ease}.preferences-cancel-btn:hover{background-color:var(--color-bg-hover)}.preferences-save-btn{padding:10px 24px;background-color:var(--color-success);color:var(--color-text-inverse);border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s ease}.preferences-save-btn:hover{background-color:var(--color-success-hover)}.preferences-save-btn:disabled,.preferences-cancel-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.preferences-page{padding:16px}.preferences-header h2{font-size:18px}.preferences-section{padding:12px}.preferences-select{font-size:13px}.preferences-slider-row{gap:8px}.preferences-slider-label{min-width:40px;font-size:11px}.preferences-slider-value{min-width:38px;font-size:12px}}@media(max-width:480px){.preferences-header{gap:10px}.preferences-back-btn{padding:6px 12px;font-size:13px}.preferences-footer{flex-direction:column-reverse}.preferences-cancel-btn,.preferences-save-btn{width:100%;text-align:center}.preferences-chip{padding:6px 10px;font-size:12px}}.admin-container{max-width:1280px;margin:20px auto;padding:0 20px}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background-color:var(--color-bg-card);border-radius:12px;box-shadow:0 2px 8px var(--color-shadow);margin-bottom:20px}.admin-title{margin:0;font-size:28px;color:var(--color-text-primary)}.admin-back-btn{padding:10px 20px;background-color:var(--color-bg-hover);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-weight:600;font-size:14px}.admin-back-btn:hover{background-color:var(--color-border)}.admin-tabs{display:flex;gap:8px;margin-bottom:20px;padding:8px;background-color:var(--color-bg-card);border-radius:12px;box-shadow:0 2px 8px var(--color-shadow)}.admin-tab{padding:10px 20px;background-color:transparent;color:var(--color-text-secondary);border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s ease;min-height:auto}.admin-tab:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary);transform:none;border-color:transparent}.admin-tab.active{background-color:#7c3aed;color:#fff}.admin-tab.active:hover{background-color:#6d28d9}.admin-content{background-color:var(--color-bg-card);border-radius:12px;padding:24px;box-shadow:0 2px 8px var(--color-shadow);min-height:400px;position:relative;overflow:hidden}@keyframes adminPageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.admin-page-enter{animation:adminPageEnter .4s ease forwards}.admin-tab-visible{display:block}.admin-tab-hidden{display:none}@keyframes adminTabFadeIn{0%{opacity:1}to{opacity:0;pointer-events:none}}.admin-tab-fade{position:absolute;inset:0;background-color:var(--color-bg-card);animation:adminTabFadeIn .25s ease forwards;pointer-events:none}.admin-loading{text-align:center;padding:40px;color:var(--color-text-secondary)}.admin-empty{text-align:center;color:var(--color-text-secondary);padding:20px;font-style:italic}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:30px}.admin-stat-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:10px;padding:20px;text-align:center}.admin-stat-card-alert{border-color:var(--color-warning);background-color:var(--color-warning-light)}.admin-stat-value{font-size:32px;font-weight:700;color:var(--color-text-primary)}.admin-stat-card-alert .admin-stat-value{color:var(--color-warning)}.admin-stat-label{font-size:13px;color:var(--color-text-secondary);margin-top:4px}.admin-activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:768px){.admin-activity-grid{grid-template-columns:1fr}}.admin-activity-section{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:10px;padding:16px}.admin-section-title{margin:0 0 16px;font-size:16px;color:var(--color-text-primary)}.admin-activity-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--color-border);font-size:13px;color:var(--color-text-primary);gap:8px}.admin-activity-row:last-child{border-bottom:none}.admin-activity-meta{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--color-text-secondary);flex-shrink:0}.admin-muted{color:var(--color-text-secondary);font-size:12px}.admin-role-badge{background-color:#7c3aed;color:#fff;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.admin-status-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.admin-status-new{background-color:var(--color-primary-light);color:var(--color-primary)}.admin-status-reviewed{background-color:var(--color-warning-light);color:var(--color-warning)}.admin-status-resolved{background-color:var(--color-success-light);color:var(--color-success)}.admin-type-badge{background-color:var(--color-bg-hover);color:var(--color-text-secondary);padding:2px 8px;border-radius:10px;font-size:11px;border:1px solid var(--color-border)}.admin-table-header{margin-bottom:16px}.admin-table-container{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;padding:12px 16px;background-color:var(--color-bg-hover);color:var(--color-text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border)}.admin-table td{padding:12px 16px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.admin-table tbody tr:hover{background-color:var(--color-bg-hover)}.admin-role-select{padding:4px 8px;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-bg-input);color:var(--color-text-primary);font-size:13px;cursor:pointer;min-height:auto}.admin-delete-btn{padding:6px 12px;background-color:var(--color-danger);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;min-height:auto;min-width:auto}.admin-delete-btn:hover{background-color:var(--color-danger-hover);transform:none;border-color:transparent}.admin-filters{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.admin-filter-label{font-weight:600;color:var(--color-text-secondary);font-size:13px;margin-right:8px}.admin-filter-btn{padding:6px 12px;background-color:var(--color-bg-hover);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;min-height:auto;min-width:auto}.admin-filter-btn:hover{background-color:var(--color-border);transform:none;border-color:var(--color-border)}.admin-filter-btn.active{background-color:#7c3aed;color:#fff;border-color:#7c3aed}.admin-feedback-card{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:10px;margin-bottom:12px;overflow:hidden}.admin-feedback-header{padding:14px 16px;cursor:pointer;transition:background-color .15s ease}.admin-feedback-header:hover{background-color:var(--color-border-light)}.admin-feedback-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;color:var(--color-text-primary)}.admin-feedback-badges{display:flex;gap:6px;flex-shrink:0}.admin-feedback-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-secondary)}.admin-feedback-body{padding:14px 16px 16px;border-top:1px solid var(--color-border);margin-top:0}.admin-feedback-message{color:var(--color-text-primary);font-size:14px;line-height:1.6;margin:0 0 8px;white-space:pre-wrap}.admin-feedback-page{font-size:12px;color:var(--color-text-secondary);margin:0 0 12px}.admin-feedback-actions{display:flex;gap:8px}.admin-action-btn{padding:6px 14px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;color:#fff;min-height:auto;min-width:auto}.admin-action-btn:hover{transform:none;border-color:transparent}.admin-btn-review{background-color:var(--color-warning)}.admin-btn-review:hover{background-color:var(--color-warning-hover)}.admin-btn-resolve{background-color:var(--color-success)}.admin-btn-resolve:hover{background-color:var(--color-success-hover)}.admin-btn-danger{background-color:var(--color-danger)}.admin-btn-danger:hover{background-color:var(--color-danger-hover)}.admin-difficulty{padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600;color:#fff}.admin-difficulty-easy{background-color:#28a745}.admin-difficulty-medium{background-color:#ffc107;color:#333}.admin-difficulty-hard{background-color:#dc3545}.admin-tags-cell{display:flex;gap:4px;flex-wrap:wrap}.admin-tag{background-color:var(--color-bg-card);color:var(--color-text-secondary);padding:2px 8px;border-radius:8px;font-size:11px;border:1px solid var(--color-border)}.admin-users-toolbar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.admin-search-input{flex:1;min-width:200px;padding:8px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-input);color:var(--color-text-primary);font-size:14px;min-height:auto}.admin-search-input:focus{outline:none;border-color:#7c3aed}.admin-users-filters{display:flex;gap:8px}.admin-user-actions{display:flex;gap:4px;flex-wrap:wrap}.admin-user-status-badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:600}.admin-user-status-badge.active{background:var(--color-success-light);color:var(--color-success)}.admin-user-status-badge.banned{background:#fee2e2;color:#dc2626}[data-theme=dark] .admin-user-status-badge.banned{background:#7f1d1d;color:#fca5a5}.admin-row-banned{opacity:.7}.admin-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-modal{background:var(--color-bg-card);border-radius:16px;padding:24px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.admin-modal-wide{max-width:700px}.admin-modal h3{margin:0 0 16px;color:var(--color-text-primary)}.admin-modal-header,.admin-modal-field{margin-bottom:16px}.admin-modal-field label{display:block;font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:6px}.admin-modal-field textarea,.admin-modal-field input[type=text]{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-input);color:var(--color-text-primary);font-size:14px;font-family:inherit;resize:vertical}.admin-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.admin-audit-stats{display:flex;gap:12px;flex-wrap:wrap;padding:12px;background:var(--color-bg-hover);border-radius:8px;margin-bottom:16px;font-size:13px;color:var(--color-text-secondary)}.admin-audit-stats span{font-weight:600}.admin-audit-section{margin-bottom:16px}.admin-audit-section h4{margin:0 0 8px;font-size:14px;color:var(--color-text-primary)}.admin-chart-bar-container{display:flex;align-items:flex-end;gap:2px;height:120px;padding:8px 0}.admin-chart-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;min-width:0}.admin-chart-bar{width:100%;max-width:24px;background:#7c3aed;border-radius:3px 3px 0 0;min-height:2px;transition:height .3s ease}.admin-chart-bar-label{font-size:9px;color:var(--color-text-tertiary, #94a3b8);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.admin-demo-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;color:var(--color-text-primary)}.admin-demo-row>span:first-child{min-width:90px;text-transform:capitalize}.admin-demo-bar-track{flex:1;height:8px;background:var(--color-bg-hover);border-radius:4px;overflow:hidden}.admin-demo-bar-fill{height:100%;background:#7c3aed;border-radius:4px;min-width:2px;transition:width .3s ease}.admin-bulk-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#7c3aed;color:#fff;border-radius:10px;margin-bottom:16px;font-size:14px;font-weight:500}.admin-bulk-bar button{padding:5px 14px;border-radius:6px;border:none;font-weight:600;font-size:12px;cursor:pointer;min-height:auto;min-width:auto}.admin-bulk-bar .admin-bulk-approve{background:#22c55e;color:#fff}.admin-bulk-bar .admin-bulk-reject{background:#ef4444;color:#fff}.admin-bulk-bar .admin-bulk-cancel{background:#fff3;color:#fff}.admin-community-checkbox{width:16px;height:16px;accent-color:#7c3aed;cursor:pointer;flex-shrink:0}@media(max-width:768px){.admin-container{padding:0 10px}.admin-header{flex-direction:column;gap:12px;text-align:center}.admin-tabs{flex-wrap:wrap}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}.admin-filters{flex-direction:column;gap:10px}.admin-table-container{position:relative}.admin-table th:first-child,.admin-table td:first-child{position:sticky;left:0;background-color:var(--color-bg-card);z-index:1}.admin-table th:first-child{background-color:var(--color-bg-hover)}.admin-table th,.admin-table td{padding:8px 10px;font-size:13px;white-space:nowrap}}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;padding:12px 0}.admin-pagination-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:8px;background-color:var(--color-bg-card);color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:background-color .2s,border-color .2s}.admin-pagination-btn:hover:not(:disabled){background-color:var(--color-bg-hover);border-color:var(--color-primary)}.admin-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.admin-pagination-info{font-size:14px;color:var(--color-text-secondary)}.notification-bell-wrapper{position:relative}.notification-bell-btn{position:relative;padding:6px;background:#ffffff80;border:1px solid rgba(255,255,255,.6);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:#2c3e50}.notification-bell-btn:hover{background:#fffc;transform:scale(1.05)}.notification-bell-btn.has-unread{animation:bellShake .5s ease-in-out}[data-theme=dark] .notification-bell-btn{background:#ffffff1a;border-color:#fff3;color:#fff}[data-theme=dark] .notification-bell-btn:hover{background:#fff3}.notification-bell-icon{width:20px;height:20px}.notification-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;box-shadow:0 1px 3px #0003}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 40px #00000026;z-index:1000;display:flex;flex-direction:column;animation:notificationSlideDown .25s cubic-bezier(.16,1,.3,1);transform-origin:top right}[data-theme=dark] .notification-dropdown{background:#1f2937;border-color:#374151;box-shadow:0 10px 40px #0006}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid #e5e7eb}[data-theme=dark] .notification-dropdown-header{border-bottom-color:#374151}.notification-dropdown-header h3{margin:0;font-size:15px;font-weight:600;color:#1f2937}[data-theme=dark] .notification-dropdown-header h3{color:#f3f4f6}.notification-mark-all-btn{background:none;border:none;color:#667eea;font-size:13px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.notification-mark-all-btn:hover{background:#667eea1a}.notification-dropdown-body{overflow-y:auto;max-height:400px}.notification-empty{padding:32px 16px;text-align:center;color:#9ca3af;font-size:14px}.notification-item{padding:12px 16px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background .15s;position:relative}.notification-item-row{display:flex;align-items:flex-start;gap:10px}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#f9fafb}.notification-item.expanded{background:#f3f4f6}[data-theme=dark] .notification-item.expanded{background:#374151}[data-theme=dark] .notification-item{border-bottom-color:#2d3748}[data-theme=dark] .notification-item:hover{background:#2d3748}.notification-item.unread{background:#eff6ff}[data-theme=dark] .notification-item.unread{background:#667eea1a}.notification-item.unread:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:#667eea}.notification-item-icon{font-size:18px;flex-shrink:0;margin-top:1px}.notification-item-content{flex:1;min-width:0}.notification-item-title{font-size:13px;font-weight:600;color:#1f2937;margin-bottom:2px}[data-theme=dark] .notification-item-title{color:#f3f4f6}.notification-item-message{font-size:12px;color:#6b7280;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.notification-item-expanded{max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease,opacity .25s ease,margin .3s ease,padding .3s ease;margin-top:0;padding:0 12px;background:#667eea0f;border-radius:8px;border-left:3px solid #667eea}.notification-item-expanded.open{max-height:200px;opacity:1;margin-top:10px;padding:10px 12px}[data-theme=dark] .notification-item-expanded{background:#667eea1f}.notification-item-full-message{font-size:13px;color:#374151;line-height:1.5;white-space:pre-line}[data-theme=dark] .notification-item-full-message{color:#d1d5db}[data-theme=dark] .notification-item-message{color:#9ca3af}.notification-item-time{font-size:11px;color:#9ca3af;margin-top:4px}.notification-item-delete{background:none;border:none;color:#9ca3af;font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:0;transition:all .15s;flex-shrink:0}.notification-item:hover .notification-item-delete{opacity:1}.notification-item-delete:hover{background:#ef44441a;color:#ef4444}@keyframes notificationSlideDown{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes bellShake{0%,to{transform:rotate(0)}20%{transform:rotate(12deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(6deg)}80%{transform:rotate(-4deg)}}@media(max-width:768px){.notification-dropdown{position:fixed;left:16px;right:16px;width:auto;top:60px}.notification-item-delete{opacity:1}}.changelog-page{max-width:800px;margin:0 auto;padding:40px 24px 80px;min-height:100vh;color:#1f2937;animation:changelogFadeIn .4s cubic-bezier(.16,1,.3,1) both}@keyframes changelogFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .changelog-page{color:#f3f4f6}.changelog-header{margin-bottom:40px}.changelog-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:#667eea;font-size:14px;font-weight:500;cursor:pointer;padding:4px 0;margin-bottom:20px;transition:opacity .15s}.changelog-back:hover{opacity:.7}.changelog-header-text h1{font-size:32px;font-weight:700;margin:0 0 8px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.3;padding-bottom:2px}.changelog-header-text p{margin:0;font-size:15px;color:#6b7280}[data-theme=dark] .changelog-header-text p{color:#9ca3af}.changelog-grid{display:flex;flex-direction:column;gap:16px}.changelog-card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:16px;cursor:pointer;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s ease;animation:cardSlideIn .45s cubic-bezier(.16,1,.3,1) both;overflow:hidden}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}[data-theme=dark] .changelog-card{background:#1e2433;border-color:#2d3548}.changelog-card.feature{border-left:3px solid #10b981}.changelog-card.major{border-left:3px solid #667eea}.changelog-card.patch{border-left:3px solid #f59e0b}.changelog-card:hover{transform:translateY(-3px) scale(1.008);box-shadow:0 8px 24px #00000014,0 2px 8px #0000000a}[data-theme=dark] .changelog-card:hover{box-shadow:0 8px 24px #0000004d,0 2px 8px #0003;border-color:#3d4a63}.changelog-card.feature:hover{box-shadow:0 8px 24px #10b9811a,0 2px 8px #0000000a}.changelog-card.major:hover{box-shadow:0 8px 24px #667eea1f,0 2px 8px #0000000a}.changelog-card.patch:hover{box-shadow:0 8px 24px #f59e0b1a,0 2px 8px #0000000a}[data-theme=dark] .changelog-card.feature:hover{box-shadow:0 8px 24px #10b98126,0 2px 8px #0003}[data-theme=dark] .changelog-card.major:hover{box-shadow:0 8px 24px #667eea33,0 2px 8px #0003}[data-theme=dark] .changelog-card.patch:hover{box-shadow:0 8px 24px #f59e0b26,0 2px 8px #0003}.changelog-card.expanded{border-color:#c7d2fe}[data-theme=dark] .changelog-card.expanded{border-color:#4a5578}.changelog-card-top{padding:20px 24px 16px;position:relative}.changelog-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.changelog-version-badge{font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;letter-spacing:.3px;flex-shrink:0}.changelog-version-badge.major{background:#667eea1f;color:#667eea}.changelog-version-badge.feature{background:#10b9811f;color:#10b981}.changelog-version-badge.patch{background:#f59e0b1f;color:#f59e0b}[data-theme=dark] .changelog-version-badge.major{background:#667eea33;color:#93a5f6}[data-theme=dark] .changelog-version-badge.feature{background:#10b98133;color:#6ee7b7}[data-theme=dark] .changelog-version-badge.patch{background:#f59e0b33;color:#fbbf24}.changelog-tag-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.changelog-tag-label.feature{color:#10b981}.changelog-tag-label.major{color:#667eea}.changelog-tag-label.patch{color:#f59e0b}[data-theme=dark] .changelog-tag-label.feature{color:#6ee7b7}[data-theme=dark] .changelog-tag-label.major{color:#93a5f6}[data-theme=dark] .changelog-tag-label.patch{color:#fbbf24}.changelog-card-date{font-size:13px;color:#9ca3af;margin-left:auto;flex-shrink:0}.changelog-card-title{font-size:20px;font-weight:650;margin:0 0 8px;color:#1f2937;line-height:1.3}[data-theme=dark] .changelog-card-title{color:#f3f4f6}.changelog-card-overview{font-size:14px;line-height:1.6;color:#6b7280;margin:0 0 12px}[data-theme=dark] .changelog-card-overview{color:#9ca3af}.changelog-card-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.changelog-card-stats{display:flex;gap:12px;flex-wrap:wrap}.changelog-stat{font-size:12px;font-weight:600;padding:2px 8px;border-radius:6px}.changelog-stat.added{background:#10b9811a;color:#10b981}.changelog-stat.changed{background:#3b82f61a;color:#3b82f6}.changelog-stat.fixed{background:#f59e0b1a;color:#f59e0b}.changelog-stat.security{background:#ef44441a;color:#ef4444}[data-theme=dark] .changelog-stat.added{background:#10b98126;color:#6ee7b7}[data-theme=dark] .changelog-stat.changed{background:#3b82f626;color:#93c5fd}[data-theme=dark] .changelog-stat.fixed{background:#f59e0b26;color:#fbbf24}[data-theme=dark] .changelog-stat.security{background:#ef444426;color:#fca5a5}.changelog-card-chevron{color:#9ca3af;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;flex-shrink:0}.changelog-card-chevron.open{transform:rotate(180deg)}[data-theme=dark] .changelog-card-chevron{color:#6b7280}.changelog-card-details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.16,1,.3,1)}.changelog-card-details.open{grid-template-rows:1fr}.changelog-card-details-inner{overflow:hidden;display:flex;flex-direction:column;gap:4px;padding:0 24px}.changelog-card-details.open .changelog-card-details-inner{padding:4px 24px 20px;border-top:1px solid #f0f0f0}[data-theme=dark] .changelog-card-details.open .changelog-card-details-inner{border-top-color:#2d3548}.changelog-change{display:flex;align-items:flex-start;gap:10px;padding:6px 10px;border-radius:8px;font-size:14px;line-height:1.5;transition:background .15s}.changelog-change:hover{background:#00000008}[data-theme=dark] .changelog-change:hover{background:#ffffff0a}.changelog-change-icon{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;margin-top:1px}.changelog-change-icon.added{background:#10b9811f;color:#10b981}.changelog-change-icon.changed{background:#3b82f61f;color:#3b82f6}.changelog-change-icon.fixed{background:#f59e0b1f;color:#f59e0b}.changelog-change-icon.security{background:#ef44441f;color:#ef4444;font-size:12px}[data-theme=dark] .changelog-change-icon.added{background:#10b98133}[data-theme=dark] .changelog-change-icon.changed{background:#3b82f633}[data-theme=dark] .changelog-change-icon.fixed{background:#f59e0b33}[data-theme=dark] .changelog-change-icon.security{background:#ef444433}.changelog-change-text{color:#374151}[data-theme=dark] .changelog-change-text{color:#d1d5db}.changelog-footer{text-align:center;padding-top:32px;border-top:1px solid rgba(102,126,234,.15);margin-top:16px}.changelog-footer p{margin:4px 0;font-size:13px;color:#9ca3af}@media(max-width:640px){.changelog-page{padding:24px 16px 60px}.changelog-header-text h1{font-size:26px}.changelog-card-top{padding:16px 16px 14px}.changelog-card-header{flex-wrap:wrap;gap:6px}.changelog-card-date{margin-left:0;width:100%;order:3}.changelog-card-title{font-size:17px}.changelog-card-overview{font-size:13px}.changelog-card-details-inner{padding:0 16px}.changelog-card-details.open .changelog-card-details-inner{padding:4px 16px 16px}.changelog-change{padding:5px 6px;font-size:13px}}.savings-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease;transition:opacity .25s ease}.savings-modal-overlay.is-closing{opacity:0}.savings-modal{background-color:var(--color-bg-card);border-radius:16px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease}.savings-modal.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.savings-modal__header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.savings-modal__header h2{margin:0;font-size:22px;color:var(--color-text-primary)}.savings-modal__close{background:none;border:none;font-size:28px;cursor:pointer;color:var(--color-text-secondary);line-height:1;padding:0 4px}.savings-modal__close:hover{color:var(--color-text-primary)}.savings-modal__form{padding:16px 24px 24px;display:flex;flex-direction:column;gap:16px}.savings-modal__label{display:block;font-size:13px;font-weight:600;color:var(--color-text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.savings-modal__form input,.savings-modal__form select{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:14px;background-color:var(--color-bg-hover);color:var(--color-text-primary);box-sizing:border-box}.savings-modal__form input:focus,.savings-modal__form select:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.savings-modal__preset-grid{display:flex;flex-wrap:wrap;gap:8px}.savings-modal__preset-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;font-size:13px;color:var(--color-text-primary);transition:all .15s ease}.savings-modal__preset-btn:hover{border-color:#10b981;background-color:#10b98114}.savings-modal__preset-icon{font-size:16px}.savings-modal__row{display:flex;gap:12px}.savings-modal__field{display:flex;flex-direction:column}.savings-modal__field--grow{flex:1}.savings-modal__freq{display:flex;align-items:center;gap:8px}.savings-modal__freq-input{width:70px!important;text-align:center}.savings-modal__freq-separator{font-size:14px;color:var(--color-text-secondary);white-space:nowrap}.savings-modal__freq-select{width:100px!important}.savings-modal__section{display:flex;flex-direction:column;gap:8px}.savings-modal__section-header{display:flex;justify-content:space-between;align-items:center}.savings-modal__section-header .savings-modal__label{margin-bottom:0}.savings-modal__tiers{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.savings-modal__tier-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-bg-hover);font-size:12px;cursor:pointer;color:var(--color-text-primary);transition:all .15s ease}.savings-modal__tier-btn:hover{border-color:#8b5cf6}.savings-modal__tier-btn.active{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border-color:transparent}.savings-modal__price-input{position:relative;display:flex;align-items:center}.savings-modal__price-prefix{position:absolute;left:12px;color:var(--color-text-secondary);font-size:14px;pointer-events:none}.savings-modal__price-input input{padding-left:24px!important}.savings-modal__add-btn{padding:6px 14px;background:none;border:1px dashed var(--color-border);border-radius:8px;font-size:13px;font-weight:600;color:#10b981;cursor:pointer;transition:all .15s ease}.savings-modal__add-btn:hover{border-color:#10b981;background-color:#10b98114}.savings-modal__ingredient{background-color:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:10px;padding:12px;margin-bottom:8px}.savings-modal__ing-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.savings-modal__ing-name{flex:1;font-weight:600}.savings-modal__ing-remove{background:none;border:none;font-size:20px;color:var(--color-text-secondary);cursor:pointer;padding:0 4px;line-height:1}.savings-modal__ing-remove:hover{color:var(--color-danger)}.savings-modal__ing-fields{display:flex;flex-direction:column;gap:8px}.savings-modal__ing-group label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;display:block}.savings-modal__ing-row{display:flex;gap:6px}.savings-modal__ing-row input{flex:1;min-width:0}.savings-modal__ing-row select{width:80px!important;flex-shrink:0}.savings-modal__ing-cost{font-size:13px;font-weight:600;color:#10b981;text-align:right;padding-top:4px}.savings-modal__preview{background:linear-gradient(135deg,#10b9810f,#0596690a);border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:16px}.savings-modal__preview-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin-bottom:12px}.savings-modal__preview-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:14px;color:var(--color-text-primary)}.savings-modal__preview-row--highlight{padding-top:8px;margin-top:4px;border-top:1px solid rgba(16,185,129,.15);font-weight:600}.savings-modal__preview-value{font-weight:700}.savings-modal__preview-value--green{color:#10b981}.savings-modal__preview-value--red{color:#ef4444}.savings-modal__actions{display:flex;gap:12px;justify-content:flex-end;padding-top:8px}.savings-modal__cancel{padding:10px 20px;background:none;border:1px solid var(--color-border);border-radius:8px;font-size:14px;cursor:pointer;color:var(--color-text-primary)}.savings-modal__cancel:hover{background-color:var(--color-bg-hover)}.savings-modal__save{padding:10px 24px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s ease}.savings-modal__save:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}[data-theme=dark] .savings-modal{box-shadow:0 20px 60px #0009}[data-theme=dark] .savings-modal__preview{background:linear-gradient(135deg,#10b9811a,#0596690f)}@media(max-width:640px){.savings-modal-overlay{padding:0;align-items:flex-end}.savings-modal{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0}.savings-modal__row{flex-direction:column;gap:12px}.savings-modal__ing-row{flex-wrap:wrap}.savings-modal__ing-row input{min-width:60px}.savings-modal__freq{flex-wrap:wrap}}.savings-detail-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease;transition:opacity .25s ease}.savings-detail-overlay.is-closing{opacity:0}.savings-detail{background-color:var(--color-bg-card);border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1);transition:opacity .25s ease,transform .25s ease;padding:24px}.savings-detail.is-closing{opacity:0;transform:translateY(20px) scale(.95)}.savings-detail__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.savings-detail__title-row{display:flex;flex-direction:column;gap:8px}.savings-detail__badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;color:#fff;align-self:flex-start}.savings-detail__name{margin:0;font-size:24px;color:var(--color-text-primary)}.savings-detail__header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.savings-detail__edit-btn,.savings-detail__delete-btn,.savings-detail__close-btn{background:none;border:1px solid var(--color-border);border-radius:8px;cursor:pointer;color:var(--color-text-secondary);padding:6px 8px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.savings-detail__edit-btn:hover{color:#10b981;border-color:#10b981}.savings-detail__delete-btn:hover{color:var(--color-danger);border-color:var(--color-danger)}.savings-detail__close-btn{font-size:22px;line-height:1;padding:4px 8px}.savings-detail__close-btn:hover{color:var(--color-text-primary)}.savings-detail__delete-confirm{background-color:var(--color-danger-light);border:1px solid var(--color-danger);border-radius:10px;padding:14px 16px;margin-bottom:20px}.savings-detail__delete-confirm p{margin:0 0 12px;font-size:14px;color:var(--color-text-primary)}.savings-detail__delete-actions{display:flex;gap:8px;justify-content:flex-end}.savings-detail__delete-actions button{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-primary)}.savings-detail__delete-confirm-btn{background:var(--color-danger)!important;color:#fff!important;border-color:transparent!important}.savings-detail__section{margin-bottom:24px}.savings-detail__section-title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin:0 0 12px}.savings-detail__ingredients{background-color:var(--color-bg-hover);border-radius:10px;padding:12px 16px}.savings-detail__ing-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-border);gap:8px}.savings-detail__ing-row:last-child{border-bottom:none}.savings-detail__ing-name{font-weight:600;font-size:14px;color:var(--color-text-primary);min-width:120px}.savings-detail__ing-info{flex:1;font-size:12px;color:var(--color-text-secondary)}.savings-detail__ing-cost{font-weight:600;font-size:14px;color:var(--color-text-primary);white-space:nowrap}.savings-detail__ing-total{display:flex;justify-content:space-between;padding:12px 0 4px;margin-top:4px;border-top:2px solid var(--color-border);font-weight:700;font-size:15px;color:var(--color-text-primary)}.savings-detail__comparison{display:flex;flex-direction:column;gap:12px}.savings-detail__bar-row{display:flex;align-items:center;gap:10px}.savings-detail__bar-label{font-size:13px;font-weight:600;color:var(--color-text-primary);width:90px;flex-shrink:0}.savings-detail__bar-track{flex:1;height:28px;background-color:var(--color-bg-hover);border-radius:6px;overflow:hidden}.savings-detail__bar{height:100%;border-radius:6px;transition:width .6s cubic-bezier(.4,0,.2,1);min-width:4px}.savings-detail__bar--green{background:linear-gradient(90deg,#10b981,#059669)}.savings-detail__bar--red{background:linear-gradient(90deg,#f87171,#ef4444)}.savings-detail__bar-value{font-size:14px;font-weight:700;color:var(--color-text-primary);width:60px;text-align:right;flex-shrink:0}.savings-detail__savings-per-serving{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--color-bg-hover);border-radius:10px;margin-top:4px}.savings-detail__savings-per-serving span:first-child{font-size:14px;color:var(--color-text-secondary)}.savings-detail__savings-amount{font-size:18px;font-weight:700}.savings-detail__savings-amount.positive{color:#10b981}.savings-detail__savings-amount.negative{color:#ef4444}.savings-detail__time-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.savings-detail__time-card{text-align:center;padding:16px 8px;background-color:var(--color-bg-hover);border-radius:10px}.savings-detail__time-amount{font-size:22px;font-weight:700;margin-bottom:4px}.savings-detail__time-amount.positive{color:#10b981}.savings-detail__time-amount.negative{color:#ef4444}.savings-detail__time-label{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.savings-detail__teaser{margin-top:8px;padding:12px 16px;background-color:var(--color-bg-hover);border-radius:8px;font-size:13px;color:var(--color-text-secondary);text-align:center;font-style:italic}[data-theme=dark] .savings-detail{box-shadow:0 20px 60px #0009}@media(max-width:640px){.savings-detail-overlay{padding:0;align-items:flex-end}.savings-detail{max-width:100%;max-height:95vh;border-radius:16px 16px 0 0;padding:20px 16px}.savings-detail__name{font-size:20px}.savings-detail__ing-row{flex-wrap:wrap}.savings-detail__ing-name{min-width:unset;width:100%}.savings-detail__bar-label{width:70px;font-size:12px}.savings-detail__time-cards{gap:8px}.savings-detail__time-amount{font-size:18px}}.savings-container{padding:20px;font-family:Arial,sans-serif;max-width:1200px;margin:0 auto;background-color:var(--color-bg-hover);min-height:100vh;border-radius:16px;box-shadow:0 8px 32px #0000001f}.savings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.savings-title{margin:0;color:var(--color-text-primary);font-size:32px}.savings-add-btn{padding:10px 20px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.savings-add-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.savings-loading{text-align:center;padding:60px 20px;color:var(--color-text-secondary);font-size:16px}.savings-error{background-color:var(--color-danger-light);color:var(--color-danger);padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.savings-empty{text-align:center;padding:60px 20px}.savings-empty__icon{font-size:64px;margin-bottom:16px}.savings-empty__title{font-size:24px;color:var(--color-text-primary);margin:0 0 8px}.savings-empty__subtitle{color:var(--color-text-secondary);font-size:16px;max-width:480px;margin:0 auto 32px}.savings-empty__presets{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:600px;margin:0 auto}.savings-empty__preset-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 20px;background-color:var(--color-bg-card);border:2px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;min-width:100px}.savings-empty__preset-btn:hover{border-color:#10b981;transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow)}.savings-empty__preset-btn--custom{border-style:dashed}.savings-empty__preset-icon{font-size:28px}.savings-empty__preset-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.savings-banner{text-align:center;padding:24px;border-radius:16px;margin-bottom:24px}.savings-banner.positive{background:linear-gradient(135deg,#10b9811f,#05966914);border:1px solid rgba(16,185,129,.25)}.savings-banner.negative{background:linear-gradient(135deg,#ef44441f,#dc262614);border:1px solid rgba(239,68,68,.25)}.savings-banner__label{font-size:14px;color:var(--color-text-secondary);margin-bottom:4px}.savings-banner__amount{font-size:36px;font-weight:700}.savings-banner.positive .savings-banner__amount{color:#10b981}.savings-banner.negative .savings-banner__amount{color:#ef4444}.savings-banner__sublabel{font-size:14px;color:var(--color-text-secondary);margin-top:4px}.savings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.savings-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:16px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.savings-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--color-shadow-heavy)}.savings-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.savings-card__badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;color:#fff}.savings-card__monthly{font-size:14px;font-weight:700}.savings-card__monthly.positive{color:#10b981}.savings-card__monthly.negative{color:#ef4444}.savings-card__name{margin:0 0 8px;font-size:18px;color:var(--color-text-primary)}.savings-card__meta{display:flex;justify-content:space-between;align-items:center}.savings-card__cost{font-size:14px;font-weight:600;color:#10b981}.savings-card__freq{font-size:13px;color:var(--color-text-secondary)}[data-theme=dark] .savings-container{box-shadow:0 8px 32px #0000004d}[data-theme=dark] .savings-empty__preset-btn:hover{box-shadow:0 4px 12px #0000004d}[data-theme=dark] .savings-banner.positive{background:linear-gradient(135deg,#10b98126,#0596691a)}[data-theme=dark] .savings-banner.negative{background:linear-gradient(135deg,#ef444426,#dc26261a)}@media(max-width:768px){.savings-container{padding:16px;border-radius:0}.savings-title{font-size:24px}.savings-banner__amount{font-size:28px}.savings-grid{grid-template-columns:1fr}.savings-empty__presets{gap:8px}.savings-empty__preset-btn{padding:12px 16px;min-width:80px}}.create-post-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:cpFadeIn .25s ease}.create-post-overlay.is-closing{animation:cpFadeOut .25s ease forwards}.create-post-modal{background:var(--color-bg-card, #fff);border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;animation:cpSlideUp .25s ease;position:relative}.is-closing .create-post-modal{animation:cpSlideDown .25s ease forwards}.create-post-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0}.create-post-header h2{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin:0}.create-post-close{width:32px;height:32px;border-radius:8px;border:none;background:var(--color-bg-hover, #f1f5f9);color:var(--color-text-secondary);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.create-post-close:hover{background:var(--color-bg-secondary)}.create-post-form{padding:20px 24px 24px;display:flex;flex-direction:column;gap:18px}.create-post-upload{border:2px dashed var(--color-border, #e2e8f0);border-radius:12px;padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;position:relative;overflow:hidden}.create-post-upload:hover{border-color:#3b82f6;background:#3b82f60a}.create-post-upload.has-image{padding:0;border-style:solid}.create-post-upload-preview{width:100%;max-height:300px;object-fit:cover;border-radius:10px;display:block}.create-post-upload-text{color:var(--color-text-secondary);font-size:.9rem}.create-post-upload-text svg{width:40px;height:40px;margin-bottom:8px;color:var(--color-text-tertiary, #94a3b8)}.create-post-upload-hint{font-size:.78rem;color:var(--color-text-tertiary, #94a3b8);margin-top:4px}.create-post-clear-image{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;border:none;background:#0009;color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2}.create-post-field{display:flex;flex-direction:column;gap:6px}.create-post-label{font-size:.85rem;font-weight:600;color:var(--color-text-primary)}.create-post-input,.create-post-textarea{padding:10px 12px;border:1.5px solid var(--color-border, #e2e8f0);border-radius:10px;font-size:.9rem;color:var(--color-text-primary);background:var(--color-bg-card, #fff);transition:border-color .2s;font-family:inherit}.create-post-input:focus,.create-post-textarea:focus{outline:none;border-color:#3b82f6}.create-post-textarea{resize:vertical;min-height:80px}.create-post-char-count{font-size:.75rem;color:var(--color-text-tertiary, #94a3b8);text-align:right}.create-post-char-count.over{color:var(--color-danger, #ef4444)}.create-post-row{display:flex;gap:8px;align-items:center}.create-post-row input{flex:1;padding:8px 10px;border:1.5px solid var(--color-border, #e2e8f0);border-radius:8px;font-size:.85rem;color:var(--color-text-primary);background:var(--color-bg-card, #fff)}.create-post-row input:focus{outline:none;border-color:#3b82f6}.create-post-row-remove{width:28px;height:28px;border:none;background:none;color:var(--color-text-tertiary, #94a3b8);cursor:pointer;font-size:1.2rem;flex-shrink:0;border-radius:6px;transition:color .2s,background .2s}.create-post-row-remove:hover{color:var(--color-danger, #ef4444);background:#ef444414}.create-post-add-row{padding:6px 14px;border:1.5px dashed var(--color-border, #e2e8f0);border-radius:8px;background:none;color:#3b82f6;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .2s}.create-post-add-row:hover{background:#3b82f60a}.create-post-tag-grid{display:flex;flex-wrap:wrap;gap:8px}.create-post-tag-toggle{padding:6px 14px;border-radius:20px;border:1.5px solid var(--color-border, #e2e8f0);background:var(--color-bg-card, #fff);color:var(--color-text-secondary);font-size:.82rem;cursor:pointer;transition:all .2s}[data-theme=dark] .create-post-tag-toggle{background:#ffffff0f;border-color:#ffffff1f;color:#cbd5e1}.create-post-tag-toggle.selected{background:#3b82f6;border-color:#3b82f6;color:#fff}.create-post-submit{padding:12px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s}.create-post-submit:hover{background:#2563eb}.create-post-submit:disabled{opacity:.5;cursor:not-allowed}.create-post-error{color:var(--color-danger, #ef4444);font-size:.85rem;text-align:center}@keyframes cpFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cpFadeOut{0%{opacity:1}to{opacity:0}}@keyframes cpSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes cpSlideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(30px);opacity:0}}.post-detail-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:pdFadeIn .25s ease}.post-detail-overlay.is-closing{animation:pdFadeOut .25s ease forwards}.post-detail-modal{background:var(--color-bg-card, #fff);border-radius:16px;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;animation:pdSlideUp .25s ease;overflow:hidden}.is-closing .post-detail-modal{animation:pdSlideDown .25s ease forwards}.post-detail-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:none;background:#00000080;color:#fff;font-size:1.2rem;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}.post-detail-image-wrap{position:relative;flex-shrink:0}.post-detail-image{width:100%;max-height:360px;object-fit:cover;display:block}.post-detail-placeholder{width:100%;height:200px;background:var(--color-bg-hover, #f1f5f9);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary, #94a3b8)}.post-detail-placeholder svg{width:56px;height:56px;opacity:.35}.post-detail-content{flex:1;overflow-y:auto;padding:20px 24px}.post-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.post-detail-author-info{flex:1}.post-detail-author-name{font-weight:600;font-size:.9rem;color:var(--color-text-primary)}.post-detail-time{font-size:.78rem;color:var(--color-text-tertiary, #94a3b8)}.post-detail-title{font-size:1.3rem;font-weight:700;color:var(--color-text-primary);margin:0 0 8px}.post-detail-caption{font-size:.92rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:16px}.post-detail-actions{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.post-detail-save-btn{display:flex;align-items:center;gap:6px;padding:8px 18px;background:#7c3aed;color:#fff;border:none;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s}.post-detail-save-btn:hover{background:#6d28d9}.post-detail-save-btn:disabled{opacity:.5;cursor:not-allowed}.post-detail-report-btn{display:flex;align-items:center;gap:5px;padding:8px 14px;background:none;border:1.5px solid var(--color-border, #e2e8f0);border-radius:10px;color:var(--color-text-secondary);font-size:.82rem;cursor:pointer;transition:all .2s}.post-detail-report-btn:hover{border-color:var(--color-danger, #ef4444);color:var(--color-danger, #ef4444)}.post-detail-report-btn.reported{border-color:var(--color-danger, #ef4444);color:var(--color-danger, #ef4444);opacity:.6;cursor:default}.post-detail-report-btn svg{width:14px;height:14px}.post-detail-delete-btn{padding:8px 14px;background:none;border:1.5px solid var(--color-danger, #ef4444);border-radius:10px;color:var(--color-danger, #ef4444);font-size:.82rem;font-weight:500;cursor:pointer;margin-left:auto;transition:background .2s}.post-detail-delete-btn:hover{background:#ef444414}.post-detail-section-label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary, #94a3b8);margin:16px 0 8px}.post-detail-ingredients{list-style:disc;padding-left:20px;margin:0 0 8px}.post-detail-ingredients li{font-size:.88rem;color:var(--color-text-primary);margin-bottom:4px;line-height:1.4}.post-detail-instructions{list-style:none;padding:0;margin:0 0 8px;counter-reset:step}.post-detail-instructions li{counter-increment:step;font-size:.88rem;color:var(--color-text-primary);margin-bottom:8px;padding-left:28px;position:relative;line-height:1.5}.post-detail-instructions li:before{content:counter(step);position:absolute;left:0;width:22px;height:22px;border-radius:50%;background:#3b82f6;color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;top:1px}.post-detail-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}.post-detail-tag{font-size:.78rem;padding:4px 10px;border-radius:12px;background:var(--color-bg-hover, #f1f5f9);color:var(--color-text-secondary)}[data-theme=dark] .post-detail-tag{background:#3b82f626;color:#93c5fd}.post-detail-divider{border:none;border-top:1px solid var(--color-border, #e2e8f0);margin:16px 0}.post-detail-comments-title{font-size:.95rem;font-weight:650;color:var(--color-text-primary);margin-bottom:12px}.post-detail-comment{display:flex;gap:10px;margin-bottom:14px}.post-detail-comment-body-wrap{flex:1}.post-detail-comment-header{display:flex;align-items:center;gap:8px;margin-bottom:2px}.post-detail-comment-name{font-size:.82rem;font-weight:600;color:var(--color-text-primary)}.post-detail-comment-time{font-size:.72rem;color:var(--color-text-tertiary, #94a3b8)}.post-detail-comment-delete{background:none;border:none;color:var(--color-text-tertiary, #94a3b8);cursor:pointer;font-size:.72rem;padding:0;margin-left:auto;transition:color .2s}.post-detail-comment-delete:hover{color:var(--color-danger, #ef4444)}.post-detail-comment-text{font-size:.85rem;color:var(--color-text-secondary);line-height:1.4;margin:0}.post-detail-no-comments{font-size:.85rem;color:var(--color-text-tertiary, #94a3b8);text-align:center;padding:16px 0}.post-detail-comment-input-wrap{display:flex;gap:8px;padding:16px 24px;border-top:1px solid var(--color-border, #e2e8f0);background:var(--color-bg-card, #fff);flex-shrink:0}.post-detail-comment-input{flex:1;padding:10px 14px;border:1.5px solid var(--color-border, #e2e8f0);border-radius:10px;font-size:.88rem;color:var(--color-text-primary);background:var(--color-bg-card, #fff);font-family:inherit}.post-detail-comment-input:focus{outline:none;border-color:#3b82f6}.post-detail-comment-send{padding:10px 16px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s;flex-shrink:0}.post-detail-comment-send:hover{background:#2563eb}.post-detail-comment-send:disabled{opacity:.5;cursor:not-allowed}.post-detail-loading{display:flex;align-items:center;justify-content:center;padding:80px 0}.post-detail-loading .community-spinner{width:28px;height:28px}.post-detail-report-dialog{background:var(--color-bg-card, #fff);border:1.5px solid var(--color-border, #e2e8f0);border-radius:12px;padding:16px;margin-bottom:16px}.post-detail-report-dialog p{font-size:.88rem;color:var(--color-text-primary);margin:0 0 10px;font-weight:600}.post-detail-report-dialog input{width:100%;padding:8px 12px;border:1.5px solid var(--color-border, #e2e8f0);border-radius:8px;font-size:.85rem;margin-bottom:10px;color:var(--color-text-primary);background:var(--color-bg-card, #fff);box-sizing:border-box}.post-detail-report-dialog-actions{display:flex;gap:8px;justify-content:flex-end}.post-detail-report-dialog-actions button{padding:6px 14px;border-radius:8px;font-size:.82rem;font-weight:500;cursor:pointer;border:1.5px solid var(--color-border, #e2e8f0);background:none;color:var(--color-text-secondary);transition:all .2s}.post-detail-report-dialog-actions button.confirm{background:var(--color-danger, #ef4444);border-color:var(--color-danger, #ef4444);color:#fff}.post-detail-confirm-delete{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#ef44440f;border-radius:10px;margin-bottom:16px;font-size:.85rem;color:var(--color-danger, #ef4444)}.post-detail-confirm-delete button{padding:4px 12px;border-radius:6px;font-size:.82rem;cursor:pointer;border:none}.post-detail-confirm-delete button.yes{background:var(--color-danger, #ef4444);color:#fff}.post-detail-confirm-delete button.no{background:var(--color-bg-hover, #f1f5f9);color:var(--color-text-secondary)}@keyframes pdFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pdFadeOut{0%{opacity:1}to{opacity:0}}@keyframes pdSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pdSlideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(30px);opacity:0}}.community-container{max-width:900px;margin:0 auto;padding:0 16px}.community-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.community-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin:0}.community-create-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s}.community-create-btn:hover{background:#2563eb;transform:translateY(-1px)}.community-create-btn svg{width:18px;height:18px}.community-tags{display:flex;gap:8px;overflow-x:auto;padding:4px 2px;margin-bottom:20px;-ms-overflow-style:none;scrollbar-width:none}.community-tags::-webkit-scrollbar{display:none}.community-tag-chip{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid var(--color-border, #e2e8f0);background:var(--color-bg-secondary, #f8fafc);color:var(--color-text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.community-tag-chip:hover{border-color:#3b82f6;color:#3b82f6}[data-theme=dark] .community-tag-chip{background:#ffffff0f;border-color:#ffffff1f;color:#cbd5e1}[data-theme=dark] .community-tag-chip:hover{border-color:#60a5fa;color:#60a5fa}.community-tag-chip.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.community-feed-wrap{animation:communityFeedIn .35s ease both}.community-feed-wrap.is-transitioning{animation:communityFeedOut .2s ease both}.community-feed{display:grid;grid-template-columns:1fr;gap:16px}@keyframes communityFeedIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes communityFeedOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media(min-width:600px){.community-feed{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.community-feed{grid-template-columns:repeat(3,1fr)}}.community-post-card{background:var(--color-bg-card, #fff);border-radius:14px;cursor:pointer;transition:transform .2s,box-shadow .2s;border:1px solid var(--color-border, #e2e8f0)}.community-post-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.community-post-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:var(--color-bg-hover, #f1f5f9);border-radius:13px 13px 0 0}.community-post-placeholder{width:100%;aspect-ratio:4 / 3;background:var(--color-bg-hover, #f1f5f9);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary, #94a3b8);border-radius:13px 13px 0 0}.community-post-placeholder svg{width:48px;height:48px;opacity:.4}.community-post-body{padding:12px 14px}.community-post-title{font-size:.95rem;font-weight:650;color:var(--color-text-primary);margin:0 0 4px;line-height:1.3}.community-post-caption{font-size:.82rem;color:var(--color-text-secondary);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.community-post-footer{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--color-text-tertiary, #94a3b8)}.community-post-author{display:flex;align-items:center;gap:6px}.community-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:700;flex-shrink:0}.community-post-meta{display:flex;align-items:center;gap:10px}.community-comment-count{display:flex;align-items:center;gap:3px}.community-comment-count svg{width:14px;height:14px}.community-post-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.community-post-tag{font-size:.7rem;padding:2px 8px;border-radius:10px;background:var(--color-bg-hover, #f1f5f9);color:var(--color-text-secondary);white-space:nowrap}[data-theme=dark] .community-post-tag{background:#3b82f626;color:#93c5fd}.community-pending-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:600;margin-bottom:8px}[data-theme=dark] .community-pending-badge{background:#78350f;color:#fde68a}.community-load-more{display:block;margin:24px auto;padding:10px 32px;background:var(--color-bg-secondary, #f8fafc);border:1.5px solid var(--color-border, #e2e8f0);border-radius:10px;color:var(--color-text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.community-load-more:hover{background:var(--color-bg-hover);border-color:#3b82f6;color:#3b82f6}.community-load-more:disabled{opacity:.5;cursor:not-allowed}.community-empty{text-align:center;padding:60px 20px;color:var(--color-text-secondary)}.community-empty-icon{font-size:3rem;margin-bottom:16px}.community-empty h3{font-size:1.2rem;margin:0 0 8px;color:var(--color-text-primary)}.community-empty p{font-size:.9rem;max-width:400px;margin:0 auto;line-height:1.5}.community-skeleton-card{background:var(--color-bg-card, #fff);border-radius:14px;overflow:hidden;border:1px solid var(--color-border, #e2e8f0)}.community-skeleton-image{width:100%;aspect-ratio:4 / 3;background:var(--color-bg-hover, #f1f5f9);animation:communityPulse 1.5s ease-in-out infinite}.community-skeleton-body{padding:12px 14px}.community-skeleton-line{height:12px;border-radius:6px;background:var(--color-bg-hover, #f1f5f9);animation:communityPulse 1.5s ease-in-out infinite;margin-bottom:8px}.community-skeleton-line.short{width:60%}@keyframes communityPulse{0%,to{opacity:.5}50%{opacity:1}}.community-loading{display:flex;justify-content:center;padding:40px}.community-spinner{width:32px;height:32px;border:3px solid var(--color-border, #e2e8f0);border-top-color:#3b82f6;border-radius:50%;animation:communitySpin .8s linear infinite}@keyframes communitySpin{to{transform:rotate(360deg)}}#root{max-width:100%;margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(-45deg,#a7c7e7,#b8d4e3,#c5d5e8,#d5c8d6,#ddd5c7,#d8cfc4,#c4c9e8,#b3cce6,#c9c3d9,#bdc8e0,#d0c5d4,#c2dce0);background-size:400% 400%;animation:gradientShift 60s ease infinite}[data-theme=dark] #root{background:linear-gradient(-45deg,#374151,#1f2937,#18181b,#27272a,#111827,#0f172a,#1c1917,#292524,#0c0a09,#09090b,#030712,#111827);background-size:400% 400%;animation:gradientShift 60s ease infinite}.app-container{width:100%;max-width:1280px;margin:20px auto;padding:0;flex:1;background:#ffffff8c;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;box-shadow:0 8px 32px #0000001f;border:1px solid rgba(255,255,255,.6);overflow:hidden;position:relative;z-index:1}[data-theme=dark] .app-container{background:#1f293740;border:1px solid rgba(75,85,99,.25);box-shadow:0 8px 32px #0009;overflow:hidden;position:relative;z-index:1}:root{--modal-bg: var(--color-bg-card);--modal-text: var(--color-text-primary);--modal-shadow: 0 10px 30px var(--color-shadow-heavy);--input-bg: var(--color-bg-input);--input-border: var(--color-border);--input-text: var(--color-text-primary);--card-bg: var(--color-bg-card);--card-border: var(--color-border);--header-text: var(--color-text-primary)}@keyframes gradientShift{0%{background-position:0% 50%}20%{background-position:50% 0%}40%{background-position:100% 50%}60%{background-position:50% 100%}80%{background-position:0% 100%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media(max-width:767px){#root{padding:0;margin:0;background-size:400% 400%;animation:gradientShift 60s ease infinite}.app-container{margin:0;border-radius:0;max-width:100%;min-height:100vh;background:#ffffff8c;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);box-shadow:0 8px 32px #0000001f;border:1px solid rgba(255,255,255,.6);overflow:hidden;position:relative;z-index:1}[data-theme=dark] .app-container{background:#1f293740;border:1px solid rgba(75,85,99,.25);box-shadow:0 8px 32px #0009}[data-theme=dark] #root{background-size:400% 400%;animation:gradientShift 60s ease infinite}}@media(max-width:479px){.app-container{background:#ffffff8c;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.6);box-shadow:0 8px 32px #0000001f}[data-theme=dark] .app-container{background:#1f293740;border:1px solid rgba(75,85,99,.25);box-shadow:0 8px 32px #0009}}@media(min-width:768px){.app-container{padding:0;margin-top:20px;margin-bottom:20px;border-radius:20px;max-width:1280px}}@media(min-width:1024px){.app-container{padding:0}}.app-header{position:sticky;top:0;background-color:#ffffff73;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.4);padding:var(--spacing-sm) var(--spacing-md);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-radius:20px 20px 0 0;z-index:1000;box-shadow:0 2px 20px #0000000f}.app-header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.app-hamburger-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;min-width:44px;min-height:44px;align-items:center;justify-content:center}.app-hamburger-icon{display:flex;flex-direction:column;gap:5px;width:22px}.app-hamburger-icon span{display:block;height:2px;width:100%;background-color:var(--color-text-primary);border-radius:2px;transition:all .3s ease;transform-origin:center}.app-hamburger-icon.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.app-hamburger-icon.is-open span:nth-child(2){opacity:0}.app-hamburger-icon.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.app-mobile-menu,.app-mobile-menu-backdrop{display:none}[data-theme=dark] .app-header{background-color:#1f293726;border-bottom:1px solid rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.1)}.app-header-title{margin:0;font-size:var(--font-size-xl);font-weight:700;color:#2c3e50;text-shadow:none;justify-self:start}[data-theme=dark] .app-header-title{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.3)}.app-nav{display:flex;gap:var(--spacing-xs);justify-self:center}.app-nav-btn{padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff80;color:#2c3e50;border:2px solid rgba(255,255,255,.6);border-radius:12px;font-weight:700;font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:var(--spacing-xs);outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #00000014;text-shadow:none}[data-theme=dark] .app-nav-btn{background-color:#ffffff14;border-color:#ffffff1f;color:#cbd5e1;box-shadow:0 2px 8px #00000040;text-shadow:none}[data-theme=dark] .app-nav-btn:hover{background-color:#ffffff24;border-color:#fff3;color:#f1f5f9}.app-nav-btn:focus{box-shadow:0 0 0 2px #fff6}[data-theme=dark] .app-nav-btn:focus{box-shadow:0 0 0 2px #ffffff26}.app-nav-btn.active{color:#fff;text-shadow:none}.app-nav-btn.active-pantry{background-color:#007bff;border-color:#007bff}.app-nav-btn.active-recipes{background-color:#28a745;border-color:#28a745}.app-nav-btn.active-meal-planning{background-color:#fd7e14;border-color:#fd7e14}.app-nav-btn.active-community{background-color:#3b82f6;border-color:#3b82f6}.app-nav-btn.active-savings{background-color:#8b5cf6;border-color:#8b5cf6}.app-user-controls{display:flex;align-items:center;gap:var(--spacing-sm);color:#2c3e50;text-shadow:none;justify-self:end}[data-theme=dark] .app-user-controls{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.app-feedback-btn{padding:var(--spacing-xs) var(--spacing-sm);background-color:#ffffff80;color:#2c3e50;border:1px solid rgba(255,255,255,.5);border-radius:8px;font-size:var(--font-size-xs);cursor:pointer;min-height:var(--touch-target-min);outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000000f;font-weight:600;display:flex;align-items:center;gap:4px;transition:all .2s ease;text-shadow:none}[data-theme=dark] .app-feedback-btn{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.app-feedback-btn:focus{box-shadow:0 0 0 2px #fff6}.app-admin-btn{padding:var(--spacing-xs) var(--spacing-sm);background-color:#7c3aed;color:#fff;border:none;border-radius:8px;font-size:var(--font-size-xs);cursor:pointer;min-height:var(--touch-target-min);outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000001a;font-weight:600;transition:all .2s ease}.app-admin-btn:hover{background-color:#6d28d9}.app-logout-btn{padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-danger);color:#fff;border:none;border-radius:8px;font-size:var(--font-size-xs);cursor:pointer;min-height:var(--touch-target-min);outline:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0000001a;font-weight:600}.app-logout-btn:focus{box-shadow:0 0 0 2px #dc354540}.app-main{min-height:500px;padding:20px;background:#ffffff14;border-radius:0 0 20px 20px;overflow:hidden;position:relative;z-index:10}.page-transition{width:100%;will-change:opacity;transition:opacity .4s cubic-bezier(.4,0,.2,1)}.page-transition.is-visible{opacity:1}.page-transition.is-hidden{opacity:0}.route-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.route-loading-content{color:#fff;font-size:1.2rem;text-align:center}.route-loading-text{margin-bottom:1rem;font-size:2rem}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}@media(max-width:767px){.app-header{border-radius:0;padding:8px 12px;position:sticky;top:0;grid-template-columns:auto 1fr auto;background-color:#ffffffd9;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:none;border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 2px 12px #0000001a;z-index:1001;min-height:50px}[data-theme=dark] .app-header{background-color:#1f2937e6;border-bottom:1px solid rgba(255,255,255,.1)}.app-header-title{font-size:18px}.app-hamburger-btn{display:flex}.app-nav-desktop{display:none}.app-user-controls{gap:4px}.app-feedback-btn,.app-admin-btn{display:none}.app-logout-btn{padding:6px 10px;font-size:12px;min-height:36px}.app-mobile-menu-backdrop{display:block;position:fixed;inset:0;background-color:#0000;z-index:1000;transition:background-color .3s ease;pointer-events:none}.app-mobile-menu-backdrop.is-visible{background-color:#0000004d;pointer-events:auto}.app-mobile-menu{display:flex;flex-direction:column;position:fixed;top:50px;left:0;width:220px;background-color:var(--color-bg-card);border:1px solid var(--color-border);border-top:none;border-radius:0 0 12px;box-shadow:4px 4px 16px #0003;z-index:1002;transform:translate(-100%);opacity:0;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s ease}.app-mobile-menu.is-open{transform:translate(0);opacity:1;pointer-events:auto}.app-mobile-menu-item{padding:14px 20px;border:none;background:none;text-align:left;font-size:16px;font-weight:500;color:var(--color-text-primary);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .15s ease}.app-mobile-menu-item:last-child{border-bottom:none;border-radius:0 0 12px}.app-mobile-menu-item:active{background-color:var(--color-bg-hover)}.app-mobile-menu-item.active{color:#fff;font-weight:700}.app-mobile-menu-item.active-pantry{background-color:#007bff}.app-mobile-menu-item.active-recipes{background-color:#28a745}.app-mobile-menu-item.active-meal-planning{background-color:#fd7e14}.app-mobile-menu-item.active-community{background-color:#3b82f6}.app-mobile-menu-item.active-savings{background-color:#8b5cf6}.app-mobile-menu-divider{height:1px;background-color:var(--color-border);margin:4px 0}.app-mobile-menu-feedback{color:var(--color-text-secondary);font-size:14px}.app-main{padding:8px 8px 16px;min-height:calc(100vh - 50px);border-radius:0}}@media(max-width:479px){.app-header{padding:6px 8px}.app-header-title{font-size:16px}}
