/* Skeleton Loading Animations */
.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s infinite;
    border-radius: 4px;
}

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

.skeleton-text { height: 14px; margin-bottom: 8px; width: 80%; }
.skeleton-text-short { height: 14px; margin-bottom: 8px; width: 40%; }
.skeleton-title { height: 22px; margin-bottom: 12px; width: 60%; }
.skeleton-card { height: 120px; margin-bottom: 16px; border-radius: 8px; }
.skeleton-table-row { height: 40px; margin-bottom: 4px; }
.skeleton-avatar { width: 40px; height: 40px; border-radius: 50%; }
.skeleton-button { width: 100px; height: 36px; border-radius: 4px; display: inline-block; }
.skeleton-chart { height: 250px; border-radius: 8px; }

/* Apply to DataTables while loading */
.dataTables_processing .skeleton { display: block; }

/* Page transition */
.page-loading { opacity: 0.6; transition: opacity 0.3s; pointer-events: none; }
.page-loaded { opacity: 1; transition: opacity 0.3s; }
