/**
 * Voxel User Status Widget - Optimized CSS
 * Clean, efficient styles that work with Elementor's selector system
 */

/* ==========================================================================
   Container Styles
   ========================================================================== */

.vus-container {
    display: flex;
    box-sizing: border-box;
}

.vus-container--horizontal {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.vus-container--vertical {
    flex-direction: column;
    gap: 10px;
}

.vus-container--vertical .vus-item:last-child {
    margin-bottom: 0;
}

/* ==========================================================================
   Item Styles
   ========================================================================== */

.vus-item {
    display: flex;
    align-items: center;
    gap: 10px;
    box-sizing: border-box;
}

.vus-container--vertical .vus-item {
    width: 100%;
}

/* ==========================================================================
   Status Indicator
   ========================================================================== */

.vus-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.vus-indicator {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.vus-indicator--online {
    background-color: #22c55e;
    box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
    animation: vus-pulse 2s ease-in-out infinite;
}

.vus-indicator--offline {
    background-color: #9ca3af;
}

.vus-status-text {
    font-weight: 600;
    font-size: 0.9em;
    line-height: 1;
}

.vus-status-text--online {
    color: #22c55e;
}

.vus-status-text--offline {
    color: #9ca3af;
}

/* ==========================================================================
   Content Elements
   ========================================================================== */

.vus-name {
    font-weight: 600;
    line-height: 1.3;
}

.vus-activity {
    font-size: 0.875em;
    color: #6b7280;
    line-height: 1.3;
}

.vus-login {
    font-size: 0.8em;
    color: #9ca3af;
    font-style: italic;
    line-height: 1.3;
}

.vus-message {
    color: #6b7280;
    font-style: italic;
    margin: 0;
}

/* ==========================================================================
   Count Item (Online Users Count)
   ========================================================================== */

.vus-count-item {
    font-weight: 600;
}

.vus-count {
    line-height: 1;
}

/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes vus-pulse {
    0%, 100% {
        box-shadow: 0 0 6px rgba(34, 197, 94, 0.6);
    }
    50% {
        box-shadow: 0 0 12px rgba(34, 197, 94, 0.8);
    }
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 767px) {
    .vus-container--horizontal {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .vus-container--horizontal .vus-item {
        width: 100%;
    }
}
