/* Pronto Flux — carregamento compacto e acessível dos módulos. */
.pf-module-loading{
  position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:11px;min-height:min(58vh,460px);padding:48px 24px;
  overflow:hidden;border:1px solid var(--border);border-radius:18px;
  background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--red) 8%,var(--panel)) 0%,var(--panel) 68%);
  color:var(--text);text-align:center
}
.pf-module-loading-ring{
  position:relative;display:grid;place-items:center;width:76px;height:76px;margin-bottom:8px;
  border-radius:50%;background:color-mix(in srgb,var(--red) 11%,var(--panel2));
  box-shadow:0 0 0 8px color-mix(in srgb,var(--red) 3%,transparent)
}
.pf-module-loading-ring::before{
  content:"";position:absolute;inset:-4px;border:3px solid transparent;border-top-color:var(--red);
  border-right-color:color-mix(in srgb,var(--red) 40%,transparent);border-radius:50%;
  animation:pf-module-spin 1.05s linear infinite
}
.pf-module-loading-mark{
  display:grid;place-items:center;width:47px;height:47px;border-radius:12px;
  background:var(--red);color:#fff;font-size:29px;font-weight:900;letter-spacing:-.08em;
  box-shadow:0 6px 20px color-mix(in srgb,var(--red) 23%,transparent)
}
.pf-module-loading strong{font-size:17px;font-weight:800;letter-spacing:-.02em}
.pf-module-loading p{margin:0;color:var(--muted);font-size:13px}
.pf-module-loading-track{
  width:min(220px,80%);height:4px;margin-top:16px;border-radius:10px;overflow:hidden;
  background:color-mix(in srgb,var(--red) 12%,var(--border))
}
.pf-module-loading-track span{
  display:block;width:36%;height:100%;border-radius:inherit;background:var(--red);
  box-shadow:0 0 12px color-mix(in srgb,var(--red) 45%,transparent);
  animation:pf-module-track 1.45s ease-in-out infinite
}
@keyframes pf-module-spin{to{transform:rotate(360deg)}}
@keyframes pf-module-track{0%{transform:translateX(-110%)}100%{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){
  .pf-module-loading-ring::before,.pf-module-loading-track span{animation:none}
  .pf-module-loading-ring::before{border-color:var(--red)}
  .pf-module-loading-track span{width:100%}
}
