*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5}:root{--accent-color-dark:#4a5de0;--accent-color-rgb:94,114,228;--accent-gradient:linear-gradient(135deg,#5e72e4,#825ee4);--bg-tertiary:#eef2ff;--background-image:url(/static/media/background.e37929b237f97b54f455.webp)}body.dark-mode{--accent-color-dark:#5f7ded;--accent-color-rgb:119,149,248;--accent-gradient:linear-gradient(135deg,#7795f8,#9e7bf8);--bg-tertiary:#2c304a}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit}.app-main{display:flex;flex-direction:column;min-height:calc(100vh - 60px);width:100%}.container{margin:0 auto;max-width:1200px;padding:0 20px}.text-center{text-align:center}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}.recipes-container{margin:0 auto;max-width:1200px;padding:20px;width:100%}.recipes-header{margin-bottom:20px}.recipes-header h1{font-size:28px;font-weight:600;margin-bottom:0}.meal-questionnaire-icon{background-image:linear-gradient(135deg,#5e72e4,#825ee4);background-image:var(--accent-gradient);border-radius:12px;box-shadow:0 4px 12px #5e72e426;box-shadow:0 4px 12px var(--shadow-color);color:#fff;height:40px;padding:8px;transition:all .3s;width:40px}.meal-questionnaire-icon:hover{box-shadow:0 8px 16px #5e72e44d;transform:translateY(-3px)}.meal-questionnaire-icon svg{flex-shrink:0}.search-container{margin-bottom:30px;width:100%}.search-input-wrapper{margin:0 auto 20px;width:100%}.search-icon{color:#4a5568;color:var(--text-secondary);pointer-events:none;right:16px}.search-input{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e2e8f0;box-shadow:0 8px 16px #5e72e426;box-shadow:0 8px 16px var(--shadow-color);color:#22242a;padding:12px 50px 12px 16px;transition:all .3s}.search-input:focus{border-color:#5e72e4;border-color:var(--accent-color);box-shadow:0 8px 20px #5e72e440}.recipes-list{margin-top:30px}.recipe-categories{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;margin:20px 0;max-width:1200px}@media (min-width:768px){.recipe-categories{gap:16px}}@media (min-width:992px){.recipe-categories{gap:20px;grid-template-columns:1fr 1fr}}.category-button{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:16px;box-shadow:0 8px 16px #5e72e426;box-shadow:0 8px 16px var(--shadow-color);overflow:hidden;position:relative}.category-button:hover{border-color:#5e72e4;border-color:var(--accent-color);box-shadow:0 12px 24px #5e72e433;transform:translateY(-5px)}.category-icon{background-color:#f8faff;height:60px;width:60px}@media (min-width:768px){.category-icon{height:80px;width:80px}}.category-content{display:flex;flex-direction:column}.category-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:18px;font-weight:600;line-height:1.2;margin-bottom:4px;overflow:hidden}@media (min-width:768px){.category-title{font-size:20px}}.category-description{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#4a5568;color:var(--text-secondary);display:-webkit-box;font-size:12px;line-height:1.3;margin-bottom:4px;overflow:hidden}@media (min-width:768px){.category-description{-webkit-line-clamp:3;line-clamp:3}}.category-by{color:#4a5568;color:var(--text-secondary);font-size:11px}.recipe-suggestions{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,auto);margin:20px 0;max-width:1200px}@media (min-width:992px){.recipe-suggestions{grid-template-columns:repeat(8,1fr);grid-template-rows:1fr;overflow-x:auto;padding-bottom:8px}.recipe-suggestions::-webkit-scrollbar{height:6px}.recipe-suggestions::-webkit-scrollbar-thumb{background-color:#e2e8f0;background-color:var(--border-color);border-radius:6px}.recipe-suggestions::-webkit-scrollbar-track{background:#0000}}.suggestion-button{align-items:center;background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 12px #5e72e426;box-shadow:0 4px 12px var(--shadow-color);display:flex;margin:0 8px 0 0;min-width:180px;overflow:hidden;padding:16px;position:relative;transition:all .3s ease}.suggestion-button:hover{border-color:#5e72e4;border-color:var(--accent-color);box-shadow:0 8px 20px #5e72e433;transform:translateY(-3px)}.suggestion-emoji{align-items:center;display:flex;flex:1 1;font-size:32px;justify-content:center;padding-top:20px}.suggestion-title-container{background-color:#0000000f;border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);padding:12px 10px;transition:all .2s ease;width:100%}body.dark-mode .suggestion-title-container{background-color:#ffffff0f}.suggestion-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:500;line-height:1.3;max-height:3em;overflow:hidden;text-align:center}.navbar{border-bottom:1px solid var(--border-color);padding:.75rem 1.5rem;position:sticky;top:0;z-index:100}.navbar,.navbar.dark{background-color:var(--bg-primary)}.navbar.dark{border-bottom-color:var(--border-color)}.navbar-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1280px}.navbar-logo{color:var(--primary-color);flex:1 1;font-size:1.5rem;font-weight:700;text-decoration:none;transition:color .2s}.navbar-logo:hover{color:var(--primary-color-dark)}.navbar-center{flex:2 1;gap:1.5rem;justify-content:center}.navbar-center,.navbar-right{align-items:center;display:flex}.navbar-right{flex:1 1;gap:1rem;justify-content:flex-end}.nav-link{border-radius:var(--border-radius);color:var(--text-color);font-weight:500;padding:.5rem .75rem;position:relative;text-decoration:none;transition:background-color .2s,color .2s}.nav-link:hover{background-color:var(--hover-color)}.nav-link.active,.nav-link:hover{color:var(--primary-color)}.nav-link.active:after{animation:glow 8s ease-in-out forwards;background-color:var(--primary-color);bottom:-2px;content:"";height:2px;left:50%;opacity:.5;position:absolute;transform:translateX(-50%);width:0}@keyframes glow{0%{opacity:0;width:0}15%{opacity:.5;width:100%}25%{opacity:0;width:0}35%{opacity:.5;width:100%}45%{opacity:0;width:0}55%{opacity:.5;width:100%}to{opacity:.5;width:100%}}.theme-toggle{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-color);cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:background-color .2s}.theme-toggle:hover{background-color:var(--hover-color)}.nav-user-actions{align-items:center;display:flex;gap:.5rem}.nav-icon-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-color);cursor:pointer;display:flex;justify-content:center;padding:.5rem;text-decoration:none;transition:background-color .2s,color .2s}.nav-icon-btn:hover{background-color:var(--hover-color)}.nav-icon-btn.logout-btn:hover{background-color:#ef44441a;color:var(--error-color)}.nav-icon-btn svg{display:block}.auth-links{display:flex;gap:.5rem}@media (max-width:768px){.navbar-container{flex-wrap:wrap}.navbar-logo{flex:0 0 100%;margin-bottom:.5rem;text-align:center}.navbar-center{flex:1 1 100%;gap:.75rem;justify-content:center;margin-top:.5rem;order:3}.navbar-right{flex:0 0 100%;justify-content:center;order:2}.nav-link{font-size:.9rem;padding:.4rem .6rem}}.page-transition-container{display:flex;flex:1 1;flex-direction:column;height:100%;min-height:calc(100vh - 120px);overflow:hidden;position:relative;width:100%}.page-transition-wrapper{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;opacity:1;transform:translateY(0);width:100%}.fade-enter,.slide-left-enter,.slide-right-enter{opacity:0}.fade-enter-active,.slide-left-enter-active,.slide-right-enter-active{opacity:1;transition:opacity .2s ease-out}.fade-exit,.slide-left-exit,.slide-right-exit{opacity:1}.fade-exit-active,.slide-left-exit-active,.slide-right-exit-active{opacity:0;transition:opacity .2s ease-in}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-navigation{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:center;padding:12px 0;position:sticky;top:0;z-index:10}.app-navigation a,.app-navigation button{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:15px;font-weight:500;justify-content:center;margin:0 4px;padding:8px 16px;text-decoration:none;transition:all .2s ease}.app-navigation a:hover,.app-navigation button:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.app-navigation a.active,.app-navigation button.active{background-color:var(--accent-color);color:#fff}.app-content{display:flex;flex:1 1;flex-direction:column;padding:20px;width:100%}.page-content{background-color:var(--bg-secondary);border-radius:12px;box-shadow:0 2px 8px var(--shadow-color);margin:0 auto;max-width:1200px;padding:24px}.page-content h1{color:var(--text-primary);font-size:28px;font-weight:600;margin-bottom:16px;margin-top:0}.page-content p{color:var(--text-secondary);margin-bottom:24px}.page-content button{background-color:var(--accent-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:10px 20px;transition:all .2s}.page-content button:hover{background-color:var(--accent-color-dark);transform:translateY(-1px)}.app-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:16px;text-align:center}.app-header h1{color:var(--accent-color);font-size:24px;font-weight:600;margin:0}:root{--bg-primary:#f8faff;--text-primary:#22242a;--text-secondary:#4a5568;--accent-color:#5e72e4;--primary-color:#2d7ff9;--secondary-color:#7e57c2;--info-color:#00bcd4;--warning-color:#ff9500;--danger-color:#f5365c;--border-color:#e2e8f0;--input-bg:#fff;--shadow-color:#5e72e426;--success-color:#2dce89;--error-color:#f5365c;--hover-bg:#f0f5ff;--header-bg:#fff;--day-bg:#fff;--day-adjacent-bg:#f5f8ff;--today-bg:#e8f4ff;--meal-slot-bg:#fafcff;--meal-slot-empty-bg:#f5f8ff;--meal-slot-breakfast-bg:#5e72e426;--meal-slot-lunch-bg:#2dce8926;--meal-slot-dinner-bg:#fb634026;--meal-slot-snack-bg:#ff950026}body.dark-mode{--bg-primary:#1a1c2c;--bg-secondary:#262a3e;--text-primary:#f0f5ff;--text-secondary:#a2b9e0;--accent-color:#7795f8;--primary-color:#4f9ef8;--secondary-color:#9c7cf2;--info-color:#33d9ed;--warning-color:#ffb03b;--danger-color:#ff517b;--border-color:#424c6e;--input-bg:#303552;--shadow-color:#7795f84d;--success-color:#43da9c;--error-color:#ff517b;--hover-bg:#303552;--header-bg:#262a3e;--day-bg:#262a3e;--day-adjacent-bg:#1e2132;--today-bg:#303850;--meal-slot-bg:#2c304a;--meal-slot-empty-bg:#252840;--meal-slot-breakfast-bg:#7795f840;--meal-slot-lunch-bg:#43da9c40;--meal-slot-dinner-bg:#ff517b40;--meal-slot-snack-bg:#ffb03b40}body{color:#22242a;color:var(--text-primary)}.auth-container,.recipes-container,.settings-container,body{background-color:#f8faff;background-color:var(--bg-primary)}.auth-form-container,.settings-card{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 20px #5e72e426;box-shadow:0 8px 20px var(--shadow-color)}input,select,textarea{background-color:#fff;background-color:var(--input-bg);border-color:#e2e8f0;border-color:var(--border-color);border-radius:8px}h1,h2,h3,h4,h5,h6,input,select,textarea{color:#22242a;color:var(--text-primary)}a{color:#5e72e4;color:var(--accent-color);transition:color .2s ease}a:hover{color:#2d7ff9;color:var(--primary-color)}.auth-error{color:#f5365c}.auth-success{color:#2dce89}.btn,button{border-radius:8px;transition:all .3s ease}.btn:hover,button:hover{box-shadow:0 4px 12px #5e72e426;box-shadow:0 4px 12px var(--shadow-color);transform:translateY(-2px)}.auth-container{align-items:center;background-color:var(--bg-primary);background-image:radial-gradient(circle at 10% 20%,#5e72e40d 0,#825ee40f 90%);display:flex;justify-content:center;min-height:calc(100vh - 100px);padding:20px}.auth-form-container{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 16px 30px var(--shadow-color);max-width:450px;overflow:hidden;padding:40px;position:relative;width:100%}.auth-form-container:before{background-image:var(--accent-gradient);content:"";height:6px;left:0;position:absolute;top:0;width:100%}.auth-form-container h2{color:var(--text-primary);font-size:28px;font-weight:700;letter-spacing:-.5px;margin-bottom:30px;text-align:center}.auth-form{display:flex;flex-direction:column;gap:24px}.form-group{gap:10px}.form-group label{font-size:15px;font-weight:600}.form-group input{background-color:var(--input-bg);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 10px #00000008;color:var(--text-primary);font-size:16px;padding:14px 18px;transition:all .3s}.form-group input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px #5e72e433;transform:translateY(-1px)}.password-requirements{color:var(--text-secondary);font-size:13px;line-height:1.5;margin-top:8px}.auth-button{background-image:var(--accent-gradient);border:none;border-radius:12px;box-shadow:0 8px 16px #5e72e440;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:16px;padding:16px;transition:all .3s}.auth-button:hover{box-shadow:0 12px 20px #5e72e459;transform:translateY(-3px)}.auth-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.7;transform:none}.auth-error{background-color:#f5365c1a;border-left:4px solid var(--error-color);color:var(--error-color)}.auth-error,.auth-success{animation:fadeIn .3s ease;border-radius:12px;font-size:14px;margin-bottom:20px;padding:14px}.auth-success{background-color:#2dce891a;border-left:4px solid var(--success-color);color:var(--success-color)}.auth-links{color:var(--text-secondary);font-size:15px;margin-top:30px;text-align:center}.auth-links a{color:var(--accent-color);font-weight:600;padding:2px;text-decoration:none;transition:all .3s}.auth-links a:hover{-webkit-text-fill-color:#0000;background:var(--accent-gradient);-webkit-background-clip:text;display:inline-block;transform:translateY(-1px)}.status-error,.status-loading,.status-success{animation:fadeIn .3s ease;border-radius:12px;margin-bottom:24px;padding:18px;text-align:center}.status-loading{background-color:#5e72e41a;border-left:4px solid var(--accent-color);color:var(--accent-color)}.status-success{background-color:#2dce891a;border-left:4px solid var(--success-color);color:var(--success-color)}.status-error{background-color:#f5365c1a;border-left:4px solid var(--error-color);color:var(--error-color)}@media (max-width:576px){.auth-form-container{padding:30px 20px}.auth-button{padding:14px}}.unit-settings{background:var(--surface-color);border-radius:8px;margin-bottom:1rem;padding:1rem}.unit-settings h3{color:var(--text-primary);margin:0 0 1rem}.unit-toggle{align-items:center;display:flex;gap:1rem}.unit-label{color:var(--text-secondary);font-size:.9rem}.switch{height:34px;width:60px}.slider{background-color:var(--surface-variant)}.slider:before{height:26px;width:26px}input:checked+.slider{background-color:var(--primary-color)}input:focus+.slider{box-shadow:0 0 1px var(--primary-color)}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.settings-container{align-items:flex-start;display:flex;justify-content:center;min-height:calc(100vh - 100px);padding:30px 20px}.settings-card{border-radius:10px;max-width:600px;padding:30px;width:100%}.settings-title{font-size:24px;margin-bottom:24px;text-align:center}.settings-section{margin-bottom:30px}.settings-section-title{border-bottom:1px solid var(--border-color);font-size:18px;margin-bottom:15px;padding-bottom:8px}.settings-option{align-items:center;display:flex;justify-content:space-between;padding:12px 0}.settings-option-label{font-weight:500}.settings-option-description{color:var(--text-secondary);font-size:14px;margin-top:4px}.switch{display:inline-block;height:26px;position:relative;width:50px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;border-radius:34px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;border-radius:50%;bottom:4px;content:"";height:18px;left:4px;width:18px}input:checked+.slider{background-color:var(--accent-color)}input:focus+.slider{box-shadow:0 0 1px var(--accent-color)}input:checked+.slider:before{transform:translateX(24px)}@media (max-width:576px){.settings-card{padding:20px}}.settings-reset-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:14px;margin-top:16px;padding:8px 16px;transition:all .2s}.settings-reset-btn:hover{background-color:var(--accent-color);color:#fff}:root{--text-color:#333;--text-color-secondary:#666;--border-color:#e0e0e0;--card-background:#fff;--hover-background:#f5f5f5;--input-background:#fff;--tag-background:#f0f0f0;--color-primary:#4a90e2;--color-primary-dark:#3a80d2;--color-error:#e74c3c;--box-shadow:0 2px 8px #0000001a;--page-background:#f8f9fa;--button-hover:#f0f0f0;--button-active:#e5e5e5;--difficulty-easy-bg:#2ecc7126;--difficulty-easy-color:#27ae60;--difficulty-medium-bg:#f1c40f26;--difficulty-medium-color:#f39c12;--difficulty-hard-bg:#e74c3c26;--difficulty-hard-color:#e74c3c;--transition-duration:300ms;--transition-easing:cubic-bezier(0.4,0.0,0.2,1);--bg-secondary:#fff;--accent-color:#4a90e2;--accent-gradient:linear-gradient(45deg,#4a90e2,#6e45e2);--bg-tertiary:#f0f0f0;--text-primary:#333;--text-secondary:#666;--bg-primary:#fff}[data-theme=dark]{--text-color:#e0e0e0;--text-color-secondary:#aaa;--border-color:#444;--card-background:#2a2a2a;--hover-background:#333;--input-background:#333;--tag-background:#3a3a3a;--color-primary:#5a9ae2;--color-primary-dark:#4a8ad2;--color-error:#ff6b6b;--page-background:#1a1a1a;--button-hover:#333;--button-active:#444;--difficulty-easy-bg:#2ecc7133;--difficulty-easy-color:#2ecc71;--difficulty-medium-bg:#f1c40f33;--difficulty-medium-color:#f1c40f;--difficulty-hard-bg:#e74c3c33;--difficulty-hard-color:#e74c3c;--bg-secondary:#333;--shadow-color:#ffffff1a;--accent-color:#5a9ae2;--bg-tertiary:#444;--text-primary:#e0e0e0;--text-secondary:#aaa;--bg-primary:#2a2a2a}body{background-color:#f8f9fa;background-color:var(--page-background);color:#333;color:var(--text-color);margin:0;transition:background-color .3s ease,color .3s ease}.recipes-page .page-transition-container{min-height:0;min-height:auto;position:relative}.recipes-page .page-transition-wrapper{position:relative;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-duration) var(--transition-easing);width:100%}.recipes-page .fade-enter{opacity:0}.recipes-page .fade-enter-active{opacity:1;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-duration) var(--transition-easing)}.recipes-page .fade-exit{opacity:1}.recipes-page .fade-exit-active{opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-duration) var(--transition-easing)}.recipes-page{display:flex;flex-direction:column;margin:0 auto;max-width:1200px;padding:1.5rem}.recipes-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.recipes-header .search-input-wrapper{flex:1 1;margin-top:15px;max-width:600px;position:relative}.recipes-header .search-input-label{color:#333;color:var(--text-color);font-size:1.2rem;font-weight:500;left:0;position:absolute;top:-25px}.recipes-header .search-input{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:8px;border-radius:var(--border-radius);color:var(--color-text);font-size:1rem;padding:.75rem 3rem .75rem 1rem;width:100%}.recipes-header .search-icon{color:var(--color-text-light);pointer-events:none;position:absolute;right:1rem;top:50%;transform:translateY(-50%)}.recipes-header h1{color:#333;color:var(--text-color);font-size:2rem;margin:0}.meal-questionnaire-icon{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--color-text);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:.5rem;transition:background-color .2s ease}.meal-questionnaire-icon:hover{background-color:#f5f5f5;background-color:var(--hover-background)}.search-filter-container{background-color:#fff;background-color:var(--bg-secondary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-sm);color:#333;color:var(--text-primary);display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;width:100%}.search-controls-wrapper{align-items:center;display:flex;gap:1rem;width:100%}.search-input-wrapper{flex:1 1;max-width:600px}.search-input{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius);color:var(--text-primary);font-size:1rem;padding:12px 40px 12px 16px;width:100%}.search-input:focus{border-color:#4a90e2;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--focus-ring)}.search-input::placeholder{color:#666;color:var(--text-secondary);opacity:.7}.search-button{border-radius:8px;border-radius:var(--border-radius);color:var(--text-on-primary);font-size:16px;font-weight:500;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.search-button:hover{transform:translateY(-1px)}.search-button:focus{box-shadow:0 0 0 2px var(--focus-ring);outline:none}.recipe-grid{grid-gap:1.5rem;gap:1.5rem;width:100%}.recipe-card{background-color:#f5f7fa!important;border:1px solid #e4e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000d;color:#2c3e50;height:100%;transition:all .3s ease}.recipe-card:hover{background-color:#eef2f7!important;border-color:#d1d9e6;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.recipe-image-container{aspect-ratio:16/9;border-top-left-radius:16px;border-top-right-radius:16px;min-height:200px;padding-top:56.25%}.dark-mode .recipe-image-container{background-color:#262a3e}.recipe-image{background-color:#262a3e80;height:100%;left:0;object-fit:cover;opacity:1!important;position:absolute;top:0;transition:transform .5s ease;visibility:visible!important;width:100%;z-index:1}.recipe-image-container .recipe-image{z-index:2!important}.recipe-card:hover .recipe-image{transform:scale(1.05)}.recipe-content{display:flex;flex-direction:column;flex-grow:1;padding:20px}.recipe-title{color:#2c3e50!important;line-height:1.4;margin-bottom:10px}.recipe-metadata{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:15px}.recipe-rating{gap:6px}.recipe-rating-stars{color:#ffb03b;display:flex}.recipe-rating-value{font-size:14px;font-weight:600}.recipe-cuisine,.recipe-difficulty,.recipe-time{align-items:center;color:#4a5568!important;display:flex;font-size:13px;gap:5px}.recipe-description{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;color:#4a5568!important;display:-webkit-box;font-size:14px;line-height:1.5;margin-bottom:1rem;max-height:4.5em;overflow:hidden}.recipe-difficulty-tag{border-radius:4px;font-size:12px;font-weight:500;padding:3px 8px}.difficulty-easy{background-color:#2ecc7126;background-color:var(--difficulty-easy-bg,#2ecc7126);color:#27ae60;color:var(--difficulty-easy-color,#27ae60)}.difficulty-medium{background-color:#f1c40f26;background-color:var(--difficulty-medium-bg,#f1c40f26);color:#f39c12;color:var(--difficulty-medium-color,#f39c12)}.difficulty-hard{background-color:#e74c3c26;background-color:var(--difficulty-hard-bg,#e74c3c26);color:#e74c3c;color:var(--difficulty-hard-color,#e74c3c)}.recipe-footer{margin-top:auto}.recipe-card-bottom{align-items:center;display:flex;justify-content:space-between;margin-top:12px}.recipe-author{color:#4a5568!important;font-size:12px;font-style:italic}.recipe-card-link{display:flex;flex-direction:column;height:100%}.recipe-tags{gap:8px;margin-top:auto;padding-top:15px}.recipe-tag{align-items:center;background-color:#f0f0f0;background-color:var(--bg-tertiary);border-radius:20px;color:#4a90e2;color:var(--accent-color);display:inline-flex;font-size:12px;font-weight:500;padding:4px 10px;transition:all .3s ease}.recipe-tag:hover{background-color:#4a90e2;background-color:var(--accent-color);color:#fff}.recipe-bookmark{align-items:center;background-color:#ffffffe6;border-radius:50%;box-shadow:0 4px 10px #00000026;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:15px;top:15px;transition:all .3s ease;width:36px;z-index:2}.recipe-bookmark:hover{transform:scale(1.15)}.recipe-bookmark.active{background-color:#4a90e2;background-color:var(--accent-color);color:#fff}.recipe-filter-btn{background:linear-gradient(45deg,#4a90e2,#6e45e2);background:var(--accent-gradient);border:none;border-radius:8px;box-shadow:0 4px 12px #0000001a;box-shadow:0 4px 12px var(--shadow-color);color:#fff;font-weight:500;padding:10px 20px;transition:all .3s ease}.recipe-filter-btn:hover{box-shadow:0 8px 16px #5e72e44d;transform:translateY(-2px)}.filter-chip{align-items:center;background-color:#f0f0f0;background-color:var(--bg-tertiary);border:1px solid #0000;border-radius:20px;color:#333;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;margin-bottom:10px;margin-right:10px;padding:6px 14px;transition:all .3s ease}.filter-chip:hover{background-color:#fff;background-color:var(--bg-primary);border-color:#4a90e2;border-color:var(--accent-color)}.filter-chip.active{background-color:#4a90e2;background-color:var(--accent-color);color:#fff}.filter-chip .close-icon{font-size:14px;margin-left:6px}.filter-controls{border-bottom:1px solid #e0e0e0;flex-wrap:wrap;gap:1rem}.filter-group{min-width:200px}.filter-label{color:#666;color:var(--text-secondary)}.filter-select{background-color:#fff;border:1px solid #e0e0e0;border-radius:var(--border-radius);color:#333;color:var(--text-primary)}.filter-select:focus{border-color:#4a90e2;box-shadow:0 0 0 2px var(--focus-ring)}.filter-checkbox-group{background-color:#fff;border:1px solid #e0e0e0;width:100%}.filter-checkbox-label{color:#333;padding:.25rem 0}.active-filters{margin-bottom:1rem}.active-filter{background-color:#f0f0f0;background-color:var(--tag-background);border-radius:4px;display:flex;font-size:.75rem;gap:.25rem;padding:.25rem .5rem}.active-filter,.remove-filter{color:#333;color:var(--text-color)}.remove-filter{align-items:center;background-color:#0000001a;border-radius:50%;display:inline-flex;font-size:10px;height:14px;justify-content:center;margin-left:.25rem;transition:background-color .2s ease;width:14px}.remove-filter:hover{background-color:#0003}.reset-filters{background:#0000;border-radius:4px;color:#4a90e2;color:var(--color-primary);font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s ease}.reset-filters:hover{background-color:#4a90e21a}.empty-state{margin:0 auto;max-width:500px;padding:3rem 1rem}.empty-state-icon{color:#666;color:var(--text-color-secondary);font-size:3rem;margin-bottom:1rem}.empty-state-title{color:#333;color:var(--text-color);font-size:1.5rem;margin-bottom:.5rem}.empty-state-message{color:#666;color:var(--text-color-secondary);margin-bottom:1rem}.empty-state-suggestions{margin:1.5rem 0;padding-left:1.5rem;text-align:left}.empty-state-suggestion{color:#333;color:var(--text-color);margin-bottom:.5rem}.loading-spinner{align-items:center;display:flex;height:200px;justify-content:center}.skeleton-card{background-color:#fff;background-color:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border-color);box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column}.skeleton-image{animation:pulse 1.5s ease-in-out infinite;background-color:#e0e0e0;background-color:var(--border-color);height:180px;width:100%}.skeleton-content{padding:1rem}.skeleton-title{animation:pulse 1.5s ease-in-out infinite;background-color:#e0e0e0;background-color:var(--border-color);height:24px;margin-bottom:.75rem;width:70%}.skeleton-metadata{display:flex;gap:.5rem;margin-bottom:1rem}.skeleton-metadata-item{width:60px}.skeleton-description,.skeleton-metadata-item{animation:pulse 1.5s ease-in-out infinite;background-color:#e0e0e0;background-color:var(--border-color);border-radius:4px;height:16px}.skeleton-description{margin-bottom:.5rem;width:100%}.skeleton-tags{display:flex;gap:.5rem;margin-top:1rem}.skeleton-tag{animation:pulse 1.5s ease-in-out infinite;background-color:#e0e0e0;background-color:var(--border-color);border-radius:4px;height:24px;width:60px}.recipes-simple-view{display:flex;flex-direction:column;gap:2rem}.simple-search-container{align-items:center;display:flex;gap:12px;margin-bottom:24px}.search-button{background-color:#4a90e2;background-color:var(--color-primary);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:6px 12px;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:background-color .2s}.search-button:hover{background-color:#3a80d2;background-color:var(--color-primary-dark)}.category-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(2,auto);justify-content:center;margin:1rem auto;max-width:750px}.category-button{align-items:center;background-color:#f5f7fa!important;border:1px solid #e4e7eb;border-radius:8px;box-shadow:0 2px 4px #0000001a!important;cursor:pointer;display:flex;flex-direction:column;height:100%;justify-content:center;min-height:75px;padding:.75rem;text-decoration:none;transition:all .3s ease;width:100%}.category-button:hover{background-color:#eef2f7!important;border-color:#d1d9e6;box-shadow:0 4px 8px #00000026!important;transform:translateY(-2px)}.category-button:active{background-color:#e4e9f2!important;box-shadow:0 2px 4px #0000001a!important;transform:translateY(0)}.category-name{color:#2c3e50!important;font-size:1rem;font-weight:600;margin-top:.5rem;text-align:center}.featured-recipes{margin-top:2rem;text-align:center}.featured-recipes h2{color:#333;color:var(--text-color);font-size:1.5rem;font-weight:600;margin-bottom:1rem}.back-button{background:#0000;border:none;color:#4a90e2;color:var(--color-primary);font-size:1rem;font-weight:500;margin-bottom:1rem;padding:.5rem 0}.back-button:hover{text-decoration:underline}@media (max-width:992px){.category-buttons{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto);max-width:600px}.category-button{height:130px;padding:.75rem .5rem}.category-icon{font-size:2rem;height:80px;width:80px}.category-name{font-size:.875rem;margin-top:.375rem}}@media (max-width:768px){.recipes-page{padding:1rem}.recipes-header h1{font-size:1.75rem}.recipe-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.category-buttons{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,auto);max-width:450px}.category-button{height:115px;padding:.75rem .5rem}.category-icon{font-size:1.75rem;height:70px;width:70px}.category-name{font-size:.85rem}}@media (max-width:480px){.category-buttons{gap:.5625rem;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(5,auto);max-width:270px}.recipes-header h1{font-size:1.5rem}.recipe-grid{grid-template-columns:1fr}.category-button{height:105px;padding:.75rem .375rem}.category-icon{font-size:1.5rem;height:60px;width:60px}.category-name{font-size:.8rem}}.error-message{background-color:#fff;background-color:var(--card-background);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 2px 8px #0000001a;box-shadow:var(--box-shadow);margin:2rem auto;max-width:500px;padding:2rem;text-align:center}.error-message p{color:#e74c3c;color:var(--color-error);font-size:1.1rem;margin-bottom:1rem}.error-message button{background-color:#4a90e2;background-color:var(--color-primary);border:none;border-radius:8px;border-radius:var(--border-radius);color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s}.error-message button:hover{background-color:#3a80d2;background-color:var(--color-primary-dark)}.recipe-card-link{color:inherit;display:block;text-decoration:none;transition:transform .2s ease-in-out}.recipe-card-link:hover{box-shadow:0 10px 20px #0000001a;transform:translateY(-5px)}.recipe-card-link:active{transform:translateY(-2px)}.drag-handle{border-radius:50%;box-shadow:0 2px 8px #00000026;cursor:move;height:32px;opacity:.8;right:10px;top:10px;transition:all .2s ease;width:32px}.drag-handle:hover{box-shadow:0 4px 12px #0003;opacity:1;transform:scale(1.1)}body.dark-mode .drag-handle{background-color:#282828e6;box-shadow:0 2px 8px #0000004d;color:#f0f0f0}.dragging-active{box-shadow:0 8px 24px #5e72e44d;opacity:.7;transform:scale(.95)}[draggable]{-webkit-user-drag:element;-webkit-user-select:none;user-select:none}@media (min-width:768px){.search-filter-container{flex-direction:column}.search-controls-wrapper{margin-bottom:1rem;width:100%}.filter-controls{display:flex;flex-direction:row;flex-wrap:nowrap;gap:1rem;width:100%}.filter-group{flex:1 1}.category-icon{font-size:3rem;height:120px;width:120px}}@media (max-width:767px){.search-filter-container{flex-direction:column}.filter-controls,.search-controls-wrapper{width:100%}.filter-controls{flex-wrap:wrap}.filter-group{flex:1 1 45%;min-width:120px}}@media (max-width:576px){.filter-controls{flex-direction:column;gap:1rem}.filter-group{flex:none;width:100%}}.dark-mode .category-button{background-color:#262a3e!important;border-color:#424c6e;box-shadow:0 2px 4px #ffffff1a!important}.dark-mode .category-button:hover{background-color:#303448!important;border-color:#4c5678;box-shadow:0 4px 8px #ffffff26!important}.dark-mode .category-button:active{background-color:#1c2034!important;box-shadow:0 2px 4px #ffffff1a!important}.dark-mode .category-name{color:#fff!important}.dark-mode .recipe-card{background-color:#262a3e!important;border-color:#424c6e;color:#fff}.dark-mode .recipe-card:hover{background-color:#303448!important;border-color:#4c5678}.dark-mode .recipe-title{color:#fff!important}.dark-mode .recipe-cuisine,.dark-mode .recipe-difficulty,.dark-mode .recipe-time{color:#ffffffb3!important}.dark-mode .recipe-description{color:#fffc!important}.dark-mode .recipe-author{color:#ffffffb3!important}.dark-mode .search-input{background:#262a3e!important;border-color:#424c6e;color:#fff!important}.dark-mode .search-input:focus{border-color:#4c5678;box-shadow:0 0 0 2px #4c567833}.dark-mode .search-input::placeholder{color:#ffffff80!important}.ingredients-instructions-container{background-color:#262a3e!important;border:1px solid #424c6e;border-radius:8px;color:#fff;margin-top:1.5rem;padding:1.5rem}:root:not([data-theme=dark]) .ingredients-instructions-container{background-color:#f5f7fa!important;border-color:#e4e7eb;color:#2c3e50}.recipe-meta{background-color:#262a3e!important;border:1px solid #424c6e;color:#fff;margin-bottom:1.5rem;padding:1.5rem}:root:not([data-theme=dark]) .recipe-meta{background-color:#f5f7fa!important;border-color:#e4e7eb;color:#2c3e50}.recipe-fact{background-color:#262a3e!important;border:1px solid #424c6e;color:#fff;margin-bottom:1.5rem;padding:1.5rem}:root:not([data-theme=dark]) .recipe-fact{background-color:#f5f7fa!important;border-color:#e4e7eb;color:#2c3e50}.macronutrient-chart,.nutrition-facts-label{background-color:#262a3e!important;border:1px solid #424c6e;border-radius:8px;color:#fff;margin-bottom:1.5rem;padding:1.5rem}:root:not([data-theme=dark]) .macronutrient-chart,:root:not([data-theme=dark]) .nutrition-facts-label{background-color:#f5f7fa!important;border-color:#e4e7eb;color:#2c3e50}.category-icon{align-items:center;background-color:#fff;background-color:var(--bg-primary);border-radius:50%;display:flex;flex-shrink:0;font-size:2.25rem;height:90px;justify-content:center;object-fit:cover;width:90px}@media (min-width:768px){.category-icon{font-size:3rem;height:120px;width:120px}}@media (max-width:992px){.category-icon{font-size:2rem;height:80px;width:80px}}@media (max-width:768px){.category-button{height:115px;padding:.75rem .5rem}.category-icon{font-size:1.75rem;height:70px;width:70px}.category-name{font-size:.85rem;margin-top:.375rem}}@media (max-width:480px){.category-button{height:105px;padding:.75rem .375rem}.category-icon{font-size:1.5rem;height:60px;width:60px}.category-name{font-size:.8rem;margin-top:.25rem}}.search-spinner{align-items:center;display:flex;justify-content:center;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#4a90e2;border-top:2px solid var(--accent-color);height:16px;width:16px}.search-input.searching{padding-right:40px}.search-input-wrapper{position:relative}.meal-questionnaire-panel{background-color:var(--bg-primary);border-left:1px solid var(--border-color);box-shadow:-4px 0 15px #0000001a;display:flex;flex-direction:column;height:100vh;overflow:hidden;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .4s cubic-bezier(.165,.84,.44,1);width:400px;will-change:transform;z-index:1001}.meal-questionnaire-backdrop{background-color:#00000080;height:100%;left:0;opacity:0;position:fixed;top:0;transition:opacity .4s cubic-bezier(.165,.84,.44,1),visibility 0s linear .4s;visibility:hidden;width:100%;will-change:opacity;z-index:1000}.meal-questionnaire-backdrop.active{opacity:1;transition:opacity .4s cubic-bezier(.165,.84,.44,1),visibility 0s linear;visibility:visible}.meal-questionnaire-panel.open{transform:translateX(0)}.questionnaire-header{flex-shrink:0;opacity:0;padding:16px 20px;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease;transition-delay:.1s}.meal-questionnaire-panel.open .questionnaire-header{opacity:1;transform:translateY(0)}.questionnaire-header h2{color:var(--text-primary);font-size:22px;font-weight:600}.questionnaire-close-btn{background:none;border-radius:50%;color:var(--text-secondary);font-size:24px;height:32px;transition:background-color .2s;width:32px}.questionnaire-close-btn:hover{background-color:var(--bg-secondary)}.questionnaire-content{display:flex;flex:1 1;flex-direction:column;min-height:0;opacity:0;overflow:hidden;padding:20px;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease;transition-delay:.2s}.meal-questionnaire-panel.open .questionnaire-content{opacity:1;transform:translateY(0)}.questionnaire-progress{background-color:var(--bg-secondary);border-radius:2px;height:4px;margin-bottom:24px}.questionnaire-progress-bar{background-color:var(--accent-color)}.questionnaire-question{display:flex;flex-direction:column;min-height:0;overflow:hidden}.questionnaire-question h3{color:var(--text-primary);font-size:18px;margin-bottom:12px}.questionnaire-options{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;padding-bottom:16px}.questionnaire-option{animation:fadeInOption .5s forwards;background-color:var(--bg-secondary);border:1px solid var(--border-color);gap:12px;opacity:0;padding:10px 14px;transform:translateX(10px)}.questionnaire-option:first-child{animation-delay:.1s}.questionnaire-option:nth-child(2){animation-delay:.15s}.questionnaire-option:nth-child(3){animation-delay:.2s}.questionnaire-option:nth-child(4){animation-delay:.25s}.questionnaire-option:nth-child(5){animation-delay:.3s}.questionnaire-option:nth-child(6){animation-delay:.35s}.questionnaire-option:nth-child(7){animation-delay:.4s}.questionnaire-option:nth-child(8){animation-delay:.45s}@keyframes fadeInOption{0%{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}.questionnaire-option:hover{background-color:rgba(var(--accent-color-rgb),.1);border-color:var(--accent-color)}.questionnaire-option.selected{background-color:var(--accent-color);border-color:var(--accent-color);color:#fff}.option-emoji{align-items:center;display:flex;font-size:20px;justify-content:center;width:28px}.option-label{font-size:16px;font-weight:500}.questionnaire-custom-input{gap:10px;margin-top:16px}.questionnaire-custom-input input{background-color:var(--bg-secondary);color:var(--text-primary);font-size:14px;padding:10px 12px}.questionnaire-add-btn{background-color:var(--accent-color);font-size:14px;padding:0 16px;transition:background-color .2s}.questionnaire-add-btn:hover{background-color:var(--accent-color-dark)}.questionnaire-actions{background-color:var(--bg-primary);border-top:1px solid var(--border-color);flex-shrink:0;padding:16px 20px;z-index:1}.questionnaire-btn{font-size:15px;padding:8px 16px;transition:all .2s}.questionnaire-back-btn{background-color:var(--bg-secondary);color:var(--text-primary)}.questionnaire-back-btn:hover{background-color:var(--bg-tertiary)}.questionnaire-next-btn{background-color:var(--accent-color)}.questionnaire-next-btn:hover{background-color:var(--accent-color-dark)}.questionnaire-next-btn:disabled{background-color:var(--bg-tertiary);color:var(--text-secondary)}.questionnaire-recommendations{display:flex;flex-direction:column;height:100%}.questionnaire-recommendations h3{color:var(--text-primary);font-size:20px;margin-bottom:10px}.questionnaire-recommendations p{color:var(--text-secondary);margin-bottom:20px}.recommendation-list{flex:1 1;gap:16px;margin-bottom:20px;overflow-y:auto}.recommendation-card{animation:fadeInRecommendation .5s forwards;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;max-height:120px;opacity:0;transform:translateY(10px)}.recommendation-card:first-child{animation-delay:.1s}.recommendation-card:nth-child(2){animation-delay:.2s}.recommendation-card:nth-child(3){animation-delay:.3s}@keyframes fadeInRecommendation{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.recommendation-image-placeholder{background-color:var(--accent-color);color:#fff;flex-shrink:0;font-weight:500;padding:10px;width:120px}.recommendation-details{display:flex;flex-direction:column;justify-content:center;padding:16px}.recommendation-details h4{color:var(--text-primary);font-size:16px;margin:0 0 8px}.recommendation-details p{color:var(--text-secondary);font-size:14px}.questionnaire-restart-btn{background-color:var(--accent-color);margin-top:auto}.questionnaire-restart-btn:hover{background-color:var(--accent-color-dark)}@media (max-width:576px){.meal-questionnaire-panel{transform:translateX(100%);width:100%}}.questionnaire-panel{background-color:var(--background-color);box-shadow:-5px 0 15px #0000001a;display:flex;flex-direction:column;height:100vh;max-width:480px;overflow-y:auto;padding:1.5rem;position:fixed;right:-100%;top:0;transition:right .4s ease-in-out;width:90%;z-index:1000}.questionnaire-panel.open{right:0}.questionnaire-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.questionnaire-header h2{color:var(--text-color);font-size:1.5rem;margin:0}.questionnaire-close-btn{align-items:center;background:#0000;border:none;color:var(--text-color);cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;padding:.5rem}.questionnaire-close-btn:hover{color:var(--primary-color)}.questionnaire-progress{background-color:var(--border-color);border-radius:3px;height:6px;margin-bottom:2rem;overflow:hidden}.questionnaire-progress-bar{background-color:var(--primary-color);border-radius:3px;height:100%;transition:width .3s ease}.questionnaire-question{flex:1 1;margin-bottom:2rem}.questionnaire-question h3{color:var(--text-color);font-size:1.25rem;margin-bottom:1.5rem;margin-top:0}.questionnaire-options{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.questionnaire-option{align-items:center;background-color:var(--card-background);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:1rem .5rem;text-align:center;transition:all .2s ease}.questionnaire-option:hover{border-color:var(--primary-color-light);transform:translateY(-2px)}.questionnaire-option.selected{background-color:var(--primary-color-light);border-color:var(--primary-color)}.option-emoji{font-size:1.5rem;margin-bottom:.5rem}.option-label{color:var(--text-color);font-size:.9rem}.questionnaire-custom-input{display:flex;gap:.5rem;margin-top:1.5rem}.questionnaire-custom-input input{background-color:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);flex:1 1;padding:.75rem 1rem}.questionnaire-custom-input input:focus{border-color:var(--primary-color);outline:none}.questionnaire-add-btn{background-color:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.25rem}.questionnaire-add-btn:hover{background-color:var(--primary-color-dark)}.questionnaire-actions{display:flex;justify-content:space-between;margin-top:1rem}.questionnaire-btn{border-radius:8px;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.questionnaire-back-btn{background-color:initial;border:1px solid var(--border-color);color:var(--text-color)}.questionnaire-back-btn:hover{background-color:var(--hover-background)}.questionnaire-next-btn{background-color:var(--primary-color);border:none;color:#fff}.questionnaire-next-btn:hover{background-color:var(--primary-color-dark)}.questionnaire-next-btn:disabled{background-color:var(--border-color);cursor:not-allowed}.questionnaire-recommendations{padding:1rem 0}.questionnaire-recommendations h3{color:var(--text-color);margin-bottom:1rem;margin-top:0}.recommendation-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.recommendation-card{background-color:var(--card-background);border-radius:8px;box-shadow:0 2px 5px #0000000d;display:flex;gap:1rem;overflow:hidden}.recommendation-image-placeholder{align-items:center;background-color:var(--border-color);color:var(--text-color-secondary);display:flex;font-size:.8rem;height:100px;justify-content:center;padding:.5rem;text-align:center;width:100px}.recommendation-details{flex:1 1;padding:.75rem .5rem .75rem 0}.recommendation-details h4{color:var(--text-color);font-size:1rem;margin:0 0 .5rem}.recommendation-details p{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--text-color-secondary);display:-webkit-box;font-size:.85rem;margin:0;overflow:hidden}.questionnaire-restart-btn{background-color:var(--primary-color);border:none;color:#fff;text-align:center;width:100%}.questionnaire-restart-btn:hover{background-color:var(--primary-color-dark)}.overlay{background-color:#00000080;height:100%;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transition:opacity .3s ease;width:100%;z-index:999}.overlay.active{opacity:1;pointer-events:all}@media (max-width:480px){.questionnaire-panel{max-width:100%;width:100%}.questionnaire-options{grid-template-columns:repeat(2,1fr)}}.calendar-container{align-self:stretch;background-color:var(--bg-primary);box-sizing:border-box;color:var(--text-primary);display:flex;flex:1 1;flex-direction:column;height:100%;max-width:100%;overflow:hidden;padding:0 15px 20px;width:100%}.calendar-container.dark-mode{--bg-color:#121212;--text-color:#f5f5f5;--border-color:#333;--header-bg:#1a1a1a;--day-bg:#1e1e1e;--day-adjacent-bg:#252525;--today-bg:#2d2d2d;--meal-slot-bg:#2a2a2a;--meal-slot-empty-bg:#252525;--meal-slot-breakfast-bg:#428bca33;--meal-slot-lunch-bg:#5cb85c33;--meal-slot-dinner-bg:#d9534f33;--meal-slot-snack-bg:#f0ad4e33;--hover-bg:#333}.calendar-content{margin:0 auto;overflow:hidden}.loading-spinner{animation:spin 1s ease-in-out infinite;border:3px solid #5e72e41a;border-top:3px solid var(--accent-color);display:inline-block}.calendar-loading{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.calendar-loading p{animation:pulse 1.5s infinite alternate;color:var(--text-secondary);font-size:1rem;margin-top:16px}@media (prefers-color-scheme:dark){.calendar-container:not(.dark-mode){--bg-color:#f9f9f9;--text-color:#333;--border-color:#ddd;--header-bg:#fff;--day-bg:#fff;--day-adjacent-bg:#f5f5f5;--today-bg:#e8f4ff;--meal-slot-bg:#f9f9f9;--meal-slot-empty-bg:#f5f5f5;--meal-slot-breakfast-bg:#428bca1a;--meal-slot-lunch-bg:#5cb85c1a;--meal-slot-dinner-bg:#d9534f1a;--meal-slot-snack-bg:#f0ad4e1a;--hover-bg:#f0f0f0}}@media (prefers-color-scheme:light){.calendar-container:not(.dark-mode){--bg-color:#f9f9f9;--text-color:#333;--border-color:#ddd;--header-bg:#fff;--day-bg:#fff;--day-adjacent-bg:#f5f5f5;--today-bg:#e8f4ff;--meal-slot-bg:#f9f9f9;--meal-slot-empty-bg:#f5f5f5;--meal-slot-breakfast-bg:#428bca1a;--meal-slot-lunch-bg:#5cb85c1a;--meal-slot-dinner-bg:#d9534f1a;--meal-slot-snack-bg:#f0ad4e1a;--hover-bg:#f0f0f0}}.calendar-header{margin-bottom:24px;padding:10px 0}.calendar-title{-webkit-text-fill-color:#0000;background:var(--accent-gradient);-webkit-background-clip:text;font-size:28px;font-weight:700;letter-spacing:-.5px}.calendar-nav{gap:12px}.calendar-nav-btn{border-radius:50%;box-shadow:0 4px 8px var(--shadow-color);height:40px;transition:all .3s ease;width:40px}.calendar-nav-btn:hover{background-color:var(--accent-color);box-shadow:0 8px 16px #5e72e440;color:#fff;transform:translateY(-3px)}.calendar-current-month{background-color:var(--bg-secondary);border-radius:20px;box-shadow:0 4px 8px var(--shadow-color);color:var(--text-primary);font-size:18px;font-weight:600;min-width:150px;padding:8px 20px;text-align:center}.calendar-grid{grid-gap:12px;border-radius:12px;display:grid;gap:12px;grid-template-columns:repeat(7,1fr)}.calendar-day-header{color:var(--accent-color);font-weight:600;margin-bottom:8px;padding:12px}.calendar-day{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 12px var(--shadow-color);overflow:hidden;padding:12px;transition:all .3s ease}.calendar-day:hover{border-color:var(--accent-color);box-shadow:0 8px 20px #5e72e433;transform:translateY(-3px)}.calendar-day.adjacent-month{opacity:.6}.calendar-day.today{background-color:var(--today-bg);border:2px solid var(--accent-color);position:relative}.calendar-day.today:before{background-color:var(--accent-color);border-radius:10px;color:#fff;content:"TODAY";font-size:10px;font-weight:700;left:10px;opacity:.8;padding:2px 6px;position:absolute;top:10px}.day-number{color:var(--text-primary);font-size:16px;font-weight:700;margin-bottom:12px;text-align:right}.meal-slots{gap:10px;margin-top:6px}.meal-slot{background-color:var(--meal-slot-bg);border:1px solid #0000;border-radius:8px;padding:10px;transition:all .3s ease}.meal-slot:hover{box-shadow:0 4px 8px var(--shadow-color);transform:translateY(-2px)}.meal-slot.breakfast{background-color:var(--meal-slot-breakfast-bg);border-left:3px solid #5e72e4b3}.meal-slot.lunch{background-color:var(--meal-slot-lunch-bg);border-left:3px solid #2dce89b3}.meal-slot.dinner{background-color:var(--meal-slot-dinner-bg);border-left:3px solid #f5365cb3}.meal-slot.snack{background-color:var(--meal-slot-snack-bg);border-left:3px solid #ff9500b3}.meal-slot-title{font-size:14px;font-weight:600;margin-bottom:5px}.meal-slot-content{font-size:13px;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.calendar-container{padding:0 10px 10px}.calendar-grid{gap:4px}.calendar-day{min-height:120px;padding:4px}.meal-slot{padding:2px 4px}}@media (max-width:576px){.calendar-day-header{font-size:12px;padding:5px}.calendar-day{min-height:100px}}.calendar-container.drag-in-progress{background-color:var(--bg-color);box-shadow:inset 0 0 20px #007bff1a;transition:all .2s ease}.day-cell.drag-over{box-shadow:0 0 12px #007bff4d}.day-cell.drag-over,.meal-slot.drag-target{transform:scale(1.02);transition:all .2s ease}.meal-slot.drag-target{background-color:#007bff1a;border:2px dashed #007bff80}.temp-meal-indicator{padding:4px}@media (prefers-color-scheme:dark){.day-cell.drag-over{box-shadow:0 0 12px #007bff80}.meal-slot.drag-target{background-color:#007bff33}.temp-meal-indicator{background-color:#0078ff33}}.update-notification{align-items:center;animation:notification-slide-in .3s ease forwards,notification-slide-out .3s ease 2.7s forwards;background-color:#4caf50;background-color:var(--success-color,#4caf50);border-radius:8px;box-shadow:0 4px 8px #0003;color:#fff;display:flex;gap:10px;padding:12px 16px;position:fixed;right:20px;top:20px;z-index:1000}.update-notification svg{flex-shrink:0}@keyframes notification-slide-in{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes notification-slide-out{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}.calendar-header{align-items:center;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px}.calendar-header-left{align-items:center;display:flex;gap:24px}.calendar-title{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.calendar-nav{align-items:center;display:flex;gap:16px}.calendar-nav-btn-circle{align-items:center;background-color:var(--bg-secondary);border:none;border-radius:50%;box-shadow:0 1px 3px #0000001a;color:var(--text-primary);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.calendar-nav-btn-circle:hover{background-color:var(--bg-hover);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.calendar-nav-btn-circle:active{box-shadow:0 1px 3px #0000001a;transform:translateY(0)}.calendar-date-display{align-items:center;display:flex;flex-direction:column;gap:2px;padding:0 16px}.calendar-current-date{font-size:18px;font-weight:600;line-height:1.2}.calendar-week-number{color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.2}.calendar-today-btn-capsule{background-color:var(--accent-color);border:none;border-radius:16px;box-shadow:0 1px 3px #0000001a;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:6px 12px;transition:all .2s ease}.calendar-today-btn-capsule:hover{background-color:var(--accent-color-hover);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.calendar-today-btn-capsule:active{box-shadow:0 1px 3px #0000001a;transform:translateY(0)}.calendar-today-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.calendar-today-btn:hover{background-color:var(--bg-hover);border-color:var(--accent-color)}.calendar-nav-btn{align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.calendar-nav-btn:hover{background-color:var(--bg-hover);border-color:var(--accent-color)}.calendar-current-date{background-color:var(--bg-secondary);border-radius:6px;color:var(--text-primary);font-size:16px;font-weight:500;padding:8px 16px}.calendar-header-right{align-items:center;display:flex;gap:24px}.calendar-action-btn,.calendar-actions{align-items:center;display:flex;gap:8px}.calendar-action-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-weight:500;padding:8px 16px;transition:all .2s ease}.calendar-action-btn:hover{background-color:var(--bg-hover);border-color:var(--accent-color)}.calendar-action-btn.active,.calendar-action-btn.primary{background-color:var(--accent-color);border-color:var(--accent-color);color:#fff}.calendar-action-btn.primary:hover{background-color:var(--accent-color-hover);border-color:var(--accent-color-hover)}.calendar-view-toggle{align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;display:flex;gap:4px;padding:4px}.view-toggle-btn{background:none;border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;font-weight:500;padding:6px 12px;transition:all .2s ease}.view-toggle-btn:hover{background-color:var(--bg-hover)}.view-toggle-btn.active{background-color:var(--accent-color);color:#fff}.dark-mode .calendar-header{background-color:var(--bg-primary-dark);border-color:var(--border-color-dark)}.dark-mode .calendar-title{color:var(--text-primary-dark)}.dark-mode .calendar-nav-btn-circle{background-color:var(--bg-secondary-dark);color:var(--text-primary-dark)}.dark-mode .calendar-nav-btn-circle:hover{background-color:var(--bg-hover-dark)}.dark-mode .calendar-current-date{color:var(--text-primary-dark)}.dark-mode .calendar-week-number{color:var(--text-secondary-dark)}.dark-mode .calendar-today-btn-capsule{background-color:var(--accent-color);color:#fff}.dark-mode .calendar-today-btn-capsule:hover{background-color:var(--accent-color-hover)}.dark-mode .calendar-action-btn,.dark-mode .calendar-current-date,.dark-mode .calendar-nav-btn,.dark-mode .calendar-today-btn,.dark-mode .calendar-view-toggle{background-color:var(--bg-secondary-dark);border-color:var(--border-color-dark);color:var(--text-primary-dark)}.dark-mode .calendar-action-btn:hover,.dark-mode .calendar-nav-btn:hover,.dark-mode .calendar-today-btn:hover,.dark-mode .view-toggle-btn:hover{background-color:var(--bg-hover-dark);border-color:var(--accent-color);color:var(--text-primary-dark)}.dark-mode .calendar-action-btn.active,.dark-mode .calendar-action-btn.primary,.dark-mode .view-toggle-btn.active{background-color:var(--accent-color);border-color:var(--accent-color);color:var(--text-on-accent)}.dark-mode .calendar-action-btn.primary:hover{background-color:var(--accent-color-hover);border-color:var(--accent-color-hover);color:var(--text-on-accent)}@media (max-width:768px){.calendar-header{flex-direction:column;gap:16px;padding:12px}.calendar-header-left,.calendar-header-right{justify-content:center;width:100%}.calendar-controls{flex-direction:column;gap:12px}.calendar-btn{padding:10px 16px}.calendar-btn span{display:none}}.calendar-grid{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;font-family:Inter,Segoe UI,Roboto,sans-serif;height:auto;max-width:100%;min-height:600px;position:relative;width:100%}.dark-mode .calendar-grid{background-color:#1f1f1f;box-shadow:0 1px 3px #0003}.month-view{background-color:#fff;display:flex;flex-direction:column;max-width:100%;width:100%}.dark-mode .month-view{background-color:#1f1f1f}.month-grid{grid-gap:4px;background-color:#f5f5f5;border:1px solid #eaeaea;border-radius:0 0 8px 8px;box-sizing:border-box;display:grid;flex:1 1;grid-auto-rows:minmax(120px,auto);grid-template-columns:repeat(7,1fr);min-height:500px;padding:4px;width:100%}.dark-mode .month-grid{background-color:#2d2d2d;border-color:#333}.week-view{background-color:#fff;display:grid;grid-template-rows:auto 1fr;width:100%}.dark-mode .week-view{background-color:#1f1f1f}.week-grid{grid-gap:1px;background-color:#f5f5f5;border:1px solid #eaeaea;border-radius:0 0 8px 8px;display:grid;flex:1 1;grid-auto-rows:minmax(250px,auto);grid-template-columns:repeat(7,1fr);min-height:600px;width:100%}.dark-mode .week-grid{background-color:#2d2d2d;border-color:#333}.day-view{background-color:#fff;border:1px solid #eaeaea;border-radius:0 0 8px 8px;flex:1 1;padding:20px;width:100%}.dark-mode .day-view{background-color:#1f1f1f;border-color:#333}.day-headers{background-color:#f5f7fa!important;border:1px solid #e4e7eb;border-bottom:none;border-radius:8px 8px 0 0;box-sizing:border-box;display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:0;max-width:100%;width:100%}.dark-mode .day-headers{background-color:#262a3e!important;border-color:#424c6e}.day-header-cell{background-color:#f5f7fa!important;border-bottom:1px solid #e4e7eb;border-right:1px solid #e4e7eb;color:#2c3e50!important;font-size:.85rem;font-weight:600;padding:8px 0;text-align:center}.dark-mode .day-header-cell{background-color:#262a3e!important;border-color:#424c6e;color:#fff!important}.calendar-day-header{background-color:#fff;background-color:var(--header-bg,#fff);border-bottom:1px solid #ddd;border-bottom:1px solid var(--border-color,#ddd);font-weight:500;padding:12px 0;text-align:center}.dark-mode .calendar-day-header{background-color:#2d2d2d;border-color:#444}.calendar-day{background-color:#fff;background-color:var(--day-bg,#fff);display:flex;flex-direction:column;min-height:150px;padding:8px;position:relative}.dark-mode .calendar-day{background-color:#2d2d2d}.calendar-day.adjacent-month{background-color:#f5f5f5;background-color:var(--day-adjacent-bg,#f5f5f5);color:#888}.dark-mode .calendar-day.adjacent-month{background-color:#252525;color:#777}.calendar-day.today{background-color:#e8f4ff;background-color:var(--today-bg,#e8f4ff);font-weight:500}.dark-mode .calendar-day.today{background-color:#1a3a5a}.day-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:4px;padding-bottom:2px}.dark-mode .day-header{border-bottom-color:#333}.weekday-name{color:#666;font-size:.8rem;font-weight:600}.dark-mode .weekday-name{color:#aaa}.day-number{align-items:center;color:#333;display:flex;font-size:.9rem;font-weight:600;justify-content:center;min-height:22px;min-width:22px}.dark-mode .day-number{color:#e0e0e0}.today .day-number{color:#1890ff;font-weight:700}.dark-mode .today .day-number{color:#40a9ff}.other-month .day-number{color:#999}.dark-mode .other-month .day-number{color:#777}.meal-slots{flex-grow:1;gap:5px;overflow:hidden}.meal-slot,.meal-slots{display:flex;flex-direction:column;width:100%}.meal-slot{background-color:#f5f7fa!important;border:1px solid #e4e7eb;border-radius:4px;box-sizing:border-box;color:#2c3e50;cursor:pointer;font-size:.75rem;margin-bottom:3px;min-height:24px;min-width:0;padding:5px;transition:all .2s}.meal-slot .assigned-meal.recipe-card-style{flex:1 1;min-width:100%;width:100%}.dark-mode .meal-slot{background-color:#262a3e!important;border-color:#424c6e;color:#fff}.meal-slot:hover{background-color:#eef2f7!important;border-color:#d1d9e6}.dark-mode .meal-slot:hover{background-color:#303448!important;border-color:#4c5678}.meal-type-label{color:#4a5568!important;font-size:.65rem;font-weight:600;margin-bottom:1px}.dark-mode .meal-type-label{color:#fffc!important}.breakfast-slot .meal-type-label{color:#fa8c16}.lunch-slot .meal-type-label{color:#52c41a}.dinner-slot .meal-type-label{color:#722ed1}.dark-mode .breakfast-slot .meal-type-label{color:#ffa940}.dark-mode .lunch-slot .meal-type-label{color:#73d13d}.dark-mode .dinner-slot .meal-type-label{color:#9254de}.assigned-meal{gap:5px}.assigned-meal,.meal-image{align-items:center;display:flex}.meal-image{border-radius:4px;height:48px;justify-content:center;overflow:hidden;width:48px}.dark-mode .meal-image{border:1px solid #444}.meal-image img{height:100%;object-fit:cover;width:100%}.meal-info{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.meal-title{color:#333;font-size:.75rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark-mode .meal-title{color:#e0e0e0}.meal-notes,.meal-servings{color:#666;font-size:.7rem}.dark-mode .meal-notes,.dark-mode .meal-servings{color:#aaa}.meal-notes{font-style:italic;max-height:2.4em;overflow:hidden}.meal-slot.compact{min-height:18px;padding:2px 4px}.month-view .meal-slot{min-height:20px;padding:2px 4px}.month-view .assigned-meal{overflow:hidden}.empty-meal{align-items:center;display:flex;height:100%;justify-content:center;opacity:.6}.add-meal-text{color:#999;font-size:.65rem}.dark-mode .add-meal-text{color:#888}.day-cell.complete-plan{background-color:#f6ffed}.dark-mode .day-cell.complete-plan{background-color:#52c41a26}.day-cell.partial-plan{background-color:#fffbe6}.dark-mode .day-cell.partial-plan{background-color:#faad1426}.plan-indicator{align-items:center;border-radius:50%;display:inline-flex;height:16px;justify-content:center;margin-left:4px;width:16px}.plan-indicator.complete{color:#52c41a}.plan-indicator.partial{color:#faad14}.meal-slot.has-meal{background-color:#f9f9f9;border-color:#d9d9d9}.dark-mode .meal-slot.has-meal{background-color:#333;border-color:#555}.breakfast-slot.has-meal{border-left:3px solid #fa8c16}.lunch-slot.has-meal{border-left:3px solid #52c41a}.dinner-slot.has-meal{border-left:3px solid #722ed1}.delete-meal-btn{align-items:center;background:none;border:none;border-radius:50%;color:#999;cursor:pointer;display:flex;height:18px;justify-content:center;opacity:.5;transition:all .2s;width:18px}.dark-mode .delete-meal-btn{color:#aaa}.delete-meal-btn:hover{background-color:#f5f5f5;color:#ff4d4f;opacity:1}.dark-mode .delete-meal-btn:hover{background-color:#333;color:#ff7875}.mobile-day-nav{align-items:center;background-color:#f9f9f9;border-bottom:1px solid #eaeaea;display:flex;justify-content:space-between;padding:10px 15px}.dark-mode .mobile-day-nav{background-color:#2d2d2d;border-bottom-color:#444}.loading-overlay{align-items:center;background-color:#fffc;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.dark-mode .loading-overlay{background-color:#000000b3}.loading-spinner{border:3px solid #f3f3f3;border-top-color:#1890ff}.dark-mode .loading-spinner{border-color:#1890ff #333 #333}.loading-text{color:#666;font-size:.9rem;margin-top:10px}.dark-mode .loading-text{color:#bbb}.day-cell:focus{box-shadow:0 0 0 2px #1890ff33;outline:none;z-index:1}.dark-mode .day-cell:focus{box-shadow:0 0 0 2px #1890ff66}@media (max-width:768px){.calendar-grid{margin:0;overflow-x:hidden}.day-headers{display:none}.calendar-grid.month-view,.calendar-grid.week-view{display:block}.month-grid,.week-grid{border-radius:0;display:block}.day-cell{border-bottom:1px solid var(--border-color);border-left:none;border-right:none;height:auto;margin-bottom:8px;min-height:180px;padding:12px;width:100%}.dark-mode .day-cell{border-color:#444}.calendar-grid.month-view .day-cell:not(.current-month-day),.calendar-grid.week-view .day-cell:not(.in-view-range){display:none}.calendar-grid.day-view .day-cell{height:calc(100vh - 180px);margin-bottom:0;overflow-y:auto}.day-number{font-size:18px;margin-bottom:12px}.meal-slot{margin-bottom:12px;padding:12px}.month-name{font-size:18px;margin-right:8px}.day-name{display:inline;font-size:16px;font-weight:500;margin-right:8px}.day-name:before{content:", "}.meal-search-panel{height:100vh;max-width:100%;right:-100%;width:100%}.meal-search-panel.open{right:0}.weekly-overview-panel{height:100vh;max-width:100%;right:-100%;width:100%}.weekly-overview-panel.open{right:0}.shopping-list-panel{height:100vh;max-width:100%;right:-100%;width:100%}.shopping-list-panel.open{right:0}.mobile-day-nav{align-items:center;background-color:var(--bg-color);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:12px;padding:12px;width:100%}.dark-mode .mobile-day-nav{background-color:#2d2d2d;border-color:#444}.next-day-btn,.prev-day-btn{background-color:var(--bg-color-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-color);cursor:pointer;font-size:14px;padding:8px 12px}.dark-mode .next-day-btn,.dark-mode .prev-day-btn{background-color:#333;border-color:#555;color:#e0e0e0}.current-day-label{color:var(--text-color);font-size:16px;font-weight:600}.dark-mode .current-day-label{color:#e0e0e0}.day-view-meals{flex-direction:column;gap:25px}.day-view-meal-section{margin-bottom:15px;width:100%}.day-view-layout{grid-template-columns:1fr;grid-template-rows:auto auto auto auto}.day-view-layout .meal-section-summary,.day-view-layout .meal-section-tags,.day-view-layout .meal-section-timings{border-left:none;border-right:none;padding:0;width:100%}.day-view-layout .meal-section-tags{border-top:1px solid #eee;border-top:1px solid var(--border-color,#eee);margin:15px 0;padding:15px 0}.dark-mode .day-view-layout .meal-section-tags{border-top-color:#444}.day-view-layout .meal-section-timings{border-top:1px solid #eee;border-top:1px solid var(--border-color,#eee);padding:15px 0}.dark-mode .day-view-layout .meal-section-timings{border-top-color:#444}.day-view-layout .meal-section-timings .time-clocks{align-items:flex-start;flex-direction:row;justify-content:center}.day-view-layout .meal-actions{margin-top:20px;position:static}.meal-slot .meal-actions{bottom:auto;justify-content:flex-end;margin-top:15px;position:relative;right:auto}.meal-slot.has-meal{padding-bottom:15px}}@media (min-width:769px) and (max-width:1024px){.calendar-grid.month-view,.calendar-grid.week-view{grid-template-columns:repeat(7,1fr)}.calendar-grid.day-view{grid-template-columns:1fr}.meal-search-panel{width:320px}.shopping-list-panel,.weekly-overview-panel{width:350px}}.mobile-day-nav{display:none}.dark-mode .loading-overlay{background-color:#0006}.dark-mode .loading-spinner{border-color:#1890ff #ffffff1a #ffffff1a;border-top-color:var(--color-primary,#1890ff)}.keyboard-instructions{bottom:20px;position:fixed;right:20px;z-index:50}.keyboard-help-toggle{align-items:center;background-color:var(--bg-color-secondary);border:1px solid var(--border-color);border-radius:50%;box-shadow:0 2px 5px #0000001a;color:var(--text-color-secondary);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s ease;width:40px}.keyboard-help-toggle:hover{background-color:var(--hover-color);box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.keyboard-help-toggle:focus{outline:2px solid var(--primary-color);outline-offset:2px}.keyboard-instructions-content{animation:fadeIn .3s ease;background-color:var(--bg-color-secondary);border:1px solid var(--border-color);border-radius:8px;bottom:50px;box-shadow:0 4px 12px #00000026;padding:16px;position:absolute;right:0;width:280px}.keyboard-instructions-content h3{color:var(--text-color-primary);font-size:1rem;margin-bottom:12px;margin-top:0}.keyboard-instructions-content ul{margin:0;padding-left:20px}.keyboard-instructions-content li{color:var(--text-color-secondary);font-size:.9rem;margin-bottom:8px}@media (prefers-color-scheme:dark){.keyboard-help-toggle{background-color:#333;background-color:var(--bg-color-secondary-dark,#333);border-color:#555;border-color:var(--border-color-dark,#555);color:#aaa;color:var(--text-color-secondary-dark,#aaa)}.keyboard-help-toggle:hover{background-color:#444;background-color:var(--hover-color-dark,#444)}.keyboard-instructions-content{background-color:#2a2a2a;background-color:var(--bg-color-secondary-dark,#2a2a2a);border-color:#444;border-color:var(--border-color-dark,#444)}.keyboard-instructions-content h3{color:#e0e0e0;color:var(--text-color-primary-dark,#e0e0e0)}.keyboard-instructions-content li{color:#aaa;color:var(--text-color-secondary-dark,#aaa)}}@keyframes highlightUpdate{0%{box-shadow:0 0 0 2px #0078ff00}20%{box-shadow:0 0 0 2px #0078ffb3}to{box-shadow:0 0 0 2px #0078ff00}}.date-updated{animation:highlightUpdate 2s ease-out}.day-cell.drag-over{background-color:#0078ff1a;box-shadow:inset 0 0 0 2px #0078ff80}.meal-slot.drag-target{background-color:#0078ff33;box-shadow:inset 0 0 0 2px #0078ffb3}.drop-feedback{animation:dropFlash .6s ease-out;border-radius:4px;pointer-events:none;z-index:10}@keyframes dropFlash{0%{background-color:#0078ff4d;opacity:.8}to{background-color:#0078ff00;opacity:0}}.temp-meal-indicator{animation:pulse 1s infinite alternate;background-color:#0078ff1a;border-radius:4px;color:#333;font-size:12px;margin:4px 0;padding:4px 8px;text-align:center}.day-cell{background-color:#fff;background-color:var(--day-bg,#fff);border:1px solid #eaeaea;border:1px solid var(--border-color,#eaeaea);box-sizing:border-box;display:flex;flex:1 0 auto;flex-direction:column;height:100%;min-height:120px;min-width:0;overflow:hidden;padding:8px;position:relative;transition:background-color .2s;width:100%}.dark-mode .day-cell{background-color:#1f1f1f;border-color:#333}.day-cell.today{background-color:#e8f4ff}.dark-mode .day-cell.today{background-color:#1a3a5a}.day-cell.other-month{background-color:#f9f9f9;color:#999}.dark-mode .day-cell.other-month{background-color:#252525;color:#777}.calendar-content{align-self:stretch;display:flex;flex:1 1;flex-direction:column;max-width:100%;width:100%}.month-view-container,.week-view-container{display:flex;flex:1 1;flex-direction:column;width:100%}.day-view-container{display:flex;flex:1 1;flex-direction:column;width:100%}.calendar-content.month-view-container{display:flex;flex:1 1;flex-direction:column;max-width:100%;width:100%}.meal-slot.force-update{animation:flash-update .3s ease-out}@keyframes flash-update{0%{background-color:#007bff26}to{background-color:inherit}}@keyframes cell-update-flash{0%{background-color:#007bff0d;box-shadow:inset 0 0 0 2px #007bff1a}50%{background-color:#007bff1a;box-shadow:inset 0 0 0 2px #007bff80}to{background-color:#007bff0d;box-shadow:inset 0 0 0 2px #007bff1a}}.cell-updated{animation:cell-update-flash 1.5s ease-in-out;position:relative}.cell-updated:after{animation:fade-out 2s ease-in-out forwards;background-color:#007bffcc;border-radius:4px;color:#fff;content:"Updated!";font-size:11px;opacity:1;padding:3px 6px;position:absolute;right:10px;top:10px}@keyframes fade-out{0%{opacity:1}70%{opacity:1}to{opacity:0}}.meal-loading{border:1px solid #007bff4d!important;position:relative}.meal-loading:before{animation:loading-bar 2s infinite;background:linear-gradient(90deg,#0000,#007bffcc,#0000);content:"";height:2px;left:0;position:absolute;right:0;top:0}@keyframes loading-bar{0%{left:-100%;right:100%}50%{left:0;right:0}to{left:100%;right:-100%}}.day-view-layout{grid-gap:15px;align-items:start;background-color:#fff;background-color:var(--card-background,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:12px;box-shadow:0 4px 6px #0000000d;display:grid;gap:15px;grid-template-columns:minmax(0,42%) minmax(0,30%) minmax(0,28%);margin-bottom:15px;padding:15px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.day-view-layout:hover{box-shadow:0 8px 15px #0000001a;transform:translateY(-5px)}.dark-mode .day-view-layout{background-color:#2a2a2a;border-color:#444;box-shadow:0 2px 6px #0003}.day-view-layout .meal-section-summary{align-items:flex-start;display:flex;flex-direction:row;min-width:0;padding-right:15px;width:100%}.day-view-layout .meal-section-tags{border-left:1px solid #eee;border-left:1px solid var(--border-color,#eee);border-right:1px solid #eee;border-right:1px solid var(--border-color,#eee);height:100%;min-width:0;padding:0 15px;width:100%}.dark-mode .day-view-layout .meal-section-tags{border-color:#444}.day-view-layout .meal-section-timings{height:100%;min-width:0;padding-left:15px;width:100%}.day-view-layout .meal-text-content{flex:1 1;margin-left:15px;min-width:0;width:100%}.day-view-layout .meal-description{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;word-wrap:break-word;box-sizing:border-box;color:#666;color:var(--text-color-secondary,#666);display:-webkit-box;font-size:.9rem;line-height:1.5;margin-bottom:10px;max-height:4.5em;overflow:hidden;overflow-wrap:break-word;white-space:normal;width:100%}.day-view-layout .meal-image{align-items:center;background-color:#262a3e;border:1px solid #eee;border:1px solid var(--border-color,#eee);border-radius:8px;display:flex;flex-shrink:0;height:80px;justify-content:center;overflow:hidden;width:80px}.dark-mode .day-view-layout .meal-image{border-color:#444}.day-view-layout .meal-image img{border-radius:6px;height:100%;object-fit:cover;width:100%}.day-view-layout .meal-description,.day-view-layout .meal-title{margin-right:0}.day-view-layout .meal-title{color:#333;color:var(--text-color,#333);font-size:1.25rem;font-weight:600;margin-bottom:8px}.day-view-layout .meal-servings{color:#666;color:var(--text-color-secondary,#666);display:block;font-size:.85rem;margin-bottom:6px}.dark-mode .day-view-layout .meal-description,.dark-mode .day-view-layout .meal-servings{color:#aaa}.day-view-layout .meal-section-timings .time-clocks{align-items:center;display:flex;flex-direction:column;gap:15px;margin-bottom:15px}.meal-slot .meal-actions{bottom:15px;display:flex;gap:10px;position:absolute;right:15px;z-index:5}.meal-slot.has-meal{padding-bottom:50px;position:relative}.prep-time{color:#1890ff}.cook-time{color:#fa8c16}.total-time{color:#13c2c2}.time-clocks{display:flex;gap:15px;margin-bottom:15px}.time-clock{align-items:center;display:flex;flex-direction:column;width:65px}.clock-label{font-size:.8rem;font-weight:600;margin-bottom:3px}.clock-face{align-items:center;border:2px solid;border-radius:50%;display:flex;height:40px;justify-content:center;position:relative;width:40px}.clock-hand{background-color:currentColor;bottom:50%;height:15px;left:calc(50% - 1px);position:absolute;transform-origin:bottom center;width:2px}.clock-time{font-size:.75rem;margin-top:3px;white-space:nowrap}.meal-cuisine,.meal-dietary-restrictions,.meal-equipment,.meal-notes,.meal-time{font-size:.9rem;margin-bottom:10px}.meal-label{color:#666;color:var(--text-color-secondary,#666);font-weight:600;margin-right:5px}.dark-mode .meal-label{color:#aaa}.restrictions-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.restriction-tag{background-color:#1890ff1a;border-radius:4px;color:#1890ff;font-size:.8rem;padding:2px 6px}.dark-mode .restriction-tag{background-color:#1890ff33;color:#40a9ff}.equipment-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.equipment-tag{background-color:#52c41a1a;border-radius:4px;color:#52c41a;font-size:.8rem;padding:2px 6px}.dark-mode .equipment-tag{background-color:#52c41a33;color:#73d13d}.cuisine-tag{background-color:#722ed11a;border-radius:4px;color:#722ed1;display:inline-block;font-size:.8rem;margin-left:5px;padding:2px 6px}.dark-mode .cuisine-tag{background-color:#722ed133;color:#9254de}.meal-actions{display:flex;gap:10px;margin-top:15px}.day-view-layout .delete-meal-btn,.edit-meal-btn{align-items:center;background-color:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.8rem;gap:4px;padding:5px 10px}.dark-mode .day-view-layout .delete-meal-btn,.dark-mode .edit-meal-btn{background-color:#333;border-color:#444;color:#e0e0e0}.day-view-layout .delete-meal-btn:hover,.edit-meal-btn:hover{background-color:#e6e6e6}.dark-mode .day-view-layout .delete-meal-btn:hover,.dark-mode .edit-meal-btn:hover{background-color:#444}.day-view-layout .delete-meal-btn{color:#ff4d4f}.dark-mode .day-view-layout .delete-meal-btn{color:#ff7875}.day-view-container{padding:20px}.day-view-header{margin-bottom:20px}.day-view-title-container{align-items:center;display:flex;gap:10px;margin-bottom:5px}.day-view-title{font-size:1.8rem;font-weight:600;margin:0}.day-view-date{color:#666;font-size:1.1rem}.dark-mode .day-view-date{color:#aaa}.day-view-meals{display:flex;flex-direction:row;gap:20px;justify-content:space-between}.day-view-meal-section{display:flex;flex-direction:column;width:calc(33.33% - 14px)}.meal-section-title{color:#333;font-size:1.2rem;font-weight:600;margin-bottom:10px}.dark-mode .meal-section-title{color:#e0e0e0}.day-view-meal-section:first-child .meal-section-title{color:#fa8c16}.day-view-meal-section:nth-child(2) .meal-section-title{color:#52c41a}.day-view-meal-section:nth-child(3) .meal-section-title{color:#722ed1}.dark-mode .day-view-meal-section:first-child .meal-section-title{color:#ffa940}.dark-mode .day-view-meal-section:nth-child(2) .meal-section-title{color:#73d13d}.dark-mode .day-view-meal-section:nth-child(3) .meal-section-title{color:#9254de}.meal-section-content{display:flex;flex-direction:column;gap:15px;height:100%;max-height:70vh;overflow-y:auto;padding-right:8px}.meal-section-content .meal-slot{position:relative}.meal-count-indicator{align-items:center;background-color:#1890ff;border-radius:50%;box-shadow:0 2px 5px #00000026;color:#fff;display:flex;font-size:12px;font-weight:600;height:22px;justify-content:center;position:absolute;right:-8px;top:-8px;width:22px;z-index:2}.dark-mode .meal-count-indicator{background-color:#177ddc;box-shadow:0 2px 5px #0000004d}.add-another-meal-button{align-items:center;background-color:#f5f5f5;border:1px dashed #d9d9d9;border-radius:6px;color:#1890ff;cursor:pointer;display:flex;font-size:14px;gap:8px;justify-content:center;margin-top:10px;padding:12px;text-align:center;transition:all .2s}.add-another-meal-button:hover{background-color:#e6f7ff;border-color:#91d5ff}.dark-mode .add-another-meal-button{background-color:#262626;border-color:#434343;color:#40a9ff}.dark-mode .add-another-meal-button:hover{background-color:#1f1f1f;border-color:#177ddc}.add-another-meal-button svg{height:14px;width:14px}.meal-section-title .meal-count{color:#999;font-size:.8rem;font-weight:400;margin-left:8px}.dark-mode .meal-section-title .meal-count{color:#777}.meal-group-separator{background-color:#f0f0f0;height:1px;margin:10px 0}.dark-mode .meal-group-separator{background-color:#333}.time-clock.over-hour .clock-face{border-color:#ff4d4f}.time-clock.over-hour .clock-hand{background-color:#ff4d4f}.time-clock.over-hour .clock-time{color:#ff4d4f}.dark-mode .time-clock.over-hour .clock-face{border-color:#ff7875}.dark-mode .time-clock.over-hour .clock-hand{background-color:#ff7875}.dark-mode .time-clock.over-hour .clock-time{color:#ff7875}.week-view .meal-image{background-color:#262a3e;border-radius:4px;height:96px;width:96px}.week-view .assigned-meal{align-items:center;display:flex;flex-direction:row-reverse;gap:5px;min-height:100px}.week-view .meal-slot{min-height:110px;padding:5px 8px}.week-view .meal-info{padding-left:0;padding-right:5px;text-align:left}.week-view .meal-meta-info{align-items:flex-start}.week-view .meal-title{font-size:.9rem;font-weight:700;margin-bottom:5px;text-align:left}.week-view .meal-notes,.week-view .meal-servings{text-align:left}.week-view .meal-meta-info{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;width:100%}.week-view .meal-calories,.week-view .meal-cuisine{align-items:center;color:#666;display:flex;font-size:.75rem;gap:4px;line-height:1.2;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.week-view .meal-calories{margin-top:-2px}.dark-mode .week-view .meal-calories,.dark-mode .week-view .meal-cuisine{color:#aaa}.week-view .meal-calories svg,.week-view .meal-cuisine svg{margin-top:1px}.week-view .meal-calories{color:#f5a623}.week-view .meal-cuisine{color:#1890ff}.dark-mode .week-view .meal-calories{color:#faad14}.dark-mode .week-view .meal-cuisine{color:#40a9ff}.week-view .meal-notes,.week-view .meal-servings{font-size:.8rem;line-height:1.4}.month-view .meal-image{background-color:#262a3e;height:24px;width:24px}.day-view-layout .recipe-metadata{align-items:center;display:flex;flex-wrap:wrap;font-size:.85rem;gap:10px;margin:8px 0 10px}.day-view-layout .recipe-cuisine,.day-view-layout .recipe-time{align-items:center;color:#666;color:var(--text-color-secondary,#666);display:flex;gap:5px}.dark-mode .day-view-layout .recipe-cuisine,.dark-mode .day-view-layout .recipe-time{color:#aaa}.day-view-layout .recipe-cuisine svg,.day-view-layout .recipe-time svg{flex-shrink:0}.day-view-layout .recipe-difficulty-tag{border-radius:4px;font-size:.75rem;font-weight:500;padding:2px 6px}.dark-mode .day-view-layout .difficulty-easy{background-color:#2ecc7133;color:#2ecc71}.dark-mode .day-view-layout .difficulty-medium{background-color:#f1c40f33;color:#f1c40f}.dark-mode .day-view-layout .difficulty-hard{background-color:#e74c3c33;color:#e74c3c}.day-view-layout .meal-difficulty{margin-bottom:10px}.day-view-layout .difficulty-badge{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;margin-left:5px;padding:4px 8px}.day-view-layout .difficulty-easy{background-color:#2ecc7126;background-color:var(--difficulty-easy-bg,#2ecc7126);color:#27ae60;color:var(--difficulty-easy-color,#27ae60)}.day-view-layout .difficulty-medium{background-color:#f1c40f26;background-color:var(--difficulty-medium-bg,#f1c40f26);color:#f39c12;color:var(--difficulty-medium-color,#f39c12)}.day-view-layout .difficulty-hard{background-color:#e74c3c26;background-color:var(--difficulty-hard-bg,#e74c3c26);color:#e74c3c;color:var(--difficulty-hard-color,#e74c3c)}.day-view-layout .meal-tags{margin-bottom:10px}.day-view-layout .recipe-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.day-view-layout .recipe-tag{background-color:#1890ff14;border-radius:4px;color:#666;color:var(--text-color-secondary,#666);font-size:.75rem;padding:2px 6px}.day-view-layout .recipe-tag.more-tag{background-color:#0000000a;color:#888;color:var(--text-color-secondary,#888)}.dark-mode .day-view-layout .recipe-tag{background-color:#1890ff26;color:#aaa}.dark-mode .day-view-layout .recipe-tag.more-tag{background-color:#ffffff14;color:#888}.day-cell.selectable{cursor:pointer;transition:all .2s ease}.day-cell.selectable:hover{background-color:var(--bg-hover);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.day-cell.selected{background-color:var(--accent-color-light);box-shadow:0 0 0 2px var(--accent-color)}.dark-mode .day-cell.selected,.day-cell.selected{border-color:var(--accent-color)}.selection-indicator{animation:popIn .2s ease-out;background-color:var(--accent-color);height:20px;right:8px;top:8px;width:20px}@keyframes popIn{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.day-cell.selectable:before{border:2px solid #0000;border-radius:8px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transition:all .2s ease}.day-cell.selectable:hover:before{border-color:var(--accent-color);opacity:.5}.day-cell.selected:before{border-color:var(--accent-color);opacity:1}.dark-mode .day-cell.selectable:hover{background-color:var(--bg-hover-dark)}.dark-mode .day-cell.selected{background-color:var(--accent-color-dark)}.dark-mode .selection-indicator{background-color:var(--accent-color)}.assigned-meal.recipe-card-style,.meal-slot.enhanced{overflow:hidden;position:relative}.assigned-meal.recipe-card-style{background-color:#f5f7fa!important;border:1px solid #e4e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000d;color:#2c3e50;display:flex;flex-direction:column;height:100%;transition:all .3s ease}.assigned-meal.recipe-card-style:hover{background-color:#eef2f7!important;border-color:#d1d9e6;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.assigned-meal.recipe-card-style .meal-image-container{height:200px;min-width:100%;overflow:hidden;position:relative;width:100%}.assigned-meal.recipe-card-style .meal-image-container,.meal-image{background-color:#262a3e;border-top-left-radius:16px;border-top-right-radius:16px}.meal-image{border-bottom-left-radius:0;border-bottom-right-radius:0;height:100%!important;left:0;max-height:none!important;max-width:none!important;min-height:100%!important;min-width:100%!important;object-fit:cover;opacity:1!important;position:absolute;top:0;transition:transform .5s ease;visibility:visible!important;width:100%!important}.assigned-meal.recipe-card-style:hover .meal-image{transform:scale(1.05)}.meal-content.recipe-content-style{display:flex;flex-direction:column;flex-grow:1;min-width:0;padding:20px;width:100%}.meal-title.recipe-title-style{color:#2c3e50!important;display:block;font-size:27px;font-weight:600;line-height:1.4;margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.meal-metadata.recipe-metadata-style{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:15px}.meal-cuisine.recipe-cuisine-style,.meal-servings.recipe-servings-style,.meal-time.recipe-time-style{align-items:center;color:#4a5568!important;display:flex;font-size:13px;gap:5px}.meal-description.recipe-description-style{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#4a5568!important;display:-webkit-box;font-size:14px;line-height:1.5;margin-bottom:1rem;max-height:4.5em;overflow:hidden}.meal-tags.recipe-tags-style{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:15px}.meal-tag.recipe-tag-style{align-items:center;background-color:var(--bg-tertiary);border-radius:20px;color:var(--accent-color);display:inline-flex;font-size:12px;font-weight:500;padding:4px 10px;transition:all .3s ease}.meal-tag.recipe-tag-style:hover{background-color:var(--accent-color);color:#fff}.meal-notes.recipe-notes-style{color:#4a5568;font-size:12px;font-style:italic;margin-top:8px}.empty-meal.enhanced{align-items:center;background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:120px;padding:16px;transition:all .2s ease}.empty-meal.enhanced:hover{background:var(--hover-background);border-color:var(--accent-color);transform:translateY(-1px)}.add-meal-icon{align-items:center;background:var(--accent-color);border-radius:50%;color:#fff;display:flex;height:40px;justify-content:center;margin-bottom:8px;transition:all .2s ease;width:40px}.empty-meal.enhanced:hover .add-meal-icon{background:var(--accent-color-hover);transform:scale(1.1)}.add-meal-content{align-items:center;display:flex;flex-direction:column;gap:2px}.add-meal-text{color:var(--text-color);font-size:14px;font-weight:600;text-align:center}.add-meal-subtitle{color:var(--text-color-secondary);font-size:11px;text-align:center}.week-view-slot .assigned-meal.recipe-card-style{height:auto;min-height:200px}.week-view-slot .meal-image-container{height:180px}.week-view-slot .meal-content.recipe-content-style{padding:16px}.week-view-slot .meal-title.recipe-title-style{display:block;font-size:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.week-view-slot .meal-metadata.recipe-metadata-style{gap:10px}.week-view-slot .meal-description.recipe-description-style{-webkit-line-clamp:2}.month-view-slot .assigned-meal.recipe-card-style{height:auto;min-height:160px}.month-view-slot .meal-image-container{height:140px}.month-view-slot .meal-content.recipe-content-style{padding:12px}.month-view-slot .meal-title.recipe-title-style{display:block;font-size:21px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.month-view-slot .meal-metadata.recipe-metadata-style{gap:8px}.month-view-slot .meal-description.recipe-description-style{-webkit-line-clamp:1}.month-view-slot .meal-tags.recipe-tags-style{display:none}.dark-mode .assigned-meal.recipe-card-style{background-color:#262a3e!important;border-color:#424c6e;color:#fff}.dark-mode .assigned-meal.recipe-card-style:hover{background-color:#303448!important;border-color:#4c5678}.dark-mode .meal-title.recipe-title-style{color:#fff!important}.dark-mode .meal-cuisine.recipe-cuisine-style,.dark-mode .meal-servings.recipe-servings-style,.dark-mode .meal-time.recipe-time-style{color:#ffffffb3!important}.dark-mode .meal-description.recipe-description-style{color:#fffc!important}.dark-mode .meal-notes.recipe-notes-style{color:#ffffffb3!important}.dark-mode .meal-time-badge{background:#000c}.dark-mode .meal-tag.recipe-tag-style{background:var(--tag-background);color:var(--text-color)}.dark-mode .meal-notes.recipe-notes-style{background:var(--bg-secondary);color:var(--text-color-secondary)}.dark-mode .empty-meal.enhanced{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .empty-meal.enhanced:hover{background:var(--hover-background);border-color:var(--accent-color)}.dark-mode .add-meal-icon{background:var(--accent-color);color:#fff}.dark-mode .empty-meal.enhanced:hover .add-meal-icon{background:var(--accent-color-hover)}.dark-mode .add-meal-text{color:var(--text-color)}.dark-mode .add-meal-subtitle{color:var(--text-color-secondary)}@media (max-width:768px){.meal-overlay-badges{right:4px;top:4px}.meal-difficulty-badge,.meal-time-badge{font-size:10px;padding:3px 6px}.meal-content.recipe-content-style{gap:6px;padding:8px}.meal-metadata.recipe-metadata-style{gap:8px}.meal-tags.recipe-tags-style{gap:3px}.meal-tag.recipe-tag-style{font-size:9px;padding:1px 4px}.empty-meal.enhanced{min-height:100px;padding:12px}.add-meal-icon{height:32px;width:32px}.add-meal-text{font-size:12px}.add-meal-subtitle{font-size:10px}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.enhanced-meal-assignment-modal{background:#fff;background:var(--bg-primary,#fff);border-radius:16px;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;height:90vh;max-width:1200px;overflow:hidden;position:relative;width:95%;z-index:1001}.dark-mode .enhanced-meal-assignment-modal{background:#1a1a1a;background:var(--bg-primary,#1a1a1a);box-shadow:0 20px 40px #0009}.modal-header{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-bottom:1px solid #eaeaea;border-bottom:1px solid var(--border-color,#eaeaea);flex-shrink:0;padding:20px}.dark-mode .modal-header{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c);border-bottom-color:#444;border-bottom-color:var(--border-color,#444)}.header-content{align-items:center;display:flex;justify-content:space-between}.modal-header h3{color:#333;color:var(--text-primary,#333);font-size:1.5rem;line-height:1.2}.dark-mode .modal-header h3{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.close-modal-btn{border-radius:50%;color:#666;color:var(--text-secondary,#666);height:40px;padding:8px;transition:all .2s ease;width:40px}.dark-mode .close-modal-btn{color:silver;color:var(--text-secondary,silver)}.close-modal-btn:hover{background-color:#f0f0f0;background-color:var(--hover-bg,#f0f0f0);color:#333;color:var(--text-primary,#333)}.dark-mode .close-modal-btn:hover{background-color:#3a3a3a;background-color:var(--hover-bg,#3a3a3a);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.modal-body{background-color:#fff;background-color:var(--bg-primary,#fff);display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;padding:0}.dark-mode .modal-body{background-color:#1a1a1a;background-color:var(--bg-primary,#1a1a1a)}.search-filter-section{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-bottom:1px solid #eaeaea;border-bottom:1px solid var(--border-color,#eaeaea);flex-shrink:0;padding:20px}.dark-mode .search-filter-section{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c);border-bottom-color:#444;border-bottom-color:var(--border-color,#444)}.search-bar{align-items:center;display:flex;gap:12px;margin-bottom:16px;position:relative}.search-icon{color:#666;color:var(--text-secondary,#666);height:18px;left:12px;position:absolute;top:50%;transform:translateY(-50%);width:18px;z-index:1}.dark-mode .search-icon{color:silver;color:var(--text-secondary,silver)}.search-input{background:#fff;background:var(--bg-primary,#fff);border:2px solid #e0e0e0;border:2px solid var(--border-color,#e0e0e0);border-radius:12px;color:#333;color:var(--text-primary,#333);font-size:16px;padding:12px 16px 12px 40px;transition:all .2s ease}.dark-mode .search-input{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.search-input:focus{border-color:#007bff;border-color:var(--primary-color,#007bff);box-shadow:0 0 0 3px #007bff1a;outline:none}.dark-mode .search-input:focus{border-color:#0d6efd;border-color:var(--primary-color,#0d6efd);box-shadow:0 0 0 3px #0d6efd1a}.clear-search-btn{background:none;border:none;border-radius:50%;color:#666;color:var(--text-secondary,#666);cursor:pointer;font-size:16px;padding:8px;transition:all .2s ease}.dark-mode .clear-search-btn{color:silver;color:var(--text-secondary,silver)}.clear-search-btn:hover{background-color:#f0f0f0;background-color:var(--hover-bg,#f0f0f0);color:#333;color:var(--text-primary,#333)}.voice-search-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;color:var(--text-secondary,#666);cursor:pointer;display:flex;font-size:18px;height:40px;justify-content:center;padding:8px;transition:all .2s ease;width:40px}.dark-mode .voice-search-btn{color:silver;color:var(--text-secondary,silver)}.voice-search-btn:hover{background-color:#f0f0f0;background-color:var(--hover-bg,#f0f0f0);color:#007bff;color:var(--primary-color,#007bff)}.voice-search-btn.listening{animation:pulse 1.5s ease-in-out infinite;background-color:#007bff;background-color:var(--primary-color,#007bff);color:#fff}.filter-pills{display:flex;flex-direction:column;gap:12px}.filter-group{align-items:center;display:flex;gap:12px}.filter-label{color:#333;color:var(--text-primary,#333);font-size:14px;font-weight:600;min-width:80px}.dark-mode .filter-label{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.filter-options{display:flex;flex-wrap:wrap;gap:8px;overflow-x:auto;padding-bottom:4px}.filter-pill{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:20px;color:#333;color:var(--text-primary,#333);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.dark-mode .filter-pill{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.filter-pill:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);border-color:#007bff;border-color:var(--primary-color,#007bff)}.dark-mode .filter-pill:hover{background:#4a4a4a;background:var(--hover-bg,#4a4a4a);border-color:#0d6efd;border-color:var(--primary-color,#0d6efd)}.filter-pill.active{background:#007bff;background:var(--primary-color,#007bff);border-color:#007bff;border-color:var(--primary-color,#007bff);color:#fff}.dark-mode .filter-pill.active{background:#0d6efd;background:var(--primary-color,#0d6efd);border-color:#0d6efd;border-color:var(--primary-color,#0d6efd)}.clear-filters-btn{background:#fff;background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e0e0e0);border-radius:20px;color:#666;color:var(--text-secondary,#666);font-size:14px;margin-left:auto;padding:8px 16px;transition:all .2s ease}.dark-mode .clear-filters-btn{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444);color:silver;color:var(--text-secondary,silver)}.clear-filters-btn:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);color:#333;color:var(--text-primary,#333)}.recipe-grid{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));overflow-y:auto;padding:20px}.enhanced-meal-assignment-modal .recipe-card{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;transition:all .3s ease}.dark-mode .enhanced-meal-assignment-modal .recipe-card{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c);box-shadow:0 2px 8px #0000004d}.enhanced-meal-assignment-modal .recipe-card:hover{box-shadow:0 8px 24px #00000026;transform:translateY(-4px)}.dark-mode .enhanced-meal-assignment-modal .recipe-card:hover{box-shadow:0 8px 24px #0006}.enhanced-meal-assignment-modal .recipe-card.selected{border-color:#007bff;border-color:var(--primary-color,#007bff);box-shadow:0 0 0 3px #007bff1a}.dark-mode .enhanced-meal-assignment-modal .recipe-card.selected{border-color:#0d6efd;border-color:var(--primary-color,#0d6efd);box-shadow:0 0 0 3px #0d6efd1a}.enhanced-meal-assignment-modal .recipe-image{flex-shrink:0;height:200px;min-height:200px;overflow:hidden;position:relative}.enhanced-meal-assignment-modal .recipe-image img{display:block;height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.enhanced-meal-assignment-modal .recipe-card:hover .recipe-image img{transform:scale(1.05)}.placeholder-image{align-items:center;background:#f0f0f0;background:var(--bg-tertiary,#f0f0f0);display:flex;font-size:48px;height:100%;justify-content:center;width:100%}.dark-mode .placeholder-image{background:#3a3a3a;background:var(--bg-tertiary,#3a3a3a)}.image-overlay{background:linear-gradient(#0000,#000000b3);bottom:0;height:60px;left:0;position:absolute;right:0}.quick-view-btn{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;left:12px;opacity:0;position:absolute;top:12px;transition:all .2s ease;width:32px}.recipe-card:hover .quick-view-btn{opacity:1}.quick-view-btn:hover{background:#000000e6;transform:scale(1.1)}.favorite-btn{align-items:center;background:#000000b3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;opacity:0;position:absolute;right:12px;top:12px;transition:all .2s ease;width:32px}.recipe-card:hover .favorite-btn{opacity:1}.favorite-btn:hover{background:#000000e6;transform:scale(1.1)}.favorite-btn.favorited{color:#ff6b6b;opacity:1}.enhanced-meal-assignment-modal .recipe-content{display:flex;flex:1 1;flex-direction:column;padding:16px}.recipe-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;color:var(--text-primary,#333);display:-webkit-box;font-size:18px;line-height:1.3;overflow:hidden}.dark-mode .recipe-title{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.recipe-meta{color:#666;color:var(--text-secondary,#666);font-size:14px;gap:12px}.dark-mode .recipe-meta{color:silver;color:var(--text-secondary,silver)}.recipe-tags{display:flex;flex-wrap:wrap;gap:4px}.dietary-tag{border-radius:12px;padding:2px 8px}.selection-indicator{align-items:center;background:#007bff;background:var(--primary-color,#007bff);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;position:absolute;right:12px;top:12px;width:24px;z-index:2}.loading-skeleton{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:20px}.skeleton-card{animation:pulse 1.5s ease-in-out infinite;background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-radius:12px;overflow:hidden}.dark-mode .skeleton-card{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c)}.skeleton-image{background:#e0e0e0;background:var(--skeleton-color,#e0e0e0);height:200px}.dark-mode .skeleton-image{background:#444;background:var(--skeleton-color,#444)}.skeleton-content{padding:16px}.skeleton-title{background:#e0e0e0;background:var(--skeleton-color,#e0e0e0);border-radius:4px;height:20px;margin-bottom:8px}.dark-mode .skeleton-title{background:#444;background:var(--skeleton-color,#444)}.skeleton-meta{background:#e0e0e0;background:var(--skeleton-color,#e0e0e0);border-radius:4px;height:16px;width:60%}.dark-mode .skeleton-meta{background:#444;background:var(--skeleton-color,#444)}.end-message{color:#666;color:var(--text-secondary,#666);grid-column:1/-1;padding:40px 20px;text-align:center}.dark-mode .end-message{color:silver;color:var(--text-secondary,silver)}.end-message p{font-size:16px;margin:8px 0}.selected-recipe-section{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-top:1px solid #eaeaea;border-top:1px solid var(--border-color,#eaeaea);flex-shrink:0;padding:20px}.dark-mode .selected-recipe-section{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c);border-top-color:#444;border-top-color:var(--border-color,#444)}.selected-recipe-header{display:flex;gap:16px;margin-bottom:20px}.selected-recipe-image{border-radius:8px;flex-shrink:0;height:80px;overflow:hidden;width:80px}.selected-recipe-image img{height:100%;object-fit:cover;width:100%}.selected-recipe-info h3{color:#333;color:var(--text-primary,#333);font-size:20px;font-weight:600;margin:0 0 8px}.dark-mode .selected-recipe-info h3{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.selected-recipe-meta{color:#666;color:var(--text-secondary,#666);display:flex;font-size:14px;gap:12px}.dark-mode .selected-recipe-meta{color:silver;color:var(--text-secondary,silver)}.selected-recipe-controls{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.notes-controls,.serving-controls{display:flex;flex-direction:column;gap:8px}.notes-controls label,.serving-controls label{align-items:center;color:#333;color:var(--text-primary,#333);display:flex;font-size:14px;font-weight:600;gap:8px}.dark-mode .notes-controls label,.dark-mode .serving-controls label{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.serving-stepper{align-items:center;background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:8px;display:flex;gap:12px;padding:8px 12px}.dark-mode .serving-stepper{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444)}.serving-stepper button{align-items:center;background:none;border:none;border-radius:4px;color:#333;color:var(--text-primary,#333);cursor:pointer;display:flex;font-size:18px;font-weight:700;height:32px;justify-content:center;transition:all .2s ease;width:32px}.dark-mode .serving-stepper button{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.serving-stepper button:hover:not(:disabled){background:#f0f0f0;background:var(--hover-bg,#f0f0f0)}.dark-mode .serving-stepper button:hover:not(:disabled){background:#4a4a4a;background:var(--hover-bg,#4a4a4a)}.serving-stepper button:disabled{color:#ccc;color:var(--text-secondary,#ccc);cursor:not-allowed}.serving-stepper span{color:#333;color:var(--text-primary,#333);font-weight:600;min-width:20px;text-align:center}.dark-mode .serving-stepper span{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.notes-controls textarea{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:8px;color:#333;color:var(--text-primary,#333);font-family:inherit;font-size:14px;min-height:80px;padding:12px;resize:vertical}.dark-mode .notes-controls textarea{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.notes-controls textarea:focus{border-color:#007bff;border-color:var(--primary-color,#007bff);box-shadow:0 0 0 2px #007bff1a;outline:none}.dark-mode .notes-controls textarea:focus{border-color:#0d6efd;border-color:var(--primary-color,#0d6efd);box-shadow:0 0 0 2px #0d6efd1a}.nutrition-preview{border-top:1px solid #eaeaea;border-top:1px solid var(--border-color,#eaeaea);padding-top:20px}.dark-mode .nutrition-preview{border-top-color:#444;border-top-color:var(--border-color,#444)}.nutrition-preview h4{color:#333;color:var(--text-primary,#333);font-size:16px;font-weight:600;margin:0 0 12px}.dark-mode .nutrition-preview h4{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.nutrition-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.nutrition-item{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:6px;display:flex;font-size:14px;justify-content:space-between;padding:8px 12px}.dark-mode .nutrition-item{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444)}.nutrition-item span:first-child{color:#666;color:var(--text-secondary,#666)}.dark-mode .nutrition-item span:first-child{color:silver;color:var(--text-secondary,silver)}.nutrition-item span:last-child{color:#333;color:var(--text-primary,#333);font-weight:600}.dark-mode .nutrition-item span:last-child{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.modal-footer{background:#f8f9fa;background:var(--bg-secondary,#f8f9fa);border-top:1px solid #eaeaea;border-top:1px solid var(--border-color,#eaeaea);display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;padding:20px}.dark-mode .modal-footer{background:#2c2c2c;background:var(--bg-secondary,#2c2c2c);border-top-color:#444;border-top-color:var(--border-color,#444)}.cancel-btn{background:#fff;background:var(--bg-primary,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);color:#333;color:var(--text-primary,#333);font-size:16px;font-weight:500;transition:all .2s ease}.dark-mode .cancel-btn{background:#3c3c3c;background:var(--bg-primary,#3c3c3c);border-color:#444;border-color:var(--border-color,#444);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.cancel-btn:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);border-color:#999;border-color:var(--text-secondary,#999)}.dark-mode .cancel-btn:hover{background:#4a4a4a;background:var(--hover-bg,#4a4a4a);border-color:#888;border-color:var(--text-secondary,#888)}.assign-meal-btn{background:#007bff;background:var(--primary-color,#007bff);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.dark-mode .assign-meal-btn{background:#0d6efd;background:var(--primary-color,#0d6efd)}.assign-meal-btn:hover:not(:disabled){background:#0056b3;background:var(--primary-hover,#0056b3);box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.dark-mode .assign-meal-btn:hover:not(:disabled){background:#0b5ed7;background:var(--primary-hover,#0b5ed7);box-shadow:0 4px 12px #0d6efd4d}.assign-meal-btn:disabled{background:#ccc;background:var(--disabled-bg,#ccc);box-shadow:none;color:#666;color:var(--disabled-text,#666);cursor:not-allowed;transform:none}.dark-mode .assign-meal-btn:disabled{background:#444;background:var(--disabled-bg,#444);color:#888;color:var(--disabled-text,#888)}.quick-view-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.quick-view-modal{background:#fff;background:var(--bg-primary,#fff);border-radius:16px;box-shadow:0 20px 40px #0000004d;max-height:80vh;max-width:500px;overflow:hidden;position:relative;width:90%}.dark-mode .quick-view-modal{background:#1a1a1a;background:var(--bg-primary,#1a1a1a);box-shadow:0 20px 40px #0009}.recipe-preview{padding:20px}.quick-view-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.quick-view-header h3{color:#333;color:var(--text-primary,#333);font-size:20px;font-weight:600;line-height:1.3;margin:0}.dark-mode .quick-view-header h3{color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.close-quick-view{align-items:center;background:none;border:none;border-radius:50%;color:#666;color:var(--text-secondary,#666);cursor:pointer;display:flex;height:32px;justify-content:center;padding:8px;transition:all .2s ease;width:32px}.dark-mode .close-quick-view{color:silver;color:var(--text-secondary,silver)}.close-quick-view:hover{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);color:#333;color:var(--text-primary,#333)}.dark-mode .close-quick-view:hover{background:#3a3a3a;background:var(--hover-bg,#3a3a3a);color:#f0f0f0;color:var(--text-primary,#f0f0f0)}.quick-view-image{border-radius:8px;height:200px;margin-bottom:16px;overflow:hidden;width:100%}.quick-view-image img{height:100%;object-fit:cover;width:100%}.quick-view-description{color:#666;color:var(--text-secondary,#666);font-size:14px;line-height:1.5;margin:0 0 16px}.dark-mode .quick-view-description{color:silver;color:var(--text-secondary,silver)}.recipe-details{grid-gap:8px;color:#666;color:var(--text-secondary,#666);display:grid;font-size:14px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:16px}.dark-mode .recipe-details{color:silver;color:var(--text-secondary,silver)}.dietary-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.dietary-tag{background:#28a745;background:var(--accent-color,#28a745);border-radius:16px;color:#fff;font-size:12px;padding:4px 12px}.quick-view-actions{display:flex;gap:12px}.select-recipe-btn{background:#007bff;background:var(--primary-color,#007bff);border:none;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.dark-mode .select-recipe-btn{background:#0d6efd;background:var(--primary-color,#0d6efd)}.select-recipe-btn:hover{background:#0056b3;background:var(--primary-hover,#0056b3);box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.dark-mode .select-recipe-btn:hover{background:#0b5ed7;background:var(--primary-hover,#0b5ed7);box-shadow:0 4px 12px #0d6efd4d}.search-error{align-items:center;background:#f8d7da;background:var(--error-bg,#f8d7da);border:1px solid #f5c6cb;border:1px solid var(--error-border,#f5c6cb);border-radius:8px;color:#721c24;color:var(--error-text,#721c24);display:flex;font-size:14px;gap:8px;margin:0 20px 20px;padding:12px 20px}.dark-mode .search-error{background:#3d1f23;background:var(--error-bg,#3d1f23);border-color:#721c24;border-color:var(--error-border,#721c24);color:#f8d7da;color:var(--error-text,#f8d7da)}.search-error svg{flex-shrink:0}.loading-recipes{align-items:center;color:#666;color:var(--text-secondary,#666);display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.dark-mode .loading-recipes{color:silver;color:var(--text-secondary,silver)}.loading-spinner{border:4px solid #e0e0e0;border-top:4px solid #007bff;border:4px solid var(--border-color,#e0e0e0);border-top-color:var(--primary-color,#007bff);height:40px;margin-bottom:16px;width:40px}.dark-mode .loading-spinner{border-color:#444;border-color:var(--border-color,#444);border-top-color:#0d6efd;border-top-color:var(--primary-color,#0d6efd)}@media (max-width:768px){.enhanced-meal-assignment-modal{border-radius:12px;height:95vh;width:98%}.modal-header{padding:16px}.modal-header h3{font-size:1.3rem}.search-filter-section{padding:16px}.recipe-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding:16px}.filter-group{align-items:flex-start;flex-direction:column;gap:8px}.filter-options{width:100%}.selected-recipe-controls{gap:16px;grid-template-columns:1fr}.quick-view-modal{max-height:90vh;width:95%}.quick-view-actions{flex-direction:column}}@media (max-width:480px){.enhanced-meal-assignment-modal{border-radius:0;height:100vh;width:100%}.recipe-grid{gap:12px;grid-template-columns:1fr;padding:12px}.recipe-card{margin:0 4px}.modal-header,.search-filter-section{padding:12px}.modal-footer,.selected-recipe-section{padding:16px}.quick-view-modal{border-radius:0;height:100vh;max-height:none;width:100%}.recipe-preview{padding:16px}}.meal-search-panel{background-color:#fff;border-left:1px solid #e0e0e0;bottom:0;box-shadow:-2px 0 10px #0000001a;display:flex;flex-direction:column;overflow:hidden;position:fixed;right:0;top:64px;transform:translateX(100%);transition:transform .3s ease;width:320px;z-index:1000}.meal-search-panel.open{transform:translateX(0)}.search-panel-header{border-bottom:1px solid #e0e0e0;padding:16px}.search-panel-header h3{color:#333;font-size:18px;margin:0}.close-panel-btn{background:none;border:none;border-radius:50%;cursor:pointer;padding:5px}.close-panel-btn:hover{background-color:#f5f5f5}.search-input-container{align-items:center;display:flex;gap:8px;padding:16px}.search-input{border:1px solid #e0e0e0;border-radius:4px;flex:1 1;font-size:14px;padding:10px 12px}.filter-toggle-btn{background:#f5f5f5;border:none;border-radius:4px;cursor:pointer;padding:8px}.filter-toggle-btn:hover{background:#e0e0e0}.search-filters{background-color:#f9f9f9;border-bottom:1px solid #e0e0e0;border-top:1px solid #e0e0e0;padding:16px}.filter-section{margin-bottom:12px}.filter-section label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}.filter-section input,.filter-section select{border:1px solid #e0e0e0;border-radius:4px;margin-bottom:8px;padding:8px;width:100%}.filter-section select[multiple]{height:100px}.clear-filters-btn{background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;padding:8px;transition:background-color .2s;width:100%}.clear-filters-btn:hover{background-color:#e0e0e0}.recent-searches{border-bottom:1px solid #e0e0e0;padding:16px}.recent-searches h4{color:#555;font-size:14px;margin-bottom:10px;margin-top:0}.recent-search-tags{display:flex;flex-wrap:wrap;gap:8px}.recent-search-tag{background-color:#f0f0f0;border-radius:4px;cursor:pointer;font-size:12px;padding:4px 8px;transition:background-color .2s}.recent-search-tag:hover{background-color:#e0e0e0}.search-results{height:100%;min-height:300px;overflow-y:auto;padding-right:10px;width:100%}.search-results h4{color:#333;font-size:16px;margin-bottom:16px;margin-top:0}.recipe-cards{gap:16px}.recipe-card,.recipe-cards{display:flex;flex-direction:column}.recipe-card{background:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;cursor:grab;margin-bottom:16px;overflow:hidden;position:relative;transition:transform .2s,box-shadow .2s}.recipe-card:focus,.recipe-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.recipe-card.dragging{opacity:.7}.recipe-card.keyboard-dragging{box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.3);outline:3px solid var(--primary-color)}.recipe-image-container{background-color:#f0f0f0;flex-shrink:0;height:140px;min-height:140px;overflow:hidden;position:relative;width:100%}.meal-search-panel .recipe-image{height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease;width:100%}.meal-search-panel .recipe-image.loaded{opacity:1}.image-placeholder{align-items:center;background-color:#f0f0f0;display:flex;height:100%;justify-content:center;width:100%}.image-loading-spinner{animation:spin 1s linear infinite;border:3px solid #0000001a;border-radius:50%;border-top:3px solid var(--primary-color);height:30px;left:50%;margin:-15px 0 0 -15px;position:absolute;top:50%;width:30px}.recipe-details{flex:1 1;padding:12px}.recipe-title{color:var(--text-color);font-size:16px;font-weight:600;margin:0 0 8px;word-break:break-word}.recipe-meta{font-size:12px;gap:8px;margin-bottom:8px}.recipe-cuisine,.recipe-prep-time{background-color:rgba(var(--primary-color-rgb),.1);border-radius:4px;color:var(--primary-color);font-weight:500;padding:3px 6px}.recipe-dietary-attributes{display:flex;flex-wrap:wrap;gap:4px}.dietary-tag{background-color:rgba(var(--accent-color-rgb),.1);border-radius:4px;color:var(--accent-color);font-size:11px;font-weight:500;padding:2px 6px}.drag-instructions{background-color:#000000b3;color:#fff;font-size:14px;left:0;opacity:0;padding:8px;pointer-events:none;position:absolute;right:0;text-align:center;top:50%;transform:translateY(-50%);transition:opacity .2s}.recipe-card.keyboard-dragging .drag-instructions,.recipe-card:focus .drag-instructions{opacity:1}.drag-image{box-shadow:0 5px 15px #0000004d;height:auto;opacity:.8;position:absolute;width:280px}.recipe-card{will-change:transform}.meal-search-panel .recipe-image{will-change:opacity}.search-loading{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:32px 0}.search-loading:before{animation:spin 1s linear infinite;border:3px solid rgba(var(--primary-color-rgb),.2);border-radius:50%;border-top-color:var(--primary-color);content:"";display:block;height:32px;margin-bottom:16px;width:32px}.no-results{color:var(--text-secondary);font-size:15px;line-height:1.5;padding:32px 16px;text-align:center}@media (forced-colors:active){.recipe-card{border:1px solid CanvasText}.recipe-card.keyboard-dragging,.recipe-card:focus{outline:2px solid Highlight}.image-loading-spinner{border-color:Highlight GrayText GrayText}.dietary-tag,.recipe-cuisine,.recipe-prep-time{border:1px solid CanvasText}}@media (prefers-color-scheme:dark){.meal-search-panel{background-color:#1f1f1f;border-left-color:#333;box-shadow:-2px 0 10px #0000004d}.search-panel-header{border-bottom-color:#333}.search-panel-header h3{color:#f0f0f0}.close-panel-btn:hover{background-color:#333}.search-input{background-color:#2a2a2a;border-color:#444;color:#f0f0f0}.filter-toggle-btn{background:#333}.filter-toggle-btn:hover{background:#444}.search-filters{background-color:#1a1a1a;border-color:#333}.filter-section label{color:#ddd}.filter-section input,.filter-section select{background-color:#2a2a2a;border-color:#444;color:#f0f0f0}.clear-filters-btn{background-color:#333;border-color:#444;color:#f0f0f0}.clear-filters-btn:hover{background-color:#444}.recent-searches{border-bottom-color:#333}.recent-searches h4{color:#ccc}.recent-search-tag{background-color:#333;color:#ddd}.recent-search-tag:hover{background-color:#444}.search-results h4{color:#f0f0f0}.recipe-card{background-color:#252525;border-color:#333}.meal-search-panel .recipe-image{background-color:#333}.recipe-title{color:#f0f0f0}.recipe-cuisine,.recipe-prep-time{color:#bbb}.diet-tag{background-color:#1a3a1a;color:#8bff8b}.drag-handle{background-color:#333;color:#aaa}.loading-spinner,.no-results{color:#bbb}.search-panel-footer{background-color:#1a1a1a;border-top-color:#333}.drag-drop-help h5{color:#f0f0f0}.drag-drop-help p{color:#bbb}}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.close-btn:focus,.filter-tag input:focus+span,.filter-toggle:focus,.recent-tag:focus,.recipe-card:focus,.search-input:focus{box-shadow:0 0 0 4px rgba(var(--primary-color-rgb),.2);outline:2px solid var(--primary-color);outline-offset:2px}.recipe-card.keyboard-selected{box-shadow:0 0 0 2px var(--primary-color),0 8px 16px #0000001a;transform:scale(1.02)}.keyboard-drag-mode .day-cell:focus{box-shadow:0 0 0 3px var(--primary-color),0 8px 16px #0000001a}.drag-instructions{background-color:var(--bg-color-primary);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;padding:16px}.drag-instructions p{color:var(--text-color-secondary);font-size:.9rem;margin:8px 0}.drag-instructions p:first-child{color:var(--text-color-primary);font-weight:500}@media (prefers-color-scheme:dark){.drag-instructions{background-color:var(--bg-color-primary-dark)}.drag-image,.drag-instructions{border-color:var(--border-color-dark)}.drag-image{background-color:var(--bg-color-secondary-dark);color:var(--text-color-primary-dark)}}.meal-search-panel.floating{box-shadow:0 8px 16px #0003;height:70vh;max-height:90vh;max-width:600px;min-height:400px;min-width:300px;overflow:auto;position:absolute;resize:both;right:20px;top:80px;transform:translate(0);transition:none;width:350px;z-index:1000}.search-panel-header{align-items:center;background-color:var(--bg-color-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.search-panel-header h2{color:var(--text-color);font-size:18px;margin:0}.panel-controls{display:flex;gap:8px}.close-panel-btn,.float-panel-btn,.minimize-panel-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-color);cursor:pointer;display:flex;font-size:18px;height:28px;justify-content:center;padding:0;width:28px}.close-panel-btn:hover,.float-panel-btn:hover,.minimize-panel-btn:hover{background-color:#0000000d}.close-panel-btn:focus,.float-panel-btn:focus,.minimize-panel-btn:focus{outline:2px solid var(--primary-color);outline-offset:2px}.floating .search-panel-header{cursor:move;cursor:grab}.floating .search-panel-header:active{cursor:grabbing}@media (max-width:768px){.meal-search-panel{height:100vh;right:-100%;top:0;width:100%}.meal-search-panel.open{right:0}.meal-search-panel.floating{height:100vh;overflow-y:auto;position:fixed;resize:none;right:0;top:0;width:100%}.recent-recipes,.search-results{height:calc(100vh - 220px)}}@media (min-width:769px) and (max-width:1024px){.meal-search-panel{width:350px}.meal-search-panel.floating{height:60vh}}.meal-search-panel.floating::-webkit-resizer{background-color:var(--primary-color);border:2px solid #fff;border-radius:4px}.recent-recipes{height:300px;overflow-y:auto;width:100%}.ReactVirtualized__List{outline:none}.ReactVirtualized__Grid__cell,.ReactVirtualized__Grid__innerScrollContainer{width:100%!important}.search-content{display:flex;flex:1 1;flex-direction:column;margin:0;overflow:hidden;padding:0}.drag-handle{align-items:center;background-color:#ffffffe6;border-radius:4px;box-shadow:0 1px 3px #0000001a;color:#333;cursor:grab;display:flex;height:28px;justify-content:center;opacity:.7;position:absolute;right:8px;top:8px;transition:opacity .2s,background-color .2s;width:28px;z-index:10}.recipe-card:focus .drag-handle,.recipe-card:hover .drag-handle{opacity:1}.drag-handle:hover{background-color:#fff}.recipe-card.drop-success{animation:pulse .6s ease-out}.recipe-card.dragging{box-shadow:0 0 10px #0003;opacity:.6;transform:scale(.98)}.drag-image{border-radius:8px;box-shadow:0 4px 16px #0000004d;pointer-events:none;z-index:9999}@media (prefers-color-scheme:dark){.drag-handle{background-color:#323232e6;color:#f0f0f0}.drag-handle:hover{background-color:#3c3c3c}}.shopping-list-selection-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.shopping-list-selection-modal{animation:modalSlideIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#262a3ef2;border:1px solid #007aff33;border-radius:16px;box-shadow:0 8px 32px #0000004d;max-height:80vh;max-width:500px;overflow:hidden;width:90%}.modal-header{align-items:center;background:linear-gradient(135deg,#262a3ee6,#1c2034e6);border-bottom:1px solid #007aff33;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h3{color:#ffffffe6;font-size:1.25rem;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:8px;color:#ffffffb3;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .3s ease}.close-btn:hover{background:#ffffff1a;color:#ffffffe6}.modal-content{padding:1.5rem}.selection-summary{background:#007aff1a;border:1px solid #007aff33;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.selection-summary p{color:#ffffffe6;font-size:1rem;margin:0}.selection-summary strong{color:#fff}.list-selection{margin-bottom:1.5rem}.list-selection label{color:#ffffffe6;display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.list-selection select{background:#262a3ecc;border:1px solid #007aff4d;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.list-selection select:focus{border-color:#007aff99;box-shadow:0 0 0 3px #007aff1a;outline:none}.list-selection select:disabled{cursor:not-allowed;opacity:.6}.clear-list-option{margin-bottom:1.5rem}.clear-list-checkbox{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .3s ease}.clear-list-checkbox:hover{background:#ffffff14;border-color:#ffffff26}.clear-list-checkbox input[type=checkbox]{accent-color:#007affcc;cursor:pointer;height:18px;width:18px}.clear-list-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.clear-list-checkbox span{color:#ffffffe6;font-size:.95rem;font-weight:500}.error-message{background:#ff3b301a;border:1px solid #ff3b304d;border-radius:8px;color:#ffffffe6;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.cancel-btn{color:#ffffffb3;font-size:1rem;padding:12px 24px}.cancel-btn:hover:not(:disabled){background:#ffffff26;color:#ffffffe6}.cancel-btn:disabled{cursor:not-allowed;opacity:.6}.add-btn{background:linear-gradient(135deg,#007affcc,#007aff99);border:1px solid #007aff4d;border-radius:8px;box-shadow:0 2px 8px #007aff26;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.add-btn:hover:not(:disabled){box-shadow:0 4px 12px #007aff40}.add-btn:disabled{box-shadow:0 2px 8px #007aff26;cursor:not-allowed;opacity:.6;transform:none}.advanced-add-item-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.advanced-add-item-modal{animation:modalSlideIn .3s ease;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 8px 32px #0003;max-height:90vh;max-width:600px;overflow:hidden;width:100%}.advanced-add-item-modal .modal-header{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);background:linear-gradient(135deg,var(--accent-color,#007bff),#0056b3);border-bottom:1px solid var(--border-color);color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.advanced-add-item-modal .modal-header h3{font-size:1.25rem;font-weight:600;margin:0}.advanced-add-item-modal .close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:4px;transition:all .3s ease;width:32px}.advanced-add-item-modal .close-btn:hover{background:#fff3;transform:scale(1.1)}.advanced-add-item-modal .modal-content{max-height:calc(90vh - 120px);overflow-y:auto;padding:2rem}.quick-select-section{margin-bottom:2rem}.section-label{color:var(--text-primary);display:block;font-size:1rem;font-weight:600;margin-bottom:1rem}.quick-select-grid{grid-gap:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));max-height:200px;overflow-y:auto;padding:8px}.quick-select-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;gap:4px;justify-content:center;min-height:60px;overflow:hidden;padding:8px 12px;text-align:center;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap}.quick-select-icon{font-size:1.5rem;line-height:1}.quick-select-text{font-size:.8rem;font-weight:500;line-height:1}.quick-select-btn:hover{background:var(--accent-color);border-color:var(--accent-color);color:#fff;transform:translateY(-1px)}.form-section{margin-bottom:2rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1/-1}.form-group label{color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{background:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:1rem;padding:12px;transition:all .3s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent-color);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545;border-color:var(--error-color,#dc3545);box-shadow:0 0 0 2px #dc354533}.form-group textarea{font-family:inherit;min-height:80px;resize:vertical}.error-message{align-items:center;color:#dc3545;color:var(--error-color,#dc3545);display:flex;font-size:.85rem;gap:4px;margin-top:.25rem}.submit-error{background:#dc35451a;border:1px solid #dc354533;border-radius:8px;margin-top:1rem;padding:12px}.modal-actions{border-top:1px solid var(--border-color);display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem}.add-btn,.cancel-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;min-width:100px;padding:12px 24px;transition:all .3s ease}.cancel-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.cancel-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.add-btn{background:var(--accent-color);color:#fff}.add-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 12px #007bff4d;transform:translateY(-1px)}.add-btn:disabled,.cancel-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.dark-mode .advanced-add-item-modal{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .quick-select-grid{background:var(--bg-tertiary);border-color:var(--border-color)}.dark-mode .quick-select-btn{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .quick-select-btn:hover{background:var(--accent-color);color:#fff}.dark-mode .form-group input,.dark-mode .form-group select,.dark-mode .form-group textarea{background:var(--input-background);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .cancel-btn{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-secondary)}.dark-mode .cancel-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}@media (max-width:768px){.advanced-add-item-modal{margin:1rem;max-height:95vh}.advanced-add-item-modal .modal-header{padding:1rem 1.5rem}.advanced-add-item-modal .modal-content{padding:1.5rem}.form-row{gap:1rem;grid-template-columns:1fr}.quick-select-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));max-height:200px}.quick-select-btn{min-height:50px;padding:6px 8px}.quick-select-icon{font-size:1.2rem}.quick-select-text{font-size:.7rem}.modal-actions{flex-direction:column;gap:.5rem}.add-btn,.cancel-btn{min-width:auto;width:100%}}@media (max-width:480px){.advanced-add-item-modal-overlay{padding:.5rem}.advanced-add-item-modal{margin:.5rem}.quick-select-grid{gap:6px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:180px}.quick-select-btn{min-height:45px;padding:6px 8px}.quick-select-icon{font-size:1rem}.quick-select-text{font-size:.65rem}}.shopping-list{background:linear-gradient(135deg,#f8f9fa,#e9ecef);min-height:100vh;padding:2rem;transition:all .3s ease}.shopping-list.dark-mode{background:linear-gradient(135deg,#262a3e,#1c2034)}.shopping-list-container{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid #007aff33;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:1400px;overflow:hidden}.dark-mode .shopping-list-container{background:#262a3ef2;border:1px solid #007aff33;box-shadow:0 8px 32px #0000004d}.shopping-list-header{align-items:center;background:linear-gradient(135deg,#ffffffe6,#f8f9fae6);border-bottom:1px solid #007aff33;display:flex;justify-content:space-between;padding:2rem}.dark-mode .shopping-list-header{background:linear-gradient(135deg,#262a3ee6,#1c2034e6);border-bottom:1px solid #007aff33}.shopping-list-header h1{color:#212529e6;font-size:2rem;font-weight:700;margin:0;text-shadow:none}.dark-mode .shopping-list-header h1{color:#ffffffe6}.header-actions{align-items:center;display:flex;gap:1rem}.add-staples-btn{background:linear-gradient(135deg,#ffc107,#ffca2c);background:linear-gradient(135deg,var(--warning-color,#ffc107),#ffca2c);border:none;border-radius:12px;box-shadow:0 4px 12px #ffc1074d;color:var(--text-primary);cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.add-staples-btn:hover:not(:disabled){box-shadow:0 8px 20px #ffc10766;transform:translateY(-2px)}.add-staples-btn:disabled{background:var(--text-secondary);box-shadow:none;cursor:not-allowed;transform:none}.create-list-btn{background:linear-gradient(135deg,#007affcc,#007aff99);border:1px solid #007aff4d;border-radius:12px;box-shadow:0 4px 12px #007aff26;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.create-list-btn:hover{box-shadow:0 6px 20px #007aff40;transform:translateY(-1px)}.create-list-btn:disabled{background:var(--text-secondary);box-shadow:none;cursor:not-allowed;transform:none}.new-list-form{align-items:center;display:flex;gap:12px}.new-list-form input{background:#262a3ecc;border:1px solid #007aff4d;border-radius:8px;color:#ffffffe6;font-size:1rem;padding:12px 16px;transition:all .3s ease}.dark-mode .new-list-form input{background:#262a3ecc;border-color:#007aff4d;color:#ffffffe6}.new-list-form input:focus{border-color:#007aff99;box-shadow:0 0 0 3px #007aff1a;outline:none}.new-list-form input::placeholder{color:var(--text-secondary)}.cancel-btn{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid #fff3;border-radius:8px;box-shadow:0 2px 8px #0003;color:#fffc;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.cancel-btn:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-1px)}.list-selector-panel{background:#fffc;border-right:1px solid #007aff33;display:flex;flex-direction:column;overflow:hidden;padding:1.5rem}.dark-mode .list-selector-panel{background:#262a3ecc;border-right:1px solid #007aff33}.list-selector h3{color:#212529e6;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.edit-staples-btn{margin-bottom:1.25rem}.dark-mode .list-selector h3{color:#ffffffe6}.list-selector h3:before{content:"📋";font-size:1.1rem}.lists-container{display:flex;flex:1 1;flex-direction:column;gap:.5rem;justify-content:center;min-height:0;overflow-y:auto;padding-right:.5rem}.lists-container::-webkit-scrollbar{width:6px}.lists-container::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.lists-container::-webkit-scrollbar-thumb{background:#007aff4d;border-radius:3px}.lists-container::-webkit-scrollbar-thumb:hover{background:#007aff80}.list-button-container{position:relative;width:100%}.list-button{background:linear-gradient(135deg,#0000000d,#00000005);border:1px solid #0000001a;border-radius:12px;color:#212529cc;font-size:.9rem;gap:.75rem;padding:.75rem 3.5rem .75rem 1rem;text-align:left;width:100%}.list-button,.list-clear-btn{align-items:center;cursor:pointer;display:flex;transition:all .3s ease}.list-clear-btn{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid #fff3;border-radius:50%;color:#fff9;font-size:1rem;font-weight:700;height:24px;justify-content:center;position:absolute;right:2rem;top:.5rem;width:24px;z-index:1}.list-clear-btn:hover{background:linear-gradient(135deg,#ff950026,#ff95001a);border-color:#ff95004d;color:#ffffffe6;transform:scale(1.1)}.list-delete-btn{align-items:center;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid #fff3;border-radius:50%;color:#fff9;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:24px;justify-content:center;position:absolute;right:.5rem;top:.5rem;transition:all .3s ease;width:24px;z-index:1}.list-delete-btn:hover{background:linear-gradient(135deg,#ff3b3026,#ff3b301a);border-color:#ff3b304d;color:#ffffffe6;transform:scale(1.1)}.list-button:hover{background:linear-gradient(135deg,#007aff26,#007aff1a);border-color:#007aff4d;box-shadow:0 4px 12px #007aff33;color:#fffffff2;transform:translateY(-1px)}.list-button.active{background:linear-gradient(135deg,#007aff40,#007aff26);border-color:#007aff80;box-shadow:0 4px 16px #007aff4d;color:#fff}.list-number{align-items:center;background:#007aff33;border-radius:50%;color:#ffffffe6;display:flex;flex-shrink:0;font-size:.8rem;font-weight:600;height:24px;justify-content:center;width:24px}.list-button.active .list-number{background:#007aff66;color:#fff}.list-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.list-name{color:#212529e6;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark-mode .list-name{color:#ffffffe6}.list-count{color:#21252999;font-size:.8rem;font-weight:400}.list-button.active .list-count{color:#212529cc}.dark-mode .list-count{color:#fff9}.dark-mode .list-button.active .list-count{color:#fffc}.list-selector select{background:#262a3ecc;border:1px solid #007aff4d;border-radius:12px;color:#ffffffe6;cursor:pointer;font-size:1rem;margin-bottom:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.dark-mode .list-selector select{background:#262a3ecc;border-color:#007aff4d;color:#ffffffe6}.list-selector select:focus{border-color:#007aff99;box-shadow:0 0 0 3px #007aff1a;outline:none}.edit-staples-btn{border:1px solid #007aff4d;border-radius:12px;box-shadow:0 4px 12px #007aff26;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 16px;transition:all .3s ease;width:100%}.dark-mode .edit-staples-btn,.edit-staples-btn{background:linear-gradient(135deg,#007aff26,#007aff1a);color:#ffffffe6}.dark-mode .edit-staples-btn{border-color:#007aff4d}.edit-staples-btn:hover{box-shadow:0 6px 20px #007aff40;transform:translateY(-1px)}.add-new-list-btn{align-items:center;background:linear-gradient(135deg,#007affe6,#007affcc);border:2px solid #fff3;border-radius:50%;box-shadow:0 2px 8px #007aff4d;color:#fffffff2;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:40px;justify-content:center;margin:1rem auto 0;transition:all .3s ease;width:40px}.add-new-list-btn:hover{background:linear-gradient(135deg,#007aff,#007affe6);border-color:#fff6;box-shadow:0 4px 12px #007aff66;transform:translateY(-1px) scale(1.05)}.dark-mode .add-new-list-btn{background:linear-gradient(135deg,#007affcc,#007affb3);border-color:#ffffff26;box-shadow:0 2px 8px #007aff33}.dark-mode .add-new-list-btn:hover{background:linear-gradient(135deg,#007affe6,#007affcc);border-color:#ffffff4d;box-shadow:0 4px 12px #007aff4d}.add-new-list-btn.active{background:linear-gradient(135deg,#dc3545cc,#dc354599);border-color:#fff6;box-shadow:0 4px 12px #dc354566;transform:translateY(-1px) scale(1.05)}.dark-mode .add-new-list-btn.active{background:linear-gradient(135deg,#dc3545cc,#dc3545b3);border-color:#ffffff4d;box-shadow:0 4px 12px #dc35454d}.new-list-dialog-overlay{background:#0000;bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:1000}.new-list-dialog-overlay.active{pointer-events:auto}.new-list-dialog{animation:dialogEmerge .3s cubic-bezier(.34,1.56,.64,1);background:linear-gradient(135deg,#fffffff2,#f8f9faf2);border:1px solid #007aff33;border-radius:16px;box-shadow:0 8px 32px #0003;max-width:90vw;position:absolute;transform-origin:top center;width:320px}.new-list-dialog.closing{animation:dialogClose .3s cubic-bezier(.34,1.56,.64,1)}@keyframes dialogEmerge{0%{opacity:0;transform:scale(.3) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes dialogClose{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.3) translateY(-20px)}}.dark-mode .new-list-dialog{background:linear-gradient(135deg,#262a3ef2,#1c2034f2);border:1px solid #007aff4d;box-shadow:0 8px 32px #0006}.new-list-dialog-header{align-items:center;border-bottom:1px solid #007aff33;display:flex;justify-content:space-between;padding:1.5rem 1.5rem 1rem}.new-list-dialog-header h3{color:#212529e6;font-size:1.25rem;font-weight:600;margin:0}.dark-mode .new-list-dialog-header h3{color:#ffffffe6}.close-dialog-btn{align-items:center;background:none;border:none;border-radius:50%;color:#21252999;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:0;transition:all .3s ease;width:32px}.close-dialog-btn:hover{background:#0000001a;color:#212529cc}.dark-mode .close-dialog-btn{color:#fff9}.dark-mode .close-dialog-btn:hover{background:#ffffff1a;color:#fffc}.new-list-dialog-content{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#212529cc;display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.dark-mode .form-group label{color:#fffc}.form-group input{background:#ffffffe6;border:1px solid #007aff4d;border-radius:8px;box-sizing:border-box;color:#212529e6;font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus{border-color:#007aff99;box-shadow:0 0 0 3px #007aff1a;outline:none}.form-group input::placeholder{color:#21252980}.dark-mode .form-group input{background:#262a3ecc;border-color:#007aff4d;color:#ffffffe6}.dark-mode .form-group input:focus{border-color:#007aff99;box-shadow:0 0 0 3px #007aff1a}.dark-mode .form-group input::placeholder{color:#ffffff80}.new-list-dialog-actions{display:flex;gap:1rem;justify-content:flex-end}.create-btn{background:linear-gradient(135deg,#007affe6,#007affcc);border:none;border-radius:8px;box-shadow:0 2px 8px #007aff4d;color:#fffffff2;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .3s ease}.create-btn:hover:not(:disabled){background:linear-gradient(135deg,#007aff,#007affe6);box-shadow:0 4px 12px #007aff66;transform:translateY(-1px)}.create-btn:disabled{background:linear-gradient(135deg,#0000001a,#0000000d);box-shadow:none;color:#21252966;cursor:not-allowed;transform:none}.dark-mode .create-btn:disabled{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);color:#fff6}.current-list-panel{background:linear-gradient(135deg,#fffc,#f8f9facc);display:flex;flex-direction:column;padding:2rem}.dark-mode .current-list-panel{background:linear-gradient(135deg,#262a3ecc,#1c2034cc)}.list-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.dark-mode .list-header,.list-header{border-bottom:1px solid #007aff33}.list-header h2{align-items:center;color:#212529e6;display:flex;font-size:1.5rem;font-weight:700;gap:8px;margin:0}.dark-mode .list-header h2{color:#ffffffe6}.unit-system-indicator{background:#0000000d;border:1px solid #0000001a;border-radius:12px;color:#21252999;font-size:.8rem;font-weight:400;padding:2px 8px}.dark-mode .unit-system-indicator{background:#ffffff1a;border:1px solid #fff3;color:#fff9}.delete-list-btn{background:linear-gradient(135deg,#0000000d,#00000005);border:1px solid #0000001a;border-radius:8px;box-shadow:0 2px 6px #0000001a;color:#212529b3;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 16px;transition:all .3s ease}.dark-mode .delete-list-btn{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border-color:#fff3;box-shadow:0 2px 6px #0003;color:#ffffffb3}.delete-list-btn:hover{background:linear-gradient(135deg,#ff3b3026,#ff3b301a);border-color:#ff3b304d;box-shadow:0 4px 12px #0000004d;color:#ffffffe6;transform:translateY(-1px)}.items-list{display:flex;flex:1 1;flex-direction:column}.items-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.dark-mode .items-header,.items-header{border-bottom:1px solid #007aff33}.items-header h3{color:#212529e6;font-size:1.1rem;font-weight:600;margin:0}.dark-mode .items-header h3{color:#ffffffe6}.include-staples-checkbox{align-items:center;color:#212529b3;cursor:pointer;display:flex;font-size:.9rem;gap:8px;transition:color .3s ease}.dark-mode .include-staples-checkbox{color:#ffffffb3}.include-staples-checkbox:hover{color:#212529e6}.dark-mode .include-staples-checkbox:hover{color:#ffffffe6}.include-staples-checkbox input[type=checkbox]{accent-color:#007affcc;cursor:pointer;height:16px;width:16px}.include-staples-checkbox span{font-weight:500}.department-groups{display:flex;flex-direction:column;gap:1rem}.department-group{background:#ffffffe6;border:1px solid #007aff33;border-radius:12px;box-shadow:0 4px 12px #007aff1a;overflow:hidden}.dark-mode .department-group{background:#262a3ee6;border:1px solid #007aff33;box-shadow:0 4px 12px #007aff26}.department-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:1rem 1.5rem;transition:all .3s ease}.dark-mode .department-header,.department-header{background:linear-gradient(135deg,#007aff26,#007aff1a);border-bottom:1px solid #007aff33}.dark-mode .department-header:hover,.department-header:hover{background:linear-gradient(135deg,#007aff40,#007aff33)}.department-name{color:#212529e6;font-size:1rem;font-weight:600}.dark-mode .department-name{color:#ffffffe6}.department-count{background:#007aff1a;border:1px solid #007aff33;border-radius:12px;color:#212529e6;font-size:.8rem;font-weight:600;min-width:24px;padding:4px 8px;text-align:center}.dark-mode .department-count{background:#007aff33;border:1px solid #007aff4d;color:#ffffffe6}.collapse-icon{color:#212529b3;font-size:.8rem;transition:transform .3s ease}.dark-mode .collapse-icon{color:#ffffffb3}.collapse-icon.collapsed{transform:rotate(-90deg)}.department-items{padding:1rem 1.5rem}.item{align-items:center;background:#fffc;border-radius:8px;display:flex;gap:12px;margin-bottom:8px;padding:12px 16px;transition:all .3s ease}.dark-mode .item,.item{border:1px solid #007aff1a}.dark-mode .item{background:#262a3ecc}.item:hover{transform:translateX(2px)}.dark-mode .item:hover,.item:hover{background:#262a3e;border-color:#007aff4d;box-shadow:0 4px 12px #007aff26}.item.checked{opacity:.7}.dark-mode .item.checked,.item.checked{background:#007aff1a;border-color:#007aff33}.item input[type=checkbox]{accent-color:#007affcc;cursor:pointer;height:18px;width:18px}.item-icon{align-items:center;color:#ffffffe6;display:flex;font-size:1.2rem;justify-content:center;margin-left:8px;margin-right:8px;min-width:24px}.item-name{color:#212529e6;flex:1 1;font-weight:500;text-decoration:none;transition:all .3s ease}.dark-mode .item-icon,.dark-mode .item-name{color:#ffffffe6}.item.checked .item-name{color:#21252999;text-decoration:line-through}.dark-mode .item.checked .item-name{color:#fff9}.item-quantity{background:#007aff1a;border:1px solid #007aff26;border-radius:6px;color:#212529cc;font-size:.9rem;font-weight:500;min-width:60px;padding:4px 8px;text-align:center}.dark-mode .item-quantity{background:#007aff26;border:1px solid #007aff33;color:#fffc}.delete-item-btn{align-items:center;background:linear-gradient(135deg,#0000000d,#00000005);border:1px solid #0000001a;border-radius:50%;box-shadow:0 1px 3px #0000001a;color:#21252999;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:24px;justify-content:center;transition:all .3s ease;width:24px}.dark-mode .delete-item-btn{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border-color:#ffffff26;box-shadow:0 1px 3px #0003;color:#fff9}.delete-item-btn:hover{background:linear-gradient(135deg,#ff3b3026,#ff3b301a);border-color:#ff3b304d;box-shadow:0 2px 6px #0000004d;color:#ffffffe6;transform:scale(1.1)}.department-items .item:last-child{margin-bottom:0}.add-item-btn{align-items:center;border:1px solid #007aff4d;border-radius:50%;box-shadow:0 4px 12px #007aff26;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:32px;justify-content:center;margin:8px 12px 0;transition:all .3s ease;width:32px}.add-item-btn,.dark-mode .add-item-btn{background:linear-gradient(135deg,#007affcc,#007aff99);color:#fff}.dark-mode .add-item-btn{border-color:#007aff4d}.add-item-btn:hover{box-shadow:0 6px 20px #007aff40;transform:scale(1.1)}.add-item-btn.staples-advanced{box-shadow:0 4px 12px #ffc10726}.add-item-btn.staples-advanced,.dark-mode .add-item-btn.staples-advanced{background:linear-gradient(135deg,#ffc107cc,#ffc10799);border-color:#ffc1074d}.add-item-btn.staples-advanced:hover{box-shadow:0 6px 20px #ffc10740}.loading{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;font-size:1.1rem;gap:1rem;padding:4rem 2rem;text-align:center}.loading:before{animation:spin 1s linear infinite;content:"⏳";font-size:2rem}.error{align-items:center;background:linear-gradient(135deg,#dc35451a,#dc35450d);border:1px solid #dc3545;border:1px solid var(--danger-color,#dc3545);border-radius:12px;color:#dc3545;color:var(--danger-color,#dc3545);display:flex;flex-direction:column;gap:1rem;margin:2rem;padding:2rem;text-align:center}.error:before{content:"⚠️";font-size:2rem}.empty-state{color:#fff9;padding:3rem 2rem;text-align:center}.dark-mode .empty-state{color:#fff9}.empty-state h4{font-size:1.2rem;font-weight:600;margin:0 0 .5rem}.empty-state p{font-size:1rem;margin:0;opacity:.8}.dark-mode .shopping-list{background-color:var(--bg-primary);color:var(--text-primary)}.dark-mode .current-list-panel,.dark-mode .list-selector-panel{box-shadow:0 4px 6px #0000004d,0 1px 3px #0003}.dark-mode .current-list-panel,.dark-mode .department-group,.dark-mode .item,.dark-mode .list-selector-panel{background-color:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .item:hover{background-color:var(--hover-bg)}.dark-mode .item.checked{background:linear-gradient(135deg,#43da9c33,#43da9c1a);border-color:#43da9c4d}.dark-mode .form-row input,.dark-mode .form-row select,.dark-mode .new-list-form input{background-color:var(--input-bg);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .form-row input::placeholder,.dark-mode .new-list-form input::placeholder{color:var(--text-secondary)}.dark-mode .item-quantity{background:var(--bg-tertiary)}@media (max-width:1024px){.shopping-list-container{gap:1.5rem;grid-template-columns:1fr}.list-selector-panel{order:2;position:static}.current-list-panel{order:1}}@media (max-width:768px){.shopping-list{padding:1rem}.shopping-list-header{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.new-list-form{flex-direction:column;gap:12px}.new-list-form input{min-width:auto;width:100%}.form-row{gap:12px;grid-template-columns:1fr}.item{flex-wrap:wrap;gap:12px}.item-icon{font-size:1rem;margin-left:6px;margin-right:6px;min-width:20px}.item-name{flex:1 1 100%}.item-quantity{flex:1 1;min-width:auto;text-align:center}.department-header{padding:12px 16px}.department-name{font-size:1rem}.department-count{font-size:.8rem}.current-list-panel{padding:1.5rem}.add-item-form{padding:1rem}}.staples-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.staples-modal{animation:modalSlideIn .3s ease;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 8px 32px #0003;max-height:80vh;max-width:500px;overflow:hidden;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.staples-modal-header{align-items:center;background:linear-gradient(135deg,#ffc107,#ffca2c);background:linear-gradient(135deg,var(--warning-color,#ffc107),#ffca2c);border-bottom:1px solid var(--border-color);color:var(--text-primary);display:flex;justify-content:space-between;padding:1.5rem 2rem}.staples-modal-header h3{font-size:1.25rem;font-weight:600;margin:0}.close-modal-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:4px;transition:all .3s ease;width:32px}.close-modal-btn:hover{background:#0000001a;transform:scale(1.1)}.staples-modal-content{max-height:60vh;overflow-y:auto;padding:2rem}.staples-modal-content p{color:var(--text-secondary);font-size:1rem;line-height:1.5;margin:0 0 1.5rem}.staples-departments{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.staples-department-checkbox{align-items:center;background:#f8f9fa;background:var(--bg-tertiary,#f8f9fa);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:all .3s ease;-webkit-user-select:none;user-select:none}.staples-department-checkbox:hover{background:#e9ecef;background:var(--hover-bg,#e9ecef);border-color:var(--accent-color);transform:translateY(-1px)}.staples-department-checkbox input[type=checkbox]{accent-color:var(--accent-color);border-radius:4px;height:18px;transition:all .3s ease;width:18px}.staples-department-checkbox span{color:var(--text-primary);font-size:.95rem;font-weight:500}.staples-modal-actions{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding-top:1rem}.dark-mode .staples-modal{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .staples-department-checkbox{background:var(--bg-tertiary);border-color:var(--border-color)}.dark-mode .staples-department-checkbox:hover{background:var(--hover-bg)}.dark-mode .staples-modal-actions{border-color:var(--border-color)}@media (max-width:768px){.header-actions{align-items:stretch;flex-direction:column;gap:8px}.add-staples-btn{font-size:.9rem;padding:10px 16px}.staples-modal{margin:1rem;width:95%}.staples-modal-header{padding:1rem 1.5rem}.staples-modal-content{padding:1.5rem}.staples-departments{gap:8px;grid-template-columns:1fr}.staples-department-checkbox{padding:10px 12px}.staples-modal-actions{flex-direction:column;gap:8px}}.lists-content{grid-gap:0;display:grid;gap:0;grid-template-columns:450px 675px;min-height:600px}.dark-mode .staples-section{background:linear-gradient(135deg,#ffc107,#ffca2c);background:linear-gradient(135deg,var(--warning-color,#ffc107),#ffca2c)}.dark-mode .staples-content{background:var(--bg-secondary)}.dark-mode .staples-department{background:var(--bg-tertiary);border-color:var(--border-color)}.dark-mode .staples-item{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .staples-item:hover{background:var(--hover-bg)}.dark-mode .staples-item-quantity{background:var(--bg-tertiary)}@media (max-width:1024px){.lists-content{gap:1.5rem;grid-template-columns:1fr}.list-selector-panel{order:2;position:static}.current-list-panel{order:1}}@media (max-width:768px){.lists-content{gap:1rem;grid-template-columns:1fr}}.mode-toggle-btn{background:linear-gradient(135deg,#007aff33,#007aff1a);border:1px solid #007aff4d;border-radius:12px;color:#ffffffe6;cursor:pointer;font-size:.95rem;font-weight:500;margin-right:1rem;padding:.75rem 1.5rem;transition:all .3s ease}.mode-toggle-btn:hover{background:linear-gradient(135deg,#007aff4d,#007aff33);border-color:#007aff80;transform:translateY(-1px)}.mode-toggle-btn.shopping-active{background:linear-gradient(135deg,#34c7594d,#34c75933);border-color:#34c75980}.mode-toggle-btn.edit-active{background:linear-gradient(135deg,#ff95004d,#ff950033);border-color:#ff950080}.shopping-mode{display:flex;flex-direction:column;height:100%;padding:1.5rem}.shopping-header{margin-bottom:1.5rem}.shopping-header-top{margin-bottom:1rem}.shopping-header h2{color:#212529f2;font-size:1.5rem;font-weight:600;margin:0}.dark-mode .shopping-header h2{color:#fffffff2}.shopping-header .delete-list-btn{align-items:center;background:linear-gradient(135deg,#0000000d,#00000005);border:1px solid #0000001a;border-radius:50%;color:#212529b3;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;height:32px;justify-content:center;transition:all .3s ease;width:32px}.dark-mode .shopping-header .delete-list-btn{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:1px solid #fff3;color:#ffffffb3}.shopping-header .delete-list-btn:hover{background:linear-gradient(135deg,#ff3b3026,#ff3b301a);border-color:#ff3b304d;color:#ffffffe6}.shopping-progress{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.shopping-header .include-staples-checkbox{align-items:center;align-self:flex-start;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem 1rem;transition:all .3s ease}.shopping-header .include-staples-checkbox:hover{background:#ffffff14;border-color:#ffffff26}.shopping-header .include-staples-checkbox input[type=checkbox]{accent-color:#007affcc;cursor:pointer;height:18px;width:18px}.shopping-header .include-staples-checkbox span{color:#ffffffe6;font-size:.95rem;font-weight:500}.progress-bar{background:#ffffff1a;border-radius:4px;flex:1 1;height:8px}.progress-fill{background:linear-gradient(90deg,#34c759cc,#34c75999);border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:#fffc;font-size:.9rem;font-weight:500;white-space:nowrap}.shopping-department{margin-bottom:2rem}.shopping-department:last-child{margin-bottom:0}.dept-header{align-items:center;background:linear-gradient(135deg,#007aff26,#007aff1a);border:1px solid #007aff33;border-radius:12px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.dept-header h3{color:#fffffff2;font-size:1.1rem;font-weight:600;margin:0}.dept-count{color:#ffffffb3;font-size:.9rem;font-weight:500}.dept-items{display:flex;flex-direction:column;gap:.75rem}.shopping-items{display:flex;flex:1 1;flex-direction:column;gap:.75rem;overflow-y:auto}.shopping-items::-webkit-scrollbar{width:6px}.shopping-items::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.shopping-items::-webkit-scrollbar-thumb{background:#007aff4d;border-radius:3px}.shopping-item{align-items:center;background:linear-gradient(135deg,#ffffff14,#ffffff0d);border:1px solid #ffffff1a;border-radius:12px;display:flex;gap:1rem;padding:1rem;transition:all .3s ease}.shopping-item:hover{background:linear-gradient(135deg,#ffffff1f,#ffffff14);border-color:#ffffff26;transform:translateY(-1px)}.shopping-item.checked{background:linear-gradient(135deg,#34c75926,#34c7591a);border-color:#34c7594d;opacity:.7}.shopping-checkbox{align-items:center;background:#007aff1a;border:2px solid #007aff66;border-radius:50%;color:#ffffffe6;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;font-weight:700;height:32px;justify-content:center;transition:all .3s ease;width:32px}.shopping-checkbox:hover{background:#007aff33;border-color:#007aff99;transform:scale(1.1)}.shopping-item.checked .shopping-checkbox{background:#34c7594d;border-color:#34c75999;color:#fff}.shopping-item-info{align-items:center;display:flex;flex:1 1;gap:.5rem}.shopping-item-icon{align-items:center;color:#212529f2;display:flex;font-size:1.2rem;justify-content:center;margin-right:8px;min-width:24px}.shopping-item-name{color:#212529f2;font-size:1.1rem;font-weight:500}.shopping-item-details{color:#21252999;font-size:.9rem;font-weight:500;margin-left:auto}.dark-mode .shopping-item-icon,.dark-mode .shopping-item-name{color:#fffffff2}.dark-mode .shopping-item-details{color:#fff9}.shopping-item.checked .shopping-item-name{color:#ffffffb3;text-decoration:line-through}.empty-dept{color:#fff9;padding:2rem;text-align:center}.empty-dept h4{color:#fffc;margin:0 0 .5rem}.empty-dept p{font-size:.9rem;margin:0}.share-list-btn{background:linear-gradient(135deg,#22c55ecc,#22c55e99);border:1px solid #22c55e4d;border-radius:12px;box-shadow:0 4px 12px #22c55e26;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.share-list-btn:hover{background:linear-gradient(135deg,#22c55ee6,#22c55eb3);box-shadow:0 8px 20px #22c55e40;transform:translateY(-2px)}.share-list-btn:active{box-shadow:0 4px 12px #22c55e26;transform:translateY(0)}.share-feedback{word-wrap:break-word;animation:slideInRight .3s ease-out;border-radius:8px;font-size:.9rem;font-weight:600;max-width:300px;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:1000}.share-feedback.success{background:linear-gradient(135deg,#22c55ee6,#22c55eb3);border:1px solid #22c55e4d;box-shadow:0 4px 12px #22c55e33;color:#fff}.share-feedback.error{background:linear-gradient(135deg,#ef4444e6,#ef4444b3);border:1px solid #ef44444d;box-shadow:0 4px 12px #ef444433;color:#fff}.share-feedback.loading{background:linear-gradient(135deg,#3b82f6e6,#3b82f6b3);border:1px solid #3b82f64d;box-shadow:0 4px 12px #3b82f633;color:#fff}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.dark-mode .share-feedback.success{background:linear-gradient(135deg,#22c55ecc,#22c55e99);border:1px solid #22c55e66}.dark-mode .share-feedback.error{background:linear-gradient(135deg,#ef4444cc,#ef444499);border:1px solid #ef444466}.dark-mode .share-feedback.loading{background:linear-gradient(135deg,#3b82f6cc,#3b82f699);border:1px solid #3b82f666}.shopping-share-btn{font-size:.85rem;margin-left:12px;padding:8px 16px}.shopping-header-top{align-items:center;display:flex;justify-content:space-between}@media (max-width:768px){.share-list-btn{font-size:.9rem;padding:10px 16px}.shopping-share-btn{font-size:.8rem;margin-left:8px;padding:6px 12px}.share-feedback{font-size:.85rem;left:10px;max-width:none;right:10px;top:10px}}:root{--transition-duration:200ms;--color-primary:#1e88e5;--color-primary-dark:#1565c0;--color-secondary:#ff9800;--color-text:#333;--color-text-light:#777;--color-border:#e0e0e0;--color-background:#fff;--color-background-light:#f5f5f5;--color-protein:#4caf50;--color-fat:#ff9800;--color-carbs:#2196f3;--border-radius:8px;--shadow:0 2px 4px #0000001a}.dark-mode{--color-text:#f5f5f5;--color-text-light:#b0b0b0;--color-border:#444;--color-background:#222;--color-background-light:#333;--shadow:0 2px 4px #0000004d}.recipe-detail-page{background-color:var(--bg-primary);color:var(--text-primary);height:auto;margin:0 auto;max-width:1200px;min-height:100vh;padding:2rem;transition:margin-right .4s cubic-bezier(.4,0,.2,1),height .3s ease-in-out,width .3s ease-in-out;width:auto}.back-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #ffffff4d;border-radius:50%;color:#333;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .2s;transition:all var(--transition-duration);width:40px}.back-button:hover{background-color:#fff;transform:scale(1.05)}.recipe-title{flex:1 1;font-size:2rem;margin:0}.recipe-actions{display:flex;gap:.5rem}.action-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #ffffff4d;border-radius:50%;color:#333;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;transition:all .2s;transition:all var(--transition-duration);width:40px}.action-button:hover{background-color:#fff;transform:scale(1.05)}.favorite-button.active{color:#e53935}.recipe-hero{aspect-ratio:3/1;background-color:#f0f0f0;border-radius:8px;border-radius:var(--border-radius);display:block;margin-bottom:1.5rem;margin-top:-2rem;min-height:200px;overflow:hidden;position:relative}.recipe-hero-controls{align-items:center;background:linear-gradient(180deg,#0000004d,#0000);display:flex;justify-content:space-between;left:0;padding:1rem 2rem;position:absolute;right:0;top:0;z-index:3}.recipe-hero .recipe-image{border-radius:8px;border-radius:var(--border-radius);display:block;height:100%;left:0;max-height:400px;object-fit:cover;opacity:1!important;position:absolute;top:0;width:100%;z-index:1}.recipe-title-overlay{align-items:flex-end;background:linear-gradient(0deg,#000c,#0006,#0000);bottom:0;display:flex;justify-content:flex-start;left:0;padding:3rem 2rem 2rem;position:absolute;right:0;z-index:2}.recipe-hero-title{word-wrap:break-word;animation:neon-glow 3s ease-in-out infinite alternate;color:#fff6;font-size:3.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0;max-width:80%;text-shadow:0 0 5px #fff6,0 0 10px #ffffff4d,0 0 15px #fff3}@keyframes neon-glow{0%{text-shadow:0 0 5px #fff6,0 0 10px #ffffff4d,0 0 15px #fff3}to{text-shadow:0 0 8px #fff9,0 0 15px #fff6,0 0 20px #ffffff4d}}.recipe-hero-title.entrance-drop{animation:entrance-drop 1.2s cubic-bezier(.175,.885,.32,1.275) forwards,neon-glow 3s ease-in-out infinite alternate}.recipe-hero-title.entrance-slide{animation:entrance-slide 1.2s cubic-bezier(.4,0,.2,1) forwards,neon-glow 3s ease-in-out infinite alternate}.recipe-hero-title.entrance-zoom{animation:entrance-zoom 1.2s cubic-bezier(.175,.885,.32,1.275) forwards,neon-glow 3s ease-in-out infinite alternate}.recipe-hero-title.entrance-fade{animation:entrance-fade 1.5s cubic-bezier(.4,0,.2,1) forwards,neon-glow 3s ease-in-out infinite alternate}.recipe-hero-title.entrance-bounce{animation:entrance-bounce 1.2s cubic-bezier(.68,-.55,.265,1.55) forwards,neon-glow 3s ease-in-out infinite alternate}@keyframes entrance-drop{0%{opacity:0;transform:translateY(-100px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes entrance-slide{0%{opacity:0;transform:translateX(-100px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes entrance-zoom{0%{opacity:0;transform:scale(.5) rotate(-5deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes entrance-fade{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes entrance-bounce{0%{opacity:0;transform:translateY(50px) scale(.8)}50%{opacity:.8;transform:translateY(-10px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.recipe-meta{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);flex-wrap:wrap;justify-content:space-between;margin-bottom:2rem;padding:1rem}.recipe-meta,.recipe-rating{align-items:center;display:flex}.recipe-rating{gap:.5rem}.rating-stars{color:#ff9800;color:var(--color-secondary)}.recipe-times{display:flex;flex-wrap:wrap;gap:1rem}.cook-time,.prep-time,.servings,.total-time{align-items:center;display:flex;font-size:.9rem;white-space:nowrap}.recipe-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:1rem;margin-bottom:2rem;padding-bottom:1rem}.tab-button{background:none;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s ease}.tab-button:hover{background-color:var(--background-hover);color:var(--text-primary)}.tab-button.active{background-color:var(--primary-color);color:#fff}.tab-content{min-height:400px}.tab-content .recipe-chat-container{display:flex;flex-direction:column;height:100%;min-height:500px}.recipe-overview{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr}.recipe-description{line-height:1.6}.recipe-quick-facts{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(5,1fr)}.recipe-fact{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);display:flex;flex-direction:column;padding:1rem}.fact-label{color:#777;color:var(--color-text-light);font-size:.9rem;margin-bottom:.3rem}.fact-value{font-size:1.1rem;font-weight:500}.recipe-equipment ul{list-style-type:disc;padding-left:1.5rem}.recipe-ingredients{margin-bottom:2rem}.recipe-detail-page .serving-adjuster{margin-top:15px}.recipe-detail-page .ingredient-item{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);padding:10px 0}.recipe-detail-page .ingredient-label{align-items:center;cursor:pointer;display:flex;flex-wrap:nowrap}.recipe-detail-page .ingredient-label input[type=checkbox]{flex-shrink:0;margin-right:10px}.recipe-detail-page .ingredient-amount{margin-right:6px;white-space:nowrap}.recipe-ingredients .action-button{background-color:#1e88e5;background-color:var(--color-primary);border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow);color:#fff;font-weight:500;height:auto;margin-top:10px;padding:10px 20px;width:auto}.recipe-ingredients .action-button:hover{background-color:#1565c0;background-color:var(--color-primary-dark)}.recipe-instructions{counter-reset:step-counter}.instructions-list{list-style:none;padding:0;text-align:left!important;width:100%}.recipe-equipment h3,.recipe-instructions h3{font-size:1.3rem;font-weight:600;margin:0 0 20px}.recipe-detail-page .ingredients-header,.recipe-equipment h3,.recipe-instructions h3{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);padding-bottom:15px}.recipe-detail-page .ingredients-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px;position:relative}.recipe-detail-page .ingredients-header h3{font-size:1.3rem;font-weight:600;margin:0;padding-right:10px}.instruction-step{align-items:flex-start;display:flex;margin-bottom:1.5rem;text-align:left!important;width:100%}.step-number{align-items:center;background-color:#1e88e5;background-color:var(--color-primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-weight:700;height:36px;justify-content:center;margin-right:.5rem;width:36px}.step-content{flex:1 1;text-align:left!important}.step-content p{line-height:1.6;margin:0;text-align:left!important;width:100%}.recipe-nutrition{display:flex;flex-direction:column;gap:2rem}.nutrition-content{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;min-height:300px}.nutrition-facts-label{border:1px solid #000;font-family:Helvetica,Arial,sans-serif;max-width:350px;padding:.75rem}.nutrition-facts-header h3{font-size:2rem;font-weight:700;margin:0 0 .25rem}.nutrition-facts-header p{border-bottom:8px solid #000;font-size:.9rem;margin:0 0 .5rem;padding-bottom:.25rem}.nutrition-facts-calories{border-bottom:4px solid #000;display:flex;font-size:1.25rem;font-weight:700;justify-content:space-between;margin-bottom:.5rem;padding:.25rem 0}.nutrition-facts-daily-value{font-size:.9rem}.daily-value-header{font-weight:700;margin:0 0 .25rem;text-align:right}.nutrition-facts-row{border-bottom:1px solid #000;padding:.25rem 0}.nutrition-facts-item{display:flex;font-weight:700;justify-content:space-between}.nutrition-facts-subitem{display:flex;justify-content:space-between;padding-left:1.5rem}.nutrition-facts-vitamins{grid-gap:.5rem;border-bottom:1px solid #000;display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr);padding:.5rem 0}.daily-value-footer{font-size:.75rem;margin-top:.5rem}.macronutrient-chart{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);padding:1rem}.macronutrient-chart h4{margin-bottom:1rem;margin-top:0}.macro-bar{border-radius:4px;display:flex;height:30px;margin-bottom:1rem;overflow:hidden}.protein-segment{background-color:#4caf50;background-color:var(--color-protein)}.fat-segment,.protein-segment{align-items:center;color:#fff;display:flex;font-size:.8rem;font-weight:700;justify-content:center}.fat-segment{background-color:#ff9800;background-color:var(--color-fat)}.carb-segment{align-items:center;background-color:#2196f3;background-color:var(--color-carbs);color:#fff;display:flex;font-size:.8rem;font-weight:700;justify-content:center}.macro-legend{display:flex;flex-wrap:wrap;gap:1rem}.legend-item{align-items:center;display:flex;font-size:.9rem}.carb-color,.fat-color,.protein-color{border-radius:2px;height:12px;margin-right:.25rem;width:12px}.protein-color{background-color:#4caf50;background-color:var(--color-protein)}.fat-color{background-color:#ff9800;background-color:var(--color-fat)}.carb-color{background-color:#2196f3;background-color:var(--color-carbs)}.nutrition-highlights{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-top:1.5rem}.highlight-item{background-color:#f5f5f5;background-color:var(--color-background-light);border:1px solid #e0e0e0;border:1px solid var(--color-border);border-radius:8px;border-radius:var(--border-radius);padding:1rem;text-align:center}.highlight-value{color:#333;color:var(--color-text);font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.highlight-label{color:#777;color:var(--color-text-light);font-size:.9rem}.ingredient-nutrition-breakdown{margin-top:2rem}.nutrition-filter{margin-bottom:1rem}.nutrition-filter label{margin-right:.5rem}.nutrition-filter select{border:1px solid #e0e0e0;border:1px solid var(--color-border);border-radius:8px;border-radius:var(--border-radius);padding:.5rem}.ingredient-nutrition-table{border-collapse:collapse;margin-bottom:1rem;width:100%}.ingredient-nutrition-table td,.ingredient-nutrition-table th{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);padding:.75rem;text-align:left}.ingredient-nutrition-table th{font-weight:500}.ingredient-nutrition-table th,.ingredient-nutrition-table tr:nth-child(2n){background-color:#f5f5f5;background-color:var(--color-background-light)}.ingredient-nutrition-note{color:#777;color:var(--color-text-light)}.no-data-message{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);padding:2rem;text-align:center}.recipe-detail-page .related-recipes{margin-top:3rem}.recipe-detail-page .related-recipes h2{margin-bottom:1.5rem}.recipe-detail-page .related-recipes-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));min-height:200px}.recipe-detail-page .related-recipe-card{border-radius:8px;border-radius:var(--border-radius);box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow);overflow:hidden;transition:transform .2s;transition:transform var(--transition-duration)}.recipe-detail-page .related-recipe-card:hover{transform:translateY(-5px)}.recipe-detail-page .related-recipe-card img{height:160px;object-fit:cover;width:100%}.recipe-detail-page .related-recipe-card h3{font-size:1rem;margin:0;padding:.75rem}.recipe-detail.error,.recipe-detail.loading,.recipe-detail.not-found{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 1rem;text-align:center}.loading-spinner{border:5px solid #f5f5f5;border-top:5px solid #1e88e5;border:5px solid var(--color-background-light);border-top-color:var(--color-primary);height:50px;margin-bottom:1rem;width:50px}.recipe-detail.error h2,.recipe-detail.not-found h2{color:#e53935;margin-bottom:1rem}.recipe-detail.error button,.recipe-detail.not-found button{background-color:#1e88e5;background-color:var(--color-primary);border:none;border-radius:8px;border-radius:var(--border-radius);color:#fff;cursor:pointer;font-size:1rem;margin-top:1rem;padding:.75rem 1.5rem}.recipe-detail.error button:hover,.recipe-detail.not-found button:hover{background-color:#1565c0;background-color:var(--color-primary-dark)}@media print{.recipe-detail-page .recipe-actions,.recipe-detail-page .recipe-header button,.recipe-detail-page .recipe-tabs,.recipe-detail-page .related-recipes{display:none}.recipe-detail-page{max-width:100%;padding:0}.recipe-detail-page .recipe-title{font-size:24pt;margin-bottom:.5cm}.recipe-detail-page .recipe-image{height:10cm}.recipe-detail-page .recipe-meta{margin-bottom:1cm}.recipe-detail-page .recipe-ingredients,.recipe-detail-page .recipe-instructions{page-break-inside:avoid}.recipe-detail-page .instruction-step,.recipe-detail-page .step-content,.recipe-detail-page .step-content p{text-align:left!important}}@media (max-width:768px){.recipe-header{align-items:flex-start;flex-direction:column}.recipe-title{font-size:1.5rem;margin:1rem 0}.recipe-actions{justify-content:flex-end;width:100%}.recipe-image{height:250px}.nutrition-content{grid-template-columns:1fr}.nutrition-facts-label{max-width:100%}.nutrition-highlights{grid-template-columns:repeat(2,1fr)}.recipe-times{flex-direction:column;gap:.5rem;margin-top:1rem}.recipe-tabs{overflow-x:auto;padding-bottom:.5rem;white-space:nowrap}.tab-button{padding:.75rem 1rem}}@media (max-width:480px){.nutrition-highlights{grid-template-columns:1fr}.ingredient-nutrition-table{font-size:.85rem}.step-number{font-size:.9rem;height:28px;width:28px}.instruction-step,.recipe-instructions-right,.step-content,.step-content p{text-align:left!important}}.pie-chart-container{height:200px;margin:20px auto;position:relative;transform:rotate(45deg);width:200px}.pie-chart{background:#f1f1f1;border-radius:50%;overflow:hidden;position:relative}.pie-chart,.pie-slice{height:100%;width:100%}.pie-slice{align-items:center;display:flex;justify-content:center;position:absolute;transform-origin:50% 50%}.pie-slice.protein-slice{background-color:#6a5acd}.pie-slice.fat-slice{background-color:coral}.pie-slice.carb-slice{background-color:#20b2aa}.pie-label{color:#fff;font-weight:700;position:absolute;text-shadow:1px 1px 2px #00000080;z-index:10}.donut-hole{align-items:center;background-color:#222;border-radius:50%;box-shadow:inset 0 0 8px #0003;display:flex;flex-direction:column;height:80px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px;z-index:20}.calories-value{color:#fff;font-size:1.5rem;line-height:1.1}.calories-label{color:#ccc;font-size:.8rem}.fat-slice .pie-label{transform:translateY(-65px) translateX(45px)}.carb-slice .pie-label{transform:translateY(-5px) translateX(65px)}.protein-slice .pie-label{transform:translateY(65px) translateX(-45px)}.protein-color{background-color:#6a5acd}.fat-color{background-color:coral}.carb-color{background-color:#20b2aa}.nutrition-highlights .calories-highlight{display:none}.donut-chart{background:conic-gradient(coral 0 49%,#20b2aa 49% 85%,#6a5acd 85% 100%);position:relative}.fat-label{top:25%}.carb-label,.fat-label{position:absolute;right:25%;transform:rotate(-50deg)}.carb-label{bottom:25%}.protein-label{left:25%;position:absolute;top:25%;transform:rotate(-50deg)}.equipment-ingredients-container{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);display:flex;gap:40px;margin-top:30px;padding:25px}.recipe-ingredients{flex:3 1;order:1}.recipe-equipment{border-left:1px solid #e0e0e0;border-left:1px solid var(--color-border);flex:2 1;order:2;padding-left:40px}.ingredients-header h3{margin:0;padding-right:10px}.recipe-detail-page .serving-adjuster label{color:#333;color:var(--color-text);font-weight:500;margin-right:10px}.recipe-detail-page .serving-adjuster input{border:1px solid #e0e0e0;border:1px solid var(--color-border);border-radius:8px;border-radius:var(--border-radius);font-size:1rem;padding:8px 12px;text-align:center;width:60px}.ingredients-list{margin-bottom:25px}.equipment-list,.ingredients-list{list-style:none;padding:0}.recipe-detail-page .equipment-list li{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);padding:10px 0}.recipe-detail-page .ingredient-amount{display:inline;font-weight:700;margin-right:8px}.recipe-detail-page .ingredient-item label{cursor:pointer;display:block;line-height:1.5}@media (max-width:768px){.recipe-detail-page .equipment-ingredients-container{flex-direction:column;padding:20px 15px}.recipe-detail-page .recipe-equipment{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);border-left:none;margin-bottom:20px;order:1;padding-bottom:20px;padding-left:0}.recipe-detail-page .recipe-ingredients{order:2}.recipe-detail-page .ingredients-header{align-items:flex-start;flex-direction:column}.recipe-detail-page .serving-adjuster{margin-top:15px}}.recipe-detail-page .ingredients-instructions-container{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);display:flex!important;flex-direction:row!important;gap:40px;margin-bottom:30px;margin-top:30px;padding:25px}.recipe-detail-page .recipe-ingredients-left{border-right:1px solid #e0e0e0;border-right:1px solid var(--color-border);flex:1 1!important;min-width:300px;order:1!important;padding-right:40px}.recipe-detail-page .recipe-instructions-right{flex:2 1!important;order:2!important;padding-left:40px;text-align:left!important}@media (max-width:992px){.recipe-detail-page .ingredients-instructions-container{flex-direction:column!important}.recipe-detail-page .recipe-ingredients-left{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);border-right:none;margin-bottom:30px;order:1!important;padding-bottom:30px;padding-right:0}.recipe-detail-page .recipe-instructions-right{order:2!important;padding-left:0;text-align:left!important}.recipe-detail-page .instruction-step,.recipe-detail-page .step-content,.recipe-detail-page .step-content p{text-align:left!important}}.recipe-detail-page .recipe-equipment{background-color:#f5f5f5;background-color:var(--color-background-light);border-radius:8px;border-radius:var(--border-radius);margin-top:20px;padding:25px}.recipe-detail-page .equipment-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.recipe-detail-page .equipment-tag{background-color:#f0f0f0;background-color:var(--tag-background,#f0f0f0);border-radius:4px;color:#666;color:var(--text-color-secondary,#666);display:inline-block;font-size:.875rem;padding:.5rem .75rem}.recipe-detail-page .instructions-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px;position:relative}.recipe-detail-page .instructions-header h3{border-bottom:none;font-size:1.3rem;font-weight:600;margin:0}.recipe-detail-page .serving-adjuster{align-items:center;display:flex;white-space:nowrap}.recipe-detail-page .equipment-fact{display:flex;flex-direction:column}.recipe-detail-page .equipment-tags-small{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem;max-width:100%}.recipe-detail-page .equipment-tag-small{background-color:#f0f0f0;background-color:var(--tag-background,#f0f0f0);border-radius:4px;color:#333;color:var(--text-color,#333);display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.recipe-detail-page .recipe-author-container{align-items:center;border-top:1px solid #e0e0e0;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;margin-top:1.5rem;padding-top:1rem}.recipe-detail-page .recipe-author-attribution{color:#666;color:var(--text-color-secondary,#666);font-size:.9rem;font-style:italic;margin-top:1.5rem;text-align:right}.recipe-detail-page .cooking-mode-button{align-items:center;background-color:var(--accent-color);border:none;border-radius:50%;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;margin-top:1rem;transition:all .3s ease;width:48px}.recipe-detail-page .cooking-mode-button:hover{background-color:var(--accent-color-dark);transform:scale(1.05)}.recipe-detail-page .cooking-mode-button svg{height:24px;width:24px}.related-recipe-image{border-radius:8px;border-radius:var(--border-radius);height:160px;object-fit:cover;opacity:1!important;position:relative;width:100%;z-index:1}.nutrition-chart-container{margin:0 auto;max-width:400px;padding:20px;width:100%}.chart-wrapper{align-items:center;display:flex;height:300px;justify-content:center;position:relative;width:100%}.chart-center{left:50%;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.calories-value{color:#333;color:var(--color-text);font-size:24px;font-weight:700}.calories-label{color:#777;color:var(--color-text-light);font-size:14px;letter-spacing:1px;text-transform:uppercase}.macronutrient-chart{background:#fff;background:var(--color-background);border:1px solid #e0e0e0;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow);margin:20px 0;padding:20px}.macronutrient-chart h4{color:#333;color:var(--color-text);font-size:18px;margin-bottom:20px;text-align:center}.donut-chart,.donut-hole,.pie-chart,.pie-chart-container,.pie-label{display:none}@keyframes pulse-glow{0%{text-shadow:0 0 10px #1565c0,0 0 20px #1565c0,0 0 30px #1565c0;text-shadow:0 0 10px var(--color-primary-dark),0 0 20px var(--color-primary-dark),0 0 30px var(--color-primary-dark)}50%{text-shadow:0 0 15px #1565c0,0 0 25px #1565c0,0 0 35px #1565c0;text-shadow:0 0 15px var(--color-primary-dark),0 0 25px var(--color-primary-dark),0 0 35px var(--color-primary-dark)}to{text-shadow:0 0 10px #1565c0,0 0 20px #1565c0,0 0 30px #1565c0;text-shadow:0 0 10px var(--color-primary-dark),0 0 20px var(--color-primary-dark),0 0 30px var(--color-primary-dark)}}.cooking-mode-inner{gap:12px;justify-content:center;margin-top:16px;padding:8px 0}.cooking-mode-button{margin-bottom:4px;transform:translateY(4px)}.cooking-mode-label{-webkit-font-smoothing:antialiased;animation:pulse-glow 2s ease-in-out infinite;box-sizing:border-box;color:#1565c0;color:var(--color-primary-dark);display:block;font-family:Inter,-apple-system,"system-ui",Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-weight:700!important;height:24px;line-height:24px;margin:0;padding:0;white-space:nowrap;width:85.6094px}@media (max-width:1200px){.recipe-detail-page{margin-right:0;padding:1rem}}@media (max-width:768px){.recipe-detail-page{padding:.5rem}.recipe-hero-title{font-size:2.5rem;max-width:90%}.recipe-title-overlay{padding:2rem 1rem 1rem}}@media (max-width:480px){.recipe-hero-title{font-size:2rem;max-width:95%}.recipe-title-overlay{padding:1.5rem .75rem .75rem}}:root{--cooking-mode-primary:#1e88e5;--cooking-mode-secondary:#ff9800;--cooking-mode-text:#333;--cooking-mode-text-light:#777;--cooking-mode-border:#e0e0e0;--cooking-mode-background:#fff;--cooking-mode-background-light:#f5f5f5;--cooking-mode-success:#4caf50;--cooking-mode-error:#f44336;--cooking-mode-border-radius:8px;--cooking-mode-text-beige:#f9f9f9}.dark-mode .cooking-mode{--cooking-mode-text:#f5f5f5;--cooking-mode-text-light:#b0b0b0;--cooking-mode-border:#444;--cooking-mode-background:#222;--cooking-mode-background-light:#333;--cooking-mode-shadow:0 2px 4px #0000004d}.cooking-mode{animation:fade-in .3s ease-in-out;background-color:#262a3e;bottom:0;box-sizing:border-box;color:#333;color:var(--cooking-mode-text);display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;right:0;top:0;visibility:visible;width:100%;z-index:9999}.cooking-mode.inactive{display:none;opacity:0;visibility:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.cooking-mode-header{align-items:center;background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:0 2px 4px #0000001a;box-shadow:var(--cooking-mode-shadow);box-sizing:border-box;color:var(--text-primary);display:flex;flex-shrink:0;justify-content:space-between;padding:1rem;width:100%}.cooking-mode-header .recipe-title{flex-grow:1;font-size:1.5rem;margin:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.exit-button,.screen-lock-button,.voice-control-button{align-items:center;background:#fff3;border:none;border-radius:8px;border-radius:var(--cooking-mode-border-radius);color:#fff;cursor:pointer;display:flex;justify-content:center;padding:.5rem 1rem;transition:background .2s}.exit-button svg,.screen-lock-button svg,.voice-control-button svg{margin-right:.5rem}.exit-button:hover,.screen-lock-button:hover,.voice-control-button:hover{background:#ffffff4d}.header-controls{display:flex;gap:.5rem}.screen-lock-button.active,.voice-control-button.active{background:#fff6}.progress-indicator{border-bottom:1px solid var(--border-color);box-sizing:border-box;flex-wrap:nowrap;gap:1rem;margin:0;min-height:80px;overflow-x:auto;padding:1.5rem;position:sticky;top:0;width:100%;z-index:10}.progress-indicator,.progress-step{align-items:center;background-color:var(--bg-primary);display:flex;justify-content:center;text-align:center}.progress-step{border:2px solid var(--border-color);border-radius:50%;box-shadow:0 2px 8px #0000001a;color:var(--text-primary);cursor:pointer;flex-shrink:0;font-size:1.2rem;font-weight:600;height:3.5rem;transition:all .3s ease;width:3.5rem}.progress-step.current{background-color:var(--accent-color);border-color:var(--accent-color);box-shadow:0 4px 16px #1890ff4d;color:#fff;transform:scale(1.15)}.progress-step.completed{background-color:var(--success-color);border-color:var(--success-color);box-shadow:0 2px 12px #4caf504d;color:#fff;transform:scale(1.05)}.current-step-container{align-items:center;display:flex;flex:1 1;flex-direction:column;min-height:calc(100vh - 200px);overflow:hidden;padding-bottom:2rem;position:relative}.cooking-mode-recipe-image{height:56.7vh;margin-bottom:1rem;position:relative;width:100%}.cooking-mode-recipe-image:before{background:linear-gradient(180deg,#0003,#000c);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.cooking-mode-recipe-image img{display:block;height:100%;object-fit:cover;width:100%}.step-content-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:absolute;right:0;top:0;z-index:2}.step-content{align-items:center;display:flex;flex-direction:column;margin-bottom:1.5rem;max-width:1000px;padding:0 1.5rem;width:100%;z-index:5}.step-counter{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:2rem;box-shadow:0 2px 4px #0000001a;box-shadow:var(--cooking-mode-shadow);color:var(--text-primary);font-size:1.1rem;font-weight:500;margin:.5rem 0;padding:.6rem 1.5rem;position:relative;white-space:nowrap;z-index:2}.nav-buttons{position:relative;width:100%;z-index:4}.nav-button.prev-button{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#00000080;border:none;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#f9f9f9;color:var(--cooking-mode-text-beige);cursor:pointer;display:flex;height:3rem;justify-content:center;left:1.5rem;margin-top:-1.5rem;position:absolute;top:50%;transition:background-color .2s;width:3rem;z-index:5}.nav-button.prev-button:hover{background-color:#0009}.nav-button.prev-button:disabled{cursor:not-allowed;opacity:.5}.nav-button.repeat-button{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#00000080;border:none;border-radius:50%;box-shadow:0 4px 12px #0000004d;color:#f9f9f9;color:var(--cooking-mode-text-beige);cursor:pointer;display:flex;height:2.5rem;justify-content:center;position:absolute;right:-1.25rem;top:-1.25rem;transform-origin:center;transition:all .2s;width:2.5rem;z-index:5}.nav-button.repeat-button:hover{background-color:#0009;transform:scale(1.1)}.nav-button.repeat-button:active{transform:scale(.95)}.nav-button{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;transition:all .2s}.nav-button:disabled{cursor:not-allowed;opacity:.5}.nav-button:not(:disabled):hover{transform:none}.nav-buttons{align-items:center;margin:2rem 0}.nav-buttons,.step-actions{display:flex;justify-content:center}.step-actions{margin:.5rem 0 1rem;width:100%}.complete-step-button{align-items:center;background-color:#4caf50;background-color:var(--cooking-mode-success);border:none;border-radius:8px;border-radius:var(--cooking-mode-border-radius);box-shadow:0 2px 4px #0000001a;box-shadow:var(--cooking-mode-shadow);color:#fff;cursor:pointer;display:flex;font-size:1.2rem;font-weight:700;justify-content:center;padding:1rem 2.5rem;transition:all .2s}.complete-step-button svg{margin-right:.5rem}.complete-step-button:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.complete-step-button:active{transform:translateY(0)}.timer-section{background-color:#262a3e;border-top:1px solid #e0e0e0;border-top:1px solid var(--cooking-mode-border);padding:1.5rem}.timer-section h2{font-size:1.25rem;margin-bottom:.5rem;margin-top:0}.create-timer{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:1rem}.create-timer input[type=text]{flex:1 1;min-width:150px}.create-timer input[type=number],.create-timer input[type=text]{border:1px solid #e0e0e0;border:1px solid var(--cooking-mode-border);border-radius:8px;border-radius:var(--cooking-mode-border-radius);font-size:1rem;padding:.75rem}.create-timer input[type=number]{text-align:center;width:5rem}.minutes-label{color:#777;color:var(--cooking-mode-text-light)}.create-timer-button{align-items:center;background-color:#1e88e5;background-color:var(--cooking-mode-primary);border:none;border-radius:8px;border-radius:var(--cooking-mode-border-radius);color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;justify-content:center;padding:.75rem 1.5rem;transition:background-color .2s}.create-timer-button svg{margin-right:.5rem}.create-timer-button:hover{background-color:#1976d2}.active-timers{display:flex;flex-direction:column;gap:.75rem}.timer-item{align-items:center;background-color:#fff;background-color:var(--cooking-mode-background);border-radius:8px;border-radius:var(--cooking-mode-border-radius);box-shadow:0 2px 4px #0000001a;box-shadow:var(--cooking-mode-shadow);display:flex;justify-content:space-between;padding:1rem}.timer-item.paused{opacity:.7}.timer-item.completed{background-color:#4caf5033}.timer-info{display:flex;flex-direction:column}.timer-label{font-weight:700;margin-bottom:.25rem}.timer-time{font-feature-settings:"tnum";font-size:1.25rem;font-variant-numeric:tabular-nums}.timer-controls{display:flex;gap:.5rem}.timer-controls button{border:none;border-radius:8px;border-radius:var(--cooking-mode-border-radius);cursor:pointer;padding:.5rem 1rem;transition:background-color .2s}.timer-controls button:first-child{background-color:#1e88e5;background-color:var(--cooking-mode-primary);color:#fff}.timer-controls button:last-child{background-color:#f44336;background-color:var(--cooking-mode-error);color:#fff}.no-timers{color:#777;color:var(--cooking-mode-text-light);padding:1rem;text-align:center}.voice-instructions{background-color:#fff;background-color:var(--cooking-mode-background);border-top:1px solid #e0e0e0;border-top:1px solid var(--cooking-mode-border);padding:1rem}.voice-instructions h3{font-size:1rem;margin-bottom:.5rem;margin-top:0}.voice-instructions ul{margin:0;padding-left:1.5rem}.voice-instructions li{font-size:.9rem;margin-bottom:.25rem}.step-text{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#00000080;border:2px solid #ffffff4d;border-radius:8px;border-radius:var(--cooking-mode-border-radius);box-shadow:0 4px 12px #0000004d;color:#f9f9f9;display:flex;flex-direction:column;font-size:2.8rem;font-weight:500;justify-content:center;letter-spacing:.5px;line-height:1.4;max-width:1000px;overflow:visible;padding:2rem;position:relative;white-space:pre-wrap;will-change:transform,opacity}.step-text,.step-text-content{text-align:center;width:100%}.cursor,.highlighted-ingredient,.typewriter-container,.typewriter-text,.typewriter-word{display:none}@media (max-width:768px){.cooking-mode-header .recipe-title{font-size:1.2rem}.exit-button span{display:none}.progress-step{font-size:1.1rem;height:3rem;width:3rem}.cooking-mode-recipe-image{height:48.6vh}.step-text{font-size:2rem;padding:1.5rem}.step-counter{font-size:1rem;margin:.25rem 0;padding:.5rem 1.25rem}.nav-buttons{gap:1.5rem;margin:1rem 0}.step-actions{margin:.25rem 0 .75rem}.complete-step-button{font-size:1.1rem;padding:.8rem 2rem}.create-timer{align-items:flex-start;flex-direction:column}.create-timer input[type=number],.create-timer input[type=text]{width:100%}.timer-item{align-items:flex-start;flex-direction:column;gap:.75rem}.timer-controls{justify-content:space-between;width:100%}.nav-button.prev-button{height:2.5rem;left:1rem;width:2.5rem}.big-next-button{font-size:1.2rem;height:4rem;width:4rem}}@media (hover:none){.complete-step-button,.create-timer-button,.exit-button,.nav-button,.progress-step,.screen-lock-button,.timer-controls button,.voice-control-button{min-height:44px;min-width:44px}}.instruction-display{width:100%}.instruction-display .instructions-list{list-style:none;margin:0;padding:0}.instruction-display .instruction-step{align-items:flex-start;display:flex;margin-bottom:1.5rem;text-align:left;width:100%}.instruction-display .step-number{align-items:center;background-color:#007bff;background-color:var(--color-primary,#007bff);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.9rem;font-weight:700;height:36px;justify-content:center;margin-right:.5rem;width:36px}.instruction-display .step-content{flex:1 1;text-align:left;width:100%}.instruction-display .step-content p{color:#333;font-size:1rem;line-height:1.6;margin:0}.instruction-display .no-instructions{color:#666;font-style:italic;padding:2rem;text-align:center}.instruction-display .ingredient-highlight{color:#2c3e50;font-weight:600;position:relative;text-shadow:0 0 5px #3498db4d,0 0 10px #3498db33,0 0 15px #3498db1a;transition:all .3s ease}.instruction-display .ingredient-highlight:hover{text-shadow:0 0 8px #3498db66,0 0 15px #3498db4d,0 0 20px #3498db33;transform:translateY(-1px)}.instruction-display .ingredient-highlight-subtle{color:#34495e;font-weight:600;text-shadow:0 0 3px #3498db33,0 0 6px #3498db1a;transition:all .2s ease}.instruction-display .ingredient-highlight-subtle:hover{color:#2c3e50;text-shadow:0 0 5px #3498db4d,0 0 10px #3498db33}.instruction-display .loading-spinner{color:#666;font-style:italic;padding:1rem;text-align:center}@media (max-width:768px){.instruction-display .instruction-step{align-items:flex-start;flex-direction:column}.instruction-display .step-number{margin-bottom:.5rem;margin-right:0}.instruction-display .step-content p{font-size:.95rem}}@media (prefers-color-scheme:dark){.instruction-display .step-content p{color:#e0e0e0}.instruction-display .ingredient-highlight{color:#74b9ff;text-shadow:0 0 5px #74b9ff66,0 0 10px #74b9ff4d,0 0 15px #74b9ff33}.instruction-display .ingredient-highlight:hover{text-shadow:0 0 8px #74b9ff80,0 0 15px #74b9ff66,0 0 20px #74b9ff4d}.instruction-display .ingredient-highlight-subtle{color:#74b9ff;text-shadow:0 0 3px #74b9ff4d,0 0 6px #74b9ff33}.instruction-display .ingredient-highlight-subtle:hover{text-shadow:0 0 5px #74b9ff66,0 0 10px #74b9ff4d}}:root{--cooking-mode-shadow:0 2px 4px #0000001a;--shadow-color:#0000001a}.dark-mode{--cooking-mode-shadow:0 2px 4px #0000004d;--shadow-color:#ffffff1a}.ai-recipe-generator{align-items:flex-start;background-color:var(--bg-primary);color:var(--text-primary);display:flex;justify-content:center;min-height:calc(100vh - 64px);overflow-y:auto;padding:2rem;width:100%}.page-transition-wrapper .ai-recipe-generator{align-items:center;display:flex;justify-content:center;width:100%}.ai-recipe-container{background-color:var(--bg-secondary);border-radius:16px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;margin:0 auto;max-width:800px;padding:2rem;transition:transform .2s ease,box-shadow .2s ease;width:100%}.ai-recipe-container:hover{box-shadow:0 6px 8px #0000001a,0 2px 4px #00000014;transform:translateY(-2px)}.ai-recipe-title{color:var(--text-primary);font-size:2.5rem;font-weight:700;letter-spacing:-.5px;margin-bottom:2rem;text-align:center}.ai-recipe-description{display:none}.ai-recipe-form-container{margin-top:0;width:100%}.PromptContainer{margin:200px auto 0;max-width:800px;width:100%}.ai-recipe-form{grid-gap:24px;background:var(--bg-secondary);border-radius:16px;box-shadow:0 4px 6px #0000001a;display:grid;gap:24px;grid-template-columns:1fr auto;padding:24px}.ai-recipe-form-input{display:flex;flex-direction:column;gap:16px}.ai-recipe-input{background:var(--input-background);border:1px solid var(--border-color);border-radius:12px;color:var(--text-color);font-size:1rem;height:360px;padding:12px;resize:none;width:100%}.ai-recipe-form-actions{border-left:1px solid var(--border-color);justify-content:center;min-width:120px;padding-left:24px}.ai-recipe-form-actions,.cooking-mode-inner{align-items:center;display:flex;flex-direction:column}.cooking-mode-inner{gap:8px}.cooking-mode-button{align-items:center;background:var(--accent-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;transition:transform .2s ease;width:48px}.cooking-mode-button:hover:not(:disabled){transform:scale(1.05)}.cooking-mode-button:disabled{cursor:not-allowed;opacity:.6}.cooking-mode-label{color:var(--text-primary);font-size:1rem;font-weight:500}:root[data-theme=dark] .ai-recipe-form{background:#262a3e;color:#f0f5ff}@media (max-width:768px){.ai-recipe-form{gap:16px;grid-template-columns:1fr;padding:16px}.ai-recipe-form-actions{border-left:none;border-top:1px solid var(--border-color);padding-left:0;padding-top:16px}.cooking-mode-inner{flex-direction:row;justify-content:center;width:100%}}.ai-recipe-submit{background-color:#2196f3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:1rem;padding:1rem 2rem;transition:all .2s ease;width:100%}.ai-recipe-submit:not(:disabled):hover{background-color:#1976d2;transform:translateY(-1px)}.ai-recipe-submit:disabled{background-color:#9e9e9e;cursor:not-allowed;opacity:.7}.dietary-options{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.5rem}.checkbox-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{appearance:none;border:2px solid var(--border-color);border-radius:4px;cursor:pointer;height:18px;position:relative;transition:all .2s ease;width:18px}.checkbox-label input[type=checkbox]:checked{background-color:var(--accent-color);border-color:var(--accent-color)}.checkbox-label input[type=checkbox]:checked:after{color:#fff;content:"✓";font-size:12px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.ai-recipe-button{display:none}.ai-recipe-error{animation:fadeIn .3s ease;background-color:var(--error-bg);border-radius:8px;color:var(--error-text);font-size:.9rem;margin-top:2rem;padding:1rem;text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}:root[data-theme=dark] .ai-recipe-container,:root[data-theme=dark] .ai-recipe-input{background-color:var(--bg-secondary-dark)}:root[data-theme=dark] .ai-recipe-input{border-color:var(--border-color-dark)}:root[data-theme=dark] .ai-recipe-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-color-dark)}:root[data-theme=dark] .checkbox-label input[type=checkbox]{background-color:var(--bg-secondary-dark);border-color:var(--border-color-dark)}:root[data-theme=dark] .checkbox-label input[type=checkbox]:checked{background-color:var(--accent-color);border-color:var(--accent-color)}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:24px;width:24px}@keyframes spin{to{transform:rotate(1turn)}}.ai-recipe-success{background-color:var(--success-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;color:var(--success-text);margin-top:1.5rem;padding:2rem;text-align:center}.ai-recipe-success h3{font-size:1.4rem;font-weight:600;margin-bottom:.75rem}.ai-recipe-generator.dark-mode{background-color:var(--bg-primary-dark)}.ai-recipe-generator.dark-mode .ai-recipe-container{background-color:var(--bg-secondary-dark);box-shadow:0 4px 6px #0003,0 1px 3px #0000001a}.ai-recipe-generator.dark-mode .ai-recipe-container:hover{box-shadow:0 6px 8px #0003,0 2px 4px #0000001a}.ai-recipe-generator.dark-mode .ai-recipe-button{background-color:var(--accent-color-dark)}.ai-recipe-generator.dark-mode .ai-recipe-button:hover:not(:disabled){background-color:var(--accent-color-hover-dark)}@media (max-width:768px){.ai-recipe-generator{padding:1rem}.ai-recipe-container{padding:1.5rem}.ai-recipe-title{font-size:2rem}.ai-recipe-generator .ai-recipe-form{flex-direction:column!important;gap:16px!important;padding:16px!important}.ai-recipe-form-input{width:100%!important}.ai-recipe-form-actions{border-left:none!important;border-top:1px solid var(--border-color)!important;height:auto!important;padding-left:0!important;padding-top:16px!important;width:100%!important}.cooking-mode-inner{flex-direction:row!important;gap:12px!important;padding:8px 0!important}}@media (max-width:480px){.ai-recipe-generator{padding:.5rem}.ai-recipe-container{border-radius:12px;padding:1rem}.ai-recipe-title{font-size:1.75rem}}.flag-button-grid{height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:1}.flag-button{background:#0000;border:none;cursor:pointer;height:40px;opacity:.75;padding:4px;pointer-events:auto;position:absolute;transform-origin:center;transition:all .3s ease;width:40px}.flag-button:hover{opacity:1;transform:scale(1.05)}.flag-button.selected{box-shadow:0 0 0 2px var(--accent-color);opacity:1}.flag-button img{border-radius:4px;height:100%;object-fit:contain;width:100%}:root[data-theme=dark] .flag-button{filter:brightness(.9)}:root[data-theme=dark] .flag-button:hover{filter:brightness(1)}:root[data-theme=dark] .flag-button.selected{box-shadow:0 0 0 2px var(--accent-color-dark)}@media (max-width:768px){.flag-button{height:32px;width:32px}}@media (max-width:480px){.flag-button{height:28px;width:28px}}.ai-recipe-filters{margin:0 auto;max-width:800px;padding:1rem;width:100%}.filter-controls{border-bottom:1px solid var(--border-color);display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;width:100%}.filter-group{flex:1 1;min-width:0;position:relative}.filter-label{color:var(--text-color-secondary);display:block;font-size:.75rem;margin-bottom:.25rem}.filter-select{appearance:none;background-color:var(--input-background);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;font-size:.875rem;padding:.5rem;transition:border-color .2s ease;width:100%}.filter-select:focus{border-color:var(--color-primary);outline:none}.filter-checkbox-group{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 6px #0000001a;left:0;margin-top:.25rem;max-height:400px;overflow-y:auto;padding:.5rem;position:absolute;top:100%;width:300px;z-index:10}.filter-group:last-child .filter-checkbox-group{left:auto;right:0}.filter-checkbox-group .MuiFormControlLabel-root{margin:0;min-height:32px;padding:2px 8px;width:100%}.filter-checkbox-label{align-items:center;color:var(--text-color);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;white-space:nowrap;width:100%}.filter-checkbox-group .MuiFormControlLabel-root:hover{background-color:var(--bg-hover);border-radius:4px}.filter-checkbox-group .MuiCheckbox-root{margin-right:4px;padding:4px}.active-filters{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.active-filter{align-items:center;background-color:var(--bg-tertiary);border:1px solid #0000;border-radius:20px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;margin-right:10px;padding:6px 14px;transition:all .3s ease}.active-filter:hover{background-color:var(--bg-primary);border-color:var(--accent-color)}.remove-filter{cursor:pointer;font-size:14px;margin-left:6px}.reset-filters{background-color:var(--bg-tertiary);border:none;border-radius:20px;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;padding:6px 14px;transition:all .3s ease}.reset-filters:hover{background-color:var(--bg-primary);border-color:var(--accent-color)}.MuiAccordion-root{background-color:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:none!important;margin:0!important}.MuiAccordion-root:before{display:none!important}.MuiAccordionSummary-root{min-height:56px!important;padding:0 1rem!important}.MuiAccordionSummary-content{margin:.75rem 0!important}.MuiAccordionDetails-root{border-top:1px solid var(--border-color);padding:1rem!important}.MuiToggleButtonGroup-root{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}.MuiToggleButton-root{border:1px solid var(--border-color)!important;border-radius:4px!important;flex:0 1 auto!important;min-width:fit-content!important;padding:.5rem 1rem!important;text-transform:none!important}.MuiToggleButton-root.Mui-selected{background-color:var(--accent-color)!important;color:#fff!important}.MuiCheckbox-root{color:var(--text-secondary)!important}.MuiCheckbox-root.Mui-checked{color:var(--accent-color)!important}.MuiFormControlLabel-root{margin:0!important}.MuiChip-root{background-color:var(--accent-color-light)!important;border-radius:16px!important;height:32px!important}.MuiChip-deleteIcon,.MuiChip-root{color:var(--text-primary)!important}.MuiChip-icon{color:var(--accent-color)!important}.MuiTypography-root{color:var(--text-primary)!important}.MuiTypography-subtitle2{color:var(--text-secondary)!important;font-weight:600!important}:root[data-theme=dark] .MuiAccordion-root{background-color:var(--bg-secondary-dark)!important;border-color:var(--border-color-dark)!important}:root[data-theme=dark] .MuiToggleButton-root{border-color:var(--border-color-dark)!important;color:var(--text-primary)!important}:root[data-theme=dark] .MuiChip-root{background-color:var(--accent-color-dark)!important}@media (max-width:600px){.ai-recipe-filters{padding:.5rem}.MuiToggleButtonGroup-root{flex-direction:column}.MuiToggleButton-root{width:100%!important}}.generation-progress{align-items:center;display:flex;flex-direction:column;margin:1rem 0;max-width:100%;padding:.5rem;width:100%}.progress-bar-container{background-color:var(--border-color);height:4px;margin-bottom:1rem;width:100%}.progress-bar,.progress-bar-container{border-radius:2px;overflow:hidden;position:relative}.progress-bar{background:linear-gradient(90deg,var(--accent-color) 0,var(--accent-color-hover) 100%);height:100%;transition:width .5s ease-in-out}.progress-bar:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.steps-container{align-items:center;display:flex;flex-direction:column;gap:.75rem;padding:0;position:relative;width:100%}.steps-container:before{background-color:var(--border-color);content:"";height:calc(100% - 50px);left:50%;position:absolute;top:25px;transform:translateX(-50%);width:2px;z-index:0}.step{flex-direction:row;gap:.75rem;width:100%;z-index:1}.step,.step-icon{align-items:center;display:flex;justify-content:center;position:relative}.step-icon{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;flex-shrink:0;font-size:1.2rem;height:40px;transition:all .3s ease;width:40px}.step.active .step-icon{background-color:var(--accent-color-light);border-color:var(--accent-color)}.step.current .step-icon{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;background-color:var(--bg-secondary);border-color:var(--accent-color);box-shadow:0 0 0 4px var(--accent-color-light);transform:scale(1.1)}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--accent-color-rgb),.4),0 0 0 4px rgba(var(--accent-color-rgb),.1)}70%{box-shadow:0 0 0 15px rgba(var(--accent-color-rgb),0),0 0 0 4px rgba(var(--accent-color-rgb),.1)}to{box-shadow:0 0 0 0 rgba(var(--accent-color-rgb),0),0 0 0 4px rgba(var(--accent-color-rgb),.1)}}.step-dot{background-color:var(--border-color);border-radius:50%;bottom:-4px;height:8px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:8px}.step.active .step-dot,.step.current .step-dot{background-color:var(--accent-color);height:6px;width:6px}.step.current .step-dot{animation:orbit 1.5s linear infinite;bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center}@keyframes orbit{0%{transform:translate(-50%,-50%) rotate(0deg) translateY(20px) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn) translateY(20px) rotate(-1turn)}}.step-label{color:var(--text-secondary);flex:1 1;font-size:.85rem;line-height:1.2;max-width:120px;text-align:center;transition:all .3s ease}.step.active .step-label{color:var(--text-primary);font-weight:500}.step.current .step-label{color:var(--accent-color);font-weight:600}:root[data-theme=dark] .step-icon{background-color:var(--bg-secondary-dark);border-color:var(--border-color-dark)}:root[data-theme=dark] .step.active .step-icon{background-color:var(--accent-color-dark);border-color:var(--accent-color)}:root[data-theme=dark] .step.current .step-icon{animation:pulse-dark 2s cubic-bezier(.4,0,.6,1) infinite;background-color:var(--bg-secondary-dark);border-color:var(--accent-color);box-shadow:0 0 0 4px var(--accent-color-dark)}@keyframes pulse-dark{0%{box-shadow:0 0 0 0 rgba(var(--accent-color-rgb),.4),0 0 0 4px rgba(var(--accent-color-rgb),.15)}70%{box-shadow:0 0 0 15px rgba(var(--accent-color-rgb),0),0 0 0 4px rgba(var(--accent-color-rgb),.15)}to{box-shadow:0 0 0 0 rgba(var(--accent-color-rgb),0),0 0 0 4px rgba(var(--accent-color-rgb),.15)}}:root[data-theme=dark] .progress-bar-container,:root[data-theme=dark] .step-dot,:root[data-theme=dark] .steps-container:before{background-color:var(--border-color-dark)}:root[data-theme=dark] .step.active .step-dot,:root[data-theme=dark] .step.current .step-dot{background-color:var(--accent-color);box-shadow:0 0 5px rgba(var(--accent-color-rgb),.5)}
/*# sourceMappingURL=main.eb81198b.css.map*/