.skeleton {
  background: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 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-card { height: 120px; margin-bottom: 16px; }
.skeleton-stat { height: 80px; width: 180px; }
.skeleton-text { height: 16px; margin-bottom: 8px; width: 80%; }
.skeleton-text-sm { height: 12px; margin-bottom: 6px; width: 60%; }

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

.skeleton-search-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.85);
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 16px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
html.dark .skeleton-search-overlay {
  background: rgba(15, 23, 42, 0.85);
}
.skeleton-search-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
.skeleton-search-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #e5e7eb;
  border-top-color: #6366f1;
  border-radius: 50%;
  animation: skeleton-spin 0.8s linear infinite;
}
@keyframes skeleton-spin {
  to { transform: rotate(360deg); }
}
