:root { --brand-primary: #2D6A4F; /* Deep Emerald Green */ --brand-primary-hover: #1B4332; --brand-secondary: #D4A373; /* Warm Gold/Honey */ --brand-accent: #E9C46A; /* Saffron */ --brand-danger: #BC4749; /* Deep Earthy Red */ --bg-main: #FDFBF7; /* Cream/Off-white */ --text-main: #2D2D2D; --text-muted: #666666; --card-shadow: 0 12px 40px rgba(45, 106, 79, 0.08); } /* General Body Styles */ body { background-color: var(--bg-main); color: var(--text-main); font-family: 'Poppins', sans-serif; } /* Headings */ h1, h2, h3, h4, h5, h6 { color: var(--text-main) !important; font-weight: 700; } /* Buttons and Inputs */ input, button, .form-control, .form-select { border-radius: 12px; } .btn { border-radius: 50px !important; font-weight: 600; padding: 10px 24px; transition: all 0.3s ease; } /* Main Content */ .display-4 { font-weight: 700; color: var(--text-main); } .lead { color: var(--text-muted); } /* Cards */ .card { background-color: #ffffff; border: none; border-radius: 24px; box-shadow: var(--card-shadow); transition: transform 0.3s ease, box-shadow 0.3s ease; } .card-body { color: var(--text-main); } /* Forms */ .form-label { color: var(--text-main); font-weight: 600; margin-bottom: 0.5rem; } .form-control, .form-select { background-color: #ffffff; border: 2px solid #F0F0F0; color: var(--text-main); padding: 12px 16px; } .form-control:focus, .form-select:focus { background-color: #ffffff; border-color: var(--brand-primary); box-shadow: 0 0 0 0.25rem rgba(45, 106, 79, 0.1); color: var(--text-main); } .form-control::placeholder { color: #AAAAAA; } /* Buttons */ .btn-primary { background-color: var(--brand-primary) !important; border-color: var(--brand-primary) !important; color: #ffffff !important; } .btn-primary:hover { background-color: var(--brand-primary-hover) !important; border-color: var(--brand-primary-hover) !important; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(45, 106, 79, 0.2); } .btn-outline-primary { color: var(--brand-primary) !important; border-color: var(--brand-primary) !important; border-width: 2px; } .btn-outline-primary:hover { background-color: var(--brand-primary) !important; color: #ffffff !important; } .text-primary { color: var(--brand-primary) !important; } .btn-danger { background-color: var(--brand-danger) !important; border-color: var(--brand-danger) !important; color: #ffffff !important; } /* ... rest of existing styles ... */ /* Feature Items */ .feature-item { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; } .feature-item:hover { background: rgba(255, 255, 255, 0.1); transform: translateX(10px); } .checkmark { color: #FFFFFF; background: rgba(255, 255, 255, 0.2); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-weight: bold; font-size: 1rem; flex-shrink: 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .feature-list h5 { color: #ffffff !important; font-size: 1.2rem; font-weight: 500; } .btn-outline-secondary { border: 2px solid #EEEEEE; color: var(--text-muted); } .btn-outline-secondary:hover { background-color: #F8F8F8; color: var(--text-main); border-color: #DDDDDD; } .btn-secondary { background-color: #F0F0F0; border: none; color: var(--text-muted); } .btn-secondary:hover { background-color: #E0E0E0; color: var(--text-main); } /* Shopping List & Recipe Cards */ .recipe-card { background-color: #ffffff; border-radius: 24px; padding: 20px; margin-bottom: 20px; border: 1px solid #F0F0F0; } #recipe-cards-container, #shopping-list-container { max-height: 70vh; overflow-y: auto; padding: 10px; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #DDDDDD; border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: var(--brand-secondary); } /* Footer */ footer { border-top: 1px solid #EEEEEE; color: #999999; font-size: 0.9rem; } /* Shopping List Checkbox */ .list-group-item { background-color: transparent !important; border-bottom: 1px solid #F8F8F8 !important; padding: 15px 0 !important; color: var(--text-main) !important; } .list-group-item.checked .form-check-label { text-decoration: line-through; opacity: 0.5; } .form-check-input { width: 1.25em; height: 1.25em; border: 2px solid #DDDDDD; cursor: pointer; } .form-check-input:checked { background-color: var(--brand-primary); border-color: var(--brand-primary); } /* Unit buttons */ .unit-selector .btn { padding: 6px 12px !important; font-size: 0.85rem; } .unit-selector .btn-secondary { background-color: var(--brand-primary) !important; color: white !important; } /* Badges */ .bg-custom-green { background-color: #E9F5EF !important; color: var(--brand-primary) !important; font-weight: 700; border: 1px solid #D1EADE; } /* Quantity Modifiers */ .btn-quantity-modifier { width: 28px; height: 28px; border-radius: 8px !important; display: inline-flex; align-items: center; justify-content: center; background-color: #F8F8F8; border: 1px solid #EEEEEE; color: var(--text-muted); padding: 0 !important; } .btn-quantity-modifier:hover { background-color: var(--brand-primary); color: white; border-color: var(--brand-primary); } /* Modal Styles */ .modal-content { background-color: #ffffff; border: none; border-radius: 32px; overflow: hidden; } .modal-header { border-bottom: 1px solid #F8F8F8; padding: 24px; } .modal-footer { border-top: 1px solid #F8F8F8; padding: 20px 24px; } /* Category Label */ .recipe-category-label { background-color: #E9F5EF; color: var(--brand-primary); padding: 4px 12px; border-radius: 8px; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; } /* Category Filters */ #category-filters .btn { border: 2px solid #F0F0F0; background-color: #ffffff; color: var(--text-muted); font-size: 0.85rem; padding: 8px 16px !important; } #category-filters .btn.active { background-color: var(--brand-primary) !important; border-color: var(--brand-primary) !important; color: #ffffff !important; } /* Search Container */ #recipe-search { padding-left: 3rem; height: 54px; border-color: #F0F0F0; } .search-container .bi-search { left: 1.25rem; color: #AAAAAA; font-size: 1.1rem; } /* Recipe Card Image */ .card .card-img-top { height: 200px; object-fit: cover; border-top-left-radius: 24px; border-top-right-radius: 24px; } /* View Recipe Modal */ #view-recipe-ingredients { background-color: #FBFBFB; border-radius: 20px; padding: 20px; } #view-recipe-ingredients .list-group-item { border-bottom: 1px solid #F0F0F0 !important; padding: 10px 0 !important; } #view-recipe-ingredients .list-group-item:last-child { border-bottom: none !important; } /* Auth Screen Styles */ .auth-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100vh; z-index: 1050; background-color: #ffffff; } .auth-image-container { position: relative; overflow: hidden; background-color: var(--brand-primary); /* Fallback */ } .auth-background-video { position: absolute; top: 50%; left: 50%; min-width: 100%; min-height: 100%; width: auto; height: auto; transform: translate(-50%, -50%); object-fit: cover; z-index: 0; } .auth-image-overlay { background: linear-gradient(135deg, rgba(45, 106, 79, 0.4) 0%, rgba(27, 67, 50, 0.7) 100%); width: 100%; height: 100%; position: relative; z-index: 1; } /* Animated decorative circles in background */ .auth-image-overlay::before, .auth-image-overlay::after { content: ''; position: absolute; border-radius: 50%; background: rgba(212, 163, 115, 0.2); filter: blur(80px); z-index: 0; } .auth-image-overlay::before { width: 300px; height: 300px; top: -100px; right: -100px; animation: pulse 10s infinite alternate; } .auth-image-overlay::after { width: 400px; height: 400px; bottom: -150px; left: -150px; animation: pulse 15s infinite alternate-reverse; } @keyframes pulse { 0% { transform: scale(1) translate(0, 0); opacity: 0.2; } 100% { transform: scale(1.2) translate(50px, 30px); opacity: 0.4; } } .auth-branding-content { background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(25px) saturate(180%); -webkit-backdrop-filter: blur(25px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 48px; padding: 60px 50px; max-width: 580px; box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.4); animation: slideUpFade 1s cubic-bezier(0.2, 0.8, 0.2, 1); z-index: 1; } @keyframes slideUpFade { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: translateY(0); } } .floating-emoji { animation: float 4s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0) rotate(var(--rotate)); } 50% { transform: translateY(-20px) rotate(calc(var(--rotate) + 10deg)); } } .auth-branding-content p.lead { color: rgba(255, 255, 255, 0.9) !important; font-weight: 500; font-size: 1.25rem; line-height: 1.6; letter-spacing: -0.2px; } .feature-list h5 { color: #ffffff !important; font-size: 1.3rem; font-weight: 600; margin: 0; } .feature-list .bi { background: rgba(255, 255, 255, 0.15) !important; backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.1); } .auth-form-container { box-shadow: -20px 0 60px rgba(0, 0, 0, 0.05); background-color: #ffffff; z-index: 2; } .auth-form-container h2 { color: var(--text-main); font-weight: 700; letter-spacing: -1px; } .auth-screen .form-control-lg { padding: 14px 20px; font-size: 1rem; border-radius: 14px; border: 2px solid #F5F5F5; background-color: #FAFAFA; } .auth-screen .form-control-lg:focus { background-color: #ffffff; border-color: var(--brand-primary); } #auth-nav.guest-nav { display: none !important; } body:has(#guest-view:not(.d-none)) .navbar { display: none !important; } /* Footer hidden on auth screen */ body:has(#guest-view:not(.d-none)) footer { display: none !important; } @media (max-width: 991.98px) { .auth-form-container { padding: 40px 20px !important; } } /* Print Styles */ @media print { body { background-color: white; } .card { box-shadow: none; border: 1px solid #EEE; } } @media (max-width: 768px) { .display-4 { font-size: 2rem; } }