/* Loading skeletons (анимированные плейсхолдеры) */
.skel {
  display: inline-block;
  background: linear-gradient(90deg, #1f2937 0%, #374151 50%, #1f2937 100%);
  background-size: 200% 100%;
  border-radius: 6px;
  animation: skelShine 1.4s ease-in-out infinite;
  height: 14px;
  vertical-align: middle;
}
@keyframes skelShine {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Светлая версия для card-фона */
.card .skel,
.op-panel .skel,
.menu-modal .skel {
  background: linear-gradient(90deg, #e5e7eb 0%, #f3f4f6 50%, #e5e7eb 100%);
  background-size: 200% 100%;
}

.skel-line { display: block; height: 14px; margin: 6px 0; }
.skel-line-sm { height: 10px; }
.skel-line-lg { height: 22px; }
.skel-w-25 { width: 25%; }
.skel-w-40 { width: 40%; }
.skel-w-50 { width: 50%; }
.skel-w-70 { width: 70%; }
.skel-w-100 { width: 100%; }

.skel-row {
  display: flex; gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.skel-cell { flex: 1; }
.skel-circle { width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; }

.skel-table {
  display: flex; flex-direction: column;
}

/* Helper для inline-замены «Загрузка…» */
.is-loading > .skel-when-loading { display: inline-block; }
.is-loading > .normal-when-loaded { display: none; }
