/**
 * components/skeletons.css — F14 shimmer placeholders.
 */

@keyframes voltark-skeleton-shimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.skeleton,
.skeleton-line,
.skeleton-avatar,
.skeleton-card,
.skeleton-block {
    --sk-base: color-mix(in srgb, var(--va-bg-elevated, #1b2838) 80%, #000);
    --sk-hi: color-mix(in srgb, var(--va-border, #2a475e) 55%, #fff);
    background: linear-gradient(
        90deg,
        var(--sk-base) 0%,
        var(--sk-hi) 45%,
        var(--sk-base) 90%
    );
    background-size: 200% 100%;
    animation: voltark-skeleton-shimmer 1.25s ease-in-out infinite;
    border-radius: 8px;
    pointer-events: none;
    -webkit-user-select: none;
            user-select: none;
}

.skeleton-line {
    display: block;
    height: 12px;
    width: 100%;
    margin: 8px 0;
}
.skeleton-line.w-40 { width: 40%; }
.skeleton-line.w-55 { width: 55%; }
.skeleton-line.w-70 { width: 70%; }
.skeleton-line.w-85 { width: 85%; }
.skeleton-line.sm { height: 10px; }
.skeleton-line.lg { height: 16px; }

.skeleton-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex-shrink: 0;
}
.skeleton-avatar.sm { width: 32px; height: 32px; }
.skeleton-avatar.lg { width: 48px; height: 48px; }

.skeleton-card {
    display: block;
    height: 120px;
    width: 100%;
    border-radius: 12px;
}

.skeleton-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 8px 0;
}

.skeleton-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
}

.skeleton-row-body {
    flex: 1;
    min-width: 0;
}

.skeleton-feed-post {
    padding: 12px;
    border: 1px solid var(--va-border, #2a475e);
    border-radius: 12px;
    margin-bottom: 10px;
}

.skeleton-feed-post .skeleton-card {
    height: 160px;
    margin-top: 10px;
}

.skeleton-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.skeleton-wrap[aria-busy="true"] {
    min-height: 48px;
}
