:root{--primary-50: #E8F5E9;--primary-100: #C8E6C9;--primary-500: #10B981;--primary-600: #059669;--primary-700: #047857;--primary-900: #064E3B;--secondary-50: #FFF7ED;--secondary-100: #FFEDD5;--secondary-500: #F97316;--secondary-600: #EA580C;--secondary-700: #C2410C;--accent-purple: #8B5CF6;--accent-blue: #3B82F6;--text-primary: #1F2937;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--background: #FAFAFA;--surface: #FFFFFF;--surface-elevated: #FFFFFF;--success: #10B981;--success-bg: #D1FAE5;--warning: #F59E0B;--warning-bg: #FEF3C7;--error: #EF4444;--error-hover: #DC2626;--error-bg: #FEE2E2;--info: #3B82F6;--info-bg: #DBEAFE;--border-light: #E5E7EB;--border-medium: #D1D5DB;--border-dark: #9CA3AF;--disabled-bg: #F3F4F6;--disabled-text: #9CA3AF;--overlay: rgba(0, 0, 0, .5);--gradient-primary: linear-gradient(135deg, #10B981 0%, #059669 100%);--gradient-primary-vibrant: linear-gradient(135deg, #10B981 0%, #8B5CF6 100%);--gradient-secondary: linear-gradient(135deg, #F97316 0%, #FB923C 100%);--gradient-sunset: linear-gradient(135deg, #F97316 0%, #EF4444 100%);--gradient-ocean: linear-gradient(135deg, #3B82F6 0%, #8B5CF6 100%);--gradient-night: linear-gradient(135deg, #1F2937 0%, #374151 100%);--gradient-light: linear-gradient(180deg, #FFFFFF 0%, #F9FAFB 100%);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-none: 0;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-primary: 0 10px 20px -5px rgba(16, 185, 129, .3);--shadow-secondary: 0 10px 20px -5px rgba(249, 115, 22, .3);--shadow-error: 0 10px 20px -5px rgba(239, 68, 68, .3);--focus-ring-primary: 0 0 0 3px rgba(16, 185, 129, .2);--focus-ring-error: 0 0 0 3px rgba(239, 68, 68, .2);--focus-ring-secondary: 0 0 0 3px rgba(249, 115, 22, .2);--text-xs: clamp(.75rem, .7rem + .25vw, .875rem);--text-sm: clamp(.875rem, .8rem + .375vw, 1rem);--text-base: clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg: clamp(1.125rem, 1rem + .625vw, 1.25rem);--text-xl: clamp(1.25rem, 1.1rem + .75vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);--text-3xl: clamp(2rem, 1.7rem + 1.5vw, 2.75rem);--text-4xl: clamp(2.5rem, 2rem + 2.5vw, 3.75rem);--text-5xl: clamp(3rem, 2.5rem + 2.5vw, 4.5rem);--font-light: 300;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--duration-150: .15s;--duration-200: .2s;--duration-300: .3s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--transition-base: all .2s var(--ease-in-out);--primary-color: var(--primary-500);--secondary-color: var(--secondary-500);--text-color: var(--text-primary);--background-color: var(--background);--card-background: var(--surface)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--background);color:var(--text-primary);line-height:var(--leading-normal)}.app{display:flex;flex-direction:column;min-height:100vh}header{background:linear-gradient(135deg,var(--primary-color) 0%,#45a049 100%);color:#fff;padding:var(--space-4);box-shadow:var(--shadow-md)}nav{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;width:100%}.logo{font-size:var(--text-2xl);font-weight:var(--font-bold);color:#fff;text-decoration:none}.nav-links{display:flex;gap:var(--space-6)}.nav-link{color:#fff;text-decoration:none;font-weight:var(--font-medium);transition:var(--transition-base)}.nav-link:hover{opacity:.9}.logout-btn{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit;color:#fff;padding:0}.register-btn{background-color:#fff;color:var(--primary-600);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-weight:var(--font-semibold);transition:var(--transition-base)}.register-btn:hover{background-color:var(--primary-50);transform:translateY(-2px);box-shadow:var(--shadow-md)}.hamburger-btn{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:var(--space-2);z-index:1001}.hamburger-line{display:block;width:25px;height:3px;background-color:#fff;border-radius:2px;transition:transform .3s ease,opacity .3s ease}.hamburger-line.open:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.mobile-overlay{display:none}main{flex-grow:1;width:100%}footer{background:linear-gradient(135deg,var(--primary-color) 0%,#45a049 100%);color:#fff;text-align:center;padding:var(--space-8);margin-top:auto}@media (max-width: 992px){.nav-links{gap:var(--space-4)}.nav-link{font-size:var(--text-sm)}.logo{font-size:var(--text-xl)}}@media (max-width: 768px){header{padding:var(--space-3)}nav{position:relative}.logo{font-size:var(--text-lg);z-index:1001}.hamburger-btn{display:flex}.nav-links{position:fixed;top:0;right:-100%;width:280px;height:100vh;flex-direction:column;background:linear-gradient(180deg,var(--primary-600) 0%,var(--primary-700) 100%);padding:80px var(--space-6) var(--space-6);gap:0;box-shadow:var(--shadow-xl);transition:right .3s ease;z-index:1000;overflow-y:auto}.nav-links.open{right:0}.nav-link{padding:var(--space-4);border-bottom:1px solid rgba(255,255,255,.1);font-size:var(--text-base);width:100%;text-align:left}.nav-link:hover{background-color:#ffffff1a}.logout-btn{text-align:left;padding:var(--space-4);border-bottom:1px solid rgba(255,255,255,.1);width:100%}.register-btn{margin-top:var(--space-4);text-align:center;border-radius:var(--radius-lg)}.register-btn:hover{transform:none}.mobile-overlay{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;background-color:#00000080;z-index:999}footer{padding:var(--space-4);font-size:var(--text-sm)}}@media (max-width: 480px){header{padding:var(--space-2) var(--space-3)}.logo{font-size:var(--text-base)}.nav-links{width:100%;right:-100%}.nav-links.open{right:0}}.base-input[data-v-02081b30]{margin-bottom:var(--space-6)}.input-label[data-v-02081b30]{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--text-primary);letter-spacing:.025em}.required[data-v-02081b30]{color:var(--error);margin-left:var(--space-1)}.input-field[data-v-02081b30]{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--text-base);color:var(--text-primary);background:var(--surface);transition:border-color var(--duration-200) var(--ease-out),box-shadow var(--duration-200) var(--ease-out)}.input-field[data-v-02081b30]::placeholder{color:var(--text-tertiary)}.input-field[data-v-02081b30]:hover:not(:focus):not(:disabled){border-color:var(--border-medium)}.input-field[data-v-02081b30]:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--focus-ring-primary)}.input-field[data-v-02081b30]:disabled{background-color:var(--disabled-bg);color:var(--disabled-text);cursor:not-allowed;border-color:var(--border-light)}.input-field.has-error[data-v-02081b30]{border-color:var(--error)}.input-field.has-error[data-v-02081b30]:focus{border-color:var(--error);box-shadow:var(--focus-ring-error)}.input-hint[data-v-02081b30]{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.input-error[data-v-02081b30]{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--error);display:flex;align-items:center;gap:var(--space-2)}.base-button[data-v-e4b98f3d]{border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-6);font-weight:var(--font-semibold);font-size:var(--text-base);cursor:pointer;transition:all var(--duration-200) var(--ease-out);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;letter-spacing:.025em}.base-button[data-v-e4b98f3d]:focus-visible{outline:none;box-shadow:var(--focus-ring-primary)}.primary[data-v-e4b98f3d]{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.primary[data-v-e4b98f3d]:hover:not(.is-disabled):not(.is-loading){box-shadow:var(--shadow-primary);transform:translateY(-2px)}.primary[data-v-e4b98f3d]:active:not(.is-disabled):not(.is-loading){transform:translateY(0)}.secondary[data-v-e4b98f3d]{background:var(--gradient-secondary);color:#fff;box-shadow:var(--shadow-md)}.secondary[data-v-e4b98f3d]:hover:not(.is-disabled):not(.is-loading){box-shadow:var(--shadow-secondary);transform:translateY(-2px)}.secondary[data-v-e4b98f3d]:active:not(.is-disabled):not(.is-loading){transform:translateY(0)}.danger[data-v-e4b98f3d]{background:var(--error);color:#fff;box-shadow:var(--shadow-md)}.danger[data-v-e4b98f3d]:hover:not(.is-disabled):not(.is-loading){background:var(--error-hover);box-shadow:var(--shadow-error);transform:translateY(-2px)}.danger[data-v-e4b98f3d]:active:not(.is-disabled):not(.is-loading){transform:translateY(0)}.ghost[data-v-e4b98f3d]{background-color:transparent;color:var(--primary-500);border:2px solid var(--primary-500)}.ghost[data-v-e4b98f3d]:hover:not(.is-disabled):not(.is-loading){background-color:var(--primary-50)}.is-loading[data-v-e4b98f3d],.is-disabled[data-v-e4b98f3d]{background:var(--disabled-bg);color:var(--disabled-text);cursor:not-allowed;box-shadow:none;transform:none}.loading-spinner[data-v-e4b98f3d]{animation:spin-e4b98f3d .6s linear infinite}@keyframes spin-e4b98f3d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.recipe-card[data-v-8d48d72c]{background-color:var(--surface);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--duration-200) var(--ease-out);display:flex;gap:var(--space-4);align-items:flex-start}.recipe-card[data-v-8d48d72c]:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.recipe-image[data-v-8d48d72c]{width:64px;height:64px;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0}.recipe-icon[data-v-8d48d72c]{width:64px;height:64px;background:var(--gradient-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.recipe-icon span[data-v-8d48d72c]{font-size:1.75rem}.recipe-info[data-v-8d48d72c]{flex:1;min-width:0}.recipe-title[data-v-8d48d72c]{color:var(--primary-600);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-description[data-v-8d48d72c]{color:var(--text-secondary);font-size:var(--text-sm);margin:0 0 var(--space-3) 0;line-height:var(--leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta[data-v-8d48d72c]{display:flex;flex-wrap:wrap;gap:var(--space-3)}.meta-item[data-v-8d48d72c]{color:var(--text-tertiary);font-size:var(--text-sm)}.recipe-actions[data-v-8d48d72c]{display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0}@media (max-width: 768px){.recipe-card[data-v-8d48d72c]{flex-direction:column}.recipe-image[data-v-8d48d72c]{width:100%;height:120px}.recipe-icon[data-v-8d48d72c]{width:100%;height:80px}.recipe-icon span[data-v-8d48d72c]{font-size:2rem}.recipe-actions[data-v-8d48d72c]{flex-direction:row;width:100%}}.modal-overlay[data-v-19bad730]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.assign-day-modal[data-v-19bad730]{background:#fff;border-radius:16px;padding:1.5rem;width:90%;max-width:360px;text-align:center}.assign-day-modal h3[data-v-19bad730]{margin:0 0 .25rem;font-size:1.1rem;color:var(--primary-600, #388e3c)}.modal-subtitle[data-v-19bad730]{margin:0 0 1.25rem;font-size:.85rem;color:#888}.day-buttons[data-v-19bad730]{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.day-btn[data-v-19bad730]{padding:.75rem;border:1px solid #e0e0e0;border-radius:10px;background:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.day-btn[data-v-19bad730]:hover{background:var(--primary-500, #4caf50);color:#fff;border-color:var(--primary-500, #4caf50)}.btn-cancel[data-v-19bad730]{padding:.5rem 1.5rem;border:none;border-radius:8px;background:#f0f0f0;color:#666;font-size:.85rem;cursor:pointer;font-family:inherit}.btn-cancel[data-v-19bad730]:hover{background:#e0e0e0}.modal-overlay[data-v-e62935c7]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.recipe-picker-modal[data-v-e62935c7]{background:#fff;border-radius:16px;width:90%;max-width:440px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.picker-header[data-v-e62935c7]{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.25rem .75rem}.picker-header h3[data-v-e62935c7]{margin:0;font-size:1.1rem;color:var(--text-primary)}.close-btn[data-v-e62935c7]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);line-height:1;padding:.25rem}.close-btn[data-v-e62935c7]:hover{color:var(--text-primary)}.search-input[data-v-e62935c7]{margin:0 1.25rem .75rem;padding:.6rem .75rem;border:1px solid var(--border-light);border-radius:8px;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s}.search-input[data-v-e62935c7]:focus{border-color:var(--primary-500)}.picker-loading[data-v-e62935c7]{padding:2rem;text-align:center;color:var(--text-tertiary)}.recipe-list[data-v-e62935c7]{overflow-y:auto;padding:0 .5rem .75rem;flex:1}.recipe-item[data-v-e62935c7]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem .75rem;border:none;border-radius:10px;background:none;cursor:pointer;text-align:left;font-family:inherit;transition:background .12s}.recipe-item[data-v-e62935c7]:hover{background:var(--primary-50)}.recipe-thumb[data-v-e62935c7]{width:40px;height:40px;border-radius:8px;object-fit:cover;flex-shrink:0}.recipe-thumb-placeholder[data-v-e62935c7]{width:40px;height:40px;border-radius:8px;background:var(--gradient-primary);flex-shrink:0}.recipe-name[data-v-e62935c7]{font-size:.9rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-results[data-v-e62935c7]{padding:1.5rem;text-align:center;color:var(--text-tertiary);font-size:.9rem}.shopping-list-item[data-v-45184589]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);transition:var(--transition-base)}.shopping-list-item[data-v-45184589]:hover{background:var(--disabled-bg)}.shopping-list-item.is-checked[data-v-45184589]{background:#4caf500d}.checkbox-wrapper[data-v-45184589]{position:relative;display:flex;align-items:center;cursor:pointer}.checkbox-wrapper input[data-v-45184589]{position:absolute;opacity:0;width:0;height:0}.checkbox-custom[data-v-45184589]{width:22px;height:22px;border:2px solid var(--border-medium);border-radius:var(--radius-sm);transition:var(--transition-base);display:flex;align-items:center;justify-content:center}.checkbox-custom[data-v-45184589]:after{content:"";display:none;width:6px;height:12px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.checkbox-wrapper input:checked+.checkbox-custom[data-v-45184589]{background:var(--primary-500);border-color:var(--primary-500)}.checkbox-wrapper input:checked+.checkbox-custom[data-v-45184589]:after{display:block}.checkbox-wrapper:hover .checkbox-custom[data-v-45184589]{border-color:var(--primary-500)}.item-content[data-v-45184589]{flex:1;display:flex;gap:var(--space-2);font-size:var(--text-base)}.item-quantities[data-v-45184589]{color:var(--primary-600);font-weight:var(--font-medium);white-space:nowrap}.quantity[data-v-45184589]{font-weight:var(--font-semibold)}.unit[data-v-45184589]{font-size:var(--text-sm);color:var(--text-secondary)}.item-name[data-v-45184589]{color:var(--text-primary)}.home[data-v-9137130f],.recipes-section[data-v-9137130f]{padding:0}.dashboard[data-v-9137130f]{display:grid;grid-template-columns:340px 1fr 340px;min-height:calc(100vh - 64px)}.dashboard-sidebar[data-v-9137130f]{padding:1rem;border-right:1px solid #f0f0f0}.dashboard-sidebar[data-v-9137130f]:last-child{border-right:none;border-left:1px solid #f0f0f0}.dashboard-main[data-v-9137130f]{padding:1rem 1.5rem}.dashboard-card[data-v-9137130f]{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;display:flex;flex-direction:column;position:sticky;top:1rem}.card-header[data-v-9137130f]{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;border-bottom:1px solid #f0f0f0}.card-header h2[data-v-9137130f]{margin:0;font-size:1rem;color:var(--primary-color);flex:1}.card-icon[data-v-9137130f]{font-size:1.2rem}.item-count[data-v-9137130f]{font-size:.8rem;color:#999;background:#f5f5f5;padding:.15rem .5rem;border-radius:10px}.card-body[data-v-9137130f]{padding:1rem 1.25rem;flex:1}.card-loading[data-v-9137130f]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem 0;color:#999;font-size:.9rem}.spinner[data-v-9137130f]{width:18px;height:18px;border:2px solid #e0e0e0;border-top-color:var(--primary-color);border-radius:50%;animation:spin-9137130f .8s linear infinite}@keyframes spin-9137130f{to{transform:rotate(360deg)}}.card-empty[data-v-9137130f]{text-align:center;padding:1.5rem 0;color:#999;font-size:.9rem}.card-empty .hint[data-v-9137130f]{font-size:.8rem;margin-top:.5rem;color:#bbb}.shopping-toolbar[data-v-9137130f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.toolbar-actions[data-v-9137130f]{display:flex;gap:.35rem}.toolbar-btn[data-v-9137130f]{padding:.25rem .5rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:.75rem;color:#888;cursor:pointer;transition:all .15s ease}.toolbar-btn[data-v-9137130f]:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.toolbar-btn[data-v-9137130f]:disabled{opacity:.5;cursor:not-allowed}.action-btn[data-v-9137130f]:hover:not(:disabled){background:#f5f5f5}.share-btn[data-v-9137130f]{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.share-btn[data-v-9137130f]:hover:not(:disabled){background:#388e3c;border-color:#388e3c;color:#fff}.share-btn[data-v-9137130f]:disabled{background:#e0e0e0;border-color:#e0e0e0;color:#999}.shopping-items[data-v-9137130f]{max-height:400px;overflow-y:auto;margin:0 -1.25rem}.import-bar[data-v-9137130f]{margin-bottom:1rem}.import-form[data-v-9137130f]{display:flex;gap:.5rem;align-items:center}.import-input[data-v-9137130f]{flex:1;padding:.6rem .75rem;border:1px solid #e0e0e0;border-radius:8px;font-size:.85rem;font-family:inherit;transition:border-color .15s ease;box-sizing:border-box}.import-input[data-v-9137130f]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4caf501a}.import-input[data-v-9137130f]:disabled{background:#f9f9f9;color:#999}.import-btn[data-v-9137130f]{flex-shrink:0}.import-error[data-v-9137130f]{margin-top:.5rem;padding:.5rem;background:#d32f2f14;color:#d32f2f;border-radius:6px;font-size:.8rem}.import-success[data-v-9137130f]{margin-top:.5rem;padding:.5rem;background:#4caf5014;color:var(--primary-color);border-radius:6px;font-size:.8rem}.week-planner-link[data-v-9137130f]{font-size:.8rem;color:var(--primary-color);font-weight:500;cursor:pointer;white-space:nowrap}.week-planner-link[data-v-9137130f]:hover{text-decoration:underline}.week-nav[data-v-9137130f]{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.75rem}.week-range[data-v-9137130f]{font-size:.8rem;color:#999;font-weight:400}.week-nav-btn[data-v-9137130f]{width:28px;height:28px;border:1px solid #e0e0e0;border-radius:50%;background:#fff;font-size:1rem;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.week-nav-btn[data-v-9137130f]:hover{border-color:var(--primary-color);color:var(--primary-color);background:#4caf500d}.week-days-vertical[data-v-9137130f]{display:flex;flex-direction:column;gap:.35rem}.week-day-row[data-v-9137130f]{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:8px;border:1px solid #e8e8e8;cursor:pointer;transition:all .15s ease}.week-day-row[data-v-9137130f]:hover{border-color:var(--primary-color);background:#4caf500a}.week-day-row.is-today[data-v-9137130f]{border-color:var(--primary-color);background:#4caf500f}.week-day-row.is-today .week-day-name[data-v-9137130f]{color:var(--primary-color)}.week-day-name[data-v-9137130f]{font-size:.7rem;font-weight:600;text-transform:uppercase;color:#888;letter-spacing:.02em;min-width:28px}.week-day-recipe[data-v-9137130f]{font-size:.8rem;font-weight:500;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.week-day-empty[data-v-9137130f]{font-size:1rem;color:#ccc;line-height:1}.week-day-remove[data-v-9137130f]{flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:#ccc;font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;padding:0}.week-day-remove[data-v-9137130f]:hover{background:#fee;color:#d32f2f}.search-bar[data-v-9137130f]{margin-bottom:1rem}.search-input[data-v-9137130f]{width:100%;padding:.6rem .75rem;border:1px solid #e0e0e0;border-radius:8px;font-size:.9rem;font-family:inherit;transition:border-color .15s ease;box-sizing:border-box}.search-input[data-v-9137130f]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4caf501a}.filter-bar[data-v-9137130f]{display:flex;justify-content:flex-end;margin-bottom:.75rem}.archive-toggle[data-v-9137130f]{padding:.4rem .75rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:.8rem;color:#666;cursor:pointer;font-family:inherit;transition:all .15s ease}.archive-toggle[data-v-9137130f]:hover{border-color:var(--primary-color);color:var(--primary-color)}.archive-toggle.active[data-v-9137130f]{background:#fff3e0;border-color:#ff9800;color:#e65100}.archive-btn[data-v-9137130f],.unarchive-btn[data-v-9137130f]{width:32px;height:32px;border:1px solid #e0e0e0;border-radius:50%;background:#fff;font-size:1rem;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.archive-btn[data-v-9137130f]:hover{border-color:#ff9800;color:#e65100;background:#fff3e0}.unarchive-btn[data-v-9137130f]:hover{border-color:var(--primary-color);color:var(--primary-color);background:#4caf500d}.protein-filters[data-v-9137130f]{display:flex;gap:.5rem;margin-bottom:1.5rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.protein-card[data-v-9137130f]{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem 1rem;border:2px solid #e0e0e0;border-radius:12px;background:#fff;cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0;font-family:inherit}.protein-card[data-v-9137130f]:hover{border-color:var(--primary-color);background-color:#4caf500d}.protein-card.active[data-v-9137130f]{border-color:var(--primary-color);background-color:var(--primary-color);color:#fff}.protein-emoji[data-v-9137130f]{font-size:1.4rem;line-height:1}.protein-label[data-v-9137130f]{font-size:.75rem;font-weight:500}.recipe-grid[data-v-9137130f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.add-to-planner-btn[data-v-9137130f]{width:32px;height:32px;border:1px solid #e0e0e0;border-radius:50%;background:#fff;font-size:1.2rem;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.add-to-planner-btn[data-v-9137130f]:hover{border-color:var(--primary-color);color:var(--primary-color);background:#4caf500d}.loading-state[data-v-9137130f]{text-align:center;padding:4rem 2rem;color:#666;font-size:1.1rem}.empty-state[data-v-9137130f]{text-align:center;padding:4rem 2rem;color:#666}.empty-state p[data-v-9137130f]{font-size:1.2rem;margin-bottom:1.5rem}.login-section[data-v-9137130f]{display:flex;justify-content:center;align-items:center;padding:2rem 1rem;min-height:calc(100vh - 180px)}.auth-container[data-v-9137130f]{width:100%;max-width:450px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:2rem}.auth-container h1[data-v-9137130f]{text-align:center;margin-bottom:2rem;color:var(--primary-color)}.success-message[data-v-9137130f]{background-color:#4caf501a;color:var(--primary-color);padding:.75rem;border-radius:4px;margin-bottom:1.5rem;text-align:center}.auth-form[data-v-9137130f]{display:flex;flex-direction:column}.error-message[data-v-9137130f]{color:#d32f2f;margin-bottom:1.5rem;padding:.75rem;background-color:#d32f2f1a;border-radius:4px}.form-buttons[data-v-9137130f]{margin-top:1rem}.submit-btn[data-v-9137130f]{width:100%}.auth-links[data-v-9137130f]{margin-top:1.5rem;text-align:center;font-size:.9rem}.auth-links a[data-v-9137130f]{color:var(--primary-color);text-decoration:none;font-weight:500}.auth-links a[data-v-9137130f]:hover{text-decoration:underline}@media (max-width: 1024px){.dashboard[data-v-9137130f]{grid-template-columns:1fr;min-height:auto}.dashboard-sidebar[data-v-9137130f]{border-right:none;border-left:none;border-bottom:1px solid #f0f0f0}.dashboard-sidebar[data-v-9137130f]:last-child{border-left:none;border-bottom:none;border-top:1px solid #f0f0f0}.dashboard-card[data-v-9137130f]{position:static}}@media (max-width: 768px){.recipe-grid[data-v-9137130f]{grid-template-columns:1fr}.import-form[data-v-9137130f]{flex-direction:column}.import-btn[data-v-9137130f]{width:100%}}.recipe-list[data-v-03259a65]{min-height:calc(100vh - 180px);padding:2rem 0}.container[data-v-03259a65]{max-width:1200px;margin:0 auto;padding:0 2rem}h1[data-v-03259a65]{text-align:center;margin-bottom:1rem;color:var(--primary-color);font-size:2.5rem;font-weight:300}.page-description[data-v-03259a65]{text-align:center;margin-bottom:3rem;color:#666;font-size:1.1rem}.loading[data-v-03259a65]{text-align:center;padding:4rem;font-size:1.2rem;color:#666}.no-recipes[data-v-03259a65]{display:flex;justify-content:center;align-items:center;min-height:400px}.no-recipes-content[data-v-03259a65]{text-align:center;max-width:500px}.no-recipes-icon[data-v-03259a65]{font-size:4rem;margin-bottom:1rem}.no-recipes-content h3[data-v-03259a65]{color:var(--primary-color);margin-bottom:1rem;font-size:1.5rem}.no-recipes-content p[data-v-03259a65]{color:#666;margin-bottom:2rem;line-height:1.6}.table-container[data-v-03259a65]{margin-top:2rem;overflow-x:auto;border-radius:12px;box-shadow:0 4px 6px #0000001a}.recipe-table[data-v-03259a65]{width:100%;background-color:var(--card-background);border-collapse:collapse;border-radius:12px;overflow:hidden}.recipe-table thead[data-v-03259a65]{background-color:var(--primary-color);color:#fff}.recipe-table th[data-v-03259a65]{padding:1rem;text-align:left;font-weight:600;font-size:.95rem}.recipe-table th.sortable[data-v-03259a65]{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;position:relative}.recipe-table th.sortable[data-v-03259a65]:hover{background-color:#ffffff1a}.sort-icon[data-v-03259a65]{display:inline-block;margin-left:.5rem;font-size:.8rem}.sort-arrow[data-v-03259a65]{color:#fff;font-weight:700}.sort-default[data-v-03259a65]{color:#fff9;font-size:.7rem}.recipe-table td[data-v-03259a65]{padding:1rem;border-bottom:1px solid #e5e5e5;vertical-align:middle}.recipe-row[data-v-03259a65]:hover{background-color:#f8f9fa}.recipe-title[data-v-03259a65]{font-weight:600;color:var(--primary-color);font-size:1.1rem}.recipe-ingredients[data-v-03259a65],.recipe-steps[data-v-03259a65]{color:#666;font-size:.95rem}.recipe-actions[data-v-03259a65]{text-align:center;display:flex;gap:.5rem;justify-content:center}.delete-btn[data-v-03259a65]{margin-left:.5rem}@media (max-width: 768px){h1[data-v-03259a65]{font-size:2rem}.container[data-v-03259a65]{padding:0 1rem}.recipe-table th[data-v-03259a65],.recipe-table td[data-v-03259a65]{padding:.75rem .5rem;font-size:.9rem}.recipe-title[data-v-03259a65]{font-size:1rem}}.modal-overlay[data-v-c09de7f7]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--overlay);display:flex;justify-content:center;align-items:center;z-index:1000;padding:var(--space-4)}.modal-content[data-v-c09de7f7]{background-color:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:100%;max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header[data-v-c09de7f7]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--border-light)}.modal-header h2[data-v-c09de7f7]{margin:0;font-size:var(--text-xl);color:var(--primary-600);font-weight:var(--font-semibold)}.close-btn[data-v-c09de7f7]{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);padding:var(--space-2);line-height:1;border-radius:var(--radius-md);transition:all var(--duration-200) var(--ease-out)}.close-btn[data-v-c09de7f7]:hover{background-color:var(--disabled-bg);color:var(--text-primary)}.modal-body[data-v-c09de7f7]{padding:var(--space-6);overflow-y:auto;flex-grow:1}.loading[data-v-c09de7f7]{text-align:center;padding:var(--space-8);color:var(--text-secondary)}.no-albums[data-v-c09de7f7]{text-align:center;padding:var(--space-8)}.no-albums p[data-v-c09de7f7]{color:var(--text-secondary);margin-bottom:var(--space-4)}.albums-list[data-v-c09de7f7]{display:flex;flex-direction:column;gap:var(--space-3)}.album-item[data-v-c09de7f7]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-200) var(--ease-out)}.album-item[data-v-c09de7f7]:hover,.album-item.selected[data-v-c09de7f7]{border-color:var(--primary-500);background-color:var(--primary-50)}.album-icon[data-v-c09de7f7]{font-size:1.5rem;flex-shrink:0}.album-info[data-v-c09de7f7]{flex-grow:1;min-width:0}.album-name[data-v-c09de7f7]{display:block;font-weight:var(--font-medium);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-description[data-v-c09de7f7]{display:block;font-size:var(--text-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:var(--space-1)}.check-icon[data-v-c09de7f7]{color:var(--primary-500);font-weight:var(--font-bold);font-size:1.25rem}.error-message[data-v-c09de7f7]{background-color:var(--error-bg);color:var(--error);padding:var(--space-3);border-radius:var(--radius-md);margin-top:var(--space-4);font-size:var(--text-sm)}.modal-footer[data-v-c09de7f7]{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-6);border-top:1px solid var(--border-light)}.modal-enter-active[data-v-c09de7f7],.modal-leave-active[data-v-c09de7f7]{transition:opacity var(--duration-200) var(--ease-out)}.modal-enter-active .modal-content[data-v-c09de7f7],.modal-leave-active .modal-content[data-v-c09de7f7]{transition:transform var(--duration-200) var(--ease-out)}.modal-enter-from[data-v-c09de7f7],.modal-leave-to[data-v-c09de7f7]{opacity:0}.modal-enter-from .modal-content[data-v-c09de7f7],.modal-leave-to .modal-content[data-v-c09de7f7]{transform:scale(.95) translateY(-20px)}@media (max-width: 480px){.modal-overlay[data-v-c09de7f7]{padding:var(--space-2)}.modal-header[data-v-c09de7f7],.modal-body[data-v-c09de7f7],.modal-footer[data-v-c09de7f7]{padding:var(--space-4)}.modal-footer[data-v-c09de7f7]{flex-direction:column-reverse}}.toast-container[data-v-6525600c]{position:fixed;z-index:1000;pointer-events:none}.toast-container.top-right[data-v-6525600c]{top:1rem;right:1rem}.toast-container.top-left[data-v-6525600c]{top:1rem;left:1rem}.toast-container.bottom-right[data-v-6525600c]{bottom:1rem;right:1rem}.toast-container.bottom-left[data-v-6525600c]{bottom:1rem;left:1rem}.toast-container.top-center[data-v-6525600c]{top:1rem;left:50%;transform:translate(-50%)}.toast[data-v-6525600c]{display:flex;align-items:flex-start;gap:.75rem;min-width:300px;max-width:500px;padding:1rem;border-radius:8px;box-shadow:0 4px 12px #00000026;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast.success[data-v-6525600c]{background-color:#4caf50f2;color:#fff;border:1px solid rgba(76,175,80,.3)}.toast.error[data-v-6525600c]{background-color:#d32f2ff2;color:#fff;border:1px solid rgba(211,47,47,.3)}.toast.warning[data-v-6525600c]{background-color:#ff9800f2;color:#fff;border:1px solid rgba(255,152,0,.3)}.toast.info[data-v-6525600c]{background-color:#2196f3f2;color:#fff;border:1px solid rgba(33,150,243,.3)}.toast-icon[data-v-6525600c]{font-size:1.25rem;font-weight:700;flex-shrink:0;margin-top:.125rem}.toast-content[data-v-6525600c]{flex-grow:1}.toast-title[data-v-6525600c]{font-weight:600;margin-bottom:.25rem}.toast-message[data-v-6525600c]{font-size:.9rem;line-height:1.4}.toast-close[data-v-6525600c]{background:none;border:none;color:inherit;font-size:1rem;cursor:pointer;padding:.25rem;margin:-.25rem;border-radius:4px;opacity:.8;transition:opacity .2s}.toast-close[data-v-6525600c]:hover{opacity:1;background-color:#ffffff1a}.toast-enter-active[data-v-6525600c],.toast-leave-active[data-v-6525600c]{transition:all .3s ease}.toast-enter-from[data-v-6525600c],.toast-leave-to[data-v-6525600c]{opacity:0;transform:translate(100%)}.top-left .toast-enter-from[data-v-6525600c],.top-left .toast-leave-to[data-v-6525600c]{transform:translate(-100%)}.top-center .toast-enter-from[data-v-6525600c],.top-center .toast-leave-to[data-v-6525600c]{transform:translateY(-100%)}.bottom-right .toast-enter-from[data-v-6525600c],.bottom-right .toast-leave-to[data-v-6525600c]{transform:translate(100%)}.bottom-left .toast-enter-from[data-v-6525600c],.bottom-left .toast-leave-to[data-v-6525600c]{transform:translate(-100%)}.recipe-detail[data-v-fd8a24ec]{max-width:800px;margin:0 auto;padding:1rem}.loading[data-v-fd8a24ec],.error[data-v-fd8a24ec]{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.error[data-v-fd8a24ec]{color:#d32f2f}.recipe-header[data-v-fd8a24ec]{margin-bottom:2rem}.header-top[data-v-fd8a24ec]{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.recipe-header h1[data-v-fd8a24ec]{color:var(--primary-color);margin-bottom:1rem;font-size:2rem}.add-to-album-btn[data-v-fd8a24ec]{background-color:var(--primary-50);color:var(--primary-600);border:2px solid var(--primary-500);padding:.5rem 1rem;border-radius:var(--radius-lg);font-size:.9rem;font-weight:var(--font-medium);cursor:pointer;transition:all .2s ease;white-space:nowrap;flex-shrink:0}.add-to-album-btn[data-v-fd8a24ec]:hover{background-color:var(--primary-500);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-md)}.recipe-meta[data-v-fd8a24ec]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;color:#666}.recipe-image-container[data-v-fd8a24ec]{margin-bottom:2rem;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md)}.recipe-image[data-v-fd8a24ec]{width:100%;max-height:400px;object-fit:cover;display:block}.recipe-description[data-v-fd8a24ec]{margin-bottom:2rem;line-height:1.6;color:#444}.recipe-ingredients[data-v-fd8a24ec]{margin-bottom:2rem;background-color:#f9f9f9;padding:1.5rem;border-radius:8px}.ingredients-header[data-v-fd8a24ec]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.recipe-ingredients h2[data-v-fd8a24ec]{color:var(--primary-color);font-size:1.5rem;margin:0}.ingredients-actions[data-v-fd8a24ec]{display:flex;gap:.5rem;align-items:center}.select-all-btn[data-v-fd8a24ec]{background-color:#f0f0f0;color:#333;border:1px solid #ddd;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.select-all-btn[data-v-fd8a24ec]:hover{background-color:#e0e0e0}.share-btn[data-v-fd8a24ec]{background-color:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.3rem;white-space:nowrap}.share-btn[data-v-fd8a24ec]:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.share-btn[data-v-fd8a24ec]:active:not(:disabled){transform:translateY(0)}.share-btn[data-v-fd8a24ec]:disabled{opacity:.5;cursor:not-allowed}.ingredients-list[data-v-fd8a24ec]{list-style:none;padding-left:0;line-height:1.8}.ingredient-item[data-v-fd8a24ec]{padding:.5rem 0;color:#444}.ingredient-checkbox[data-v-fd8a24ec]{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease;padding:.5rem;border-radius:4px;margin:-.5rem}.ingredient-checkbox[data-v-fd8a24ec]:hover{background-color:#00000005}.ingredient-checkbox input[type=checkbox][data-v-fd8a24ec]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0}.ingredient-checkbox span[data-v-fd8a24ec]{flex:1}.recipe-instructions[data-v-fd8a24ec]{margin-bottom:2rem}.recipe-instructions h2[data-v-fd8a24ec]{color:var(--primary-color);margin-bottom:1rem;font-size:1.5rem}.instruction-step[data-v-fd8a24ec]{display:flex;margin-bottom:1rem;padding:1rem;background-color:#f5f5f5;border-radius:8px}.step-number[data-v-fd8a24ec]{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background-color:var(--primary-color);color:#fff;border-radius:50%;font-weight:700;margin-right:1rem;flex-shrink:0}.step-content[data-v-fd8a24ec]{flex-grow:1;padding-top:.5rem}.no-instructions[data-v-fd8a24ec]{color:#666;font-style:italic}.recipe-cuisine[data-v-fd8a24ec]{margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}.recipe-cuisine h3[data-v-fd8a24ec]{color:var(--primary-color);margin-bottom:.5rem;font-size:1.2rem}.create-recipe[data-v-69010e4a]{max-width:800px;margin:0 auto;padding:1rem}.page-header[data-v-69010e4a]{text-align:center;margin-bottom:3rem}.page-header h1[data-v-69010e4a]{color:var(--primary-color);font-size:2.5rem;font-weight:300;margin-bottom:1rem}.page-description[data-v-69010e4a]{color:#666;font-size:1.1rem;max-width:600px;margin:0 auto;line-height:1.6}.recipe-form[data-v-69010e4a]{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a}.input-help[data-v-69010e4a]{margin-top:.5rem;font-size:.9rem;color:#666;font-style:italic}.guest-notice[data-v-69010e4a]{background:linear-gradient(135deg,#2196f31a,#2196f30d);border:1px solid rgba(33,150,243,.2);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;display:flex;gap:1rem;align-items:flex-start}.notice-icon[data-v-69010e4a]{font-size:1.5rem;flex-shrink:0}.notice-content h3[data-v-69010e4a]{color:#2196f3;margin:0 0 .5rem;font-size:1.1rem}.notice-content p[data-v-69010e4a]{margin:0 0 .5rem;color:#555;line-height:1.5}.notice-content p[data-v-69010e4a]:last-child{margin-bottom:0}.notice-content a[data-v-69010e4a]{color:#2196f3;text-decoration:none;font-weight:500}.notice-content a[data-v-69010e4a]:hover{text-decoration:underline}textarea[data-v-69010e4a]{resize:vertical}.checkbox-container[data-v-69010e4a]{display:flex;align-items:center;gap:.5rem}.checkbox-container input[data-v-69010e4a]{width:auto}.checkbox-container label[data-v-69010e4a]{margin-bottom:0;font-weight:400}.instructions-container[data-v-69010e4a]{margin-bottom:1rem}.instruction-step[data-v-69010e4a]{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:flex-start}.step-number[data-v-69010e4a]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background-color:var(--primary-color);color:#fff;border-radius:50%;font-weight:700;flex-shrink:0}.instruction-step textarea[data-v-69010e4a]{flex-grow:1}.remove-btn[data-v-69010e4a]{background-color:#d32f2f;color:#fff;border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;cursor:pointer;flex-shrink:0}.remove-btn[data-v-69010e4a]:disabled{background-color:#ccc;cursor:not-allowed}.add-btn[data-v-69010e4a]{background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;cursor:pointer;transition:opacity .2s}.add-btn[data-v-69010e4a]:hover{opacity:.9}.form-buttons[data-v-69010e4a]{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.loading-container[data-v-69010e4a]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;margin:2rem 0;background:linear-gradient(135deg,#4caf500d,#4caf501a);border-radius:8px;border:2px solid rgba(76,175,80,.2)}.loading-text[data-v-69010e4a]{font-size:1.1rem;font-weight:600;color:var(--primary-color);margin:0 0 1rem}.progress-bar[data-v-69010e4a]{width:100%;max-width:500px;height:8px;background-color:#4caf5033;border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill[data-v-69010e4a]{height:100%;background:linear-gradient(90deg,var(--primary-color) 0%,#66bb6a 50%,var(--primary-color) 100%);border-radius:4px;animation:progress-69010e4a 2s ease-in-out infinite;width:50%}@keyframes progress-69010e4a{0%{transform:translate(-100%)}to{transform:translate(200%)}}.loading-subtext[data-v-69010e4a]{font-size:.9rem;color:#666;margin:1rem 0 0}.error-message[data-v-69010e4a]{background-color:#ffebee;color:#c62828;padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:4px solid #c62828}.edit-recipe[data-v-4167e5ac]{max-width:800px;margin:0 auto;padding:1rem}.loading[data-v-4167e5ac],.error[data-v-4167e5ac]{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.error[data-v-4167e5ac]{color:#d32f2f}h1[data-v-4167e5ac]{text-align:center;margin-bottom:2rem;color:var(--primary-color)}.recipe-form[data-v-4167e5ac]{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a}.form-group[data-v-4167e5ac]{margin-bottom:1.5rem}.form-row[data-v-4167e5ac]{display:flex;gap:1rem;margin-bottom:1.5rem}@media (max-width: 768px){.form-row[data-v-4167e5ac]{flex-direction:column;gap:1rem}}label[data-v-4167e5ac]{display:block;margin-bottom:.5rem;font-weight:500;color:#444}input[type=text][data-v-4167e5ac],input[type=number][data-v-4167e5ac],textarea[data-v-4167e5ac],select[data-v-4167e5ac]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}textarea[data-v-4167e5ac]{resize:vertical}.checkbox-container[data-v-4167e5ac]{display:flex;align-items:center;gap:.5rem}.checkbox-container input[data-v-4167e5ac]{width:auto}.checkbox-container label[data-v-4167e5ac]{margin-bottom:0;font-weight:400}.instructions-container[data-v-4167e5ac]{margin-bottom:1rem}.instruction-step[data-v-4167e5ac]{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:flex-start}.step-number[data-v-4167e5ac]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background-color:var(--primary-color);color:#fff;border-radius:50%;font-weight:700;flex-shrink:0}.instruction-step textarea[data-v-4167e5ac]{flex-grow:1}.remove-btn[data-v-4167e5ac]{background-color:#d32f2f;color:#fff;border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1.2rem;cursor:pointer;flex-shrink:0}.remove-btn[data-v-4167e5ac]:disabled{background-color:#ccc;cursor:not-allowed}.add-btn[data-v-4167e5ac]{background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:500;cursor:pointer;transition:opacity .2s}.add-btn[data-v-4167e5ac]:hover{opacity:.9}.form-buttons[data-v-4167e5ac]{display:flex;justify-content:space-between;margin-top:2rem}.cancel-btn[data-v-4167e5ac]{background-color:#f5f5f5;color:#444;border:1px solid #ddd;border-radius:4px;padding:.75rem 1.5rem;font-weight:500;cursor:pointer;transition:background-color .2s}.cancel-btn[data-v-4167e5ac]:hover{background-color:#eee}.submit-btn[data-v-4167e5ac]{background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:.75rem 1.5rem;font-weight:500;cursor:pointer;transition:opacity .2s}.submit-btn[data-v-4167e5ac]:hover{opacity:.9}.submit-btn[data-v-4167e5ac]:disabled{background-color:#9e9e9e;cursor:not-allowed}.login-page[data-v-def6b6c2]{display:flex;justify-content:center;align-items:center;padding:2rem 1rem;min-height:calc(100vh - 180px)}.auth-container[data-v-def6b6c2]{width:100%;max-width:450px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:2rem}h1[data-v-def6b6c2]{text-align:center;margin-bottom:2rem;color:var(--primary-color)}.success-message[data-v-def6b6c2]{background-color:#4caf501a;color:var(--primary-color);padding:.75rem;border-radius:4px;margin-bottom:1.5rem;text-align:center}.auth-form[data-v-def6b6c2]{display:flex;flex-direction:column}.error-message[data-v-def6b6c2]{color:#d32f2f;margin-bottom:1.5rem;padding:.75rem;background-color:#d32f2f1a;border-radius:4px}.debug-info[data-v-def6b6c2]{margin-top:.5rem;font-size:.8rem;color:#666}.form-buttons[data-v-def6b6c2]{margin-top:1rem}.submit-btn[data-v-def6b6c2]{width:100%}.auth-links[data-v-def6b6c2]{margin-top:1.5rem;text-align:center;font-size:.9rem}.auth-links a[data-v-def6b6c2]{color:var(--primary-color);text-decoration:none;font-weight:500}.auth-links a[data-v-def6b6c2]:hover{text-decoration:underline}.register-page[data-v-e1e3640f]{display:flex;justify-content:center;align-items:center;padding:2rem 1rem;min-height:calc(100vh - 180px)}.auth-container[data-v-e1e3640f]{width:100%;max-width:450px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;padding:2rem}h1[data-v-e1e3640f]{text-align:center;margin-bottom:2rem;color:var(--primary-color)}.auth-form[data-v-e1e3640f]{display:flex;flex-direction:column}.input-with-status[data-v-e1e3640f]{position:relative}.field-status[data-v-e1e3640f]{font-size:.85rem;margin-top:-.75rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.field-status.checking[data-v-e1e3640f]{color:#666}.field-status.success[data-v-e1e3640f]{color:#2e7d32}.field-status.error[data-v-e1e3640f]{color:#d32f2f}.spinner[data-v-e1e3640f]{display:inline-block;width:14px;height:14px;border:2px solid #ccc;border-top-color:var(--primary-color, #1976d2);border-radius:50%;animation:spin-e1e3640f .8s linear infinite}@keyframes spin-e1e3640f{to{transform:rotate(360deg)}}.password-field-container[data-v-e1e3640f]{position:relative}.password-requirements[data-v-e1e3640f]{background-color:#f8f9fa;border-radius:6px;padding:.75rem 1rem;margin-top:-.5rem;margin-bottom:1rem;border:1px solid #e9ecef}.requirements-title[data-v-e1e3640f]{font-size:.85rem;color:#495057;margin:0 0 .5rem;font-weight:500}.requirements-list[data-v-e1e3640f]{list-style:none;padding:0;margin:0}.requirements-list li[data-v-e1e3640f]{font-size:.8rem;padding:.25rem 0;display:flex;align-items:center;gap:.5rem;color:#6c757d;transition:color .2s ease}.requirements-list li.valid[data-v-e1e3640f]{color:#2e7d32}.check-icon[data-v-e1e3640f]{font-weight:700;width:1rem;text-align:center}.requirements-list li:not(.valid) .check-icon[data-v-e1e3640f]{color:#dc3545}.requirements-list li.valid .check-icon[data-v-e1e3640f]{color:#2e7d32}.error-message[data-v-e1e3640f]{color:#d32f2f;margin-bottom:1.5rem;padding:.75rem;background-color:#d32f2f1a;border-radius:4px}.form-buttons[data-v-e1e3640f]{margin-top:1rem}.submit-btn[data-v-e1e3640f]{width:100%}.submit-btn[data-v-e1e3640f]:disabled{opacity:.6;cursor:not-allowed}.auth-links[data-v-e1e3640f]{margin-top:1.5rem;text-align:center;font-size:.9rem}.auth-links a[data-v-e1e3640f]{color:var(--primary-color);text-decoration:none;font-weight:500}.auth-links a[data-v-e1e3640f]:hover{text-decoration:underline}.album-card[data-v-5d578c30]{background-color:var(--surface);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-md);cursor:pointer;transition:all var(--duration-200) var(--ease-out);display:flex;gap:var(--space-4);align-items:flex-start}.album-card[data-v-5d578c30]:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.album-icon[data-v-5d578c30]{font-size:2.5rem;flex-shrink:0}.album-info[data-v-5d578c30]{flex-grow:1;min-width:0}.album-name[data-v-5d578c30]{color:var(--primary-600);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-2) 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-description[data-v-5d578c30]{color:var(--text-secondary);font-size:var(--text-sm);margin:0 0 var(--space-3) 0;line-height:var(--leading-relaxed);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.album-meta[data-v-5d578c30]{display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--text-tertiary);font-size:var(--text-xs)}.recipe-count[data-v-5d578c30]{background-color:var(--primary-50);color:var(--primary-600);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-medium)}@media (max-width: 480px){.album-card[data-v-5d578c30]{padding:var(--space-4)}.album-icon[data-v-5d578c30]{font-size:2rem}.album-name[data-v-5d578c30]{font-size:var(--text-base)}}.album-list[data-v-f64a0d83]{min-height:calc(100vh - 180px);padding:var(--space-8) 0}.container[data-v-f64a0d83]{max-width:1200px;margin:0 auto;padding:0 var(--space-8)}.page-header[data-v-f64a0d83]{text-align:center;margin-bottom:var(--space-8)}.page-header h1[data-v-f64a0d83]{color:var(--primary-600);font-size:var(--text-3xl);font-weight:var(--font-light);margin-bottom:var(--space-4)}.page-description[data-v-f64a0d83]{color:var(--text-secondary);font-size:var(--text-lg)}.actions-bar[data-v-f64a0d83]{display:flex;justify-content:flex-end;margin-bottom:var(--space-6)}.loading[data-v-f64a0d83]{text-align:center;padding:var(--space-16);font-size:var(--text-lg);color:var(--text-secondary)}.no-albums[data-v-f64a0d83]{display:flex;justify-content:center;align-items:center;min-height:400px}.no-albums-content[data-v-f64a0d83]{text-align:center;max-width:500px}.no-albums-icon[data-v-f64a0d83]{font-size:4rem;margin-bottom:var(--space-4)}.no-albums-content h3[data-v-f64a0d83]{color:var(--primary-600);margin-bottom:var(--space-4);font-size:var(--text-xl)}.no-albums-content p[data-v-f64a0d83]{color:var(--text-secondary);margin-bottom:var(--space-8);line-height:var(--leading-relaxed)}.albums-grid[data-v-f64a0d83]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-6)}@media (max-width: 768px){.container[data-v-f64a0d83]{padding:0 var(--space-4)}.page-header h1[data-v-f64a0d83]{font-size:var(--text-2xl)}.albums-grid[data-v-f64a0d83]{grid-template-columns:1fr}}.album-detail[data-v-7015580a]{max-width:1000px;margin:0 auto;padding:var(--space-8)}.loading[data-v-7015580a],.error[data-v-7015580a]{text-align:center;padding:var(--space-12);font-size:var(--text-lg);color:var(--text-secondary)}.error[data-v-7015580a]{color:var(--error)}.album-header[data-v-7015580a]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-10);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-light)}.header-info h1[data-v-7015580a]{color:var(--primary-600);font-size:var(--text-3xl);font-weight:var(--font-light);margin:0 0 var(--space-3) 0}.album-description[data-v-7015580a]{color:var(--text-secondary);font-size:var(--text-base);margin:0 0 var(--space-4) 0;line-height:var(--leading-relaxed)}.album-meta[data-v-7015580a]{display:flex;gap:var(--space-4);color:var(--text-tertiary);font-size:var(--text-sm)}.header-actions[data-v-7015580a]{display:flex;gap:var(--space-3);flex-shrink:0}.no-recipes[data-v-7015580a]{display:flex;justify-content:center;align-items:center;min-height:300px}.no-recipes-content[data-v-7015580a]{text-align:center;max-width:400px}.no-recipes-icon[data-v-7015580a]{font-size:3rem;margin-bottom:var(--space-4)}.no-recipes-content h3[data-v-7015580a]{color:var(--primary-600);margin-bottom:var(--space-3);font-size:var(--text-lg)}.no-recipes-content p[data-v-7015580a]{color:var(--text-secondary);margin-bottom:var(--space-6);line-height:var(--leading-relaxed)}.recipes-header[data-v-7015580a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.recipes-header h2[data-v-7015580a]{color:var(--primary-600);font-size:var(--text-xl);margin:0}.view-toggle[data-v-7015580a]{display:flex;gap:var(--space-1);background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--space-1);box-shadow:var(--shadow-sm)}.toggle-btn[data-v-7015580a]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--text-tertiary);transition:all var(--duration-200) var(--ease-out)}.toggle-btn[data-v-7015580a]:hover{color:var(--primary-600);background-color:var(--primary-50)}.toggle-btn.active[data-v-7015580a]{color:#fff;background:var(--gradient-primary)}.recipes-grid[data-v-7015580a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-6)}.recipes-table-container[data-v-7015580a]{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.recipes-table[data-v-7015580a]{width:100%;background-color:var(--surface);border-collapse:collapse;border-radius:var(--radius-lg);overflow:hidden}.recipes-table thead[data-v-7015580a]{background:var(--gradient-primary);color:#fff}.recipes-table th[data-v-7015580a]{padding:var(--space-4);text-align:left;font-weight:var(--font-semibold);font-size:var(--text-sm)}.recipes-table td[data-v-7015580a]{padding:var(--space-4);border-bottom:1px solid var(--border-light);vertical-align:middle}.recipe-row[data-v-7015580a]:hover{background-color:var(--primary-50)}.recipe-title-cell[data-v-7015580a]{font-weight:var(--font-semibold);color:var(--primary-600);font-size:var(--text-base)}.recipe-steps[data-v-7015580a]{color:var(--text-secondary);font-size:var(--text-sm)}.recipe-actions-cell[data-v-7015580a]{display:flex;gap:var(--space-2)}.remove-btn[data-v-7015580a]{margin-left:var(--space-2)}@media (max-width: 768px){.album-detail[data-v-7015580a]{padding:var(--space-4)}.album-header[data-v-7015580a]{flex-direction:column}.header-actions[data-v-7015580a]{width:100%;justify-content:flex-start}.header-info h1[data-v-7015580a]{font-size:var(--text-2xl)}.recipes-header[data-v-7015580a]{flex-wrap:wrap;gap:var(--space-4)}.recipes-grid[data-v-7015580a]{grid-template-columns:1fr}.recipes-table th[data-v-7015580a],.recipes-table td[data-v-7015580a]{padding:var(--space-3) var(--space-2);font-size:var(--text-sm)}.recipe-actions-cell[data-v-7015580a]{flex-direction:column;gap:var(--space-2)}.remove-btn[data-v-7015580a]{margin-left:0}}.create-album[data-v-4a5e54ed]{max-width:600px;margin:0 auto;padding:var(--space-8)}.page-header[data-v-4a5e54ed]{text-align:center;margin-bottom:var(--space-10)}.page-header h1[data-v-4a5e54ed]{color:var(--primary-600);font-size:var(--text-3xl);font-weight:var(--font-light);margin-bottom:var(--space-4)}.page-description[data-v-4a5e54ed]{color:var(--text-secondary);font-size:var(--text-lg)}.album-form[data-v-4a5e54ed]{background-color:var(--surface);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.textarea-group[data-v-4a5e54ed]{margin-bottom:var(--space-6)}.textarea-label[data-v-4a5e54ed]{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--text-primary)}.optional[data-v-4a5e54ed]{color:var(--text-tertiary);font-weight:var(--font-regular);margin-left:var(--space-1)}.textarea-field[data-v-4a5e54ed]{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--text-base);font-family:inherit;color:var(--text-primary);background:var(--surface);resize:vertical;transition:border-color var(--duration-200) var(--ease-out),box-shadow var(--duration-200) var(--ease-out)}.textarea-field[data-v-4a5e54ed]::placeholder{color:var(--text-tertiary)}.textarea-field[data-v-4a5e54ed]:hover:not(:focus):not(:disabled){border-color:var(--border-medium)}.textarea-field[data-v-4a5e54ed]:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--focus-ring-primary)}.textarea-field[data-v-4a5e54ed]:disabled{background-color:var(--disabled-bg);color:var(--disabled-text);cursor:not-allowed}.error-message[data-v-4a5e54ed]{background-color:var(--error-bg);color:var(--error);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border-left:4px solid var(--error)}.form-buttons[data-v-4a5e54ed]{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8)}@media (max-width: 640px){.create-album[data-v-4a5e54ed]{padding:var(--space-4)}.album-form[data-v-4a5e54ed]{padding:var(--space-6)}.page-header h1[data-v-4a5e54ed]{font-size:var(--text-2xl)}.form-buttons[data-v-4a5e54ed]{flex-direction:column-reverse}}.edit-album[data-v-c7b528a6]{max-width:600px;margin:0 auto;padding:var(--space-8)}.loading[data-v-c7b528a6],.error[data-v-c7b528a6]{text-align:center;padding:var(--space-12);font-size:var(--text-lg);color:var(--text-secondary)}.error[data-v-c7b528a6]{color:var(--error)}.page-header[data-v-c7b528a6]{text-align:center;margin-bottom:var(--space-10)}.page-header h1[data-v-c7b528a6]{color:var(--primary-600);font-size:var(--text-3xl);font-weight:var(--font-light);margin-bottom:var(--space-4)}.page-description[data-v-c7b528a6]{color:var(--text-secondary);font-size:var(--text-lg)}.album-form[data-v-c7b528a6]{background-color:var(--surface);padding:var(--space-8);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.textarea-group[data-v-c7b528a6]{margin-bottom:var(--space-6)}.textarea-label[data-v-c7b528a6]{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--text-primary)}.optional[data-v-c7b528a6]{color:var(--text-tertiary);font-weight:var(--font-regular);margin-left:var(--space-1)}.textarea-field[data-v-c7b528a6]{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--text-base);font-family:inherit;color:var(--text-primary);background:var(--surface);resize:vertical;transition:border-color var(--duration-200) var(--ease-out),box-shadow var(--duration-200) var(--ease-out)}.textarea-field[data-v-c7b528a6]::placeholder{color:var(--text-tertiary)}.textarea-field[data-v-c7b528a6]:hover:not(:focus):not(:disabled){border-color:var(--border-medium)}.textarea-field[data-v-c7b528a6]:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--focus-ring-primary)}.textarea-field[data-v-c7b528a6]:disabled{background-color:var(--disabled-bg);color:var(--disabled-text);cursor:not-allowed}.error-message[data-v-c7b528a6]{background-color:var(--error-bg);color:var(--error);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border-left:4px solid var(--error)}.form-buttons[data-v-c7b528a6]{display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8)}@media (max-width: 640px){.edit-album[data-v-c7b528a6]{padding:var(--space-4)}.album-form[data-v-c7b528a6]{padding:var(--space-6)}.page-header h1[data-v-c7b528a6]{font-size:var(--text-2xl)}.form-buttons[data-v-c7b528a6]{flex-direction:column-reverse}}.week-navigator[data-v-fe023016]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.nav-btn[data-v-fe023016]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);color:var(--text-secondary);transition:var(--transition-base)}.nav-btn[data-v-fe023016]:hover{background:var(--primary-50);border-color:var(--primary-500);color:var(--primary-600)}.nav-btn .arrow[data-v-fe023016]{font-size:var(--text-lg)}.nav-btn .label[data-v-fe023016]{display:none}@media (min-width: 640px){.nav-btn .label[data-v-fe023016]{display:inline}}.week-display[data-v-fe023016]{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.week-label[data-v-fe023016]{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.today-btn[data-v-fe023016]{padding:var(--space-1) var(--space-3);background:var(--primary-500);color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-xs);cursor:pointer;transition:var(--transition-base)}.today-btn[data-v-fe023016]:hover{background:var(--primary-600)}.shopping-list-panel[data-v-f58f95b3]{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.panel-header[data-v-f58f95b3]{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--gradient-light);border:none;cursor:pointer;transition:var(--transition-base)}.panel-header[data-v-f58f95b3]:hover{background:var(--primary-50)}.header-icon[data-v-f58f95b3]{font-size:var(--text-xl)}.header-title[data-v-f58f95b3]{flex:1;text-align:left;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.item-count[data-v-f58f95b3]{font-size:var(--text-sm);color:var(--text-secondary);background:var(--disabled-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.expand-icon[data-v-f58f95b3]{color:var(--text-tertiary);font-size:var(--text-sm)}.panel-content[data-v-f58f95b3]{border-top:1px solid var(--border-light)}.loading-state[data-v-f58f95b3]{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-tertiary)}.spinner[data-v-f58f95b3]{width:20px;height:20px;border:2px solid var(--border-light);border-top-color:var(--primary-500);border-radius:50%;animation:spin-f58f95b3 .8s linear infinite}@keyframes spin-f58f95b3{to{transform:rotate(360deg)}}.panel-toolbar[data-v-f58f95b3]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);background:var(--disabled-bg)}.toolbar-btn[data-v-f58f95b3]{padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-base)}.toolbar-btn[data-v-f58f95b3]:hover:not(:disabled){border-color:var(--primary-500);color:var(--primary-600)}.toolbar-btn[data-v-f58f95b3]:disabled{opacity:.5;cursor:not-allowed}.share-btn[data-v-f58f95b3]{display:flex;align-items:center;gap:var(--space-1);background:var(--primary-500);color:#fff;border-color:var(--primary-500)}.share-btn[data-v-f58f95b3]:hover:not(:disabled){background:var(--primary-600);border-color:var(--primary-600);color:#fff}.share-btn[data-v-f58f95b3]:disabled{background:var(--disabled-bg);border-color:var(--border-light);color:var(--text-tertiary)}.items-list[data-v-f58f95b3]{max-height:400px;overflow-y:auto}.empty-state[data-v-f58f95b3]{padding:var(--space-8);text-align:center;color:var(--text-tertiary)}.empty-state .hint[data-v-f58f95b3]{font-size:var(--text-sm);margin-top:var(--space-2)}.panel-footer[data-v-f58f95b3]{padding:var(--space-4);text-align:center;background:var(--success-bg)}.complete-message[data-v-f58f95b3]{color:var(--success);font-weight:var(--font-medium)}.modal-overlay[data-v-c0a236ba]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-c0a236ba]{background:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);width:90%;max-width:400px;overflow:hidden}.modal-header[data-v-c0a236ba]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light)}.modal-header h3[data-v-c0a236ba]{margin:0;font-size:var(--text-lg);color:var(--text-primary)}.close-btn[data-v-c0a236ba]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:var(--text-2xl);color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition-base)}.close-btn[data-v-c0a236ba]:hover{background:var(--disabled-bg);color:var(--text-primary)}.modal-body[data-v-c0a236ba]{padding:var(--space-4)}.export-options[data-v-c0a236ba]{display:flex;flex-direction:column;gap:var(--space-2)}.export-option[data-v-c0a236ba]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:2px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-base);text-align:left}.export-option[data-v-c0a236ba]:hover{border-color:var(--primary-300);background:var(--primary-50)}.export-option.is-selected[data-v-c0a236ba]{border-color:var(--primary-500);background:var(--primary-50)}.option-icon[data-v-c0a236ba]{font-size:var(--text-2xl);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--gradient-light);border-radius:var(--radius-md)}.option-info[data-v-c0a236ba]{flex:1}.option-name[data-v-c0a236ba]{display:block;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.option-desc[data-v-c0a236ba]{display:block;font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-1)}.modal-footer[data-v-c0a236ba]{display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-light)}.modal-footer button[data-v-c0a236ba]{padding:var(--space-2) var(--space-6);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base)}.btn-cancel[data-v-c0a236ba]{background:var(--disabled-bg);color:var(--text-secondary)}.btn-cancel[data-v-c0a236ba]:hover{background:var(--border-light)}.btn-export[data-v-c0a236ba]{background:var(--primary-500);color:#fff}.btn-export[data-v-c0a236ba]:hover:not(:disabled){background:var(--primary-600)}.btn-export[data-v-c0a236ba]:disabled{opacity:.5;cursor:not-allowed}.meal-planner-view[data-v-b32f816a]{max-width:1400px;margin:0 auto;padding:var(--space-6)}.planner-header[data-v-b32f816a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}.planner-header h1[data-v-b32f816a]{margin:0;font-size:var(--text-3xl);color:var(--text-primary)}.header-actions[data-v-b32f816a]{display:flex;gap:var(--space-3);flex-wrap:wrap}.header-actions button[data-v-b32f816a]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-base)}.btn-export[data-v-b32f816a]{background:var(--surface);border:1px solid var(--border-light);color:var(--text-secondary)}.btn-export[data-v-b32f816a]:hover{border-color:var(--primary-500);color:var(--primary-600)}.btn-save-template[data-v-b32f816a]{background:var(--primary-500);border:none;color:#fff}.btn-save-template[data-v-b32f816a]:hover{background:var(--primary-600)}.planner-content[data-v-b32f816a]{margin-top:var(--space-6);position:relative;min-height:200px}.loading-overlay[data-v-b32f816a]{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);border-radius:var(--radius-lg);z-index:10}.spinner[data-v-b32f816a]{width:32px;height:32px;border:3px solid var(--border-light);border-top-color:var(--primary-500);border-radius:50%;animation:spin-b32f816a .8s linear infinite}@keyframes spin-b32f816a{to{transform:rotate(360deg)}}.day-cards[data-v-b32f816a]{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-3)}.day-card[data-v-b32f816a]{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;min-height:160px;transition:var(--transition-base)}.day-card[data-v-b32f816a]:hover{box-shadow:var(--shadow-md)}.day-card.is-today[data-v-b32f816a]{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-500)}.day-card-header[data-v-b32f816a]{padding:var(--space-3);background:var(--gradient-light);border-bottom:1px solid var(--border-light);text-align:center}.day-card.is-today .day-card-header[data-v-b32f816a]{background:var(--primary-50)}.day-card-name[data-v-b32f816a]{display:block;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.day-card.is-today .day-card-name[data-v-b32f816a]{color:var(--primary-600)}.day-card-date[data-v-b32f816a]{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.day-card-recipe[data-v-b32f816a]{flex:1;display:flex;flex-direction:column;padding:var(--space-2);position:relative}.day-card-img[data-v-b32f816a]{width:100%;height:80px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.day-card-recipe-title[data-v-b32f816a]{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);cursor:pointer;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.day-card-recipe-title[data-v-b32f816a]:hover{color:var(--primary-600)}.day-card-remove[data-v-b32f816a]{position:absolute;top:var(--space-2);right:var(--space-2);width:24px;height:24px;border:none;border-radius:var(--radius-full);background:var(--error-bg);color:var(--error);font-size:var(--text-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:var(--transition-base)}.day-card-remove[data-v-b32f816a]:hover{background:var(--error);color:#fff}.day-card-add[data-v-b32f816a]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);border:none;background:none;cursor:pointer;color:var(--text-tertiary);transition:var(--transition-base);padding:var(--space-4)}.day-card-add[data-v-b32f816a]:hover{color:var(--primary-500);background:var(--primary-50)}.add-icon[data-v-b32f816a]{font-size:var(--text-2xl);line-height:1}.add-text[data-v-b32f816a]{font-size:var(--text-xs)}.bottom-panels[data-v-b32f816a]{margin-top:var(--space-6)}.modal-overlay[data-v-b32f816a]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000}.template-modal[data-v-b32f816a]{background:var(--surface);border-radius:var(--radius-xl);padding:var(--space-6);width:90%;max-width:400px;box-shadow:var(--shadow-2xl)}.template-modal h3[data-v-b32f816a]{margin:0 0 var(--space-4);color:var(--text-primary)}.form-group[data-v-b32f816a]{margin-bottom:var(--space-4)}.form-group label[data-v-b32f816a]{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.form-group input[data-v-b32f816a],.form-group select[data-v-b32f816a]{width:100%;padding:var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-base);transition:var(--transition-base)}.form-group input[data-v-b32f816a]:focus,.form-group select[data-v-b32f816a]:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--focus-ring-primary)}.modal-actions[data-v-b32f816a]{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}.modal-actions button[data-v-b32f816a]{padding:var(--space-2) var(--space-6);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-base)}.btn-cancel[data-v-b32f816a]{background:var(--disabled-bg);color:var(--text-secondary)}.btn-cancel[data-v-b32f816a]:hover{background:var(--border-light)}.btn-save[data-v-b32f816a]{background:var(--primary-500);color:#fff}.btn-save[data-v-b32f816a]:hover:not(:disabled){background:var(--primary-600)}.btn-save[data-v-b32f816a]:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1024px){.day-cards[data-v-b32f816a]{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.meal-planner-view[data-v-b32f816a]{padding:var(--space-4)}.planner-header[data-v-b32f816a]{flex-direction:column;align-items:flex-start}.header-actions[data-v-b32f816a]{width:100%}.day-cards[data-v-b32f816a]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.day-cards[data-v-b32f816a]{grid-template-columns:1fr}}
