/* Área logada e telas de acesso. Azul das artes da escola, marinho do logo e amarelo da Multifeira. */
:root {
  --marinho: #081b42;
  --ambar: #f9b233;
  --ink: #1a2433;
  --muted: #5b6678;
  --line: #d9e0e8;
  --blue: #0075be;
  --blue-escuro: #005c96;
  --green: #0b7d55;
  --red: #c0262d;
  --surface: #eef2f6;
  --card: #ffffff;
  --subtle: #f5f7fa;
  --topo-bg: #ffffff;
  --sombra-forte: 0 10px 28px rgba(8, 27, 66, .16);
  --barra-largura: 256px;
  --nota-boa: #0b7d55;
  --nota-baixa: #c0262d;
  --fonte-titulos: 'Montserrat Variable', 'Open Sans Variable', Arial, sans-serif;
  --bs-body-font-family: 'Open Sans Variable', Arial, sans-serif;
}
[data-bs-theme='dark'] {
  --ink: #e7eaf3;
  --muted: #a3aec4;
  --line: #2c3a5a;
  --surface: #0a1226;
  --card: #121c36;
  --subtle: #1a2645;
  --topo-bg: #121c36;
  --sombra-forte: 0 12px 32px rgba(0, 0, 0, .5);
  --nota-boa: #4ade9a;
  --nota-baixa: #ff9d9d;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--surface); font-family: var(--bs-body-font-family); }
a { color: var(--blue); }
[data-bs-theme='dark'] a { color: #93c5fd; }
h1, h2, h3, h4 { font-family: var(--fonte-titulos); }
code { color: inherit; font-size: .95em; background: var(--subtle); padding: 2px 7px; border-radius: 6px; }

.texto-apagado { color: var(--muted); }
.texto-preservado { white-space: pre-wrap; overflow-wrap: anywhere; }
.link-limpo { color: inherit !important; text-decoration: none; }
.link-apagado { color: var(--muted) !important; font-size: .88rem; text-decoration: none; }
.botao-link { padding: 0; border: 0; background: none; }

/* Botões */
.btn-pill { padding: 10px 22px; border-radius: 999px; font-weight: 600; transition: .15s ease; }
.btn-sm.btn-pill { padding: 6px 14px; }
.btn-brand { color: #fff; background: var(--blue); border: 0; }
.btn-brand:hover, .btn-brand:focus-visible, .btn-brand:active { color: #fff !important; background: var(--blue-escuro) !important; }
[data-bs-theme='dark'] .btn-brand { color: #fff; background: var(--blue); }

.btn-brand:disabled { opacity: .5; }
.botao-mini { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 5px 11px; color: var(--ink); background: var(--card); border: 1px solid var(--line); border-radius: 6px; font-size: .8rem; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; transition: .15s ease; }
.botao-mini:hover { border-color: var(--blue); color: var(--blue); }
.botao-mini:disabled { opacity: .4; cursor: not-allowed; }
.botao-mini.perigo:hover { border-color: var(--red); color: var(--red); }
.botao-mini.destaque { color: #fff; background: var(--blue); border-color: var(--blue); }
.botao-mini.destaque:hover { color: #fff; background: var(--blue-escuro); }

/* Marca */
.brand-mark { width: 34px; height: 34px; flex: none; display: block; color: var(--marinho); }
.barra .brand-mark { color: var(--marinho); }
.brand-mark .marca { display: block; width: 100%; height: 100%; }
.brand-mark-grande { width: 56px; height: 56px; }

/* Telas de acesso */
.tela-acesso { min-height: 100vh; display: grid; place-items: center; padding: 28px 16px; background: var(--blue) url('/img/supergrafico.svg') no-repeat 88% 50% / auto 165%; }
.moldura-acesso { width: 100%; max-width: 452px; padding: 12px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .55); border-radius: 22px; }
.logo-cesam { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; color: var(--marinho); font-family: var(--fonte-titulos); font-size: 1.45rem; font-weight: 800; letter-spacing: .06em; line-height: 1; text-decoration: none; }
.logo-cesam .marca { display: block; width: 74px; height: 74px; }
[data-bs-theme='dark'] .logo-cesam { color: #fff; }
.dica-acesso { display: flex; gap: 12px; margin-top: 20px; padding: 12px 14px; color: var(--muted); background: var(--subtle); border: 1px solid var(--line); border-radius: 8px; font-size: .82rem; line-height: 1.45; }
.dica-acesso > i { color: var(--blue); font-size: 1.35rem; line-height: 1.1; }
.dica-acesso strong { color: var(--ink); }
.dica-acesso a { white-space: nowrap; }
.rodape-acesso { margin: 20px 0 0; color: var(--muted); font-size: .74rem; text-align: center; }
.cartao-acesso { padding: 36px 32px 24px; background: var(--card); border-radius: 12px; }
.marca-acesso { display: block; margin-bottom: 22px; text-align: center; text-decoration: none; }
.ajuda-acesso { margin: 16px 0 0; color: var(--muted); font-size: .84rem; text-align: center; }
.ajuda-acesso a { white-space: nowrap; }
.codigo-erro { margin: 16px 0 4px; font-family: var(--fonte-titulos); font-size: 3rem; font-weight: 800; line-height: 1.1; color: var(--blue); }

/* Formulários */
.form-label { font-size: .86rem; font-weight: 600; }
.form-label.small { color: var(--muted); font-weight: 500; }
.form-control, .form-select { border-color: #c5ced9; border-radius: 8px; }
.form-control:not(.form-control-sm), .form-select:not(.form-select-sm) { padding: 10px 14px; }
.form-control:focus, .form-select:focus { border-color: var(--blue); box-shadow: 0 0 0 4px rgba(0, 117, 190, .13); }
.form-check-input:checked { background-color: var(--blue); border-color: var(--blue); }

/* Moldura do painel */
.barra { position: fixed; inset: 0 auto 0 0; z-index: 1040; width: var(--barra-largura); display: flex; flex-direction: column; color: #fff; background: var(--blue-escuro); transition: transform .25s ease; }
.barra-marca { display: flex; align-items: center; gap: 10px; height: 64px; padding: 0 18px; color: var(--marinho) !important; background: #fff; font-family: var(--fonte-titulos); text-decoration: none; }
.barra-marca b { display: block; font-size: 1.1rem; font-weight: 800; letter-spacing: .04em; line-height: 1.1; }
.barra-marca small { display: block; color: #5b6678; font-size: .72rem; font-weight: 600; }
.barra-menu { flex: 1; padding: 12px 0 12px 12px; overflow-y: auto; }
.barra-secao { padding: 18px 12px 6px; color: #cfe3f2; font-size: .72rem; font-weight: 700; }
.barra-link { display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 2px 0; padding: 9px 12px; color: #fff !important; border-radius: 8px 0 0 8px; font-size: .94rem; font-weight: 600; text-decoration: none; transition: .15s ease; }
.barra-link i { width: 20px; font-size: 1.05rem; text-align: center; }
.barra-link:hover { background: rgba(255, 255, 255, .14); }
.barra-contador { margin-left: auto; margin-right: 10px; min-width: 22px; padding: 1px 7px; color: var(--marinho); background: var(--ambar); border-radius: 999px; font-size: .72rem; font-weight: 800; text-align: center; }
.barra-link.ativo { color: var(--blue-escuro) !important; background: var(--surface); }
[data-bs-theme='dark'] .barra-link.ativo { color: #fff !important; }
.barra-pe { padding: 12px 0 12px 12px; border-top: 1px solid rgba(255, 255, 255, .22); }
.barra-pessoa { display: flex; align-items: center; gap: 10px; padding: 6px 8px 10px; min-width: 0; }
.barra-pessoa strong { font-size: .84rem; }
.barra-pessoa small { color: #e3eef7; font-size: .72rem; }
.avatar-letra { flex: none; width: 36px; height: 36px; display: grid; place-items: center; color: var(--marinho); background: var(--ambar); border-radius: 50%; font-weight: 800; font-size: .9rem; }
.barra-fundo { position: fixed; inset: 0; z-index: 1030; background: rgba(15, 23, 42, .55); }

.principal { margin-left: var(--barra-largura); min-height: 100vh; display: flex; flex-direction: column; }
.topo { position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: 12px; height: 64px; padding: 0 24px; background: var(--topo-bg); border-bottom: 1px solid var(--line); }
.topo-titulo { flex: 1; min-width: 0; margin: 0; font-size: 1.05rem; font-weight: 700; }
.topo-acoes { display: flex; align-items: center; gap: 6px; }
.topo-botao { width: 40px; height: 40px; display: grid; place-items: center; color: var(--muted); background: transparent; border: 1px solid transparent; border-radius: 6px; font-size: 1.1rem; cursor: pointer; transition: .15s ease; }
.topo-botao:hover { color: var(--blue); background: var(--subtle); border-color: var(--line); }
.conteudo { flex: 1; width: 100%; max-width: 1240px; margin: 0 auto; padding: 28px 24px 56px; }

/* Cabeçalhos */
.saudacao { margin-bottom: 22px; }
.saudacao h2 { margin: 0; font-size: 1.55rem; font-weight: 700; }
.saudacao p { margin: 2px 0 0; color: var(--muted); }
.cabecalho-pagina { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 22px; }
.cabecalho-pagina h2 { margin: 0; font-size: 1.45rem; font-weight: 700; overflow-wrap: anywhere; }
.cabecalho-pagina p { margin: 3px 0 0; color: var(--muted); font-size: .92rem; }
.subtitulo { margin: 8px 0 12px; font-size: 1.02rem; font-weight: 700; }
.voltar { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 16px; color: var(--muted) !important; font-size: .86rem; font-weight: 600; text-decoration: none; }
.voltar:hover { color: var(--blue) !important; }
.titulo-atividade { margin: 0 0 8px; font-size: 1.5rem; font-weight: 700; overflow-wrap: anywhere; }

/* Cartões */
.card { background: var(--card); border: 1px solid var(--line); border-radius: 8px; --bs-card-bg: var(--card); }
.card-header { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 50px; padding: 10px 18px; background: var(--subtle); border-bottom: 1px solid var(--line); }
.card-header h3 { margin: 0; color: var(--blue-escuro); font-size: .94rem; font-weight: 700; }
[data-bs-theme='dark'] .card-header h3 { color: #9fd0f2; }
.card-header:first-child { border-radius: 8px 8px 0 0; }
.cartao-estreito { max-width: 780px; }
.link-cartao { font-size: .84rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.borda-topo { border-top: 1px solid var(--line); }
.borda-baixo { border-bottom: 1px solid var(--line); }
.contador { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 7px; color: #fff; background: var(--muted); border-radius: 4px; font-size: .74rem; font-weight: 700; }
.contador-forte { color: var(--marinho); background: var(--ambar); }
.nota-rodape { margin: 0; padding: 12px 20px; color: var(--muted); font-size: .8rem; border-top: 1px solid var(--line); }

/* Métricas */
.metrica { position: relative; display: block; height: 100%; padding: 18px 20px; overflow: hidden; color: #fff !important; background: var(--tom); border-radius: 8px; --tom: var(--blue); text-decoration: none; }
.metrica-laranja { --tom: #c8560f; }
.metrica-verde { --tom: var(--green); }
.metrica-roxo { --tom: var(--marinho); }
[data-bs-theme='dark'] .metrica-roxo { --tom: #24427f; }
[data-bs-theme='dark'] .metrica-verde { --tom: #0b7d55; }
.metrica-link { transition: filter .15s ease; }
.metrica-link:hover { filter: brightness(.9); }
.metrica-icone { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); font-size: 2.7rem; line-height: 1; opacity: .3; }
.metrica b { display: block; font-family: var(--fonte-titulos); font-size: 2rem; font-weight: 800; line-height: 1.15; }
.metrica b.metrica-texto { font-size: 1.3rem; line-height: 1.75; }
.metrica > span:last-child { color: #fff; font-size: .88rem; font-weight: 600; }
.metrica-compacta { min-width: 112px; padding: 10px 18px; text-align: center; background: var(--card); border: 1px solid var(--line); border-radius: 8px; }
.metrica-compacta small { display: block; color: var(--muted); font-size: .74rem; }
.metrica-compacta b { display: block; font-size: 1.6rem; font-weight: 800; line-height: 1.2; }

/* Listas */
.linha-item { display: flex; align-items: center; gap: 13px; padding: 14px 20px; color: inherit !important; text-decoration: none; border-bottom: 1px solid var(--line); transition: background .15s ease; }
.lista-itens > :last-child { border-bottom: 0; border-radius: 0 0 8px 8px; }
a.linha-item:hover { background: var(--subtle); }
.linha-item.inativo { opacity: .55; }
.linha-icone { flex: none; display: grid; place-items: center; width: 28px; color: var(--blue); font-size: 1.3rem; }
.linha-texto { flex: 1; min-width: 0; }
.linha-texto strong { display: block; font-size: .92rem; font-weight: 700; overflow-wrap: anywhere; }
.linha-texto small { display: block; color: var(--muted); font-size: .79rem; }
.linha-edicao { display: flex; align-items: center; gap: 10px; padding: 12px 20px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.linha-edicao > strong { min-width: 110px; font-size: .9rem; }
.linha-edicao form { margin: 0; }
.linha-nota { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.linha-nota:last-child { border-bottom: 0; }
.linha-nota strong { display: block; font-size: .9rem; }
.linha-nota small { display: block; color: var(--muted); font-size: .78rem; }
.aviso-item { padding: 16px 20px; border-bottom: 1px solid var(--line); }
.aviso-item p { margin: 6px 0; color: var(--muted); font-size: .88rem; }
.aviso-item small { color: var(--muted); font-size: .76rem; }

[data-bs-theme='dark'] .linha-icone, [data-bs-theme='dark'] .vazio-icone, [data-bs-theme='dark'] .questao-numero { color: #7cc0ee; }

/* Selos */
.selo { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 3px 8px; color: #fff; border-radius: 4px; font-size: .72rem; font-weight: 600; white-space: nowrap; }
.selo-azul { background: var(--blue); }
.selo-laranja { background: #c8560f; }
.selo-cinza { background: #5b6678; }
.selo-ciano { background: #0a7385; }
.selo-verde { background: var(--green); }
.selo-vermelho { background: var(--red); }
.selo-roxo { background: var(--marinho); }
[data-bs-theme='dark'] .selo-roxo { background: #24427f; }

.nota-pilula { flex: none; font-family: var(--fonte-titulos); font-size: 1.1rem; font-weight: 800; }
.nota-pilula small { margin-left: 1px; font-size: .68rem; font-weight: 600; opacity: .75; }
.nota-boa { color: var(--nota-boa); }
.nota-baixa { color: var(--nota-baixa); }
.nota-acima { color: var(--nota-boa); font-weight: 700; }
.nota-abaixo { color: var(--nota-baixa); font-weight: 700; }

/* Mensagens na tela */
.aviso-tela { display: flex; gap: 11px; align-items: flex-start; margin-bottom: 18px; padding: 12px 15px; border: 1px solid transparent; border-left-width: 4px; border-radius: 6px; font-size: .9rem; }
.aviso-tela > i { margin-top: 1px; }
.aviso-sucesso { color: #0a5c3f; background: #e8f6f0; border-color: #0b7d55; }
.aviso-erro { color: #8f1a20; background: #fcecec; border-color: #c0262d; }
.aviso-info { color: #00507f; background: #e6f2fa; border-color: #0075be; }
.aviso-atencao { color: #7a4300; background: #fff4dd; border-color: #f9b233; }
[data-bs-theme='dark'] .aviso-sucesso { color: #a7f3d0; background: rgba(16, 185, 129, .13); border-color: rgba(16, 185, 129, .3); }
[data-bs-theme='dark'] .aviso-erro { color: #fecaca; background: rgba(220, 38, 38, .15); border-color: rgba(220, 38, 38, .35); }
[data-bs-theme='dark'] .aviso-info { color: #bfdbfe; background: rgba(0, 117, 190, .15); border-color: rgba(0, 117, 190, .35); }
[data-bs-theme='dark'] .aviso-atencao { color: #fde68a; background: rgba(245, 158, 11, .13); border-color: rgba(245, 158, 11, .3); }

.vazio { padding: 36px 20px; text-align: center; color: var(--muted); }
.vazio-icone { display: block; margin-bottom: 8px; color: var(--muted); font-size: 2rem; line-height: 1; }
.vazio strong { display: block; color: var(--ink); font-size: .94rem; }
.vazio p { margin: 4px 0 0; font-size: .85rem; }

/* Fatos */
.fatos { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; margin: 22px 0; }
.fatos > div { padding: 12px 14px; background: var(--subtle); border: 1px solid var(--line); border-radius: 6px; }
.fatos dt { color: var(--muted); font-size: .74rem; font-weight: 600; }
.fatos dd { margin: 2px 0 0; font-weight: 700; font-size: .92rem; }
.fatos-coluna { grid-template-columns: 1fr; margin: 0; }

/* Tela de responder */
.barra-prova { position: sticky; top: 64px; z-index: 1010; margin: -28px -24px 22px; padding: 12px 24px 0; background: var(--topo-bg); border-bottom: 1px solid var(--line); }
.barra-prova-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.barra-prova-linha.pequena { margin-top: 5px; padding-bottom: 9px; font-size: .78rem; color: var(--muted); }
.barra-prova-info { min-width: 0; }
.barra-prova-info strong { display: block; font-size: .95rem; }
.barra-prova-info small { color: var(--muted); font-size: .76rem; }
.relogio { flex: none; display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; color: #fff; background: var(--blue); border-radius: 999px; font-size: 1.02rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.relogio.alerta { color: #fff; background: var(--red); animation: piscar 1.6s ease-in-out infinite; }
.estado-salvamento { display: inline-flex; align-items: center; gap: 6px; }
.estado-salvamento.salvo { color: var(--nota-boa); }
.estado-salvamento.salvando { color: var(--muted); }
.estado-salvamento.erro { color: var(--nota-baixa); font-weight: 700; }
.respondidas { white-space: nowrap; font-weight: 600; }
.progresso { height: 3px; margin: 0 -24px; background: var(--line); }
.progresso-barra { width: 0; height: 100%; background: var(--ambar); transition: width .25s ease; }

.questao-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.questao-numero { color: var(--blue-escuro); font-family: var(--fonte-titulos); font-size: .82rem; font-weight: 700; }
.questao-valor { color: var(--muted); font-size: .78rem; font-weight: 600; white-space: nowrap; }
.questao-enunciado { font-size: 1.02rem; font-weight: 600; line-height: 1.55; margin-bottom: 14px; }
.questao { scroll-margin-top: 170px; }
.alternativas { display: grid; gap: 9px; }
.alternativa { position: relative; display: flex; align-items: flex-start; gap: 12px; min-height: 48px; padding: 10px 14px; background: var(--card); border: 1px solid #c5ced9; border-radius: 8px; cursor: pointer; transition: .15s ease; }
[data-bs-theme='dark'] .alternativa { border-color: var(--line); }
.alternativa input { position: absolute; opacity: 0; width: 1px; height: 1px; }
label.alternativa:hover { border-color: var(--blue); }
label.alternativa:focus-within { outline: 3px solid rgba(0, 117, 190, .35); outline-offset: 1px; }
label.alternativa:has(input:checked) { border-color: var(--blue); background: rgba(0, 117, 190, .07); }
label.alternativa:has(input:checked) .alternativa-letra { color: #fff; background: var(--blue); }
.alternativa-letra { flex: none; display: grid; place-items: center; width: 27px; height: 27px; color: var(--muted); background: var(--subtle); border: 1px solid var(--line); border-radius: 50%; font-size: .78rem; font-weight: 700; }
.alternativa.fixa { cursor: default; align-items: center; }
.alternativa.marcada { border-color: var(--blue); }
.alternativa.certa { border-color: var(--green); background: rgba(16, 185, 129, .08); }
.alternativa.certa .bi { color: var(--nota-boa); }
.alternativa.errada { border-color: var(--red); background: rgba(220, 38, 38, .06); }
.sua-resposta { flex: none; color: var(--muted); font-size: .72rem; font-weight: 700; }
.resposta-texto { padding: 12px 14px; background: var(--subtle); border-radius: 6px; font-size: .94rem; }
.comentario-professor { display: flex; gap: 11px; margin: 0 24px 22px; padding: 12px 14px; color: var(--ink); background: rgba(0, 117, 190, .08); border-left: 4px solid var(--blue); border-radius: 6px; font-size: .9rem; }
.comentario-professor > i { color: var(--blue); }
.comentario-professor.pequeno { margin: 12px 0 0; font-size: .85rem; }
.atalhos { position: sticky; top: 170px; padding: 16px; background: var(--card); border: 1px solid var(--line); border-radius: 8px; }
.atalhos small { display: block; margin-bottom: 10px; color: var(--muted); font-size: .76rem; font-weight: 700; }
.atalhos-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(36px, 1fr)); gap: 6px; }
.atalhos-grade a { display: grid; place-items: center; height: 36px; color: var(--muted) !important; background: var(--subtle); border: 1px solid var(--line); border-radius: 6px; font-size: .8rem; font-weight: 700; text-decoration: none; }
.atalhos-grade a.feita { color: #fff !important; background: var(--blue); border-color: var(--blue); }

.resultado-topo { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; }
.resultado-nota { min-width: 126px; padding: 14px 20px; color: #fff; text-align: center; background: var(--blue); border-radius: 8px; }

.resultado-nota b { display: block; font-family: var(--fonte-titulos); font-size: 2.2rem; font-weight: 800; line-height: 1.1; }
.resultado-nota span { font-size: .78rem; opacity: .85; }
.resultado-nota.aguardando { max-width: 170px; color: var(--muted); background: var(--subtle); }
.resultado-nota.aguardando i { display: block; font-size: 1.3rem; margin-bottom: 4px; }

/* Edição de questões */
.questao-edicao { padding: 18px 20px; border-bottom: 1px solid var(--line); }
.questao-edicao:last-child { border-bottom: 0; }
.lista-alternativas { list-style: none; margin: 0 0 12px; padding: 0; font-size: .88rem; }
.lista-alternativas li { display: flex; gap: 9px; padding: 3px 0; color: var(--muted); }
.lista-alternativas li.certa { color: var(--nota-boa); font-weight: 700; }
.questao-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.questao-acoes form { margin: 0; }
.campo-alternativa { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.campo-alternativa .form-check-input { flex: none; margin: 0; width: 1.2em; height: 1.2em; }
.campo-alternativa .alternativa-letra { margin: 0; cursor: pointer; }

/* Tabelas */
.card > .table-responsive { border-radius: 7px; }
.card > .card-header + .table-responsive, .card > .card-body + .table-responsive { border-radius: 0 0 7px 7px; }
.tabela { --bs-table-bg: transparent; color: inherit; font-size: .88rem; }
.tabela thead th { padding: 11px 16px; color: #fff; background: var(--blue-escuro); border-bottom: 0; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.tabela tbody th, .tabela tbody td { padding: 12px 16px; border-bottom: 1px solid var(--line); font-weight: 500; }
.tabela tbody th { font-weight: 700; min-width: 150px; }
.tabela tbody tr:last-child > * { border-bottom: 0; }
.tabela-grade .titulo-coluna { display: block; max-width: 130px; overflow: hidden; text-overflow: ellipsis; }
.tabela-grade small { display: block; font-size: .68rem; font-weight: 400; }
.coluna-fixa { position: sticky; left: 0; background: var(--card) !important; z-index: 1; }
thead .coluna-fixa { background: var(--blue-escuro) !important; }
.coluna-nota { width: 150px; }
.acoes-linha { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.acao-extra { position: relative; }
.acao-extra summary { list-style: none; }
.acao-extra summary::-webkit-details-marker { display: none; }
.acao-extra-form { position: absolute; right: 0; z-index: 5; display: grid; gap: 7px; width: 220px; margin-top: 6px; padding: 12px; text-align: left; background: var(--card); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--sombra-forte); }
.table-responsive:has(.acao-extra[open]) { padding-bottom: 150px; }

/* Abas e acordeão */
.abas { gap: 6px; }
.abas .nav-link { padding: 8px 18px; color: var(--muted); border-radius: 999px; font-size: .88rem; font-weight: 600; }
.abas .nav-link.active { color: #fff; background: var(--blue); }

.acordeao { --bs-accordion-bg: var(--card); --bs-accordion-border-color: var(--line); --bs-accordion-border-radius: 8px; --bs-accordion-inner-border-radius: 7px; --bs-accordion-btn-focus-box-shadow: 0 0 0 3px rgba(0, 117, 190, .2); --bs-accordion-active-bg: var(--subtle); --bs-accordion-active-color: var(--ink); }
.acordeao .accordion-button { font-size: .92rem; font-weight: 600; }

.passos { margin: 0; padding-left: 20px; display: grid; gap: 11px; font-size: .92rem; }
.passos span { display: block; color: var(--muted); font-size: .82rem; }

.modal-content { background: var(--card); border: 1px solid var(--line); border-radius: 10px; }

/* Tabela com ações: no celular cada aluno vira um bloco, para o botão não ficar escondido à direita. */
@media (max-width: 767.98px) {
  .tabela-empilhada thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tabela-empilhada, .tabela-empilhada tbody, .tabela-empilhada tr, .tabela-empilhada th, .tabela-empilhada td { display: block; width: 100%; }
  .tabela-empilhada tbody tr { padding: 12px 16px; border-bottom: 1px solid var(--line); }
  .tabela-empilhada tbody tr:last-child { border-bottom: 0; }
  .tabela-empilhada tbody th, .tabela-empilhada tbody td { padding: 3px 0; border: 0; text-align: left !important; }
  .tabela-empilhada tbody td[data-rotulo] { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
  .tabela-empilhada td[data-rotulo]::before { content: attr(data-rotulo); color: var(--muted); font-size: .8rem; font-weight: 400; }
  .tabela-empilhada td[data-rotulo] > div { text-align: right; }
  .tabela-empilhada .acoes-linha { justify-content: flex-start; margin-top: 8px; }
  .tabela-empilhada .acao-extra-form { right: auto; left: 0; }
}

/* Celular */
@media (max-width: 991.98px) {
  .barra { transform: translateX(-100%); }
  .barra.aberta { transform: none; box-shadow: var(--sombra-forte); }
  .principal { margin-left: 0; }
  .topo { padding: 0 12px; height: 58px; }
  .conteudo { padding: 20px 16px 48px; }
  .barra-prova { top: 58px; margin: -20px -16px 18px; padding: 10px 16px 0; }
  .progresso { margin: 0 -16px; }
  .atalhos { display: none; }
}
@media (max-width: 575.98px) {
  .linha-item { flex-wrap: wrap; padding: 13px 16px; }
  .linha-texto { flex-basis: calc(100% - 41px); }
  .linha-item > .selo, .linha-item > .nota-pilula { margin-left: 41px; }
  .linha-item > .bi-chevron-right { display: none; }
  .card-header { padding: 12px 16px; }
  .cartao-acesso { padding: 28px 22px; }
  .metrica { padding: 14px; }
  .metrica b { font-size: 1.6rem; }
  .metrica-icone { top: 12px; right: 12px; transform: none; font-size: 1.5rem; }
  .estado-salvamento span { font-size: .74rem; }
  .comentario-professor { margin: 0 16px 16px; }
  .resultado-nota { width: 100%; max-width: none !important; }
  .coluna-fixa { position: static; }
}

@keyframes piscar { 50% { opacity: .75; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Lista de senhas e boletim no papel */
@media print {
  .barra, .barra-fundo, .topo, .sem-impressao, .aviso-tela { display: none !important; }
  .principal { margin: 0; }
  .conteudo { padding: 0; max-width: none; }
  .card { border: 0; box-shadow: none; }
  body { background: #fff; color: #000; }
}
