@tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 222.2 47.4% 11.2%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96%; --secondary-foreground: 222.2 84% 4.9%; --muted: 210 40% 96%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96%; --accent-foreground: 222.2 84% 4.9%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 222.2 84% 4.9%; --radius: 0.5rem; } .dark { --background: 222.2 84% 4.9%; --foreground: 210 40% 98%; --card: 222.2 84% 4.9%; --card-foreground: 210 40% 98%; --popover: 222.2 84% 4.9%; --popover-foreground: 210 40% 98%; --primary: 210 40% 98%; --primary-foreground: 222.2 47.4% 11.2%; --secondary: 217.2 32.6% 17.5%; --secondary-foreground: 210 40% 98%; --muted: 217.2 32.6% 17.5%; --muted-foreground: 215 20.2% 65.1%; --accent: 217.2 32.6% 17.5%; --accent-foreground: 210 40% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 210 40% 98%; --border: 217.2 32.6% 17.5%; --input: 217.2 32.6% 17.5%; --ring: 212.7 26.8% 83.9%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; } } /* YouTube-specific styles */ .youtube-container { @apply w-full h-screen bg-youtube-light dark:bg-youtube-dark; } .youtube-sidebar { @apply w-64 bg-youtube-light dark:bg-youtube-dark border-r border-gray-200 dark:border-gray-800; } .youtube-content { @apply flex-1 overflow-hidden; } .video-grid { @apply grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4 p-6; } .video-card { @apply cursor-pointer group; } .video-thumbnail { @apply w-full aspect-video object-cover rounded-lg group-hover:rounded-none transition-all duration-200; } .video-info { @apply flex space-x-3 mt-3; } .channel-avatar { @apply w-9 h-9 rounded-full flex-shrink-0; } .video-title { @apply text-sm font-medium text-youtube-text-primary dark:text-white line-clamp-2 leading-5; } .video-meta { @apply text-sm text-youtube-text-secondary dark:text-gray-400 hover:text-youtube-text-primary dark:hover:text-white cursor-pointer; } /* Scrollbar styles */ .custom-scrollbar::-webkit-scrollbar { width: 8px; } .custom-scrollbar::-webkit-scrollbar-track { @apply bg-gray-100 dark:bg-gray-800; } .custom-scrollbar::-webkit-scrollbar-thumb { @apply bg-gray-300 dark:bg-gray-600 rounded; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { @apply bg-gray-400 dark:bg-gray-500; } /* Animation classes */ .slide-up { animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .fade-in { animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* Skeleton loading */ .skeleton { @apply animate-pulse bg-gray-300 dark:bg-gray-700 rounded; } .skeleton-text { @apply skeleton h-4 w-3/4 mb-2; } .skeleton-avatar { @apply skeleton w-10 h-10 rounded-full; } .skeleton-thumbnail { @apply skeleton w-full aspect-video rounded-lg; } /* Search highlight */ .search-highlight { @apply bg-yellow-200 dark:bg-yellow-800 px-1 rounded; } /* Hide scrollbar for Chrome, Safari and Opera */ .hide-scrollbar::-webkit-scrollbar { display: none; } /* Hide scrollbar for IE, Edge and Firefox */ .hide-scrollbar { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ }