/* Indicador de carga LexLift: anillo + texto suave, y bloques "esqueleto" con brillo.
   Lo usan todos los módulos; lexlift-cargando.js convierte los "Cargando…" sueltos. */
.lx-cargando{ color:#6b7280; text-align:center; }
.lx-cargando-in{ display:inline-flex; align-items:center; gap:10px; animation:lxEntra .3s ease both; }
.lx-spin{ width:18px; height:18px; flex:none; border-radius:50%; background:conic-gradient(from 0deg, rgba(36,88,214,0) 0%, #2458d6 100%); -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); animation:lxGira .8s linear infinite; }
.lx-cargando-txt{ animation:lxLatido 1.6s ease-in-out infinite; }
div.lx-cargando,p.lx-cargando,li.lx-cargando,section.lx-cargando{ padding:18px 12px; }
td.lx-cargando,th.lx-cargando{ padding:14px 10px; }
@keyframes lxGira{ to{ transform:rotate(360deg); } }
@keyframes lxLatido{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes lxEntra{ from{ opacity:0; transform:translateY(3px); } to{ opacity:1; transform:none; } }

/* Esqueleto con brillo */
.lx-sk{ display:block; border-radius:8px; background:linear-gradient(100deg, #eceff4 30%, #f8f9fc 50%, #eceff4 70%); background-size:220% 100%; animation:lxBrillo 1.4s ease-in-out infinite; }
@keyframes lxBrillo{ from{ background-position:120% 0; } to{ background-position:-120% 0; } }
.lx-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion:reduce){
  .lx-spin{ animation-duration:2.4s; }
  .lx-cargando-txt,.lx-sk{ animation:none; }
  .lx-cargando-in{ animation:none; }
}
