/* Adaptación local para Skeleton Elements 4.0.1.
   Reserva el espacio aproximado del contenido final para reducir CLS. */
.skeleton-shell { width: 100%; pointer-events: none; user-select: none; }
.skeleton-shell .skeleton-block { display: block; background-color: #e5e7eb; border-radius: .65rem; }
.skeleton-heading { width: min(28rem, 76%); height: 2rem; margin-bottom: .85rem; }
.skeleton-line { width: 100%; height: .85rem; margin-top: .55rem; }
.skeleton-line-short { width: 62%; }
.skeleton-line-medium { width: 82%; }
.skeleton-toolbar { height: 3.25rem; margin-top: 1.5rem; }
.skeleton-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.skeleton-kpi { height: 8.5rem; }
.skeleton-card { height: 15rem; margin-top: 2rem; }
.skeleton-row { height: 4.5rem; margin-top: .75rem; }
.skeleton-table-head { height: 3.5rem; margin-top: 1.25rem; }
.skeleton-table-row { height: 3rem; margin-top: .5rem; }
.skeleton-page { min-height: 42rem; }
.skeleton-page .skeleton-card:first-of-type { margin-top: 1.5rem; }
@media (max-width: 767px) {
  .skeleton-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .skeleton-card { height: 12rem; }
}
@media (max-width: 479px) {
  .skeleton-grid { grid-template-columns: 1fr; }
  .skeleton-kpi { height: 6.5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .skeleton-shell .skeleton-effect-wave,
  .skeleton-shell .skeleton-effect-fade,
  .skeleton-shell .skeleton-effect-pulse { animation: none !important; }
}
@media print { .skeleton-shell { display: none !important; } }
