.bg-grid-pattern {
    background-image: 
        linear-gradient(to right, rgba(255,255,255,0.015) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255,255,255,0.015) 1px, transparent 1px);
    background-size: 24px 24px;
}

.status-pulse {
    animation: statusPulse 2s infinite alternate;
}
@keyframes statusPulse {
    0% { transform: scale(0.98); box-shadow: 0 0 10px rgba(14, 165, 233, 0.1); }
    100% { transform: scale(1); box-shadow: 0 0 25px rgba(14, 165, 233, 0.25); }
}

.spinner {
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    border-top: 2px solid #0ea5e9;
    width: 16px;
    height: 16px;
    animation: spin 1s linear infinite;
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
