@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap);body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.plate-planner-form{border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);max-width:none;padding:var(--space-8);width:100%}.form-row{grid-gap:var(--space-8);gap:var(--space-8);margin-bottom:var(--space-8)}.form-column{display:flex;flex-direction:column;gap:var(--space-4)}.form-group input,.form-group select,.form-group textarea{border-radius:var(--radius-lg);font-size:var(--text-base);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{box-shadow:0 0 0 3px var(--primary-100)}.checkbox-group{gap:var(--space-3)}.checkbox-label{border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.checkbox-label:hover{background-color:var(--neutral-100)}.checkbox-label input[type=checkbox]{height:auto;width:auto}.meal-type-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3)}.meal-type-btn{background-color:#fff;border:2px solid var(--neutral-300);border-radius:var(--radius-lg);color:var(--neutral-700);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-3) var(--space-6);text-transform:capitalize;transition:all var(--transition-fast)}.meal-type-btn:hover{background-color:var(--primary-50);border-color:var(--primary-400);color:var(--primary-700);transform:translateY(-1px)}.meal-type-btn.selected{background-color:var(--primary-500);border-color:var(--primary-500);box-shadow:var(--shadow-md);color:#fff}.meal-type-btn.selected:hover{background-color:var(--primary-600);border-color:var(--primary-600)}.form-actions{padding-top:var(--space-6)}.profile-note{color:var(--neutral-600);font-size:var(--text-sm);margin-bottom:var(--space-4)}.profile-note a{color:var(--primary-600);font-weight:var(--font-medium);text-decoration:none}.profile-note a:hover{text-decoration:underline}@media (max-width:768px){.form-row{gap:var(--space-4);grid-template-columns:1fr}.plate-planner-form{padding:var(--space-6)}}.plate-planner{margin:0 auto;max-width:1200px;padding:20px}.planner-header{margin-bottom:30px;text-align:center}.planner-header h1{color:#2d3748;margin-bottom:10px}.planner-header p{color:#718096;font-size:1.1rem}.tooltip-container{cursor:help;display:inline-block;margin-left:8px;position:relative}.tooltip-text{background-color:#333;border-radius:8px;bottom:125%;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:.9rem;left:50%;line-height:1.4;padding:12px;position:absolute;text-align:left;transform:translateX(-50%);visibility:hidden;width:300px;z-index:1000}.tooltip-container:hover .tooltip-text{visibility:visible}.tooltip-text:after{border:5px solid #0000;border-top-color:#333;content:"";left:50%;margin-left:-5px;position:absolute;top:100%}.cuisine-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cuisine-tag{background:#f7fafc;border:2px solid #e2e8f0;border-radius:20px;color:#4a5568;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.cuisine-tag:hover{background:#edf2f7;border-color:#cbd5e0;transform:translateY(-1px)}.cuisine-tag.selected{background:#4299e1;border-color:#3182ce;color:#fff}.cuisine-tag.selected:hover{background:#3182ce;border-color:#2c5282}.plate-planner-form{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-bottom:30px;padding:30px}.form-section{margin-bottom:30px}.form-section h3{border-bottom:2px solid #e2e8f0;color:#2d3748;margin-bottom:20px;padding-bottom:10px}.form-row{grid-gap:20px;gap:20px}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.form-group{margin-bottom:20px}.form-group label{color:#4a5568;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e2e8f0;font-size:16px;padding:12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a}.checkbox-group{display:flex;flex-wrap:wrap;gap:15px}.checkbox-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:10px}.checkbox-label{border-radius:6px;gap:8px;padding:8px;transition:background-color .2s}.checkbox-label:hover{background-color:#f7fafc}.checkbox-label input[type=\"checkbox\"]{margin:0;width:auto}.range-labels{color:#718096;display:flex;font-size:.875rem;justify-content:space-between;margin-top:5px}.user-preferences-info{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.pref-section{margin-bottom:15px}.pref-section strong{color:#2d3748;margin-right:10px}.no-prefs{color:#a0aec0;font-style:italic}.pref-note{color:#718096;font-size:.875rem;margin-top:15px}.pref-note a{color:#4299e1;text-decoration:none}.pref-note a:hover{text-decoration:underline}.form-actions{padding-top:20px;text-align:center}.generate-btn{background-color:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:15px 30px;transition:background-color .2s,transform .1s}.generate-btn:hover:not(:disabled){background-color:#3182ce;transform:translateY(-1px)}.generate-btn:disabled{background-color:#a0aec0;cursor:not-allowed;transform:none}.created-plan{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:30px}.plan-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.plan-header h2{color:#2d3748;margin:0}.create-new-btn{background:#4299e1;font-size:16px;transition:all .2s ease}.create-new-btn:hover{background:#3182ce;box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.plan-description{font-size:1.1rem}.plan-info{background-color:#f7fafc;border-radius:8px;display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin-bottom:30px;padding:15px}.plan-info span{color:#4a5568;font-size:.95rem}.meal-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.day-column{background-color:#f8f9fa;border-radius:12px;padding:20px}.day-column h3{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#2d3748;margin-bottom:20px;padding:10px;text-align:center}.meal-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a;margin-bottom:15px;padding:20px;transition:transform .2s,box-shadow .2s}.meal-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.meal-card.empty{background-color:#f7fafc;border:2px dashed #cbd5e0;color:#a0aec0;text-align:center}.meal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.meal-type{background-color:#4299e1;border-radius:20px;color:#fff;font-size:.875rem;font-weight:600;padding:4px 12px;text-transform:capitalize}.regenerate-btn{align-items:center;background-color:#68d391;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:30px;justify-content:center;transition:background-color .2s,transform .2s;width:30px}.regenerate-btn:hover{background-color:#48bb78;transform:rotate(180deg)}.meal-card h4{color:#2d3748;font-size:1.2rem;margin-bottom:10px}.meal-description{color:#718096;font-style:italic}.ingredients,.instructions,.meal-description,.nutrition{margin-bottom:15px}.ingredients strong,.instructions strong,.nutrition strong{color:#2d3748;display:block;margin-bottom:8px}.ingredients ul{margin:0;padding-left:20px}.ingredients li{color:#4a5568;margin-bottom:4px}.instructions p{color:#4a5568;line-height:1.6}.nutrition{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.nutrition span{background-color:#e2e8f0;border-radius:15px;color:#4a5568;font-size:.875rem;padding:4px 10px}@media (max-width:768px){.plate-planner{padding:10px}.created-plan,.plate-planner-form{padding:20px}.plan-info{flex-direction:column;gap:10px;text-align:center}.meal-grid{grid-template-columns:1fr}.day-column,.meal-card{padding:15px}}.meal-plan-details{margin-bottom:var(--space-8);margin-top:var(--space-8)}.plan-meta{background-color:var(--neutral-50);border-radius:var(--radius-md);gap:var(--space-6);margin-bottom:var(--space-6);padding:var(--space-4)}.meals-grid{grid-gap:var(--space-6);gap:var(--space-6)}.day-section{background-color:var(--neutral-50);border-radius:var(--radius-lg);padding:var(--space-6)}.day-section h3{color:var(--primary-600);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-4)}.day-meals{grid-gap:var(--space-4);display:grid;gap:var(--space-4)}.meal-summary{border:1px solid var(--neutral-200);border-radius:var(--radius-md);padding:var(--space-4)}.meal-type-badge{background-color:var(--primary-100);border-radius:var(--radius-full);color:var(--primary-700);font-size:var(--text-xs);font-weight:var(--font-semibold);margin-bottom:var(--space-2);padding:var(--space-1) var(--space-3);text-transform:uppercase}.meal-summary h4{color:var(--neutral-800);font-size:var(--text-lg);margin-bottom:var(--space-2)}.meal-desc{color:var(--neutral-600);font-size:var(--text-sm);margin-bottom:var(--space-3)}.ingredients-summary,.instructions-summary{border-top:1px solid var(--neutral-200);margin-top:var(--space-3);padding-top:var(--space-3)}.ingredients-summary strong,.instructions-summary strong{color:var(--neutral-700);display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}.ingredients-list{grid-gap:var(--space-1);display:grid;gap:var(--space-1);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.ingredients-list li{color:var(--neutral-600);font-size:var(--text-sm);padding:var(--space-1) 0;padding-left:var(--space-4);position:relative}.ingredients-list li:before{color:var(--primary-500);content:"•";left:0;position:absolute}.instructions-summary p{color:var(--neutral-600);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.meal-history{margin:0 auto;max-width:1200px;padding:20px}.history-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.history-header h1{color:#2d3748;margin:0}.history-header p{color:#718096;margin:5px 0 0}.create-new-btn{background-color:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:background-color .2s,transform .1s}.create-new-btn:hover{background-color:#3182ce;transform:translateY(-1px)}.error-message{background-color:#fed7d7;border:1px solid #feb2b2;border-radius:8px;color:#c53030;margin-bottom:20px;padding:12px}.filters-section{align-items:end;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;gap:30px;margin-bottom:30px;padding:20px}.filter-group{gap:8px}.filter-group label{color:#4a5568;font-size:.875rem;font-weight:600}.filter-group select{border:2px solid #e2e8f0;border-radius:6px;font-size:14px;min-width:150px;padding:8px 12px}.filter-group select:focus{border-color:#4299e1;outline:none}.loading-state{color:#718096;padding:60px 20px}.spinner{border:4px solid #e2e8f0;border-top-color:#4299e1;margin:0 auto 20px}.empty-state{border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:60px 20px}.empty-state h3{color:#2d3748;margin-bottom:10px}.empty-state p{color:#718096;margin-bottom:30px}.create-first-btn{background-color:#48bb78;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:15px 30px;transition:background-color .2s}.create-first-btn:hover{background-color:#38a169}.meal-plans-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-bottom:40px}.meal-plan-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:25px;transition:transform .2s,box-shadow .2s}.meal-plan-card:hover{box-shadow:0 8px 15px #00000026;transform:translateY(-2px)}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:15px}.card-header h3{color:#2d3748;flex:1 1;margin:0 15px 0 0}.card-actions{display:flex;gap:8px}.delete-btn,.view-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:1.2rem;height:35px;justify-content:center;transition:background-color .2s,transform .1s;width:35px}.view-btn{background-color:#e2e8f0;color:#4a5568}.view-btn:hover{background-color:#cbd5e0;transform:scale(1.05)}.delete-btn{background-color:#fed7d7;color:#c53030}.delete-btn:hover{background-color:#feb2b2;transform:scale(1.05)}.card-description{color:#718096;font-style:italic;line-height:1.5;margin-bottom:20px}.card-meta{grid-gap:12px;display:grid;gap:12px}.meta-item{align-items:center;border-bottom:1px solid #f7fafc;display:flex;justify-content:space-between;padding:8px 0}.meta-item:last-child{border-bottom:none}.meta-item .label{color:#4a5568;font-size:.875rem;font-weight:600}.meta-item span:last-child{color:#2d3748;font-size:.875rem}.family-indicator{border-bottom:none!important;justify-content:center;padding-top:15px}.family-badge{background-color:#bee3f8;border-radius:15px;color:#2b6cb0;font-size:.75rem;font-weight:600;padding:4px 12px}.pagination{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;flex-wrap:wrap;gap:20px;padding:20px}.pagination-info{color:#718096;font-size:.875rem}.pagination-controls{gap:8px}.pagination-btn{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;display:flex;font-weight:600;height:40px;justify-content:center;transition:all .2s;width:40px}.pagination-btn:hover{border-color:#4299e1;color:#4299e1}.pagination-btn.active{background-color:#4299e1;border-color:#4299e1}.confirm-modal,.meal-plan-modal{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;top:0;width:100%;z-index:9999}body.modal-open{overflow:hidden}.modal-backdrop{display:none}.meal-plan-modal .modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1600px!important;overflow:hidden;pointer-events:auto;position:relative;width:100%;z-index:1}.modal-header{background-color:#f8f9fa;border-bottom:1px solid #e2e8f0;padding:25px}.modal-header h2{color:#2d3748;margin:0}.close-btn{border-radius:6px;color:#718096;transition:background-color .2s}.close-btn:hover{background-color:#e2e8f0;color:#2d3748}.modal-body{flex:1 1;overflow-y:auto;padding:25px}.plan-description{color:#718096;font-style:italic;margin-bottom:20px;text-align:center}.plan-meta{background-color:#f7fafc;border-radius:8px;display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin-bottom:30px;padding:15px}.plan-meta span{color:#4a5568;font-size:.9rem}.meals-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.day-section{background-color:#f8f9fa;border-radius:10px;padding:20px}.day-section h3{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#2d3748;margin-bottom:20px;padding:12px;text-align:center}.day-meals{display:flex;flex-direction:column;gap:15px}.meal-summary{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:15px}.meal-type-badge{background-color:#4299e1;border-radius:15px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;margin-bottom:8px;padding:3px 10px;text-transform:capitalize}.meal-summary h4{color:#2d3748;font-size:1rem;margin:0 0 8px}.meal-desc{color:#718096;font-style:italic}.ingredients-summary,.meal-desc{font-size:.875rem;margin-bottom:10px}.ingredients-summary{color:#4a5568}.ingredients-summary strong{color:#2d3748}.ingredients-list{margin:8px 0 0 20px}.ingredients-list li{color:#4a5568;margin-bottom:3px}.instructions-summary{color:#4a5568;font-size:.875rem}.instructions-summary strong{color:#2d3748;display:block;margin-bottom:5px}.instructions-summary p{line-height:1.4;margin:0}.confirm-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-width:400px;padding:30px;pointer-events:auto;position:relative;width:100%;z-index:1}.confirm-content h3{color:#2d3748;margin:0 0 15px;text-align:center}.confirm-content p{color:#718096;line-height:1.5;margin-bottom:25px;text-align:center}.confirm-actions{display:flex;gap:15px;justify-content:center}.cancel-btn,.confirm-btn{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:10px 20px;transition:background-color .2s}.cancel-btn{background-color:#e2e8f0;color:#4a5568}.cancel-btn:hover{background-color:#cbd5e0}.confirm-btn{background-color:#e53e3e;color:#fff}.confirm-btn:hover{background-color:#c53030}@media (max-width:768px){.meal-history{padding:15px}.history-header{align-items:stretch;flex-direction:column;text-align:center}.filters-section{flex-direction:column;gap:15px}.meal-plans-grid{gap:20px;grid-template-columns:1fr}.pagination{flex-direction:column;gap:15px;text-align:center}.modal-content{margin:10px;max-height:calc(100vh - 20px)}.modal-body{padding:20px}.meals-grid{grid-template-columns:1fr}.plan-meta{flex-direction:column;gap:15px;text-align:center}}.nutrition-summary{background-color:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-md);margin-top:var(--space-4);padding:var(--space-4)}.nutrition-summary strong{color:var(--neutral-800);display:block;font-size:var(--text-sm);margin-bottom:var(--space-3)}.nutrition-grid{grid-gap:var(--space-2);gap:var(--space-2)}.nutrition-item{align-items:center;background:#fff;border-radius:var(--radius-sm);display:flex;justify-content:space-between}.nutrition-label{color:var(--neutral-600);font-size:var(--text-xs);font-weight:var(--font-medium)}.nutrition-value{color:var(--neutral-800);font-size:var(--text-sm);font-weight:var(--font-semibold)}.meal-rating-section{background-color:var(--primary-50);border:1px solid var(--primary-200);border-radius:var(--radius-md);margin-top:var(--space-4);padding:var(--space-4)}.existing-rating{display:flex;flex-direction:column;gap:var(--space-3)}.rating-display{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.rating-label{color:var(--neutral-700);font-size:var(--text-sm);font-weight:var(--font-medium)}.stars{display:flex;gap:var(--space-1)}.star{font-size:1rem;opacity:.3}.star.filled{opacity:1}.favorite-indicator{color:var(--red-600);font-size:var(--text-sm);font-weight:var(--font-medium)}.rating-notes{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-sm);padding:var(--space-3)}.rating-notes strong{color:var(--neutral-700);display:block;font-size:var(--text-sm);margin-bottom:var(--space-2)}.rating-notes p{color:var(--neutral-600);font-size:var(--text-sm);line-height:var(--leading-relaxed);margin:0}.meal-stats{border-top:1px solid var(--primary-200);color:var(--neutral-600);font-size:var(--text-xs);margin-top:var(--space-2);padding-top:var(--space-2)}.rating-modal{align-items:center!important;background-color:#00000080!important;display:flex!important;height:100%!important;justify-content:center!important;left:0!important;max-width:none!important;padding:20px!important;position:fixed!important;top:0!important;width:100%!important;z-index:9999!important}.rating-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.rating-modal .modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.rating-modal .modal-header h3{color:#2d3748;font-size:1.25rem;margin:0}.rating-modal .modal-body{display:flex;flex-direction:column;gap:20px;padding:20px}.rating-section{display:flex;flex-direction:column;gap:10px}.rating-section label{color:#4a5568;font-size:.875rem;font-weight:600}.star-rating{gap:5px}.star-btn{background:none;border:none;cursor:pointer;font-size:1.5rem;opacity:.3;transition:opacity .2s,transform .1s}.star-btn:hover{transform:scale(1.1)}.star-btn.active{opacity:1}.favorite-section,.favorite-section label{align-items:center;display:flex}.favorite-section label{color:#4a5568;cursor:pointer;font-weight:500;gap:8px}.favorite-section input[type=checkbox]{height:16px;width:16px}.notes-section{display:flex;flex-direction:column;gap:8px}.notes-section label{color:#4a5568;font-size:.875rem;font-weight:600}.notes-section textarea{border:2px solid #e2e8f0;border-radius:6px;font-family:inherit;font-size:14px;min-height:80px;padding:12px;resize:vertical}.notes-section textarea:focus{border-color:#4299e1;outline:none}.modal-footer{background-color:#f8f9fa;border-top:1px solid #e2e8f0;gap:12px;padding:20px}.modal-footer .btn{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:10px 20px;transition:background-color .2s}.modal-footer .btn-secondary{background-color:#e2e8f0;color:#4a5568}.modal-footer .btn-secondary:hover{background-color:#cbd5e0}.modal-footer .btn-primary{background-color:#4299e1;color:#fff}.modal-footer .btn-primary:hover{background-color:#3182ce}.modal-footer .btn-primary:disabled{background-color:#a0aec0;cursor:not-allowed}.meal-actions .btn{flex:1 1;justify-content:center}.existing-rating-preview{background-color:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-sm);margin-top:var(--space-3);padding:var(--space-3)}.existing-rating-preview .rating-display{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.existing-rating-preview .stars{display:flex;gap:var(--space-1)}.existing-rating-preview .star{font-size:.875rem;opacity:.3}.existing-rating-preview .star.filled{opacity:1}.existing-rating-preview .favorite-indicator{color:var(--red-600);font-size:var(--text-xs);font-weight:var(--font-medium)}.rating-notes-preview{font-size:var(--text-sm)}.rating-notes-preview strong{color:var(--neutral-700);display:block;margin-bottom:var(--space-1)}.rating-notes-preview p{color:var(--neutral-600);line-height:var(--leading-relaxed);margin:0}.modal-overlay{padding:20px;z-index:9999}.nutrition-modal .modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.nutrition-modal .modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.nutrition-modal .modal-header h3{color:#2d3748;font-size:1.25rem;margin:0}.nutrition-modal .modal-body{padding:20px}.nutrition-modal .modal-body h4{color:#2d3748;margin-bottom:15px}.nutrition-modal .nutrition-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.nutrition-modal .nutrition-item{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;text-align:center}.nutrition-modal .nutrition-item .value{color:#2d3748;display:block;font-size:1.5rem;font-weight:600;margin-bottom:4px}.nutrition-modal .nutrition-item .label{color:#718096;display:block;font-size:.875rem;font-weight:500}@media (max-width:768px){.rating-modal-content{margin:10px;max-height:calc(100vh - 20px)}.star-rating{justify-content:center}.modal-footer{flex-direction:column;gap:10px}.modal-footer .btn{width:100%}.meal-actions{flex-direction:column;gap:var(--space-2)}.nutrition-modal .modal-content{margin:10px;max-height:calc(100vh - 20px)}.nutrition-modal .nutrition-grid{grid-template-columns:repeat(2,1fr)}}.sharing-modal{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;top:0;width:100%;z-index:9999}.sharing-modal .modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:100%}.sharing-modal .modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.sharing-modal .modal-header h3{color:#2d3748;font-size:1.25rem;margin:0}.sharing-modal .modal-body{flex:1 1;overflow-y:auto;padding:20px}.share-section{margin-bottom:30px}.share-section h4{color:#2d3748;font-size:1.1rem;margin-bottom:15px}.share-form{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.share-form .form-group{margin-bottom:15px}.share-form label{color:#4a5568;display:block;font-size:.875rem;font-weight:600;margin-bottom:5px}.share-form input,.share-form select{border:2px solid #e2e8f0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;width:100%}.share-form input:focus,.share-form select:focus{border-color:#4299e1;outline:none}.current-shares-section{border-top:1px solid #e2e8f0;padding-top:20px}.current-shares-section h4{color:#2d3748;margin-bottom:15px}.shares-list{display:flex;flex-direction:column;gap:12px}.share-item{align-items:center;background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:12px}.share-info{flex:1 1}.share-email{color:#2d3748;font-weight:600;margin-bottom:2px}.share-date,.share-permission{color:#718096;font-size:.875rem}.no-shares{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;color:#718096;padding:30px;text-align:center}@media (max-width:768px){.sharing-modal{padding:10px}.sharing-modal .modal-content{max-height:95vh}.sharing-modal .modal-body,.sharing-modal .modal-header{padding:15px}.share-item{align-items:flex-start;flex-direction:column;gap:10px}.share-form{padding:15px}}.page-container .features-grid{grid-gap:var(--space-16);display:grid;gap:var(--space-16);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:var(--space-16)}.feature-grid{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:var(--space-8)}.active-tab{background:linear-gradient(135deg,var(--primary-50) 0,var(--secondary-50) 100%)!important;border:2px solid var(--primary-300)!important;box-shadow:var(--shadow-lg)!important;transform:translateY(-2px)!important}.active-tab:before{transform:scaleX(1)!important}.families-header{align-items:center;border-bottom:2px solid var(--neutral-200);display:flex;justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-3)}.families-header h4{color:var(--neutral-800);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.preferences-grid{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:1fr 1fr;margin-bottom:var(--space-8)}.meal-settings-section{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-6)}.meal-settings-section h4{border-bottom:2px solid var(--neutral-200);color:var(--neutral-800);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-6);padding-bottom:var(--space-3)}.settings-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.settings-grid .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.settings-grid .form-group label{color:var(--neutral-700);font-size:var(--text-sm);font-weight:var(--font-semibold)}.settings-grid .form-group select{border:2px solid var(--neutral-300);border-radius:var(--radius-lg);font-size:var(--text-base);padding:var(--space-3);transition:all var(--transition-fast)}.settings-grid .form-group select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.settings-grid .form-group small{color:var(--neutral-500);font-size:var(--text-xs);line-height:var(--leading-relaxed)}@media (max-width:768px){.preferences-grid{gap:var(--space-6)}.preferences-grid,.settings-grid{grid-template-columns:1fr}}.profile-container{margin:0 auto;max-width:1200px;padding:2rem}.profile-header{margin-bottom:2rem}.profile-header h1{color:#2c3e50;margin-bottom:.5rem}.profile-header p{color:#7f8c8d;font-size:1.1rem}.message{border-radius:8px;font-weight:500;margin-bottom:1.5rem;padding:1rem}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.profile-tabs{border-bottom:2px solid #ecf0f1;gap:.5rem;margin-bottom:2rem}.tab{border-bottom:3px solid #0000;color:#7f8c8d;font-size:1rem;font-weight:500;padding:1rem 1.5rem;transition:all .3s ease;white-space:nowrap}.tab:hover{background-color:#f8f9fa;color:#2c3e50}.tab.active{border-bottom-color:#3498db;color:#3498db}.profile-content{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:2rem}.tab-content h3{color:#2c3e50;font-size:1.5rem;margin-bottom:1.5rem}.profile-form{max-width:600px}.form-group{margin-bottom:1.5rem}.form-group label{color:#2c3e50;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #ecf0f1;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db}.form-group small{color:#7f8c8d;display:block;font-size:.9rem;margin-top:.5rem}.btn{border:none;border-radius:8px;display:inline-block;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;text-align:center;transition:all .3s ease}.btn-primary{background-color:#3498db}.btn-primary:hover:not(:disabled){background-color:#2980b9}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#7f8c8d}.btn-danger{background-color:#e74c3c}.btn-danger:hover:not(:disabled){background-color:#c0392b}.btn-small{font-size:.9rem;padding:.5rem 1rem}.btn:disabled{opacity:.6}.preferences-section{border-bottom:1px solid #ecf0f1;margin-bottom:3rem;padding-bottom:2rem}.preferences-section:last-child{border-bottom:none}.preferences-section h4{color:#2c3e50;font-size:1.2rem;margin-bottom:1rem}.add-preference-form{background-color:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.form-row{align-items:end;display:flex;flex-wrap:wrap;gap:1rem}.form-row .form-group{flex:1 1;margin-bottom:1rem;min-width:200px}.preferences-list{display:flex;flex-direction:column;gap:1rem}.preference-item{align-items:center;background-color:#fff;border:1px solid #ecf0f1;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:1rem}.preference-info{flex:1 1}.preference-name{color:#2c3e50;font-weight:600;margin-right:1rem}.severity-badge{border-radius:20px;font-size:.8rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.severity-badge.mild{background-color:#d5f4e6;color:#27ae60}.severity-badge.moderate{background-color:#ffeaa7;color:#e17055}.severity-badge.severe{background-color:#fab1a0;color:#d63031}.preference-notes{color:#7f8c8d;font-size:.9rem;font-style:italic;margin:.5rem 0 0}.no-preferences{background-color:#f8f9fa;border-radius:8px;color:#7f8c8d;font-style:italic;padding:2rem;text-align:center}.toggle-switch{gap:.5rem;margin-left:1rem}.toggle-slider{background-color:#ccc;border-radius:24px;height:24px;position:relative;transition:background-color .3s;width:50px}.toggle-slider:before{border-radius:50%;transition:transform .3s}.toggle-switch input:checked+.toggle-slider{background-color:#3498db}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(26px)}.toggle-switch input{display:none}.toggle-label{color:#7f8c8d;font-size:.9rem}.overview-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin-bottom:2rem}.overview-card{background-color:#f8f9fa;border-left:4px solid #3498db;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.overview-card h4{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;gap:.5rem;margin-bottom:1rem}.overview-card .info-row{display:flex;justify-content:space-between;margin-bottom:.75rem}.overview-card .info-row:last-of-type{margin-bottom:1rem}.allergy-summary-item,.dietary-summary-item,.family-summary-item{align-items:center;background-color:#fff;border:1px solid #ecf0f1;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.5rem}.allergen-name,.family-name,.preference-name{color:#2c3e50;font-weight:500}.active-badge{background-color:#d5f4e6;border-radius:20px;color:#27ae60;font-size:.8rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.more-families,.more-items{font-size:.9rem;margin:.5rem 0 1rem}.more-families,.more-items,.no-data{color:#7f8c8d;font-style:italic;text-align:center}.no-data{background-color:#fff;border-radius:6px;margin-bottom:1rem;padding:1rem}.account-info{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-card{background-color:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;padding:1.5rem}.info-card h4{color:#2c3e50;font-size:1.1rem;margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;margin-bottom:.75rem}.info-row:last-child{margin-bottom:0}.info-label{color:#2c3e50;font-weight:600}.info-value{color:#7f8c8d}.status-badge{border-radius:20px;font-size:.8rem;font-weight:600;padding:.25rem .75rem}.status-badge.active{background-color:#d5f4e6;color:#27ae60}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.status-badge.verified{background-color:#d5f4e6;color:#27ae60}.status-badge.unverified{background-color:#ffeaa7;color:#e17055}.families-management{max-width:100%}.create-family-section{background-color:#f8f9fa;border-radius:8px;margin-bottom:2rem;padding:2rem}.create-family-section h4{color:#2c3e50;margin-bottom:1rem}.family-form .form-row{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:1fr auto}.existing-families-section h4{color:#2c3e50;margin-bottom:1.5rem}.families-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.family-card{border:1px solid #ecf0f1;border-radius:12px;box-shadow:0 2px 10px #0000001a;padding:1.5rem}.family-header{align-items:center;margin-bottom:1rem}.family-header h5{color:#2c3e50;font-size:1.2rem;margin:0}.role-badge{background-color:#3498db;border-radius:20px;color:#fff;font-size:.8rem;font-weight:600;padding:.25rem .75rem}.role-badge.admin{background-color:#e74c3c}.family-description{color:#7f8c8d;margin-bottom:1rem}.family-stats{border-bottom:1px solid #ecf0f1;gap:1rem;margin-bottom:1rem;padding-bottom:1rem}.stat-number{color:#3498db;font-size:1.5rem;font-weight:700}.stat-label{color:#7f8c8d;font-size:.8rem}.stat-value{color:#7f8c8d;font-size:.9rem}.family-members strong{color:#2c3e50;display:block;margin-bottom:.5rem}.members-list{gap:.5rem}.member-item{background-color:#f8f9fa;border-radius:4px;justify-content:space-between;padding:.5rem}.member-name{color:#2c3e50;font-weight:500}.remove-member-btn{background:none;border:none;border-radius:4px;color:#e74c3c;cursor:pointer;font-size:1rem;padding:.25rem;transition:background-color .3s}.remove-member-btn:hover{background-color:#f8d7da}.family-actions{gap:.5rem;justify-content:flex-end}.no-families{background-color:#f8f9fa;border-radius:8px;color:#7f8c8d;padding:3rem;text-align:center}.add-member-section{background-color:#e8f4f8;border-left:4px solid #3498db;border-radius:8px;margin-top:2rem;padding:2rem}.add-member-section h4{color:#2c3e50;margin-bottom:1rem}.add-member-form .form-row{grid-gap:1rem;align-items:start;display:grid;gap:1rem;grid-template-columns:2fr 1fr auto}.add-member-form .form-row button{margin-top:1.75rem}@media (max-width:768px){.profile-container{padding:1rem}.profile-tabs{flex-wrap:wrap}.profile-content{padding:1.5rem}.form-row{flex-direction:column}.form-row .form-group{min-width:0;min-width:auto}.account-info,.add-member-form .form-row,.families-grid,.family-form .form-row{grid-template-columns:1fr}}.hover-panel-overlay{align-items:flex-start;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:var(--space-12);padding-top:var(--space-20);position:fixed;right:0;top:0;z-index:1000}.hover-panel-content{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);margin:var(--space-6) auto;max-height:calc(90vh - var(--space-8));max-width:1000px;overflow-y:auto;padding:var(--space-8);position:relative;width:90vw}.hover-panel-header{align-items:center;border-bottom:2px solid var(--neutral-200);display:flex;justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-3)}.hover-panel-header h3{color:var(--neutral-800);font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0}.close-button{background:none;border:none;border-radius:var(--radius-md);color:var(--neutral-500);cursor:pointer;font-size:var(--text-xl);padding:var(--space-2);transition:all var(--transition-fast)}.close-button:hover{background-color:var(--neutral-100);color:var(--neutral-700)}@media (max-width:768px){.overview-grid,.page-container .features-grid{grid-template-columns:1fr}.hover-panel-content{max-height:calc(95vh - var(--space-8));max-width:95vw;padding:var(--space-4)}.hover-panel-header{margin-bottom:var(--space-4)}.hover-panel-header h3{font-size:var(--text-lg)}}.section-spacer{border-bottom:1px solid #e5e7eb;height:2rem;margin:2rem 0}.security-content{margin:0 auto;max-width:600px}.security-section{background:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-6)}.security-section h4{align-items:center;color:var(--neutral-800);display:flex;font-size:var(--text-lg);font-weight:var(--font-semibold);gap:var(--space-2);margin:0 0 var(--space-3) 0}.section-description{color:var(--neutral-600);line-height:1.6}.current-status,.section-description{margin-bottom:var(--space-4)}.status-badge{align-items:center;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-1);padding:var(--space-2) var(--space-3)}.status-badge.enabled{background:var(--success-50);border:1px solid var(--success-200);color:var(--success-700)}.status-badge.disabled{background:var(--neutral-100);border:1px solid var(--neutral-300);color:var(--neutral-600)}.family-details-section{background-color:#f8f9fa;border:2px solid #3498db;border-radius:12px;margin-top:2rem;padding:2rem}.family-details-section .section-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.family-details-section .section-header h4{color:#2c3e50;font-size:1.3rem;font-weight:600;margin:0}.members-management{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.members-table-header{background-color:#3498db;color:#fff;display:grid;font-size:.9rem;font-weight:600;grid-template-columns:2fr 1fr 1fr;letter-spacing:.5px;padding:1rem;text-transform:uppercase}.header-username{text-align:left}.header-actions,.header-role{text-align:center}.members-table-body{background:#fff}.member-row{align-items:center;border-bottom:1px solid #e9ecef;display:grid;grid-template-columns:2fr 1fr 1fr;padding:1rem;transition:background-color .2s}.member-row:hover{background-color:#f8f9fa}.member-row:last-child{border-bottom:none}.member-username{color:#2c3e50;font-weight:500;text-align:left}.member-actions{text-align:center}.self-indicator{color:#7f8c8d;font-size:.9rem;font-style:italic}.no-members-row{padding:2rem;text-align:center}.no-members-message{color:#7f8c8d;font-style:italic}.family-members{border-bottom:1px solid #ecf0f1;margin-bottom:1rem;padding-bottom:1rem}.members-header{margin-bottom:.75rem}.members-count{color:#2c3e50;font-size:.9rem;font-weight:600}.family-members .members-list{display:flex;flex-direction:column;gap:.5rem}.family-members .member-item{align-items:center;background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:.5rem .75rem}.family-members .member-name{color:#2c3e50;font-size:.9rem;font-weight:500}.family-members .role-badge{font-size:.75rem;padding:.2rem .6rem}.more-members,.no-members{color:#7f8c8d;font-size:.85rem;font-style:italic;padding:.5rem;text-align:center}.family-details-section .add-member-section{background-color:#e8f4f8;border-left:4px solid #3498db;border-radius:8px;margin-top:1.5rem;padding:1.5rem}.family-details-section .add-member-section h5{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:1rem}@media (max-width:768px){.member-row,.members-table-header{gap:.5rem;grid-template-columns:1fr}.header-actions,.header-role,.header-username,.member-actions,.member-role,.member-username{text-align:left}.member-row{border-bottom:2px solid #e9ecef;padding:1rem}.member-username:before{color:#7f8c8d;content:"Username: ";font-weight:600}.member-role:before{color:#7f8c8d;content:"Role: ";font-weight:600}.member-actions:before{color:#7f8c8d;content:"Actions: ";font-weight:600}}.admin-panel-modal{max-width:1400px!important}.admin-panel-modal .hover-panel-body{padding:0}.family-form-section{background:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 6px #0000001a;padding:var(--space-6)}.families-section,.family-form-section{margin-bottom:var(--space-8)}.families-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.family-card{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);box-shadow:0 4px 6px #0000001a;padding:var(--space-6);transition:transform .2s,box-shadow .2s}.family-card:hover{box-shadow:0 8px 15px #00000026;transform:translateY(-2px)}.family-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.family-header h3{color:var(--neutral-800);font-size:var(--text-xl);margin:0}.family-description{margin-bottom:var(--space-4)}.family-stats{display:flex;gap:var(--space-6);margin-bottom:var(--space-6)}.stat-number{color:var(--primary-600);font-size:var(--text-2xl)}.stat-label{color:var(--neutral-600);letter-spacing:.5px}.family-actions{display:flex;gap:var(--space-3)}.role-badge{border-radius:var(--radius-full);display:inline-block;font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.5px;padding:var(--space-1) var(--space-3);text-transform:uppercase}.role-badge.admin{background-color:var(--red-100);color:var(--red-800)}.role-badge.planner{background-color:var(--blue-100);color:var(--blue-800)}.role-badge.editor{background-color:var(--green-100);color:var(--green-800)}.role-badge.viewer{background-color:var(--yellow-100);color:var(--yellow-800)}.role-badge.member{background-color:var(--neutral-100);color:var(--neutral-800)}.family-modal{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;padding:var(--space-4);position:fixed;top:0;width:100%;z-index:9999}.family-modal .modal-content{background:#fff;border-radius:var(--radius-lg);box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.family-modal .modal-header{align-items:center;background-color:var(--neutral-50);border-bottom:1px solid var(--neutral-200);display:flex;justify-content:space-between;padding:var(--space-6)}.family-modal .modal-header h2{color:var(--neutral-800);margin:0}.modal-title-section{flex:1 1}.family-description-modal{color:var(--neutral-600);font-size:var(--text-sm);font-style:italic;line-height:var(--leading-relaxed);margin:var(--space-2) 0 0 0}.family-modal .modal-body{flex:1 1;overflow-y:auto;padding:var(--space-6)}.family-tabs{border-bottom:1px solid var(--neutral-200);display:flex;margin-bottom:var(--space-6)}.tab{padding:var(--space-3) var(--space-4)}.tab.active{border-bottom-color:var(--primary-600)}.tab:hover:not(.active){color:var(--neutral-800)}.members-section{margin-bottom:var(--space-8)}.members-section h4{color:var(--neutral-800);margin-bottom:var(--space-4)}.members-list{display:flex;flex-direction:column;gap:var(--space-4)}.member-item{align-items:center;background-color:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-md);display:flex;padding:var(--space-4)}.member-info{flex:1 1;margin-right:var(--space-4)}.member-name{color:var(--neutral-800);font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.self-tag{color:var(--primary-600);font-weight:var(--font-normal);margin-left:var(--space-2)}.member-email,.self-tag{font-size:var(--text-sm)}.member-email{color:var(--neutral-600)}.member-role{margin-right:var(--space-4);text-align:center}.role-description{color:var(--neutral-600);font-size:var(--text-xs);line-height:var(--leading-tight);margin-top:var(--space-1);max-width:150px}.pending-invitations{border-top:1px solid var(--neutral-200);margin-top:var(--space-6);padding-top:var(--space-6)}.pending-invitations h5{color:var(--neutral-800);margin-bottom:var(--space-4)}.invitations-list{gap:var(--space-3)}.invitation-item{align-items:center;background-color:var(--yellow-50);border:1px solid var(--yellow-200);border-radius:var(--radius-md);display:flex;justify-content:space-between;padding:var(--space-3)}.invitation-info{flex:1 1}.invitation-email{color:var(--neutral-800);font-weight:var(--font-semibold)}.invitation-details{color:var(--neutral-600);font-size:var(--text-sm);margin-top:var(--space-1)}.status-badge{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-3);text-transform:uppercase}.status-badge.pending{background-color:var(--yellow-100);color:var(--yellow-800)}.invite-section{margin-bottom:var(--space-8)}.invite-section h4{color:var(--neutral-800);margin-bottom:var(--space-4)}.invite-form{background-color:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-md);padding:var(--space-6)}.role-help{color:var(--neutral-600);font-size:var(--text-sm);font-style:italic;margin-top:var(--space-2)}.preferences-section{margin-bottom:var(--space-8)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.section-header h4{color:var(--neutral-800);margin:0}.preferences-display,.preferences-form{background-color:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-md);padding:var(--space-6)}.preference-item{border-bottom:1px solid var(--neutral-200);margin-bottom:var(--space-3);padding-bottom:var(--space-3)}.preference-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.preference-item strong{color:var(--neutral-700);margin-right:var(--space-2)}.family-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-row{grid-template-columns:1fr 1fr}.form-group label{color:var(--neutral-700);font-size:var(--text-sm);font-weight:var(--font-semibold)}.form-group input,.form-group select,.form-group textarea{border:2px solid var(--neutral-300);border-radius:var(--radius-md);font-size:var(--text-sm);padding:var(--space-3);transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-500);outline:none}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.empty-state,.no-members{color:var(--neutral-600);padding:var(--space-8);text-align:center}.close-btn{align-items:center;color:var(--neutral-600);display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:background-color .2s,color .2s;width:40px}.close-btn:hover{background-color:var(--neutral-100);color:var(--neutral-800)}@media (max-width:768px){.families-grid{grid-template-columns:1fr}.family-modal{padding:var(--space-2)}.family-modal .modal-content{max-height:95vh}.family-modal .modal-body,.family-modal .modal-header{padding:var(--space-4)}.member-item{align-items:flex-start;flex-direction:column;gap:var(--space-3)}.member-role{margin-right:0;text-align:left}.form-row{grid-template-columns:1fr}.family-stats{justify-content:center}.form-actions,.section-header{flex-direction:column}.section-header{align-items:flex-start;gap:var(--space-2)}}.notifications-container{margin:0 auto;max-width:800px;padding:var(--space-6)}.invitations-section h2{color:var(--neutral-800);font-size:var(--text-2xl);margin-bottom:var(--space-6)}.invitations-list{display:flex;flex-direction:column;gap:var(--space-4)}.invitation-card{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);box-shadow:0 2px 4px #0000000d;padding:var(--space-6);transition:box-shadow .2s,transform .2s}.invitation-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.invitation-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--space-4)}.invitation-info h3{color:var(--neutral-800);font-size:var(--text-xl);margin:0 0 var(--space-2) 0}.invitation-details{color:var(--neutral-700);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0 0 var(--space-2) 0}.family-description{color:var(--neutral-600);font-size:var(--text-sm);font-style:italic;line-height:var(--leading-relaxed);margin:0}.invitation-meta{align-items:flex-end;display:flex;flex-direction:column;gap:var(--space-1)}.invitation-date,.invitation-expires{color:var(--neutral-500);font-size:var(--text-sm)}.invitation-expires{color:var(--orange-600);font-weight:var(--font-medium)}.invitation-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.invitation-actions .btn{font-size:var(--text-sm);min-width:120px;padding:var(--space-2) var(--space-4)}.empty-state{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);padding:var(--space-12) var(--space-6)}.empty-icon{font-size:4rem;margin-bottom:var(--space-4)}.empty-state h3{color:var(--neutral-800);font-size:var(--text-xl);margin-bottom:var(--space-2)}.empty-state p{color:var(--neutral-600);line-height:var(--leading-relaxed);margin-bottom:var(--space-2)}.empty-state p:last-child{margin-bottom:0}.loading-state{text-align:center}.spinner{border-top:4px solid var(--neutral-200);border:4px solid var(--neutral-200);margin:0 auto var(--space-4)}.message.success{background-color:var(--green-50);border:1px solid var(--green-200);color:var(--green-800)}.message.error{background-color:var(--red-50);border:1px solid var(--red-200);color:var(--red-800)}@media (max-width:768px){.notifications-container{padding:var(--space-4)}.invitation-header{flex-direction:column;gap:var(--space-3)}.invitation-meta{align-items:flex-start}.invitation-actions{flex-direction:column}.invitation-actions .btn{min-width:auto;width:100%}}.filters-section{align-items:center;background-color:var(--color-background-secondary);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-6)}.filter-group{display:flex;flex-direction:column;gap:var(--space-2);min-width:200px}.filter-group:first-child{flex:2 1;min-width:300px}.search-input{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);padding:var(--space-3);transition:border-color .2s ease;width:100%}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--primary-100);outline:none}.filter-select{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);padding:var(--space-3);transition:border-color .2s ease}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--primary-100);outline:none}.checkbox-label{align-items:center;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2)}.checkbox-label input[type=checkbox]{cursor:pointer;margin:0}.recipes-grid{grid-gap:var(--space-6);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-bottom:var(--space-8)}.recipe-card{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;padding:var(--space-6);transition:all .2s ease}.recipe-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.recipe-header{align-items:flex-start;display:flex;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-4)}.recipe-title{color:var(--color-text-primary);cursor:pointer;flex:1 1;font-size:var(--text-xl);font-weight:var(--font-semibold);line-height:1.3;margin:0}.recipe-title:hover{color:var(--color-primary)}.favorite-btn{background:none;border:none;color:var(--neutral-400);cursor:pointer;flex-shrink:0;font-size:var(--text-xl);padding:var(--space-1);transition:all .2s ease}.favorite-btn:hover{transform:scale(1.1)}.favorite-btn.favorited,.favorite-btn:hover{color:var(--error-500)}.recipe-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:var(--color-text-secondary);display:-webkit-box;font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-4);overflow:hidden}.recipe-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.tag{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3);text-transform:capitalize}.tag.meal-type{background-color:var(--primary-100);color:var(--primary-700)}.tag.source{background-color:var(--secondary-100);color:var(--secondary-700)}.recipe-meta{color:var(--color-text-tertiary);font-size:var(--text-xs);margin-bottom:var(--space-4)}.recipe-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--space-4)}.modal-content{background-color:var(--color-background);max-width:800px;width:100%}.recipe-modal .modal-content{max-width:900px}.modal-header{border-bottom:1px solid var(--color-border)}.modal-header h2,.modal-header h3{color:var(--color-text-primary);font-weight:var(--font-semibold);margin:0}.close-btn{color:var(--color-text-secondary);font-size:var(--text-2xl);transition:color .2s ease}.close-btn:hover{color:var(--color-text-primary)}.modal-footer{background-color:var(--color-background-secondary);border-top:1px solid var(--color-border)}.recipe-description-full{color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.6;margin-bottom:var(--space-6)}.recipe-source{background-color:var(--secondary-50);border-radius:var(--radius-md);color:var(--secondary-800);font-size:var(--text-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.recipe-details-grid{grid-gap:var(--space-8);display:grid;gap:var(--space-8);grid-template-columns:1fr 1fr;margin-bottom:var(--space-6)}@media (max-width:768px){.recipe-details-grid{gap:var(--space-6);grid-template-columns:1fr}}.recipe-details-grid h3{color:var(--color-text-primary);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-4)}.ingredients-list{list-style:none;margin:0;padding:0}.ingredients-list li{border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);line-height:1.5;padding:var(--space-2) 0}.ingredients-list li:last-child{border-bottom:none}.instructions-text{color:var(--color-text-secondary);line-height:1.7;white-space:pre-wrap}.nutrition-summary{background-color:var(--success-50);border-radius:var(--radius-lg);margin-top:var(--space-6);padding:var(--space-6)}.nutrition-summary h4{color:var(--success-800);font-weight:var(--font-semibold);margin:0 0 var(--space-4) 0}.nutrition-grid{grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.nutrition-item{background-color:var(--color-background);padding:var(--space-4)}.nutrition-item .value{color:var(--color-text-primary);font-weight:var(--font-semibold)}.nutrition-item .label{color:var(--color-text-secondary);font-size:var(--text-xs);letter-spacing:.5px}.nutrition-modal .modal-body h4{color:var(--color-text-primary);font-size:var(--text-xl);margin-bottom:var(--space-6)}.pagination{align-items:center;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;margin-top:var(--space-8);padding-top:var(--space-6)}.pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm)}.pagination-controls{display:flex;gap:var(--space-2)}.pagination-btn{background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:all .2s ease}.pagination-btn:hover{background-color:var(--color-background-secondary);border-color:var(--color-primary);color:var(--color-text-primary)}.pagination-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.empty-state{padding:var(--space-12)}.empty-state h3{color:var(--color-text-primary);font-size:var(--text-2xl);margin-bottom:var(--space-4)}.empty-state p{line-height:1.6;margin-bottom:var(--space-4)}.loading-state{align-items:center;color:var(--color-text-secondary);display:flex;flex-direction:column;justify-content:center;padding:var(--space-12)}.spinner{border-top:4px solid var(--color-border);border:4px solid var(--color-border);border-top-color:var(--color-primary);height:40px;margin-bottom:var(--space-4);width:40px}@media (max-width:768px){.filters-section{align-items:stretch;flex-direction:column}.filter-group{min-width:auto;width:100%}.recipes-grid{grid-template-columns:1fr}.pagination{flex-direction:column;gap:var(--space-4);text-align:center}.modal-content{margin:var(--space-4);max-height:calc(100vh - 2rem)}.recipe-actions{justify-content:center}}:root{--primary-50:#fef7f0;--primary-100:#feeee0;--primary-200:#fcd9bd;--primary-300:#f9bd8a;--primary-400:#f59e55;--primary-500:#ef7f2a;--primary-600:#e06520;--primary-700:#ba4f1c;--primary-800:#943f1e;--primary-900:#78361b;--secondary-50:#fefcf0;--secondary-100:#fef9e0;--secondary-200:#fcf0bd;--secondary-300:#f9e28a;--secondary-400:#f5d055;--secondary-500:#efbc2a;--secondary-600:#e0a120;--secondary-700:#ba811c;--secondary-800:#94651e;--secondary-900:#78541b;--neutral-50:#f8fafc;--neutral-100:#f1f5f9;--neutral-200:#e2e8f0;--neutral-300:#cbd5e1;--neutral-400:#94a3b8;--neutral-500:#64748b;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1e293b;--neutral-900:#0f172a;--success-50:#ecfdf5;--success-100:#d1fae5;--success-200:#a7f3d0;--success-300:#6ee7b7;--success-400:#34d399;--success-500:#10b981;--success-600:#059669;--success-700:#047857;--success-800:#065f46;--success-900:#064e3b;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-200:#fde68a;--warning-300:#fcd34d;--warning-400:#fbbf24;--warning-500:#f59e0b;--warning-600:#d97706;--warning-700:#b45309;--warning-800:#92400e;--warning-900:#78350f;--error-50:#fef2f2;--error-100:#fee2e2;--error-200:#fecaca;--error-300:#fca5a5;--error-400:#f87171;--error-500:#ef4444;--error-600:#dc2626;--error-700:#b91c1c;--error-800:#991b1b;--error-900:#7f1d1d;--font-family-primary:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell",sans-serif;--font-family-mono:"JetBrains Mono","Fira Code","Monaco","Cascadia Code","Roboto Mono",monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.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;--space-24:6rem;--space-32:8rem;--radius-none:0;--radius-sm:0.125rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070;--z-toast:1080;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--neutral-50);color:#1e293b;color:var(--neutral-800);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-family:var(--font-family-primary);font-size:1rem;font-size:var(--text-base);line-height:1.5;line-height:var(--leading-normal);text-rendering:optimizeSpeed}:focus-visible{outline:2px solid #ef7f2a}ol[role=list],ul[role=list]{list-style:none}img,picture,svg{display:block;height:auto;max-width:100%}button,input,select,textarea{color:inherit;font:inherit}button{background:none;border:none;cursor:pointer}canvas,img,picture,svg,video{display:block;max-width:100%}.hidden{display:none!important}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-2{gap:.5rem;gap:var(--space-2)}.gap-4{gap:1rem;gap:var(--space-4)}.gap-6{gap:1.5rem;gap:var(--space-6)}.gap-8{gap:2rem;gap:var(--space-8)}.p-0{padding:0;padding:var(--space-0)}.p-2{padding:.5rem;padding:var(--space-2)}.p-4{padding:1rem;padding:var(--space-4)}.p-6{padding:1.5rem;padding:var(--space-6)}.p-8{padding:2rem;padding:var(--space-8)}.px-4{padding-left:1rem;padding-left:var(--space-4);padding-right:1rem;padding-right:var(--space-4)}.py-2{padding-bottom:.5rem;padding-bottom:var(--space-2);padding-top:.5rem;padding-top:var(--space-2)}.py-4{padding-bottom:1rem;padding-bottom:var(--space-4);padding-top:1rem;padding-top:var(--space-4)}.m-0{margin:0;margin:var(--space-0)}.m-4{margin:1rem;margin:var(--space-4)}.mx-auto{margin-left:auto;margin-right:auto}.mt-4{margin-top:1rem;margin-top:var(--space-4)}.mb-4{margin-bottom:1rem;margin-bottom:var(--space-4)}.mb-8{margin-bottom:2rem;margin-bottom:var(--space-8)}.text-primary-600{color:#e06520;color:var(--primary-600)}.text-neutral-600{color:#475569;color:var(--neutral-600)}.text-neutral-800{color:#1e293b;color:var(--neutral-800)}.text-success-600{color:#059669;color:var(--success-600)}.text-error-600{color:#dc2626;color:var(--error-600)}.bg-white{background-color:#fff}.bg-neutral-50{background-color:#f8fafc;background-color:var(--neutral-50)}.bg-primary-500{background-color:#ef7f2a;background-color:var(--primary-500)}.text-xs{font-size:.75rem;font-size:var(--text-xs)}.text-sm{font-size:.875rem;font-size:var(--text-sm)}.text-base{font-size:1rem;font-size:var(--text-base)}.text-lg{font-size:1.125rem;font-size:var(--text-lg)}.text-xl{font-size:1.25rem;font-size:var(--text-xl)}.text-2xl{font-size:1.5rem;font-size:var(--text-2xl)}.text-3xl{font-size:1.875rem;font-size:var(--text-3xl)}.text-4xl{font-size:2.25rem;font-size:var(--text-4xl)}.font-light{font-weight:300;font-weight:var(--font-light)}.font-normal{font-weight:400;font-weight:var(--font-normal)}.font-medium{font-weight:500;font-weight:var(--font-medium)}.font-semibold{font-weight:600;font-weight:var(--font-semibold)}.font-bold{font-weight:700;font-weight:var(--font-bold)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.border{border-width:1px}.border-neutral-200{border-color:#e2e8f0;border-color:var(--neutral-200)}.border-primary-500{border-color:#ef7f2a;border-color:var(--primary-500)}.rounded-sm{border-radius:.125rem;border-radius:var(--radius-sm)}.rounded-md{border-radius:.375rem;border-radius:var(--radius-md)}.rounded-lg{border-radius:.5rem;border-radius:var(--radius-lg)}.rounded-xl{border-radius:.75rem;border-radius:var(--radius-xl)}.rounded-2xl{border-radius:1rem;border-radius:var(--radius-2xl)}.rounded-full{border-radius:9999px;border-radius:var(--radius-full)}.shadow-sm{box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;box-shadow:var(--shadow-xl)}.transition{transition:all .25s ease;transition:all var(--transition-base)}.transition-colors{transition:color .25s ease,background-color .25s ease;transition:color var(--transition-base),background-color var(--transition-base)}.hover\:bg-primary-600:hover{background-color:#e06520;background-color:var(--primary-600)}.hover\:bg-neutral-100:hover{background-color:#f1f5f9;background-color:var(--neutral-100)}.hover\:text-primary-600:hover{color:#e06520;color:var(--primary-600)}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:-webkit-sticky;position:sticky}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:text-lg{font-size:1.125rem;font-size:var(--text-lg)}}@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:text-xl{font-size:1.25rem;font-size:var(--text-xl)}.md\:flex-row{flex-direction:row}}@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:text-2xl{font-size:1.5rem;font-size:var(--text-2xl)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fadeIn{animation:fadeIn .5s ease-out}.animate-slideInUp{animation:slideInUp .5s ease-out}.animate-slideInDown{animation:slideInDown .5s ease-out}.animate-scaleIn{animation:scaleIn .3s ease-out}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.verification-status{padding:var(--space-8);text-align:center}.verification-status.success{color:var(--color-success)}.verification-status.error{color:var(--color-error)}.verification-status .error-icon,.verification-status .success-icon{display:block;font-size:4rem;margin-bottom:var(--space-4)}.verification-status .loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--color-border);border:4px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:40px;margin:0 auto var(--space-4);width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.resend-section{background-color:var(--color-background-secondary);border-radius:var(--radius-md);margin-top:var(--space-6);padding:var(--space-4);text-align:left}.resend-section h4{color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.resend-section p{color:var(--color-text-secondary);margin:0 0 var(--space-4) 0}.success-message{padding:var(--space-6);text-align:center}.success-message h3{color:var(--color-success);margin:0 0 var(--space-4) 0}.success-message p{color:var(--color-text-secondary);margin:0 0 var(--space-4) 0}.verification-tips{background-color:var(--color-background-secondary);border-radius:var(--radius-md);margin:var(--space-6) 0;padding:var(--space-4);text-align:left}.verification-tips h4{color:var(--color-text-primary);font-size:var(--text-sm);margin:0 0 var(--space-3) 0}.verification-tips ul{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;padding-left:var(--space-4)}.verification-tips li{margin-bottom:var(--space-1)}.auth-actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}.auth-actions .btn{min-width:140px}.link-button{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;margin:0;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-primary-dark)}.message{border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4)}.message.success{background-color:#f0f9ff;background-color:var(--color-success-bg,#f0f9ff);border:1px solid #bfdbfe;border:1px solid var(--color-success-border,#bfdbfe);color:#059669;color:var(--color-success,#059669)}.message.error{background-color:#fef2f2;background-color:var(--color-error-bg,#fef2f2);border:1px solid #fecaca;border:1px solid var(--color-error-border,#fecaca);color:#dc2626;color:var(--color-error,#dc2626)}.shopping-list-header{margin-bottom:var(--space-6)}.shopping-list-title h1{color:var(--color-text-primary);margin:var(--space-4) 0 var(--space-2) 0}.shopping-list-title h2{color:var(--color-primary);font-size:var(--text-lg);margin:0 0 var(--space-2) 0}.shopping-list-title p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.shopping-list-controls{align-items:center;background-color:var(--color-background-secondary);border-radius:var(--radius-md);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4);padding:var(--space-4)}.shopping-list-stats{display:flex;gap:var(--space-6)}.stat{text-align:center}.stat-number{color:var(--color-primary);display:block;font-size:var(--text-xl);font-weight:var(--font-bold)}.stat-label{color:var(--color-text-secondary);display:block;font-size:var(--text-xs);text-transform:uppercase}.shopping-list-actions{align-items:center;display:flex;gap:var(--space-3)}.toggle-switch{align-items:center;cursor:pointer;display:flex;font-size:var(--text-sm);gap:var(--space-2)}.toggle-switch input{margin:0}.progress-bar{background-color:var(--color-border);border-radius:4px;height:8px;margin-bottom:var(--space-6);overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,var(--color-primary),var(--color-success));height:100%;transition:width .3s ease}.shopping-category{margin-bottom:var(--space-6)}.category-title{align-items:center;border-bottom:2px solid var(--color-border);color:var(--color-text-primary);display:flex;font-size:var(--text-lg);font-weight:var(--font-semibold);gap:var(--space-2);margin:0 0 var(--space-3) 0;padding-bottom:var(--space-2)}.category-count{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-normal)}.shopping-items{grid-gap:var(--space-2);display:grid;gap:var(--space-2)}.shopping-item{align-items:center;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.shopping-item:hover{background-color:var(--color-background-secondary);border-color:var(--color-primary-light)}.shopping-item.checked{background-color:#f0fdf4;background-color:var(--color-success-bg,#f0fdf4);border-color:#059669;border-color:var(--color-success,#059669);opacity:.7}.shopping-item.checked .item-name{color:var(--color-text-secondary);text-decoration:line-through}.item-checkbox{flex-shrink:0}.item-checkbox input{cursor:pointer;margin:0}.item-content{align-items:center;display:flex;flex:1 1;justify-content:space-between}.item-name{color:var(--color-text-primary);font-weight:var(--font-medium)}.item-quantity{background-color:var(--color-background-secondary);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-1) var(--space-2)}.error-container,.loading-container{padding:var(--space-8);text-align:center}.loading-container .loading-spinner{animation:spin 1s linear infinite;border-top:4px solid var(--color-border);border:4px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:40px;margin:0 auto var(--space-4);width:40px}.empty-state{color:var(--color-text-secondary);padding:var(--space-8);text-align:center}.empty-state p{font-size:var(--text-lg);margin:0 0 var(--space-4) 0}@media (max-width:768px){.shopping-list-controls{align-items:stretch;flex-direction:column}.shopping-list-actions,.shopping-list-stats{justify-content:center}.item-content{align-items:flex-start;flex-direction:column;gap:var(--space-1)}}.admin-panel{margin-top:var(--space-4)}.admin-tabs{border-bottom:1px solid var(--color-border);display:flex;gap:var(--space-2);margin-bottom:var(--space-6)}.tab-button{background:none;border:none;border-bottom:2px solid #0000;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast)}.tab-button.active,.tab-button:hover{background-color:var(--color-primary-50);color:var(--color-primary)}.tab-button.active{border-bottom-color:var(--color-primary)}.admin-tab-content{margin-top:var(--space-4)}.admin-search{margin-bottom:var(--space-4)}.admin-search input{max-width:400px;width:100%}.audit-table,.families-table,.users-table{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto;width:100%}.audit-table table,.families-table table,.users-table table{border-collapse:collapse;min-width:800px;width:100%}.audit-table td,.audit-table th,.families-table td,.families-table th,.users-table td,.users-table th{border-bottom:1px solid var(--color-border);padding:var(--space-3) var(--space-4);text-align:left}.audit-table th,.families-table th,.users-table th{background-color:var(--color-gray-50);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-semibold)}.audit-table td,.families-table td,.users-table td{color:var(--color-text-secondary);font-size:var(--text-sm)}.action-buttons{align-items:center;gap:var(--space-2)}.audit-table td:last-child,.audit-table th:last-child,.families-table td:last-child,.families-table th:last-child,.users-table td:last-child,.users-table th:last-child{text-align:center}.action-badge{background-color:var(--color-blue-100);border-radius:var(--radius-full);color:var(--color-blue-800);font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.status-badge.admin{background-color:var(--color-purple-100);color:var(--color-purple-800)}.status-badge.regular{background-color:var(--color-gray-100);color:var(--color-gray-800)}.modal-overlay{background-color:#00000080;height:100%;width:100%;z-index:1000}.modal-content{border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:90vh;padding:var(--space-6)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4)}.loading{color:var(--color-text-secondary);display:flex;font-style:italic;padding:var(--space-8)}.btn,.loading{align-items:center;justify-content:center}.btn{border:1px solid #0000;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);line-height:var(--leading-none);overflow:hidden;padding:var(--space-3) var(--space-6);position:relative;text-decoration:none;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-sm{font-size:var(--text-xs);padding:var(--space-2) var(--space-4)}.btn-lg{font-size:var(--text-base);padding:var(--space-4) var(--space-8)}.btn-xl{font-size:var(--text-lg);padding:var(--space-5) var(--space-10)}.btn-primary{background:linear-gradient(135deg,var(--primary-500) 0,var(--primary-600) 100%);box-shadow:var(--shadow-sm);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-600) 0,var(--primary-700) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary{background-color:#fff;border-color:var(--neutral-300);box-shadow:var(--shadow-sm);color:var(--neutral-700)}.btn-secondary:hover:not(:disabled){background-color:var(--neutral-50);border-color:var(--neutral-400);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-ghost{background-color:initial;color:var(--neutral-600)}.btn-ghost:hover:not(:disabled){background-color:var(--neutral-100);color:var(--neutral-800)}.btn-danger{background:linear-gradient(135deg,var(--error-500) 0,var(--error-600) 100%);box-shadow:var(--shadow-sm);color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,var(--error-600) 0,var(--error-700) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,var(--warning-500) 0,var(--warning-600) 100%);box-shadow:var(--shadow-sm);color:#fff}.btn-warning:hover:not(:disabled){background:linear-gradient(135deg,var(--warning-600) 0,var(--warning-700) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--success-500) 0,var(--success-600) 100%);box-shadow:var(--shadow-sm);color:#fff}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,var(--success-600) 0,var(--success-700) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-full{width:100%}.btn-loading{color:#0000;pointer-events:none}.btn-loading:after{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;content:"";height:16px;left:50%;margin-left:-8px;margin-top:-8px;position:absolute;top:50%;width:16px}.card{background-color:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{background:linear-gradient(135deg,var(--neutral-50) 0,#fff 100%);border-bottom:1px solid var(--neutral-200);padding:var(--space-6)}.card-title{color:var(--neutral-800);font-size:var(--text-lg);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.card-description{color:var(--neutral-600);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.card-body,.card-footer{padding:var(--space-6)}.card-footer{background-color:var(--neutral-50);border-top:1px solid var(--neutral-200);display:flex;gap:var(--space-3);justify-content:flex-end}.card-elevated{border:none;box-shadow:var(--shadow-lg)}.card-flat{border:2px solid var(--neutral-200);box-shadow:none}.card-gradient{background:linear-gradient(135deg,var(--primary-50) 0,var(--secondary-50) 100%);border:1px solid var(--primary-200)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{color:var(--neutral-700);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium)}.form-label.required:after{color:var(--error-500);content:" *"}.form-input,.form-select,.form-textarea{background-color:#fff;border:1px solid var(--neutral-300);border-radius:var(--radius-lg);font-size:var(--text-base);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);outline:none}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:var(--neutral-100);color:var(--neutral-500);cursor:not-allowed}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error-500)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px var(--error-100)}.form-textarea{min-height:100px;resize:vertical}.form-help-text{color:var(--neutral-600);font-size:var(--text-sm)}.form-error-text{align-items:center;color:var(--error-600);display:flex;font-size:var(--text-sm);gap:var(--space-1)}.form-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:1fr}.form-row.cols-2{grid-template-columns:1fr 1fr}.form-row.cols-3{grid-template-columns:1fr 1fr 1fr}@media (max-width:768px){.form-row.cols-2,.form-row.cols-3{grid-template-columns:1fr}}.form-checkbox,.form-radio{align-items:center;cursor:pointer;display:flex;gap:var(--space-3)}.form-checkbox input[type=checkbox],.form-radio input[type=radio]{cursor:pointer;height:16px;margin:0;width:16px}.form-toggle{align-items:center;cursor:pointer;display:flex;gap:var(--space-3)}.toggle-switch{background-color:var(--neutral-300);border-radius:var(--radius-full);display:inline-block;height:24px;position:relative;transition:background-color var(--transition-base);width:48px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{bottom:0;cursor:pointer;left:0;right:0;top:0}.toggle-slider,.toggle-slider:before{border-radius:var(--radius-full);position:absolute;transition:var(--transition-base)}.toggle-slider:before{background-color:#fff;box-shadow:var(--shadow-sm);content:"";height:20px;left:2px;top:2px;width:20px}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-500)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(24px)}.badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:.05em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.badge-primary{background-color:var(--primary-100);color:var(--primary-800)}.badge-secondary{background-color:var(--neutral-100);color:var(--neutral-800)}.badge-success{background-color:var(--success-100);color:var(--success-800)}.badge-warning{background-color:var(--warning-100);color:var(--warning-800)}.badge-error{background-color:var(--error-100);color:var(--error-800)}.alert{align-items:flex-start;animation:slideInDown .3s ease-out;border:1px solid;border-radius:var(--radius-lg);display:flex;gap:var(--space-3);padding:var(--space-4);position:relative}.alert-success{background-color:var(--success-50);border-color:var(--success-200);color:var(--success-800)}.alert-warning{background-color:var(--warning-50);border-color:var(--warning-200);color:var(--warning-800)}.alert-error{background-color:var(--error-50);border-color:var(--error-200);color:var(--error-800)}.alert-info{background-color:var(--primary-50);border-color:var(--primary-200);color:var(--primary-800)}.alert-content{flex:1 1}.alert-title{font-weight:var(--font-semibold);margin-bottom:var(--space-1)}.alert-dismiss{background:none;border:none;border-radius:var(--radius-sm);color:inherit;cursor:pointer;padding:var(--space-1);transition:background-color var(--transition-fast)}.alert-dismiss:hover{background-color:#0000001a}.spinner{animation:spin 1s linear infinite;border:2px solid var(--neutral-200);border-radius:50%;border-top-color:var(--primary-500);height:24px;width:24px}.spinner-sm{border-width:2px;height:16px;width:16px}.spinner-lg{border-width:3px;height:32px;width:32px}.loading-container{padding:var(--space-8)}.skeleton{animation:loading 1.5s infinite;background:linear-gradient(90deg,var(--neutral-200) 25%,var(--neutral-100) 50%,var(--neutral-200) 75%);background-size:200% 100%;border-radius:var(--radius-md)}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1rem;margin-bottom:var(--space-2)}.skeleton-title{height:1.5rem;margin-bottom:var(--space-4);width:60%}.tabs{border-bottom:1px solid var(--neutral-200);display:flex;gap:var(--space-1);margin-bottom:var(--space-6)}.tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--neutral-600);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-3) var(--space-6);position:relative;transition:all var(--transition-fast)}.tab.active,.tab:hover{background-color:var(--primary-50);color:var(--primary-600)}.tab.active{border-bottom-color:var(--primary-500)}.modal-backdrop{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:var(--space-4);position:fixed;right:0;top:0;z-index:var(--z-modal-backdrop)}.modal{animation:scaleIn .2s ease-out;background-color:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-title{color:var(--neutral-800);font-size:var(--text-lg);font-weight:var(--font-semibold)}.modal-footer{background-color:var(--neutral-50);border-top:1px solid var(--neutral-200);display:flex;gap:var(--space-3);justify-content:flex-end;padding:var(--space-6)}.dropdown{display:inline-block;position:relative}.dropdown-content{animation:slideInDown .2s ease-out;background-color:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);left:0;min-width:200px;overflow:hidden;position:absolute;top:100%;z-index:var(--z-dropdown)}.dropdown-item{background:none;border:none;color:var(--neutral-700);cursor:pointer;display:block;font-size:var(--text-sm);padding:var(--space-3) var(--space-4);text-align:left;text-decoration:none;transition:background-color var(--transition-fast);width:100%}.dropdown-item:hover{background-color:var(--neutral-100);color:var(--neutral-900)}.dropdown-divider{background-color:var(--neutral-200);height:1px;margin:var(--space-2) 0}@media (max-width:768px){.card-body,.card-footer,.card-header{padding:var(--space-4)}.btn{padding:var(--space-3) var(--space-5)}.modal{margin:var(--space-4);max-width:calc(100% - var(--space-8))}}.App{background:linear-gradient(135deg,var(--neutral-50) 0,var(--primary-50) 100%);display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1 1;padding-top:80px;position:relative}.auth-container,.container,.main-content>*,.page-container{margin-left:auto;margin-right:auto;max-width:1440px;padding-left:var(--space-6);padding-right:var(--space-6)}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid var(--neutral-200);height:70px;left:0;position:fixed;right:0;top:0;transition:all var(--transition-base);z-index:var(--z-fixed)}.nav-container{height:100%;justify-content:space-between;margin:0 auto;max-width:1320px;padding:0 var(--space-6)}.nav-brand,.nav-container{align-items:center;display:flex}.nav-brand{font-weight:var(--font-bold);gap:var(--space-2);text-decoration:none;transition:all var(--transition-base)}.nav-brand,.nav-brand-icon{font-size:var(--text-xl)}.nav-brand-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--primary-500) 0,var(--secondary-500) 100%);-webkit-background-clip:text;background-clip:text}.nav-brand:hover{transform:scale(1.05)}.nav-menu{align-items:center;display:flex;gap:var(--space-6)}.nav-link{border-radius:var(--radius-lg);color:var(--neutral-600);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);position:relative;text-decoration:none;transition:all var(--transition-fast)}.nav-link:before{background:linear-gradient(135deg,var(--primary-500) 0,var(--secondary-500) 100%);bottom:-2px;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all var(--transition-base);width:0}.nav-link.active,.nav-link:hover{background-color:var(--primary-50);color:var(--primary-600);transform:translateY(-1px)}.nav-link.active:before,.nav-link:hover:before{width:100%}.nav-user{align-items:center;display:flex;gap:var(--space-4)}.user-greeting{border-radius:var(--radius-lg);color:var(--neutral-700);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);text-decoration:none;transition:all var(--transition-fast)}.user-greeting:hover{background-color:var(--primary-50);color:var(--primary-600)}.logout-btn{background:none;border:1px solid var(--error-300);border-radius:var(--radius-lg);color:var(--error-600);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast)}.logout-btn:hover{background-color:var(--error-500);border-color:var(--error-500);box-shadow:var(--shadow-sm);color:#fff;transform:translateY(-1px)}.page-container{animation:fadeIn .6s ease-out;margin:0 auto;max-width:1320px;padding:var(--space-8) var(--space-6)}.auth-container{align-items:center;background:linear-gradient(135deg,var(--primary-50) 0,var(--secondary-50) 100%);display:flex;justify-content:center;min-height:calc(100vh - 80px);padding:var(--space-6)}.hero-section{margin-bottom:var(--space-16);position:relative;text-align:center}.hero-section:before{animation:pulse 4s ease-in-out infinite;background:radial-gradient(circle,var(--primary-200) 0,#0000 70%);border-radius:50%;content:"";height:200px;left:50%;position:absolute;top:-50px;transform:translateX(-50%);width:200px;z-index:-1}.hero-title{-webkit-text-fill-color:#0000;animation:slideInUp .8s ease-out;background:linear-gradient(135deg,var(--neutral-800) 0,var(--primary-600) 50%,var(--secondary-600) 100%);-webkit-background-clip:text;background-clip:text;font-size:var(--text-5xl);font-weight:var(--font-extrabold);line-height:var(--leading-tight);margin-bottom:var(--space-6)}.auth-title,.hero-title,.profile-title{-webkit-text-fill-color:initial!important;background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;color:var(--primary-700);text-shadow:0 1px 0 #fff6,0 2px 4px #0000001a}.hero-subtitle{animation:slideInUp .8s ease-out .2s both;color:var(--neutral-600);font-size:var(--text-xl);line-height:var(--leading-relaxed);margin-bottom:var(--space-10);margin-left:auto;margin-right:auto;max-width:600px}.action-buttons{animation:slideInUp .8s ease-out .4s both;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}.btn-tertiary{background-color:#fff;border:1px solid var(--neutral-300);color:var(--neutral-700)}.btn-tertiary:hover{background-color:var(--neutral-100);border-color:var(--neutral-400);box-shadow:var(--shadow-md);transform:translateY(-1px)}.features-section{margin-top:var(--space-20)}.section-title{color:var(--neutral-800);font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-12);text-align:center}.features-grid{overflow:hidden;position:relative;width:100%}.features-scroll-container{animation:scrollLeft 32s linear infinite;display:flex;gap:var(--space-6);will-change:transform}.features-scroll-container:hover{animation-play-state:paused}@keyframes scrollLeft{0%{transform:translateX(0)}to{transform:translateX(calc(-50% - var(--space-6)))}}@keyframes fadeInStagger{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.feature-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border:1px solid var(--neutral-200);border-radius:var(--radius-2xl);overflow:hidden;padding:var(--space-8);position:relative;text-align:center;transition:all var(--transition-base)}.features-scroll-container .feature-card{flex:0 0 300px;min-width:300px}.feature-card:before{background:linear-gradient(135deg,var(--primary-500) 0,var(--secondary-500) 100%);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform var(--transition-base)}.feature-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.feature-card:hover:before{transform:scaleX(1)}.feature-icon{display:block;font-size:2.5rem;margin-bottom:var(--space-4)}.feature-title{color:var(--neutral-800);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:var(--space-3)}.feature-description{color:var(--neutral-600);line-height:var(--leading-relaxed)}.auth-card{animation:scaleIn .5s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid var(--neutral-200);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-width:450px;padding:var(--space-10);width:100%}.auth-header{margin-bottom:var(--space-8);text-align:center}.auth-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--neutral-800) 0,var(--primary-600) 100%);-webkit-background-clip:text;background-clip:text;font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.auth-description{color:var(--neutral-600);font-size:var(--text-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.auth-footer{border-top:1px solid var(--neutral-200);margin-top:var(--space-6);padding-top:var(--space-6);text-align:center}.auth-footer p{color:var(--neutral-600);font-size:var(--text-sm);margin-bottom:var(--space-2)}.auth-footer a{color:var(--primary-600);font-weight:var(--font-medium);text-decoration:none;transition:color var(--transition-fast)}.auth-footer a:hover{color:var(--primary-700);text-decoration:underline}.profile-header{margin-bottom:var(--space-10);position:relative;text-align:center}.profile-header:before{background:radial-gradient(circle,var(--primary-100) 0,#0000 70%);border-radius:50%;content:"";height:150px;left:50%;position:absolute;top:-30px;transform:translateX(-50%);width:150px;z-index:-1}.profile-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--neutral-800) 0,var(--primary-600) 100%);-webkit-background-clip:text;background-clip:text;font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-3)}.profile-description{color:var(--neutral-600);font-size:var(--text-lg);margin:0 auto;max-width:500px}.profile-tabs{background:#fffc;border:1px solid var(--neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);display:flex;gap:var(--space-2);margin-bottom:var(--space-8);overflow-x:auto;padding:var(--space-2)}.profile-content,.profile-tabs{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.profile-content{animation:fadeIn .5s ease-out;background:#fffffff2;border:1px solid var(--neutral-200);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--space-8)}.message{align-items:center;animation:slideInDown .3s ease-out;border-radius:var(--radius-lg);display:flex;font-weight:var(--font-medium);gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4)}.message.success{background:linear-gradient(135deg,var(--success-50) 0,var(--success-100) 100%);border:1px solid var(--success-200);color:var(--success-800)}.message.error{border:1px solid var(--error-200)}.error-message,.message.error{background:linear-gradient(135deg,var(--error-50) 0,var(--error-100) 100%);color:var(--error-800)}.error-message{animation:slideInDown .3s ease-out;border:1px solid var(--error-200);border-radius:var(--radius-lg);margin-bottom:var(--space-6);padding:var(--space-4)}.loading-container{align-items:center;display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;min-height:300px}.loading-spinner{animation:spin 1s linear infinite;border-top:3px solid var(--neutral-200);border:3px solid var(--neutral-200);border-radius:50%;border-top-color:var(--primary-500);height:40px;width:40px}.loading-text{animation:pulse 1.5s ease-in-out infinite;color:var(--neutral-600);font-size:var(--text-sm)}.nutrition-info{background:rgba(var(--primary-100-rgb),.1);border-left:4px solid var(--primary-500);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-4)}.nutrition-header{align-items:center;color:var(--neutral-700);display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.nutrition-icon{font-size:1.2rem}.nutrition-grid{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.nutrition-item{background:#ffffffb3;border:1px solid var(--neutral-200);border-radius:var(--radius-md);padding:var(--space-2);text-align:center;transition:all var(--transition-base)}.nutrition-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.nutrition-item .value{display:block;font-size:var(--text-lg);font-weight:var(--font-bold);margin-bottom:var(--space-1)}.nutrition-item .label{display:block;font-size:var(--text-sm);letter-spacing:.05em;opacity:.8;text-transform:uppercase}.nutrition-item:first-child .value,.nutrition-item:nth-child(2) .value{color:var(--primary-600);font-weight:var(--font-bold)}.meal-plan-nutrition-summary{background:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--radius-xl);margin:var(--space-6) 0;padding:var(--space-6)}.nutrition-summary-header{margin-bottom:var(--space-6);text-align:center}.nutrition-summary-title{color:var(--neutral-800);font-size:var(--text-2xl);font-weight:var(--font-bold);margin-bottom:var(--space-2)}.nutrition-summary-subtitle{color:var(--neutral-600);font-size:var(--text-sm)}.daily-nutrition-grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:var(--space-6)}.daily-nutrition-card{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);text-align:center}.daily-nutrition-day{color:var(--primary-600);font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.daily-nutrition-card.daily-average{background:var(--primary-50);border:2px solid var(--primary-500)}.daily-nutrition-card.daily-average .daily-nutrition-day{color:var(--primary-600);font-weight:var(--font-bold)}.daily-nutrition-card.daily-average .daily-calories,.daily-nutrition-card.daily-average .daily-macros{color:var(--primary-700);font-weight:var(--font-bold)}.daily-calories{color:var(--neutral-800);font-size:var(--text-xl);font-weight:var(--font-bold)}.daily-macros{color:var(--neutral-600);display:flex;font-size:var(--text-xs);justify-content:space-around;margin-top:var(--space-2)}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:80vh;max-width:500px;overflow-y:auto;width:90%}.nutrition-modal{max-width:600px}.rating-modal{max-width:450px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background:var(--neutral-50);border-bottom:1px solid var(--neutral-200);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;justify-content:space-between;padding:var(--space-6)}.modal-header h3{color:var(--neutral-800);font-size:var(--text-xl);font-weight:var(--font-bold);margin:0}.close-btn{background:none;border:none;border-radius:var(--radius-md);color:var(--neutral-500);cursor:pointer;font-size:24px;line-height:1;padding:var(--space-2);transition:all var(--transition-base)}.close-btn:hover{background:var(--neutral-200);color:var(--neutral-700)}.modal-body{padding:var(--space-6)}.modal-body h4{color:var(--neutral-800);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0 0 var(--space-4) 0}.meal-actions{border-top:1px solid var(--neutral-200);display:flex;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4)}.nutrition-btn:hover{background:var(--success-50);border-color:var(--success-200);color:var(--success-700)}.rating-btn:hover{background:var(--warning-50);border-color:var(--warning-200);color:var(--warning-700)}.meal-rating{background:rgba(var(--secondary-50-rgb),.3);border-left:4px solid var(--secondary-500);border-radius:var(--radius-lg);margin-top:var(--space-4);padding:var(--space-4)}.rating-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.rating-header h4{color:var(--neutral-800);font-size:var(--text-lg);margin:0}.rating-stats{color:var(--neutral-600);display:flex;font-size:var(--text-sm);gap:var(--space-3)}.avg-rating,.favorite-count{align-items:center;display:flex;gap:var(--space-1)}.star-rating{display:flex;gap:var(--space-1);margin-bottom:var(--space-3)}.star-button{background:none;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:1.5rem;opacity:.3;padding:var(--space-1);transition:all var(--transition-fast)}.star-button.filled,.star-button:hover{opacity:1;transform:scale(1.1)}.star-button:disabled{cursor:not-allowed;opacity:.5}.rating-options{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-3)}.favorite-toggle{align-items:center;cursor:pointer;display:flex;font-size:var(--text-sm);gap:var(--space-2)}.favorite-toggle input[type=checkbox]{display:none}.favorite-toggle .checkmark{font-size:1.2rem;opacity:.3;transition:all var(--transition-fast)}.favorite-toggle input[type=checkbox]:checked+.checkmark{opacity:1;transform:scale(1.2)}.notes-toggle{background:none;border:1px solid var(--neutral-300);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);padding:var(--space-1) var(--space-2);transition:all var(--transition-fast)}.notes-toggle:hover{background:var(--neutral-100);border-color:var(--neutral-400)}.rating-notes{margin-bottom:var(--space-3)}.rating-notes textarea{border:1px solid var(--neutral-300);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);min-height:80px;padding:var(--space-2);resize:vertical;width:100%}.rating-notes textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(var(--primary-500-rgb),.1);outline:none}.rating-actions{display:flex;justify-content:flex-end}.current-rating{border-top:1px solid var(--neutral-200);margin-top:var(--space-2);padding-top:var(--space-2)}.current-rating small{color:var(--neutral-600);font-style:italic}@media (max-width:768px){.hero-title{font-size:var(--text-3xl)}.hero-subtitle{font-size:var(--text-lg)}.action-buttons{align-items:center;flex-direction:column}.nav-container{flex-direction:column;gap:var(--space-4);height:auto;padding:var(--space-4) var(--space-4)}.navbar{height:auto;position:relative}.main-content{padding-top:var(--space-6)}.page-container{padding:var(--space-6) var(--space-4)}.features-grid{grid-template-columns:1fr}.profile-tabs{flex-direction:column;gap:var(--space-1)}.auth-card{margin:var(--space-4);max-width:calc(100% - var(--space-8));padding:var(--space-6)}.nutrition-grid{grid-template-columns:repeat(3,1fr)}.daily-nutrition-grid{grid-template-columns:repeat(2,1fr)}.profile-content{padding:var(--space-6)}}@media (max-width:480px){.nav-menu{flex-wrap:wrap;gap:var(--space-2);justify-content:center}.hero-title,.section-title{font-size:var(--text-2xl)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fadeInUp{animation:fadeInUp .6s ease-out}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:all .6s ease-out}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.interactive-hover{transition:all var(--transition-base)}.interactive-hover:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}:focus-visible{border-radius:var(--radius-sm);outline:2px solid var(--primary-500);outline-offset:2px}@media (prefers-contrast:high){.nav-brand{-webkit-text-fill-color:var(--primary-600)}.auth-title,.hero-title{-webkit-text-fill-color:var(--neutral-800)}}
/*# sourceMappingURL=main.5143a4a0.css.map*/