*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body, body * { -webkit-user-select: none; user-select: none; }
input:not([type="checkbox"]):not([type="radio"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="range"]),
textarea, [contenteditable="true"], [contenteditable=""] { -webkit-user-select: text; user-select: text; }
body {
  margin: 0; background: var(--background-color); color: var(--text-color);
  font: var(--fs-md)/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-tap-highlight-color: transparent;
}
body.sem-rolagem { overflow: hidden; }
h1, h2, h3, h4 { margin: 0; line-height: 1.25; }
/* tamanhos padrão de título: vale para qualquer tela (sem isso o navegador usa 24px/18px por conta própria) */
h1 { font-size: var(--fs-2xl); }
h2 { font-size: var(--fs-xl); }
h3 { font-size: var(--fs-lg); }
h4 { font-size: var(--fs-md); }
small { font-size: var(--fs-xs); }
p { margin: 0; }
a { color: var(--primary-color); }
:focus-visible { outline: 3px solid var(--primary-color); outline-offset: 2px; }
button { font: inherit; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* telas inteiras (carregando / login) */
.tela-centro { min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 24px; }
#carregando { font-size: var(--fs-3xl); color: var(--primary-color); }
