body { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } * { box-sizing: border-box; } .page { display: none; min-height: 100%; } .page.active { display: block; animation: slideIn 0.4s ease-out; } @keyframes slideIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .hero-pattern { background-image: radial-gradient(circle at 20% 50%, rgba(34, 197, 94, 0.15) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(249, 115, 22, 0.15) 0%, transparent 50%); } .card-hover { position: relative; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform, box-shadow; } .card-hover:hover { transform: translateY(-12px) scale(1.02); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); z-index: 10; } /* Specific fix for dashboard analysis cards to prevent flickering */ #dashboard-page .space-y-6 { position: relative; /* Add extra spacing to account for hover transform */ padding-top: 0.5rem; } #dashboard-page .space-y-6 > .card-hover { position: relative; isolation: isolate; transform-origin: center center; /* Ensure each card maintains its space */ display: block; } #dashboard-page .space-y-6 > .card-hover:hover { z-index: 20; /* Reduce transform slightly for dashboard cards to prevent overlap */ transform: translateY(-8px) scale(1.01); } .nav-item { position: relative; transition: color 0.3s ease; } .nav-item::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 3px; background: linear-gradient(90deg, #22c55e, #f97316); transition: width 0.3s ease; } .nav-item:hover::after { width: 100%; } .upload-area { border: 3px dashed #d1d5db; transition: all 0.3s ease; background: linear-gradient(135deg, rgba(34, 197, 94, 0.03) 0%, rgba(249, 115, 22, 0.03) 100%); } .upload-area:hover { border-color: #22c55e; background: linear-gradient(135deg, rgba(34, 197, 94, 0.08) 0%, rgba(249, 115, 22, 0.08) 100%); transform: scale(1.01); } .upload-area.drag-active { border-color: #f97316; background: linear-gradient(135deg, rgba(34, 197, 94, 0.12) 0%, rgba(249, 115, 22, 0.12) 100%); transform: scale(1.02); } .gradient-text { background: linear-gradient(135deg, #22c55e 0%, #f97316 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .btn-gradient { background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%); transition: all 0.3s ease; } .btn-gradient:hover { background: linear-gradient(135deg, #16a34a 0%, #15803d 100%); transform: translateY(-2px); box-shadow: 0 10px 25px -5px rgba(34, 197, 94, 0.4); } .btn-gradient-orange { background: linear-gradient(135deg, #f97316 0%, #ea580c 100%); transition: all 0.3s ease; } .btn-gradient-orange:hover { background: linear-gradient(135deg, #ea580c 0%, #c2410c 100%); transform: translateY(-2px); box-shadow: 0 10px 25px -5px rgba(249, 115, 22, 0.4); } .feature-icon { transition: transform 0.3s ease; } .card-hover:hover .feature-icon { transform: scale(1.2) rotate(5deg); } .gallery-item { position: relative; overflow: hidden; transition: all 0.3s ease; } .gallery-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(34, 197, 94, 0.8) 0%, rgba(249, 115, 22, 0.8) 100%); opacity: 0; transition: opacity 0.3s ease; z-index: 1; } .gallery-item:hover::before { opacity: 1; } .gallery-item:hover { transform: scale(1.05); } .stat-number { font-size: 3rem; font-weight: 800; line-height: 1; } .sidebar-nav { position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 40; padding: 1rem; } .sidebar-dot { width: 12px; height: 12px; border-radius: 50%; background: #d1d5db; transition: all 0.3s ease; cursor: pointer; } .sidebar-dot:hover, .sidebar-dot.active { background: linear-gradient(135deg, #22c55e 0%, #f97316 100%); transform: scale(1.5); } /* Dark Mode Styles */ body.dark-mode { background-color: #0f172a; color: #e2e8f0; } body.dark-mode .bg-white { background-color: #1e293b !important; } body.dark-mode .bg-gray-50 { background-color: #0f172a !important; } body.dark-mode .text-gray-900, body.dark-mode .text-gray-800, body.dark-mode .text-gray-700 { color: #e2e8f0 !important; } body.dark-mode .text-gray-600 { color: #94a3b8 !important; } body.dark-mode .border-gray-100 { border-color: #334155 !important; } body.dark-mode .border-gray-200 { border-color: #334155 !important; } body.dark-mode .bg-gray-100 { background-color: #1e293b !important; } body.dark-mode .bg-gray-200 { background-color: #334155 !important; } body.dark-mode header { background-color: rgba(30, 41, 59, 0.95) !important; } body.dark-mode .hero-pattern { background-image: radial-gradient(circle at 20% 50%, rgba(34, 197, 94, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(249, 115, 22, 0.1) 0%, transparent 50%); } /* Dark mode for gradient backgrounds - Home page "Why Farmers Choose Us" tiles */ /* Target cards with gradient backgrounds and override with dark mode colors */ body.dark-mode .card-hover.bg-gradient-to-br { background-image: none !important; } body.dark-mode .card-hover[class*="from-green-50"][class*="to-green-100"] { background: linear-gradient(to bottom right, rgba(6, 78, 59, 0.4), rgba(5, 150, 105, 0.3)) !important; background-image: linear-gradient(to bottom right, rgba(6, 78, 59, 0.4), rgba(5, 150, 105, 0.3)) !important; } body.dark-mode .card-hover[class*="from-orange-50"][class*="to-orange-100"] { background: linear-gradient(to bottom right, rgba(124, 45, 18, 0.4), rgba(154, 52, 18, 0.3)) !important; background-image: linear-gradient(to bottom right, rgba(124, 45, 18, 0.4), rgba(154, 52, 18, 0.3)) !important; } body.dark-mode .card-hover[class*="from-green-50"][class*="to-orange-100"] { background: linear-gradient(to bottom right, rgba(6, 78, 59, 0.4), rgba(154, 52, 18, 0.3)) !important; background-image: linear-gradient(to bottom right, rgba(6, 78, 59, 0.4), rgba(154, 52, 18, 0.3)) !important; } /* Dark mode for dashboard recent analysis cards */ body.dark-mode .card-hover[class*="from-red-50"][class*="to-orange-50"] { background: linear-gradient(to bottom right, rgba(127, 29, 29, 0.4), rgba(124, 45, 18, 0.3)) !important; background-image: linear-gradient(to bottom right, rgba(127, 29, 29, 0.4), rgba(124, 45, 18, 0.3)) !important; } /* Dark mode for Analyze page "Analysis Complete" container */ body.dark-mode #results-section > div[class*="bg-gradient-to-br"][class*="from-green-50"][class*="to-orange-50"] { background: linear-gradient(to bottom right, rgba(6, 78, 59, 0.6), rgba(154, 52, 18, 0.5)) !important; background-image: linear-gradient(to bottom right, rgba(6, 78, 59, 0.6), rgba(154, 52, 18, 0.5)) !important; border-color: rgba(34, 197, 94, 0.35) !important; } /* Dark mode for card borders */ body.dark-mode .border-green-200 { border-color: rgba(34, 197, 94, 0.3) !important; } body.dark-mode .border-orange-200 { border-color: rgba(249, 115, 22, 0.3) !important; } body.dark-mode .border-red-200 { border-color: rgba(239, 68, 68, 0.3) !important; } /* Dark mode for input fields and textareas */ body.dark-mode input[type="text"], body.dark-mode input[type="email"], body.dark-mode input[type="password"], body.dark-mode textarea { background-color: #1e293b !important; color: #e2e8f0 !important; border-color: #334155 !important; } body.dark-mode input[type="text"]:focus, body.dark-mode input[type="email"]:focus, body.dark-mode input[type="password"]:focus, body.dark-mode textarea:focus { border-color: #22c55e !important; background-color: #1e293b !important; color: #e2e8f0 !important; } body.dark-mode input[type="text"]::placeholder, body.dark-mode input[type="email"]::placeholder, body.dark-mode input[type="password"]::placeholder, body.dark-mode textarea::placeholder { color: #64748b !important; } /* Dark mode for text colors in cards */ body.dark-mode .text-gray-500 { color: #94a3b8 !important; } /* Dark mode for language switcher */ body.dark-mode #lang-menu { background-color: #1e293b !important; border-color: #334155 !important; } body.dark-mode #lang-menu button { color: #e2e8f0 !important; } body.dark-mode #lang-menu button:hover { background-color: #334155 !important; color: #e2e8f0 !important; } /* Dark mode for account dropdown */ body.dark-mode #account-menu { background-color: #1e293b !important; border-color: #334155 !important; } body.dark-mode #account-menu button { color: #e2e8f0 !important; } body.dark-mode #account-menu button:hover { background-color: #334155 !important; } body.dark-mode #lang-switcher { background-color: #1e293b !important; color: #e2e8f0 !important; } body.dark-mode #lang-switcher:hover { background-color: #334155 !important; } .dark-mode-toggle { position: fixed; top: 50%; right: 2rem; transform: translateY(-50%); z-index: 40; width: 60px; height: 60px; background: linear-gradient(135deg, #22c55e 0%, #f97316 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); transition: all 0.3s ease; } .dark-mode-toggle:hover { transform: translateY(-50%) scale(1.1); box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4); } .dark-mode-toggle span { font-size: 28px; transition: transform 0.3s ease; } .dark-mode-toggle:hover span { transform: rotate(20deg); } /* Mobile menu styles */ #mobile-menu-btn { position: relative; } #mobile-menu { max-height: calc(100vh - 80px); overflow-y: auto; } #mobile-menu a { transition: all 0.2s ease; } #mobile-menu a:active { background-color: #f3f4f6; } /* Dark mode for mobile menu */ body.dark-mode #mobile-menu { background-color: #1e293b !important; border-color: #334155 !important; } body.dark-mode #mobile-menu a { color: #e2e8f0 !important; } body.dark-mode #mobile-menu a:hover { background-color: #334155 !important; } body.dark-mode #mobile-menu a:active { background-color: #475569 !important; } body.dark-mode #mobile-menu .border-gray-200 { border-color: #334155 !important; } body.dark-mode #mobile-lang-switcher { background-color: #334155 !important; color: #e2e8f0 !important; } body.dark-mode #mobile-lang-switcher:hover { background-color: #475569 !important; } body.dark-mode #mobile-lang-menu { background-color: #1e293b !important; border-color: #334155 !important; } body.dark-mode #mobile-lang-menu button { color: #e2e8f0 !important; } body.dark-mode #mobile-lang-menu button:hover { background-color: #334155 !important; } body.dark-mode #mobile-menu-btn { color: #e2e8f0 !important; } body.dark-mode #mobile-menu-btn:hover { background-color: #334155 !important; } /* Mobile responsive adjustments */ @media (max-width: 768px) { header nav { position: relative; } #mobile-menu { position: fixed; top: 73px; left: 0; right: 0; max-height: calc(100vh - 73px); z-index: 45; } /* Ensure mobile menu button is visible */ #mobile-menu-btn { z-index: 50; } } @view-transition { navigation: auto; }