.loading-spinner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    gap: 12px;
}

.loading-spinner__circle {
    width: 28px;
    height: 28px;
    border: 2px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    border-top-color: var(--accent, #f7a8a5);
    animation: loading-spin 0.75s linear infinite;
}

.loading-spinner__text {
    font-size: 12px;
    color: var(--muted, #9b9490);
    margin: 0;
    letter-spacing: 0.04em;
}

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

/* ── Skeleton ─────────────────────────────────────────────────────── */

.loading-skeleton {
    display: grid;
    gap: 14px;
    padding: 4px 0;
    width: 100%;
}

.loading-skeleton__line {
    height: 14px;
    border-radius: 7px;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.04) 0%,
        rgba(255, 255, 255, 0.09) 40%,
        rgba(255, 255, 255, 0.04) 80%
    );
    background-size: 300% 100%;
    animation: loading-shimmer 1.8s ease-in-out infinite;
}

.loading-skeleton__line:nth-child(1) { width: 65%; }
.loading-skeleton__line:nth-child(2) { width: 85%; animation-delay: 0.1s; }
.loading-skeleton__line:nth-child(3) { width: 50%; animation-delay: 0.2s; }
.loading-skeleton__line:nth-child(4) { width: 75%; animation-delay: 0.15s; }
.loading-skeleton__line:nth-child(5) { width: 60%; animation-delay: 0.25s; }

@keyframes loading-shimmer {
    0% {
        background-position: 100% 0;
    }
    100% {
        background-position: -200% 0;
    }
}
