/* ============================================================
   Skeleton shimmer + motion helpers
   ============================================================ */

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

.skel {
  background: linear-gradient(
    90deg,
    var(--skel-base) 0%,
    var(--skel-sheen) 45%,
    var(--skel-base) 90%
  );
  background-size: 200% 100%;
  animation: shimmer 1.25s linear infinite;
  border-radius: var(--r-sm);
}

.skel-line { height: 12px; margin: 6px 0; }
.skel-line.sm { height: 10px; width: 40%; }
.skel-line.md { height: 12px; width: 70%; }
.skel-line.lg { height: 14px; width: 90%; }
.skel-circle { width: 30px; height: 30px; border-radius: 50%; flex: none; }

.skel-kpi {
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--sp-5);
  min-height: 118px;
}
.skel-kpi .skel-line.lg { margin-top: 18px; height: 28px; width: 55%; }

.skel-row {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 13px 18px;
  border-bottom: 1px solid var(--border-soft);
}
.skel-row .skel-main { flex: 1; min-width: 0; }
.skel-alert .skel-bar {
  width: 3px;
  align-self: stretch;
  border-radius: 3px;
  background: var(--skel-base);
}

.skel-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 14px;
  display: flex;
  gap: 12px;
  min-height: 72px;
}
.skel-card .skel-circle { width: 32px; height: 32px; border-radius: 9px; }

.skel-table-row td { padding: 12px 18px; border-bottom: 1px solid var(--border-soft); }

.anim-init { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  .skel { animation: none; background: var(--skel-base); }
  .anim-init { opacity: 1; }
}
