/* Custom styles */

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

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

::-webkit-scrollbar-track {
    background: #1A202C;
}

::-webkit-scrollbar-thumb {
    background: #4A5568;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #718096;
}

/* Focus styles */
:focus-visible {
    outline: 2px solid #3182CE;
    outline-offset: 2px;
}

/* Transition defaults */
* {
    transition-property: color, background-color, border-color, opacity;
    transition-duration: 150ms;
    transition-timing-function: ease-in-out;
}

/* Animation for loading spinner */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.animate-spin {
    animation: spin 1s linear infinite;
}

/* Animate ping for status indicators */
@keyframes ping {
    75%, 100% {
        transform: scale(2);
        opacity: 0;
    }
}

.animate-ping {
    animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

/* Blur utilities */
.blur-\[120px\] {
    filter: blur(120px);
}

/* Material icons sizing */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* Size utilities for icons */
.size-6 {
    width: 1.5rem;
    height: 1.5rem;
}

.size-7 {
    width: 1.75rem;
    height: 1.75rem;
}

/* Table styles */
table {
    border-collapse: collapse;
}

/* Ensure proper text wrapping */
.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Card hover effects */
.hover\:border-primary:hover {
    border-color: #3182CE;
}

/* Badge/pill styles */
.rounded-full {
    border-radius: 9999px;
}
