Agrovision / static /styles.css
qwfjgp2's picture
Upload 46 files
a8ea7fe verified
Raw
History Blame Contribute Delete
13.9 kB
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; }