:root {
  --fundo: #f3f3f1;
  --cartao: #ffffff;
  --texto: #222;
  --suave: #6b6b6b;
  --borda: #cfcfcf;
  --cinza: #808080;          /* mesma cor das caixas da prova */
  --destaque: #2f5d8a;
  --perigo: #a33;
  --raio: 6px;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  color: var(--texto);
}

* { box-sizing: border-box; }
/* "hidden" sempre esconde, mesmo com display: flex/grid numa classe (já deu o quadro "Selecione um cartão" visível) */
[hidden] { display: none !important; }
body { margin: 0; background: var(--fundo); }
code { background: #eee; padding: 0 .25em; border-radius: 3px; font-size: .9em; }

button {
  font: inherit; font-size: .9rem; cursor: pointer;
  padding: .4em .8em; border: 1px solid var(--borda); border-radius: var(--raio); background: #fff;
}
button:hover { border-color: var(--cinza); }
button:disabled { opacity: .5; cursor: progress; }
a.botao {
  font-size: .9rem; padding: .4em .8em; border: 1px solid var(--borda); border-radius: var(--raio);
  background: #fff; color: var(--texto); text-decoration: none;
}
a.botao:hover { border-color: var(--cinza); }
button.primario { background: var(--destaque); border-color: var(--destaque); color: #fff; font-weight: 600; }
button.perigo:hover { color: var(--perigo); border-color: var(--perigo); }

input, textarea, select {
  font: inherit; font-size: .95rem; width: 100%;
  padding: .4em .5em; border: 1px solid var(--borda); border-radius: 4px; background: #fff;
}
textarea { resize: vertical; line-height: 1.4; }
input[type="checkbox"], input[type="radio"] { width: auto; }
input[type="range"] { padding: 0; }
label { display: block; font-size: .85rem; color: var(--suave); }
label > input, label > textarea, label > select { margin-top: .2em; color: var(--texto); }
label.check { display: inline-flex; align-items: center; gap: .35em; color: var(--texto); }

/* ---------- topo ---------- */
.topo {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem;
  padding: .6rem 1.2rem; background: var(--cinza); color: #fff;
  position: sticky; top: 0; z-index: 40; box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
/* no celular a barra quebra em várias linhas e tomaria a tela: lá ela rola junto */
@media (max-width: 700px) { .topo { position: relative; } }
/* "Cópia local": só no computador do usuário (faixaLocal() em lib/auth.php) */
.faixa-local {
  flex: 1 0 100%; order: -1; margin: -.6rem -1.2rem 0; padding: .3rem 1.2rem;
  background: repeating-linear-gradient(-45deg, #f5c400 0 14px, #ffd83a 14px 28px);
  color: #2b2100; font-size: .9rem; text-align: center;
}
.faixa-local a { color: inherit; font-weight: 600; }
.pagina-login > .faixa-local { position: fixed; top: 0; left: 0; right: 0; margin: 0; z-index: 100; }
.topo h1 { margin: 0; font-size: 1.2rem; }
.topo h1.marca { display: flex; align-items: center; gap: .55rem; letter-spacing: .02em; }
.topo h1.marca img { border-radius: var(--raio); background: #f4f5f7; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.acoes-arquivo { display: flex; gap: .4rem; flex-wrap: wrap; }

/* ---------- layout ---------- */
.layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; padding: 1rem; }
.editor { min-width: 0; }
.resultado {
  position: sticky; top: calc(var(--altura-topo, 3.6rem) + 1rem); align-self: start;
  height: calc(100vh - var(--altura-topo, 3.6rem) - 2rem); display: flex; flex-direction: column; gap: .5rem;
}
@media (max-width: 1000px) {
  .layout { grid-template-columns: 1fr; }
  .resultado { position: static; height: 80vh; }
}

/* ---------- painéis ---------- */
.painel { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: .6rem 1rem 1rem; }
.painel > summary { font-weight: 600; cursor: pointer; padding: .2rem 0 .6rem; }
.grade { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem 1rem; }
.grade .larga { grid-column: 1 / -1; }
.grade .check { align-self: end; padding-bottom: .4em; }

fieldset.logo, fieldset.modelo-atual { margin-top: .8rem; border: 1px solid var(--borda); border-radius: var(--raio); }
fieldset.logo legend, fieldset.modelo-atual legend { font-size: .85rem; color: var(--suave); padding: 0 .3em; }
.modelo-linha { display: flex; align-items: center; gap: 1rem; }
.modelo-linha > div { flex: 1; min-width: 0; }
.modelo-linha .dica { margin-top: .15rem; }
.modelo-linha button { flex: 0 0 auto; }
.logo-linha { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.logo-opcoes { flex: 1 1 16rem; display: flex; flex-direction: column; gap: .4rem; }
.logo-previa {
  flex: 0 0 12rem; height: 7rem; display: flex; align-items: center; justify-content: center;
  border: 1px dashed var(--borda); border-radius: 4px; background: #fff; overflow: hidden;
}
.logo-previa img { max-height: 100%; object-fit: contain; }
fieldset.logo [hidden] { display: none; }

/* ---------- questões ---------- */
.cabeca-questoes { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; }
.cabeca-questoes h2 { font-size: 1.1rem; margin: 0; }
.ajuda { font-size: .85rem; }
.ajuda summary { cursor: pointer; color: var(--destaque); }
.ajuda table { margin-top: .4rem; background: #fff; border: 1px solid var(--borda); border-collapse: collapse; }
.ajuda td { padding: .25em .6em; border-bottom: 1px solid #eee; }

.blocos { list-style: none; padding: 0; margin: .8rem 0 0; display: flex; flex-direction: column; gap: 1.1rem; }
.bloco {
  position: relative; background: var(--cartao); border: 1.5px solid var(--cinza); border-radius: var(--raio);
  padding: 1.1rem 1rem .8rem; display: flex; flex-direction: column; gap: .6rem;
}
.bloco-topo { display: flex; align-items: center; gap: .6rem; }
.bloco .rotulo {
  position: absolute; top: -.75rem; left: 50%; transform: translateX(-50%);
  background: var(--cinza); color: #fff; font-weight: 700; font-size: .85rem;
  padding: .1em .7em; border-radius: 4px; white-space: nowrap;
}
.bloco .tipo { font-size: .8rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.ferramentas { margin-left: auto; display: flex; gap: .25rem; }
.ferramentas button { padding: .15em .5em; }
.ferramentas button.editar { margin-right: .3rem; border-color: var(--destaque); color: var(--destaque); font-weight: 600; }
.ferramentas button.editar:hover { background: #eef3f8; }
.dica { margin: 0; font-size: .85rem; color: var(--suave); }

.alternativas, .itens-vf { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .35rem; }
.alternativas li, .itens-vf li { display: flex; gap: .4rem; align-items: center; }
.alternativas .letra { width: 1.8em; color: var(--suave); }
.alternativas label.check { font-size: .8rem; white-space: nowrap; }
.itens-vf li { counter-increment: vf; }
.itens-vf li::before { content: counter(vf, upper-roman) "."; width: 2.2em; font-weight: 700; color: var(--suave); }
.itens-vf select { width: 3.5em; }
.itens-vf.afirmacoes select { width: 5.5em; }
.porque { margin: .1rem 0; text-align: center; font-weight: 700; letter-spacing: .08em; color: var(--suave); }
.alternativas button, .itens-vf button { padding: .15em .5em; }

.linha-campos { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: end; }
.linha-campos > label { flex: 1 1 10rem; }
.linha-campos > label.check { flex: 0 0 auto; padding-bottom: .4em; }

details.imagem summary { cursor: pointer; font-size: .85rem; color: var(--suave); }
.tem-imagem { font-style: italic; }
.imagem-corpo { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .5rem 1rem; margin-top: .5rem; align-items: end; }
.imagem-corpo input[type="file"], .imagem-corpo .miniatura, .imagem-corpo > button { grid-column: 1 / -1; }
.miniatura { max-height: 9rem; max-width: 100%; justify-self: start; border: 1px solid #eee; }
.imagem-corpo > button { justify-self: start; }

.vazio { color: var(--suave); text-align: center; padding: 1rem; }
.adicionar {
  display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: 1.2rem;
  padding: .8rem; border: 1px dashed var(--cinza); border-radius: var(--raio); background: #fafafa;
}
.adicionar span { font-weight: 600; margin-right: .3rem; }

/* ---------- resultado ---------- */
.acoes-gerar { display: flex; gap: .4rem; flex-wrap: wrap; }
.status { margin: 0; min-height: 1.2em; font-size: .9rem; color: var(--suave); }
.erro { background: #fdecec; border: 1px solid #e3a3a3; border-radius: var(--raio); padding: .6rem .8rem; color: #7a1f1f; }
.erro pre { margin: .5rem 0 0; white-space: pre-wrap; font-size: .8rem; max-height: 14rem; overflow: auto; }
.previa { position: relative; flex: 1; border: 1px solid var(--borda); border-radius: var(--raio); background: #e6e6e6; overflow: hidden; }
.previa iframe { width: 100%; height: 100%; border: 0; }
#linkPdf { font-size: .9rem; color: var(--destaque); }

/* ---------- banco de dados ---------- */
.situacao-banco { font-size: .8rem; font-weight: 400; opacity: .9; margin-left: .4rem; }
.separador { width: 1px; background: rgba(255,255,255,.5); margin: 0 .2rem; }
button.primario-topo { font-weight: 600; }

.dlg-provas {
  width: min(56rem, calc(100vw - 2rem)); max-height: 85vh;
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 1rem 1.2rem;
}
/* só a lista rola; topo, procura e rodapé ficam à vista */
.dlg-provas[open] { display: flex; flex-direction: column; overflow: hidden; }
.dlg-provas > * { flex: none; }
.dlg-provas > .lista-provas { flex: 1 1 auto; min-height: 6rem; overflow: auto; overscroll-behavior: contain; }
.lista-provas thead th { position: sticky; top: 0; z-index: 1; background: #fff; }
.dlg-provas::backdrop { background: rgba(0,0,0,.35); }
.dlg-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.dlg-topo h2 { margin: 0; font-size: 1.1rem; }
.dlg-provas .dica { margin: .5rem 0; }
.tabela-provas { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tabela-provas th { text-align: left; font-weight: 600; color: var(--suave); border-bottom: 2px solid var(--borda); padding: .35em .5em; }
.tabela-provas td { border-bottom: 1px solid #eee; padding: .4em .5em; vertical-align: middle; }
.tabela-provas td.num { text-align: right; width: 3.5em; color: var(--suave); }
.tabela-provas td.tit small { display: block; color: var(--suave); font-size: .8em; }
.tabela-provas td.cod { font-family: ui-monospace, monospace; letter-spacing: .05em; white-space: nowrap; }
.tabela-provas td.acoes { white-space: nowrap; text-align: right; }
.tabela-provas td.acoes button { padding: .2em .6em; }
.tabela-provas tr.atual td { background: #eef3f8; }
.provas-rodape {
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  margin-top: .9rem; padding-top: .7rem; border-top: 1px solid #eee;
}
.dlg-provas .provas-rodape .dica { margin: 0 auto 0 0; flex: 1 1 16rem; }
.dlg-provas #filtroProvas { width: 100%; }
.provas-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; margin-bottom: .6rem; }
.provas-botoes { display: flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.caminho-pastas { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .3rem; font-size: .95rem; }
.caminho-pastas[hidden] { display: none; }
.caminho-pastas .sep { color: var(--suave); }
.tabela-provas td.data { white-space: nowrap; }
.caminho-pastas [aria-current] { font-weight: 600; color: inherit; text-decoration: none; }
button.link {
  background: none; border: 0; padding: .1em .2em; color: var(--destaque); cursor: pointer;
  font: inherit; text-align: left; text-decoration: underline; text-underline-offset: 2px; border-radius: 4px;
}
.tabela-provas tr.pasta td.tit button.link { font-weight: 600; text-decoration: none; color: inherit; }
.tabela-provas tr.pasta td.tit button.link:hover { text-decoration: underline; }
.tabela-provas tr.pasta td.num { font-size: 1.1em; }
.tabela-provas tr[draggable="true"] { cursor: grab; }
.tabela-provas td.quando { white-space: nowrap; color: var(--suave); }
.soltar-aqui, .tabela-provas tr.soltar-aqui td { background: #dbe8f5 !important; outline: 2px dashed var(--destaque); outline-offset: -2px; }
.dlg-mover { border: 1px solid var(--borda); border-radius: var(--raio); padding: 1rem 1.2rem; width: min(28rem, calc(100vw - 2rem)); }
.dlg-mover::backdrop { background: rgba(0,0,0,.35); }
.dlg-mover h2 { margin: 0 0 .7rem; font-size: 1.05rem; overflow-wrap: anywhere; }
.dlg-mover label { display: block; margin-bottom: .3rem; color: var(--suave); }
.dlg-mover select { width: 100%; font: inherit; }
.dlg-mover-botoes { display: flex; justify-content: flex-end; gap: .5rem; margin: .8rem 0 0; }

/* ---------- versões embaralhadas ---------- */
.versoes { padding: .4rem .8rem .6rem; }
.versoes summary { cursor: pointer; font-weight: 600; }
.versoes-campos, .versoes-acoes { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem .8rem; margin-top: .5rem; }
.versoes-campos input[type="number"], .versoes-acoes input[type="number"] { width: 6.5em; }
.versoes-acoes.aplicar { border-top: 1px solid #eee; padding-top: .5rem; }
.versoes-campos .check { padding-bottom: .4em; }
.semente { display: flex; gap: .3rem; margin-top: .2em; }
.semente input { width: 9em !important; }
.versoes .dica { margin-top: .5rem; }

/* ---------- correção de cartões ---------- */
.correcao .editor { display: flex; flex-direction: column; gap: .8rem; }
.correcao .cabeca-questoes { margin-top: .4rem; }
.zona-imagens {
  padding: 1rem; border: 2px dashed var(--cinza); border-radius: var(--raio); background: #fafafa; text-align: center;
}
.zona-imagens p { margin: 0 0 .5rem; }
.zona-imagens .dica { margin-top: .6rem; }
.zona-imagens.arrastando { background: #eef3f8; border-color: var(--destaque); }
.erro ul { margin: .4rem 0 0; padding-left: 1.2rem; font-size: .85rem; }
.tabela-cartoes tbody tr { cursor: pointer; }
.tabela-cartoes tbody tr:hover td { background: #f6f8fb; }
.tabela-cartoes td.ra { font-family: ui-monospace, monospace; }
.tabela-cartoes td.arquivo { color: var(--suave); font-size: .8rem; max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sit-ok { color: #1d7a3a; }
.sit-revisar { color: #b35c00; font-weight: 600; }
.analise .rolagem { overflow-x: auto; }
.tabela-analise td, .tabela-analise th { text-align: center; white-space: nowrap; }
.tabela-analise td.certa { font-weight: 700; background: #e3f3e6; }
.tabela-analise td.fraco { color: var(--perigo); }

.detalhe { gap: .4rem; }
.detalhe-vazio { flex: 1; display: grid; place-items: center; color: var(--suave); border: 1px dashed var(--borda); border-radius: var(--raio); }
#detalhe { display: flex; flex-direction: column; gap: .4rem; flex: 1; min-height: 0; }
#detalhe[hidden] { display: none; }
.detalhe-topo, .detalhe-acoes { display: flex; align-items: end; gap: .6rem; flex-wrap: wrap; }
.detalhe-topo label { display: flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--texto); }
.detalhe-topo input { width: 10em; font-family: ui-monospace, monospace; margin: 0; }
.detalhe-topo .navegar { margin-left: auto; display: flex; gap: .25rem; }
.detalhe-acoes select { width: auto; }
.detalhe-acoes #btRemover { margin-left: auto; }
.alertas { margin: 0; min-height: 1.2em; font-size: .85rem; color: #b35c00; }
.quadro-imagem { flex: 1; min-height: 0; overflow: auto; border: 1px solid var(--borda); border-radius: var(--raio); background: #e6e6e6; }
.quadro-imagem canvas { display: block; cursor: crosshair; }
.quadro-imagem p { padding: 1rem; color: var(--suave); }
.respostas-digitais { padding: 0 1rem 1rem; background: #fff; min-height: 100%; }
.respostas-digitais table { border-collapse: collapse; }
.respostas-digitais th, .respostas-digitais td { padding: .25rem .8rem; border-bottom: 1px solid var(--borda); text-align: center; }
.respostas-digitais .certa { color: #1a7f37; font-weight: 600; }
.respostas-digitais .errada { color: #c62828; font-weight: 600; }
.legenda { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; }
.amostra { display: inline-block; width: .9em; height: .9em; border-radius: 50%; border: 3px solid; }
.amostra.azul { border-color: rgb(30,90,220); }
.amostra.verde { border-color: rgb(20,150,60); }
.amostra.laranja { border: 2px dashed rgb(230,120,0); border-radius: 2px; }

/* ---------- usuário logado (menu no topo, aviso de sessão terminada) ---------- */
.menu-usuario { position: relative; margin-left: .4rem; }
.botao-usuario {
  display: inline-flex; align-items: center; gap: .45rem; padding: .25em .7em .25em .3em;
  border-radius: 999px; border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.12); color: #fff;
}
.botao-usuario:hover, .botao-usuario[aria-expanded="true"] { background: rgba(255,255,255,.22); border-color: #fff; }
.avatar {
  display: inline-grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%;
  background: #fff; color: var(--destaque); font-size: .78rem; font-weight: 700;
}
.nome-usuario { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.menu-usuario .menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 50; min-width: 15rem; padding: .35rem;
  display: grid; background: #fff; color: var(--texto); border: 1px solid var(--borda); border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0,0,0,.18);
}
.menu-usuario .menu[hidden] { display: none; }
.menu-cabeca { display: grid; padding: .45rem .6rem .6rem; margin-bottom: .25rem; border-bottom: 1px solid #eceff2; font-size: .9rem; }
.menu-cabeca span { color: var(--suave); font-size: .8rem; overflow: hidden; text-overflow: ellipsis; }
.menu-usuario .menu a, .menu-usuario .menu button {
  display: block; width: 100%; text-align: left; padding: .5em .6em; border: 0; border-radius: 5px;
  background: none; color: var(--texto); text-decoration: none; font-size: .9rem;
}
.menu-usuario .menu a:hover, .menu-usuario .menu button:hover { background: #f0f3f6; }
.menu-usuario .menu [data-sair] { color: var(--perigo); }

.aviso-sessao {
  position: fixed; left: 50%; top: 1rem; translate: -50% 0; z-index: 100; max-width: calc(100% - 2rem);
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; padding: .75rem 1rem;
  background: #fff7e6; color: #5c3f00; border: 1px solid #f3dca8; border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.aviso-sessao a { font-weight: 600; color: var(--destaque); }
.aviso-sessao button { padding: .15em .5em; }

/* ---------- importar questão ---------- */
.adicionar .separador { align-self: stretch; background: var(--borda); margin: 0 .3rem; }
button.importar { border-color: var(--destaque); color: var(--destaque); font-weight: 600; }
button.importar:hover { background: #eef3f8; }
.bloco.importado { animation: importado 2.5s ease-out; }
@keyframes importado { from { box-shadow: 0 0 0 4px rgba(47, 93, 138, .45); background: #eef3f8; } }
@media (prefers-reduced-motion: reduce) { .bloco.importado { animation: none; outline: 3px solid var(--destaque); } }

.dlg-importar {
  width: min(76rem, calc(100vw - 2rem)); height: min(52rem, calc(100vh - 2rem));
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 1rem 1.2rem;
  flex-direction: column; gap: .7rem;
}
.dlg-importar[open] { display: flex; }
.dlg-importar::backdrop { background: rgba(0,0,0,.35); }
.dlg-importar .dlg-topo { margin: 0; }
.dlg-importar.arrastando { outline: 3px dashed var(--destaque); outline-offset: -6px; }
.imp-corpo { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 1rem; }
.imp-entrada { display: flex; flex-direction: column; gap: .5rem; min-height: 0; }
.imp-entrada > label { font-weight: 600; font-size: .9rem; }
#impTexto { flex: 1; min-height: 10rem; resize: none; font: .85rem/1.45 ui-monospace, monospace; padding: .6rem; }
.imp-arquivo { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.imp-cowork summary { cursor: pointer; font-size: .9rem; color: var(--destaque); font-weight: 600; }
.imp-cowork[open] { display: flex; flex-direction: column; gap: .4rem; }
.imp-cowork .dica { margin-top: .3rem; }
.imp-cowork pre {
  margin: 0; max-height: 11rem; overflow: auto; white-space: pre-wrap; font-size: .75rem;
  background: #f6f6f4; border: 1px solid var(--borda); border-radius: var(--raio); padding: .5rem .6rem;
}
.imp-cowork button { align-self: start; }

.imp-previa {
  display: flex; flex-direction: column; min-height: 0; overflow: auto;
  background: var(--fundo); border-radius: var(--raio); padding: .7rem .8rem;
}
.imp-previa h3 { margin: 0 0 .5rem; font-size: .95rem; }
#impResumo { font-weight: 400; color: var(--suave); font-size: .85rem; margin-left: .3rem; }
.imp-avisos { margin: 0 0 .6rem; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .3rem; }
.imp-avisos:empty { display: none; }
.imp-avisos li { background: #fff4e0; border: 1px solid #f0c77a; border-radius: var(--raio); padding: .35rem .6rem; font-size: .85rem; color: #6b4300; }
.imp-blocos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.imp-bloco {
  background: var(--cartao); border: 1.5px solid var(--cinza); border-radius: var(--raio);
  padding: .6rem .8rem; display: flex; flex-direction: column; gap: .45rem; transition: border-color .15s;
}
.imp-bloco.alvo { border-color: var(--destaque); box-shadow: 0 0 0 3px rgba(47, 93, 138, .25); }
.imp-topo .tipo { font-size: .75rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; margin-left: .3rem; }
.imp-enunciado { margin: 0; white-space: pre-wrap; font-size: .9rem; line-height: 1.45; }
.imp-enunciado.falta { color: var(--perigo); font-style: italic; }
.imp-alts { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .2rem; }
.imp-alts button {
  width: 100%; text-align: left; display: flex; gap: .4rem; border-color: transparent; background: none;
  padding: .25em .45em; font-size: .88rem;
}
.imp-alts button:hover { border-color: var(--borda); background: #fafafa; }
.imp-alts .letra { color: var(--suave); min-width: 1.4em; }
.imp-alts li.certa button { background: #e3f3e6; border-color: #9fd0aa; font-weight: 600; }
.imp-alts li.certa .letra::after { content: " ✓"; color: #1d7a3a; }
.imp-alts.vf li { display: flex; gap: .5rem; font-size: .88rem; }
.imp-alts.vf .resp { font-weight: 700; min-width: 1.2em; }
.imp-resposta { margin: 0; font-size: .85rem; white-space: pre-wrap; color: var(--suave); }
.imp-aviso { margin: 0; font-size: .85rem; color: #b35c00; font-weight: 600; }
.imp-imagem { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; border-top: 1px dashed #ddd; padding-top: .45rem; }
.imp-imagem img { max-height: 8rem; max-width: 100%; border: 1px solid #eee; flex-basis: 100%; object-fit: contain; object-position: left; }
.imp-imagem .dica { flex: 1; }
.imp-imagem label.botao {
  font-size: .8rem; padding: .25em .6em; border: 1px solid var(--borda); border-radius: var(--raio); background: #fff; cursor: pointer;
}
.imp-imagem label.botao:hover { border-color: var(--cinza); }
.imp-imagem button { font-size: .8rem; padding: .25em .6em; }
.imp-vazio { margin: auto; color: var(--suave); text-align: center; padding: 2rem 1rem; }
.imp-rodape { display: flex; align-items: center; gap: .5rem; }
.imp-rodape .dica { margin-right: auto; }

@media (max-width: 800px) {
  .dlg-importar { height: calc(100vh - 1rem); padding: .8rem; }
  .imp-corpo { grid-template-columns: 1fr; grid-template-rows: minmax(12rem, 1fr) minmax(12rem, 1fr); }
  .imp-rodape .dica { display: none; }
}
.imp-bloco code { font-size: .85em; }

/* ---------- modelo da prova ---------- */
.dlg-modelo {
  width: min(62rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem);
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 1rem 1.2rem;
  flex-direction: column; gap: .7rem;
}
.dlg-modelo[open] { display: flex; }
.dlg-modelo::backdrop { background: rgba(0,0,0,.35); }
.dlg-modelo .dlg-topo { margin: 0; }
.dlg-modelo.arrastando { outline: 3px dashed var(--destaque); outline-offset: -6px; }
.mod-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .8rem; overflow: auto; padding: 3px; }
.mod-cartao {
  display: flex; flex-direction: column; align-items: stretch; gap: .35rem; text-align: left;
  padding: .6rem; border: 1.5px solid var(--borda); background: #fff; cursor: pointer;
}
.mod-cartao:hover { border-color: var(--cinza); }
.mod-cartao[aria-checked="true"] { border-color: var(--destaque); box-shadow: 0 0 0 2px var(--destaque); background: #f4f8fc; }
.mod-cartao strong { font-size: .95rem; }
.mod-cartao .dica { font-size: .8rem; }
.mod-mini {
  display: grid; place-items: center; aspect-ratio: 210 / 190; overflow: hidden;
  border: 1px solid #e3e3e3; border-radius: 3px; background: #f7f7f7;
  font: 600 1.6rem ui-monospace, monospace; color: var(--suave);
}
.mod-mini img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.mod-enviar { border-style: dashed; background: #fafafa; }
.mod-enviar .mod-mini { font: 300 3rem system-ui, sans-serif; background: transparent; border-style: dashed; }
.mod-ajuda { font-size: .9rem; }
.mod-ajuda summary { cursor: pointer; color: var(--destaque); font-weight: 600; }
.mod-ajuda ol { margin: .5rem 0; padding-left: 1.4rem; display: flex; flex-direction: column; gap: .3rem; }
.mod-ajuda code { font-size: .85em; }
.dlg-modelo .status:empty { display: none; }
.mod-rodape { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.mod-rodape .espaco { flex: 1; }

@media (max-width: 800px) {
  .dlg-modelo { padding: .8rem; }
  .mod-grade { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: .6rem; }
}

/* ---------- negrito/itálico e associar colunas ---------- */
.formatar { display: flex; gap: .2rem; }
.formatar button { padding: .1em .55em; min-width: 2em; font-family: Georgia, serif; }
.associar { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem 1rem; }
.associar > div { display: flex; flex-direction: column; gap: .35rem; align-items: flex-start; }
.associar > div > input, .associar ol { width: 100%; }
.associar > div > input { font-weight: 600; }
.associar .coluna-b select { width: 4.8em; flex: 0 0 auto; }
@media (max-width: 700px) { .associar { grid-template-columns: 1fr; } }
.imp-associar { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

/* ---------- fórmulas (botões √x e H₂O; editor MathLive) ---------- */
.formatar button[data-formula] { font-family: inherit; font-size: .85em; }
.dlg-formula {
  width: min(40rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem);
  border: 1px solid var(--borda); border-radius: var(--raio); padding: 1rem 1.2rem;
  flex-direction: column; gap: .6rem;
}
.dlg-formula[open] { display: flex; }
.dlg-formula::backdrop { background: rgba(0,0,0,.35); }
.dlg-formula .dlg-topo { margin: 0; }
.dlg-formula .dica { margin: 0; font-size: .85rem; }
.dlg-formula kbd { font: .85em ui-monospace, monospace; background: #f3f3f3; border: 1px solid var(--borda); border-radius: 3px; padding: 0 .3em; }
.dlg-formula .status.erro[hidden] { display: none; }
.formula-mat, .formula-quim { display: flex; flex-direction: column; gap: .5rem; }
.formula-mat[hidden], .formula-quim[hidden] { display: none; }
.caixa-formula { min-height: 3.2rem; border: 1.5px solid var(--borda); border-radius: var(--raio); background: #fff; display: flex; align-items: center; }
.caixa-formula math-field { flex: 1; font-size: 1.5rem; border: 0; padding: .3rem .5rem; outline: none; }
.caixa-formula:focus-within { border-color: var(--destaque); }
.previa-quim { padding: 0 .5rem; background: #fafafa; }
.previa-quim math-field::part(virtual-keyboard-toggle), .previa-quim math-field::part(menu-toggle) { display: none; }
.formula-quim label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; font-size: .9rem; }
#campoQuim { font: 1.05rem ui-monospace, monospace; padding: .45rem .5rem; }
.atalhos-quim { display: flex; flex-wrap: wrap; gap: .25rem; }
.atalhos-quim button { min-width: 2.4em; padding: .15em .45em; }
.formula-rodape { display: flex; justify-content: flex-end; gap: .5rem; }
/* teclado virtual dentro da janela (container = dialog): ocupa o próprio espaço, abaixo do rodapé */
.dlg-formula .ML__keyboard { position: relative; height: auto !important; width: auto !important; margin: 0 -1.2rem -1rem; }
.dlg-formula .ML__keyboard .MLK__backdrop,
.dlg-formula .ML__keyboard .MLK__plate { position: relative; inset: auto !important; width: auto !important; height: auto !important; transform: none !important; }

/* ---------- valores das questões ---------- */
.bloco-topo { flex-wrap: wrap; }
.bloco .valor { display: flex; align-items: center; gap: .3rem; font-size: .8rem; color: var(--suave); }
.bloco .valor[hidden] { display: none; }
.bloco .valor input { width: 4.2em; padding: .15em .3em; text-align: right; }
.bloco .disciplina { display: flex; align-items: center; gap: .3rem; font-size: .8rem; color: var(--suave); }
.bloco .disciplina input { width: 10em; padding: .15em .3em; }
.bloco .valor input:disabled { background: #f0f0f0; color: #333; cursor: help; }
.barra-valores { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem 1rem; margin: .5rem 0 .2rem; font-size: .9rem; }
.barra-valores #somaValores { font-weight: 600; }
.barra-valores label { display: flex; align-items: center; gap: .35rem; color: var(--suave); }
.barra-valores input { width: 7em; padding: .2em .35em; text-align: right; }
.aviso-valores { color: #8a5a00; }
.aviso-valores.ok { color: #2e6b2e; }

/* Dissertativa com itens: (a), (b)… cada um com linhas, resposta esperada e figura */
.partes { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .7rem; }
.partes > li { display: flex; flex-direction: column; gap: .4rem; padding: .5rem .6rem; border-left: 3px solid var(--cinza); background: rgba(0, 0, 0, .02); }
.parte-topo { display: flex; gap: .4rem; align-items: flex-start; }
.parte-topo .letra { width: 1.8em; padding-top: .35em; font-weight: 700; color: var(--suave); }
.parte-topo textarea { flex: 1; }
.parte-topo button { padding: .15em .5em; }
.partes .linha-campos > label:not(.largo) { flex: 0 1 8rem; }
.partes .linha-campos > label.largo { flex: 1 1 16rem; }
details.imagem-parte summary { cursor: pointer; font-size: .85rem; color: var(--suave); }
.miniatura-parte { max-height: 9rem; max-width: 100%; justify-self: start; border: 1px solid #eee; grid-column: 1 / -1; }
.imagem-corpo > label.largo { grid-column: span 2; }
.imp-alts.vf li:has(> .imp-figura, > .imp-aviso) { flex-wrap: wrap; }
.imp-alts li > .imp-figura { flex-basis: 100%; max-width: 14rem; max-height: 7rem; object-fit: contain; object-position: left; }
.imp-alts li > .imp-aviso { flex-basis: 100%; margin: 0; }

/* ---------- janela "Nova questão" (mesmo visual do cadastro de e-mail dos alunos, acesso.css) ---------- */
.dlg-questao {
  --azul: #2f5d8a; --azul-escuro: #1c3b5a; --tinta: #1d2b3a; --foco: rgba(47, 93, 138, .2);
  width: min(52rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: 18px; overflow: hidden;
  flex-direction: column; color: var(--tinta);
  box-shadow: 0 1px 2px rgba(16, 32, 48, .06), 0 24px 60px -12px rgba(16, 32, 48, .45);
}
.dlg-questao[open] { display: flex; animation: surgirQuestao .35s cubic-bezier(.2, .8, .2, 1) both; }
.dlg-questao.tremer { animation: tremerQuestao .4s; }
@keyframes surgirQuestao { from { opacity: 0; transform: translateY(14px) scale(.985); } }
@keyframes tremerQuestao { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
.dlg-questao::backdrop { background: rgba(20, 34, 50, .5); backdrop-filter: blur(2px); }

.questao-topo {
  flex: none; display: flex; align-items: center; gap: .8rem; padding: 1rem 1.2rem 1rem 1.4rem; color: #fff;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255, 255, 255, .09) 1.5px, transparent 0) 0 0 / 22px 22px,
    linear-gradient(135deg, var(--azul-escuro), var(--azul));
}
.questao-topo img { border-radius: 10px; background: #f4f5f7; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.questao-topo > div { flex: 1; min-width: 0; }
.questao-numero { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; opacity: .75; }
.questao-topo h2 { margin: 0; font-size: 1.3rem; letter-spacing: -.01em; }
.questao-fechar {
  width: 36px; height: 36px; padding: 0; border: 0; border-radius: 10px; font-size: 1rem;
  background: rgba(255, 255, 255, .12); color: #fff;
}
.questao-fechar:hover { background: rgba(255, 255, 255, .24); }

.questao-corpo {
  flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 1.4rem 1.6rem;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(47, 93, 138, .07) 1.5px, transparent 0) 0 0 / 22px 22px,
    #fbfcfd;
}
.dlg-questao .blocos { margin: 0; }
/* dentro da janela o cartão não tem moldura: rótulo e tipo já estão no topo, e mover/duplicar/excluir não se aplicam */
.dlg-questao .bloco { border: 0; padding: 0; background: none; gap: 1rem; }
.dlg-questao .bloco .rotulo, .dlg-questao .bloco .tipo, .dlg-questao .ferramentas { display: none; }
.dlg-questao .bloco-topo { gap: .6rem 1.2rem; }
.dlg-questao .formatar { margin-left: auto; }

/* campos */
.dlg-questao label { font-size: .85rem; font-weight: 600; color: #44505c; }
.dlg-questao label.check { font-weight: 500; color: var(--tinta); }
.dlg-questao input:not([type="checkbox"], [type="radio"], [type="file"]), .dlg-questao textarea, .dlg-questao select {
  font-weight: 400; color: var(--tinta); border: 1.5px solid #d5dce3; border-radius: 10px; background: #f9fbfc;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.dlg-questao input:not([type="checkbox"], [type="radio"], [type="file"]), .dlg-questao select { min-height: 38px; padding: .3em .65em; }
.dlg-questao textarea { padding: .55em .75em; line-height: 1.45; }
.dlg-questao input:hover, .dlg-questao textarea:hover, .dlg-questao select:hover { border-color: #b9c4ce; }
.dlg-questao input:focus, .dlg-questao textarea:focus, .dlg-questao select:focus {
  outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco);
}
.dlg-questao input[type="checkbox"], .dlg-questao input[type="radio"] { accent-color: var(--azul); width: 16px; height: 16px; }
.dlg-questao .enunciado textarea { min-height: 6.5rem; font-size: 1rem; }
.dlg-questao .bloco .valor, .dlg-questao .bloco .disciplina { font-size: .85rem; color: #44505c; }
.dlg-questao .bloco .valor input { width: 5em; }
.dlg-questao .bloco .disciplina input { width: 13em; }
.dlg-questao .dica { color: #6d7b89; }

/* botões pequenos (formatação, + alternativa, ✕) */
.dlg-questao .bloco button { border: 1.5px solid #d5dce3; border-radius: 9px; background: #fff; color: var(--tinta); }
.dlg-questao .bloco button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-questao .bloco button:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
.dlg-questao .formatar button { min-width: 2.3em; height: 34px; }
.dlg-questao .bloco button[data-acao="removerItem"] { border-color: transparent; color: #8795a3; background: none; }
.dlg-questao .bloco button[data-acao="removerItem"]:hover { color: #a33; background: #fbeeee; }

/* alternativas: linhas arejadas e a correta destacada em verde */
.dlg-questao .alternativas { gap: .5rem; }
.dlg-questao .alternativas .letra { font-weight: 700; color: #6d7b89; }
.dlg-questao .alternativas li:has(input[data-correta]:checked) input[data-prop] { border-color: #3aa876; background: #f1faf5; }
.dlg-questao .alternativas li:has(input[data-correta]:checked) label.check { color: #1f7a4f; font-weight: 650; }
/* dissertativa com itens: cada item é um cartão; valor, espaço e linhas numa linha e a resposta esperada abaixo */
.dlg-questao .partes { gap: .9rem; }
.dlg-questao .partes > li {
  gap: .7rem; padding: .9rem 1rem; background: #fff;
  border: 1.5px solid #e1e7ed; border-left: 4px solid var(--azul); border-radius: 12px;
}
.dlg-questao .parte-topo .letra { padding-top: .45em; font-size: 1.05rem; color: var(--azul); }
.dlg-questao .partes .linha-campos, .dlg-questao .partes details.imagem-parte { margin-left: 2.2rem; }
.dlg-questao .partes .linha-campos { gap: .7rem 1rem; }
.dlg-questao .partes .linha-campos > label:not(.largo) { flex: 0 0 9.5rem; }
.dlg-questao .partes .linha-campos > label.largo { flex: 1 0 100%; }
.dlg-questao .partes [data-prop="resposta"] { min-height: 3.6rem; }
.dlg-questao details.imagem-parte summary { font-weight: 600; color: #44505c; }
@media (max-width: 700px) {
  .dlg-questao .partes .linha-campos, .dlg-questao .partes details.imagem-parte { margin-left: 0; }
  .dlg-questao .partes .linha-campos > label:not(.largo) { flex: 1 1 7rem; }
}
/* campos de cada tipo: um por linha, com respiro; botões seguidos ficam lado a lado */
.dlg-questao .especifico { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .8rem .5rem; }
.dlg-questao .especifico:empty { display: none; }
.dlg-questao .especifico > :not(button) { flex: 1 0 100%; min-width: 0; }
.dlg-questao .especifico > .dica { margin-bottom: -.4rem; }
/* números curtos (linhas, tamanho da grade) não ocupam a largura toda */
.dlg-questao .bloco:is([data-tipo="dissertativa"], [data-tipo="desenho"]) .linha-campos > label { flex: 0 0 14rem; }
/* lacunas: a caixa do banco de palavras numa linha; palavras extras e largura da lacuna abaixo */
.dlg-questao .bloco[data-tipo="lacunas"] .linha-campos > label.check { flex: 1 0 100%; padding: 0; }
.dlg-questao .bloco[data-tipo="lacunas"] .linha-campos > label:not(.check) { flex: 1 1 18rem; }
.dlg-questao .bloco[data-tipo="lacunas"] .linha-campos > label:has([data-campo="larguraLacuna"]) { flex: 0 0 14rem; }
.dlg-questao .bloco[data-tipo="lacunas"] [data-campo="texto"] { min-height: 7rem; }
.dlg-questao .bloco[data-tipo="dissertativa"] [data-campo="resposta"] { min-height: 5.5rem; }
.dlg-questao details.imagem { padding: .6rem .8rem; border: 1.5px dashed #d5dce3; border-radius: 10px; background: #fff; }
.dlg-questao details.imagem summary { font-weight: 600; color: #44505c; }

.questao-rodape {
  flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .9rem 1.4rem;
  background: #fff; border-top: 1px solid #e6ebf0;
}
.questao-rodape .dica { margin-right: auto; color: #8795a3; font-size: .8rem; }
.questao-rodape > button:not(.botao-questao) { height: 44px; padding: 0 1.1rem; border: 1.5px solid #d5dce3; border-radius: 11px; color: var(--tinta); }
.questao-erro {
  flex: 1 0 100%; margin: 0; padding: .65rem .8rem; border-radius: 10px; font-size: .9rem; line-height: 1.4;
  background: #fdf0f0; color: #8f2424; border: 1px solid #f2caca;
}
.questao-erro.aviso { background: #fff7e6; color: #7a5200; border-color: #f3dca8; }
.botao-questao {
  height: 44px; padding: 0 1.4rem; border: 0; border-radius: 11px;
  font-size: 1rem; font-weight: 650; color: #fff; letter-spacing: .01em;
  background: linear-gradient(180deg, #386ca0, var(--azul));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 8px 18px -8px rgba(47, 93, 138, .8);
  transition: transform .12s, filter .15s;
}
.botao-questao:hover { filter: brightness(1.06); transform: translateY(-1px); }
.botao-questao:active { transform: none; }
.botao-questao:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco), 0 8px 18px -8px rgba(47, 93, 138, .8); }

@media (max-width: 700px) {
  .dlg-questao { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }
  .questao-corpo { padding: 1rem; }
  .questao-rodape { padding: .8rem 1rem; }
  .questao-rodape .dica { display: none; }
  .questao-rodape > button { flex: 1; }
  .dlg-questao .formatar { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .dlg-questao[open], .dlg-questao.tremer { animation: none; } }

/* ---------- janela "Importar questão" no mesmo visual (classes dlg-questao + dlg-importar) ---------- */
.dlg-questao.dlg-importar { width: min(76rem, calc(100vw - 2rem)); height: min(52rem, calc(100vh - 2rem)); padding: 0; gap: 0; }
.dlg-importar .imp-corpo {
  padding: 1.2rem 1.4rem; gap: 1.2rem;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(47, 93, 138, .07) 1.5px, transparent 0) 0 0 / 22px 22px,
    #fbfcfd;
}
.dlg-importar .imp-entrada { gap: .7rem; }
.dlg-importar #impTexto { padding: .8rem .9rem; font-size: .85rem; border-radius: 12px; }
.dlg-importar .imp-arquivo button, .dlg-importar .imp-cowork button {
  height: 38px; padding: 0 1rem; border: 1.5px solid #d5dce3; border-radius: 10px; background: #fff; color: var(--tinta); font-weight: 600;
}
.dlg-importar .imp-arquivo button:hover, .dlg-importar .imp-cowork button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-importar .imp-cowork { padding: .6rem .8rem; border: 1.5px dashed #d5dce3; border-radius: 10px; background: #fff; }
.dlg-importar .imp-cowork summary { color: var(--azul); }
.dlg-importar .imp-cowork pre { background: #f6f8fa; border: 1.5px solid #e1e7ed; border-radius: 10px; }
/* prévia: painel branco com os blocos reconhecidos como cartões */
.dlg-importar .imp-previa { padding: 1rem 1.1rem; background: #fff; border: 1.5px solid #e1e7ed; border-radius: 14px; }
.dlg-importar .imp-previa h3 { font-size: 1rem; color: var(--tinta); }
.dlg-importar .imp-bloco { border: 1.5px solid #e1e7ed; border-left: 4px solid var(--azul); border-radius: 12px; padding: .8rem 1rem; }
.dlg-importar .imp-bloco.alvo { border-color: var(--azul); box-shadow: 0 0 0 4px var(--foco); }
.dlg-importar .imp-alts button { border-radius: 8px; }
.dlg-importar .imp-alts li.certa button { background: #f1faf5; border-color: #3aa876; color: #1f7a4f; }
.dlg-importar .imp-avisos li { border-radius: 10px; background: #fff7e6; border-color: #f3dca8; color: #7a5200; }
.dlg-importar .imp-vazio { color: #8795a3; }
.dlg-importar .imp-imagem label.botao, .dlg-importar .imp-imagem button {
  border: 1.5px solid #d5dce3; border-radius: 9px; background: #fff; color: var(--tinta); font-weight: 600;
}
.dlg-importar .imp-imagem label.botao:hover, .dlg-importar .imp-imagem button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-importar.arrastando { outline: 3px dashed var(--azul); outline-offset: -8px; }
.botao-questao:disabled { opacity: .5; cursor: default; filter: none; transform: none; box-shadow: none; }
@media (max-width: 700px) {
  .dlg-questao.dlg-importar { width: 100vw; height: 100dvh; }
  .dlg-importar .imp-corpo { padding: 1rem; }
}

/* ---------- janela "Nova prova" (mesmo visual da janela de questão) ---------- */
.dlg-nova-prova { width: min(46rem, calc(100vw - 2rem)); }
.dlg-nova-prova .questao-corpo { display: flex; flex-direction: column; gap: 1rem; }
.dlg-nova-prova .questao-erro { flex: none; }
.dlg-nova-prova .grade { gap: .9rem 1.1rem; }
.dlg-nova-prova button.link { margin-left: .3rem; font-size: .85rem; }
.dlg-aplicar { width: min(44rem, calc(100vw - 2rem)); }
.dlg-aplicar .questao-corpo { display: flex; flex-direction: column; gap: 1rem; }
.dlg-aplicar .questao-erro { flex: none; }
.dlg-aplicar .modo-aplicar { display: flex; flex-direction: column; gap: .6rem; border: 1px solid var(--borda, #d5dce3); border-radius: 10px; padding: .6rem .9rem .8rem; }
.dlg-aplicar .modo-aplicar label.check { align-items: flex-start; gap: .55rem; }
.dlg-aplicar .modo-aplicar input { margin-top: .25rem; }
.dlg-aplicar .grade[hidden] { display: none; }
.dlg-aplicar .rotulo-campo { display: block; font-weight: 600; margin-bottom: .3rem; }
.turmas-pacote { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
@media (max-width: 700px) { .dlg-nova-prova .grade { grid-template-columns: 1fr; } }

/* ---------- "Salvar no banco": barra de progresso no topo e aviso (toast) no canto ---------- */
.progresso-topo { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; overflow: hidden; background: rgba(255, 255, 255, .18); }
.progresso-topo span {
  display: block; width: 0; height: 100%; background: linear-gradient(90deg, #9cc3ea, #fff);
  box-shadow: 0 0 8px rgba(255, 255, 255, .8); transition: width .2s ease-out;
}
/* tudo enviado, esperando o servidor gravar: um trecho que corre de um lado ao outro */
.progresso-topo.esperando span { width: 35% !important; transition: none; animation: correrBarra 1.1s ease-in-out infinite; }
@keyframes correrBarra { from { transform: translateX(-100%); } to { transform: translateX(290%); } }

.toasts {
  position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 200; width: min(24rem, calc(100vw - 2rem));
  display: flex; flex-direction: column; gap: .6rem; pointer-events: none;
}
.toast {
  pointer-events: auto; display: flex; align-items: flex-start; gap: .8rem; padding: .9rem 1rem;
  background: #fff; color: #1d2b3a; border-radius: 14px; border: 1px solid #e1e7ed; border-left: 4px solid #3aa876;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .06), 0 16px 40px -12px rgba(16, 32, 48, .35);
  animation: entrarToast .35s cubic-bezier(.2, .8, .2, 1) both;
}
.toast.erro { border-left-color: #c0392b; }
.toast.saindo { animation: sairToast .25s ease-in both; }
@keyframes entrarToast { from { opacity: 0; transform: translateY(12px) scale(.98); } }
@keyframes sairToast { to { opacity: 0; transform: translateX(16px); } }
.toast-icone {
  flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
  font-weight: 800; background: #e6f5ee; color: #1f7a4f;
}
.toast.erro .toast-icone { background: #fbeaea; color: #a33; }
.toast > div { flex: 1; min-width: 0; }
.toast b { display: block; font-size: .95rem; }
.toast p { margin: .15rem 0 0; font-size: .85rem; color: #5b6875; line-height: 1.4; overflow-wrap: anywhere; }
.toast > button { flex: none; padding: .1em .45em; border: 0; background: none; color: #8795a3; border-radius: 8px; }
.toast > button:hover { background: #eef2f6; color: #1d2b3a; }
@media (max-width: 700px) { .toasts { left: 1rem; right: 1rem; bottom: 1rem; width: auto; } }
@media (prefers-reduced-motion: reduce) {
  .toast, .toast.saindo { animation: none; }
  .progresso-topo.esperando span { animation: none; width: 100% !important; opacity: .6; }
}

/* ---------- página do editor (index.php) no visual azul das janelas; corrigir.php e as outras janelas ficam como estavam ---------- */
.pagina-editor {
  --azul: #2f5d8a; --azul-escuro: #1c3b5a; --tinta: #1d2b3a; --foco: rgba(47, 93, 138, .2);
  --linha: #e1e7ed; --campo: #d5dce3;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(47, 93, 138, .08) 1.5px, transparent 0) 0 0 / 22px 22px,
    #eef1f5;
}

/* topo azul, botões translúcidos */
.pagina-editor .topo {
  padding: .7rem 1.4rem;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255, 255, 255, .09) 1.5px, transparent 0) 0 0 / 22px 22px,
    linear-gradient(135deg, var(--azul-escuro), var(--azul));
  box-shadow: 0 1px 2px rgba(16, 32, 48, .1), 0 8px 24px -12px rgba(16, 32, 48, .5);
}
.pagina-editor .faixa-local { margin: -.7rem -1.4rem 0; }
.pagina-editor .topo h1.marca img { border-radius: 10px; }
.pagina-editor .acoes-arquivo { align-items: center; }
.pagina-editor .acoes-arquivo > button, .pagina-editor .acoes-arquivo > a.botao {
  height: 36px; padding: 0 .95rem; display: inline-flex; align-items: center;
  border: 1px solid rgba(255, 255, 255, .3); border-radius: 10px; background: rgba(255, 255, 255, .1); color: #fff;
  transition: background .15s, border-color .15s;
}
.pagina-editor .acoes-arquivo > button:hover, .pagina-editor .acoes-arquivo > a.botao:hover { background: rgba(255, 255, 255, .22); border-color: rgba(255, 255, 255, .6); }
.pagina-editor .acoes-arquivo > button.primario-topo { background: #fff; border-color: #fff; color: var(--azul-escuro); }
.pagina-editor .acoes-arquivo > button.primario-topo:hover { background: #e9f0f7; }
.pagina-editor .acoes-arquivo > :focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(255, 255, 255, .35); }
.pagina-editor .separador { background: rgba(255, 255, 255, .3); align-self: stretch; }
.pagina-editor .botao-usuario { height: 36px; }

.pagina-editor .layout { gap: 1.2rem; padding: 1.2rem; color: var(--tinta); }

/* painéis brancos arredondados (identificação, versões) */
.pagina-editor .painel {
  border: 1px solid var(--linha); border-radius: 16px; padding: .9rem 1.3rem 1.2rem; background: #fff;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-editor .painel > summary { font-size: 1.02rem; color: var(--tinta); padding: .2rem 0 .8rem; }
.pagina-editor .painel > summary::marker { color: var(--azul); }
.pagina-editor .editor > .painel .grade { gap: .9rem 1.1rem; }
.pagina-editor fieldset.logo, .pagina-editor fieldset.modelo-atual {
  margin-top: 1rem; padding: .7rem 1rem .9rem; border: 1.5px solid var(--linha); border-radius: 12px; background: #fbfcfd;
}
.pagina-editor fieldset.logo legend, .pagina-editor fieldset.modelo-atual legend { font-weight: 600; color: #44505c; padding: 0 .4em; }
.pagina-editor .logo-previa { border: 1.5px dashed var(--campo); border-radius: 10px; }

/* campos (não pega as janelas, que têm o próprio estilo) */
.pagina-editor :is(.editor > .painel, #listaBlocos, .barra-valores, .resultado) label { font-weight: 600; color: #44505c; }
.pagina-editor :is(.editor > .painel, #listaBlocos, .barra-valores, .resultado) label.check { font-weight: 500; color: var(--tinta); }
.pagina-editor :is(.editor > .painel, #listaBlocos, .barra-valores, .resultado) :is(input:not([type="checkbox"], [type="radio"], [type="file"], [type="range"]), textarea, select) {
  font-weight: 400; color: var(--tinta); border: 1.5px solid var(--campo); border-radius: 10px; background: #f9fbfc;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pagina-editor :is(.editor > .painel, #listaBlocos, .resultado) :is(input:not([type="checkbox"], [type="radio"], [type="file"], [type="range"]), select) { min-height: 38px; padding: .3em .65em; }
.pagina-editor :is(.editor > .painel, #listaBlocos, .resultado) textarea { padding: .55em .75em; line-height: 1.45; }
.pagina-editor :is(.editor > .painel, #listaBlocos, .barra-valores, .resultado) :is(input, textarea, select):hover { border-color: #b9c4ce; }
.pagina-editor :is(.editor > .painel, #listaBlocos, .barra-valores, .resultado) :is(input, textarea, select):focus {
  outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco);
}
.pagina-editor :is(.editor > .painel, #listaBlocos, .resultado) :is(input[type="checkbox"], input[type="radio"], input[type="range"]) { accent-color: var(--azul); }
.pagina-editor :is(.editor > .painel, #listaBlocos, .resultado) :is(input[type="checkbox"], input[type="radio"]) { width: 16px; height: 16px; }
.pagina-editor .barra-valores input { min-height: 34px; border-radius: 9px; }

/* botões comuns da página */
.pagina-editor :is(.editor > .painel, .cabeca-questoes, #listaBlocos, .adicionar, .resultado) button:not(.primario, .link) {
  border: 1.5px solid var(--campo); border-radius: 9px; background: #fff; color: var(--tinta);
  transition: border-color .15s, color .15s, background .15s;
}
.pagina-editor :is(.editor > .painel, .cabeca-questoes, #listaBlocos, .adicionar, .resultado) button:not(.primario, .link):hover {
  border-color: var(--azul); color: var(--azul); background: #f2f6fa;
}
.pagina-editor :is(.editor > .painel, #listaBlocos, .adicionar, .resultado) button:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
.pagina-editor .resultado button.primario {
  border: 0; border-radius: 11px; padding: .55em 1.1rem; font-weight: 650; color: #fff;
  background: linear-gradient(180deg, #386ca0, var(--azul));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 8px 18px -8px rgba(47, 93, 138, .8);
  transition: transform .12s, filter .15s;
}
.pagina-editor .resultado button.primario:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(-1px); }
.pagina-editor .resultado .acoes-gerar button { min-height: 40px; }
.pagina-editor #listaBlocos .bloco button[data-acao="excluir"]:hover { color: var(--perigo); border-color: var(--perigo); background: #fbeeee; }
.pagina-editor #listaBlocos .ferramentas button.editar { border-color: var(--azul); color: var(--azul); font-weight: 600; }
.pagina-editor #listaBlocos .bloco button[data-acao="removerItem"] { border-color: transparent; color: #8795a3; background: none; }
.pagina-editor #listaBlocos .bloco button[data-acao="removerItem"]:hover { color: #a33; background: #fbeeee; }

/* cabeçalho "Questões" e soma dos valores */
.pagina-editor .cabeca-questoes { margin-top: 1.6rem; }
.pagina-editor .cabeca-questoes h2 { font-size: 1.2rem; color: var(--tinta); letter-spacing: -.01em; }
.pagina-editor .ajuda summary { color: var(--azul); font-weight: 600; }
.pagina-editor .ajuda table { border: 1px solid var(--linha); border-radius: 12px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.pagina-editor .barra-valores { margin: .7rem 0 .3rem; }

/* cartões das questões */
.pagina-editor #listaBlocos { gap: 1.5rem; margin-top: 1rem; }
.pagina-editor #listaBlocos .bloco {
  padding: 1.3rem 1.3rem 1rem; gap: .8rem; background: #fff;
  border: 1.5px solid var(--azul); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-editor #listaBlocos .bloco .rotulo {
  top: -.8rem; padding: .15em .9em; border-radius: 999px; font-size: .82rem; letter-spacing: .02em;
  background: linear-gradient(135deg, var(--azul-escuro), var(--azul)); box-shadow: 0 3px 8px -2px rgba(28, 59, 90, .5);
}
.pagina-editor #listaBlocos .bloco .tipo { color: #6d7b89; font-weight: 600; }
.pagina-editor #listaBlocos .bloco .valor input { width: 5em; min-height: 32px; text-align: right; }
.pagina-editor #listaBlocos .bloco .disciplina input { width: 12em; min-height: 32px; }
.pagina-editor #listaBlocos .alternativas .letra { font-weight: 700; color: #6d7b89; }
.pagina-editor #listaBlocos .alternativas li:has(input[data-correta]:checked) input[data-prop] { border-color: #3aa876; background: #f1faf5; }
.pagina-editor #listaBlocos .alternativas li:has(input[data-correta]:checked) label.check { color: #1f7a4f; font-weight: 650; }
.pagina-editor #listaBlocos .partes > li { border-left-color: var(--azul); border-radius: 0 10px 10px 0; background: #f6f9fc; }
.pagina-editor #listaBlocos details.imagem summary { font-weight: 600; color: #44505c; }
.pagina-editor #listaBlocos .bloco.importado { animation: importado 2.5s ease-out; }

/* barra "Adicionar" */
.pagina-editor .adicionar {
  margin-top: 1.6rem; padding: 1rem 1.1rem; gap: .5rem; border: 1.5px dashed #b9c4ce; border-radius: 16px; background: rgba(255, 255, 255, .75);
}
.pagina-editor .adicionar > span:not(.separador) { color: var(--tinta); }
/* sempre à vista na base da janela: adicionar sem rolar até o fim da prova (no celular a barra ocuparia meia tela e fica no fim, como antes) */
@media (min-width: 701px) {
  .pagina-editor .adicionar {
    position: sticky; bottom: 1rem; z-index: 30; border: 1px solid var(--linha); background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(6px); box-shadow: 0 1px 2px rgba(16, 32, 48, .06), 0 14px 36px -10px rgba(16, 32, 48, .4);
  }
  .pagina-editor .adicionar { margin-top: 1.2rem; padding: .55rem .7rem; gap: .35rem; background: rgba(255, 255, 255, .97); }
  .pagina-editor .adicionar button { height: 30px; padding: 0 .6rem; font-size: .8rem; }
  .pagina-editor .adicionar > span:not(.separador) { font-size: .85rem; margin-right: .1rem; }
  .pagina-editor #listaBlocos .bloco { scroll-margin-bottom: 7rem; }
}
/* barra "Adicionar" no azul do topo, para se destacar; botões translúcidos e "Importar" em branco
   (#listaBlocos ~ para vencer a regra geral dos botões, que tem um id) */
.pagina-editor #listaBlocos ~ .adicionar {
  border: 0; color: #fff;
  background:
    radial-gradient(circle at 1.5px 1.5px, rgba(255, 255, 255, .09) 1.5px, transparent 0) 0 0 / 22px 22px,
    linear-gradient(135deg, #2a5580, #3b6d9c);
  box-shadow: 0 1px 2px rgba(16, 32, 48, .1), 0 14px 36px -10px rgba(16, 32, 48, .55);
}
.pagina-editor #listaBlocos ~ .adicionar > span:not(.separador) { color: #fff; }
.pagina-editor #listaBlocos ~ .adicionar .separador { background: rgba(255, 255, 255, .35); }
.pagina-editor #listaBlocos ~ .adicionar button:not(.primario, .link) {
  border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .1); color: #fff;
}
.pagina-editor #listaBlocos ~ .adicionar button:not(.primario, .link):hover { border-color: rgba(255, 255, 255, .65); background: rgba(255, 255, 255, .22); color: #fff; }
.pagina-editor #listaBlocos ~ .adicionar button.importar {
  border-color: #e8792b; background: linear-gradient(180deg, #f59a4a, #e8792b); color: #fff;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .3) inset, 0 6px 14px -6px rgba(120, 50, 0, .7);
}
.pagina-editor #listaBlocos ~ .adicionar button.importar:hover { border-color: #f59a4a; background: linear-gradient(180deg, #f7a95f, #ee8636); color: #fff; }
.pagina-editor #listaBlocos ~ .adicionar button:focus-visible { box-shadow: 0 0 0 4px rgba(255, 255, 255, .35); }
.pagina-editor .adicionar button { height: 36px; }
.pagina-editor .adicionar button.importar { border-color: var(--azul); color: var(--azul); font-weight: 600; }
.pagina-editor .vazio { color: #6d7b89; }

/* painel do PDF */
.pagina-editor .resultado { gap: .7rem; }
.pagina-editor .resultado .versoes { padding: .8rem 1.2rem 1rem; }
.pagina-editor .versoes-acoes.aplicar { border-top-color: var(--linha); padding-top: .7rem; }
.pagina-editor .previa {
  border: 1px solid var(--linha); border-radius: 16px; background: #dfe5ec;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-editor .erro { border-radius: 12px; background: #fdf0f0; border-color: #f2caca; color: #8f2424; }
.pagina-editor #linkPdf { color: var(--azul); font-weight: 600; }

@media (max-width: 700px) {
  .pagina-editor .topo { padding: .6rem 1rem; }
  .pagina-editor .faixa-local { margin: -.6rem -1rem 0; }
  .pagina-editor .layout { padding: .8rem; }
  .pagina-editor .painel { padding: .8rem 1rem 1rem; }
  .pagina-editor #listaBlocos .bloco { padding: 1.2rem 1rem .9rem; }
}

/* ---------- janela "Provas salvas" no mesmo visual (classes dlg-questao + dlg-provas) ---------- */
.dlg-questao.dlg-provas { width: min(62rem, calc(100vw - 2rem)); max-height: min(48rem, calc(100vh - 2rem)); padding: 0; border: 0; border-radius: 18px; }
.dlg-provas .provas-corpo { display: flex; flex-direction: column; gap: .8rem; overflow: hidden; padding: 1.2rem 1.4rem; }
.dlg-provas .provas-corpo > * { flex: none; }
.dlg-provas .provas-barra { margin: 0; }
.dlg-provas .caminho-pastas { font-size: 1rem; }
.dlg-provas .caminho-pastas button.link { color: var(--azul); text-decoration-color: rgba(47, 93, 138, .35); }
.dlg-provas .caminho-pastas [aria-current] { color: var(--tinta); }
.dlg-provas .caminho-pastas .sep { color: #8795a3; }
.dlg-provas .provas-botoes button, .dlg-provas .tabela-provas td.acoes button {
  border: 1.5px solid #d5dce3; border-radius: 9px; background: #fff; color: var(--tinta);
  transition: border-color .15s, color .15s, background .15s;
}
.dlg-provas .provas-botoes button { height: 36px; padding: 0 .85rem; }
.dlg-provas .provas-botoes button:hover, .dlg-provas .tabela-provas td.acoes button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-provas button.perigo:hover, .dlg-provas .tabela-provas td.acoes button.perigo:hover { border-color: var(--perigo); color: var(--perigo); background: #fbeeee; }
.dlg-provas button:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
.dlg-provas #filtroProvas {
  height: 44px; padding: 0 .9rem; font-size: .95rem; color: var(--tinta);
  border: 1.5px solid #d5dce3; border-radius: 11px; background: #f9fbfc; transition: border-color .15s, box-shadow .15s, background .15s;
}
.dlg-provas #filtroProvas:hover { border-color: #b9c4ce; }
.dlg-provas #filtroProvas:focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco); }
.dlg-provas #msgProvas { margin: 0; color: #6d7b89; }
.dlg-provas #msgProvas:empty { display: none; }
/* a tabela num cartão branco; só ela rola */
.dlg-provas .provas-corpo > .lista-provas {
  flex: 1 1 auto; min-height: 6rem; overflow: auto; overscroll-behavior: contain;
  background: #fff; border: 1.5px solid #e1e7ed; border-radius: 14px;
}
.dlg-provas .tabela-provas th {
  padding: .65em .7em; background: #f6f8fa; color: #6d7b89; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 1.5px solid #e1e7ed;
}
.dlg-provas .tabela-provas td { padding: .55em .7em; border-bottom: 1px solid #eef1f4; color: var(--tinta); }
.dlg-provas .tabela-provas tbody tr:last-child td { border-bottom: 0; }
.dlg-provas .tabela-provas tbody tr:hover td { background: #f6f9fc; }
.dlg-provas .tabela-provas tr.atual td { background: #eaf1f8; }
.dlg-provas .tabela-provas tr.atual td:first-child { box-shadow: inset 4px 0 0 var(--azul); }
.dlg-provas .tabela-provas td.tit small { color: #8795a3; }
.dlg-provas .tabela-provas td.acoes button { padding: .25em .7em; font-size: .85rem; }
.dlg-provas .tabela-provas tr.pasta td.tit button.link { color: var(--tinta); }
.dlg-provas .soltar-aqui, .dlg-provas .tabela-provas tr.soltar-aqui td { background: #dbe8f5 !important; outline-color: var(--azul); }
.dlg-provas .provas-rodape { margin: 0; padding: .9rem 1.4rem; border-top: 1px solid #e6ebf0; }
.dlg-provas .provas-rodape .dica { margin: 0 auto 0 0; flex: 1 1 18rem; line-height: 1.4; }
.dlg-provas .provas-rodape > button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
@media (max-width: 700px) {
  .dlg-questao.dlg-provas { width: 100vw; max-height: 100dvh; }
  .dlg-provas .provas-corpo { padding: 1rem; }
  .dlg-provas .provas-botoes { margin-left: 0; }
}

/* ---------- janela "Modelo da prova" no mesmo visual (classes dlg-questao + dlg-modelo) ---------- */
.dlg-questao.dlg-modelo { width: min(64rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 18px; gap: 0; }
.dlg-modelo .mod-corpo { display: flex; flex-direction: column; gap: 1rem; padding: 1.2rem 1.4rem; }
.dlg-modelo .mod-corpo > .dica { margin: 0; color: #6d7b89; line-height: 1.45; }
.dlg-modelo .mod-grade { overflow: visible; padding: 4px; gap: 1rem; }
.dlg-modelo .mod-cartao {
  padding: .7rem; gap: .45rem; border: 1.5px solid #e1e7ed; border-radius: 14px; background: #fff; color: var(--tinta);
  box-shadow: 0 1px 2px rgba(16, 32, 48, .04); transition: border-color .15s, box-shadow .15s, transform .12s;
}
.dlg-modelo .mod-cartao:hover { border-color: #b9c4ce; transform: translateY(-2px); box-shadow: 0 10px 24px -14px rgba(16, 32, 48, .45); }
.dlg-modelo .mod-cartao:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
.dlg-modelo .mod-cartao[aria-checked="true"] { border-color: var(--azul); background: #f2f6fa; box-shadow: 0 0 0 3px var(--foco); }
.dlg-modelo .mod-cartao[aria-checked="true"] strong::after { content: " ✓"; color: var(--azul); }
.dlg-modelo .mod-cartao .dica { color: #6d7b89; }
.dlg-modelo .mod-mini { border: 1px solid #e1e7ed; border-radius: 9px; background: #f6f8fa; }
.dlg-modelo .mod-enviar { border: 1.5px dashed #b9c4ce; background: #fbfcfd; }
.dlg-modelo .mod-enviar:hover { border-color: var(--azul); }
.dlg-modelo .mod-enviar .mod-mini { color: var(--azul); border: 1.5px dashed #d5dce3; background: transparent; }
.dlg-modelo .mod-ajuda { padding: .6rem .8rem; border: 1.5px dashed #d5dce3; border-radius: 10px; background: #fff; }
.dlg-modelo .mod-ajuda summary { color: var(--azul); }
.dlg-modelo .status:empty { display: none; }
.dlg-modelo .erro { border-radius: 12px; background: #fdf0f0; border-color: #f2caca; color: #8f2424; }
.dlg-modelo .mod-rodape { padding: .9rem 1.4rem; }
.dlg-modelo .mod-rodape > button:not(.botao-questao) { background: #fff; transition: border-color .15s, color .15s, background .15s; }
.dlg-modelo .mod-rodape > button:not(.botao-questao):hover:not(:disabled) { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-modelo.arrastando { outline: 3px dashed var(--azul); outline-offset: -8px; }
@media (max-width: 700px) {
  .dlg-questao.dlg-modelo { width: 100vw; }
  .dlg-modelo .mod-corpo { padding: 1rem; }
  .dlg-modelo .mod-grade { grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr)); gap: .7rem; }
  .dlg-modelo .mod-rodape .espaco { display: none; }
  .dlg-modelo .mod-rodape > button { flex: 1 1 calc(50% - .3rem); }
  .dlg-modelo .mod-rodape > button:not(.botao-questao) { height: auto; min-height: 44px; padding: .4rem .8rem; }
}

/* ---------- janela "Fórmula" no mesmo visual (classes dlg-questao + dlg-formula) ---------- */
.dlg-questao.dlg-formula { width: min(42rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 18px; gap: 0; }
.dlg-formula .formula-corpo { display: flex; flex-direction: column; gap: .8rem; padding: 1.2rem 1.4rem; }
.dlg-formula .formula-corpo .dica { color: #6d7b89; line-height: 1.45; }
.dlg-formula .caixa-formula { min-height: 3.6rem; border: 1.5px solid #d5dce3; border-radius: 12px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.dlg-formula .caixa-formula:focus-within { border-color: var(--azul); box-shadow: 0 0 0 4px var(--foco); }
.dlg-formula .previa-quim { background: #f6f8fa; }
.dlg-formula .formula-quim label { color: #44505c; }
.dlg-formula #campoQuim {
  height: 44px; padding: 0 .8rem; color: var(--tinta); border: 1.5px solid #d5dce3; border-radius: 11px; background: #f9fbfc;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.dlg-formula #campoQuim:focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco); }
.dlg-formula .atalhos-quim button { height: 34px; border: 1.5px solid #d5dce3; border-radius: 9px; background: #fff; color: var(--tinta); }
.dlg-formula .atalhos-quim button:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-formula kbd { background: #f6f8fa; border-color: #d5dce3; border-radius: 5px; }
.dlg-formula .status.erro { margin: 0; padding: .65rem .8rem; border-radius: 10px; background: #fdf0f0; color: #8f2424; border: 1px solid #f2caca; }
.dlg-formula .formula-rodape { padding: .9rem 1.4rem; justify-content: flex-end; }
.dlg-formula .formula-rodape > button:not(.botao-questao) { background: #fff; }
/* teclado de símbolos: agora a janela não tem margem interna */
.dlg-formula .ML__keyboard { margin: 0; border-top: 1px solid #e6ebf0; }
@media (max-width: 700px) { .dlg-questao.dlg-formula { width: 100vw; } .dlg-formula .formula-corpo { padding: 1rem; } }

/* ---------- janelinha "Mover" (classes dlg-questao + dlg-mover) ---------- */
.dlg-questao.dlg-mover { width: min(30rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 18px; }
.dlg-mover form { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.dlg-mover .questao-topo h2 { margin: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.dlg-mover .questao-corpo { display: flex; flex-direction: column; gap: .4rem; padding: 1.2rem 1.4rem; }
.dlg-mover label { margin: 0; font-size: .85rem; font-weight: 600; color: #44505c; }
.dlg-mover select {
  padding: .3rem; font-size: .95rem; color: var(--tinta); border: 1.5px solid #d5dce3; border-radius: 12px; background: #fff;
}
.dlg-mover select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 4px var(--foco); }
.dlg-mover select option { padding: .35rem .5rem; border-radius: 7px; }
.dlg-mover select option:checked { background: #e2ecf6; color: var(--azul-escuro); font-weight: 600; }
.dlg-mover .questao-rodape { padding: .9rem 1.4rem; flex-wrap: nowrap; }
.dlg-mover .questao-rodape .dica { flex: 1 1 0; min-width: 0; line-height: 1.35; }
.dlg-mover .questao-rodape > button:not(.botao-questao) { background: #fff; }

/* ---------- perguntas e avisos (caixa.js, no lugar de confirm/prompt/alert) ---------- */
.dlg-questao.dlg-caixa { width: min(30rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: 18px; }
.dlg-caixa .questao-topo h2 { font-size: 1.15rem; }
.dlg-caixa .questao-corpo { display: flex; flex-direction: column; gap: .8rem; padding: 1.3rem 1.4rem; }
.dlg-caixa .caixa-texto { margin: 0; line-height: 1.5; white-space: pre-line; overflow-wrap: anywhere; }
.dlg-caixa input {
  height: 44px; padding: 0 .8rem; font-size: 1rem; color: var(--tinta); border: 1.5px solid #d5dce3; border-radius: 11px; background: #f9fbfc;
}
.dlg-caixa input:focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco); }
.dlg-caixa .questao-rodape { justify-content: flex-end; padding: .9rem 1.4rem; }
.dlg-caixa .questao-rodape > button:not(.botao-questao) { background: #fff; }
.dlg-caixa .questao-rodape > button:not(.botao-questao):hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.dlg-caixa .questao-rodape > button:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
/* excluir/apagar: o botão de confirmar fica vermelho */
.dlg-caixa.perigo .botao-questao { background: linear-gradient(180deg, #c84a3c, #a8352a); box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 8px 18px -8px rgba(150, 40, 30, .8); }
.dlg-caixa.perigo .botao-questao:focus-visible { box-shadow: 0 0 0 4px rgba(200, 74, 60, .25); }
@media (max-width: 700px) {
  .dlg-questao.dlg-caixa { width: calc(100vw - 1.5rem); height: auto; max-height: calc(100dvh - 2rem); border-radius: 18px; }
}

/* ---------- página "Corrigir cartões" (body.pagina-editor.pagina-correcao) ---------- */
.pagina-correcao .zona-imagens {
  padding: 1.4rem 1.2rem; border: 2px dashed #b9c4ce; border-radius: 16px; background: rgba(255, 255, 255, .85); color: var(--tinta);
  transition: border-color .15s, background .15s;
}
.pagina-correcao .zona-imagens.arrastando { border-color: var(--azul); background: #eaf1f8; }
.pagina-correcao .zona-imagens .dica { color: #6d7b89; line-height: 1.45; }
.pagina-correcao #btImagens {
  height: 42px; padding: 0 1.3rem; border: 0; border-radius: 11px; font-weight: 650; color: #fff;
  background: linear-gradient(180deg, #386ca0, var(--azul));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 8px 18px -8px rgba(47, 93, 138, .8);
}
.pagina-correcao #btImagens:hover { filter: brightness(1.06); }
.pagina-correcao .erro { border-radius: 12px; background: #fdf0f0; border-color: #f2caca; color: #8f2424; }
.pagina-correcao .cabeca-questoes { margin-top: .8rem; }
.pagina-correcao .cabeca-questoes label.check input { accent-color: var(--azul); width: 16px; height: 16px; }
.pagina-correcao #resumo { color: #6d7b89; }
.pagina-correcao .cartao-tabela {
  overflow: auto; background: #fff; border: 1px solid var(--linha); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-correcao .cartao-tabela:has(tbody:empty) { display: none; }
.pagina-correcao .tabela-provas th {
  padding: .6em .7em; background: #f6f8fa; color: #6d7b89; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em;
  border-bottom: 1.5px solid var(--linha);
}
.pagina-correcao .tabela-provas td { padding: .5em .7em; border-bottom: 1px solid #eef1f4; color: var(--tinta); }
.pagina-correcao .tabela-provas td.sit-ok { color: #1f7a4f; }
.pagina-correcao .tabela-provas td.sit-revisar { color: #b35c00; }
.pagina-correcao .tabela-cartoes tbody tr:last-child td { border-bottom: 0; }
.pagina-correcao .tabela-cartoes tbody tr:hover td { background: #f6f9fc; }
.pagina-correcao .tabela-cartoes tr.atual td { background: #eaf1f8; }
.pagina-correcao .tabela-cartoes tr.atual td:first-child { box-shadow: inset 4px 0 0 var(--azul); }
.pagina-correcao .analise .rolagem { border: 1px solid var(--linha); border-radius: 12px; }
.pagina-correcao .tabela-analise td.certa { background: #e6f5ee; color: #1f7a4f; }
.pagina-correcao .detalhe-vazio { border: 2px dashed #b9c4ce; border-radius: 16px; background: rgba(255, 255, 255, .7); color: #6d7b89; }
.pagina-correcao #detalhe {
  gap: .6rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--linha); border-radius: 16px;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-correcao #detalhe[hidden] { display: none; }
.pagina-correcao .detalhe-topo label { color: var(--tinta); }
.pagina-correcao .detalhe-acoes label { display: flex; flex-direction: column; gap: .2rem; }
.pagina-correcao .quadro-imagem { border: 1px solid var(--linha); border-radius: 12px; background: #dfe5ec; }
.pagina-correcao .alertas { color: #9a5a00; }
.pagina-correcao .resultado button.perigo:hover { color: var(--perigo); border-color: var(--perigo); background: #fbeeee; }

/* Correção: folhas de respostas das dissertativas (recortes sem a pauta) */
.folhas-lidas { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
.folha-aluno { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: .8rem 1rem; }
.folha-aluno h3 { margin: 0 0 .4rem; font-size: 1rem; font-family: ui-monospace, monospace; }
.folha-aluno .recorte { margin: .6rem 0 0; }
.folha-aluno figcaption { font-size: .85rem; font-weight: 600; color: var(--suave); margin-bottom: .2rem; }
.folha-aluno .recorte img { display: block; max-width: 100%; height: auto; border: 1px solid #e3e3e3; border-radius: 3px; }
.folha-aluno.pendente { border-color: #f0d58a; background: #fffbef; }
.folha-aluno .linha-campos { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .4rem; }
.folha-aluno .linha-campos label { display: flex; align-items: center; gap: .35rem; }
.folha-aluno .linha-campos input { width: 12rem; font-family: ui-monospace, monospace; }
.folha-aluno ul.alertas { margin: .2rem 0 0; padding-left: 1.2rem; }
.tabela-folhas td.ra { font-family: ui-monospace, monospace; }
.tabela-folhas td button { padding: .2em .6em; font-size: .85rem; }

/* ---------- visual azul nas outras páginas (relatorios, digital, conta, admin, painel: body.pagina-editor.pagina-azul) ---------- */
.pagina-azul .pagina-estreita { color: var(--tinta); }
.pagina-azul .pagina-estreita .painel h2 { color: var(--tinta); letter-spacing: -.01em; }
.pagina-azul .pagina-estreita .dica { color: #6d7b89; }
.pagina-azul .pagina-estreita label { color: #44505c; }
.pagina-azul .pagina-estreita :is(input:not([type="checkbox"], [type="radio"], [type="file"], [type="range"], [type="color"]), textarea, select) {
  border: 1.5px solid var(--campo); border-radius: 10px; background: #fbfcfd; color: var(--tinta);
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pagina-azul .pagina-estreita :is(input:not([type="checkbox"], [type="radio"], [type="file"], [type="range"], [type="color"]), select) { min-height: 38px; padding: .3em .65em; }
.pagina-azul .pagina-estreita textarea { padding: .55em .75em; line-height: 1.45; }
.pagina-azul .pagina-estreita :is(input, textarea, select):hover { border-color: #b9c4ce; }
.pagina-azul .pagina-estreita :is(input, textarea, select):focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco); }
.pagina-azul .pagina-estreita :is(input[type="checkbox"], input[type="radio"], input[type="range"]) { accent-color: var(--azul); }

.pagina-azul .pagina-estreita button:not(.primario, .link, .ordenar),
.pagina-azul .pagina-estreita a.botao {
  border: 1.5px solid var(--campo); border-radius: 10px; background: #fff; color: var(--tinta);
  transition: border-color .15s, color .15s, background .15s;
}
.pagina-azul .pagina-estreita button:not(.primario, .link, .ordenar):hover:not(:disabled),
.pagina-azul .pagina-estreita a.botao:hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }
.pagina-azul .pagina-estreita button.perigo:hover:not(:disabled) { border-color: var(--perigo); color: var(--perigo); background: #fbeeee; }
.pagina-azul :is(.pagina-estreita, dialog.dlg) button.primario {
  border: 0; border-radius: 10px; font-weight: 650; color: #fff;
  background: linear-gradient(180deg, #386ca0, var(--azul));
  box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 6px 14px -8px rgba(47, 93, 138, .8);
}
.pagina-azul :is(.pagina-estreita, dialog.dlg) button.primario:hover:not(:disabled) { filter: brightness(1.06); }
.pagina-azul .pagina-estreita button:focus-visible, .pagina-azul .pagina-estreita a.botao:focus-visible { outline: none; box-shadow: 0 0 0 4px var(--foco); }
.pagina-azul .pagina-estreita button.link { color: var(--azul); }

/* tabelas como as da correção */
.pagina-azul .pagina-estreita .tabela th { color: #6d7b89; background: #f6f8fa; border-bottom: 1.5px solid var(--linha); }
.pagina-azul .pagina-estreita .tabela td { border-bottom-color: #eef1f4; }
.pagina-azul .pagina-estreita .tabela tbody tr:hover td, .pagina-azul .pagina-estreita .tabela tr:has(td):hover td { background: #f6f9fc; }
.pagina-azul .pagina-estreita .tabela-rolagem { border: 1px solid var(--linha); border-radius: 12px; }
.pagina-azul .pagina-estreita .tabela-rolagem > .tabela tr:last-child td { border-bottom: 0; }
.pagina-azul .pagina-estreita .msg.erro { border-radius: 10px; }

/* janelinhas próprias (senha, editar usuário) no mesmo jeito das outras janelas */
.pagina-azul dialog.dlg { border-radius: 18px; padding: 1.4rem 1.5rem; border-top: 5px solid var(--azul); color: var(--tinta); }
.pagina-azul dialog.dlg h3 { color: var(--azul-escuro); }
.pagina-azul dialog.dlg :is(input:not([type="checkbox"], [type="radio"]), select) {
  min-height: 38px; padding: .3em .65em; border: 1.5px solid var(--campo); border-radius: 10px; background: #fbfcfd;
}
.pagina-azul dialog.dlg :is(input, select):focus { outline: none; border-color: var(--azul); background: #fff; box-shadow: 0 0 0 4px var(--foco); }
.pagina-azul dialog.dlg button:not(.primario) { border: 1.5px solid var(--campo); border-radius: 10px; background: #fff; }
.pagina-azul dialog.dlg button:not(.primario):hover { border-color: var(--azul); color: var(--azul); background: #f2f6fa; }

@media print {
  .pagina-azul { background: #fff; }
  .pagina-azul .painel { box-shadow: none; }
}
.pagina-azul .indicador {
  border: 1px solid var(--linha); border-radius: 14px; background: #fff;
  box-shadow: 0 1px 2px rgba(16, 32, 48, .05), 0 10px 30px -18px rgba(16, 32, 48, .35);
}
.pagina-azul .pagina-estreita .tabela td button:not(.primario, .link) { padding: .2em .65em; font-size: .85rem; }

/* Decisão sobre questão (anular / aceitar outra alternativa), na análise da correção — ajustes.js */
.tabela-analise td.anulada { font-style: italic; color: #7a5a00; background: #fff4d6; }
.bt-ajuste { font-size: .8rem; padding: .15rem .5rem; white-space: nowrap; }
.bt-ajuste.ativo { background: #fff4d6; border-color: #e0b44a; color: #7a5a00; font-weight: 600; }
.dlg-ajuste .opcao-ajuste { display: block; margin: .5rem 0 .2rem; cursor: pointer; }
.dlg-ajuste .opcao-ajuste small { display: block; margin-left: 1.6rem; color: var(--suave, #667); }
.dlg-ajuste .letras-ajuste { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-left: 1.6rem; }
.dlg-ajuste .letras-ajuste label { cursor: pointer; }
