/*
 * Shared Loading Skeleton
 * -----------------------
 * Reusable shimmer primitive for async panels and loading placeholders.
 */

.pds-skeleton {
    --pds-skeleton-bg: #eef2f7;
    --pds-skeleton-shine: rgba(255, 255, 255, 0.72);

    position: relative;
    display: block;
    overflow: hidden;
    background: var(--pds-skeleton-bg);
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.pds-skeleton::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, var(--pds-skeleton-shine), transparent);
    animation: pds-skeleton-shimmer 1.3s ease-in-out infinite;
}

@keyframes pds-skeleton-shimmer {
    to {
        transform: translateX(100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .pds-skeleton::after {
        animation: none;
    }
}
