/* ==========================================================================
   ELIAS - Skeleton Loading Animations
   ========================================================================== */

.skeleton {
  background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
}

.dark .skeleton {
  background: linear-gradient(90deg, #334155 25%, #475569 50%, #334155 75%);
  background-size: 200% 100%;
}

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

/* Skeleton Element Types */
.skeleton-text {
  height: 14px;
  margin-bottom: 8px;
  border-radius: 4px;
}

.skeleton-text-sm {
  height: 10px;
  margin-bottom: 6px;
  border-radius: 3px;
}

.skeleton-title {
  height: 20px;
  width: 60%;
  margin-bottom: 12px;
  border-radius: 4px;
}

.skeleton-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
}

.skeleton-button {
  width: 120px;
  height: 36px;
  border-radius: 6px;
}

.skeleton-card {
  height: 100px;
  border-radius: 8px;
}

.skeleton-chart {
  height: 250px;
  border-radius: 8px;
}

.skeleton-map {
  height: 400px;
  border-radius: 8px;
}

/* Skeleton Row for Tables */
.skeleton-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}

.skeleton-row .skeleton-cell {
  height: 14px;
  border-radius: 4px;
  flex: 1;
}

/* Skeleton for Stats Cards */
.skeleton-stat-card {
  padding: 24px;
  border-radius: 8px;
  background: var(--bg-white);
  box-shadow: var(--shadow-sm);
}

.skeleton-stat-card .skeleton-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  margin-bottom: 16px;
}

.skeleton-stat-card .skeleton-value {
  height: 28px;
  width: 50%;
  margin-bottom: 8px;
  border-radius: 4px;
}

.skeleton-stat-card .skeleton-label {
  height: 12px;
  width: 70%;
  border-radius: 3px;
}

/* Skeleton List Item */
.skeleton-list-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}

.skeleton-list-item .skeleton-content {
  flex: 1;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  .skeleton {
    animation: none;
    opacity: 0.7;
  }
}
