/* Generic, reusable loading-skeleton building blocks — not page-specific, so any page can drop
   these classes onto placeholder markup while its initial data fetch is in flight. */

.skeleton-box {
  position: relative;
  overflow: hidden;
  background-color: #e9ecef;
  border-radius: 6px;
}

.skeleton-box::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  animation: skeleton-pulse 1.4s ease-in-out infinite;
}

@keyframes skeleton-pulse {
  100% {
    transform: translateX(100%);
  }
}

.skeleton-line {
  height: 0.9rem;
  margin: 0.4rem 0;
}

.skeleton-line-title {
  width: 60%;
  height: 1.1rem;
}

.skeleton-line-short {
  width: 40%;
}

.skeleton-card {
  cursor: default;
}
