/* ==============================================
   SKELETON STATES
   ============================================== */
@keyframes skeletonShimmer {
    0% {
        background-position: -200% 0;
    }

    100% {
        background-position: 200% 0;
    }
}

.skeleton {
    background: linear-gradient(90deg,
            var(--bg-surface-2) 0%,
            var(--bg-surface-3) 20%,
            var(--bg-surface-2) 40%,
            var(--bg-surface-2) 100%);
    background-size: 200% 100%;
    animation: skeletonShimmer 1.5s ease-in-out infinite;
    border-radius: var(--radius-sm);
}

/* Skeleton Varianten */
.skeleton-text {
    height: 1em;
    margin-bottom: 0.5rem;
    border-radius: 4px;
}

.skeleton-text-sm {
    height: 0.75em;
    width: 60%;
}

.skeleton-text-lg {
    height: 1.25em;
    width: 80%;
}

.skeleton-title {
    height: 1.5em;
    width: 70%;
    margin-bottom: 0.75rem;
}

.skeleton-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
}

.skeleton-avatar-lg {
    width: 80px;
    height: 80px;
}

.skeleton-image {
    width: 100%;
    height: 150px;
    border-radius: var(--radius-sm);
    margin-bottom: 1rem;
}

.skeleton-button {
    height: 40px;
    width: 120px;
    border-radius: var(--radius-full);
}

.skeleton-badge {
    height: 24px;
    width: 80px;
    border-radius: var(--radius-full);
}

/* Skeleton Card */
.skeleton-card {
    background: var(--bg-card);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    box-shadow: var(--shadow-sm);
}

.skeleton-card-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.skeleton-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
