/* =====================================================================
   CFC Barriga Verde — estilos
   Tokens: asfalto, faixa (amarelo de sinalização), verde CFC, vermelho placa
   ===================================================================== */
:root {
  --verde: #236B26;
  --verde-escuro: #174C1A;
  --verde-claro: #E8F2E8;
  --vermelho: #B83030;
  --vermelho-claro: #FBEAEA;
  --amarelo: #FFD21F;
  --amarelo-claro: #FFF6CC;
  --asfalto: #23272B;
  --tinta: #1B1F1B;
  --cinza: #5E665E;
  --cinza-claro: #8A918A;
  --linha: #DDE1DC;
  --fundo: #F5F6F2;
  --branco: #FFFFFF;
  --r-peq: 8px;
  --r: 12px;
  --r-grande: 16px;
  --sombra: 0 1px 2px rgba(27,31,27,.06), 0 6px 20px rgba(27,31,27,.06);
  --topo-h: 64px;
  --gutter: 16px;
  --largura: 1120px;
}
@media (min-width: 768px) { :root { --gutter: 28px; } }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo-h) + 72px); }
html, body { margin: 0; }
body {
  font-family: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: var(--tinta); background: var(--fundo);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { -webkit-tap-highlight-color: transparent; }
a { color: var(--verde); text-underline-offset: 3px; }
.oculto { display: none !important; }
:focus-visible { outline: 3px solid rgba(35,107,38,.35); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Títulos com a largura expandida do Archivo — lembra as letras de placa */
h1, h2, h3, .titulo { font-stretch: 112%; letter-spacing: -.01em; line-height: 1.15; }
h1 { font-size: clamp(24px, 4.2vw, 32px); font-weight: 800; margin: 4px 0 6px; }
h2 { font-size: clamp(19px, 2.6vw, 22px); font-weight: 750; margin: 0 0 12px; }
h3 { font-size: 18px; font-weight: 700; margin: 0; }
.sub { color: var(--cinza); margin: 0 0 22px; max-width: 62ch; }

/* ---------- topo ---------- */
.topo { background: var(--branco); position: sticky; top: 0; z-index: 30; padding-top: env(safe-area-inset-top); }
.topo::after { content: ""; display: block; height: 6px;
  background: repeating-linear-gradient(135deg, var(--amarelo) 0 12px, var(--asfalto) 12px 24px); }
.topo-in { max-width: var(--largura); margin: 0 auto; padding: 8px var(--gutter); display: flex; align-items: center; gap: 14px; min-height: 58px; }
.topo-in a.marca { display: flex; align-items: center; flex: none; }
.topo-in img.logo { height: 40px; width: auto; display: block; }
.topo .area { font-weight: 700; color: var(--verde); font-size: 15px; padding-left: 14px; border-left: 1px solid var(--linha); white-space: nowrap; }
.topo .usuario { margin-left: auto; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--cinza); min-width: 0; }
.topo .usuario b { color: var(--tinta); font-weight: 600; }
.topo .usuario .nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 30vw; }
@media (max-width: 640px) {
  .topo-in img.logo { height: 34px; }
  .topo .area { font-size: 13px; padding-left: 10px; }
  .topo .usuario .nome { display: none; }
}
@media (max-width: 380px) { .topo .area { display: none; } }

main { max-width: var(--largura); margin: 0 auto; padding: 24px var(--gutter) calc(64px + env(safe-area-inset-bottom)); }
@media (min-width: 768px) { main { padding-top: 36px; } }

/* ---------- botões / campos ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1.5px solid transparent;
  background: var(--verde); color: #fff; padding: 10px 18px; border-radius: 10px; font-weight: 650; cursor: pointer;
  text-decoration: none; min-height: 46px; line-height: 1.2; text-align: center; transition: background .15s, border-color .15s; }
.btn:hover { background: var(--verde-escuro); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn.sec { background: var(--branco); color: var(--tinta); border-color: var(--linha); }
.btn.sec:hover { border-color: #b9c2b9; background: #FAFBF9; }
.btn.perigo { background: var(--branco); color: var(--vermelho); border-color: #E8C3C3; }
.btn.perigo:hover { background: var(--vermelho-claro); }
.btn.peq { min-height: 38px; padding: 7px 14px; font-size: 14px; border-radius: 9px; }
.link { background: none; border: 0; color: var(--verde); cursor: pointer; padding: 6px 0; font-weight: 650; font-size: 15px; min-height: 36px; }
.link:hover { text-decoration: underline; }
label.campo { display: block; margin-bottom: 16px; }
label.campo span { display: block; font-size: 14px; font-weight: 650; margin-bottom: 6px; }
input[type=text], input[type=email], input[type=password], input[type=search], select {
  width: 100%; padding: 11px 13px; border: 1.5px solid #C9D0C9; border-radius: 10px; background: #fff;
  min-height: 48px; font-size: 16px; /* 16px evita zoom automático no iPhone */ appearance: none; -webkit-appearance: none; }
select { background-image: linear-gradient(45deg, transparent 50%, var(--cinza) 50%), linear-gradient(135deg, var(--cinza) 50%, transparent 50%);
  background-position: calc(100% - 20px) 21px, calc(100% - 14px) 21px; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
input:focus, select:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(35,107,38,.18); }

