/* Docentes: página inicial em 3 colunas e blocos por perfil */

.saudacao-seccao { gap: 10px; }
.saudacao-seccao .saudacao h1 { font-size: 20px; }
.saudacao-seccao .proxima-aula { width: 100%; }
.aulas-hoje.vertical { grid-template-columns: minmax(0, 1fr); gap: 6px; }
/* aulas de hoje: só 3 visíveis (altura calculada em docentes.listaCentrada), as restantes com scroll */
.aulas-hoje.vertical.com-scroll, .agenda-lista.com-scroll { overflow-y: auto; scroll-behavior: smooth; padding-right: 4px; }
.aulas-hoje.vertical .aula-cartao { flex-direction: column; padding: 6px 10px; }
.aulas-hoje.vertical .selo { align-self: flex-start; }

/* separadores dos perfis */
.separadores-perfil { gap: 4px; align-items: stretch; padding-bottom: 0; }
.separador-perfil { border: 0; border-bottom: 3px solid transparent; background: transparent; padding: 4px 12px 8px; font: inherit; font-size: 15px; font-weight: 600; color: var(--texto-2); cursor: pointer; }
.separador-perfil:hover { color: var(--texto); }
.separador-perfil.ativo { color: var(--azul); border-bottom-color: var(--azul); }

