/* ==========================================================================
   BASE — reset e normalizacao
   Escrita, nao herdada. O tema anterior dependia do main.min.css do
   GeneratePress, que mudava o estilo calculado de 275 dos 294 elementos da
   pagina -- box-sizing e normalizacao de formulario inclusos. Tema autonomo
   precisa entregar isso por conta propria, de proposito, com o que usa e nada
   mais.
   ========================================================================== */

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

html{ -webkit-text-size-adjust:100%; text-size-adjust:100% }

body{
  margin:0;
  background:var(--uc-paper);
  color:var(--uc-ink);
  font-family:var(--uc-sans);
  font-size:var(--uc-s-0);
  font-weight:var(--uc-w-ler);
  line-height:var(--uc-lh-normal);
  -webkit-font-smoothing:antialiased;
  /* Nome de instituicao e slug longos (ex.: "Instituto de Desenvolvimento
     Educacional Cultural e Assistencial Nacional") estouram container em
     celular sem isto. overflow-wrap so quebra quando nao ha outro jeito --
     word-break:break-all quebraria palavra curta tambem, o que nao foi
     pedido. */
  overflow-wrap:break-word;
}

h1,h2,h3,h4,h5,h6{
  margin:0;
  font-family:var(--uc-display);
  font-weight:var(--uc-w-anunciar);
  line-height:var(--uc-lh-apertado);
  letter-spacing:var(--uc-tr-display);
  text-wrap:balance;
  color:var(--uc-ink);
}
h1{ font-size:var(--uc-s-3) }
h2{ font-size:var(--uc-s-2) }
h3{ font-size:var(--uc-s-1) }
h4,h5,h6{ font-size:var(--uc-s-0) }

/* ul,ol mantem o padding-left de ~40px do navegador DE PROPOSITO -- decisao
   de hoje: lista de conteudo dentro de enunciado de questao precisa do
   recuo. O componente de lista customizada (alternativa A-E) e' quem zera
   isso, deliberadamente, quando a Fase 2b construir sobre esta base -- o
   que nao pode e' ficar mudo sobre a escolha. */
p,ul,ol,dl,figure,blockquote,pre{ margin:0 }

/* Medida de leitura: 50-75 caracteres, regra do craft/typography.md.
   So no texto corrido -- nao em lista de controle nem em grade.
   Descendente, nao filho direto (era `.uc-prosa > p`): enunciado de prova
   vem de HTML importado, quase sempre com <div> entre o container e o
   paragrafo -- filho direto falharia em silencio, e ninguem perceberia.
   Decisao de hoje: errar por aplicar demais e' visivel e se conserta; errar
   por nao aplicar e' invisivel e sobrevive. */
.uc-prosa p{ max-width:var(--uc-medida) }

/* text-underline-offset vinha com `2px` cravado aqui. Nao era descuido: era
   uma propriedade que NENHUMA regra olhava -- a R3 tem lista fechada de
   propriedades e esta nao estava nela. A Regra 10 (04/09/2026) passou a
   olhar, e o conserto foi o previsto pelo sistema: batizar no :root, nao
   isentar a propriedade. Ver --uc-sublinhado-recuo em 00-tokens.css. */
a{ color:var(--uc-acao); text-underline-offset:var(--uc-sublinhado-recuo) }

img,svg,video{ max-width:100%; height:auto }

/* iframe: SO a trava de largura (anuncio embutido tem largura fixa que
   estoura o container em celular sem ela). NUNCA `height:auto` aqui: iframe
   nao tem proporcao propria, entao `height:auto` vira 150px (a altura
   padrao do navegador) e passa por cima do atributo `height`. O GPT da
   programatica escreve o tamanho do criativo SO no atributo
   (`width="300" height="250"`) -- com `height:auto` o anuncio saia
   cortado em 150px (06/10/2026). O AdSense direto nunca sofreu porque
   escreve a altura em `style`, que vence a folha. */
iframe{ max-width:100% }

/* Formulario: o navegador NAO herda fonte em controle. Sem estas quatro
   linhas, todo input e botao volta para a fonte do sistema -- era isto que o
   main.min.css do GeneratePress vinha entregando. */
button,input,select,textarea{
  font:inherit;
  color:inherit;
  margin:0;
}
button{ background:none; border:0; padding:0; cursor:pointer }
/* Sem isto, todo botao desabilitado que a Fase 2b construir sobre esta base
   mostra cursor de clique sem ser clicavel. */
button:disabled{ cursor:default }

/* fieldset herda min-width:auto do navegador -- estoura layout quando vive
   dentro de flex/grid (filtro de busca por banca/ano e' candidato natural a
   agrupar controles assim). border/margin/padding tambem zerados: fieldset
   nativo vem com moldura e respiro que ninguem pediu. */
fieldset{ min-width:0; border:0; margin:0; padding:0 }
legend{ padding:0 }

/* [type=search] mantem aparencia nativa do WebKit (cantos redondos, X de
   cancelar) mesmo depois do font:inherit acima -- aquilo normaliza
   TIPOGRAFIA, nao aparencia. Este site tem busca no topo. */
[type="search"]{ appearance:none; -webkit-appearance:none }
::-webkit-search-decoration{ -webkit-appearance:none }

