/* Status Indicators */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1;
    transition: all 0.2s ease;
    letter-spacing: 0.01em;
}

.status-dot {
    display: inline-block;
    position: relative;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: currentColor;
}

/* Online State */
.status-badge.status-online {
    background: linear-gradient(135deg, rgba(22, 199, 111, 0.16), rgba(22, 199, 111, 0.1));
    color: #0f9f55;
    border: 1px solid rgba(22, 199, 111, 0.35);
    box-shadow:
        0 10px 24px rgba(22, 199, 111, 0.2),
        0 0 0 2px rgba(22, 199, 111, 0.1);
}

.status-badge.status-online .status-dot {
    background-color: #16c76f;
    box-shadow: 0 0 0 0 rgba(22, 199, 111, 0.55);
    animation: status-beat 1s ease-in-out infinite;
}

.status-badge.status-online .status-dot::before,
.status-badge.status-online .status-dot::after {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 2px solid rgba(22, 199, 111, 0.35);
    opacity: 0;
    transform: scale(0.7);
    animation: status-ripple 1.6s ease-out infinite;
}

.status-badge.status-online .status-dot::after {
    animation-delay: 0.25s;
}

/* Offline State */
.status-badge.status-offline {
    background-color: rgba(108, 117, 125, 0.1);
    color: #6c757d;
    border: 1px solid rgba(108, 117, 125, 0.2);
}

.status-badge.status-offline .status-dot {
    background-color: #6c757d;
}

@keyframes status-beat {
    0% { transform: scale(1); }
    50% { transform: scale(1.25); }
    100% { transform: scale(1); }
}

@keyframes status-ripple {
    0% { opacity: 0.9; transform: scale(0.7); }
    60% { opacity: 0.35; transform: scale(1.5); }
    100% { opacity: 0; transform: scale(1.8); }
}
