@tailwind base; @tailwind components; @tailwind utilities; :root { --foreground-rgb: 0, 0, 0; --background-start-rgb: 214, 219, 220; --background-end-rgb: 255, 255, 255; /* Font variables */ --font-inter: 'Inter', sans-serif; --font-poppins: 'Poppins', sans-serif; } @media (prefers-color-scheme: dark) { :root { --foreground-rgb: 255, 255, 255; --background-start-rgb: 0, 0, 0; --background-end-rgb: 0, 0, 0; } } @layer base { :root { --background: 0 0% 100%; --foreground: 0 0% 3.9%; --card: 0 0% 100%; --card-foreground: 0 0% 3.9%; --popover: 0 0% 100%; --popover-foreground: 0 0% 3.9%; --primary: 142 76% 36%; /* Green-600 */ --primary-foreground: 0 0% 98%; --secondary: 142 47% 96%; /* Green-50 */ --secondary-foreground: 142 76% 36%; --muted: 0 0% 96.1%; --muted-foreground: 0 0% 45.1%; --accent: 142 47% 96%; --accent-foreground: 142 76% 36%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 0 0% 98%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; --ring: 142 76% 36%; --chart-1: 142 76% 36%; --chart-2: 43 74% 66%; --chart-3: 197 37% 24%; --chart-4: 27 87% 67%; --chart-5: 173 58% 39%; --radius: 0.75rem; } .dark { --background: 0 0% 3.9%; --foreground: 0 0% 98%; --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; --popover: 0 0% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; --primary-foreground: 0 0% 9%; --secondary: 0 0% 14.9%; --secondary-foreground: 0 0% 98%; --muted: 0 0% 14.9%; --muted-foreground: 0 0% 63.9%; --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 0 0% 98%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; --ring: 0 0% 83.1%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; --chart-4: 280 65% 60%; --chart-5: 340 75% 55%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } html { scroll-behavior: smooth; } } @layer components { .gradient-text { @apply bg-gradient-to-r from-green-600 to-green-800 bg-clip-text text-transparent; } .hero-pattern { background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.1) 1px, transparent 0); background-size: 20px 20px; } .card-hover { @apply transition-all duration-300 hover:shadow-xl hover:-translate-y-2; } .btn-primary { @apply bg-gradient-to-r from-green-600 to-green-700 hover:from-green-700 hover:to-green-800 text-white font-semibold py-3 px-6 rounded-xl shadow-lg hover:shadow-xl transition-all duration-300 transform hover:-translate-y-1; } /* Animated gradient background */ .animate-gradient { background-size: 300% 300%; animation: gradient 6s ease infinite; } @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } } /* Custom scrollbar styles for recipe dialog */ .recipe-dialog-scroll { scrollbar-width: auto; scrollbar-color: #9CA3AF #F3F4F6; } .recipe-dialog-scroll::-webkit-scrollbar { width: 12px; } .recipe-dialog-scroll::-webkit-scrollbar-track { background: #F3F4F6; border-radius: 6px; } .recipe-dialog-scroll::-webkit-scrollbar-thumb { background: #9CA3AF; border-radius: 6px; } .recipe-dialog-scroll::-webkit-scrollbar-thumb:hover { background: #6B7280; } /* Mobile touch improvements */ @media (hover: none) and (pointer: coarse) { /* Ensure proper touch targets on mobile */ button, a, [role="button"] { min-height: 44px; min-width: 44px; } /* Improve touch response */ * { touch-action: manipulation; } /* Remove hover effects on touch devices */ .hover\:bg-slate-100:hover { background-color: transparent; } } /* Ensure mobile navigation works properly */ .mobile-nav-item { touch-action: manipulation; -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1); } /* Header sticky styles */ body.header-sticky main { padding-top: 5rem; /* 80px to account for sticky header height */ } @media (min-width: 768px) { body.header-sticky main { padding-top: 0; /* No padding needed on desktop as header is not sticky */ } }