*, *::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: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-tap-highlight-color: transparent;
}
body.sem-rolagem { overflow: hidden; }
h1, h2, h3 { margin: 0; line-height: 1.25; }
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: 28px; color: var(--primary-color); }
