/* =============================================================================
   skeleton.css — Skeleton Loading States
   Traceability: PHASE1_DESIGN_PACK.md §3.3
   Prevents layout shift by matching real card grid dimensions exactly.
   ============================================================================= */

.skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

.skeleton-card {
  background: var(--white, #ffffff);
  border: 1px solid var(--line, #E5E7EB);
  border-radius: var(--radius, 8px);
  padding: 20px;
  min-height: 160px;
}

.skeleton-line {
  height: 14px;
  background: linear-gradient(90deg, #E5E7EB 25%, #F3F4F6 50%, #E5E7EB 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 4px;
  margin-bottom: 10px;
}

.skeleton-line.skeleton-title {
  width: 60%;
  height: 18px;
}

.skeleton-line.skeleton-text {
  width: 90%;
}

.skeleton-line.short {
  width: 40%;
}

.skeleton-line.medium {
  width: 70%;
}

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