@tailwind base; @tailwind components; @tailwind utilities; @layer components { /* Button Styles */ .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; } .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; } /* [Previous styles remain unchanged until mobile menu section...] */ /* Mobile Menu */ #mobileMenu { @apply overflow-hidden transition-all duration-300 ease-in-out opacity-0 max-h-0; } #mobileMenu.show { @apply max-h-[300px] opacity-100; } #mobileMenu .space-y-4 { @apply pb-6; } .mobile-nav-link { @apply flex items-center justify-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 text-xl transition-colors; } @media (max-width: 540px) { .mobile-nav-link i { @apply text-lg; } } .mobile-nav-link.primary { @apply text-white bg-gradient-to-r from-primary to-secondary hover:from-primary/90 hover:to-secondary/90; } .mobile-nav-link.primary i { @apply mr-3 text-white; } .mobile-nav-link.secondary { @apply text-gray-700 bg-gray-100 dark:bg-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600; } .mobile-nav-link.secondary i { @apply mr-3 text-gray-500 dark:text-gray-400; } /* Theme Toggle */ #theme-toggle+.theme-toggle-btn i::before { content: "\f186"; font-family: "Font Awesome 5 Free"; font-weight: 900; } #theme-toggle:checked+.theme-toggle-btn i::before { content: "\f185"; color: theme('colors.yellow.400'); } /* Navigation Components */ .nav-link { @apply flex items-center text-gray-700 transition-all dark:text-gray-200; } /* Extra small screens (540px and below) */ @media (max-width: 540px) { .nav-link { @apply px-2 py-2 text-sm; } .nav-link i { @apply mr-1 text-base; } .nav-link span { @apply text-sm; } .site-logo { @apply px-1 text-lg; } .nav-container { @apply px-2; } } /* Small screens (541px to 767px) */ @media (min-width: 541px) and (max-width: 767px) { .nav-link { @apply px-3 py-2; } .nav-link i { @apply mr-2; } .site-logo { @apply px-2 text-xl; } .nav-container { @apply px-4; } } /* Medium screens and up */ @media (min-width: 768px) { .nav-link { @apply px-6 py-2.5 rounded-lg font-medium border border-transparent hover:border-primary/20 dark:hover:border-primary/30; } .nav-link i { @apply mr-3 text-lg; } .site-logo { @apply px-3 text-2xl; } .nav-container { @apply px-6; } } .nav-link:hover { @apply text-primary dark:text-primary bg-primary/10 dark:bg-primary/20; } .nav-link i { @apply text-gray-500 transition-colors dark:text-gray-400; } .nav-link:hover i { @apply text-primary; } @media (min-width: 1024px) { #mobileMenu { @apply hidden !important; } } /* Menu Items */ .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 Components */ .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 Badges */ .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 Components */ .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 text-gray-700 bg-white border-gray-200 hover:bg-gray-50 shadow-gray-200/50 dark:shadow-gray-900/50; } .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 Components */ .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; } /* Layout Components */ .card { @apply p-6 bg-white border rounded-lg shadow-lg dark:bg-gray-800 border-gray-200/50 dark:border-gray-700/50; } .card-hover { @apply transition-transform transform hover:-translate-y-1; } .grid-cards { @apply grid grid-cols-1 gap-6 md:grid-cols-2 lg:grid-cols-3; } /* Typography */ .heading-1 { @apply mb-6 text-3xl font-bold text-gray-900 dark:text-white; } .heading-2 { @apply mb-4 text-2xl font-bold text-gray-900 dark:text-white; } .text-body { @apply text-gray-600 dark:text-gray-300; } /* Turnstile Widget */ .turnstile { @apply flex items-center justify-center my-4; } }