/* ---------------------------------------------------------------- loader */
.loader {
  position: fixed; inset: 0; z-index: 60; display: grid; place-items: center;
  padding: 20px; background: rgba(23, 32, 42, .32);
}
.loader-card {
  display: grid; justify-items: center; gap: 16px; min-width: 230px;
  padding: 30px 42px; border: 2px solid #fb923c; border-radius: 12px;
  background: #fff7ed; color: #c2410c; font-size: 22px; font-weight: 700;
  box-shadow: 0 10px 32px rgba(194, 65, 12, .28);
  animation: loader-pulse 1s ease-in-out infinite;
}
.spinner {
  width: 82px; height: 82px; flex: 0 0 82px; border-radius: 50%;
  border: 8px solid #fed7aa; border-top-color: #f97316; border-right-color: #fb923c;
  animation: spin .75s linear infinite;
  will-change: transform;
}
@keyframes loader-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .62; } }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .loader-card, .spinner { animation: none; }
  .spinner { will-change: auto; }
}

.empty { color: var(--fg-dim); text-align: center; padding: 40px; }
