/* Loaded before React: covers login, every role, native menus and modal portals. */
html body, html body * {
  -webkit-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
}
html body input, html body textarea, html body [contenteditable="true"],
html body [contenteditable="true"] *, html body [role="textbox"] {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default !important;
}
html body img, html body svg {
  -webkit-user-drag: none !important;
  user-drag: none !important;
}
html[data-ramacpol-private] body { visibility: hidden !important; }
html[data-ramacpol-private]::after {
  content: "RaMacPol · Contenido protegido";
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: grid;
  place-items: center;
  background: #003b78;
  color: white;
  font: 700 22px system-ui, sans-serif;
}
@media print {
  /* Hiding the body itself also removes portals and inline display styles. */
  html body { display: none !important; }
  html::after {
    content: "Contenido protegido de Academia RaMacPol. Impresión no permitida." !important;
    display: block !important;
    position: static !important;
    padding: 24px !important;
    color: #003b78 !important;
    background: white !important;
    font: 700 20px system-ui, sans-serif !important;
  }
}
