/* Comportamentos comuns, sem alterar a identidade de cada página.
 * Campo de texto fica de fora do contorno de foco: ele casa com :focus-visible
 * até no clique, e cada página já desenha o próprio anel (o compositor do chat,
 * o prompt do Studio, os .inp do admin). */
:where(a, button, select, summary, [tabindex], input[type="checkbox"], input[type="radio"]):focus-visible { outline: 3px solid #2563eb !important; outline-offset: 3px; }
button:disabled { cursor: not-allowed; }
button[aria-busy="true"] { opacity: .65; cursor: wait; }
[role="status"], [role="alert"] { overflow-wrap: anywhere; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Firefox refaz o desfoque do fundo a cada quadro de rolagem e de animação; em
 * máquina fraca isso derruba o FPS e as animações somem. Lá o vidro vira fundo
 * sólido — as barras que dependiam do desfoque já pedem fundo mais opaco no
 * próprio @supports da página. */
@supports (-moz-appearance: none) {
  *, *::before, *::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
}
