@import 'alerts.css'; @tailwind base; @tailwind components; @tailwind utilities; /* Custom base styles */ @layer base { html { scroll-behavior: smooth; } body { @apply font-sans text-gray-900 bg-white dark:text-gray-100 dark:bg-gray-900 transition-colors duration-200; } h1, h2, h3, h4, h5, h6 { @apply font-semibold text-gray-900 dark:text-white; } } /* Custom components */ @layer components { /* Navigation */ .nav-link { @apply flex items-center gap-2 px-3 py-2 rounded-lg transition-all duration-200 text-gray-600 hover:text-primary-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:text-primary-400 dark:hover:bg-gray-800; } .nav-link.active { @apply text-primary-600 bg-primary-50 dark:text-primary-400 dark:bg-gray-800; } .site-logo { @apply text-2xl font-bold text-primary-600 dark:text-primary-400; } /* Menu Items */ .menu-item { @apply flex items-center gap-3 px-4 py-2 rounded-lg transition-all duration-200 text-gray-600 hover:text-primary-600 hover:bg-gray-100 dark:text-gray-300 dark:hover:text-primary-400 dark:hover:bg-gray-800; } /* Forms */ .form-input { @apply w-full px-4 py-2 rounded-lg transition-all duration-200 text-gray-900 bg-white border border-gray-200 focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20 dark:text-gray-100 dark:bg-gray-800 dark:border-gray-700 dark:focus:border-primary-400 dark:focus:ring-primary-400/20 disabled:opacity-50 disabled:cursor-not-allowed; } .form-label { @apply block mb-2 text-sm font-medium text-gray-700 dark:text-gray-300; } /* Buttons */ .btn { @apply inline-flex items-center justify-center px-4 py-2 rounded-lg font-semibold transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-offset-2 dark:focus:ring-offset-gray-900; } .btn-primary { @apply btn bg-gradient-to-r from-primary-600 to-primary-500 text-white hover:from-primary-700 hover:to-primary-600 focus:ring-primary-500/50 dark:from-primary-500 dark:to-primary-400 dark:hover:from-primary-600 dark:hover:to-primary-500; } .btn-secondary { @apply btn bg-white text-gray-700 border border-gray-200 hover:bg-gray-50 hover:text-gray-900 focus:ring-gray-500/50 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-700 dark:hover:bg-gray-700 dark:hover:text-gray-100; } /* Cards */ .card { @apply bg-white border border-gray-200 rounded-lg shadow-sm dark:bg-gray-800 dark:border-gray-700; } .card-header { @apply px-6 py-4 border-b border-gray-200 dark:border-gray-700; } .card-body { @apply p-6; } .card-footer { @apply px-6 py-4 border-t border-gray-200 dark:border-gray-700; } } /* Custom utilities */ @layer utilities { .text-gradient { @apply text-transparent bg-clip-text bg-gradient-to-r from-primary-600 to-secondary-500 dark:from-primary-400 dark:to-secondary-400; } .bg-gradient { @apply bg-gradient-to-r from-primary-600 to-secondary-500 dark:from-primary-500 dark:to-secondary-400; } }