: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:var(--color-text-inverse);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}@keyframes landingFadeIn{0%{opacity:0}to{opacity:1}}.landing-container{min-height:100vh;display:flex;flex-direction:column;animation:landingFadeIn .5s cubic-bezier(.4,0,.2,1) forwards}.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;color:#1e3a5f;margin-bottom:1.5rem;text-shadow:0 2px 8px rgba(255,255,255,.4);line-height:1.1}[data-theme=dark] .hero-title{color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.3)}.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;background:#ffffff26}[data-theme=dark] .landing-features{background:#00000026}.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{transform:translateY(-4px);box-shadow:0 12px 40px #0000001a;background:#ffffff8c;border-color:#fff9}[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;background:#ffffff14}.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}[data-theme=dark] .landing-contact{background:#0000001a}.landing-final-cta{padding:5rem 2rem;text-align:center;background:#3b82f614}[data-theme=dark] .landing-final-cta{background:#3b82f614}.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;background:#0000000d;color:#5a7d9a;font-size:.9rem}[data-theme=dark] .landing-footer{background:#0000001a;color:#ffffff80}@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}}@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:70vh;padding:3rem 1.5rem}.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}}.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-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:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 8px;width:100%;min-width:0}.pantry-item-content>.pantry-item-main{grid-column:1 / -1}.pantry-item-content>.pantry-item-details{grid-column:1;grid-row:2}.pantry-item-content>.pantry-delete-btn-inline{grid-column:2;grid-row:2;align-self:center}.pantry-item-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.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);border:none;border-radius:4px;padding:8px;cursor:pointer;font-size:16px;transition:background-color .2s;flex-shrink:0;margin-left:auto}.pantry-delete-btn-inline:hover{background-color:var(--color-danger-light)}.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-actions{display:flex;gap:15px;justify-content:flex-end;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-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-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-content{display:flex;flex-direction:row;align-items:center;gap:20px}.pantry-item-content>.pantry-item-main{flex:1;min-width:0}.pantry-item-content>.pantry-item-details{flex-shrink:0;flex-wrap:nowrap;gap:20px}.pantry-item-content>.pantry-delete-btn-inline{flex-shrink:0}.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-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-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-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-edit-toggle{color:var(--color-text-inverse);border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:14px;font-weight:700}.grocery-edit-toggle.active{background-color:var(--color-success)}.grocery-edit-toggle.inactive{background-color:var(--color-text-secondary)}.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;justify-content:space-between;align-items:center;padding:12px;margin-bottom:8px;border-radius:8px;background-color:var(--color-bg-hover);border:1px solid var(--color-border)}.grocery-item-row.editing{background-color:var(--color-bg-hover)}.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;text-decoration:underline dotted transparent}.grocery-item-name.editable:hover{text-decoration-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;text-decoration:underline dotted transparent}.grocery-item-quantity.editable:hover{text-decoration-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:16px}.grocery-remove-btn{background-color:var(--color-danger);color:var(--color-text-inverse);border:none;border-radius:4px;padding:6px 8px;font-size:12px;cursor:pointer}.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-actions{gap:8px}.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;padding:12px;background-color:var(--color-bg-hover);border-radius:10px}.preset-section-title{font-size:13px;color:var(--color-text-secondary);margin-bottom:10px;text-align:center;font-weight:500}.preset-container{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.preset-slot{position:relative;background-color:var(--color-bg-hover);border:2px solid var(--color-border);border-radius:10px;padding:10px 14px;min-width:0;flex:1 1 calc(50% - 5px);max-width:calc(50% - 5px);text-align:center;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #00000014}.preset-slot.has-meals{background-color:var(--color-bg-card);border-color:var(--color-success)}.preset-slot.is-active{background-color:#e3f2fd;border-color:#2196f3;box-shadow:0 2px 8px #2196f34d}[data-theme=dark] .preset-slot.is-active{background-color:#1e3a5f}.preset-slot-name{font-weight:700;font-size:14px;color:var(--color-text-primary);margin-bottom:4px;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:var(--color-primary)}.preset-slot-count{font-size:12px;color:var(--color-text-muted);margin-bottom:8px}.preset-slot.has-meals .preset-slot-count{color:var(--color-success)}.preset-actions{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.preset-btn{border:none;border-radius:4px;padding:6px 10px;font-size:11px;cursor:pointer;font-weight:500;min-height:32px;min-width:44px}.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;min-width:32px}.preset-btn-clear{background-color:var(--color-danger);color:#fff;min-width:32px}.preset-active-indicator{position:absolute;top:-8px;right:-8px;background-color:#2196f3;color:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:0 2px 4px var(--color-shadow-heavy)}@media(max-width:479px){.preset-slot-name{white-space:normal;font-size:13px}.preset-actions{gap:3px}.preset-btn{padding:5px 8px;font-size:10px;min-width:38px}.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:0 0 calc(25% - 8px);max-width:calc(25% - 8px);min-width:130px}}.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-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-arrow{font-size:10px;transition:transform .2s ease}.settings-arrow.open{transform:rotate(180deg)}.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}.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)}@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}}#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{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.app-nav-btn:focus{box-shadow:0 0 0 2px #fff6}.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-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-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}}
