/* Bootstrap visual para páginas protegidas: preserva o espaço e evita flash de conteúdo. */
html.prm-shell-loading body,
body.prm-auth-loading {
  background: #f8fafc;
}

html.prm-shell-loading body > :not(#prmBootstrapShell):not(script),
body.prm-auth-loading > :not(#prmBootstrapShell):not(script) {
  visibility: hidden;
}

#prmBootstrapShell {
  display: none;
}

html.prm-shell-loading body #prmBootstrapShell,
body.prm-auth-loading #prmBootstrapShell {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: stretch;
  background: #f8fafc;
  color: #334155;
  pointer-events: none;
}

.prm-bootstrap-sidebar {
  width: 260px;
  flex: 0 0 260px;
  border-right: 1px solid #e2e8f0;
  background: #fff;
  padding: 1.5rem;
}

.prm-bootstrap-brand,
.prm-bootstrap-line {
  border-radius: 0.35rem;
  background: linear-gradient(90deg, #e2e8f0 25%, #f8fafc 50%, #e2e8f0 75%);
  background-size: 200% 100%;
  animation: prm-bootstrap-shimmer 1.4s ease-in-out infinite;
}

.prm-bootstrap-brand {
  width: 150px;
  height: 40px;
  margin-bottom: 2.5rem;
}

.prm-bootstrap-line {
  width: 100%;
  height: 12px;
  margin: 1rem 0;
}

.prm-bootstrap-line.short {
  width: 68%;
}

.prm-bootstrap-content {
  flex: 1;
  padding: clamp(1rem, 2vw, 2rem);
}

.prm-bootstrap-content .prm-bootstrap-line {
  max-width: 420px;
  height: 22px;
  margin-top: 0;
}

@keyframes prm-bootstrap-shimmer {
  to { background-position: -200% 0; }
}

@media (max-width: 991.98px) {
  .prm-bootstrap-sidebar { width: 72px; flex-basis: 72px; padding: 1rem; }
  .prm-bootstrap-brand { width: 40px; }
  .prm-bootstrap-sidebar .prm-bootstrap-line { width: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .prm-bootstrap-brand,
  .prm-bootstrap-line { animation: none; }
}
