.scanner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000}.scanner-container{background:#fff;border-radius:16px;padding:24px;max-width:500px;width:90%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.scanner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.scanner-header h2{margin:0;color:#333;font-size:24px}.scanner-video-container{position:relative;width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#000;margin-bottom:16px}.scanner-video{width:100%;height:100%;object-fit:cover}.scanner-video.mirror{transform:scaleX(-1)}.scanner-overlay-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;height:70%;border:3px solid #3b82f6;border-radius:12px;box-shadow:0 0 0 9999px #00000080;pointer-events:none;z-index:1}.scanner-help-button,.scanner-debug-button{position:absolute;top:12px;width:36px;height:36px;border-radius:50%;background:#3b82f6e6;color:#fff;border:2px solid white;font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;box-shadow:0 2px 8px #0000004d;transition:all .2s}.scanner-help-button{right:12px}.scanner-debug-button{right:56px;background:#8b5cf6e6;font-size:16px}.scanner-help-button:hover,.scanner-debug-button:hover{transform:scale(1.1)}.scanner-help-button:hover{background:#2563ebf2}.scanner-debug-button:hover{background:#7c3aedf2}.scanner-help-button:active,.scanner-debug-button:active{transform:scale(.95)}.scanner-tips-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.scanner-tips-content{background:#fff;border-radius:16px;padding:24px;max-width:400px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.scanner-tips-content h3{margin:0 0 16px;color:#333;font-size:20px}.scanner-tips-content ul{margin:0 0 20px;padding-left:24px;list-style:none}.scanner-tips-content li{margin:8px 0;position:relative;padding-left:20px;color:#555;line-height:1.5}.scanner-tips-content li:before{content:"•";position:absolute;left:0;color:#3b82f6;font-weight:700;font-size:18px}.scanner-tips-close{width:100%;padding:12px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.scanner-tips-close:hover{background:#2563eb}.scanner-debug-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.scanner-debug-content{background:#1e293b;border-radius:16px;padding:24px;max-width:500px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.scanner-debug-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.scanner-debug-header h3{margin:0;color:#fff;font-size:20px}.scanner-debug-clear{padding:6px 12px;background:#64748b;color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:background .2s}.scanner-debug-clear:hover{background:#475569}.scanner-debug-logs{background:#0f172a;border-radius:8px;padding:12px;max-height:400px;overflow-y:auto;margin-bottom:16px;font-family:Courier New,monospace;font-size:11px;line-height:1.6}.scanner-debug-log-line{color:#94a3b8;margin-bottom:4px;word-break:break-all}.scanner-debug-log-line:last-child{margin-bottom:0}.scanner-error{background:#fee;color:#c33;padding:12px;border-radius:8px;margin-bottom:16px;text-align:center}.scanner-status{text-align:center;color:#3b82f6;font-weight:500;margin-bottom:16px}.scanner-actions{display:flex;gap:12px;justify-content:center;background:#fff;flex-shrink:0;position:sticky;bottom:0;z-index:10;padding-top:16px;border-top:1px solid #e5e7eb}.scanner-button{padding:12px 24px;background:#3b82f6;color:#fff;border-radius:8px;font-size:16px;font-weight:500;transition:background .2s}.scanner-button:hover{background:#2563eb}.scanner-divider{display:flex;align-items:center;text-align:center;margin:20px 0;color:#999;font-size:14px}.scanner-divider:before,.scanner-divider:after{content:"";flex:1;border-bottom:1px solid #e0e0e0}.scanner-divider span{padding:0 16px}.scanner-manual-entry{display:flex;gap:10px;margin-bottom:16px}.scanner-barcode-input{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;font-family:monospace}.scanner-barcode-input:focus{outline:none;border-color:#3b82f6}.scanner-lookup-button{padding:12px 24px;background:#48bb78;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.scanner-lookup-button:hover:not(:disabled){background:#38a169}.scanner-lookup-button:disabled{opacity:.6;cursor:not-allowed}.food-search-result-compact{padding:12px 16px;background:#f7f7f7;border-radius:8px;transition:background .2s,transform .1s;border:2px solid transparent;display:flex;justify-content:space-between;align-items:center;gap:12px}.food-search-result-compact:hover{background:#e8e8e8;border-color:#3b82f6}.food-result-content{flex:1;cursor:pointer}.food-result-name{font-weight:500;color:#333;margin-bottom:4px;font-size:16px}.food-result-summary{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding:8px 12px;background:#f0f0f0;border-radius:6px;align-items:center}.food-summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.food-summary-label{color:#666;font-weight:500}.food-summary-value{color:#333;font-weight:700}.food-summary-item.food-summary-serving .food-summary-value{color:#3b82f6}.food-summary-item.food-summary-calories .food-summary-value{color:#ef4444}.food-summary-item.food-summary-fat .food-summary-value{color:#f59e0b}.food-summary-item.food-summary-protein .food-summary-value{color:#10b981}.food-view-details-button-small{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.food-view-details-button-small:hover{background:#2563eb}.food-search-result-full{border:2px solid #f0f0f0;border-radius:12px;padding:20px;transition:border-color .2s,box-shadow .2s}.food-search-result-full:hover{border-color:#3b82f6;box-shadow:0 2px 8px #667eea1a}.food-result-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap;gap:12px}.food-result-title-section{flex:1}.food-result-header h3{margin:0 0 4px;color:#333;font-size:20px}.food-barcode-badge{background:#f0f0f0;color:#666;padding:4px 12px;border-radius:12px;font-size:12px;font-family:monospace}.food-result-nutrition{margin-bottom:16px}.food-nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.food-nutrition-item{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f7f7f7;border-radius:8px}.food-nutrition-label{font-size:12px;color:#666;margin-bottom:4px}.food-nutrition-value{font-size:18px;font-weight:700;color:#3b82f6}.food-result-actions{display:flex;gap:8px;flex-wrap:wrap}.food-view-details-button{flex:1;min-width:120px;padding:10px 16px;border:2px solid #3b82f6;background:#fff;color:#3b82f6;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.food-view-details-button:hover{background:#3b82f6;color:#fff}.food-add-button{flex:1;min-width:120px;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;color:#fff}.food-add-breakfast{background:#fbbf24}.food-add-breakfast:hover{background:#f59e0b}.food-add-lunch{background:#3b82f6}.food-add-lunch:hover{background:#2563eb}.food-add-dinner{background:#8b5cf6}.food-add-dinner:hover{background:#7c3aed}.food-add-snack{background:#10b981}.food-add-snack:hover{background:#059669}@media (max-width: 768px){.food-result-summary{flex-direction:column;align-items:flex-start;gap:8px}.food-summary-item{width:100%;justify-content:space-between}.food-result-actions{flex-direction:column}.food-add-button,.food-view-details-button{width:100%}.food-nutrition-grid{grid-template-columns:repeat(2,1fr)}}.plate-scanner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000}.plate-scanner-container{background:#fff;border-radius:16px;padding:24px;max-width:600px;width:90%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.plate-scanner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-shrink:0}.plate-scanner-body{flex:1;overflow-y:auto;padding-right:4px;margin-right:-4px}.plate-scanner-header h2{margin:0;color:#333;font-size:24px}.plate-scanner-error{background:#fee;color:#c33;padding:12px;border-radius:8px;margin-bottom:16px;text-align:center}.plate-scanner-options{display:flex;flex-direction:column;gap:12px}.plate-scanner-camera-container{display:flex;flex-direction:column;gap:16px}.plate-scanner-video{width:100%;max-height:400px;border-radius:12px;background:#000;object-fit:contain}.plate-scanner-camera-actions{display:flex;gap:12px;justify-content:center}.plate-scanner-preview-container{display:flex;flex-direction:column;gap:16px}.plate-scanner-preview{width:100%;max-height:400px;border-radius:12px;object-fit:contain;background:#f5f5f5}.plate-scanner-preview-actions{display:flex;gap:12px;justify-content:center}.plate-scanner-button{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;flex:1}.plate-scanner-button.primary{background:#3b82f6;color:#fff}.plate-scanner-button.primary:hover:not(:disabled){background:#2563eb}.plate-scanner-button.secondary{background:#e5e7eb;color:#374151}.plate-scanner-button.secondary:hover:not(:disabled){background:#d1d5db}.plate-scanner-button:disabled{opacity:.6;cursor:not-allowed}.plate-scanner-button.capture-button{font-size:20px;padding:16px 32px}.plate-scanner-footer{display:flex;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb;background:#fff;flex-shrink:0;position:sticky;bottom:0;z-index:10;margin-top:16px}.plate-scanner-button.cancel-button{background:#f0f0f0;color:#333;flex:0 0 auto;min-width:100px}.plate-scanner-button.cancel-button:hover{background:#e0e0e0}.premium-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-in}.premium-modal{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;padding:32px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out;color:#fff}.premium-modal-header{text-align:center;margin-bottom:24px}.premium-icon{font-size:64px;margin-bottom:12px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.premium-modal-header h2{margin:0;font-size:28px;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.premium-modal-content{margin-bottom:24px}.premium-modal-content p{margin:0 0 16px;font-size:16px;line-height:1.6;color:#fffffff2}.premium-modal-content p strong{color:#fff;font-weight:600}.premium-features-list{list-style:none;margin:16px 0;background:#ffffff1a;border-radius:8px;padding:16px}.premium-features-list li{padding:8px 0;font-size:15px;color:#fffffff2;border-bottom:1px solid rgba(255,255,255,.1)}.premium-contact{margin-top:20px;padding:12px;background:#ffffff26;border-radius:8px;font-size:14px;text-align:center;font-weight:500}.premium-modal-actions{display:flex;gap:12px;justify-content:center}.premium-button{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.premium-button.secondary{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3)}.premium-button.secondary:hover{background:#ffffff4d;border-color:#ffffff80}@media (max-width: 768px){.premium-modal{padding:24px;margin:20px}.premium-modal-header h2{font-size:24px}.premium-icon{font-size:48px}}.alert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.alert-modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d;animation:slideIn .2s ease-out}.alert-modal-info{border-top:4px solid #3b82f6}.alert-modal-success{border-top:4px solid #10b981}.alert-modal-warning{border-top:4px solid #f59e0b}.alert-modal-error{border-top:4px solid #ef4444}.alert-modal-content{margin-bottom:20px}.alert-modal-content p{margin:0;font-size:16px;line-height:1.5;color:#374151}.alert-modal-actions{display:flex;justify-content:flex-end}.alert-modal-button{padding:10px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.alert-modal-button:hover{background:#2563eb}.scan-results-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.scan-results-modal{background:#fff;border-radius:16px;padding:24px;max-width:700px;width:90%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.scan-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:2px solid #e5e7eb;padding-bottom:16px}.scan-results-header h2{margin:0;color:#333;font-size:24px}.close-button{background:none;border:none;font-size:32px;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.close-button:hover{background:#f0f0f0}.scan-results-content{flex:1;overflow-y:auto;margin-bottom:20px;padding-right:4px;margin-right:-4px}.meal-type-selector{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding:12px;background:#f9fafb;border-radius:8px}.meal-type-selector label{font-weight:500;color:#374151}.meal-type-select{padding:8px 12px;border:2px solid #e5e7eb;border-radius:8px;font-size:16px;background:#fff;cursor:pointer;flex:1;max-width:200px}.meal-type-select:focus{outline:none;border-color:#3b82f6}.scanned-foods-list{margin-bottom:20px}.scanned-foods-list h3{margin:0 0 16px;color:#333;font-size:18px}.no-foods{text-align:center;color:#6b7280;padding:20px;background:#f9fafb;border-radius:8px}.scanned-food-item{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:#f9fafb;border-radius:8px;margin-bottom:12px;gap:12px}.food-info{flex:1}.food-name{font-weight:600;font-size:16px;color:#111827;margin-bottom:4px}.food-serving{font-size:14px;color:#6b7280;margin-bottom:8px}.food-nutrition{display:flex;gap:16px;font-size:14px;color:#374151}.food-nutrition span{font-weight:500}.food-actions{display:flex;gap:8px}.edit-button,.delete-button{padding:8px;border:none;border-radius:8px;font-size:18px;cursor:pointer;transition:all .2s;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.edit-button{background:#3b82f6;color:#fff;font-weight:500}.edit-button:hover{background:#2563eb}.delete-button{background:#fee2e2;color:#9ca3af;border:1px solid #fecaca}.delete-button:hover{background:#fecaca;color:#6b7280}.edit-food-form{width:100%;display:flex;flex-direction:column;gap:16px}.edit-input{padding:8px 12px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px}.edit-input:focus{outline:none;border-color:#3b82f6}.portion-controls{display:flex;flex-direction:column;gap:12px;padding:12px;background:#f9fafb;border-radius:8px}.portion-option{display:flex;flex-direction:column;gap:8px}.portion-option label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#374151;cursor:pointer}.portion-option input[type=radio]{cursor:pointer}.multiplier-input{display:flex;align-items:center;gap:8px;margin-left:24px}.multiplier-btn{width:32px;height:32px;border:2px solid #e5e7eb;background:#fff;border-radius:6px;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#374151}.multiplier-btn:hover{background:#f3f4f6;border-color:#3b82f6}.multiplier-value{width:80px;padding:6px 8px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px;text-align:center}.multiplier-value:focus{outline:none;border-color:#3b82f6}.multiplier-label{font-size:14px;color:#6b7280}.custom-amount-input{display:flex;align-items:center;gap:8px;margin-left:24px}.custom-amount-value{width:100px;padding:6px 8px;border:2px solid #e5e7eb;border-radius:6px;font-size:14px}.custom-amount-value:focus{outline:none;border-color:#3b82f6}.custom-amount-unit{font-size:14px;color:#6b7280}.adjusted-nutrition-display{padding:12px;background:#f0f7ff;border:2px solid #3b82f6;border-radius:8px}.nutrition-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px}.nutrition-preview-item{display:flex;justify-content:space-between;font-size:14px}.nutrition-preview-item span{color:#6b7280}.nutrition-preview-item strong{color:#111827;font-weight:600}.serving-size-preview{font-size:13px;color:#3b82f6;font-weight:500;text-align:center;padding-top:8px;border-top:1px solid #bfdbfe}.edit-actions{display:flex;gap:8px}.save-button,.cancel-edit-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer;font-weight:500}.save-button{background:#10b981;color:#fff}.save-button:hover{background:#059669}.cancel-edit-button{background:#e5e7eb;color:#374151}.cancel-edit-button:hover{background:#d1d5db}.add-food-button{width:100%;padding:12px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.add-food-button:hover{background:#059669}.add-food-form{padding:16px;background:#f0fdf4;border:2px solid #10b981;border-radius:8px;margin-bottom:12px}.add-food-form h4{margin:0 0 12px;color:#065f46}.add-input{width:100%;padding:8px 12px;border:2px solid #d1d5db;border-radius:6px;font-size:14px;margin-bottom:8px}.add-input:focus{outline:none;border-color:#10b981}.add-nutrition{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.add-input-small{padding:8px;border:2px solid #d1d5db;border-radius:6px;font-size:14px}.add-input-small:focus{outline:none;border-color:#10b981}.add-actions{display:flex;gap:8px}.add-save-button,.add-cancel-button{flex:1;padding:10px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer}.add-save-button{background:#10b981;color:#fff}.add-save-button:hover{background:#059669}.add-cancel-button{background:#e5e7eb;color:#374151}.add-cancel-button:hover{background:#d1d5db}.search-food-section{padding:16px;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:12px}.search-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.search-header h4{margin:0;color:#111827;font-size:16px}.close-search-button{background:none;border:none;font-size:24px;color:#6b7280;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.close-search-button:hover{background:#e5e7eb}.search-form{margin-bottom:16px}.search-input-group{display:flex;gap:8px}.search-input{flex:1;padding:10px 14px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px}.search-input:focus{outline:none;border-color:#3b82f6}.search-button{padding:10px 20px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.search-button:hover:not(:disabled){background:#2563eb}.search-button:disabled{opacity:.6;cursor:not-allowed}.search-results{margin-bottom:16px}.search-results h5{margin:0 0 12px;color:#374151;font-size:14px;font-weight:600}.results-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.search-result-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s}.search-result-item:hover{border-color:#3b82f6;background:#f0f7ff}.result-content{flex:1}.result-name{font-weight:500;color:#111827;margin-bottom:4px}.result-brand{font-size:12px;color:#6b7280;margin-bottom:2px}.result-serving{font-size:12px;color:#9ca3af}.select-button{padding:6px 16px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.select-button:hover{background:#059669}.no-results{text-align:center;padding:20px;color:#6b7280;font-size:14px}.search-actions{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.manual-entry-button{width:100%;padding:10px;background:#e5e7eb;color:#374151;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.manual-entry-button:hover{background:#d1d5db}.add-food-actions{display:flex;gap:8px}.scan-barcode-button,.scan-barcode-button-inline{padding:10px 16px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:6px}.scan-barcode-button:hover,.scan-barcode-button-inline:hover{background:#2563eb}.scan-barcode-button,.scan-barcode-button-inline{flex:1}.scan-results-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:2px solid #e5e7eb;background:#fff;flex-shrink:0;position:sticky;bottom:0;z-index:10}.scan-results-cancel-button,.scan-results-confirm-button{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.scan-results-cancel-button{background:#e5e7eb;color:#374151}.scan-results-cancel-button:hover{background:#d1d5db}.scan-results-confirm-button{background:#3b82f6;color:#fff}.scan-results-confirm-button:hover:not(:disabled){background:#2563eb}.scan-results-confirm-button:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;padding:0;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d}.portion-adjust-modal{max-width:500px;width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;padding:0!important}.portion-adjust-modal-body{flex:1;overflow-y:auto;padding:0 1.5rem;padding-right:calc(1.5rem + 4px);margin-right:-4px;min-height:0}.portion-adjust-modal-header{margin-bottom:1.5rem;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #e0e0e0;flex-shrink:0}.portion-adjust-modal-header h2{margin:0;font-size:1.5rem;color:#333;text-align:center}.portion-adjust-food-info{margin-bottom:1.5rem}.portion-adjust-food-info h3{margin:0 0 .5rem;font-size:1.2rem;color:#333}.portion-adjust-base-serving{margin:0;color:#666;font-size:.9rem}.portion-adjust-controls{margin-bottom:1.5rem}.portion-adjust-option{margin-bottom:1rem}.portion-adjust-option label{display:flex;align-items:center;gap:.5rem;font-weight:500;margin-bottom:.5rem;cursor:pointer}.portion-adjust-option input[type=radio]{width:18px;height:18px;cursor:pointer}.portion-adjust-multiplier-input{display:flex;align-items:center;gap:.5rem;margin-left:1.5rem;margin-top:.5rem}.portion-adjust-multiplier-btn{width:36px;height:36px;border:1px solid #ddd;background:#fff;border-radius:4px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.portion-adjust-multiplier-btn:hover{background-color:#f5f5f5;border-color:#999}.portion-adjust-multiplier-btn:active{background-color:#e0e0e0}.portion-adjust-multiplier-value{width:80px;padding:.5rem;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:1rem}.portion-adjust-multiplier-label{color:#666;font-size:.9rem}.portion-adjust-custom-amount-input{display:flex;align-items:center;gap:.5rem;margin-left:1.5rem;margin-top:.5rem}.portion-adjust-custom-amount-value{width:120px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.portion-adjust-custom-amount-unit{color:#666;font-size:.9rem}.portion-adjust-nutrition{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.portion-adjust-nutrition h4{margin:0 0 .75rem;font-size:1rem;color:#333}.portion-adjust-nutrition-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.portion-adjust-nutrition-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#fff;border-radius:4px}.portion-adjust-nutrition-label{font-size:.9rem;color:#666}.portion-adjust-nutrition-value{font-weight:600;color:#333;font-size:1rem}.portion-adjust-modal-actions{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.5rem 1.5rem;border-top:1px solid #e0e0e0;background:#fff;flex-shrink:0}.portion-adjust-meal-type-select{width:100%}.portion-adjust-meal-type-select label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.95rem}.portion-adjust-meal-type-dropdown{width:100%;padding:.875rem 2.5rem .875rem .875rem;border:2px solid #ddd;border-radius:6px;font-size:1rem;background:#fff;color:#333;cursor:pointer;transition:border-color .2s;min-height:48px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px}.portion-adjust-meal-type-dropdown:hover{border-color:#4caf50}.portion-adjust-meal-type-dropdown:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.portion-adjust-modal-buttons{display:flex;gap:1rem;justify-content:flex-end;margin-bottom:0}.portion-adjust-cancel-button,.portion-adjust-confirm-button{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.portion-adjust-cancel-button{background-color:#f0f0f0;color:#333}.portion-adjust-cancel-button:hover{background-color:#e0e0e0}.portion-adjust-confirm-button{background-color:#4caf50;color:#fff}.portion-adjust-confirm-button:hover{background-color:#45a049}.portion-adjust-confirm-button:active{transform:scale(.98)}.celebration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease-in}.celebration-content{position:relative;background:linear-gradient(135deg,#3b82f6,#14b8a6);padding:60px 80px;border-radius:24px;box-shadow:0 20px 60px #00000080;text-align:center;overflow:hidden;animation:scaleIn .5s cubic-bezier(.34,1.56,.64,1);border:3px solid rgba(255,255,255,.3)}@keyframes scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.celebration-icon{font-size:120px;animation:bounce 1s ease-in-out infinite;margin-bottom:20px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}@keyframes bounce{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-20px) rotate(-10deg)}75%{transform:translateY(-20px) rotate(10deg)}}.celebration-title{color:#fff;font-size:48px;font-weight:800;margin:0 0 16px;text-shadow:0 4px 8px rgba(0,0,0,.3);animation:slideUp .6s ease-out .2s both}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.celebration-message{color:#fff;font-size:24px;font-weight:500;margin:0;text-shadow:0 2px 4px rgba(0,0,0,.3);animation:slideUp .6s ease-out .4s both}.confetti-container{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:12px;height:12px;top:-10px;animation:confettiFall 3s linear forwards;border-radius:2px}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.sparkles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.sparkle{position:absolute;font-size:24px;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) rotate(0)}50%{opacity:1;transform:scale(1.5) rotate(180deg)}}@media (max-width: 768px){.celebration-content{padding:40px 30px;margin:20px}.celebration-icon{font-size:80px}.celebration-title{font-size:32px}.celebration-message{font-size:18px}}.confirm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.confirm-modal{background:#fff;border-radius:12px;padding:24px;max-width:400px;width:90%;box-shadow:0 20px 60px #0000004d;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-modal-info{border-top:4px solid #3b82f6}.confirm-modal-warning{border-top:4px solid #f59e0b}.confirm-modal-danger{border-top:4px solid #ef4444}.confirm-modal-content{margin-bottom:20px}.confirm-modal-content p{margin:0;font-size:16px;line-height:1.5;color:#374151}.confirm-modal-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-modal-button{padding:10px 24px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s}.confirm-modal-button.cancel{background:#e5e7eb;color:#374151}.confirm-modal-button.cancel:hover{background:#d1d5db}.confirm-modal-button.confirm{color:#fff}.confirm-modal-button.confirm-info{background:#3b82f6}.confirm-modal-button.confirm-info:hover{background:#2563eb}.confirm-modal-button.confirm-warning{background:#f59e0b}.confirm-modal-button.confirm-warning:hover{background:#d97706}.confirm-modal-button.confirm-danger{background:#ef4444}.confirm-modal-button.confirm-danger:hover{background:#dc2626}.custom-date-picker{background:#fff;border-radius:12px;padding:20px;box-shadow:0 8px 24px #00000026;min-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.month-nav-button{background:none;border:none;font-size:24px;color:#1e40af;cursor:pointer;padding:4px 12px;border-radius:6px;transition:background .2s}.month-nav-button:hover{background:#1e40af1a}.month-year{font-size:18px;font-weight:600;color:#1e293b}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:16px}.day-name{text-align:center;font-size:12px;font-weight:600;color:#64748b;padding:8px 4px;text-transform:uppercase}.calendar-day{position:relative;background:#fff;border:2px solid transparent;border-radius:8px;padding:8px 4px;cursor:pointer;transition:all .2s;font-size:14px;color:#1e293b;min-height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.calendar-day:hover:not(.empty){background:#f1f5f9;border-color:#cbd5e1}.calendar-day.today{border-color:#3b82f6;background:#eff6ff;font-weight:600}.calendar-day.selected{background:#3b82f6;color:#fff;border-color:#2563eb;font-weight:600}.calendar-day.selected:hover{background:#2563eb}.calendar-day.past{color:#94a3b8}.calendar-day.complete-goals{background:#48bb781a;border-color:#48bb78}.calendar-day.complete-goals.selected{background:#48bb78;border-color:#38a169}.calendar-day.complete-no-goals{background:#eab3081a;border-color:#eab308}.calendar-day.complete-no-goals.selected{background:#eab308;border-color:#ca8a04;color:#1e293b}.calendar-day.empty{cursor:default;background:transparent}.day-number{font-size:14px}.day-indicator{position:absolute;top:2px;right:2px;font-size:10px;font-weight:700;line-height:1}.day-indicator.indicator-goals{color:#48bb78}.day-indicator.indicator-no-goals{color:#eab308}.calendar-day.selected .day-indicator.indicator-goals{color:#fff}.calendar-day.selected .day-indicator.indicator-no-goals{color:#1e293b}.calendar-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #e2e8f0}.today-button{background:#3b82f6;color:#fff;border:none;padding:6px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.today-button:hover{background:#2563eb}.calendar-legend{display:flex;gap:16px;font-size:12px;color:#64748b}.legend-item{display:flex;align-items:center;gap:6px}.legend-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.legend-indicator.indicator-goals{background:#48bb78}.legend-indicator.indicator-no-goals{background:#eab308}.food-tracker{padding:24px;max-width:1200px;margin:0 auto}.date-input-button{padding:10px 40px 10px 16px;border-radius:8px;border:2px solid rgba(255,255,255,.3);background:#ffffffe6;font-size:16px;cursor:pointer;color:#1e293b;font-family:inherit;transition:all .2s;position:relative;text-align:left;width:100%;min-width:150px}.date-picker-popup{position:absolute;top:calc(100% + 8px);left:0;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.date-input.date-complete-goals{border-color:#48bb78;background:#48bb781a}.date-input.date-complete-no-goals{border-color:#eab308;background:#eab3081a}.date-complete-indicator{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-weight:700;font-size:18px;pointer-events:none;-webkit-user-select:none;user-select:none}.date-complete-indicator.indicator-goals-met{color:#48bb78}.date-complete-indicator.indicator-no-goals{color:#eab308}.barcode-input-form{display:flex;gap:8px;align-items:center}.barcode-input{padding:10px 16px;border-radius:8px;border:2px solid rgba(255,255,255,.3);background:#ffffffe6;font-size:16px;width:150px;font-family:monospace}.barcode-input:focus{outline:none;border-color:#fff9;background:#fff}.lookup-button{padding:10px 16px;border-radius:8px;border:none;background:#3b82f6;color:#fff;font-size:16px;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.lookup-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.scan-button,.add-button,.recipe-button{padding:10px 20px;border-radius:8px;font-size:16px;transition:transform .2s,box-shadow .2s}.scan-button{background:#48bb78;color:#fff;font-weight:600}.scan-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.header-actions .add-button{background:#fff;color:#1e40af!important;font-weight:700!important}.add-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffffff4d}.recipe-button{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;font-weight:600;border:none;cursor:pointer}.recipe-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.copy-button{padding:10px 20px;border-radius:8px;font-size:16px;transition:transform .2s,box-shadow .2s;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-weight:600;border:none;cursor:pointer}.copy-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66}.favorites-button{padding:10px 20px;border-radius:8px;font-size:16px;transition:transform .2s,box-shadow .2s;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-weight:600;border:none;cursor:pointer}.favorites-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #fbbf2466}.favorites-section{background:#fff;border-radius:12px;padding:20px;margin-bottom:24px;box-shadow:0 2px 8px #0000001a}.favorites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.favorites-header h3{margin:0;color:#333;font-size:18px}.close-favorites-button{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-favorites-button:hover{background:#f5f5f5;color:#333}.favorites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.favorite-food-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px;transition:all .2s}.favorite-food-card:hover{border-color:#fbbf24;box-shadow:0 2px 8px #fbbf2433}.favorite-food-info{flex:1}.favorite-food-name{font-weight:600;color:#1f2937;font-size:14px;margin-bottom:4px}.favorite-food-nutrition{font-size:12px;color:#6b7280;margin-bottom:4px}.favorite-food-meta{display:flex;gap:12px;font-size:11px;color:#9ca3af}.favorite-count,.favorite-serving{display:flex;align-items:center}.favorite-food-actions{display:flex;gap:8px;align-items:center}.favorite-meal-select{flex:1;padding:6px 8px;border-radius:6px;border:1px solid #d1d5db;font-size:13px;background:#fff;cursor:pointer;font-family:inherit}.favorite-meal-select:hover{border-color:#fbbf24}.favorite-remove-button{background:#fee2e2;border:none;color:#dc2626;font-size:18px;width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-weight:700;line-height:1}.favorite-remove-button:hover{background:#fecaca;transform:scale(1.1)}@media (max-width: 768px){.favorites-grid{grid-template-columns:1fr}}.debug-button{padding:10px 20px;border-radius:8px;font-size:16px;font-weight:600;background:#f59e0b;color:#fff;border:none;cursor:pointer;transition:transform .2s,box-shadow .2s}.debug-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b66;background:#d97706}.ft-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.ft-modal-content{background:#fff;border-radius:16px;padding:32px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.ft-modal-content.ft-search-modal{max-width:600px;max-height:90vh!important;overflow-y:auto!important;overflow-x:visible!important;display:flex!important;flex-direction:column!important;height:auto!important}.ft-add-food-modal{display:flex;flex-direction:column;padding:0;overflow:hidden}.ft-modal-content.ft-recipe-import-modal{max-width:900px;padding:0;display:flex;flex-direction:column;overflow:hidden;max-height:90vh}.ft-recipe-import-modal .ft-modal-body{flex:1;overflow-y:auto;padding:24px 36px 24px 32px}.ft-recipe-import-modal .ft-modal-footer{display:flex;justify-content:flex-end;padding:24px 32px;border-top:1px solid #e0e0e0;background:#fff;flex-shrink:0;position:sticky;bottom:0;z-index:10}.ft-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 32px;border-bottom:1px solid #e0e0e0;flex-shrink:0;background:#fff;position:sticky;top:0;z-index:10}.ft-recipe-import-modal .ft-modal-header{justify-content:flex-start}.ft-modal-header h2{margin:0}.ft-modal-body{flex:1;overflow-y:auto;padding:24px 36px 24px 32px}.ft-close-button{background:none;border:none;font-size:32px;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.ft-close-button:hover{background:#f5f5f5;color:#333}.ft-add-food-modal .ft-modal-content h2{margin:0 0 24px;color:#333}.ft-form-group{margin-bottom:16px}.ft-form-group label{display:block;margin-bottom:6px;color:#555;font-weight:500}.ft-form-group input,.ft-form-group select{width:100%;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.ft-form-group input:focus,.ft-form-group select:focus{border-color:#3b82f6}.ft-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ft-form-actions{display:flex;flex-direction:column;gap:12px;padding:24px 32px;border-top:1px solid #e0e0e0;background:#fff!important;flex-shrink:0;position:sticky;bottom:0;z-index:10}.ft-cancel-button,.ft-submit-button{padding:12px 24px;margin:0;border-radius:8px;font-size:16px;font-weight:500;font-family:inherit;transition:background .2s;border:none;cursor:pointer;box-sizing:border-box;line-height:1;min-height:44px;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ft-cancel-button{background:#e0e0e0;color:#333}.ft-search-actions .ft-cancel-button{width:100%}.ft-cancel-button:hover{background:#d0d0d0}.ft-submit-button{background:#3b82f6;color:#fff}.ft-submit-button:hover{background:#2563eb}.totals-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.totals-card h2{margin:0;color:#333;font-size:24px}.complete-day-button{padding:10px 20px;border-radius:8px;border:none;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;background:#e0e0e0;color:#666}.complete-day-button:hover{background:#d0d0d0;transform:translateY(-1px)}.complete-day-button.goals-met{background:linear-gradient(135deg,#3b82f6,#14b8a6);color:#fff;box-shadow:0 4px 12px #3b82f666;animation:pulse 2s ease-in-out infinite}.complete-day-button.goals-met:hover{background:linear-gradient(135deg,#2563eb,#0d9488);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f680}@keyframes pulse{0%,to{box-shadow:0 4px 12px #3b82f666}50%{box-shadow:0 4px 20px #3b82f699}}.totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.water-total-item{position:relative}.water-item-header{display:flex;justify-content:space-between;align-items:center;width:100%}.water-tracker-link{color:#3b82f6;text-decoration:none;font-size:18px;opacity:.8;transition:opacity .2s,transform .2s}.water-tracker-link:hover{opacity:1;transform:scale(1.1)}.water-quick-add{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;justify-content:center;width:100%}.water-quick-add-btn{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.water-quick-add-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.water-quick-add-btn:disabled{opacity:.5;cursor:not-allowed}.total-label{font-size:14px;color:#666;margin-bottom:4px;font-weight:500}.food-list{display:flex;flex-direction:column;gap:24px}.meal-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 12px #0000001a;transition:background .2s,border-color .2s}.meal-section.drag-over{background:#f0f9ff;border:2px dashed #3b82f6;padding:22px}.meal-type-header{display:flex;justify-content:space-between;align-items:center;margin:0 0 16px;color:#333;font-size:20px;padding:12px;border-bottom:2px solid #f0f0f0;-webkit-user-select:none;user-select:none;transition:background .2s;border-radius:8px 8px 0 0}.meal-type-header:hover{background:#f9f9f9}.meal-header-content{display:flex;align-items:center;gap:8px}.meal-header-content h3{margin:0;color:#333;font-size:20px}.meal-count{font-size:14px;color:#666;font-weight:400}.meal-header-actions{display:flex;align-items:center;gap:8px}.meal-menu-wrapper{position:relative}.meal-menu-button{padding:6px 10px;border-radius:6px;font-size:18px;font-weight:700;border:none;cursor:pointer;background:#0000000d;color:#333;transition:all .2s;line-height:1;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.meal-menu-button:hover{background:#0000001a;transform:scale(1.05)}.meal-menu-button:active{transform:scale(.95)}.meal-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;z-index:100;overflow:hidden;animation:fadeIn .2s ease-out;border:1px solid rgba(0,0,0,.1)}.meal-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:#fff;text-align:left;cursor:pointer;font-size:14px;color:#333;transition:background-color .2s;font-family:inherit}.meal-menu-item:hover{background:#f5f5f5}.meal-menu-item.danger{color:#ef4444}.meal-menu-item.danger:hover{background:#fee2e2;color:#dc2626}.menu-icon{font-size:16px;width:20px;text-align:center}.collapse-icon{font-size:12px;color:#666;transition:transform .2s}.collapse-icon.collapsed{transform:rotate(-90deg)}.meal-items{animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.empty-meal-state{padding:20px;text-align:center;color:#999;font-size:14px;transition:background .2s,border-color .2s;border-radius:8px;border:2px dashed transparent;min-height:60px;display:flex;flex-direction:column;justify-content:center;align-items:center}.empty-meal-state.drag-over-empty{background:#f0f9ff;border-color:#3b82f6;color:#3b82f6}.drop-hint{margin-top:8px;font-size:12px;font-weight:500;color:#3b82f6}.food-item-card{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:#f9f9f9;border-radius:12px;margin-bottom:12px;transition:background .2s,opacity .2s,transform .2s;cursor:grab}.food-item-card:hover{background:#f0f0f0}.food-item-card:active{cursor:grabbing}.food-item-card.dragging{opacity:.5;transform:scale(.95)}.food-item-info{flex:1}.food-item-info h4{margin:0 0 6px;color:#333;font-size:18px}.food-serving{margin:0 0 8px;color:#666;font-size:14px}.food-macros{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.food-macros span{color:#555;font-size:14px;font-weight:500}.food-barcode{margin:8px 0 0;color:#999;font-size:12px;font-family:monospace}.food-item-actions{display:flex;gap:8px;align-items:center;pointer-events:auto}.delete-button{background:none;border:none;font-size:20px;cursor:pointer;padding:8px;border-radius:4px;transition:background-color .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.delete-button:hover{background-color:#f4433626}.delete-button:active{background-color:#f4433640}.empty-state{background:#fff;border-radius:16px;padding:48px;text-align:center;box-shadow:0 4px 12px #0000001a}.empty-state p{color:#666;font-size:16px;margin:8px 0}@media (max-width: 768px){.food-tracker{padding:16px}.tracker-header{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.barcode-input-form{width:100%}.barcode-input{flex:1;width:auto}.form-row{grid-template-columns:1fr}.totals-grid{grid-template-columns:repeat(2,1fr)}}.ft-search-form{margin-bottom:20px}.ft-search-input-group{margin-top:10px;display:grid;grid-template-columns:1fr;gap:10px}.ft-search-input{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px}.ft-search-input:focus{border-color:#3b82f6;outline:none}.ft-search-button{background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;padding:10px;transition:background .2s}.ft-search-button:hover:not(:disabled){background:#2563eb}.ft-search-button:disabled{opacity:.6;cursor:not-allowed}.ft-search-results{width:100%;margin-bottom:20px;max-height:400px;overflow-y:auto;position:relative}.ft-results-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:2px solid #e0e0e0}.ft-results-tab{padding:10px 16px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .2s;margin-bottom:-2px}.ft-results-tab:hover:not(:disabled){color:#3b82f6;background:#f0f9ff}.ft-results-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;font-weight:600}.ft-results-tab:disabled{opacity:.5;cursor:not-allowed}.ft-search-type-selector{display:flex;gap:16px;margin-top:12px;padding:12px;background:#f9fafb;border-radius:8px}.ft-search-type-selector label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;color:#555}.ft-search-type-selector input[type=radio]{margin:0;cursor:pointer}.ft-results-section{margin-bottom:24px}.ft-results-section:last-child{margin-bottom:0}.ft-results-section h3{margin:0 0 12px;color:#333;font-size:16px;font-weight:600}.ft-user-meal-item{background:#f0f9ff;border-left:3px solid #3b82f6}.ft-user-meal-item .ft-result-nutrition{font-size:12px;color:#666;margin-top:4px}.ft-results-list{display:flex!important;flex-direction:column!important;gap:8px;visibility:visible!important;opacity:1!important}.ft-search-result-item{padding:12px 16px;background:#f7f7f7;border-radius:8px;transition:background .2s,transform .1s;border:2px solid transparent;display:flex;justify-content:space-between;align-items:center;gap:12px}.ft-search-result-item:hover{background:#e8e8e8;border-color:#3b82f6}.ft-result-content{flex:1;cursor:pointer}.ft-view-details-button-small{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.ft-view-details-button-small:hover{background:#2563eb}.ft-result-name{font-weight:500;color:#333;margin-bottom:4px;font-size:16px}.ft-result-brand{font-size:13px;color:#666;margin-bottom:4px;font-weight:400}.ft-result-serving{font-size:14px;color:#666}.ft-result-summary{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding:8px 12px;background:#f0f0f0;border-radius:6px;align-items:center}.ft-summary-item{display:flex;align-items:center;gap:4px;font-size:13px}.ft-summary-label{color:#666;font-weight:500}.ft-summary-value{color:#333;font-weight:700}.ft-summary-item.ft-summary-serving .ft-summary-value{color:#3b82f6}.ft-summary-item.ft-summary-calories .ft-summary-value{color:#ef4444}.ft-summary-item.ft-summary-fat .ft-summary-value{color:#f59e0b}.ft-summary-item.ft-summary-protein .ft-summary-value{color:#10b981}.ft-no-results{text-align:center;padding:40px 20px;color:#666}.ft-no-results p{margin:8px 0}.ft-no-results .hint{font-size:14px;color:#999}.ft-search-actions{margin-bottom:20px;display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid #e0e0e0}.ft-manual-entry-button{padding:12px 24px;background:#48bb78;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.ft-manual-entry-button:hover{background:#38a169}.ft-food-detail-modal{background:#fff;border-radius:16px;padding:0;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.ft-detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 32px;border-bottom:1px solid #e0e0e0;gap:16px;flex-shrink:0;background:#fff;position:sticky;top:0;z-index:10}.ft-detail-header h2{margin:0;color:#333;font-size:24px;flex:1}.ft-close-button{background:none;border:none;font-size:32px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s,color .2s}.ft-close-button:hover{background:#f0f0f0;color:#333}.ft-detail-content{flex:1;overflow-y:auto;padding:24px 36px 24px 32px}.ft-detail-section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}.ft-detail-section:last-child{border-bottom:none}.ft-detail-section strong{display:block;color:#333;font-size:14px;margin-bottom:8px;font-weight:600}.ft-detail-actions{display:flex;flex-direction:column;gap:12px;padding:24px 32px;border-top:2px solid #f0f0f0;background:#fff;flex-shrink:0;position:sticky;bottom:0;z-index:10}.ft-back-button{padding:12px 24px;background:#e0e0e0;color:#333;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.ft-back-button:hover{background:#d0d0d0}.ft-select-button{padding:12px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.ft-select-button:hover{background:#2563eb}.ft-nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:12px}.ft-nutrition-item{display:flex;flex-direction:column;align-items:center;padding:12px;background:#f7f7f7;border-radius:8px}.ft-nutrition-label{font-size:12px;color:#666;margin-bottom:4px}.ft-nutrition-value{font-size:18px;font-weight:700;color:#3b82f6}@media (max-width: 768px){.ft-food-detail-modal{padding:20px;max-height:95vh}.detail-header h2{font-size:20px}.search-result-item{flex-direction:column;align-items:stretch}.view-details-button-small{width:100%}}.workout-tracker{padding:24px;max-width:1200px;margin:0 auto}.workout-list{display:flex;flex-direction:column;gap:16px}.workout-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 12px #0000001a;transition:transform .2s,box-shadow .2s}.workout-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000026}.workout-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.workout-title-section{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.workout-title-section h3{margin:0;color:#333;font-size:22px}.workout-type-badge{background:#3b82f6;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.workout-details{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:16px}.workout-detail-item{display:flex;gap:8px}.detail-label{color:#666;font-weight:500}.detail-value{color:#333;font-weight:600}.workout-exercises{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.workout-exercises h4{margin:0 0 12px;color:#555;font-size:16px}.workout-exercises ul{list-style:none;padding:0;margin:0}.workout-exercises li{padding:8px 0;color:#666;border-bottom:1px solid #f5f5f5}.workout-exercises li:last-child{border-bottom:none}.workout-notes{margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0;color:#666;line-height:1.6}.workout-notes strong{color:#333}.exercises-section{margin-top:24px;padding-top:24px;border-top:2px solid #f0f0f0}.exercises-section h3{margin:0 0 16px;color:#333;font-size:18px}.exercise-input{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.exercise-name-input{width:100%;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px}.exercise-details{display:grid;grid-template-columns:1fr .6fr 1.2fr 1fr;gap:6px}.exercise-details input{padding:8px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;min-width:0}.exercise-details input:focus{border-color:#3b82f6}.add-exercise-button{padding:10px 20px;background:#48bb78;color:#fff;border-radius:8px;font-size:14px;font-weight:500;align-self:flex-start;transition:background .2s}.add-exercise-button:hover{background:#38a169}.exercises-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.exercise-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f7f7f7;border-radius:8px}.exercise-info{flex:1}.exercise-info strong{display:block;color:#333;margin-bottom:4px}.exercise-details-display{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.exercise-details-display span{color:#666;font-size:14px}.remove-exercise-button{background:#f56565;color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.remove-exercise-button:hover{background:#e53e3e}.workout-tracker-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.workout-tracker-modal-content{background:#fff;border-radius:16px;padding:32px 32px 0;max-width:500px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;color:#000!important}.workout-tracker-modal-content form{flex:1;overflow-y:auto;padding-right:8px;margin-right:-8px}.workout-tracker-modal-content h2{margin:0 0 24px;color:#000!important;font-size:24px;font-weight:800}.workout-tracker-modal-content h3{color:#000!important;font-weight:700}.workout-tracker-form-group{margin-bottom:16px}.workout-tracker-form-group label{display:block;margin-bottom:6px;color:#000!important;font-weight:700;font-size:15px}.workout-tracker-form-group input,.workout-tracker-form-group select,.workout-tracker-form-group textarea{width:100%;padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;font-weight:600;color:#000!important;transition:border-color .2s;box-sizing:border-box;background:#fff!important;-webkit-text-fill-color:#000!important;line-height:1.5;height:44px}.workout-tracker-form-group textarea{height:auto}.workout-tracker-form-group input::placeholder,.workout-tracker-form-group textarea::placeholder{color:#666!important;font-weight:400;opacity:1;-webkit-text-fill-color:#666!important}.workout-tracker-form-group select option{color:#000!important;background:#fff!important}.workout-tracker-form-group input:focus,.workout-tracker-form-group select:focus,.workout-tracker-form-group textarea:focus{border-color:#3b82f6;outline:none}.workout-tracker-form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:flex-end}.workout-tracker-form-actions{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:44px;gap:12px;align-items:stretch;padding:24px 32px;margin:0 -32px -32px;border-top:1px solid #e0e0e0;background:#fff;flex-shrink:0}.workout-tracker-form-actions>*{height:100%}.workout-tracker-cancel-button,.workout-tracker-submit-button{margin:0!important;border-radius:8px;font-size:16px;font-weight:500;font-family:inherit;transition:background .2s;border:none;cursor:pointer;box-sizing:border-box;line-height:1;height:100%;min-height:44px;width:100%;display:flex;align-items:center;justify-content:center;padding:0 24px;text-align:center;white-space:nowrap;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.workout-tracker-cancel-button{background:#e0e0e0;color:#333}.workout-tracker-cancel-button:hover{background:#d0d0d0}.workout-tracker-submit-button{background:#3b82f6;color:#fff}.workout-tracker-submit-button:hover{background:#2563eb}.tracker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.tracker-header h1{color:#fff;font-size:32px;margin:0}.header-actions{display:flex;gap:12px;flex-wrap:wrap}.date-input{padding:10px 16px;border-radius:8px;border:2px solid rgba(255,255,255,.3);background:#ffffffe6;font-size:16px}.header-actions .add-button{padding:10px 20px;border-radius:8px;font-size:16px;font-weight:700!important;background:#fff;color:#1e40af!important;transition:transform .2s,box-shadow .2s}.header-actions .add-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffffff4d}@media (max-width: 768px){.workout-tracker{padding:16px}.tracker-header{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.form-row{grid-template-columns:1fr;gap:12px}.exercise-details{grid-template-columns:repeat(2,1fr)}.workout-details{flex-direction:column;gap:12px}}.totals-card{background:#fff;border-radius:16px;padding:24px;margin-bottom:24px;box-shadow:0 4px 12px #0000001a}.totals-card h2{margin:0 0 16px;color:#333;font-size:24px}.totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.total-item{display:flex;flex-direction:column;align-items:center;padding:16px;background:#f7f7f7;border-radius:12px;gap:8px}.total-label{font-size:14px;color:#666;margin-bottom:4px;font-weight:500;text-align:center}.total-value{font-size:24px;font-weight:700;color:#3b82f6}.progress-bar{width:100%;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden;margin-top:4px}.progress-fill{height:100%;background:#3b82f6;border-radius:3px;transition:width .3s ease,background-color .3s ease}.usda-importer{background:#fff;border-radius:16px;padding:32px;margin:24px;max-width:800px;box-shadow:0 4px 12px #0000001a}.usda-importer h2{margin:0 0 16px;color:#333;font-size:28px}.importer-description{color:#666;margin-bottom:24px;line-height:1.6}.importer-info{background:#f7f7f7;padding:16px;border-radius:8px;margin-bottom:24px}.info-item{color:#333;font-size:16px}.importer-instructions{background:#f0f7ff;padding:20px;border-radius:8px;margin-bottom:24px;border-left:4px solid #3b82f6}.importer-instructions h3{margin:0 0 12px;color:#333;font-size:18px}.importer-instructions ol{margin:12px 0;padding-left:24px;color:#555;line-height:1.8}.importer-instructions li{margin-bottom:8px}.importer-instructions a{color:#3b82f6;text-decoration:none;font-weight:500}.importer-instructions a:hover{text-decoration:underline}.note{margin-top:16px;padding:12px;background:#fff3cd;border-radius:6px;color:#856404;font-size:14px;line-height:1.6}.api-notice{background:#e3f2fd;border-left:4px solid #2196f3;padding:16px;margin-bottom:24px;border-radius:8px}.api-notice h3{margin:0 0 8px;color:#1976d2;font-size:18px}.api-notice p{margin:0;color:#1565c0;line-height:1.6}.code-block{background:#f5f5f5;padding:8px 12px;border-radius:4px;font-family:Courier New,monospace;font-size:13px;margin:8px 0;display:block;overflow-x:auto;border:1px solid #ddd}.importer-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.file-input-label{display:inline-block}.file-input{display:none}.file-input-button{display:inline-block;padding:12px 24px;background:#3b82f6;color:#fff;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s}.file-input-button:hover:not(:disabled){background:#2563eb}.file-input:disabled+.file-input-button{background:#ccc;cursor:not-allowed}.clear-button{padding:12px 24px;background:#f56565;color:#fff;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:background .2s;border:none}.clear-button:hover:not(:disabled){background:#e53e3e}.clear-button:disabled{background:#ccc;cursor:not-allowed}.progress-container{margin-bottom:16px}.progress-bar{width:100%;height:24px;background:#e0e0e0;border-radius:12px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#14b8a6);transition:width .3s ease}.progress-text{text-align:center;color:#666;font-size:14px}.status-message{padding:12px 16px;border-radius:8px;margin-top:16px}.status-info{background:#e3f2fd;color:#1976d2}.status-success{background:#e8f5e9;color:#2e7d32}.status-error{background:#ffebee;color:#c62828}@media (max-width: 768px){.usda-importer{margin:16px;padding:24px}.importer-actions{flex-direction:column}.file-input-button,.clear-button{width:100%;text-align:center}}.notification-settings-container{background:#fff;border-radius:12px;padding:32px;margin-top:24px;box-shadow:0 2px 8px #0000001a;max-width:800px;margin-left:auto;margin-right:auto}.notification-header{margin-bottom:2rem}.notification-header h2{font-size:1.75rem;font-weight:600;margin-bottom:.5rem;color:#1a1a1a}.notification-subtitle{color:#666;font-size:.95rem}.notification-message{padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.notification-message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.notification-message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.notification-permission-warning{padding:1.25rem;background-color:#fff3cd;color:#856404;border:2px solid #ffc107;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6}.notification-permission-instructions{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(133,100,4,.2)}.notification-permission-instructions ul{margin:.75rem 0;padding-left:1.5rem}.notification-permission-instructions li{margin:.5rem 0;line-height:1.5}.notification-unsupported{padding:2rem;text-align:center;color:#666}.notification-ios-info{padding:1.25rem;background-color:#e3f2fd;color:#1565c0;border:2px solid #2196f3;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6;box-shadow:0 2px 8px #2196f333}.notification-ios-info strong{display:block;margin-bottom:.75rem;font-size:1rem}.notification-ios-info ol{margin:.75rem 0;padding-left:1.5rem}.notification-ios-info li{margin:.5rem 0}.notification-form{display:flex;flex-direction:column;gap:2rem}.notification-section{background:#f8f9fa;padding:1.5rem;border-radius:12px;border:1px solid #e9ecef}.notification-section h3{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#1a1a1a}.notification-toggle{margin-bottom:1rem}.notification-toggle label{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500;color:#1a1a1a}.notification-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#6366f1}.notification-hint{margin-top:.5rem;margin-left:2rem;font-size:.875rem;color:#666}.notification-times{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.notification-time-item{display:flex;flex-direction:column;gap:.5rem}.notification-time-item label{font-size:.9rem;font-weight:500;color:#333}.notification-time-item input[type=time]{padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;width:100%;max-width:200px;background:#fff;color:#1a1a1a}.notification-time-item input[type=time]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.notification-days{margin-top:1rem}.notification-days>label{display:block;font-size:.9rem;font-weight:500;color:#333;margin-bottom:.75rem}.notification-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.notification-day-checkbox{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem;border:1px solid #ddd;border-radius:8px;cursor:pointer;background:#fff;transition:all .2s}.notification-day-checkbox:hover{border-color:#6366f1;background:#f8f9ff}.notification-day-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#6366f1}.notification-day-checkbox input[type=checkbox]:checked+span{font-weight:600;color:#6366f1}.notification-day-checkbox span{font-size:.875rem;color:#333}.form-actions{margin-top:1rem}.save-button{padding:.875rem 2rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.save-button:disabled{opacity:.6;cursor:not-allowed}.loading-state{text-align:center;padding:2rem;color:#666}@media (max-width: 768px){.notification-settings-container{padding:20px;margin-top:16px}.notification-days-grid{grid-template-columns:repeat(4,1fr)}.notification-times{gap:1rem}}.password-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.password-input{width:100%;padding:12px 45px 12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s;font-family:inherit}.password-input:focus{outline:none;border-color:#3b82f6}.password-input::placeholder{color:#999}.goal-item .password-input-wrapper .password-input{padding:12px 45px 12px 16px}.password-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#666;transition:color .2s;z-index:1}.password-toggle:hover{color:#333}.password-toggle:focus{outline:none;color:#333}.password-toggle svg{display:block}.password-input-wrapper input[type=password],.password-input-wrapper input[type=text]{padding-right:45px}.macro-calculator{background:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:2px solid #e0e0e0}.macro-calculator h3{margin:0 0 .5rem;font-size:1.5rem;color:#333}.calculator-description{margin:0 0 1.5rem;color:#666;font-size:.95rem}.calculator-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#333;font-size:.95rem}.form-group input,.form-group select{padding:.75rem;border:2px solid #ddd;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4caf50}.height-inputs{display:flex;align-items:center;gap:.5rem}.height-inputs input{flex:1}.height-separator{color:#666;font-size:.9rem;white-space:nowrap}.calculate-button{padding:.875rem 1.5rem;background:#4caf50;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:.5rem}.calculate-button:hover{background:#45a049}.calculate-button:active{background:#3d8b40}.calculator-results{margin-top:2rem;padding-top:2rem;border-top:2px solid #e0e0e0}.calculator-results h4{margin:0 0 1rem;font-size:1.25rem;color:#333}.results-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.result-item{background:#f8f9fa;padding:1rem;border-radius:8px;display:flex;flex-direction:column;gap:.25rem}.result-item.highlight{background:#e8f5e9;border:2px solid #4CAF50}.result-label{font-size:.9rem;color:#666;font-weight:500}.result-value{font-size:1.5rem;font-weight:600;color:#333}.result-description{font-size:.85rem;color:#999}.use-results-button{width:100%;padding:.875rem 1.5rem;background:#2196f3;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.use-results-button:hover{background:#1976d2}.use-results-button:active{background:#1565c0}@media (max-width: 768px){.form-row,.results-breakdown{grid-template-columns:1fr}}.feedback-modal{background:#fff;border-radius:16px;padding:0;max-width:600px;width:90%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.feedback-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.feedback-modal-header h2{margin:0;font-size:1.5rem;color:#333}.modal-close-button{background:none;border:none;font-size:2rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.modal-close-button:hover{background-color:#f0f0f0}.feedback-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;flex:1}.feedback-error{padding:.75rem;background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:.9rem}.feedback-form-group{display:flex;flex-direction:column;gap:.5rem}.feedback-form-group label{font-weight:500;color:#333;font-size:.95rem}.feedback-select,.feedback-input,.feedback-textarea{padding:.75rem;border:1px solid #ddd;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .2s}.feedback-select:focus,.feedback-input:focus,.feedback-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.feedback-textarea{resize:vertical;min-height:150px;font-family:inherit}.feedback-form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #e0e0e0}.feedback-cancel-button,.feedback-submit-button{padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.feedback-cancel-button{background-color:#f3f4f6;color:#333}.feedback-cancel-button:hover:not(:disabled){background-color:#e5e7eb}.feedback-submit-button{background-color:#3b82f6;color:#fff}.feedback-submit-button:hover:not(:disabled){background-color:#2563eb}.feedback-cancel-button:disabled,.feedback-submit-button:disabled{opacity:.6;cursor:not-allowed}.profile-container{max-width:800px;margin:0 auto;padding:24px}.profile-header{margin-bottom:32px}.profile-header h1{margin:0 0 8px;color:#252020;font-size:32px}.profile-subtitle{color:#000;font-size:15px;margin:0 0 16px;font-weight:300}.profile-email{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 1px 3px #0000001a}.email-label{color:#666;font-size:14px;font-weight:500}.email-value{color:#333;font-size:15px;font-weight:600}.loading-state{text-align:center;padding:48px;color:#666;font-size:18px}.profile-message{padding:12px 16px;border-radius:8px;margin-bottom:24px;font-weight:500}.profile-message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.profile-message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.goals-form{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.goals-section{margin-bottom:40px}.goals-section:last-of-type{margin-bottom:32px}.goals-section h2{margin:0 0 20px;color:#333;font-size:24px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.section-description{margin:0 0 16px;color:#666;font-size:.95rem}.goals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.goal-item{display:flex;flex-direction:column}.goal-item label{font-weight:600;color:#333;margin-bottom:8px;font-size:14px}.goal-item input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s;font-family:inherit}.goal-item input:focus{outline:none;border-color:#3b82f6}.goal-item input::placeholder{color:#999}.goal-hint{font-size:12px;color:#666;margin-top:4px;font-style:italic}.profile-form-actions{display:flex;justify-content:flex-end;margin-top:32px;padding-top:24px;border-top:2px solid #f0f0f0}.profile-save-button{padding:12px 32px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;min-width:150px}.profile-save-button:hover:not(:disabled){background:#2563eb}.profile-save-button:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 768px){.profile-container{padding:16px}.goals-form{padding:20px}.goals-grid{grid-template-columns:1fr}.profile-form-actions{justify-content:stretch}.profile-save-button{width:100%}}.password-section{background:#fff;border-radius:12px;padding:32px;margin-top:24px;box-shadow:0 2px 8px #0000001a}.password-header{margin-bottom:20px}.password-header h2{margin:0 0 20px;color:#333;font-size:24px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.password-form{margin-top:24px}.password-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.data-export-section{background:#fff;border-radius:12px;padding:32px;margin-top:24px;box-shadow:0 2px 8px #0000001a}.data-export-header{margin-bottom:20px}.data-export-header h2{margin:0 0 20px;color:#333;font-size:24px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.data-export-content{display:flex;flex-direction:column;gap:16px}.data-export-content p{color:#666;margin:0;font-size:15px}.export-button{padding:12px 32px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;align-self:flex-start;min-width:150px}.export-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.export-button:disabled{background:#ccc;cursor:not-allowed;transform:none}.notification-settings-section{margin-top:24px;min-height:100px}.feedback-section{background:#fff;border-radius:12px;padding:32px;margin-top:32px;margin-bottom:32px;box-shadow:0 2px 8px #0000001a}.feedback-header{margin-bottom:20px}.feedback-header h2{margin:0 0 20px;color:#333;font-size:24px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.feedback-content{display:flex;flex-direction:column;gap:16px}.feedback-content p{margin:0;color:#666;font-size:.95rem}.feedback-button{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;border:none;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;align-self:flex-start}.feedback-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.logout-section{background:#fff;border-radius:12px;padding:32px;margin-top:24px;box-shadow:0 2px 8px #0000001a}.logout-header{margin-bottom:20px}.logout-header h2{margin:0 0 20px;color:#333;font-size:24px;border-bottom:2px solid #f0f0f0;padding-bottom:12px}.logout-content{display:flex;flex-direction:column;gap:16px}.logout-content p{color:#666;margin:0;font-size:15px}.logout-button{padding:12px 32px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;align-self:flex-start;min-width:150px}.logout-button:hover{background:#dc2626}@media (max-width: 768px){.password-section{padding:20px}.password-form-grid{grid-template-columns:1fr}.data-export-section{padding:20px}.export-button{width:100%;align-self:stretch}.feedback-section{padding:20px}.feedback-button{width:100%;align-self:stretch}.logout-section{padding:20px}.logout-button{width:100%;align-self:stretch}}.weight-tracker-container{max-width:1200px;margin:0 auto;padding:24px}.weight-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.weight-header h1{color:#fff;font-size:32px;margin:0;font-weight:700}.target-weight-display{color:#fff;font-size:18px;font-weight:600;background:#3b82f6e6;padding:10px 20px;border-radius:8px;border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 8px #0003;text-shadow:0 1px 2px rgba(0,0,0,.2)}.target-weight-display strong{color:#fff;font-weight:700}.weight-message{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500}.weight-message.success{background:#22c55e33;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.weight-message.error{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.weight-actions{margin-bottom:24px}.add-weight-button{padding:12px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.add-weight-button:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #0003}.add-weight-form{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-radius:12px;margin-bottom:24px;border:1px solid rgba(255,255,255,.2)}.weight-tracker-form-row{display:flex;gap:16px;align-items:flex-end}.weight-tracker-form-group{flex:1;display:flex;flex-direction:column;gap:8px}.weight-tracker-form-group label{color:#fff;font-size:14px;font-weight:500}.weight-tracker-form-group input{padding:10px 12px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff1a;color:#fff;font-size:16px}.weight-tracker-form-group input::placeholder{color:#ffffff80}.weight-tracker-save-button{padding:10px 24px;background:#14b8a6;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.weight-tracker-save-button:hover:not(:disabled){background:#0d9488;transform:translateY(-1px)}.weight-tracker-save-button:disabled{opacity:.6;cursor:not-allowed}.weight-chart-container{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px;border-radius:12px;margin-bottom:32px;border:1px solid rgba(255,255,255,.3);overflow-x:auto;overflow-y:visible;box-shadow:0 4px 12px #00000026;-webkit-overflow-scrolling:touch}.weight-chart{width:100%;height:300px;min-width:600px;display:block}.weight-entries-list{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px;border-radius:12px;border:1px solid rgba(255,255,255,.2)}.weight-entries-list h2{color:#fff;font-size:24px;margin:0 0 20px;font-weight:600}.table-header,.table-row{display:grid;grid-template-columns:2fr 1.5fr 1fr .8fr;gap:16px;align-items:center;padding:12px 16px;border-radius:8px}.weight-value{font-weight:700;font-size:17px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.change-positive{color:red;font-weight:700;font-size:18px;text-shadow:0 2px 4px rgba(0,0,0,.5)}.change-negative{color:#0f0;font-weight:700;font-size:18px;text-shadow:0 2px 4px rgba(0,0,0,.5)}.change-neutral{color:#fff;font-weight:700;font-size:18px;text-shadow:0 2px 4px rgba(0,0,0,.5)}@media (max-width: 768px){.weight-tracker-container{padding:16px}.weight-header{flex-direction:column;align-items:flex-start;gap:12px}.form-row{flex-direction:column;align-items:stretch}.table-header,.table-row{grid-template-columns:1.5fr 1fr .8fr .6fr;font-size:14px;gap:8px;padding:10px 12px}.weight-chart-container{padding:16px}}.water-tracker-container{max-width:1200px;margin:0 auto;padding:24px}.water-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.water-header h1{color:#fff;font-size:32px;margin:0;font-weight:700}.target-water-display{color:#fff;font-size:18px;font-weight:600;background:#3b82f6e6;padding:10px 20px;border-radius:8px;border:2px solid rgba(255,255,255,.3);box-shadow:0 2px 8px #0003;text-shadow:0 1px 2px rgba(0,0,0,.2)}.target-water-display strong{color:#fff;font-weight:700}.water-message{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500}.water-message.success{background:#22da5a74;color:#fff;border:1px solid rgba(255,255,255,.4);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3)}.water-message.error{background:#ef444433;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.goal-achieved-banner{background:linear-gradient(135deg,#3b82f6,#14b8a6);border-radius:12px;padding:20px 24px;margin-bottom:24px;box-shadow:0 4px 12px #3b82f666;border:2px solid rgba(255,255,255,.3);animation:slideDown .5s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.goal-achieved-content{display:flex;align-items:center;gap:16px;color:#fff}.goal-achieved-icon{font-size:32px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.goal-achieved-text{flex:1;display:flex;flex-direction:column;gap:4px}.goal-achieved-text strong{font-size:20px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.2)}.goal-achieved-text span{font-size:16px;opacity:.95;text-shadow:0 1px 2px rgba(0,0,0,.2)}.goal-achieved-close{background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:8px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:24px;transition:all .2s;flex-shrink:0}.goal-achieved-close:hover{background:#ffffff4d;transform:scale(1.1)}.date-selector-section{margin-bottom:24px}.date-input-wrapper{position:relative;display:inline-block}.date-input-button{padding:10px 16px;border-radius:8px;border:2px solid rgba(255,255,255,.3);background:#ffffffe6;font-size:16px;cursor:pointer;color:#1e293b;font-family:inherit;transition:all .2s;position:relative;text-align:left;min-width:150px}.date-input-button:hover{background:#fff;border-color:#ffffff80}.water-summary{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:32px;border-radius:12px;margin-bottom:24px;border:1px solid rgba(255,255,255,.3);box-shadow:0 4px 12px #00000026}.water-total-display{text-align:center}.water-amount{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:20px}.water-value{font-size:64px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);line-height:1}.water-unit{font-size:32px;font-weight:600;color:#fffc;text-shadow:0 1px 4px rgba(0,0,0,.3)}.water-progress-bar{width:100%;height:24px;background:#fff3;border-radius:12px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 2px 4px #0003}.water-progress-fill{height:100%;border-radius:12px;transition:width .5s ease-out,background-color .3s;box-shadow:0 2px 8px #3b82f666}.water-goal-text{color:#fff;font-size:18px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}.water-actions{margin-bottom:24px}.quick-add-buttons{display:flex;gap:12px;flex-wrap:wrap}.quick-add-button{flex:1;min-width:120px;padding:16px 24px;background:#3b82f6e6;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #0003}.quick-add-button:hover:not(:disabled){background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f680}.quick-add-button:disabled{opacity:.6;cursor:not-allowed}.add-water-form{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;border-radius:12px;margin-bottom:24px;border:1px solid rgba(255,255,255,.2)}.water-tracker-form-actions{margin-top:16px;display:flex;justify-content:flex-end;background:transparent}.water-tracker-form-row{display:flex;gap:16px;align-items:flex-end}.water-tracker-form-group{flex:1;display:flex;flex-direction:column;gap:8px}.water-tracker-form-group label{color:#fff;font-size:14px;font-weight:500}.water-tracker-form-group input{padding:10px 12px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff1a;color:#fff;font-size:16px;line-height:1.5}.water-tracker-form-group input::placeholder{color:#ffffff80}.water-tracker-form-actions .water-tracker-save-button{padding:10px 24px;background:#3b82f6e6;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 8px #0003}.water-tracker-save-button:hover:not(:disabled){background:#2563eb;border-color:#ffffff80;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.water-tracker-save-button:disabled{opacity:.6;cursor:not-allowed}.no-entries{text-align:center;padding:60px 20px;color:#ffffffb3;font-size:18px}.water-entries-list{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px;border-radius:12px;border:1px solid rgba(255,255,255,.2)}.water-entries-list h2{color:#fff;font-size:24px;margin:0 0 20px;font-weight:600}.entries-table{display:flex;flex-direction:column;gap:8px}.table-header,.table-row{display:grid;grid-template-columns:2fr 1.5fr .8fr;gap:16px;align-items:center;padding:12px 16px;border-radius:8px}.table-header{background:#fff3;font-weight:700;color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.2)}.table-row{background:#ffffff1a;color:#fff;font-weight:500;transition:background .2s}.table-row:hover{background:#fff3}.table-cell{display:flex;align-items:center}.water-value{font-weight:700;font-size:17px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.delete-button{color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:6px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:22px;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #0003}.delete-button:hover{background:#ef4444;transform:scale(1.1);box-shadow:0 4px 8px #ef444466}.loading-state{text-align:center;padding:60px 20px;color:#ffffffb3;font-size:18px}@media (max-width: 768px){.water-tracker-container{padding:16px}.water-header{flex-direction:column;align-items:flex-start;gap:12px}.water-value{font-size:48px}.water-unit{font-size:24px}.quick-add-buttons{flex-direction:column}.quick-add-button{width:100%}.form-row{flex-direction:column;align-items:stretch}.table-header,.table-row{grid-template-columns:1.5fr 1fr .6fr;font-size:14px;gap:8px;padding:10px 12px}}.insights-container{padding:2rem;max-width:1400px;margin:0 auto}.insights-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.insights-header h1{margin:0;font-size:2rem;font-weight:700;color:#fff}.time-range-selector{display:flex;gap:.5rem;background:#ffffff1a;padding:.25rem;border-radius:8px}.time-range-selector button{padding:.5rem 1rem;border:none;background:transparent;color:#ffffffb3;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.time-range-selector button:hover{background:#ffffff1a;color:#fff}.time-range-selector button.active{background:#14b8a64d;color:#fff;font-weight:600}.loading-state,.error-state,.no-data{text-align:center;padding:3rem;color:#ffffffb3;font-size:1.1rem}.error-state{color:#ef4444}.retry-button{margin-top:1rem;padding:.5rem 1.5rem;background:#14b8a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .2s}.retry-button:hover{background:#0d9488}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{background:#0f172af2;border-radius:12px;padding:1.5rem;border:1px solid rgba(255,255,255,.2);transition:transform .2s,box-shadow .2s;box-shadow:0 4px 6px #0000004d}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.summary-card-title{font-size:.9rem;color:#fff9;margin-bottom:.5rem;font-weight:500}.summary-card-value{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.summary-card-change{font-size:.9rem;font-weight:500}.change-positive{color:#ef4444}.change-negative{color:#10b981}.change-neutral{color:#fff9}.summary-card-goal{font-size:.85rem;color:#ffffff80;display:flex;align-items:center;gap:.5rem}.goal-met{color:#10b981;font-weight:600}.chart-section{background:#0f172af2;border-radius:12px;padding:1.5rem;margin-bottom:2rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 6px #0000004d}.chart-section .recharts-wrapper{background:#1e293b80;border-radius:8px;padding:1rem}.chart-section .recharts-text{fill:#fffffff2!important}.chart-section .recharts-cartesian-axis-tick-value{fill:#ffffffbf!important}.chart-section .recharts-cartesian-axis-line{stroke:#ffffff4d!important}.chart-section .recharts-cartesian-grid-line{stroke:#fff3!important}.chart-section h2{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;color:#fff}.chart-container{width:100%;margin-top:1rem}.no-chart-data{text-align:center;padding:3rem;color:#ffffff80;font-style:italic}.macro-chart-container{display:flex;align-items:center;gap:3rem;flex-wrap:wrap;justify-content:center;min-height:400px}.macro-legend{display:flex;flex-direction:column;gap:1rem}.macro-legend-item{display:flex;align-items:center;gap:.75rem;color:#fff;font-size:1rem}.macro-color{width:20px;height:20px;border-radius:4px;flex-shrink:0}.insights-section{background:#0f172af2;border-radius:12px;padding:1.5rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 6px #0000004d}.insights-section h2{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;color:#fff}.insights-list{display:flex;flex-direction:column;gap:1rem}.insight-item{padding:1rem;background:#1e293b99;border-radius:8px;color:#ffffffe6;line-height:1.6;border-left:3px solid #14b8a6}@media (max-width: 768px){.insights-container{padding:1rem}.insights-header{flex-direction:column;align-items:flex-start}.summary-cards{grid-template-columns:1fr}.macro-chart-container{flex-direction:column}.chart-container{overflow-x:scroll}}.premium-upgrade-container{max-width:1200px;margin:0 auto;padding:32px 20px;color:#1f2937}.premium-upgrade-header{text-align:center;margin-bottom:48px}.premium-upgrade-header h1{font-size:36px;font-weight:700;margin:0 0 16px;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.premium-subtitle{font-size:18px;color:#6b7280;margin:0}.premium-status-badge{display:inline-block;padding:12px 24px;border-radius:8px;font-weight:600;margin-top:16px}.premium-status-badge.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.premium-features-preview{background:#f9fafb;border-radius:12px;padding:32px;margin-bottom:48px;border:1px solid #e5e7eb}.premium-features-preview h2{margin:0 0 24px;font-size:24px;font-weight:600}.premium-features-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.premium-features-list li{padding:12px 0;font-size:16px;color:#374151;border-bottom:1px solid #e5e7eb}.premium-features-list li:last-child{border-bottom:none}.pricing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:48px}.pricing-plan{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:32px;position:relative;transition:all .3s ease}.pricing-plan:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea26;transform:translateY(-4px)}.pricing-plan.popular{border-color:#667eea;border-width:3px}.pricing-plan.lifetime{border-color:#f59e0b;border-width:3px}.popular-badge,.lifetime-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:6px 16px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.lifetime-badge{background:linear-gradient(135deg,#f59e0b,#d97706)}.plan-header{text-align:center;margin-bottom:24px}.plan-header h3{font-size:24px;font-weight:600;margin:0 0 16px;color:#1f2937}.plan-price{margin:16px 0}.price-amount{font-size:48px;font-weight:700;color:#1f2937}.price-interval{font-size:18px;color:#6b7280;margin-left:4px}.plan-description{font-size:14px;color:#6b7280;margin:8px 0 0}.upgrade-button{width:100%;padding:16px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.upgrade-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.upgrade-button:disabled{opacity:.6;cursor:not-allowed}.upgrade-button.popular{background:linear-gradient(135deg,#667eea,#764ba2)}.upgrade-button.lifetime{background:linear-gradient(135deg,#f59e0b,#d97706)}.premium-error-message{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;padding:16px;border-radius:8px;margin-bottom:24px;text-align:center}.premium-upgrade-footer{text-align:center;padding:32px 0;border-top:1px solid #e5e7eb;color:#6b7280}.premium-upgrade-footer p{margin:8px 0;font-size:14px}.loading-state,.error-state{text-align:center;padding:48px 20px}.retry-button{margin-top:16px;padding:12px 24px;background:#667eea;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer}@media (max-width: 768px){.pricing-plans{grid-template-columns:1fr}.premium-upgrade-header h1{font-size:28px}.premium-features-list{grid-template-columns:1fr}}.admin-panel{max-width:1200px;margin:0 auto;padding:24px}.admin-header{margin-bottom:32px}.admin-header-content{display:flex;justify-content:space-between;align-items:flex-start}.admin-logout-button{padding:10px 20px;background:#dc3545;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s;align-self:flex-start}.admin-logout-button:hover{background:#c82333}.admin-header h1{margin:0 0 8px;color:#333;font-size:32px}.admin-subtitle{color:#666;font-size:15px;margin:0;font-weight:300}.admin-message{padding:12px 16px;border-radius:8px;margin-bottom:24px;font-size:14px}.admin-message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.admin-message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.admin-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #e0e0e0;padding-bottom:0}.admin-tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:15px;font-weight:500;color:#666;transition:all .2s;margin-bottom:-2px;text-decoration:none;display:inline-block}.admin-tab:hover{color:#333;background:#f5f5f5}.admin-tab.active{color:#333;border-bottom-color:#333;font-weight:600}.admin-content{background:#fff;border-radius:8px;border:1px solid #e0e0e0;padding:24px;box-shadow:0 1px 3px #0000001a}.admin-loading{text-align:center;padding:48px;color:#666}.admin-empty{text-align:center;padding:48px;color:#999;font-style:italic}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.approved{background:#d1fae5;color:#065f46}.status-badge.rejected{background:#fee2e2;color:#991b1b}.admin-approve-button{padding:6px 12px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.admin-approve-button:hover:not(:disabled){background:#059669}.admin-approve-button:disabled{opacity:.6;cursor:not-allowed}.admin-reject-button{padding:6px 12px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.admin-reject-button:hover:not(:disabled){background:#dc2626}.admin-reject-button:disabled{opacity:.6;cursor:not-allowed}.admin-edit-button{padding:6px 12px;background:#6366f1;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.admin-edit-button:hover:not(:disabled){background:#4f46e5}.admin-edit-button:disabled{opacity:.6;cursor:not-allowed}.admin-save-button{padding:6px 12px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.admin-save-button:hover:not(:disabled){background:#059669}.admin-save-button:disabled{opacity:.6;cursor:not-allowed}.admin-filter-select{padding:8px 12px;border-radius:6px;border:1px solid #ddd;font-size:14px;background:#fff;cursor:pointer}.admin-stats-summary{margin-top:8px;display:flex;gap:16px;font-size:14px;color:#666}.admin-stats{padding:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;margin-bottom:24px}.stat-card{background:#f8f9fa;border-radius:8px;padding:24px;border:1px solid #e0e0e0}.stat-card h3{margin:0 0 12px;color:#666;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:36px;font-weight:700;color:#333;margin-bottom:8px}.stat-detail{font-size:14px;color:#666}.refresh-button{padding:10px 20px;background:#333;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.refresh-button:hover{background:#555}.refresh-button:disabled{background:#ccc;cursor:not-allowed}.admin-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-section-header h2{margin:0;color:#333;font-size:24px}.admin-filters{display:flex;gap:12px;align-items:center}.admin-filter-select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.admin-search-input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:250px}.admin-table-container{overflow-x:auto;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table thead{background:#f8f9fa;border-bottom:2px solid #e0e0e0}.admin-table th{padding:12px;text-align:left;font-weight:600;color:#333;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.admin-table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#666}.admin-table tbody tr:hover{background:#f8f9fa}.admin-id-cell{font-family:monospace;font-size:12px;color:#999}.admin-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.admin-checkbox input[type=checkbox]{cursor:pointer}.admin-delete-button{padding:6px 12px;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background .2s}.admin-delete-button:hover{background:#c82333}.admin-delete-button:disabled{background:#ccc;cursor:not-allowed}.admin-button{padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background .2s}.admin-button:hover:not(:disabled){background:#2563eb}.admin-button:disabled{background:#ccc;cursor:not-allowed}.admin-view-card-button{padding:6px 12px;background:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px;transition:background .2s}.admin-view-card-button:hover{background:#5568d3}.admin-view-card-button:disabled{background:#ccc;cursor:not-allowed}.admin-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid #e0e0e0}.admin-pagination button{padding:8px 16px;background:#333;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s}.admin-pagination button:hover:not(:disabled){background:#555}.admin-pagination button:disabled{background:#ccc;cursor:not-allowed}.admin-pagination span{color:#666;font-size:14px}.admin-create-invite{background:#f8f9fa;border-radius:8px;padding:20px;margin-bottom:24px;border:1px solid #e0e0e0}.admin-create-invite h3{margin:0 0 16px;color:#333;font-size:18px}.admin-create-form{display:flex;gap:12px;align-items:flex-end}.admin-create-form label{display:flex;flex-direction:column;gap:6px;color:#666;font-size:14px;flex:1}.admin-create-form input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.admin-create-button{padding:10px 20px;background:#28a745;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s;white-space:nowrap}.admin-create-button:hover:not(:disabled){background:#218838}.admin-create-button:disabled{background:#ccc;cursor:not-allowed}.invite-code{background:#f0f0f0;padding:4px 8px;border-radius:4px;font-family:monospace;font-size:13px;color:#333;margin-right:8px}.admin-copy-button{padding:4px 8px;background:none;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s}.admin-copy-button:hover{background:#f0f0f0;border-color:#999}.admin-table tbody tr.invite-used{opacity:.6;background:#f8f9fa}.admin-table tbody tr.invite-expired{opacity:.6;background:#fff3cd}.invite-status{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.invite-status.available{background:#d4edda;color:#155724}.invite-status.used{background:#d1ecf1;color:#0c5460}.invite-status.expired{background:#fff3cd;color:#856404}@media (max-width: 768px){.admin-panel{padding:16px}.admin-header-content{flex-direction:column;gap:16px}.admin-logout-button{align-self:flex-end}.admin-tabs{flex-wrap:wrap}.admin-tab{padding:10px 16px;font-size:14px}.admin-content{padding:16px}.stats-grid{grid-template-columns:1fr}.admin-table-container{overflow-x:scroll}.admin-table{font-size:12px}.admin-table th,.admin-table td{padding:8px}.admin-section-header{flex-direction:column;align-items:flex-start;gap:12px}.admin-create-form{flex-direction:column;align-items:stretch}}.alert-toast{position:fixed;top:20px;right:20px;min-width:300px;max-width:500px;padding:16px 20px;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:10000;cursor:pointer;animation:slideInRight .3s ease-out;font-size:14px;line-height:1.5}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.alert-toast-content{display:flex;align-items:center;gap:12px}.alert-toast-icon{font-size:20px;flex-shrink:0}.alert-toast-message{flex:1;font-weight:500}.alert-toast-close{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s;flex-shrink:0}.alert-toast-close:hover{opacity:1}.alert-toast-error{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}.alert-toast-success{background:#d1fae5;border:1px solid #a7f3d0;color:#065f46}.alert-toast-warning{background:#fef3c7;border:1px solid #fde68a;color:#92400e}.alert-toast-info{background:#dbeafe;border:1px solid #bfdbfe;color:#1e40af}@media (max-width: 768px){.alert-toast{top:10px;right:10px;left:10px;min-width:auto;max-width:none}}.invitation-card-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;overflow-y:auto}.invitation-card-container{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px;box-shadow:0 20px 60px #0000004d;max-width:600px;width:100%;max-height:calc(100vh - 40px);position:relative;overflow:visible;padding:12px;margin:auto}.invitation-card-close{position:absolute;top:16px;right:16px;background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:10}.invitation-card-close:hover{background:#ffffff4d}.invitation-card-content{padding:48px 48px 24px;text-align:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;max-height:calc(100vh - 80px);overflow-y:auto}.invitation-card-header{margin-bottom:32px}.invitation-logo{margin-bottom:16px}.invitation-logo img{width:80px;height:80px;display:block;margin:0 auto}.invitation-card-header h1{margin:0;color:#fff;font-size:32px;font-weight:700}.invitation-tagline{color:#ffffffe6;font-size:14px;margin:8px 0 0;text-transform:uppercase;letter-spacing:1px}.invitation-message{margin-bottom:32px}.invitation-message p{margin:8px 0;color:#fff;font-size:18px}.invitation-brand{font-size:24px!important;font-weight:700!important;color:#fff!important;text-shadow:0 2px 4px rgba(0,0,0,.2)}.invitation-qr-container{margin:32px 0;display:flex;justify-content:center}.qr-code-wrapper{background:#fff;padding:20px;border-radius:12px;box-shadow:0 4px 12px #0000001a}.invitation-link-display{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;margin:24px 0;display:flex;flex-direction:column;align-items:center;gap:12px}.link-label{color:#ffffffe6;font-size:14px;font-weight:500}.link-value-wrapper{display:flex;align-items:center;gap:8px;width:100%;max-width:100%;background:transparent;padding:0}.link-value{flex:1;background:#fff;padding:8px 14px;border-radius:6px;color:#667eea;text-decoration:none;font-size:12px;word-break:break-all;font-family:Courier New,monospace;font-weight:700;letter-spacing:1px;transition:color .2s}.link-value:hover{color:#5568d3;text-decoration:underline}.link-copy-button{background:#667eea;border:none;color:#fff;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s;flex-shrink:0}.link-copy-button:hover{background:#5568d3}.invitation-code-display{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:20px;margin:24px 0;display:flex;flex-direction:column;align-items:center;gap:12px}.code-label{color:#ffffffe6;font-size:14px;font-weight:500}.code-value-wrapper{display:flex;align-items:center;gap:8px;width:100%;justify-content:center}.code-value{background:#fff;padding:10px 20px;border-radius:8px;font-family:Courier New,monospace;font-size:20px;font-weight:700;color:#667eea;letter-spacing:2px;flex:1;text-align:center}.code-copy-button{background:#667eea;border:none;color:#fff;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:16px;transition:background .2s;flex-shrink:0}.code-copy-button:hover{background:#5568d3}.invitation-instructions{margin:24px 0;color:#ffffffe6;font-size:14px;line-height:1.6}.invitation-email-section{margin-top:32px;margin-bottom:24px;padding:20px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px}.email-input-wrapper{display:flex;flex-direction:column;gap:12px;width:100%}.email-input{width:100%;padding:12px 16px;border:none;border-radius:8px;font-size:14px;background:#fff;color:#333;font-family:inherit;box-sizing:border-box}.email-input:focus{outline:2px solid #667eea;outline-offset:2px}.send-email-button{width:100%;padding:12px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;background:#10b981;color:#fff;transition:background .2s}.send-email-button:hover:not(:disabled){background:#0d9488}.send-email-button:disabled{background:#6b7280;cursor:not-allowed;opacity:.6}.email-success-message{margin-top:12px;padding:10px;background:#10b98133;border:1px solid #10b981;border-radius:6px;color:#fff;font-size:14px;text-align:center}.email-error-message{margin-top:12px;padding:10px;background:#ef444433;border:1px solid #ef4444;border-radius:6px;color:#fff;font-size:14px;text-align:center}.invitation-actions{display:flex;gap:12px;justify-content:center;margin-top:24px;margin-bottom:0;flex-wrap:wrap;padding-bottom:8px}.download-button,.close-button{padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.download-button{background:#667eea;color:#fff}.download-button:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.email-button{background:#10b981}.email-button:hover{background:#0d9488}.close-button{background:#e0e0e0;color:#333}.close-button:hover{background:#d0d0d0}@media print{.invitation-card-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;background:#fff!important;padding:0!important;margin:0!important;display:flex!important;justify-content:center!important;align-items:center!important;z-index:9999!important}.invitation-card-container{box-shadow:none!important;max-width:100%!important;margin:0!important;position:static!important;background:linear-gradient(135deg,#667eea,#764ba2)!important}.invitation-card-close,.invitation-actions{display:none!important}@page{size:5in 7in;margin:.5in}}@media (max-width: 640px){.invitation-card-overlay{padding:20px 10px 10px;align-items:flex-start}.invitation-card-container{margin:0;max-width:calc(100% - 20px);max-height:calc(100vh - 20px)}.invitation-card-content{padding:32px 24px 24px;max-height:calc(100vh - 60px)}.invitation-card-header h1{font-size:24px}.qr-code-wrapper{padding:16px}.invitation-actions{flex-direction:column;gap:8px}.download-button,.close-button{width:100%}}.recipe-builder{background:#fff;border-radius:12px;padding:24px;max-width:1200px;margin:0 auto;box-shadow:0 2px 8px #0000001a;min-height:calc(100vh - 120px);box-sizing:border-box;overflow-x:hidden}@media (max-width: 768px){.recipe-builder{padding:16px;border-radius:0;min-height:auto;max-width:100%;overflow-x:hidden;box-sizing:border-box}}.recipe-builder-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.recipe-builder-header h2{margin:0;color:#333;font-size:24px}.back-button{background:#fff;border:1px solid #ddd;font-size:14px;cursor:pointer;color:#333;padding:8px 16px;border-radius:6px;transition:background-color .2s,border-color .2s;display:flex;align-items:center;gap:4px;white-space:nowrap}.back-button:hover{background:#f5f5f5;border-color:#999}@media (max-width: 768px){.recipe-builder-header{flex-wrap:wrap}.recipe-builder-header h2{font-size:20px}.back-button{font-size:13px;padding:6px 12px}}.recipe-builder-form{display:flex;flex-direction:column;gap:20px;width:100%;box-sizing:border-box}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333;font-size:14px}.form-group input,.form-group textarea{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box}.form-group textarea{resize:vertical;min-height:60px}.ingredients-section{margin-top:8px}.ingredients-section h3{margin:0 0 16px;color:#333;font-size:18px}.add-ingredient-form{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding:16px;background:#f9f9f9;border-radius:8px;width:100%;box-sizing:border-box}.search-ingredient{position:relative;z-index:1}.ingredient-search-input-wrapper{position:relative;display:flex;align-items:center;z-index:10002}.ingredient-search-input{width:100%;padding:10px 40px 10px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.barcode-scan-button{position:absolute;right:8px;background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#666;transition:color .2s;z-index:1}.barcode-scan-button:hover{color:#333}.barcode-scan-button svg{width:20px;height:20px}.searching-indicator{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#666;font-size:12px}.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:6px;margin-top:4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #0000001a}.search-results-backdrop{display:none}@media (max-width: 768px){.search-results-backdrop{display:none}.search-results{position:relative;top:auto;bottom:auto;left:auto;right:auto;max-height:40vh;border-radius:6px;margin-top:4px;box-shadow:0 4px 12px #0000001a;border:1px solid #ddd;z-index:1}.search-result-item{padding:16px;min-height:48px}.food-name{font-size:16px;word-break:break-word}.food-serving{font-size:14px;margin-top:6px}.ingredient-search-input-wrapper{position:relative;z-index:auto}.ingredient-search-input{position:relative;z-index:auto;background:#fff}.barcode-scan-button{z-index:auto}}.search-result-item{padding:12px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .2s}.search-result-item:hover{background-color:#f5f5f5}.search-result-item:last-child{border-bottom:none}.food-name{font-weight:500;color:#333;font-size:14px}.food-serving{font-size:12px;color:#666;margin-top:4px}.selected-ingredient-form{display:flex;flex-direction:column;gap:12px}.selected-food-info{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#e3f2fd;border-radius:6px;border:2px solid #2196f3}.selected-food-name{font-weight:600;color:#1976d2;font-size:14px}.selected-food-serving{font-size:12px;color:#666;margin-top:2px}.change-food-button{padding:6px 12px;background:#fff;border:1px solid #2196f3;color:#1976d2;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .2s}.change-food-button:hover{background:#f5f5f5}.quantity-inputs{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.quantity-input-group{display:flex;flex-direction:column;gap:4px;flex:1}.quantity-input-group label{font-size:12px;font-weight:500;color:#666}.quantity-input-group input{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;width:100%;box-sizing:border-box}.add-ingredient-button{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .2s,box-shadow .2s}.add-ingredient-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.nutrition-preview{padding:12px;background:#f0f7ff;border-radius:6px;border:1px solid #b3d9ff;margin-top:8px}.nutrition-preview-label{font-size:12px;font-weight:600;color:#1976d2;margin-bottom:8px}.nutrition-preview-values{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:#333}.nutrition-preview-values span{padding:4px 8px;background:#fff;border-radius:4px;border:1px solid #ddd}.ingredients-list{display:flex;flex-direction:column;gap:12px}.ingredient-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f9f9f9;border-radius:6px;border:1px solid #e0e0e0}.ingredient-info{flex:1}.ingredient-name{font-weight:500;color:#333;font-size:14px;margin-bottom:4px}.ingredient-nutrition{font-size:12px;color:#666}.remove-ingredient{background:#f44;color:#fff;border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.remove-ingredient:hover{background:#c00}.nutrition-summary{padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff}.nutrition-summary h3{margin:0 0 12px;color:#fff;font-size:18px}.nutrition-values{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 768px){.nutrition-values{grid-template-columns:1fr}}.nutrition-item{display:flex;justify-content:space-between;align-items:center}.nutrition-label{font-size:14px;opacity:.9}.nutrition-value{font-size:18px;font-weight:600}.recipe-builder-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px;padding-top:24px;border-top:2px solid #f0f0f0}.save-recipe-button{width:100%;padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.save-recipe-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.save-recipe-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button{width:100%;padding:12px 24px;background:#f0f0f0;color:#333;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button:hover{background:#e0e0e0}.instructions-section{margin-top:32px;padding-top:24px;border-top:2px solid #f0f0f0}.instructions-section h3{margin:0 0 8px;color:#333;font-size:20px}.instructions-section .section-description{color:#666;font-size:14px;margin-bottom:16px}.add-step-form{margin-bottom:20px}.step-input-group{display:flex;gap:8px;align-items:flex-start}.step-input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:60px}.step-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.add-step-button{padding:10px 20px;background:#2196f3;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap;align-self:flex-start}.add-step-button:hover:not(:disabled){background:#1976d2}.add-step-button:disabled{background:#ccc;cursor:not-allowed}.steps-list{display:flex;flex-direction:column;gap:12px}.step-item{display:flex;gap:12px;align-items:flex-start;padding:12px;background:#f9f9f9;border-radius:6px;border:1px solid #e0e0e0}.step-number{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#2196f3;color:#fff;border-radius:50%;font-weight:600;font-size:14px}.step-text{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:50px;background:#fff}.step-text:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.step-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.step-move-button,.remove-step-button{width:32px;height:32px;padding:0;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background-color .2s,border-color .2s;color:#666}.step-move-button:hover:not(:disabled){background:#f0f0f0;border-color:#999}.step-move-button:disabled{opacity:.4;cursor:not-allowed}.remove-step-button{color:#d32f2f;border-color:#ffcdd2}.remove-step-button:hover{background:#ffebee;border-color:#d32f2f}@media (max-width: 768px){.step-input-group{flex-direction:column}.add-step-button{width:100%}.step-item{flex-wrap:wrap}.step-actions{flex-direction:row;width:100%;justify-content:flex-end}}.share-recipe-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.share-recipe-modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003}.share-recipe-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.share-recipe-modal-header h2{margin:0;font-size:24px;font-weight:600;color:#111827}.share-recipe-modal-close{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.share-recipe-modal-close:hover{background-color:#f3f4f6;color:#111827}.share-recipe-modal-body{padding:24px}.share-recipe-description{margin:0 0 24px;color:#4b5563;line-height:1.6}.share-recipe-description strong{color:#111827;font-weight:600}.share-recipe-loading{text-align:center;padding:40px 20px;color:#6b7280}.share-recipe-url-section{display:flex;flex-direction:column;gap:16px}.share-recipe-label{font-weight:600;color:#111827;font-size:14px}.share-recipe-url-input-group{display:flex;gap:8px}.share-recipe-url-input{flex:1;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;background-color:#f9fafb;color:#111827}.share-recipe-url-input:focus{outline:none;border-color:#3b82f6;background-color:#fff}.share-recipe-copy-button{padding:12px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;white-space:nowrap}.share-recipe-copy-button:hover{background-color:#2563eb}.share-recipe-copy-button.copied{background-color:#10b981}.share-recipe-revoke-button{padding:10px 20px;background-color:#ef4444;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;align-self:flex-start}.share-recipe-revoke-button:hover:not(:disabled){background-color:#dc2626}.share-recipe-revoke-button:disabled{opacity:.6;cursor:not-allowed}.share-recipe-generate-section{display:flex;flex-direction:column;gap:16px;align-items:center;padding:40px 20px}.share-recipe-generate-text{margin:0;color:#4b5563;text-align:center}.share-recipe-generate-button{padding:14px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s}.share-recipe-generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.share-recipe-generate-button:disabled{opacity:.6;cursor:not-allowed}.share-recipe-error{padding:20px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;text-align:center}.share-recipe-modal-footer{padding:20px 24px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.share-recipe-close-button{padding:10px 24px;background-color:#f3f4f6;color:#111827;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s}.share-recipe-close-button:hover{background-color:#e5e7eb}@media (max-width: 640px){.share-recipe-modal-content{margin:10px;max-height:calc(100vh - 20px)}.share-recipe-url-input-group{flex-direction:column}.share-recipe-copy-button{width:100%}}.recipes-page{padding:24px;max-width:1400px;margin:0 auto;min-height:calc(100vh - 120px)}.recipes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;flex-wrap:wrap;gap:16px}.recipes-header-actions{display:flex;gap:12px;flex-wrap:wrap}.recipes-header h1{margin:0;font-size:32px;color:#333}.create-recipe-button,.import-recipe-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;white-space:nowrap}.create-recipe-button:hover,.import-recipe-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.import-recipe-button{background:linear-gradient(135deg,#3b82f6,#2563eb)}.import-recipe-button:hover{box-shadow:0 4px 12px #3b82f666}.recipes-loading,.recipes-error{text-align:center;padding:48px;font-size:18px;color:#666}.recipes-error{color:#d32f2f;background:#ffebee;border-radius:8px;padding:16px;margin-bottom:24px}.recipes-empty{text-align:center;padding:64px 24px}.empty-icon{font-size:64px;margin-bottom:16px}.recipes-empty h2{margin:0 0 8px;color:#333;font-size:24px}.recipes-empty p{margin:0 0 24px;color:#666;font-size:16px}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.recipe-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .2s;display:flex;flex-direction:column;gap:12px;overflow:hidden;min-width:0}.recipe-card:hover{box-shadow:0 4px 16px #00000026}.recipe-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.recipe-name{margin:0;font-size:20px;color:#333;flex:1;word-break:break-word}.recipe-actions{display:flex;gap:8px;flex-shrink:0}.recipe-share-button,.recipe-export-button,.recipe-edit-button,.recipe-delete-button{background:none;border:none;font-size:18px;cursor:pointer;padding:6px;border-radius:4px;transition:background-color .2s;display:flex;align-items:center;justify-content:center;color:#4b5563}.recipe-share-button svg,.recipe-export-button svg{display:block}.recipe-share-button:hover,.recipe-export-button:hover{background:#f1f5f9}.recipe-edit-button:hover{background:#e3f2fd}.recipe-delete-button:hover{background:#ffebee}.recipe-description{margin:0;color:#666;font-size:14px;line-height:1.5}.recipe-attribution{margin-bottom:8px;padding:8px 12px;background:#f0f7ff;border-left:3px solid #3b82f6;border-radius:4px;font-size:13px}.recipe-info{display:flex;gap:16px;flex-wrap:wrap;padding:12px 0;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}.recipe-info-item{display:flex;gap:4px;font-size:14px}.info-label{color:#666}.info-value{color:#333;font-weight:600}.recipe-nutrition{display:flex;flex-direction:column;gap:8px;min-width:0}.nutrition-item{display:flex;justify-content:space-between;align-items:center;padding:8px;background:#f9f9f9;border-radius:6px;font-size:14px;min-width:0;gap:8px;width:100%}.nutrition-label{color:#666;flex-shrink:0}.nutrition-value{color:#333;font-weight:600;flex-shrink:0;text-align:right}.recipe-ingredients-preview{margin-top:8px}.ingredients-label{font-size:12px;color:#666;margin-bottom:8px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.ingredients-list{margin:0;padding:0;list-style:none;font-size:13px;color:#555}.ingredients-list li{padding:4px 0;border-bottom:1px solid #f5f5f5}.ingredients-list li:last-child{border-bottom:none}.more-ingredients{color:#999;font-style:italic}@media (max-width: 768px){.recipes-page{padding:16px}.recipes-header{flex-direction:column;align-items:stretch}.recipes-header h1{font-size:24px}.create-recipe-button,.import-recipe-button{width:100%}.recipes-grid{grid-template-columns:1fr;gap:16px}}.recipes-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.recipes-modal-content{background:#fff;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column}.recipes-modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid #e0e0e0;position:sticky;top:0;background:#fff;z-index:1}.recipes-modal-header h2{margin:0;font-size:24px;color:#333}.recipes-modal-close{background:none;border:none;font-size:32px;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.recipes-modal-close:hover{background:#f0f0f0;color:#333}.recipes-modal-body{padding:24px;flex:1;overflow-y:auto}.shared-recipe-view{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:40px 20px}.shared-recipe-container{max-width:800px;margin:0 auto;background:#fff;border-radius:16px;padding:40px;box-shadow:0 10px 40px #0003}.shared-recipe-loading,.shared-recipe-error{text-align:center;padding:60px 20px;color:#fff}.shared-recipe-error h2{margin:0 0 16px;font-size:28px}.shared-recipe-error p{margin:0 0 24px;font-size:16px;opacity:.9}.shared-recipe-home-button{padding:12px 24px;background:#fff;color:#667eea;border:none;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s}.shared-recipe-home-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.shared-recipe-header{margin-bottom:24px;padding-bottom:24px;border-bottom:2px solid #e5e7eb}.shared-recipe-header h1{margin:0 0 8px;font-size:36px;color:#111827}.shared-recipe-subtitle{margin:0;color:#6b7280;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.shared-recipe-description{margin-bottom:24px;padding:16px;background-color:#f9fafb;border-radius:8px}.shared-recipe-description p{margin:0;color:#4b5563;line-height:1.6}.shared-recipe-attribution{margin-bottom:24px;padding:12px 16px;background:#f0f7ff;border-left:3px solid #667eea;border-radius:6px;font-size:14px}.shared-recipe-attribution-label{color:#6b7280;font-weight:500;margin-right:6px}.shared-recipe-attribution-link{color:#667eea;text-decoration:none;font-weight:500}.shared-recipe-attribution-link:hover{text-decoration:underline}.shared-recipe-attribution-name{color:#111827;font-weight:500}.shared-recipe-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:32px}.shared-recipe-info-item{display:flex;flex-direction:column;padding:16px;background-color:#f9fafb;border-radius:8px}.shared-recipe-info-item .shared-recipe-info-label{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.shared-recipe-info-item .shared-recipe-info-value{font-size:18px;font-weight:600;color:#111827}.shared-recipe-section{margin-bottom:32px}.shared-recipe-section h2{margin:0 0 16px;font-size:24px;color:#111827;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.shared-recipe-ingredients{list-style:none;padding:0;margin:0}.shared-recipe-ingredients li{padding:12px 16px;margin-bottom:8px;background-color:#f9fafb;border-radius:6px;border-left:3px solid #667eea;color:#374151}.shared-recipe-instructions{padding:16px;background-color:#f9fafb;border-radius:8px}.shared-recipe-instructions ol{margin:0;padding-left:24px}.shared-recipe-instructions li{margin-bottom:12px;color:#374151;line-height:1.6}.shared-recipe-instructions-text{color:#374151;line-height:1.6;white-space:pre-wrap}.shared-recipe-nutrition{margin-bottom:32px;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff}.shared-recipe-nutrition h2{margin:0 0 20px;font-size:24px;color:#fffffff2;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:12px}.shared-recipe-nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.shared-recipe-nutrition .shared-recipe-nutrition-item{display:flex;flex-direction:column;padding:16px;background-color:#ffffff1a;border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.shared-recipe-nutrition .shared-recipe-nutrition-label{font-size:12px;opacity:.9;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.shared-recipe-nutrition .shared-recipe-nutrition-value{font-size:24px;font-weight:700}.shared-recipe-actions{display:flex;gap:12px;justify-content:center;padding-top:24px;border-top:1px solid #e5e7eb}.shared-recipe-import-button{padding:14px 32px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s}.shared-recipe-import-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.shared-recipe-import-button:disabled{opacity:.6;cursor:not-allowed}.shared-recipe-cancel-button{padding:14px 32px;background:#f3f4f6;color:#111827;border:none;border-radius:8px;font-weight:600;font-size:16px;cursor:pointer;transition:all .2s}.shared-recipe-cancel-button:hover{background:#e5e7eb}@media (max-width: 640px){.shared-recipe-view{padding:20px 10px}.shared-recipe-container{padding:24px}.shared-recipe-header h1{font-size:28px}.shared-recipe-actions{flex-direction:column}.shared-recipe-import-button,.shared-recipe-cancel-button{width:100%}}.recipe-import-page{max-width:800px;margin:0 auto;padding:24px}.recipe-import-page-header{margin-bottom:32px}.recipe-import-page-header h1{margin:0 0 12px;color:#333;font-size:32px}.page-subtitle{color:#666;font-size:16px;margin:0 0 16px;line-height:1.5}.recipe-import-note{margin-top:12px;padding:12px;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;color:#856404;font-size:13px}.recipe-import-note strong{color:#856404}.recipe-import-page-content{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.recipe-import-form,.form-group{margin-bottom:24px}.form-group label{display:block;font-weight:600;color:#333;margin-bottom:8px;font-size:15px}.form-group input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s;font-family:inherit;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3b82f6}.form-group small{display:block;color:#666;font-size:13px;margin-top:8px}.import-button{padding:14px 32px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.import-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.import-button:disabled{background:#ccc;cursor:not-allowed;transform:none}.recipe-error{background:#f8d7da;color:#721c24;padding:16px;border-radius:8px;border:1px solid #f5c6cb;margin-top:16px}@media (max-width: 768px){.recipe-import-page{padding:16px}.recipe-import-page-content{padding:24px}.recipe-import-page-header h1{font-size:24px}}.ft-search-result-item.selected{background:#f0fdf4;border-color:#10b981}.recipe-review-page{max-width:1000px;margin:0 auto;padding:24px}.recipe-review-page-header{margin-bottom:32px}.back-button{background:none;border:none;color:#3b82f6;font-size:14px;cursor:pointer;padding:8px 0;margin-bottom:16px;display:inline-flex;align-items:center;gap:4px;transition:color .2s}.back-button:hover{color:#2563eb;text-decoration:underline}.recipe-review-page-header h1{margin:0;color:#333;font-size:32px}.recipe-review-page-content{display:flex;flex-direction:column;gap:24px}.recipe-review-info-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.recipe-review-info-card h2{margin:0 0 12px;color:#333;font-size:24px}.recipe-description{color:#666;font-size:14px;margin:0 0 12px;line-height:1.5}.recipe-meta{color:#666;font-size:14px;margin:0 0 12px}.recipe-attribution{margin-bottom:12px;padding:8px 12px;background:#f0f7ff;border-left:3px solid #3b82f6;border-radius:4px;font-size:13px}.attribution-label{color:#666;font-weight:500;margin-right:6px}.attribution-link{color:#3b82f6;text-decoration:none;font-weight:500}.attribution-link:hover{text-decoration:underline}.attribution-name{color:#333;font-weight:500}.review-summary{margin-top:16px}.summary-badge{display:inline-block;padding:8px 16px;background:#fff3cd;color:#856404;border-radius:6px;font-size:14px;font-weight:500}.recipe-review-ingredients-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.recipe-review-ingredients-section h3{margin:0 0 20px;color:#333;font-size:20px}.ingredients-list{display:flex;flex-direction:column;gap:16px}.ingredient-review-item{position:relative;border:2px solid #e0e0e0;border-radius:8px;padding:20px;transition:all .2s;overflow:visible;width:100%;max-width:100%;box-sizing:border-box;min-width:0;display:flex;flex-direction:column}.ingredient-review-item.needs-review{border-color:#f59e0b;background:#fffbeb}.ingredient-review-item.has-selection{border-color:#10b981;background:#f0fdf4}.ingredient-review-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.ingredient-info{flex:1;min-width:0}.ingredient-original{display:block;font-weight:600;color:#333;font-size:16px;margin-bottom:8px}.matched-food-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.confidence-badge{display:inline-block;padding:4px 10px;border-radius:4px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase}.ingredient-actions{display:flex;gap:8px;flex-shrink:0}.review-button,.clear-button,.mark-okay-button{padding:8px 16px;border:1px solid #e0e0e0;border-radius:6px;background:#fff;color:#333;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.review-button{background:#3b82f6;color:#fff;border-color:#3b82f6}.review-button:hover{background:#2563eb;border-color:#2563eb}.mark-okay-button{background:#10b981;color:#fff;border-color:#10b981}.mark-okay-button:hover{background:#059669;border-color:#059669}.clear-button:hover{background:#f5f5f5}.current-match{margin-top:12px;padding:12px;background:#f9fafb;border-radius:6px}.match-details{color:#333;font-size:14px;line-height:1.5}.serving-info{color:#666;font-size:13px}.marked-okay-badge{color:#10b981;font-weight:600;font-size:13px;margin-left:8px}.serving-size-adjustment{margin-top:16px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e0e0e0}.serving-size-header{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.serving-size-header strong{color:#333;font-size:14px}.serving-size-note{color:#666;font-size:12px}.serving-size-inputs{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.serving-size-input-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:120px}.serving-size-input-group label{font-size:12px;color:#666;font-weight:500}.serving-size-quantity,.serving-size-unit{padding:8px 12px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box;width:100%}.serving-size-quantity:focus,.serving-size-unit:focus{outline:none;border-color:#3b82f6}.clear-serving-size-button{padding:8px 16px;background:#f3f4f6;color:#333;border:1px solid #e0e0e0;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;height:fit-content;white-space:nowrap}.clear-serving-size-button:hover:not(:disabled){background:#e5e7eb}.clear-serving-size-button:disabled{opacity:.5;cursor:not-allowed}.serving-size-display{margin-top:12px;padding:8px 12px;background:#fff;border-radius:6px;font-size:13px;color:#333;border:1px solid #e0e0e0}.serving-size-changed{color:#f59e0b;font-weight:500;margin-left:8px}.ingredient-search{position:relative;margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;width:100%;box-sizing:border-box}.search-input-wrapper{position:relative;margin-bottom:16px;width:100%}.ingredient-search-input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.ingredient-search-input:focus{outline:none;border-color:#3b82f6}.searching-indicator{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#666;font-size:13px}.search-results{position:relative;display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto;width:100%;box-sizing:border-box;background:transparent}.search-result-item{border:2px solid #e0e0e0;border-radius:8px;padding:12px;cursor:pointer;transition:all .2s;background:#fff;width:100%;box-sizing:border-box;min-width:0;position:relative;z-index:1}.search-result-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.search-result-item.selected{border-color:#10b981;background:#f0fdf4;z-index:2}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.result-header strong{color:#333;font-size:15px}.selected-indicator{color:#10b981;font-weight:600;font-size:18px}.result-brand{color:#666;font-size:13px;margin-bottom:4px}.result-serving{color:#666;font-size:13px;margin-bottom:8px}.result-nutrition{color:#666;font-size:13px;margin-bottom:12px}.select-food-button{padding:6px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.select-food-button:hover{background:#2563eb}.no-results{text-align:center;color:#999;padding:24px;font-style:italic}.recipe-nutrition-summary-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.recipe-nutrition-summary-card h3{margin:0 0 20px;color:#333;font-size:20px}.nutrition-summary-content,.nutrition-summary-per-serving{display:flex;flex-direction:column;gap:16px}.nutrition-summary-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.nutrition-value{display:flex;flex-direction:column;padding:16px;background:#f9fafb;border-radius:8px}.nutrition-label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.nutrition-number{font-size:24px;font-weight:700;color:#333}.nutrition-servings-info{color:#666;font-size:13px;text-align:center}.recipe-review-footer{display:flex;gap:12px;justify-content:flex-end;padding-top:24px;border-top:1px solid #e0e0e0}.recipe-review-cancel-button{padding:12px 24px;background:#f3f4f6;color:#333;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.recipe-review-cancel-button:hover{background:#e5e7eb}.recipe-review-confirm-button{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.recipe-review-confirm-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.recipe-review-confirm-button:disabled{background:#ccc;cursor:not-allowed;transform:none}@media (max-width: 768px){.recipe-review-page{padding:16px}.recipe-review-page-header h1{font-size:24px}.recipe-review-info-card,.recipe-review-ingredients-section,.recipe-nutrition-summary-card{padding:20px}.ingredient-review-header{flex-direction:column;align-items:stretch}.ingredient-actions{justify-content:flex-start}.recipe-review-footer{flex-direction:column}.recipe-review-cancel-button,.recipe-review-confirm-button{width:100%}}.login-container{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#3b82f6,#14b8a6);padding:20px}.login-nav{background:#3b82f626;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #0000001a;padding:16px 0;position:sticky;top:0;z-index:100;margin:-20px -20px 20px}.login-nav-content{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.login-container .brand-link{text-decoration:none;display:flex;align-items:center}.login-container .brand{display:flex;align-items:center;gap:12px;min-width:0}.login-container .logo-mark{width:72px;height:72px;padding:8px;background:#ffffff1f;border:1px solid rgba(255,255,255,.26);border-radius:18px;box-shadow:0 16px 38px #1118273d}.login-container .logo-mark img{display:block;width:100%;height:100%;object-fit:contain}.login-container .brand-text{display:flex;flex-direction:column;gap:4px}.login-container .brand-name{color:#fff;font-size:23px;font-weight:760;letter-spacing:.25px}.login-container .brand-tagline{color:#fffc;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.login-container .login-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-self:center;max-width:400px;width:100%}.login-card{background:#fff;border-radius:16px;padding:40px;max-width:400px;width:100%;box-shadow:0 20px 60px #0000004d}.login-card h1{margin:0 0 8px;color:#333;font-size:32px;text-align:center}.login-card h2{margin:0 0 32px;color:#666;font-size:20px;font-weight:400;text-align:center}.login-form{display:flex;flex-direction:column;gap:20px}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form .form-group label{font-weight:500;color:#333;font-size:14px}.login-form .form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.login-form .form-group input:focus{outline:none;border-color:#3b82f6}.submit-button{padding:14px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:8px}.submit-button:hover:not(:disabled){background:#2563eb}.submit-button:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee;color:#c33;padding:12px;border-radius:8px;font-size:14px;text-align:center}.login-footer{margin-top:24px;text-align:center}.toggle-button{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;text-decoration:underline;padding:8px}.toggle-button:hover{color:#2563eb}.landing-page{min-height:100vh;display:flex;flex-direction:column}.landing-nav{background:#3b82f626;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #0000001a;padding:16px 0;position:sticky;top:0;z-index:100}.landing-nav-content{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.nav-sign-in-button{padding:10px 24px;background:#3b82f6d9;color:#fff;border-radius:8px;font-size:15px;font-weight:600;transition:all .2s;border:2px solid rgba(59,130,246,.9);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 2px 4px #0000001a;cursor:pointer}.nav-sign-in-button:hover{background:#2563ebf2;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.landing-main{flex:1}.hero-section{padding:80px 24px;max-width:1200px;margin:0 auto;text-align:center}.beta-banner{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);border-radius:12px;padding:16px 24px;margin-bottom:32px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.beta-badge{background:#fff3;padding:6px 12px;border-radius:6px;font-weight:600;font-size:14px;color:#fff;white-space:nowrap}.beta-message{margin:0;color:#fffffff2;font-size:16px;text-shadow:0 1px 4px rgba(0,0,0,.1)}.beta-link{color:#fff;font-weight:600;text-decoration:underline;margin-left:4px;transition:opacity .2s}.beta-link:hover{opacity:.9}.hero-content{max-width:800px;margin:0 auto}.hero-title{font-size:56px;font-weight:800;color:#fff;margin-bottom:24px;line-height:1.2;text-shadow:0 2px 8px rgba(0,0,0,.2)}.hero-subtitle{display:block;font-size:36px;font-weight:400;color:#ffffffe6;margin-top:8px}.hero-description{font-size:20px;color:#ffffffe6;margin-bottom:40px;line-height:1.6;text-shadow:0 1px 4px rgba(0,0,0,.1)}.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.cta-button{padding:16px 32px;font-size:18px;font-weight:600;border-radius:12px;cursor:pointer;transition:all .3s;border:2px solid transparent;text-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 4px 12px #00000026}.cta-button.primary{background:#fff;color:#3b82f6;border-color:#fff}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0003}.cta-button.secondary{background:#fff3;color:#fff;border-color:#fff6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cta-button.secondary:hover{background:#ffffff4d;border-color:#fff9;transform:translateY(-2px)}.cta-button.large{padding:20px 48px;font-size:20px}.features-section{padding:80px 24px;max-width:1200px;margin:0 auto}.section-title{font-size:42px;font-weight:700;color:#fff;text-align:center;margin-bottom:48px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.feature-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);border-radius:16px;padding:32px;text-align:center;transition:all .3s;cursor:pointer}.feature-card:hover,.feature-card.active{background:#fff3;border-color:#fff6;transform:translateY(-4px);box-shadow:0 8px 24px #0003}.feature-icon{font-size:64px;margin-bottom:16px;line-height:1;display:flex;align-items:center;justify-content:center}.feature-icon svg{width:64px;height:64px}.feature-title{font-size:24px;font-weight:600;color:#fff;margin-bottom:12px;text-shadow:0 1px 4px rgba(0,0,0,.2)}.feature-description{font-size:16px;color:#ffffffe6;line-height:1.6;text-shadow:0 1px 2px rgba(0,0,0,.1)}.cta-section{padding:80px 24px;text-align:center}.cta-content{max-width:600px;margin:0 auto;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.2);border-radius:24px;padding:64px 48px}.cta-title{font-size:36px;font-weight:700;color:#fff;margin-bottom:16px;text-shadow:0 2px 8px rgba(0,0,0,.2)}.cta-description{font-size:18px;color:#ffffffe6;margin-bottom:32px;line-height:1.6;text-shadow:0 1px 4px rgba(0,0,0,.1)}.landing-footer{padding:32px 24px;text-align:center;color:#fffc;font-size:14px;border-top:1px solid rgba(255,255,255,.1);margin-top:auto}@media (max-width: 768px){.hero-title{font-size:36px}.hero-subtitle{font-size:24px}.hero-description{font-size:18px}.section-title{font-size:32px}.features-grid{grid-template-columns:1fr}.cta-content{padding:48px 32px}.cta-title{font-size:28px}.hero-actions{flex-direction:column}.cta-button{width:100%}.landing-nav-content{flex-wrap:wrap}.beta-banner{flex-direction:column;text-align:center;padding:12px 16px}.beta-message{font-size:14px}}.beta-signup-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#14b8a6);padding:20px}.beta-signup-card{background:#fff;border-radius:16px;padding:40px;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d}.beta-signup-card h1{margin:0 0 8px;color:#333;font-size:32px;text-align:center}.beta-signup-description{margin:0 0 32px;color:#666;font-size:16px;text-align:center;line-height:1.6}.beta-signup-form{display:flex;flex-direction:column;gap:20px}.beta-signup-form .form-group{display:flex;flex-direction:column;gap:8px}.beta-signup-form .form-group label{font-weight:500;color:#333;font-size:14px}.beta-signup-form .form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.beta-signup-form .form-group input:focus{outline:none;border-color:#3b82f6}.beta-signup-form .form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.beta-submit-button{padding:14px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:8px}.beta-submit-button:hover:not(:disabled){background:#2563eb}.beta-submit-button:disabled{opacity:.6;cursor:not-allowed}.beta-error-message{background:#fee;color:#c33;padding:12px;border-radius:8px;font-size:14px;text-align:center}.beta-signup-footer{margin-top:24px;text-align:center}.beta-back-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;text-decoration:underline;padding:8px}.beta-back-link:hover{color:#2563eb}.beta-signup-success{text-align:center;padding:40px}.beta-success-icon{width:80px;height:80px;border-radius:50%;background:#10b981;color:#fff;font-size:48px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-weight:700}.beta-signup-success h2{margin:0 0 16px;color:#333;font-size:28px}.beta-signup-success p{margin:0 0 32px;color:#3a445d;font-size:16px;line-height:1.6}.beta-back-button{padding:12px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.beta-back-button:hover{background:#2563eb}.app{min-height:100vh;display:flex;flex-direction:row}.desktop-sidebar{display:none;min-width:80px;max-width:500px;min-height:100vh;background:#1e3a8a66;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-right:1px solid rgba(255,255,255,.2);box-shadow:2px 0 8px #0000001a;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:hidden;overflow-x:visible;z-index:50;transition:width .2s ease;flex-direction:column}.desktop-sidebar.resizing{transition:none}.desktop-sidebar.collapsed{width:80px}.sidebar-header{padding:20px 24px 20px 16px;border-bottom:1px solid rgba(255,255,255,.2);position:relative;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;overflow:visible;min-height:100px}.desktop-sidebar.collapsed .sidebar-header{padding:20px 8px;min-height:auto;justify-content:center}.sidebar-resizer{position:absolute;top:0;right:-12px;width:24px;height:100%;cursor:col-resize;z-index:100;background:#3b82f666;transition:background .2s ease;display:flex;align-items:center;justify-content:center;border-right:2px solid rgba(255,255,255,.4);padding:0 4px;box-sizing:border-box}.sidebar-resizer:hover{background:#3b82f699;border-right-color:#ffffffb3}.sidebar-resizer.resizing{background:#3b82f6cc;border-right-color:#ffffffe6;cursor:col-resize}.resizer-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.6;transition:opacity .2s ease;pointer-events:none;padding:2px;display:flex;align-items:center;justify-content:center}.sidebar-resizer:hover .resizer-indicator,.sidebar-resizer.resizing .resizer-indicator{opacity:1}.resizer-icon{width:12px;height:24px;color:#ffffffe6;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));transition:all .2s ease}.sidebar-resizer:hover .resizer-icon,.sidebar-resizer.resizing .resizer-icon{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.7));transform:scale(1.1)}.sidebar-header .brand{flex-direction:row;align-items:center;text-align:left;gap:12px;transition:opacity .2s ease;flex:1}.desktop-sidebar.collapsed .sidebar-header .brand-text{display:none}.sidebar-header .logo-mark{width:56px;height:56px;transition:width .3s ease,height .3s ease}.desktop-sidebar.collapsed .sidebar-header .logo-mark{width:40px;height:40px}.sidebar-header .brand-name{font-size:18px}.sidebar-header .brand-tagline{font-size:10px}.sidebar-nav{display:flex;flex-direction:column;padding:16px 12px;gap:4px;flex:1;overflow-y:auto;overflow-x:hidden}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;color:#ffffffe6;text-decoration:none;font-size:15px;font-weight:500;transition:all .2s;border-left:4px solid transparent;margin-bottom:2px;justify-content:flex-start}.desktop-sidebar.collapsed .sidebar-nav-item{justify-content:center;padding:14px}.desktop-sidebar.collapsed .sidebar-nav-item .nav-label{display:none}.sidebar-nav-item:hover{background:#ffffff1a;color:#fff}.sidebar-nav-item.active{background:#fff;color:#3b82f6;border-left-color:#3b82f6;font-weight:700;box-shadow:0 2px 8px #0000001a}.nav-icon{font-size:20px;width:24px;text-align:center;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));display:inline-block}.desktop-sidebar.collapsed .nav-icon{font-size:24px;width:auto}.sidebar-nav-item:hover .nav-icon,.sidebar-nav-item.active .nav-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}.nav-label{flex:1;white-space:nowrap;overflow:hidden;transition:opacity .2s ease}.desktop-sidebar.collapsed .nav-label{opacity:0;width:0}.app-main{flex:1;padding-bottom:24px;min-width:0}.app-nav{background:#1e3a8a66;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 2px 8px #0000001a;padding:16px 0;position:sticky;top:0;z-index:100}.app-nav.mobile-only{display:block;padding-top:calc(16px + env(safe-area-inset-top));top:0}.nav-content{max-width:1200px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}.brand-link{text-decoration:none;display:flex;align-items:center}.brand{display:flex;align-items:center;gap:12px;min-width:0}.logo-mark{width:72px;height:72px;padding:8px;background:#ffffff1f;border:1px solid rgba(255,255,255,.26);border-radius:18px;box-shadow:0 16px 38px #1118273d}.logo-mark svg{width:100%;height:100%;display:block}.logo-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:4px}.brand-name{color:#fff;font-size:23px;font-weight:760;letter-spacing:.25px}.brand-tagline{color:#fffc;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.nav-right{display:flex;align-items:center;gap:16px}.hamburger-button{display:none;flex-direction:column;justify-content:space-around;width:32px;height:32px;background:transparent;border:none;cursor:pointer;padding:0;z-index:101;gap:5px}.hamburger-line{width:100%;height:3px;background:#fff;border-radius:3px;transition:all .3s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:rotate(45deg) translate(8px,8px)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:rotate(-45deg) translate(8px,-8px)}.nav-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;overflow:hidden}.user-info{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-email{color:#fff;font-size:14px;opacity:.9}.logout-button{padding:8px 16px;background:#3b82f6d9;color:#fff;border:2px solid rgba(59,130,246,.9);border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;text-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 2px 4px #0000001a}.logout-button:hover{background:#2563ebf2;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.nav-tab{padding:10px 18px;background:#3b82f6d9;color:#fff;border-radius:8px;font-size:15px;font-weight:600;transition:all .2s;border:2px solid rgba(59,130,246,.9);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.2);box-shadow:0 2px 4px #0000001a;text-decoration:none;display:inline-block}.nav-tab:hover{background:#2563ebf2;border-color:#2563eb;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.nav-tab.active{background:#fff;color:#3b82f6;border-color:#fff;font-weight:700;box-shadow:0 2px 8px #00000026;text-shadow:none}.app-main{flex:1;padding-bottom:24px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen p{font-size:18px;margin:0}@media (min-width: 769px){.desktop-sidebar{display:flex}.app-nav.mobile-only{display:none}.app{flex-direction:row}}@media (max-width: 768px){.app{flex-direction:column}.desktop-sidebar{display:none}.nav-content{grid-template-columns:1fr auto;gap:16px;position:relative}.brand{justify-content:flex-start;text-align:left}.hamburger-button{display:flex}.nav-tabs{position:fixed;top:0;left:0;width:280px;max-width:85vw;height:100vh;background:#1e3a8af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;justify-content:flex-start;align-items:stretch;padding-top:calc(80px + env(safe-area-inset-top));padding-bottom:calc(20px + env(safe-area-inset-bottom));padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);gap:8px;transform:translate(-100%);transition:transform .3s ease;z-index:100;overflow-y:auto;box-shadow:4px 0 20px #0000004d;border-right:1px solid rgba(255,255,255,.2)}.nav-tabs.mobile-open{transform:translate(0)}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99;animation:fadeIn .3s ease}.nav-tab{width:100%;padding:16px 24px;font-size:18px;font-weight:600;text-align:left;border-radius:0;min-height:56px;display:flex;align-items:center;justify-content:flex-start;margin:0;border:none;background:transparent;color:#ffffffe6;text-decoration:none}.nav-tab.active{background:#fff;color:#3b82f6;border-left:4px solid white;font-weight:700;box-shadow:0 2px 8px #00000026}.nav-tab:active{background:#fff3}.nav-right{justify-content:flex-end;align-items:center;gap:12px}.user-info.desktop-only{display:none}.mobile-logout{margin-top:auto;padding:20px 24px;border-top:1px solid rgba(255,255,255,.2)}.mobile-logout-button{width:100%;padding:16px 24px;font-size:18px;font-weight:600;min-height:56px;border-radius:8px;background:#ef4444e6;border:2px solid rgba(255,255,255,.3)}.mobile-logout-button:hover{background:#ef4444}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}}.token-expired-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.token-expired-modal{background:#fff;border-radius:12px;padding:32px;max-width:400px;width:100%;box-shadow:0 8px 32px #0000004d;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.token-expired-icon{font-size:48px;margin-bottom:16px}.token-expired-modal h2{margin:0 0 12px;color:#333;font-size:24px}.token-expired-modal p{margin:0 0 24px;color:#666;font-size:16px;line-height:1.5}.token-expired-actions{display:flex;gap:12px;justify-content:center}.token-expired-button{padding:12px 24px;background:#2196f3;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s}.token-expired-button:hover{background:#1976d2}.token-expired-auto-redirect{margin-top:16px;font-size:14px;color:#999;font-style:italic}@media (max-width: 768px){.token-expired-modal{padding:24px;margin:20px}.token-expired-modal h2{font-size:20px}.token-expired-modal p{font-size:14px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#3b82f6,#14b8a6);min-height:100vh;min-height:-webkit-fill-available;color:#333}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea,select{font-family:inherit;outline:none}@media print{body.printing-invitation *{visibility:hidden}body.printing-invitation .invitation-card-overlay,body.printing-invitation .invitation-card-overlay *{visibility:visible}body.printing-invitation .invitation-card-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fff!important;padding:0;margin:0;display:flex;justify-content:center;align-items:center}body.printing-invitation .invitation-card-container{position:static!important;margin:0!important;max-width:100%!important}}
