/* 4class – estilos compartilhados */
/* Tokens de design: toda cor, tamanho de letra, espaço, raio e sombra nova deve vir daqui. */
:root {
  /* Cores */
  --azul: #2f6fed; --azul-escuro: #2459c7; --azul-claro: #e8eefc; --fundo: #f4f6f8; --texto: #1f2a37; --cinza: #5f6b7a;
  --borda: #cfd6de; --linha: #e5e9ee; --verde: #1a7f37; --verde-bg: #e6f4ea; --vermelho: #b3261e;
  --vermelho-bg: #fdecea; --amarelo: #8a5a00; --amarelo-bg: #fff4d6; --topo: #1f2a37; --topo-hover: #324153;
  /* Tipografia (base de 16px; nada abaixo de 14px) */
  --fonte: system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-p: .875rem;   /* 14px: ajuda, etiquetas, cabeçalho de tabela */
  --fs-m: 1rem;      /* 16px: texto, campos, botões */
  --fs-g: 1.25rem;   /* 20px: título de cartão */
  --fs-xg: 1.5rem;   /* 24px: título da página */
  /* Espaçamentos (escala de 4/8px) */
  --e1: 4px; --e2: 8px; --e3: 12px; --e4: 16px; --e5: 24px; --e6: 32px; --e7: 48px;
  /* Raios e sombras */
  --raio-p: 6px; --raio: 8px; --raio-g: 12px; --raio-total: 999px;
  --sombra: 0 2px 12px rgba(0,0,0,.06); --sombra-destaque: 0 2px 16px rgba(47,111,237,.18);
  /* Alvo mínimo de toque */
  --toque: 44px;
  /* Menu */
  --menu-largura: 248px; --topo-altura: 56px;
  /* Ícones (Phosphor duotone, icon() em helpers.php): o traço usa a cor do texto; o fundo usa estes dois */
  --ico-fundo: var(--azul); --ico-op: .22;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { font-family: var(--fonte); font-size: var(--fs-m); background: var(--fundo); color: var(--texto); margin: 0; line-height: 1.45; }
a { color: var(--azul); }
h1, h2, h3 { line-height: 1.2; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--azul); outline-offset: 2px; }
/* Ícones: sempre ao lado de um texto (nunca sozinhos para dizer o estado) */
.ico { width: 1.25em; height: 1.25em; flex: none; fill: currentColor; vertical-align: -0.25em; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ico.g { width: 2em; height: 2em; vertical-align: middle; }
.ico.ok { color: var(--verde); --ico-fundo: var(--verde); }
.ico.alerta { color: var(--amarelo); --ico-fundo: #e0a100; --ico-op: .35; }
.ico.erro { color: var(--vermelho); --ico-fundo: var(--vermelho); }
h1 > .ico, h2 > .ico, h3 > .ico { color: var(--azul); margin-right: .15em; }
.btn .ico { --ico-fundo: currentColor; --ico-op: .3; }
.btn.sec .ico { color: var(--azul-escuro); --ico-fundo: var(--azul); --ico-op: .22; }
.msg > .ico:first-child { margin-right: .3em; }
@media (forced-colors: active) { .ico, .btn.sec .ico { --ico-fundo: currentColor; --ico-op: .25; color: currentColor; } }

/* Topo e menu da área logada
   Celular e tablet: barra de 56px com o botão "Menu", que abre a lista de páginas.
   Computador (1024px ou mais): menu lateral fixo. */
.pular { position: absolute; left: -10000px; }
.pular:focus { left: var(--e2); top: var(--e2); z-index: 100; background: #fff; padding: var(--e2) var(--e3); border-radius: var(--raio); }
.topo { background: var(--topo); color: #fff; padding: 0 var(--e4); height: var(--topo-altura); display: flex; justify-content: space-between; align-items: center; gap: var(--e3); position: sticky; top: 0; z-index: 20; }
.topo .marca { color: #fff; font-weight: 700; font-size: var(--fs-g); text-decoration: none; min-height: var(--toque); display: flex; align-items: center; }
/* Logotipo (assets/marca/, gerado por tools/marca/gerar_marca.py). Altura fixa; a largura acompanha a proporção. */
.topo .marca img { height: 36px; width: auto; display: block; }
.marca-acesso { margin: 0 0 var(--e3); line-height: 0; }
.marca-acesso img { height: 60px; width: auto; max-width: 100%; }
.menu-botao { background: transparent; color: #fff; border: 1px solid #6b7785; border-radius: var(--raio); min-height: var(--toque); padding: 0 var(--e4); font: 600 var(--fs-m) var(--fonte); cursor: pointer; }
.menu-botao:hover { background: var(--topo-hover); }
.lateral { display: none; background: var(--topo); padding: var(--e2) var(--e3) var(--e4); position: sticky; top: var(--topo-altura); z-index: 19; max-height: calc(100vh - var(--topo-altura)); overflow-y: auto; box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.lateral.aberto { display: block; }
.menu-grupo { display: grid; gap: 2px; }
.menu-grupo + .menu-grupo { margin-top: var(--e3); padding-top: var(--e3); border-top: 1px solid #3a4758; }
.menu-titulo { color: #aab5c3; font-size: var(--fs-p); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: var(--e1) var(--e3); }
.lateral a { color: #e3e8ef; text-decoration: none; min-height: var(--toque); padding: 0 var(--e3); border-radius: var(--raio); display: flex; align-items: center; gap: var(--e3); }
.lateral a:hover { background: var(--topo-hover); color: #fff; }
.lateral a.ativo { background: var(--azul); color: #fff; font-weight: 600; }
.lateral .icone { width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; }
.lateral .icone .ico { width: 24px; height: 24px; --ico-fundo: #9dbbff; --ico-op: .35; }
.lateral a.ativo .icone .ico { --ico-fundo: #fff; --ico-op: .35; }
.lateral a:focus-visible, .menu-botao:focus-visible { outline-color: #9dbbff; }
.menu-usuario { margin-top: var(--e3); padding: var(--e3) 0 0 var(--e3); border-top: 1px solid #3a4758; display: flex; justify-content: space-between; align-items: center; gap: var(--e3); color: #fff; }
.menu-usuario form { margin: 0; }
.menu-usuario .btn.sec { background: transparent; color: #fff; border-color: #6b7785; }
.menu-usuario .btn.sec:hover { background: var(--topo-hover); }
@media (min-width: 1024px) {
  body.area-logada { padding-left: var(--menu-largura); }
  .area-logada .topo { position: fixed; left: 0; top: 0; width: var(--menu-largura); }
  .menu-botao { display: none; }
  .lateral, .lateral.aberto { display: flex; flex-direction: column; position: fixed; left: 0; top: var(--topo-altura); bottom: 0; width: var(--menu-largura); max-height: none; box-shadow: none; }
  .menu-usuario { margin-top: auto; }
}

main { max-width: 1200px; margin: var(--e5) auto; padding: 0 var(--e4); }
main.estreito { max-width: 760px; }

/* Cartões */
.card { background: #fff; border-radius: 12px; padding: 24px; box-shadow: 0 2px 12px rgba(0,0,0,.06); margin-bottom: 16px; }
.card > h2:first-child, .card > h3:first-child { margin-top: 0; }
.cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.cabecalho h1 { margin: 0; font-size: 1.5rem; }

/* Página de login/cadastro */
.pagina-acesso { display: flex; justify-content: center; align-items: flex-start; padding: 56px 16px; }
.pagina-acesso .card { max-width: 420px; width: 100%; padding: 32px; }
.pagina-acesso h1 { margin: 0 0 4px; font-size: 1.5rem; }
.sub { margin: 0 0 20px; color: var(--cinza); }
.links-acesso { margin-top: 18px; text-align: center; font-size: .95rem; display: grid; gap: 6px; }

/* Formulários */
label { display: block; font-weight: 600; font-size: .9rem; margin: 14px 0 6px; }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number],
input[type=date], input[type=datetime-local], input[type=url], input[type=search], select, textarea {
  width: 100%; min-height: var(--toque); padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--raio); font-size: var(--fs-m); font-family: inherit; background: #fff;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--azul); border-color: var(--azul); }
.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
.check input { margin-top: 3px; }
.ajuda { font-size: var(--fs-p); color: var(--cinza); margin-top: 4px; }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 16px; }
.isca { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--e2); min-height: var(--toque); line-height: 1.2; padding: 10px 18px; border: 0; border-radius: 8px; background: var(--azul); color: #fff; font-size: 1rem; font-weight: 600; cursor: pointer; text-decoration: none; font-family: inherit; }
.btn:hover { background: var(--azul-escuro); }
.btn.bloco { width: 100%; margin-top: 22px; padding: 12px; }
.btn.sec { background: #fff; color: var(--texto); border: 1px solid var(--borda); }
.btn.sec:hover { background: #f0f3f6; }
.btn.perigo { background: var(--vermelho); }
.btn.perigo:hover { background: #8f1f18; }
.btn.peq { padding: 6px 14px; font-size: var(--fs-p); }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.acoes form { margin: 0; }

/* Mensagens */
.msg { border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; }
.msg.erro { background: var(--vermelho-bg); color: var(--vermelho); }
.msg.ok { background: var(--verde-bg); color: var(--verde); }
.msg.aviso { background: var(--amarelo-bg); color: var(--amarelo); }
.msg.info { background: #e8eefc; color: var(--azul-escuro); }
.faixa { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.faixa form { margin: 0; }

/* Etiquetas */
.tag { display: inline-block; font-size: var(--fs-p); font-weight: 700; padding: 3px 10px; border-radius: 999px; background: #e8eefc; color: var(--azul-escuro); white-space: nowrap; }
.tag.verde { background: var(--verde-bg); color: var(--verde); }
.tag.vermelho { background: var(--vermelho-bg); color: var(--vermelho); }
.tag.amarelo { background: var(--amarelo-bg); color: var(--amarelo); }
.tag.cinza { background: #eceff3; color: var(--cinza); }
.tag.laranja { background: #fdeee0; color: #a4520d; }

/* Tabelas */
.tabela-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th, td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--linha); vertical-align: top; }
th { color: var(--cinza); font-weight: 600; font-size: var(--fs-p); white-space: nowrap; }
tr:hover td { background: #fafbfc; }
.num { text-align: right; }
/* No celular, as tabelas (marcadas "responsiva" pelo layout) viram cartões empilhados:
   cada linha é um bloco e cada célula mostra o nome da coluna à esquerda. */
@media (max-width: 767px) {
  table.responsiva, table.responsiva tbody, table.responsiva tr, table.responsiva td { display: block; width: 100%; }
  table.responsiva thead { position: absolute; left: -10000px; }
  table.responsiva tr { border: 1px solid var(--linha); border-radius: var(--raio-g); padding: var(--e2) var(--e3); margin-bottom: var(--e3); background: #fff; }
  table.responsiva tr:hover td { background: transparent; }
  table.responsiva td { border: 0; padding: var(--e1) 0; text-align: left; display: grid; grid-template-columns: 35% minmax(0, 1fr); gap: var(--e3); align-items: baseline; overflow-wrap: anywhere; }
  table.responsiva td::before { content: attr(data-label); color: var(--cinza); font-size: var(--fs-p); font-weight: 600; }
  /* Campo editável: rótulo em cima, campo com a largura toda */
  table.responsiva td:has(input, select, textarea) { grid-template-columns: 1fr; gap: var(--e1); }
  table.responsiva td:not([data-label]) { display: block; }
  table.responsiva td:not([data-label])::before { display: none; }
  table.responsiva td .btn { width: 100%; }
  table.responsiva td.acoes { display: flex; flex-wrap: wrap; gap: var(--e2); }
  table.responsiva td.acoes form { flex: 1 1 120px; }
  .tabela-wrap { overflow-x: visible; }
}
.vazio { color: var(--cinza); text-align: center; padding: 24px; }

dl.dados { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 12px 0 0; }
dl.dados dt { color: var(--cinza); }
dl.dados dd { margin: 0; }

/* Filtros e paginação */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 14px; }
.filtros > * { flex: 1 1 160px; }
.filtros .btn { flex: 0 0 auto; }
.paginacao { display: flex; gap: 6px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.paginacao a, .paginacao span { padding: 6px 12px; border-radius: 6px; border: 1px solid var(--borda); text-decoration: none; color: var(--texto); background: #fff; }
.paginacao span.atual { background: var(--azul); color: #fff; border-color: var(--azul); }

/* Barra de uso */
.barra { background: #eceff3; border-radius: 999px; height: 8px; overflow: hidden; margin-top: 6px; }
.barra > div { background: var(--azul); height: 100%; }
.barra.cheia > div { background: var(--vermelho); }

pre.codigo { background: #0f1720; color: #d6dde6; padding: 12px; border-radius: 8px; overflow: auto; font-size: .85rem; max-height: 360px; }

.rodape { text-align: center; color: var(--cinza); font-size: .85rem; padding: 24px 16px 40px; }
.rodape a { color: var(--cinza); }

@media (max-width: 640px) {
  .topo { padding: 12px 16px; }
  .card { padding: 18px; }
  dl.dados { grid-template-columns: 1fr; gap: 2px; }
  dl.dados dd { margin-bottom: 8px; }
}

/* Banco de questões */
a.questao-item { display: block; color: inherit; text-decoration: none; padding: 16px 20px; margin-bottom: 10px; }
a.questao-item:hover { box-shadow: 0 2px 16px rgba(47,111,237,.18); }
.questao-meta { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; margin-bottom: 8px; }
.questao-resumo { margin: 0; color: var(--cinza); }
.questao-texto { overflow-wrap: anywhere; }
.questao-texto img { max-width: 100%; height: auto; display: block; margin: 10px 0; }
.questao-texto table { width: auto; margin: 10px 0; }
.questao-texto p:first-child { margin-top: 0; }
.questao-comando { font-weight: 600; margin-top: 12px; }
.alternativas { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 8px; }
.alternativas li { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; }
.alternativas li.mostrar { border-color: var(--verde); background: var(--verde-bg); }
.alternativas .letra { flex: 0 0 28px; height: 28px; border-radius: 50%; background: #e8eefc; color: var(--azul-escuro); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.alternativas .questao-texto p { margin: 2px 0; }
details.gabarito { margin-top: 8px; }
details.gabarito summary, details.card summary { cursor: pointer; color: var(--azul); font-weight: 600; }
.alt-form { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; }
.alt-form .check { margin: 10px 0 0; flex: 0 0 48px; }
.alt-form textarea { flex: 1; }

/* Cabeçalho e rodapé da prova (prévia na tela e impressão) */
.folha-previa { border: 1px solid var(--linha); border-radius: 8px; padding: 18px 22px; background: #fff; color: #000; }
.prova-cabecalho { border: 1.5px solid #000; border-radius: 6px; padding: 10px 12px; font-size: 13px; color: #000; }
.pc-topo { display: flex; align-items: center; gap: 12px; }
.pc-logo { max-height: 56px; max-width: 120px; object-fit: contain; }
.pc-titulos { flex: 1; text-align: center; }
.pc-escola { font-weight: 700; font-size: 15px; text-transform: uppercase; }
.pc-titulo { font-size: 14px; margin-top: 2px; }
.pc-versao { border: 1.5px solid #000; border-radius: 6px; padding: 4px 10px; text-align: center; font-size: 11px; }
.pc-versao strong { font-size: 20px; }
.pc-campos { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; border-top: 1px solid #000; padding-top: 8px; }
.pc-campo { flex: 1 1 120px; border-bottom: 1px solid #000; min-height: 20px; white-space: nowrap; overflow: hidden; }
.pc-campo.largo { flex: 3 1 280px; }
.pc-campo b { font-weight: 600; }
.pc-instrucoes { margin-top: 8px; font-size: 12px; }
.pc-instrucoes ul, .pc-instrucoes p { margin: 2px 0; padding-left: 18px; }
.pc-instrucoes p { padding-left: 0; }
.prova-rodape { border-top: 1px solid #000; margin-top: 16px; padding-top: 4px; font-size: 11px; text-align: center; color: #000; }

/* Primeiros passos */
.passos { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.passos li { display: flex; gap: 12px; align-items: center; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 14px; }
.passos .n { flex: 0 0 28px; height: 28px; border-radius: 50%; background: #e8eefc; color: var(--azul-escuro); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.passos li.feito .n { background: var(--verde-bg); color: var(--verde); }
.passos li.feito span.t { text-decoration: line-through; color: var(--cinza); }
.passos span.t { flex: 1; }

/* Montador de prova */
.prova-item { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
.prova-item.indisponivel { border-color: var(--vermelho); background: var(--vermelho-bg); }
.prova-item > .letra { flex: 0 0 28px; height: 28px; border-radius: 50%; background: #e8eefc; color: var(--azul-escuro); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.prova-item-texto { flex: 1; min-width: 0; }
.prova-item-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.prova-item-acoes input { padding: 6px 8px; }
.questao-item.com-acao { display: flex; gap: 12px; align-items: center; }
.questao-item.com-acao .questao-link { flex: 1; color: inherit; text-decoration: none; min-width: 0; }
.questao-add { flex: 0 0 auto; }
.questao-add form { margin: 0; }
.prova-item-acoes .rotulo-pontos { display: flex; align-items: center; gap: var(--e2); margin: 0; font-size: var(--fs-p); }
@media (max-width: 640px) {
  /* No celular, pontos e botões descem para baixo do texto, que fica com a largura toda. */
  .prova-item { flex-wrap: wrap; }
  .prova-item-texto { flex: 1 1 calc(100% - 40px); }
  .prova-item-acoes { flex: 1 1 100%; justify-content: space-between; padding-top: var(--e2); border-top: 1px solid var(--linha); }
  .questao-item.com-acao { flex-direction: column; align-items: stretch; }
}

/* Correção por foto */
.cartao-folha .cf-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.cartao-folha.cf-erro { border: 1px solid var(--vermelho); }
.cf-miniatura { max-width: 220px; display: block; margin: 10px 0; }
.cf-corpo { display: grid; grid-template-columns: minmax(200px, 340px) 1fr; gap: 18px; margin-top: 12px; }
.cf-foto canvas { width: 100%; height: auto; border: 1px solid var(--linha); border-radius: 6px; }
.cf-aluno { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.cf-aluno select { width: auto; max-width: 100%; }
.cf-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px; }
.cf-q { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; border: 1px solid var(--linha); border-radius: 8px; padding: 4px 8px; }
.cf-q select { width: auto; padding: 4px 6px; }
.cf-q .cf-n { font-weight: 700; min-width: 22px; }
.cf-q.cf-duvida { border-color: #d97706; background: var(--amarelo-bg); }
/* Acerto e erro nunca só pela cor: símbolo + palavra, fundo e tipo de borda diferentes. */
.cf-q.cf-certa { border-color: var(--verde); background: var(--verde-bg); }
.cf-q.cf-errada { border-color: var(--vermelho); background: var(--vermelho-bg); }
.cf-q.cf-certa select { border: 2px solid var(--verde); }
.cf-q.cf-errada select { border: 2px dashed var(--vermelho); }
.cf-q.cf-certa::after, .cf-q.cf-errada::after { font-size: var(--fs-p); font-weight: 700; margin-left: auto; }
.cf-q.cf-certa::after { content: "✓ Certa"; color: var(--verde); }
.cf-q.cf-errada::after { content: "✗ Errada"; color: var(--vermelho); }
.cf-nota { margin-top: 12px; font-size: 1.1rem; }
.cf-feita { color: var(--verde); font-weight: 600; }
@media (max-width: 700px) { .cf-corpo { grid-template-columns: 1fr; } }

/* Cabeçalho/rodapé feitos no editor (prévia, impressão e o próprio editor) */
.prova-cabecalho.rico { position: relative; }
.pc-rico, .prova-rodape.rico { overflow: hidden; }
.pc-rico p, .prova-rodape.rico p, .pc-rico h1, .pc-rico h2, .pc-rico h3 { margin: 0; }
.pc-rico img, .prova-rodape.rico img, .editor-prova img { max-width: 100%; height: auto; }
.pc-rico .ql-align-center, .prova-rodape.rico .ql-align-center { text-align: center; }
.pc-rico .ql-align-right, .prova-rodape.rico .ql-align-right { text-align: right; }
.pc-rico .ql-align-justify, .prova-rodape.rico .ql-align-justify { text-align: justify; }
.pc-rico .ql-size-small, .prova-rodape.rico .ql-size-small { font-size: .75em; }
.pc-rico .ql-size-large, .prova-rodape.rico .ql-size-large { font-size: 1.5em; }
.pc-rico .ql-size-huge { font-size: 2.2em; }
.pc-rico .ql-float-left, .prova-rodape.rico .ql-float-left, .editor-prova .ql-float-left { float: left; margin: 0 12px 4px 0; }
.pc-rico .ql-float-right, .prova-rodape.rico .ql-float-right, .editor-prova .ql-float-right { float: right; margin: 0 0 4px 12px; }
.pc-rico ol, .pc-rico ul { margin: 2px 0; padding-left: 20px; }
.pc-rico li[data-list="bullet"] { list-style-type: disc; }
.pc-rico .ql-ui { display: none; }
.pc-lacuna { display: inline-block; border-bottom: 1px solid #000; width: 30mm; height: 1em; vertical-align: -2px; }
.pc-lacuna-aluno { width: 95mm; } .pc-lacuna-numero { width: 12mm; } .pc-lacuna-nota { width: 20mm; }
.pc-valor { font-weight: 600; }
.pc-versao-canto { position: absolute; top: 8px; right: 10px; background: #fff; z-index: 1; }
.editor-barra { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.editor-prova { background: #fff; color: #000; font-family: Arial, Helvetica, sans-serif; }
.editor-prova .ql-editor { min-height: 150px; font-size: 13px; line-height: 1.4; }
.editor-prova .ql-editor::after { content: ""; display: block; clear: both; }
.editor-prova.editor-rodape .ql-editor { min-height: 60px; }
.editor-prova .ql-editor img { cursor: pointer; }

/* Prova online */
.online-link { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.online-qr { width: 120px; height: 120px; flex: 0 0 120px; }
.online-qr svg { width: 100%; height: 100%; }
.simulado { padding-bottom: 40px; }
.simulado h1 { font-size: 1.4rem; }
.simulado-alts { display: grid; gap: 8px; margin-top: 12px; }
.simulado-alt { display: flex; gap: 10px; align-items: flex-start; border: 1.5px solid var(--linha); border-radius: 10px; padding: 12px; cursor: pointer; font-weight: 400; margin: 0; }
.simulado-alt input { margin-top: 5px; transform: scale(1.3); }
.simulado-alt:has(input:checked) { border-color: var(--azul); background: #eef3fe; }
.simulado-alt .letra { flex: 0 0 26px; height: 26px; border-radius: 50%; background: #e8eefc; color: var(--azul-escuro); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.simulado-alt .questao-texto p { margin: 2px 0; }
.simulado-relogio { position: sticky; top: 0; z-index: 5; background: var(--topo); color: #fff; text-align: center; font-size: 1.2rem; font-weight: 700; padding: 8px; border-radius: 0 0 10px 10px; margin-bottom: 12px; }
.simulado-relogio.pouco { background: var(--vermelho); }
.simulado-enviar { position: sticky; bottom: 0; }
.codigos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.codigo-cartao { border: 1px dashed #777; padding: 10px 12px; position: relative; break-inside: avoid; }
.cc-nome { font-weight: 700; margin-bottom: 4px; }
.cc-linha { font-size: 10pt; } .cc-linha span { color: #555; }
.cc-codigo { font-size: 20pt; font-weight: 700; letter-spacing: 5px; text-align: center; margin-top: 6px; font-family: "Courier New", monospace; }
.codigo-cartao form { position: absolute; top: 6px; right: 6px; margin: 0; }
.cc-dica { font-size: 8pt; color: #333; text-align: center; margin-top: 4px; line-height: 1.25; }

/* Prova online: códigos dos alunos para consultar na hora (o código só aparece depois do toque) */
.codigos-turma { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e2); }
.codigos-turma li { border: 1px solid var(--linha); border-radius: var(--raio); padding: var(--e2) var(--e3); }
.codigos-turma details summary { display: flex; align-items: center; justify-content: space-between; gap: var(--e3); cursor: pointer;
  min-height: var(--toque); list-style: none; }
.codigos-turma details summary::-webkit-details-marker { display: none; }
.codigos-turma .ver { color: var(--azul-escuro); font-weight: 600; white-space: nowrap; }
.codigos-turma .ver-fechar, .codigos-turma details[open] .ver-abrir { display: none; }
.codigos-turma details[open] .ver-fechar { display: inline; }
.codigo-grande { font-family: "Courier New", monospace; font-size: 2.4rem; font-weight: 700; letter-spacing: 8px; text-align: center;
  padding: var(--e3) 0 var(--e1); }
@media (max-width: 640px) { .codigos { grid-template-columns: 1fr 1fr; } }

/* Gabarito comentado (prova online) */
.gab-comentario { margin: 10px 0; }
.gab-comentario .questao-texto p { margin: 2px 0; }

/* Gerador com IA: andamento das etapas */
.etapas-ia { padding-left: 22px; }
.etapas-ia li { margin: 6px 0; color: var(--cinza); }
.etapas-ia li.atual { color: inherit; font-weight: 700; }
.etapas-ia li.atual::after { content: " ⏳"; }
.etapas-ia li.feito { color: var(--verde); }
.etapas-ia li.feito::after { content: " ✓"; }

/* Início (painel): ação principal, provas recentes e ferramentas */
.acao-principal { display: flex; justify-content: space-between; align-items: center; gap: var(--e4); flex-wrap: wrap; }
.acao-principal h2 { margin: 0 0 var(--e1); }
.acao-principal p { margin: 0; color: var(--cinza); }
.acao-principal form { margin: 0; }
.lista-provas { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e2); }
.lista-provas li { display: flex; justify-content: space-between; align-items: center; gap: var(--e3); flex-wrap: wrap; border: 1px solid var(--linha); border-radius: var(--raio); padding: var(--e3) var(--e4); }
.lista-provas .lp-info { flex: 1 1 200px; min-width: 0; }
.lista-provas .lp-info a { font-weight: 700; }
.ferramentas { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--e3); }
.ferramenta { border: 1px solid var(--linha); border-radius: var(--raio); padding: var(--e4); display: flex; flex-direction: column; gap: var(--e2); }
.ferramenta p { margin: 0; color: var(--cinza); font-size: var(--fs-p); }
.ferramenta .btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 640px) {
  .acao-principal .btn, .acao-principal form, .lista-provas .btn { width: 100%; }
}

/* Nova questão por foto: prévia, recorte da figura e campos preenchidos pela IA */
.foto-questao h2 { font-size: var(--fs-g); margin: 0 0 var(--e2); }
.foto-questao label.btn { margin: 0; font-weight: 600; }
.recorte { position: relative; max-width: 480px; margin: var(--e3) 0; touch-action: none; user-select: none; }
.recorte canvas { display: block; width: 100%; height: auto; border: 1px solid var(--linha); border-radius: var(--raio-p); }
.recorte-caixa { position: absolute; border: 3px dashed var(--azul); background: rgba(47,111,237,.12); box-shadow: 0 0 0 9999px rgba(0,0,0,.35); cursor: move; }
.recorte-alca { position: absolute; right: -14px; bottom: -14px; width: 28px; height: 28px; border-radius: 50%; background: var(--azul); border: 3px solid #fff; cursor: nwse-resize; }
.recorte { overflow: hidden; }
.preenchido-ia { background: var(--amarelo-bg) !important; border-color: #d97706 !important; }
.figura-mini { display: block; max-width: 220px; max-height: 160px; margin-top: var(--e2); border: 1px solid var(--linha); border-radius: var(--raio-p); }
@media (max-width: 640px) { .foto-questao .acoes > .btn, .foto-questao .acoes > label.btn { flex: 1 1 100%; } }

/* Prompts para Provas (prompts.php + assets/prompts.js) */
.lista-categorias { list-style: none; margin: 0 0 var(--e3); padding: 0; display: grid; gap: var(--e2); grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.lista-categorias li { border: 1px solid var(--linha); border-radius: var(--raio); padding: var(--e3) var(--e4); display: flex; justify-content: space-between; gap: var(--e2); }
.gp-escolha { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--e4); align-items: start; }
.gp-menu, .gp-modelos { min-width: 0; }
.gp-menu-titulo { font-size: var(--fs-m); margin: 0 0 var(--e2); }
.gp-cats { display: flex; flex-wrap: wrap; gap: var(--e2); }
.gp-cat { min-height: var(--toque); padding: 0 var(--e4); border-radius: var(--raio-total); border: 1px solid var(--borda); background: #fff;
  color: var(--texto); cursor: pointer; font: 600 var(--fs-p) var(--fonte); display: inline-flex; align-items: center; gap: var(--e2); }
.gp-cat .gp-cat-n { color: var(--cinza); font-weight: 400; }
.gp-cat[aria-pressed="true"] { background: var(--azul); border-color: var(--azul); color: #fff; }
.gp-cat[aria-pressed="true"] .gp-cat-n { color: #fff; }
.gp-cat[aria-pressed="true"]::before { content: "✓"; }
.gp-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e3); grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.gp-modelo { width: 100%; height: 100%; text-align: left; display: flex; flex-direction: column; gap: var(--e1); padding: var(--e4);
  border: 1px solid var(--linha); border-radius: var(--raio-g); background: #fff; color: inherit; cursor: pointer; font: inherit; }
.gp-modelo:hover { border-color: var(--azul); box-shadow: var(--sombra-destaque); }
.gp-modelo .tag { align-self: flex-start; margin-top: var(--e1); }
.gp-modelo-cat { font-size: var(--fs-p); color: var(--azul-escuro); font-weight: 700; }
.gp-trabalho { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 var(--e4); align-items: start; }
.gp-video { margin-bottom: var(--e2); }
.gp-grade2 { display: grid; grid-template-columns: 1fr; gap: 0 var(--e4); }
@media (min-width: 560px) { .gp-grade2 { grid-template-columns: 1fr 1fr; } }
.gp-campo-erro { border: 2px solid var(--vermelho) !important; }
.gp-erro { color: var(--vermelho); font-size: var(--fs-p); font-weight: 600; margin-top: var(--e1); }
.gp-privacidade { margin: var(--e2) 0 0; font-size: var(--fs-p); }
.gp-grande { width: 100%; min-height: 52px; font-size: 1.05rem; }
.gp-abrir-ia { display: flex; flex-wrap: wrap; gap: var(--e2); margin-top: var(--e3); }
.gp-abrir-ia .btn { flex: 1 1 140px; }
#gp-status .msg { margin: var(--e3) 0 0; font-weight: 600; }
#gp-previa { min-height: 320px; font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: .9rem; background: #f8fafc; }
.gp-num { display: inline-flex; width: 28px; height: 28px; border-radius: 50%; background: var(--azul); color: #fff; font-size: var(--fs-p);
  align-items: center; justify-content: center; vertical-align: 2px; }
.gp-barra { display: none; }
@media (min-width: 1024px) {
  .gp-escolha { grid-template-columns: 260px minmax(0, 1fr); }
  .gp-menu { position: sticky; top: var(--e4); }
  .gp-cats { flex-direction: column; flex-wrap: nowrap; }
  .gp-cat { border-radius: var(--raio); width: 100%; text-align: left; }
  .gp-cat > span:first-child { flex: 1; }
  .gp-trabalho { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .gp-previa-card { position: sticky; top: var(--e4); }
}
@media (max-width: 1023px) {
  /* Celular: categorias numa linha que desliza para o lado (não empurra os modelos para baixo) */
  .gp-menu { padding: var(--e3) 0 var(--e3) var(--e4); }
  .gp-cats { flex-wrap: nowrap; overflow-x: auto; padding: 2px var(--e4) var(--e2) 2px; scroll-snap-type: x proximity;
    -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); }
  .gp-cat { flex: 0 0 auto; scroll-snap-align: start; }
  .gp-barra:not([hidden]) { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: var(--e2) var(--e3);
    background: rgba(255,255,255,.96); box-shadow: 0 -2px 12px rgba(0,0,0,.12); }
  .gp.com-barra { padding-bottom: 80px; }
}

/* Prova online: proteções (código da sala, um aparelho) e alertas */
.protecoes { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e4); align-items: center; margin: var(--e2) 0; }
.codigo-sala { font-family: "Courier New", monospace; font-size: 1.6rem; letter-spacing: 6px; background: var(--azul-claro);
  color: var(--azul-escuro); padding: 2px var(--e3); border-radius: var(--raio); }
.alertas-online ul { margin: var(--e1) 0 0; padding-left: 20px; }
details.respondendo { margin-top: var(--e3); }
details.respondendo summary { cursor: pointer; color: var(--azul-escuro); font-weight: 600; min-height: var(--toque); display: flex; align-items: center; }
.protecoes-form { border: 1px solid var(--linha); border-radius: var(--raio); padding: var(--e2) var(--e4) var(--e3); margin: var(--e4) 0 0; }
.protecoes-form legend { font-weight: 700; padding: 0 var(--e1); }
.protecoes-form .check { margin: var(--e3) 0 0; }
.protecoes-form .check input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 2px; }

/* Gráficos dos painéis da rede (includes/charts.php). Paleta da skill dataviz, validada:
   série única = --viz-1; sequencial (mapa de calor) = um tom de azul em 5 passos; ordinal (faixas) = 4 passos de azul. */
.viz { --viz-1: #2a78d6; --viz-trilho: #eef0ee; --viz-grade: #e1e0d9; --viz-eixo: #52514e;
  --viz-seq-0: #cde2fb; --viz-seq-1: #9ec5f4; --viz-seq-2: #6da7ec; --viz-seq-3: #256abf; --viz-seq-4: #104281;
  --viz-ord-0: #86b6ef; --viz-ord-1: #5598e7; --viz-ord-2: #256abf; --viz-ord-3: #184f95; }
.viz-hbars { display: grid; gap: 6px; }
.viz-hbar { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: var(--e3); align-items: center; min-height: 32px; border-radius: var(--raio-p); padding: 2px 4px; }
.viz-hbar:hover, .viz-hbar:focus-visible { background: #f4f6f8; }
.viz-hbar-rot { font-weight: 700; font-variant-numeric: tabular-nums; }
.viz-hbar-trilho { height: 14px; background: var(--viz-trilho); border-radius: 0 4px 4px 0; overflow: hidden; }
.viz-hbar-barra { display: block; height: 100%; background: var(--viz-1); border-radius: 0 4px 4px 0; }
.viz-hbar-valor { font-variant-numeric: tabular-nums; white-space: nowrap; min-width: 48px; }
.viz-alerta { font-size: var(--fs-p); font-weight: 700; color: var(--vermelho); }
.viz-cols { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: var(--e3); align-items: end; }
.viz-col { display: grid; grid-template-rows: auto 140px auto; gap: 4px; text-align: center; border-radius: var(--raio-p); padding: 4px; }
.viz-col:hover, .viz-col:focus-visible { background: #f4f6f8; }
.viz-col-valor { font-weight: 700; font-variant-numeric: tabular-nums; }
.viz-col-area { display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid #c3c2b7; }
.viz-col-barra { display: block; width: min(64px, 70%); border-radius: 4px 4px 0 0; }
.viz-ord-0 { background: var(--viz-ord-0); } .viz-ord-1 { background: var(--viz-ord-1); }
.viz-ord-2 { background: var(--viz-ord-2); } .viz-ord-3 { background: var(--viz-ord-3); }
.viz-col-rot { font-size: var(--fs-p); color: var(--cinza); }
.viz-line { width: 100%; height: auto; max-width: 720px; display: block; }
.viz-line .viz-grade { stroke: var(--viz-grade); stroke-width: 1; }
.viz-line .viz-eixo { fill: var(--viz-eixo); font-size: 13px; }
.viz-line .viz-linha { fill: none; stroke: var(--viz-1); stroke-width: 2; }
.viz-line .viz-marca { fill: var(--viz-1); stroke: #fff; stroke-width: 2; }
.viz-line .viz-alvo { fill: transparent; }
.viz-line .viz-ponto:hover .viz-marca, .viz-line .viz-ponto:focus .viz-marca { r: 7; }
.viz-line .viz-rotulo-direto { fill: #0b0b0b; font-size: 14px; font-weight: 700; }
/* Mapa de calor: tabela (é a própria "tabela de dados"); cada célula tem o número escrito */
table.viz-calor { border-collapse: separate; border-spacing: 2px; }
table.viz-calor td.calor { text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; border-radius: 4px; min-width: 44px; padding: 8px 4px; }
/* Cada tom define fundo e texto (contraste AA); no celular só o valor fica colorido (ver abaixo) */
.viz-seq-0 { --calor-bg: #cde2fb; --calor-fg: #0b0b0b; } .viz-seq-1 { --calor-bg: #9ec5f4; --calor-fg: #0b0b0b; }
.viz-seq-2 { --calor-bg: #6da7ec; --calor-fg: #0b0b0b; } .viz-seq-3 { --calor-bg: #256abf; --calor-fg: #fff; }
.viz-seq-4 { --calor-bg: #104281; --calor-fg: #fff; }
.viz-sem { --calor-bg: #f0efec; --calor-fg: #52514e; }
.viz-seq-0, .viz-seq-1, .viz-seq-2, .viz-seq-3, .viz-seq-4, .viz-sem { background: var(--calor-bg); color: var(--calor-fg); }
@media (max-width: 767px) {
  /* Mapa de calor em cartões: o nome do descritor fica na cor do texto; só o valor recebe a cor da escala */
  table.responsiva td.calor { background: none; color: inherit; font-weight: 600; }
  table.responsiva td.calor .celula { background: var(--calor-bg); color: var(--calor-fg); border-radius: 4px; padding: 6px; text-align: center; font-weight: 700; }
}
.viz-legenda { display: flex; flex-wrap: wrap; gap: var(--e2) var(--e3); align-items: center; font-size: var(--fs-p); color: var(--cinza); margin-top: var(--e2); }
.viz-legenda-item { display: inline-flex; align-items: center; gap: 4px; }
.viz-amostra { display: inline-block; width: 16px; height: 16px; border-radius: 4px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--e3); margin-bottom: var(--e4); }
.kpis .card { margin: 0; }
.kpi-valor { font-size: 1.8rem; font-weight: 700; line-height: 1.1; display: block; margin: 4px 0; }
.filtros-painel { display: flex; flex-wrap: wrap; gap: var(--e3); align-items: flex-end; margin-bottom: var(--e4); }
.filtros-painel > div { flex: 1 1 220px; }
.filtros-painel label { margin-top: 0; }
@media (max-width: 640px) {
  .viz-hbar { grid-template-columns: 40px minmax(0, 1fr); }
  .viz-hbar-valor { grid-column: 2; }
  .viz-col { grid-template-rows: auto 110px auto; }
  table.viz-calor td.calor { min-width: 40px; }
}

/* Cards de estudo impressos (cards-imprimir.php) e no celular (estudar.php) */
.cards-parte { break-inside: avoid-page; margin-bottom: 8mm; }
.cards-dono { font-size: 13pt; margin: 0 0 3mm; border-bottom: 1px solid #000; padding-bottom: 1mm; }
.cards-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm; }
.card-estudo { border: 1px dashed #666; border-radius: 3mm; padding: 4mm; break-inside: avoid; font-size: 10.5pt; color: #000; background: #fff; }
.ce-topo { display: grid; gap: 1mm; margin-bottom: 2mm; }
.ce-hab { font-size: 8.5pt; color: #444; }
.ce-titulo { font-size: 12pt; }
.ce-texto, .ce-exemplo, .ce-treino { margin: 0 0 2mm; }
.ce-perguntas { margin: 0 0 2mm; padding-left: 5mm; }
.ce-respostas { margin: 2mm 0 0; font-size: 8.5pt; color: #444; border-top: 1px dotted #999; padding-top: 1.5mm; }
@media (max-width: 640px) { .cards-grade { grid-template-columns: 1fr; } }
/* Celular (estudar.php) */
.estudo-card { border-left: 4px solid var(--azul); }
.estudo-card .ce-hab { font-size: var(--fs-p); color: var(--cinza); }
.estudo-card h2 { font-size: var(--fs-g); margin: var(--e1) 0 var(--e3); }
.estudo-card details { margin-top: var(--e3); }
.estudo-card details summary { cursor: pointer; color: var(--azul-escuro); font-weight: 600; min-height: var(--toque); display: flex; align-items: center; }
.estudo-resposta { background: var(--verde-bg); color: var(--verde); border-radius: var(--raio); padding: var(--e2) var(--e3); margin-top: var(--e2); }
.estudo-estado { display: flex; gap: var(--e2); flex-wrap: wrap; margin-top: var(--e4); }
.estudo-estado .btn { flex: 1 1 140px; }
.estudo-estado .btn[aria-pressed="true"]::before { content: "✓ "; }
.estudo-card > .acoes { margin-top: 0; }
.estudo-resumo .barra { height: 12px; }
.estudo-fila { margin: 0 0 var(--e2); }
/* Modo Treinar: um passo por vez (o JS esconde e mostra) */
.treino .treino-passo { border-top: 1px solid #e3e7ee; margin-top: var(--e4); padding-top: var(--e3); }
.treino-pergunta { font-size: var(--fs-g); font-weight: 600; margin: var(--e1) 0 var(--e3); }
.treino .treino-js, .treino .treino-fim { margin-top: var(--e3); }
.treino-placar { font-weight: 600; background: #e8eefc; color: var(--azul-escuro); border-radius: var(--raio); padding: var(--e2) var(--e3); }
.estudo-pronto h2 { margin-top: 0; }

/* Importação de alunos (importar-alunos.php, escola-turmas.php) */
.import-passos { list-style: none; margin: 0 0 var(--e4); padding: 0; display: flex; gap: var(--e2); flex-wrap: wrap; }
.import-passos li { display: flex; align-items: center; gap: var(--e2); color: var(--cinza); font-size: var(--fs-p); }
.import-passos li + li::before { content: ""; width: 24px; border-top: 2px solid var(--linha); }
.import-passos .n { width: 28px; height: 28px; border-radius: 50%; background: #eceff3; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.import-passos li.atual { color: var(--texto); font-weight: 700; }
.import-passos li.atual .n { background: var(--azul); color: #fff; }
.import-passos li.feito .n { background: var(--verde-bg); color: var(--verde); }
@media (max-width: 480px) { .import-passos li + li::before { display: none; } }
.import-arquivo { padding: var(--e4); border: 2px dashed var(--borda); border-radius: var(--raio); background: #fafbfc; min-height: 64px; cursor: pointer; }
.import-arquivo:hover, .import-arquivo:focus { border-color: var(--azul); }
.import-mapa { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0 var(--e5); }
.import-mapa .obrig { font-weight: 400; color: var(--cinza); font-size: var(--fs-p); }
.import-resumo { list-style: none; padding: 0; margin: 0 0 var(--e4); display: grid; gap: var(--e2); }
.import-resumo li { display: flex; gap: var(--e2); align-items: baseline; }
.import-resumo .ico { color: var(--azul); }
.import-hist { margin: 0; padding-left: 20px; display: grid; gap: var(--e2); }
.resumo-detalhe { cursor: pointer; font-weight: 600; min-height: var(--toque); display: flex; align-items: center; color: var(--azul-escuro); }
.usar-turma { display: flex; gap: var(--e2); flex-wrap: wrap; align-items: center; margin: 0; }
.usar-turma select { width: auto; min-width: 200px; flex: 1 1 200px; }

/* Páginas de texto legal (termos.php, privacidade.php) */
.doc-topo { background: #fff; border-bottom: 1px solid var(--linha); padding: var(--e3) var(--e4); }
.doc-topo img { height: 40px; width: auto; display: block; margin: 0 auto; }
.doc-legal { line-height: 1.6; }
.doc-legal h1 { font-size: var(--fs-xg); margin-bottom: var(--e1); }
.doc-legal h2 { font-size: var(--fs-g); margin: var(--e6) 0 var(--e3); scroll-margin-top: var(--e4); }
.doc-legal .card h2:first-child { margin-top: 0; }
.doc-legal ul { padding-left: 22px; }
.doc-legal li { margin-bottom: var(--e2); }
.doc-resumo { border-left: 4px solid var(--azul); }
.doc-sumario ol { margin: 0; padding-left: 26px; }
.doc-sumario li { margin-bottom: 0; }
.doc-sumario a { display: inline-block; padding: 10px 0; min-height: var(--toque); }
.doc-contato { list-style: none; padding-left: 0 !important; }
.a-preencher { background: #ffe58a; color: #5c4400; padding: 0 4px; border-radius: 4px; font-weight: 600; }

