@tailwind base; @tailwind components; @tailwind utilities; @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: 0 0% 9%; --primary-foreground: 0 0% 98%; --secondary: 0 0% 96.1%; --secondary-foreground: 0 0% 9%; --muted: 0 0% 96.1%; --muted-foreground: 0 0% 45.1%; --accent: 0 0% 96.1%; --accent-foreground: 0 0% 9%; --destructive: 0 0% 9%; --destructive-foreground: 0 0% 98%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; --ring: 0 0% 3.9%; --radius: 0.5rem; } .dark { --background: 0 0% 0%; --foreground: 0 0% 98%; --card: 0 0% 0%; --card-foreground: 0 0% 98%; --popover: 0 0% 0%; --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 0% 98%; --destructive-foreground: 0 0% 9%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; --ring: 0 0% 83.1%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* Custom utility classes for responsive design */ @layer utilities { /* Hide scrollbar for Chrome, Safari and Opera */ .no-scrollbar::-webkit-scrollbar { display: none; } /* Hide scrollbar for IE, Edge and Firefox */ .no-scrollbar { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } /* Responsive text utilities */ .text-responsive { @apply text-sm sm:text-base; } .heading-responsive { @apply text-2xl sm:text-3xl md:text-4xl lg:text-5xl; } /* Grid pattern for backgrounds */ .bg-grid-pattern { background-image: linear-gradient(to right, rgb(255 255 255 / 0.02) 1px, transparent 1px), linear-gradient(to bottom, rgb(255 255 255 / 0.02) 1px, transparent 1px); background-size: 50px 50px; } /* Responsive container */ .container-responsive { @apply w-full px-4 sm:px-6 lg:px-8 mx-auto max-w-7xl; } /* Responsive spacing */ .spacing-responsive { @apply py-12 sm:py-16 md:py-20 lg:py-24; } /* Focus visible utilities */ .focus-ring { @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background; } /* Card hover effects */ .card-hover { @apply transition-all duration-200 hover:border-foreground/20 hover:shadow-lg; } /* Button size utilities */ .btn-sm { @apply h-8 px-3 text-xs; } .btn-md { @apply h-9 px-4 text-sm; } .btn-lg { @apply h-10 px-8; } /* Responsive grid */ .grid-responsive { @apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-6; } /* Truncate utilities */ .line-clamp-1 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; } .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .line-clamp-3 { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } }