/* ============================================================
   DinnerBySixRecipes.ca — Loading, Error & Empty State Styles
   Linked from all pages.
   ============================================================ */

/* ----------------------------------------------------------
   Loading skeleton shimmer
   ---------------------------------------------------------- */
.loading-skeleton {
  background: linear-gradient(90deg, #f0e6d3 25%, #fdf6ec 50%, #f0e6d3 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
  border-radius: 8px;
  min-height: 260px;
  pointer-events: none;
}

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

/* ----------------------------------------------------------
   API error state
   ---------------------------------------------------------- */
.api-error {
  text-align: center;
  padding: 3rem 2rem;
  color: #8B4513;
  background: #FDF6EC;
  border: 2px dashed #D4845A;
  border-radius: 12px;
  margin: 2rem 0;
}

.api-error h3 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
}

.api-error p {
  margin: 0 0 1rem;
  color: #6B4226;
}

.api-error a {
  color: #C1440E;
  font-weight: 600;
}

/* ----------------------------------------------------------
   No data / empty state inline message
   ---------------------------------------------------------- */
.no-data {
  color: #999;
  font-style: italic;
  padding: 1rem 0;
  margin: 0;
}

/* ----------------------------------------------------------
   Search loading indicator (inline in results list)
   ---------------------------------------------------------- */
.search-loading {
  padding: 2rem;
  color: #999;
  font-style: italic;
  text-align: center;
}
