﻿/* ================================
   SKELETON LOADERS PARA CARDS
   ================================ */

/* Animación de shimmer */
@keyframes shimmer {
    0% {
        background-position: -1000px 0;
    }

    100% {
        background-position: 1000px 0;
    }
}

/* Skeleton base */
.skeleton {
    background: linear-gradient( 90deg, #f0f0f0 0%, #e0e0e0 20%, #f0f0f0 40%, #f0f0f0 100% );
    background-size: 1000px 100%;
    animation: shimmer 2s infinite linear;
    border-radius: 4px;
}

/* Card skeleton container */
.skeleton-card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    height: 100%;
}

/* Skeleton image */
.skeleton-image {
    width: 100%;
    height: 40vh;
    background: linear-gradient( 90deg, #e0e0e0 0%, #f0f0f0 50%, #e0e0e0 100% );
    background-size: 200% 100%;
    animation: shimmer 2s infinite linear;
}

/* Skeleton text lines */
.skeleton-title {
    height: 24px;
    width: 70%;
    margin: 1rem 0;
}

.skeleton-text {
    height: 16px;
    width: 100%;
    margin: 0.5rem 0;
}

.skeleton-text-short {
    height: 16px;
    width: 60%;
    margin: 0.5rem 0;
}

/* Skeleton badge */
.skeleton-badge {
    height: 20px;
    width: 80px;
    border-radius: 12px;
    display: inline-block;
}

/* Skeleton button */
.skeleton-button {
    height: 38px;
    width: 100%;
    border-radius: 4px;
    margin-top: 1rem;
}

/* Fade in effect when real content loads */
.fade-in {
    animation: fadeIn 0.5s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hide skeleton when content loads */
.skeleton-container.loaded {
    display: none;
}
