/* Reset + base. Carrega depois de tokens.css: só regras de elemento,
   nenhuma disputa de cascata com as custom properties. */
/* ===== Reset ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
button { font: inherit; color: inherit; background: none; border: none; }
input, select { font: inherit; color: inherit; }
fieldset { border: 0; min-width: 0; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
/* .btn/.row declaram display, o que vence a regra [hidden] do UA stylesheet. */
[hidden] { display: none !important; }
/* ===== Base ===== */
html, body { height: 100%; }
body {
  background: var(--background);
  color: var(--foreground);
  font-family: var(--font-sans);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  /* A página nunca rola — nem no eixo x, nem no y. Quem rola é a coluna da esquerda. */
  overflow: hidden;
}
::selection { background: color-mix(in oklch, var(--primary) 22%, transparent); }

:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