/* indicadores (KPI) */
.kpis-docente { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.kpi-bloco { display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; background: #fff; border: 1px solid var(--linha); border-top: 3px solid var(--azul); border-radius: 8px; }
.kpi-bloco.kpi-erro { border-top-color: #d9534f; }
.kpi-bloco.kpi-aviso { border-top-color: #e0a800; }
.kpi-bloco.kpi-ok { border-top-color: #43a047; }
.kpi-bloco.kpi-info { border-top-color: #42a5f5; }
.kpi-num { font-size: 24px; font-weight: 700; line-height: 1.1; }
.kpi-erro .kpi-num { color: #a4262c; }
.kpi-rot { font-size: 12px; color: var(--texto-2); }
.barra-progresso { display: block; height: 6px; background: #e8edf1; border-radius: 3px; overflow: hidden; margin-top: 4px; }
.barra-progresso span { display: block; height: 100%; background: #43a047; }

/* painéis de perfil compactos (direção de turma, coordenação): escolha da turma/curso, indicadores numa linha, listas limitadas */
.perfil-barra { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.perfil-barra .espaco { flex: 1; }
.perfil-escolha { display: flex; gap: 4px; flex-wrap: wrap; }
.turma-nome.pequeno { font-size: 16px; }
/* alertas da turma no botão de escolha (direção de turma) */
.chip-alertas { gap: 6px; }
.chip-alerta { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: #e0a800; color: #fff; font-size: 11px; font-weight: 700; line-height: 1; }
.chip-alerta.grave { background: #d9534f; }
.chip.ativo .chip-alerta { box-shadow: 0 0 0 2px #fff; }
.kpis-linha { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
@media (max-width: 1500px) { .kpis-linha { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kpi-mini { display: flex; align-items: baseline; gap: 6px; padding: 4px 8px; background: #fff; border: 1px solid var(--linha); border-left: 3px solid var(--azul); border-radius: 6px; min-width: 0; }
.kpi-mini .kpi-num { font-size: 18px; font-weight: 700; line-height: 1.2; }
.kpi-mini .kpi-rot { font-size: 11px; color: var(--texto-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-mini.kpi-erro { border-left-color: #d9534f; }
.kpi-mini.kpi-erro .kpi-num { color: #a4262c; }
.kpi-mini.kpi-aviso { border-left-color: #e0a800; }
.kpi-mini.kpi-info { border-left-color: #42a5f5; }
.kpi-mini.kpi-ok { border-left-color: #43a047; }
.duas-colunas.compacto { gap: 10px; }
.bloco-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.bloco-topo .bloco-titulo { margin: 2px 0 4px; }
.lista-limitada { max-height: 168px; overflow-y: auto; padding-right: 4px; }
.lista-limitada li { padding: 3px 0; }
.lista-texto { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grelha-perfil { max-height: 230px; }
.coluna-lateral .painel-seccao-topo > .muted { display: none; }
.coluna-lateral .painel-titulo { white-space: nowrap; }

.duas-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.bloco-titulo { font-size: 14px; margin: 6px 0; color: var(--azul-escuro); }
.tabela-simples tr.clicavel { cursor: pointer; }
.tabela-simples tr.clicavel:hover { background: #f3fafc; }
.tabela-simples tr.atual td { background: var(--azul-claro); }
.texto-aviso { color: #8a5a00; font-weight: 700; }
.barra-celula { display: inline-block; width: 60px; height: 8px; background: #f1f4f6; border-radius: 4px; vertical-align: middle; margin-right: 6px; overflow: hidden; }
.barra-celula .barra-erro { display: block; height: 100%; background: #e57373; }
.lista-linhas li.nao-lido { font-weight: 600; }
.lista-linhas li.nao-lido::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--azul); flex-shrink: 0; }

.turma-dirigida { display: flex; flex-direction: column; gap: 10px; }
.turma-dirigida + .turma-dirigida { border-top: 1px dashed var(--linha); padding-top: 12px; }
.turma-dirigida-topo { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.turma-dirigida-topo .espaco { flex: 1; }

/* avisos da escola */
.aviso-escola { background: #fff; border: 1px solid var(--linha); border-left: 4px solid var(--azul); border-radius: 6px; padding: 6px 10px; }
.aviso-escola.destaque { border-left-color: #e0a800; }
.aviso-escola summary { cursor: pointer; font-weight: 600; font-size: 13px; }
.aviso-escola-texto { font-size: 13px; margin-top: 6px; overflow-wrap: anywhere; }
.aviso-escola-texto img { max-width: 100%; height: auto; }

/* 3 colunas: agenda estreita | trabalho do perfil (o resto) | aulas de hoje e alertas */
.inicio-3 { grid-template-columns: 330px minmax(0, 1fr) minmax(320px, 380px); }
/* os botões do mês (‹ mês › Hoje) nunca saem da caixa: o título encolhe e, se preciso, passam para a linha seguinte */
.coluna-dia .calendario .painel-seccao-topo { flex-wrap: wrap; row-gap: 4px; column-gap: 4px; align-items: center; }
.coluna-dia .calendario-mes { min-width: 0; padding: 0 2px; }

/* calendário na primeira coluna */
.coluna-dia .calendario-grelha { gap: 3px; }
.coluna-dia .calendario-dia { aspect-ratio: auto; min-height: 36px; font-size: 13px; border: 1px solid #e3e9ee; }
.coluna-dia .calendario-marcas { height: 8px; }
.coluna-dia .marca { width: 8px; height: 8px; }

/* ecrãs médios: calendário e trabalho lado a lado; aulas de hoje e alertas por baixo, a toda a largura */
@media (max-width: 1400px) {
    .inicio-3 { grid-template-columns: 330px minmax(0, 1fr); }
    .inicio-3 > .coluna-dia { grid-column: auto; }
    .inicio-3 > .coluna-lateral { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); align-items: start; }
}
@media (max-width: 1000px) { .inicio-3 { grid-template-columns: minmax(0, 1fr); } }
.calendario-total { font-size: 10px; color: var(--texto-2); line-height: 1; }
/* Ocorrências por ler (alerta da página inicial): lista com marcar como lida */
.ocorrencias-por-ler { list-style: none; margin: 0; padding: 0; max-height: 60vh; overflow: auto; }
.ocorrencias-por-ler li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--linha); }
.ocorrencias-por-ler li:last-child { border-bottom: 0; }
.opl-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.opl-aluno { font-size: 13px; color: var(--texto-2); }
.opl-tipo { font-size: 12px; color: var(--texto-2); }
.opl-descricao { font-weight: 600; white-space: pre-wrap; }
.opl-texto small { font-size: 12px; color: var(--texto-2); }
.opl-texto small.opl-ok { color: #2e7d32; font-weight: 600; }
.opl-texto small.opl-erro { color: #c62828; font-weight: 600; }