/* Foco visivel em TUDO que recebe foco. `:focus-visible` sozinho nao pega
   clique de mouse; o tema anterior pagou esse preco em 5+ componentes com o
   `button:hover{color:#fff}` do GeneratePress. Aqui nao ha tema pai para
   brigar -- mas a regra fica explicita para nao ser redescoberta.
   Largura e recuo vem de --uc-foco-largura/--uc-foco-offset (00-tokens.css):
   sem token nomeado aqui, a Regra 3 do lint (que passou a governar
   outline-width/outline-offset) acusa "2px fora da grade de 4px" -- e os
   doze componentes da fase seguinte que desenham anel (cartao com anel
   interno, chip acompanhando o proprio raio) reinventariam cada um o seu
   valor sem esse par nomeado. */
:focus-visible{
  outline:var(--uc-foco-largura) solid var(--uc-foco);
  outline-offset:var(--uc-foco-offset);
}

/* Texto so' para leitor de tela.
   NOME DA CLASSE, e por que ele nao tem prefixo .uc-: e' a classe que o
   PROPRIO WordPress emite (formulario de busca, paginacao, lista de
   comentarios), e ja' esta em classes_externas do inventario. Definir um
   segundo nome nosso criaria dois vocabularios para a mesma coisa e deixaria
   o texto do WordPress sem estilo. Uma definicao, os dois usos.
   MEDIDO em 04/09/2026: a unica definicao presente numa pagina do tema novo
   vinha do bloco inline `wp-block-library-inline-css` do nucleo (2
   ocorrencias em cada uma das tres paginas medidas), e nao havia nenhuma
   regra em assets/css. Tema autonomo entrega o proprio primitivo -- se o
   bloco do nucleo sair um dia, todo texto de leitor de tela apareceria na
   tela, e ninguem que enxerga notaria a diferenca ate ver a captura.
   Receita moderna (clip-path), sem o `margin:-1px` da receita antiga de
   `clip:rect()`: aquele -1px nao faz nada aqui e sairia fora da grade de
   4px. A regra `:focus` que revela o link de pular continua vindo do nucleo
   e e' assunto do chrome (tarefa G), nao deste reset. */
.screen-reader-text{
  position:absolute;
  /* 1px batizado em --uc-oculto-ponto (00-tokens.css). Era literal aqui, e a
     familia width, height, min-* e max-* nao passava por regra nenhuma ate a
     Regra 11 (05/09/2026). Mesmo conserto que a Regra 10 obrigou no
     text-underline-offset: vira token, nao vira excecao. */
  width:var(--uc-oculto-ponto);
  height:var(--uc-oculto-ponto);
  padding:0;
  margin:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

/* [hidden] perde para qualquer classe com display. A correcao e' global: o
   mesmo defeito apareceu tres vezes no tema anterior por ser escopado. */
[hidden]{ display:none !important }

table{ border-collapse:collapse; width:100% }
/* th nativo vem bold+centralizado e com padding inconsistente contra td.
   Medido em 04/09/2026: o acervo publicado tem 0 questoes com <table>/<th>
   hoje -- a regra existe para que conteudo que ganhe essas tags depois nao
   quebre em silencio, nao porque o acervo as use agora. */
th,td{ padding:var(--sp-2) var(--sp-3); text-align:left; vertical-align:top }
th{ font-weight:var(--uc-w-realce) }

/* sub/sup nativos nao zeram line-height -- paragrafo com expoente ou indice
   ganha altura de linha irregular quando isso aparecer. Medido em
   04/09/2026: o acervo publicado tem 0 questoes com <sub>/<sup> hoje -- a
   regra existe para o dia em que questao de exatas/quimica trouxer essas
   tags, nao porque o acervo as use agora.
   font-size usa var(--uc-s-rel-indice) (--uc-s-rel-indice:.75em, RELATIVO
   de proposito -- ver 00-tokens.css): sub/sup sao INLINE e herdam o
   contexto (corpo, titulo). Um token ABSOLUTO aqui (--uc-s--1) foi tentado
   antes e regrediu -- media 13,1px tanto dentro de <p> (17px) quanto de
   <h1> (42px), um terco do tamanho do titulo ao redor, porque nao escalava
   com ele. --uc-s-rel-indice ainda casa o prefixo var(--uc-s-*) que a
   Regra 2 do lint exige. */
sub,sup{ font-size:var(--uc-s-rel-indice); line-height:0; position:relative; vertical-align:baseline }
sup{ top:-.5em }
sub{ bottom:-.25em }

/* --uc-mono nunca era consumido -- code/kbd/pre/samp caiam na monoespacada
   generica do navegador, fora do sistema de tokens. Medido em 04/09/2026: o
   acervo publicado tem 0 questoes com <code>/<pre> hoje -- o extrator
   produz texto puro em <p>, a questao de PHP da capa e' texto, nao <code>.
   A regra existe para o dia em que isso mudar, nao porque more' hoje.
   font-size usa var(--uc-s-rel-mono) (--uc-s-rel-mono:.92em, RELATIVO de
   proposito -- ver 00-tokens.css), pelo mesmo motivo do sub/sup acima:
   elemento inline precisa herdar o contexto, e --uc-s--1 (absoluto) usado
   aqui antes regredia do mesmo jeito. */
code,kbd,pre,samp{ font-family:var(--uc-mono); font-size:var(--uc-s-rel-mono) }

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