/* Skeleton Loaders for Loading States */

.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 4px;
}

[data-theme="dark"] .skeleton {
    background: linear-gradient(90deg, #1e293b 25%, #2d3748 50%, #1e293b 75%);
    background-size: 200% 100%;
}

@keyframes skeleton-loading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.skeleton-card {
    padding: 1.5rem;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    background: #fafafa;
    min-height: 200px;
}

[data-theme="dark"] .skeleton-card {
    border-color: rgba(148,163,184,0.2);
    background: #1e293b;
}

.skeleton-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    margin: 0 auto 1rem;
}

.skeleton-title {
    height: 24px;
    width: 70%;
    margin: 0 auto 0.5rem;
}

.skeleton-description {
    height: 16px;
    width: 90%;
    margin: 0 auto;
}

.skeleton-text {
    height: 14px;
    width: 100%;
    margin-bottom: 0.5rem;
}

.skeleton-text-short {
    height: 14px;
    width: 60%;
}

/* Pulse animation alternative */
@keyframes skeleton-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.skeleton-pulse {
    animation: skeleton-pulse 2s ease-in-out infinite;
}

