/* Higiene global (T067). Solo reset + tipografia + utilidades de layout; el resto vive
   en el CSS aislado (.razor.css) de cada componente D365, todo consumiendo tokens.css. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
}

body {
  font-family: var(--m365-font-family);
  font-size: var(--m365-fs-body);
  color: var(--m365-text-primary);
  background: var(--m365-surface-page);
  -webkit-font-smoothing: antialiased;
  /* Sin canalon derecho vacio ni scroll horizontal espurio en maximizado (shell-anatomy.md) */
  overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

/* Sentence case por omision en todo el shell; solo .d365-caps (tokens.css) usa MAYUSCULAS */
button,
input,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

a {
  color: var(--m365-text-link);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
}

/* Foco visible, consistente en todo el shell */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--m365-stroke-focus);
  outline-offset: 1px;
}

/* FIDELIDAD (auditoria 2026-07-27, verificado en vivo): <FocusOnNavigate Selector="h1"> enfoca el
   titulo en CADA navegacion, y la regla de arriba le pintaba un rectangulo de foco permanente
   alrededor del H1 — lo primero que ve el usuario, y algo que NINGUNA pantalla real de F&O muestra.
   Se retira el anillo SOLO del destino programatico de navegacion (tabindex="-1", que por
   definicion no es alcanzable con Tab): el foco de accesibilidad se conserva intacto, incluido el
   anuncio del titulo por el lector de pantalla. */
h1[tabindex="-1"]:focus,
h1[tabindex="-1"]:focus-visible {
  outline: none;
}

/* Contenido ancho (rejillas, panel de acciones) hace scroll DENTRO de su contenedor,
   el body de la pagina nunca hace scroll horizontal (shell-anatomy.md / gate-3 P3). */
.d365-scroll-x {
  overflow-x: auto;
  overflow-y: hidden;
}

.d365-scroll-x::-webkit-scrollbar {
  height: 8px;
}

.d365-scroll-x::-webkit-scrollbar-thumb {
  background: var(--m365-stroke-control);
  border-radius: var(--m365-radius-sm);
}

#blazor-error-ui {
  background: var(--m365-status-error-bg);
  color: var(--m365-status-error-fg);
  bottom: 0;
  box-shadow: var(--m365-shadow-card);
  display: none;
  left: 0;
  padding: var(--m365-space-3) var(--m365-space-5);
  position: fixed;
  width: 100%;
  z-index: var(--m365-z-dialog);
}

#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: var(--m365-space-4);
  top: var(--m365-space-2);
}
