/* Resets mínimos e defaults de documento. */
* { box-sizing: border-box }
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility }
body {
  margin: 0;
  font-family: var(--av-font-body);
  font-size: var(--av-body-md-size);
  font-weight: var(--av-body-md-weight);
  line-height: var(--av-body-md-lh);
  color: var(--text-body);
  background: var(--surface-page-data);
  text-wrap: pretty;
}
h1, h2, h3, h4, h5 { font-family: var(--av-font-display); color: var(--text-title); margin: 0 }
p { margin: 0 }
a { color: var(--text-link); text-decoration: underline; text-underline-offset: 2px }
a:hover { color: var(--av-link-pressed) }
a:active { color: var(--av-link-pressed) }
button, input, select, textarea { font: inherit }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px }
::selection { background: var(--av-tint-teal); color: var(--av-ink-deep) }

/* Único keyframe do sistema: giro do indicador de carregamento. Provisório,
   aguardando homologação. Sem bounce, sem spring, sem escala. */
@keyframes av-spin { to { transform: rotate(360deg) } }
@media (prefers-reduced-motion: reduce) { [data-av-spinner] { animation: none } }
