/* ── Skeleton loading ─────────────────────────────────────── */

@keyframes sk-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}

.sk-block {
  background: linear-gradient(
    90deg,
    var(--line, #ddd3c2) 25%,
    #ede7da               50%,
    var(--line, #ddd3c2) 75%
  );
  background-size: 800px 100%;
  animation: sk-shimmer 1.4s ease-in-out infinite;
  border-radius: 5px;
}

/* Heights / shapes */
.sk-row    { height: 16px; margin-bottom: 10px; }
.sk-row-lg { height: 22px; margin-bottom: 12px; }
.sk-card   { height: 76px; margin-bottom: 12px; border-radius: 12px; }
.sk-avatar { width: 40px;  height: 40px; border-radius: 50%; flex-shrink: 0; }
.sk-badge  { height: 22px; width: 72px;  border-radius: 20px; display: inline-block; }

/* Widths */
.sk-w-30  { width: 30%; }
.sk-w-40  { width: 40%; }
.sk-w-50  { width: 50%; }
.sk-w-60  { width: 60%; }
.sk-w-70  { width: 70%; }
.sk-w-80  { width: 80%; }
.sk-w-100 { width: 100%; }

/* ── Page-navigation overlay ──────────────────────────────── */

.sk-page-overlay {
  position: fixed;
  inset: 0;
  background: var(--paper, #fcfaf5);
  z-index: 9998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.12s ease;
  overflow-y: auto;
}

.sk-page-overlay.sk-visible {
  opacity: 1;
  pointer-events: all;
}

.sk-overlay-body {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px 20px;
}

.sk-layout {
  display: flex;
  gap: 20px;
  margin-top: 16px;
}

.sk-sidebar-mock {
  width: 200px;
  flex-shrink: 0;
}

.sk-main-mock {
  flex: 1;
  min-width: 0;
}

.sk-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
}

.sk-table-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 6px;
  border-radius: 10px;
  background: rgba(0, 0, 0, .025);
}

/* ── Inline skeleton (async fetch areas) ──────────────────── */

.sk-reveal {
  animation: sk-fadein 0.25s ease forwards;
}

@keyframes sk-fadein {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: none; }
}