/* Skeleton loading styles for MgBee
   File: /assets/style/skeleton.css
*/

/* Container card that mimics .post-card layout */
.skeleton-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    border-radius: 12px;
    background: #020617;
    border: 1px solid rgba(148, 163, 184, 0.25);
    overflow: hidden;
}

/* Shimmer base */
.skeleton-shimmer {
    position: relative;
    overflow: hidden;
    background: linear-gradient(
        90deg,
        #1f2933 0%,
        #111827 40%,
        #1f2933 80%
    );
    background-size: 200% 100%;
    animation: skeleton-loading 1.2s ease-in-out infinite;
}

/* Title bar */
.skeleton-title {
    height: 18px;
    width: 70%;
    border-radius: 8px;
    margin-bottom: 4px;
}

/* Meta row wrapper */
.skeleton-meta {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
}

/* Small pills for tag/date */
.skeleton-meta-pill {
    height: 14px;
    width: 80px;
    border-radius: 999px;
}

/* Image placeholder */
.skeleton-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: 10px;
    margin-top: 6px;
}

/* Button placeholder */
.skeleton-button {
    margin-top: 8px;
    height: 32px;
    width: 120px;
    border-radius: 999px;
}

/* Loader extra state */
#load-indicator.is-loading .loading-text {
    opacity: 1;
}

/* Optional: keep loader text subtle when idle */
#load-indicator .loading-text {
    opacity: 0.6;
    font-size: 14px;
}

/* "No more posts" text styling */
.no-more-posts {
    position: relative;
    margin: 28px auto 48px;
    text-align: center;
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #e5e7eb;
    opacity: 0;
    animation: noMoreFadeIn 0.7s ease-out forwards;
}

/* subtle glowing line behind text */
.no-more-posts::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 220px;
    height: 1px;
    transform: translate(-50%, -50%);
    background: radial-gradient(circle at center, rgba(96,165,250,0.7), transparent 65%);
    opacity: 0.35;
    filter: blur(1px);
}

/* small pill behind the text */
.no-more-posts::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: 0 auto;
    width: 230px;
    height: 34px;
    border-radius: 999px;
    background: radial-gradient(circle at center, rgba(15,23,42,0.9), rgba(15,23,42,0.3));
    opacity: 0.45;
    filter: blur(10px);
    z-index: -1;
}

/* glowing dot + text wrap (optional if you want to use a span) */
.no-more-posts span {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(15,23,42,0.85);
    box-shadow: 0 0 12px rgba(15,23,42,0.9);
}

.no-more-posts span::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow:
        0 0 6px rgba(34,197,94,0.9),
        0 0 14px rgba(34,197,94,0.6);
    animation: dotPulse 1.6s ease-in-out infinite;
}

/* fade in + slight slide up */
@keyframes noMoreFadeIn {
    0% {
        opacity: 0;
        transform: translateY(8px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* pulsing green dot */
@keyframes dotPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 0.9;
    }
    50% {
        transform: scale(1.3);
        opacity: 0.3;
    }
}


/* Shimmer animation */
@keyframes skeleton-loading {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}
