/* GERADO por ds/scripts/build.mjs a partir de src/app/globals.css, do commit a7ae40a.
   Não edite aqui: edite a fonte e rode o script de novo. */
/* O reset da casa, o foco visível e as duas animações de entrada. Depende de tokens.css. */

/* Tokens do CRM da Encore Data — handoff "Disparador Home v3" (20/09/2026), estendido em
   21/09/2026 com o espectro de cor.
   Uma única fonte de valor: nenhum componente inventa cor, raio ou altura fora daqui. */



*, *::before, *::after { box-sizing: border-box; }

html, body { padding: 0; margin: 0; }
/* A âncora rola, em vez de saltar (24/09/2026). ⚠️ O `data-scroll-behavior="smooth"` no `<html>`
   (`layout.tsx`) é o que faz o Next 16 desligar o suave na TROCA DE ROTA: sem ele, toda navegação a
   partir de uma página rolada animava a subida inteira. */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
  font-family: var(--font-sans);
  font-size: var(--text-body);
  color: var(--text-primary);
  background: var(--bg-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, p, figure { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
/* ⛔ 21/09/2026: faltava o `padding: 0` aqui, e o Chrome põe `1px 6px` em todo `<button>` por
   padrão. O interruptor de 40 px ficava com 28 px de caixa de conteúdo e o trilho, que tem 40,
   era CORTADO em 6 px de cada lado — a bola lime aparecia encostada numa borda reta. O remendo
   da época foi `overflow: hidden` no botão, que escondeu o sintoma e deixou o corte. Todo botão
   da casa declara o próprio respiro; quem não declara não quer nenhum. */
button { background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
table { border-collapse: collapse; width: 100%; }

/* Foco visível em tudo que recebe clique ou tecla — não estava no mock, e é lei da casa. */
:focus-visible {
  outline: 2px solid var(--surface-dark);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ⛔ 21/09/2026 (Alex): *"Sobre a tinta, o anel de foco é LIME."* O `outline` da casa é
   `--surface-dark`, e sobre o card escuro ele desaparece: quem navega por teclado ficava sem
   saber onde estava. A regra vale para QUALQUER superfície escura da casa, e é por isso que ela
   mora aqui e não dentro de um componente: card escuro, card de oportunidade escuro, o bloco em
   tinta do card de resumo e o painel do compositor são quatro lugares diferentes com o mesmo
   problema. `[data-superficie="escura"]` é o gancho para os que nascerem depois. */
[class*="cardEscuro"] :focus-visible,
[class*="cardEscuro"]:focus-visible,
[class*="oportunidadeEscura"]:focus-visible,
[class*="resumoBloco"] :focus-visible,
[data-superficie="escura"] :focus-visible,
[data-superficie="escura"]:focus-visible {
  outline-color: var(--accent);
}

::selection { background: var(--accent); color: var(--text-on-accent); }

/* A entrada da página: uma vez, na montagem, e nunca de novo — troca de estado não reanima a
   tela. O escalonamento é de 40 ms e para no sexto bloco, para a página não "cair" por partes. */
@keyframes sobe {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
@keyframes abreGaveta {
  from { opacity: 0; transform: translateY(-6px) scale(.985); }
  to { opacity: 1; transform: none; }
}

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