/* Custom Animations & Styles that Tailwind doesn't cover easily */

/* Police Space Grotesk */
body {
    font-family: "Space Grotesk", sans-serif;
    background-color: #0a0e17;
    background-image: 
        radial-gradient(circle at 50% 0%, rgba(124, 58, 237, 0.15) 0%, transparent 50%),
        radial-gradient(circle at 100% 0%, rgba(59, 130, 246, 0.1) 0%, transparent 50%);
    min-height: 100vh;
}

/* Animations */
@keyframes pulse-ring {
    0% { transform: scale(0.8); opacity: 0.5; }
    100% { transform: scale(2); opacity: 0; }
}

.animate-pulse-ring::before {
    content: '';
    position: absolute;
    left: 0; top: 0;
    width: 100%; height: 100%;
    background-color: inherit;
    border-radius: 50%;
    z-index: -1;
    animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

/* Custom Scrollbar */
.custom-scrollbar::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: rgba(17, 24, 39, 0.5);
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #6d28d9 0%, #8b5cf6 100%);
    border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #7c3aed 0%, #a78bfa 100%);
}

/* Glassmorphism utilities */
.glass {
    background: rgba(17, 24, 39, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.glass-card {
    background: rgba(17, 24, 39, 0.4);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.05);
    transition: all 0.3s ease;
}

.glass-card:hover {
    border-color: rgba(139, 92, 246, 0.3);
    background: rgba(17, 24, 39, 0.6);
    transform: translateY(-2px);
}

/* Status Indicators */
.status-indicator-dot {
    position: relative;
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.status-operational { background-color: #22c55e; box-shadow: 0 0 12px rgba(34, 197, 94, 0.4); }
.status-degraded { background-color: #f59e0b; box-shadow: 0 0 12px rgba(245, 158, 11, 0.4); }
.status-down { background-color: #ef4444; box-shadow: 0 0 12px rgba(239, 68, 68, 0.4); }
.status-checking { background-color: #9ca3af; }

/* Progress Bars */
.progress-bar-container {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 9999px;
    height: 6px;
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    border-radius: 9999px;
    transition: width 1s ease-in-out;
}

.fill-purple { background: linear-gradient(90deg, #8b5cf6 0%, #6d28d9 100%); }
.fill-green { background: linear-gradient(90deg, #22c55e 0%, #16a34a 100%); }
.fill-blue { background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%); }
