Spaces:
Running
Running
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| /* Inter Font */ | |
| .font-inter { | |
| font-family: 'Inter', sans-serif; | |
| } | |
| /* Smooth theme transition */ | |
| * { | |
| transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease; | |
| } | |
| /* Glass morphism effects */ | |
| .glass { | |
| background: rgba(255, 255, 255, 0.7); | |
| backdrop-filter: blur(10px); | |
| -webkit-backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| } | |
| .dark .glass { | |
| background: rgba(31, 41, 55, 0.7); | |
| border: 1px solid rgba(75, 85, 99, 0.2); | |
| } | |
| /* Custom scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #f3f4f6; | |
| } | |
| .dark ::-webkit-scrollbar-track { | |
| background: #1f2937; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: #9ca3af; | |
| border-radius: 4px; | |
| } | |
| .dark ::-webkit-scrollbar-thumb { | |
| background: #4b5563; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: #6b7280; | |
| } | |
| .dark ::-webkit-scrollbar-thumb:hover { | |
| background: #6b7280; | |
| } | |
| /* Responsive sidebar */ | |
| @media (max-width: 1023px) { | |
| #sidebar { | |
| transform: translateX(-100%); | |
| } | |
| #sidebar:not(.hidden) { | |
| transform: translateX(0); | |
| } | |
| } | |
| /* Enhanced chart container styles */ | |
| canvas { | |
| max-height: 400px; | |
| } | |
| /* Advanced stat cards with gradient borders */ | |
| .stat-card { | |
| position: relative; | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| padding: 2px; | |
| border-radius: 12px; | |
| } | |
| .stat-card-inner { | |
| background: white; | |
| border-radius: 10px; | |
| padding: 1.5rem; | |
| } | |
| .dark .stat-card-inner { | |
| background: #1f2937; | |
| } | |
| /* Enhanced hover effects */ | |
| .hover-lift { | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .hover-lift:hover { | |
| transform: translateY(-4px) scale(1.02); | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); | |
| } | |
| /* Gradient backgrounds */ | |
| .gradient-bg { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| } | |
| .gradient-text { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* Loading animations */ | |
| .loading-dots { | |
| display: inline-flex; | |
| gap: 4px; | |
| } | |
| .loading-dots span { | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: #3b82f6; | |
| animation: loading-dots 1.4s infinite ease-in-out both; | |
| } | |
| .loading-dots span:nth-child(1) { | |
| animation-delay: -0.32s; | |
| } | |
| .loading-dots span:nth-child(2) { | |
| animation-delay: -0.16s; | |
| } | |
| @keyframes loading-dots { | |
| 0%, 80%, 100% { | |
| transform: scale(0.8); | |
| opacity: 0.5; | |
| } | |
| 40% { | |
| transform: scale(1); | |
| opacity: 1; | |
| } | |
| } | |
| /* Enhanced animations */ | |
| @keyframes fadeInUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(30px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes slideInLeft { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-30px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| @keyframes pulse-glow { | |
| 0%, 100% { | |
| box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); | |
| } | |
| 50% { | |
| box-shadow: 0 0 40px rgba(59, 130, 246, 0.8); | |
| } | |
| } | |
| .animate-fadeInUp { | |
| animation: fadeInUp 0.6s ease-out; | |
| } | |
| .animate-slideInLeft { | |
| animation: slideInLeft 0.6s ease-out; | |
| } | |
| .animate-pulse-glow { | |
| animation: pulse-glow 2s infinite; | |
| } | |
| /* Enhanced button styles */ | |
| .btn-gradient { | |
| background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); | |
| color: white; | |
| transition: all 0.3s ease; | |
| } | |
| .btn-gradient:hover { | |
| background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%); | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3); | |
| } | |
| /* Floating animation */ | |
| @keyframes float { | |
| 0%, 100% { | |
| transform: translateY(0px); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| .animate-float { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| /* Enhanced table styles */ | |
| .table-hover tbody tr { | |
| transition: all 0.2s ease; | |
| } | |
| .table-hover tbody tr:hover { | |
| background-color: rgba(59, 130, 246, 0.05); | |
| transform: scale(1.01); | |
| } | |
| /* Custom notification badge */ | |
| .notification-badge { | |
| position: relative; | |
| } | |
| .notification-badge::after { | |
| content: ''; | |
| position: absolute; | |
| top: -2px; | |
| right: -2px; | |
| width: 8px; | |
| height: 8px; | |
| background: #ef4444; | |
| border-radius: 50%; | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { | |
| box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); | |
| } | |
| 70% { | |
| box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); | |
| } | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); | |
| } | |
| } | |
| /* Progress bar with gradient */ | |
| .progress-gradient { | |
| background: linear-gradient(90deg, #3b82f6 0%, #8b5cf6 50%, #ec4899 100%); | |
| background-size: 200% 100%; | |
| animation: gradient-shift 3s ease infinite; | |
| } | |
| @keyframes gradient-shift { | |
| 0% { | |
| background-position: 0% 50%; | |
| } | |
| 50% { | |
| background-position: 100% 50%; | |
| } | |
| 100% { | |
| background-position: 0% 50%; | |
| } | |
| } | |
| /* Custom select dropdown */ | |
| .custom-select { | |
| background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); | |
| background-position: right 0.5rem center; | |
| background-repeat: no-repeat; | |
| background-size: 1.5em 1.5em; | |
| padding-right: 2.5rem; | |
| } | |
| /* Enhanced modal backdrop */ | |
| .modal-backdrop { | |
| background: rgba(0, 0, 0, 0.5); | |
| backdrop-filter: blur(5px); | |
| -webkit-backdrop-filter: blur(5px); | |
| } | |
| /* Skeleton loading */ | |
| .skeleton { | |
| background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); | |
| background-size: 200% 100%; | |
| animation: loading 1.5s infinite; | |
| } | |
| @keyframes loading { | |
| 0% { | |
| background-position: 200% 0; | |
| } | |
| 100% { | |
| background-position: -200% 0; | |
| } | |
| } | |
| /* Enhanced focus styles */ | |
| .focus-ring { | |
| transition: all 0.2s ease; | |
| } | |
| .focus-ring:focus { | |
| outline: none; | |
| ring: 2px; | |
| ring-color: #3b82f6; | |
| ring-offset: 2px; | |
| } | |
| /* Dark mode specific adjustments */ | |
| .dark .btn-gradient { | |
| background: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%); | |
| } | |
| .dark .btn-gradient:hover { | |
| background: linear-gradient(135deg, #1d4ed8 0%, #6d28d9 100%); | |
| } | |
| /* Responsive text sizes */ | |
| @media (max-width: 640px) { | |
| .text-responsive { | |
| font-size: 0.875rem; | |
| } | |
| } | |
| @media (min-width: 641px) and (max-width: 1024px) { | |
| .text-responsive { | |
| font-size: 1rem; | |
| } | |
| } | |
| @media (min-width: 1025px) { | |
| .text-responsive { | |
| font-size: 1.125rem; | |
| } | |
| } | |