/* ============================================
   KV-Stream - Loading States
   Spinners, Skeletons, Empty States
   ============================================ */

.loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-md);
    padding: var(--spacing-3xl);
    color: var(--color-text-secondary);
}

.loading__spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--color-border);
    border-top-color: var(--color-accent);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* Empty State */
.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-md);
    padding: var(--spacing-3xl);
    text-align: center;
    color: var(--color-text-secondary);
}

.empty-state svg {
    color: var(--color-text-tertiary);
}

.empty-state h2 {
    font-size: var(--font-size-xl);
    color: var(--color-text-primary);
}