/* ---------- cartões ---------- */
.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--r-grande); box-shadow: var(--sombra); padding: 20px; }
@media (min-width: 768px) { .cartao { padding: 24px; } }
.entrar { max-width: 440px; margin: 16px auto; }
@media (min-width: 768px) { .entrar { margin-top: 48px; } }
.entrar h1 { font-size: 24px; }
.msg { padding: 11px 13px; border-radius: 10px; font-size: 14px; margin: 0 0 16px; }
.msg.erro { background: var(--vermelho-claro); color: #7C1E1E; }
.msg.ok { background: var(--verde-claro); color: var(--verde-escuro); }
.carregando { color: var(--cinza); padding: 48px 0; text-align: center; }
.carregando::before { content: ""; display: block; width: 28px; height: 28px; margin: 0 auto 12px; border-radius: 50%;
  border: 3px solid var(--linha); border-top-color: var(--verde); animation: gira .8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.vazio { text-align: center; color: var(--cinza); padding: 36px 16px; }
.vazio p { margin: 0 0 16px; }

/* ---------- painel do aluno ---------- */
.grade-simulados { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 560px) { .grade-simulados { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .grade-simulados { grid-template-columns: repeat(3, 1fr); gap: 16px; } }
.simulado { display: flex; flex-direction: column; gap: 8px; padding: 18px; position: relative; overflow: hidden; }
.simulado::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--amarelo); }
.simulado .num { font-size: 13px; font-weight: 600; color: var(--cinza); }
.simulado h3 { font-size: 20px; }
.simulado .meta { font-size: 14px; color: var(--cinza); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.simulado .acoes { margin-top: 8px; display: flex; gap: 8px; flex-wrap: wrap; }
.simulado .acoes .btn { flex: 1 1 auto; }
.nota-pill { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; padding: 2px 10px; border-radius: 999px;
  font-weight: 750; font-size: 14px; background: #EEF0ED; font-variant-numeric: tabular-nums; }
.nota-pill.boa { background: var(--verde-claro); color: var(--verde-escuro); }
.nota-pill.ruim { background: var(--vermelho-claro); color: #7C1E1E; }

/* ---------- prova ---------- */
.barra-prova { position: sticky; top: var(--topo-h); z-index: 20; background: var(--fundo); padding: 10px 0 12px;
  margin: 0 calc(-1 * var(--gutter)); padding-left: var(--gutter); padding-right: var(--gutter); border-bottom: 1px solid transparent; }
.barra-prova.colada { border-bottom-color: var(--linha); box-shadow: 0 6px 12px -10px rgba(0,0,0,.25); }
.barra-prova .linha { display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--cinza); margin-bottom: 8px; gap: 12px; max-width: 800px; }
.barra-prova .linha span { font-variant-numeric: tabular-nums; }
.progresso { height: 8px; background: #E1E5E0; border-radius: 99px; overflow: hidden; max-width: 800px; }
.progresso i { display: block; height: 100%; width: 0; transition: width .25s;
  background: repeating-linear-gradient(90deg, var(--verde) 0 18px, #2E8A32 18px 28px); }
.questoes { display: flex; flex-direction: column; gap: 14px; max-width: 800px; margin-top: 6px; }
.questao { background: #fff; border: 1px solid var(--linha); border-radius: var(--r-grande); padding: 16px; box-shadow: var(--sombra); }
@media (min-width: 768px) { .questao { padding: 22px 24px; } }
.questao .enun { display: flex; gap: 12px; font-weight: 650; margin-bottom: 14px; font-size: 16.5px; line-height: 1.45; }
.questao .enun .n { flex: none; min-width: 32px; height: 32px; padding: 0 6px; border-radius: 9px; background: var(--verde); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; font-variant-numeric: tabular-nums; }
.questao .texto { margin: 4px 0 12px; font-weight: 650; }
.questao .texto.normal { font-weight: 400; }
.questao .imgs { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 4px 0 14px; }
.questao .imgs img { width: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 480px) { .questao .imgs img { max-height: 140px; } }
.questao ul.afirm { list-style: none; padding: 12px 14px; margin: 0 0 12px; background: #F7F8F5; border-radius: var(--r); }
.questao ul.afirm li { display: flex; gap: 10px; margin-bottom: 6px; }
.questao ul.afirm li:last-child { margin-bottom: 0; }
.questao ul.afirm li b { flex: none; min-width: 32px; color: var(--verde); }
.questao .figs { display: flex; justify-content: space-around; gap: 12px; flex-wrap: wrap; margin: 4px 0 12px; }
.questao .figs figure { margin: 0; text-align: center; }
.questao .figs img { height: 72px; width: auto; }
.questao .figs figcaption { font-weight: 700; color: var(--cinza); font-size: 14px; margin-top: 4px; }

.alts { display: flex; flex-direction: column; gap: 8px; }
.alts.grade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 600px) { .alts.grade { grid-template-columns: repeat(4, 1fr); } }
.alt { display: flex; align-items: flex-start; gap: 12px; text-align: left; width: 100%; padding: 12px 14px; border-radius: var(--r);
  border: 1.5px solid var(--linha); background: #fff; cursor: pointer; min-height: 52px; line-height: 1.4; transition: border-color .12s, background .12s; }
@media (hover: hover) { .alt:hover { border-color: #A9C7AA; background: #FAFCF9; } }
.alt .letra { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid #B4BDB4; display: inline-flex;
  align-items: center; justify-content: center; font-weight: 800; font-size: 13px; color: var(--cinza); background: #fff; }
.alt .conteudo { padding-top: 4px; }
.alt.img { flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 12px 8px; min-height: 120px; }
.alt.img img { height: 72px; width: auto; max-width: 100%; object-fit: contain; }
.alt.img .conteudo { padding: 0; }
.alt.sel { border-color: var(--verde); background: var(--verde-claro); }
.alt.sel .letra { background: var(--verde); border-color: var(--verde); color: #fff; }
.alt[disabled] { cursor: default; }
.alt.certo { border-color: var(--verde); background: var(--verde-claro); }
.alt.certo .letra { background: var(--verde); border-color: var(--verde); color: #fff; }
.alt.errado { border-color: var(--vermelho); background: var(--vermelho-claro); }
.alt.errado .letra { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }
.alt .tag { margin-left: auto; font-size: 12px; font-weight: 750; padding-top: 6px; white-space: nowrap; }
.alt.certo .tag { color: var(--verde-escuro); }
.alt.errado .tag { color: var(--vermelho); }
@media (max-width: 420px) { .alt .tag { display: none; } }
.questao.acertou { border-left: 5px solid var(--verde); }
.questao.errou { border-left: 5px solid var(--vermelho); }
.questao .aviso { margin: 12px 0 0; font-weight: 650; color: var(--vermelho); font-size: 14px; }
.rodape-prova { margin-top: 20px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; max-width: 800px; }
@media (max-width: 560px) { .rodape-prova .btn { flex: 1 1 100%; } }

/* ---------- resultado ---------- */
.placar { display: grid; grid-template-columns: auto 1fr; gap: 6px 22px; align-items: center; margin-bottom: 18px; }
.placar .grande { font-size: clamp(48px, 12vw, 64px); font-weight: 800; line-height: 1; letter-spacing: -.02em; font-stretch: 112%; font-variant-numeric: tabular-nums; }
.placar .grande small { font-size: 20px; color: var(--cinza); font-weight: 600; }
.placar .det { color: var(--cinza); }
.placar .acoes-placar { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
@media (min-width: 640px) { .placar { grid-template-columns: auto 1fr auto; } .placar .acoes-placar { grid-column: auto; margin-top: 0; } }
@media (max-width: 639px) { .placar .acoes-placar .btn { flex: 1 1 100%; } }
.filtro-correcao { display: flex; gap: 8px; margin: 0 0 14px; flex-wrap: wrap; }
.chip { border: 1.5px solid var(--linha); background: #fff; border-radius: 99px; padding: 8px 16px; cursor: pointer; font-size: 14px; font-weight: 650; min-height: 40px; }
.chip.ativo { background: var(--asfalto); color: #fff; border-color: var(--asfalto); }
.voltar { margin: 0 0 4px; }

/* ---------- abas / ferramentas ---------- */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin: 0 calc(-1 * var(--gutter)) 20px; padding: 0 var(--gutter);
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.abas::-webkit-scrollbar { display: none; }
.aba { background: none; border: 0; padding: 12px 14px; font-weight: 650; color: var(--cinza); cursor: pointer; border-bottom: 3px solid transparent; white-space: nowrap; min-height: 48px; }
.aba.ativa { color: var(--verde); border-bottom-color: var(--verde); }
.ferramentas { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.ferramentas input, .ferramentas select { width: auto; flex: 1 1 220px; min-width: 0; }
@media (max-width: 560px) { .ferramentas > .btn:not(.peq) { flex: 1 1 100%; } .ferramentas > .btn.peq { flex: 1 1 0; } }

/* ---------- tabelas (viram fichas no celular) ---------- */
.tabela-wrap { background: #fff; border: 1px solid var(--linha); border-radius: var(--r-grande); overflow: hidden; }
table { border-collapse: collapse; width: 100%; font-size: 15px; }
th, td { text-align: left; padding: 12px 14px; border-bottom: 1px solid #ECEEEA; vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
th { font-size: 13px; color: var(--cinza); font-weight: 700; background: #FAFBF8; white-space: nowrap; }
tr.clicavel { cursor: pointer; }
@media (hover: hover) { tr.clicavel:hover td { background: #F6F9F5; } }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td small { color: var(--cinza); }
@media (max-width: 719px) {
  .tabela-wrap { background: transparent; border: 0; border-radius: 0; overflow: visible; }
  .tabela-wrap table, .tabela-wrap tbody { display: block; }
  .tabela-wrap thead { display: none; }
  .tabela-wrap tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; background: #fff; border: 1px solid var(--linha);
    border-radius: var(--r); padding: 12px 14px; margin-bottom: 10px; box-shadow: var(--sombra); }
  .tabela-wrap td { border: 0; padding: 2px 0; display: flex; gap: 8px; align-items: baseline; text-align: left; min-width: 0; }
  .tabela-wrap td.num { text-align: left; }
  .tabela-wrap td { overflow-wrap: anywhere; flex-wrap: wrap; }
  .tabela-wrap td[data-label="E-mail"], .tabela-wrap td[data-label="Aluno"], .tabela-wrap td[data-label="Última nota"] { grid-column: 1 / -1; }
  .tabela-wrap td[data-label=""] { grid-column: 1 / -1; margin-top: 6px; }
  .tabela-wrap td[data-label=""] .btn { width: 100%; }
  .tabela-wrap td::before { content: attr(data-label); color: var(--cinza-claro); font-size: 13px; font-weight: 600; flex: none; }
  .tabela-wrap td:first-child { grid-column: 1 / -1; font-weight: 700; font-size: 16px; }
  .tabela-wrap td:first-child::before { display: none; }
  .tabela-wrap td[data-label=""]::before { display: none; }
  .tabela-wrap td.vazio { grid-column: 1 / -1; justify-content: center; }
  .tabela-wrap tr:has(td.vazio) { display: block; }
}
.status { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 13px; font-weight: 700; white-space: nowrap; }
.status.ok { background: var(--verde-claro); color: var(--verde-escuro); }
.status.pend { background: var(--amarelo-claro); color: #6B5800; }
.status.off { background: #ECEEEA; color: var(--cinza); }

/* ---------- painel lateral / modal ---------- */
.painel-lado { position: fixed; inset: 0; background: rgba(20,24,20,.42); z-index: 50; display: flex; justify-content: flex-end; }
.painel-lado .caixa { background: var(--fundo); width: min(720px, 100%); height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: calc(16px + env(safe-area-inset-top)) var(--gutter) 0; box-shadow: -8px 0 24px rgba(0,0,0,.14); display: flex; flex-direction: column; }
.painel-lado .cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 14px; }
.painel-lado .cab h2 { word-break: break-word; }
.painel-lado .cab .sub { word-break: break-all; }
.modal { position: fixed; inset: 0; background: rgba(20,24,20,.42); z-index: 60; display: flex; align-items: center; justify-content: center; padding: 16px; }
.modal .cartao { width: min(460px, 100%); max-height: calc(100vh - 32px); overflow-y: auto; }
@media (max-width: 560px) {
  .modal { align-items: flex-end; padding: 0; }
  .modal .cartao { width: 100%; border-radius: 18px 18px 0 0; padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
  .modal .acoes-modal .btn { flex: 1 1 auto; }
}
.acoes-modal { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 560px) { .checks { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 900px) { .checks { grid-template-columns: repeat(4, 1fr); } }
.check { display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--linha); border-radius: 10px; padding: 10px 12px;
  cursor: pointer; font-size: 14px; min-height: 48px; line-height: 1.2; }
.check:has(input:checked) { border-color: var(--verde); background: var(--verde-claro); }
.check input { width: 20px; height: 20px; accent-color: var(--verde); flex: none; margin: 0; }
.check .rot { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.check small { color: #6B5800; font-size: 12px; }
.secao { margin: 26px 0 10px; font-size: 16px; font-weight: 750; color: var(--tinta); }
.barra-salvar { position: sticky; bottom: 0; background: var(--fundo); padding: 12px 0 calc(12px + env(safe-area-inset-bottom)); display: flex; gap: 10px;
  align-items: center; border-top: 1px solid var(--linha); margin-top: auto; flex-wrap: wrap; z-index: 5; }
.painel-lado .barra-salvar { margin-top: 24px; }
@media (max-width: 560px) { .barra-salvar .btn { flex: 1 1 auto; } }
.toast { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateX(-50%); background: var(--asfalto); color: #fff;
  padding: 12px 18px; border-radius: 12px; z-index: 99; font-size: 14px; box-shadow: var(--sombra); width: max-content; max-width: calc(100vw - 32px); }

/* =====================================================================
   Site institucional
   ===================================================================== */
.site main { padding: 0; max-width: none; }
.faixa-in { max-width: var(--largura); margin: 0 auto; padding: 0 var(--gutter); }
.hero { position: relative; background: var(--asfalto); color: #fff; overflow: hidden; }
/* faixa central tracejada da pista */
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 64px; height: 6px;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.85) 0 56px, transparent 56px 104px); opacity: .9; }
.hero::before { content: ""; position: absolute; inset: 0;
  background: radial-gradient(1200px 400px at 85% -10%, rgba(255,210,31,.16), transparent 60%); pointer-events: none; }
.hero .faixa-in { position: relative; z-index: 1; padding-top: 56px; padding-bottom: 128px; display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .hero .faixa-in { grid-template-columns: 1.25fr 1fr; padding-top: 84px; padding-bottom: 156px; } }
.hero h1 { font-size: clamp(34px, 7vw, 60px); line-height: 1.02; margin: 0 0 18px; font-stretch: 118%; font-weight: 850; letter-spacing: -.02em; max-width: 14ch; }
.hero p.lead { font-size: clamp(17px, 2.2vw, 20px); color: #D7DCD6; max-width: 46ch; margin: 0 0 28px; }
.hero .acoes { display: flex; gap: 12px; flex-wrap: wrap; }
.hero .btn.amarelo { background: var(--amarelo); color: var(--asfalto); }
.hero .btn.amarelo:hover { background: #FFE15C; }
.hero .btn.fantasma { background: transparent; color: #fff; border-color: rgba(255,255,255,.35); }
.hero .btn.fantasma:hover { background: rgba(255,255,255,.08); }
@media (max-width: 560px) { .hero .acoes .btn { flex: 1 1 100%; } }
.placa { justify-self: center; width: min(320px, 70vw); aspect-ratio: 1; position: relative; }
.placa svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 18px 30px rgba(0,0,0,.35)); }
@media (max-width: 899px) { .placa { display: none; } }

.secao-site { padding: 56px 0; }
@media (min-width: 768px) { .secao-site { padding: 80px 0; } }
.secao-site h2 { font-size: clamp(24px, 3.4vw, 34px); font-weight: 800; margin-bottom: 10px; }
.secao-site .sub { font-size: 17px; }
.passos { list-style: none; padding: 0; margin: 28px 0 0; display: grid; gap: 14px; counter-reset: passo; }
@media (min-width: 768px) { .passos { grid-template-columns: repeat(3, 1fr); gap: 18px; } }
.passos li { background: #fff; border: 1px solid var(--linha); border-radius: var(--r-grande); padding: 22px; counter-increment: passo; position: relative; }
.passos li::before { content: counter(passo); display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center;
  border-radius: 10px; background: var(--amarelo); color: var(--asfalto); font-weight: 850; font-size: 18px; margin-bottom: 14px; font-stretch: 112%; }
.passos h3 { margin-bottom: 6px; }
.passos p { margin: 0; color: var(--cinza); }
.contato { background: #fff; border-top: 1px solid var(--linha); }
.contato .grade { display: grid; gap: 24px; }
@media (min-width: 768px) { .contato .grade { grid-template-columns: 1fr 1fr; align-items: start; } }
.contato dl { margin: 0; display: grid; gap: 14px; }
.contato dt { font-size: 14px; color: var(--cinza); font-weight: 600; }
.contato dd { margin: 2px 0 0; font-size: 18px; font-weight: 650; }
.contato dd a { color: var(--tinta); text-decoration: none; }
.contato dd a:hover { color: var(--verde); }
.mapa { border-radius: var(--r-grande); overflow: hidden; border: 1px solid var(--linha); min-height: 260px; background: #E9ECE7; }
.mapa iframe { width: 100%; height: 100%; min-height: 300px; border: 0; display: block; }
.rodape { background: var(--asfalto); color: #C9CFC8; font-size: 14px; padding: 24px 0 calc(24px + env(safe-area-inset-bottom)); }
.rodape .faixa-in { display: flex; gap: 12px 24px; justify-content: space-between; flex-wrap: wrap; align-items: center; }
.rodape a { color: #fff; text-decoration: none; }
.rodape a:hover { text-decoration: underline; }
.rodape nav { display: flex; gap: 18px; flex-wrap: wrap; }

/* ---------- site: navegação ---------- */
.nav-site { display: none; gap: 22px; margin-right: 10px; }
.nav-site a { color: var(--tinta); text-decoration: none; font-weight: 600; font-size: 15px; }
.nav-site a:hover { color: var(--verde); }
@media (min-width: 860px) { .nav-site { display: flex; } }
.site .topo .usuario { margin-left: auto; }
html { scroll-behavior: smooth; }

/* ---------- site: diferenciais ---------- */
.faixa-difs { background: var(--asfalto); color: #fff; border-top: 1px solid rgba(255,255,255,.08); }
.difs { list-style: none; margin: 0; padding: 18px 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
@media (min-width: 860px) { .difs { grid-template-columns: repeat(4, 1fr); padding: 22px 0; } }
.difs li { display: flex; align-items: center; gap: 10px; font-weight: 650; font-size: 15px; line-height: 1.25; }
.difs svg { width: 26px; height: 26px; flex: none; color: var(--amarelo); }

/* ---------- site: cursos ---------- */
.seletor { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 4px calc(-1 * var(--gutter)) 20px; padding: 4px var(--gutter) 6px;
  -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
.seletor::-webkit-scrollbar { display: none; }
.cat { flex: none; display: flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 12px; border: 1.5px solid var(--linha);
  background: #fff; cursor: pointer; font-weight: 650; font-size: 15px; min-height: 52px; scroll-snap-align: start; white-space: nowrap; }
.cat:hover { border-color: #b9c2b9; }
.cat-letra { min-width: 36px; height: 36px; padding: 0 6px; border-radius: 9px; background: #EEF0ED; color: var(--tinta); display: inline-flex;
  align-items: center; justify-content: center; font-weight: 850; font-stretch: 118%; font-size: 16px; }
.cat.ativa { border-color: var(--asfalto); background: var(--asfalto); color: #fff; }
.cat.ativa .cat-letra { background: var(--amarelo); color: var(--asfalto); }
.painel-cat[hidden] { display: none; }
.cat-cab { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; align-items: center; margin-bottom: 18px; }
.cat-cab h3 { font-size: clamp(22px, 3vw, 28px); font-weight: 800; font-stretch: 115%; }
.cat-cab p { margin: 2px 0 0; color: var(--cinza); }
.cat-icones { display: flex; gap: 4px; color: var(--verde); }
.cat-icones svg { width: 56px; height: 36px; }
.inclui { grid-column: 1 / -1; list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.inclui li { display: inline-flex; align-items: center; gap: 6px; background: var(--verde-claro); color: var(--verde-escuro); border-radius: 99px; padding: 5px 12px 5px 8px; font-size: 14px; font-weight: 650; }
.inclui li::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--verde) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.2 2.2 4.8-4.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat; }

.planos { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 600px) { .planos.n2, .planos.n3, .planos.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 980px) { .planos.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .planos.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 600px) { .planos.n1 { grid-template-columns: minmax(0, 420px); } }
.plano { background: #fff; border: 1.5px solid var(--linha); border-radius: var(--r-grande); padding: 20px; display: flex; flex-direction: column; gap: 6px; position: relative; }
.plano h4 { margin: 0; font-size: 20px; font-weight: 800; font-stretch: 112%; }
.plano .frase { margin: 0; color: var(--cinza); font-size: 14px; min-height: 0; }
.plano ul { list-style: none; padding: 0; margin: 10px 0 6px; display: grid; gap: 6px; }
.plano ul li { display: flex; gap: 8px; align-items: baseline; font-weight: 650; }
.plano ul li::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 2px; background: var(--amarelo); transform: translateY(-1px); }
.plano .preco { margin: auto 0 12px; padding-top: 12px; border-top: 1px dashed var(--linha); }
.plano .btn { width: 100%; }
.plano.destaque { border-color: var(--asfalto); box-shadow: 0 10px 30px -12px rgba(35,39,43,.35); }
.plano.destaque::before { content: ""; position: absolute; left: -1.5px; right: -1.5px; top: -1.5px; height: 8px; border-radius: var(--r-grande) var(--r-grande) 0 0;
  background: repeating-linear-gradient(135deg, var(--amarelo) 0 10px, var(--asfalto) 10px 20px); }
.preco { font-variant-numeric: tabular-nums; color: var(--tinta); line-height: 1; }
.preco .moeda { font-size: 15px; font-weight: 700; margin-right: 4px; color: var(--cinza); }
.preco .int { font-size: 34px; font-weight: 850; font-stretch: 112%; letter-spacing: -.02em; }
.preco .dec { font-size: 18px; font-weight: 750; }

.teorico { margin-top: 14px; display: flex; gap: 12px 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--asfalto); color: #fff;
  border-radius: var(--r-grande); padding: 18px 20px; }
.teorico h4 { margin: 0 0 4px; font-size: 18px; font-weight: 800; }
.teorico p { margin: 0; color: #CDD3CC; font-size: 15px; }
.teorico .preco { color: #fff; margin: 0; }
.teorico .preco .moeda { color: #CDD3CC; }

.extras { display: grid; gap: 12px; margin-top: 14px; }
@media (min-width: 860px) { .extras { grid-template-columns: 1.3fr 1fr; } }
.extra { background: #fff; border: 1px solid var(--linha); border-radius: var(--r-grande); padding: 18px 20px; }
.extra-tit { margin: 0 0 10px; font-size: 16px; font-weight: 800; }
.extra-cols { display: grid; gap: 10px; margin-bottom: 10px; }
@media (min-width: 560px) { .extra-cols { grid-template-columns: 1fr 1fr; } }
.extra h4:not(.extra-tit) { margin: 0 0 2px; font-size: 14px; color: var(--cinza); font-weight: 650; }
.extra p { margin: 0; }
.extra a { font-weight: 650; font-size: 15px; }
.obs-gerais { list-style: none; padding: 0; margin: 20px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--cinza); font-size: 14px; }
.obs-gerais li::before { content: "⚠ "; color: #A58500; }

/* ---------- site: taxas ---------- */
.taxas-sec { background: #fff; border-top: 1px solid var(--linha); }
.taxas-grade { display: grid; gap: 14px; }
@media (min-width: 768px) { .taxas-grade { grid-template-columns: 1fr 1fr; } }
.taxas-grade .cartao { box-shadow: none; background: var(--fundo); }
.taxas-grade h3 { margin-bottom: 12px; }
.valores { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.valores li { display: flex; align-items: baseline; gap: 8px; }
.valores .pontos { flex: 1; border-bottom: 2px dotted #C3CAC2; transform: translateY(-4px); min-width: 16px; }
.valores b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.aviso-taxa { margin: 14px 0 0; padding: 12px 14px; border-radius: var(--r); background: var(--amarelo-claro); color: #5B4B00; font-size: 14px; max-width: 80ch; }

/* ---------- site: pagamento ---------- */
.formas { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.formas li { background: #fff; border: 1.5px solid var(--linha); border-radius: 12px; padding: 10px 16px; font-weight: 650; }
.simulados-sec { background: var(--fundo); }

/* ---------- admin: editor do site ---------- */
.editor-site { display: flex; flex-direction: column; gap: 16px; max-width: 900px; }
.sec-ed h2 { margin-bottom: 4px; }
.sec-ed > .sub { margin-bottom: 18px; }
.grupo-campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.grupo-campos > .f, .grupo-campos > .f-bool, .grupo-campos > .largo { grid-column: 1 / -1; }
.grupo-campos > .f.curto { grid-column: auto; }
@media (max-width: 560px) { .grupo-campos > .f.curto { grid-column: 1 / -1; } }
.rot-campo { display: block; font-size: 14px; font-weight: 650; margin-bottom: 6px; }
.dica { display: block; color: var(--cinza); font-size: 13px; margin-top: 6px; }
textarea { width: 100%; padding: 11px 13px; border: 1.5px solid #C9D0C9; border-radius: 10px; background: #fff; font-size: 16px; line-height: 1.45; resize: vertical; min-height: 48px; }
textarea:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(35,107,38,.18); }
.moeda-campo { display: flex; align-items: center; border: 1.5px solid #C9D0C9; border-radius: 10px; background: #fff; padding-left: 12px; }
.moeda-campo:focus-within { border-color: var(--verde); box-shadow: 0 0 0 3px rgba(35,107,38,.18); }
.moeda-campo span { color: var(--cinza); font-weight: 650; }
.moeda-campo input { border: 0; box-shadow: none !important; padding-left: 8px; font-variant-numeric: tabular-nums; }
.f-bool { width: fit-content; max-width: 100%; }
.lista-ed, .colecao-ed { display: flex; flex-direction: column; gap: 8px; }
.linha-ed { display: flex; gap: 6px; align-items: flex-start; }
.linha-ed > input, .linha-ed > textarea { flex: 1; min-width: 0; }
.ico { flex: none; width: 44px; height: 48px; border-radius: 10px; border: 1.5px solid var(--linha); background: #fff; cursor: pointer; font-size: 16px; color: var(--cinza); }
.ico:hover:not(:disabled) { border-color: #b9c2b9; color: var(--tinta); }
.ico:disabled { opacity: .35; cursor: default; }
.ico.perigo:hover { color: var(--vermelho); border-color: #E8C3C3; }
.add { align-self: flex-start; }
.valor-ed { align-items: flex-end; flex-wrap: wrap; }
.valor-ed > .f { flex: 1 1 200px; min-width: 0; }
.valor-ed > .f.curto { flex: 0 1 160px; }
.valor-ed .rot-campo { font-size: 12px; color: var(--cinza); margin-bottom: 4px; }
@media (max-width: 560px) { .valor-ed { padding: 10px; border: 1px solid var(--linha); border-radius: 12px; background: #FAFBF8; } .valor-ed > .f.curto { flex: 1 1 auto; } }
.item-ed { border: 1.5px solid var(--linha); border-radius: 12px; background: #fff; }
.item-ed[open] { border-color: #b9c2b9; }
.item-ed > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 14px 16px; min-height: 52px; font-weight: 700; }
.item-ed > summary::-webkit-details-marker { display: none; }
.item-ed > summary::before { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--cinza); border-bottom: 2px solid var(--cinza); transform: rotate(-45deg); transition: transform .15s; flex: none; }
.item-ed[open] > summary::before { transform: rotate(45deg); }
.item-res { margin-left: auto; color: var(--cinza); font-weight: 600; font-size: 14px; white-space: nowrap; }
.item-corpo { padding: 4px 16px 16px; border-top: 1px solid #ECEEEA; }
.item-corpo > .grupo-campos { padding-top: 14px; }
.item-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--linha); }
.item-ed .item-ed { background: #FAFBF8; }
.barra-editor { max-width: 900px; margin-top: 16px; }
.estado-ed { font-size: 14px; color: var(--cinza); font-weight: 600; }
.estado-ed.pend { color: #8A6D00; }
.estado-ed.ok { color: var(--verde); }

/* ---------- ajustes finos ---------- */
@media (min-width: 860px) { .seletor { flex-wrap: wrap; overflow: visible; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } }
@media (max-width: 560px) {
  .ferramentas > .btn.peq { flex: 1 1 auto; white-space: nowrap; }
  .ferramentas > .sub { flex-basis: 100% !important; }
  .item-corpo { padding: 2px 12px 14px; }
  .item-ed > summary { padding: 12px; }
  .item-ed .item-ed .ico, .item-ed .lista-ed .ico { width: 38px; height: 46px; }
  .linha-ed { gap: 4px; }
}
@media (max-width: 560px) { .item-ed .item-ed .lista-ed .ico:not(.perigo) { display: none; } }
/* logo completa na abertura, sobre uma placa branca */
.placa-logo { justify-self: center; width: min(460px, 100%); background: #fff; border-radius: 20px; padding: clamp(20px, 3vw, 32px);
  box-shadow: 0 24px 50px -18px rgba(0,0,0,.55); }
.placa-logo img { display: block; width: 100%; height: auto; }
@media (max-width: 899px) { .placa-logo { display: none; } }

/* ---------- admin: editor de simulados ---------- */
.editor-prova { max-width: 900px; }
.editor-prova .sec-ed { display: grid; gap: 4px; }
.editor-prova .sec-ed .grupo-campos .check { grid-column: auto; width: auto; }
@media (max-width: 560px) { .editor-prova .sec-ed .grupo-campos .check { grid-column: 1 / -1; } }
.aviso-ed { background: var(--amarelo-claro); color: #5A4A00; border: 1px solid #EBD27A; }
.questoes-ed { display: flex; flex-direction: column; gap: 10px; }
.questao-ed > summary .item-tit { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.questao-ed > summary .status { flex: none; }
.questao-ed .item-corpo { display: flex; flex-direction: column; gap: 14px; padding-top: 16px; }
.add-questao { align-self: flex-start; }
.blocos-ed { display: flex; flex-direction: column; gap: 10px; }
.blocos-ed:empty { display: none; }
.bloco-ed { border: 1.5px dashed #C9D0C9; border-radius: 12px; padding: 10px 12px 12px; background: #FAFBF8; display: flex; flex-direction: column; gap: 8px; }
.bloco-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
.bloco-acoes { display: flex; gap: 4px; }
.bloco-acoes .ico, .alt-acoes .ico { width: 38px; height: 38px; font-size: 14px; }
.rotulo-afirm { flex: 0 0 72px !important; text-align: center; }
.add-blocos { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 14px; color: var(--cinza); }
.add-blocos > span { margin-right: 4px; }
.mini { min-height: 40px; padding: 6px 10px; font-size: 14px; }
.mini-sel { display: flex; align-items: center; gap: 10px; }
.mini-sel .rot-campo { margin: 0; }
.mini-sel select { width: auto; }
.imgs-ed { display: flex; flex-wrap: wrap; gap: 10px; }
.img-cel { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; background: #fff; border: 1px solid var(--linha); border-radius: 10px; padding: 8px; width: 170px; }
.img-cel.nova { border-style: dashed; justify-content: center; }
.img-cel input[type=text] { min-height: 40px; padding: 6px 10px; }
.img-ed { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.img-ed img { height: 56px; width: auto; max-width: 120px; object-fit: contain; background: #fff; border-radius: 6px; }
.img-vazia { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 8px; background: #F0F2EE; color: var(--cinza); font-size: 11px; text-align: center; line-height: 1.1; }
.perigo-link { color: var(--vermelho); font-size: 13px; min-height: 28px; padding: 2px 0; }
.alts-ed { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid #ECEEEA; padding-top: 14px; }
.alts-topo { display: flex; align-items: center; gap: 8px 14px; flex-wrap: wrap; margin-bottom: 2px; }
.alts-topo small { color: var(--cinza); font-size: 13px; flex-basis: 100%; }
.seg { display: inline-flex; border: 1.5px solid var(--linha); border-radius: 10px; overflow: hidden; background: #fff; }
.seg-b { border: 0; background: none; padding: 7px 12px; font-size: 14px; font-weight: 650; color: var(--cinza); cursor: pointer; min-height: 36px; }
.seg-b + .seg-b { border-left: 1.5px solid var(--linha); }
.seg-b.ativo { background: var(--verde); color: #fff; }
.alt-ed { display: flex; align-items: center; gap: 8px; border: 1.5px solid var(--linha); border-radius: 12px; padding: 6px 6px 6px 8px; background: #fff; }
.alt-ed.correta { border-color: var(--verde); background: var(--verde-claro); }
.alt-ed > input[type=text] { flex: 1; min-width: 0; }
.alt-radio { display: flex; align-items: center; gap: 6px; cursor: pointer; flex: none; padding: 4px; }
.alt-radio input { width: 22px; height: 22px; accent-color: var(--verde); margin: 0; }
.alt-radio .letra { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid #B9C2B9; font-weight: 800; font-size: 13px; background: #fff; }
.alt-ed.correta .letra { background: var(--verde); color: #fff; border-color: var(--verde); }
.alt-img-ed { flex: 1; min-width: 0; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.alt-img-ed > input { flex: 1 1 160px; min-width: 0; }
.alt-acoes { display: flex; gap: 4px; flex: none; }
.previa-ed { border-top: 1px dashed var(--linha); padding-top: 12px; }
.previa-ed:empty { display: none; }
.previa-tit { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--cinza); font-weight: 700; margin-bottom: 8px; }
.previa-ed .questao { box-shadow: none; border: 1px solid var(--linha); margin: 0; }
.acoes-linha { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.acoes-vazio { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 560px) {
  .alt-ed { flex-wrap: wrap; padding: 8px; }
  .alt-ed > input[type=text], .alt-img-ed { flex: 1 1 calc(100% - 60px); }
  .alt-acoes { margin-left: auto; }
  .img-cel { width: calc(50% - 5px); }
  .acoes-linha { justify-content: stretch; flex-wrap: nowrap; width: 100%; }
  .acoes-linha > .btn { flex: 1 1 0; width: auto !important; min-width: 0; padding-left: 6px; padding-right: 6px; white-space: nowrap; font-size: 13px; }
}
/* seletor de categorias: grade sem rolagem lateral no celular e tablet */
@media (max-width: 859px) {
  .seletor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; margin: 4px 0 20px; padding: 0; gap: 8px; }
  .cat { min-width: 0; width: 100%; padding: 8px 10px 8px 8px; gap: 8px; text-align: left; min-height: 56px; white-space: normal; }
  .cat-nome { min-width: 0; font-size: 14px; line-height: 1.2; overflow-wrap: break-word; }
  .cat-letra { flex: none; min-width: 34px; height: 34px; font-size: 14px; }
}
@media (min-width: 560px) and (max-width: 859px) { .seletor { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
