@tailwind base; @tailwind components; @tailwind utilities; @layer components { .btn-primary { @apply inline-flex items-center px-6 py-2.5 border border-transparent rounded-full shadow-md text-sm font-medium text-white bg-gradient-to-r from-primary to-secondary hover:from-primary/90 hover:to-secondary/90 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/50 transform hover:scale-105 transition-all; } /* Default icon style (moon icon) */ #theme-toggle+.theme-toggle-btn i::before { content: "\f186"; /* Moon icon */ font-family: "Font Awesome 5 Free"; font-weight: 900; /* Solid icon */ } /* Change to sun icon and color when checkbox is checked */ #theme-toggle:checked+.theme-toggle-btn i::before { content: "\f185"; /* Sun icon */ color: theme('colors.yellow.400'); /* Tailwind yellow-400 color */ } .btn-secondary { @apply inline-flex items-center px-6 py-2.5 border border-gray-200 dark:border-gray-700 rounded-full shadow-md text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/50 transform hover:scale-105 transition-all; } .nav-link { @apply flex items-center px-6 py-2.5 rounded-lg font-medium text-gray-700 dark:text-gray-200 hover:bg-primary/10 dark:hover:bg-primary/20 hover:text-primary dark:hover:text-primary transition-all border border-transparent hover:border-primary/20 dark:hover:border-primary/30; } .nav-link i { @apply mr-3 text-lg text-gray-500 transition-colors dark:text-gray-400; } .nav-link:hover i { @apply text-primary; } .mobile-nav-link { @apply flex items-center px-6 py-3 text-gray-700 transition-all border border-transparent rounded-lg dark:text-gray-200 hover:bg-primary/10 dark:hover:bg-primary/20 hover:text-primary dark:hover:text-primary hover:border-primary/20 dark:hover:border-primary/30; } .mobile-nav-link i { @apply mr-3 text-lg text-gray-500 dark:text-gray-400; } .menu-item { @apply flex items-center w-full px-4 py-3 text-sm text-gray-700 transition-all dark:text-gray-200 hover:bg-primary/10 dark:hover:bg-primary/20 hover:text-primary dark:hover:text-primary first:rounded-t-lg last:rounded-b-lg; } .menu-item i { @apply mr-3 text-base text-gray-500 dark:text-gray-400; } .form-input { @apply w-full px-4 py-3 text-gray-900 transition-all border border-gray-200 rounded-lg shadow-sm dark:border-gray-700 bg-white/70 dark:bg-gray-800/70 backdrop-blur-sm dark:text-white focus:ring-2 focus:ring-primary/50 focus:border-primary; } .form-label { @apply block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1.5; } .form-hint { @apply mt-2 space-y-1 text-sm text-gray-500 dark:text-gray-400; } .form-error { @apply mt-2 text-sm text-red-600 dark:text-red-400; } /* Status Badge Styles */ .status-badge { @apply inline-flex items-center px-3 py-1 text-sm font-medium rounded-full; } .status-operating { @apply text-green-800 bg-green-100 dark:bg-green-700 dark:text-green-50; } .status-closed { @apply text-red-800 bg-red-100 dark:bg-red-700 dark:text-red-50; } .status-construction { @apply text-yellow-800 bg-yellow-100 dark:bg-yellow-600 dark:text-yellow-50; } /* Auth Card Styles */ .auth-card { @apply w-full max-w-md p-8 mx-auto border shadow-xl bg-white/90 dark:bg-gray-800/90 rounded-2xl backdrop-blur-sm border-gray-200/50 dark:border-gray-700/50; } .auth-title { @apply mb-8 text-2xl font-bold text-center text-transparent bg-gradient-to-r from-primary to-secondary bg-clip-text; } .auth-divider { @apply relative my-6 text-center; } .auth-divider::before, .auth-divider::after { @apply absolute top-1/2 w-1/3 border-t border-gray-200 dark:border-gray-700 content-['']; } .auth-divider::before { @apply left-0; } .auth-divider::after { @apply right-0; } .auth-divider span { @apply px-4 text-sm text-gray-500 dark:text-gray-400 bg-white/90 dark:bg-gray-800/90; } /* Social Login Buttons */ .btn-social { @apply w-full flex items-center justify-center px-6 py-3 border border-gray-200 dark:border-gray-700 rounded-lg shadow-sm text-sm font-medium text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary/50 transform hover:scale-[1.02] transition-all mb-3; } .btn-discord { @apply bg-[#5865F2] hover:bg-[#4752C4] text-white border-transparent shadow-[#5865F2]/20; } .btn-google { @apply text-gray-700 bg-white border-gray-200 hover:bg-gray-50 shadow-gray-200/50 dark:shadow-gray-900/50; } .alert { @apply p-4 mb-4 shadow-lg rounded-xl backdrop-blur-sm; } .alert-success { @apply text-green-800 border border-green-200 bg-green-100/90 dark:bg-green-800/30 dark:text-green-100 dark:border-green-700; } .alert-error { @apply text-red-800 border border-red-200 bg-red-100/90 dark:bg-red-800/30 dark:text-red-100 dark:border-red-700; } .alert-warning { @apply text-yellow-800 border border-yellow-200 bg-yellow-100/90 dark:bg-yellow-800/30 dark:text-yellow-100 dark:border-yellow-700; } .alert-info { @apply text-blue-800 border border-blue-200 bg-blue-100/90 dark:bg-blue-800/30 dark:text-blue-100 dark:border-blue-700; } /* Turnstile Widget */ .turnstile { @apply flex items-center justify-center my-4; } }