/*
 * Luz Planner HS — visual minimalista inspirado no app de referência (PDFs do logbook):
 * fundo creme claro, cartões brancos com borda fina, fonte sem serifa (Nunito),
 * títulos fortes, rótulos pequenos em maiúsculas, botões de ação em verde.
 */
:root {
  --fundo: #F8F5EF;
  --cartao: #FFFFFF;
  --tinta: #1F1F1C;
  --suave: #77706A;
  --linha: #ECE6DC;
  --linha-forte: #DDD5C8;
  --verde: #2F5A45;
  --verde-hover: #264A39;
  --verde-claro: #E7EFE9;
  --oliva: #8A6D1F;
  --laranja: #D9822B;
  --laranja-claro: #FBEBDD;
  --mostarda: #C9A227;
  --mostarda-claro: #F8F0D2;
  --roxo: #7E6BB5;
  --roxo-claro: #EFEBF8;
  --azul: #3D5BA9;
  --azul-claro: #E8EDF8;
  --cinza-claro: #F0EDE8;
  --perigo: #B0412E;
  --raio: 12px;
  --sombra: 0 1px 2px rgba(31, 31, 28, .04);
  --largura-menu: 236px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--tinta);
  font: 14.5px/1.5 "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;
}

h1, h2, h3, h4 { font-weight: 800; margin: 0; letter-spacing: -.01em; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.05rem; font-weight: 700; }
a { color: inherit; }
.ic { width: 18px; height: 18px; flex: none; vertical-align: -4px; }

/* ---------- topo e menu ---------- */
.topo {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 10px;
  padding: 10px clamp(16px, 3vw, 24px);
  background: rgba(248, 245, 239, .96);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--linha);
}
.marca-app { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; font-weight: 800; }
.logo { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--tinta); color: #fff; }
.logo svg { width: 17px; height: 17px; }
.botao-menu { display: none; border: 0; background: none; cursor: pointer; padding: 4px; color: var(--tinta); }
.botao-menu svg { width: 24px; height: 24px; }

.estrutura { display: flex; align-items: flex-start; }
.menu-lateral {
  position: sticky; top: 51px; flex: none;
  width: var(--largura-menu); height: calc(100vh - 51px); overflow-y: auto;
  padding: 14px 10px; border-right: 1px solid var(--linha);
}
.item-menu {
  display: flex; align-items: center; gap: 11px; padding: 8px 12px; border-radius: 9px;
  text-decoration: none; font-weight: 600; color: var(--tinta); margin-bottom: 1px;
}
.item-menu:hover { background: var(--cinza-claro); }
.item-menu.ativo { background: var(--tinta); color: #fff; }
.item-menu.breve:not(.ativo) { color: #A39B90; }
.legenda-menu { font-size: .75rem; color: var(--suave); padding: 10px 12px 0; margin: 10px 0 0; border-top: 1px solid var(--linha); }
.fundo-menu { display: none; }

main { flex: 1; min-width: 0; max-width: 1180px; margin: 0 auto; padding: 26px clamp(16px, 3vw, 36px) 64px; }

/* ---------- textos ---------- */
.discreto { color: var(--suave); margin: 4px 0; }
.pequeno { font-size: .84rem; }
.sobretitulo { color: var(--suave); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .7rem; margin: 0 0 4px; }
.subtitulo { font-size: 1rem; font-weight: 800; margin: 20px 0 10px; }
.cartao > .subtitulo:first-child { margin-top: 0; }

/* ---------- cartões ---------- */
.cartao {
  background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
  box-shadow: var(--sombra); padding: 18px; margin-bottom: 14px;
}
.cartao.estreito { max-width: 620px; }

/* ---------- botões ---------- */
.botao {
  display: inline-flex; align-items: center; gap: 6px; border: 1px solid transparent; border-radius: 9px;
  padding: 8px 16px; cursor: pointer; text-decoration: none;
  background: var(--verde); color: #fff; font: inherit; font-size: .9rem; font-weight: 700;
}
.botao:hover { background: var(--verde-hover); }
.botao .ic { width: 16px; height: 16px; }
.botao.secundario { background: var(--cartao); color: var(--tinta); border-color: var(--linha-forte); }
.botao.secundario:hover { background: var(--cinza-claro); }
.botao.perigo { background: transparent; color: var(--perigo); border-color: currentColor; }
.botao.perigo-cheio { background: var(--perigo); }
.botao-pequeno { padding: 6px 12px; font-size: .84rem; }
.botao-borda {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--linha-forte); background: var(--cartao); border-radius: 8px; padding: 5px 11px;
  font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; color: var(--tinta);
}
.botao-borda .ic { width: 15px; height: 15px; }
.botao-borda:hover { background: var(--cinza-claro); }
.botao-icone {
  display: inline-grid; place-items: center; border: 0; background: none; cursor: pointer;
  padding: 6px; border-radius: 8px; color: var(--suave);
}
.botao-icone:hover { background: var(--cinza-claro); color: var(--tinta); }
.botao-icone .ic { width: 17px; height: 17px; }
.perigo-texto:hover { color: var(--perigo); }
.link-perigo { border: 0; background: none; color: var(--perigo); cursor: pointer; font: inherit; font-size: .85rem; text-decoration: underline; }
.link { border: 0; background: none; padding: 0; color: var(--verde); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }

.cabecalho-tela { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.cabecalho-tela > div > .discreto { margin-top: 2px; }
.linha-titulo { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.linha-titulo .subtitulo { margin: 0; }

/* ---------- números de resumo ---------- */
.resumo { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.resumo div { background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 8px 14px; min-width: 96px; }
.resumo strong { display: block; font-size: 1.25rem; font-weight: 800; }
.resumo span { color: var(--suave); font-size: .78rem; }

/* ---------- selos ---------- */
.selo {
  display: inline-flex; align-items: center; gap: 4px; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 999px;
  background: var(--cinza-claro); color: var(--suave); margin-left: 4px; vertical-align: 1px;
}
.selo .ic { width: 12px; height: 12px; }
.selo-tarde { background: var(--azul-claro); color: var(--azul); }
.selo-contra { background: var(--verde-claro); color: var(--verde); }
.selo-extra { background: var(--mostarda-claro); color: #7A5E10; }
.selo-conjunto { background: var(--oliva); color: #fff; }
.selo-alerta { background: #F8DCD6; color: var(--perigo); }

/* ---------- tabela da matriz ---------- */
.tabela-rolagem { overflow-x: auto; }
.matriz { width: 100%; border-collapse: collapse; min-width: 520px; }
.matriz th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .07em; color: var(--suave); padding: 8px 10px; border-bottom: 1px solid var(--linha-forte); }
.matriz td { padding: 8px 10px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.matriz .col-area { font-weight: 700; width: 22%; color: var(--tinta); }
.matriz .num { text-align: right; white-space: nowrap; }
.obs { color: var(--suave); font-size: .82rem; }
.notas { color: var(--suave); font-size: .85rem; margin: 14px 0 0; padding-left: 18px; }
.aviso-trava { display: flex; gap: 8px; align-items: center; background: var(--cinza-claro); border-radius: 8px; padding: 8px 12px; color: var(--suave); font-size: .88rem; }

/* ---------- fases ---------- */
.tela-fases { display: grid; grid-template-columns: 230px 1fr; gap: 20px; align-items: start; }
.lista-fases { position: sticky; top: 72px; }
.grupo-nivel { margin-bottom: 14px; }
.grupo-nivel h3 { font-size: .95rem; }
.grupo-nivel p { margin: 0 0 6px; color: var(--suave); font-size: .8rem; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  border: 1px solid var(--linha-forte); background: var(--cartao); border-radius: 9px; padding: 5px 11px;
  font: inherit; font-weight: 700; cursor: pointer; text-align: left;
}
.chip small { display: block; font-weight: 500; color: var(--suave); font-size: .72rem; }
.chip.ativo { border-color: var(--tinta); background: var(--tinta); color: #fff; }
.chip.ativo small { color: #D8D2C8; }
.grade-dias { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.dia { background: var(--fundo); border: 1px solid var(--linha); border-radius: 10px; padding: 10px; }
.dia h4 { font-size: .82rem; margin-bottom: 6px; }
.dia ul { margin: 0; padding-left: 16px; font-size: .84rem; }

/* ---------- estudantes ---------- */
.lista-estudantes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.estudante { margin: 0; }
.estudante-topo { display: flex; align-items: flex-start; gap: 10px; }
.estudante .info { flex: 1; min-width: 0; }
.estudante h3 { font-size: 1rem; }
.estudante p { margin: 1px 0; }
.bolinha { display: inline-block; width: 22px; height: 22px; border-radius: 50%; flex: none; margin-top: 1px; }
.estudante-botoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.vazio { text-align: center; padding: 40px 20px; }
.lista-simples { list-style: none; padding: 0; margin: 0 0 14px; }
.lista-simples li { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.lista-simples .bolinha { width: 12px; height: 12px; margin: 0; }
.grade-inicio { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.grade-inicio .cartao { margin: 0; }

/* ---------- formulários ---------- */
.grade-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; margin-bottom: 12px; }
.campo { display: flex; flex-direction: column; gap: 4px; font-weight: 700; font-size: .84rem; margin-bottom: 10px; }
.grade-form .campo { margin-bottom: 0; }
.campo.largo { grid-column: span 2; }
input, select, textarea {
  font: inherit; font-size: .92rem; font-weight: 500; padding: 8px 10px; border: 1px solid var(--linha-forte); border-radius: 8px;
  background: #fff; color: var(--tinta); min-width: 0;
}
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--verde); outline-offset: 0; border-color: transparent; }
.caixa { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .88rem; margin: 8px 0; }
.caixa input { accent-color: var(--verde); }
.caixa.desativada { color: var(--suave); }
.amostras { display: flex; flex-wrap: wrap; gap: 8px; }
.amostra { width: 28px; height: 28px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--linha-forte); cursor: pointer; }
.amostra.ativa { box-shadow: 0 0 0 2px var(--tinta); }
.erro { color: var(--perigo); font-weight: 700; margin: 8px 0 0; }
.lista-extras { list-style: none; padding: 0; margin: 0 0 14px; }
.lista-extras li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--linha); }

/* ---------- janela (modal) e aviso ---------- */
.modal-fundo {
  position: fixed; inset: 0; z-index: 50; background: rgba(31, 31, 28, .4);
  display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px; overflow-y: auto;
}
.modal {
  position: relative; background: var(--cartao); border-radius: 14px; box-shadow: 0 20px 60px rgba(0, 0, 0, .2);
  width: 100%; max-width: 540px; padding: 22px;
}
.modal.largo { max-width: 880px; }
.modal:focus { outline: none; }
.modal h3 { font-size: 1.15rem; font-weight: 800; margin-bottom: 6px; padding-right: 30px; }
.modal-fechar { position: absolute; top: 12px; right: 12px; border: 0; background: none; cursor: pointer; color: var(--suave); padding: 4px; border-radius: 6px; }
.modal-fechar:hover { background: var(--cinza-claro); }
.modal-fechar svg { width: 18px; height: 18px; display: block; }
.modal-acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.aviso-rapido {
  position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 60;
  background: var(--tinta); color: #fff; padding: 10px 18px; border-radius: 10px; font-weight: 600;
  max-width: calc(100% - 32px); transition: opacity .3s;
}
.aviso-rapido.saindo { opacity: 0; }
.alerta { display: flex; gap: 8px; align-items: flex-start; background: var(--laranja-claro); color: #6B3E12; border-radius: 10px; padding: 10px 12px; margin: 8px 0; font-size: .88rem; }
.alerta .ic { color: var(--laranja); margin-top: 2px; }

/* ---------- calendário ---------- */
.linha-hoje { font-weight: 700; margin: 4px 0 0; }
.seletor { display: inline-flex; gap: 2px; background: var(--cinza-claro); padding: 3px; border-radius: 10px; margin-bottom: 12px; }
.seletor button { border: 0; background: transparent; padding: 6px 14px; border-radius: 8px; font: inherit; font-size: .88rem; font-weight: 700; color: var(--suave); cursor: pointer; }
.seletor button.ativo { background: var(--cartao); color: var(--tinta); box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
.legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; font-size: .78rem; color: var(--suave); }
.leg::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; background: var(--cor-faixa); }

.sem-licao { --cor-faixa: var(--verde); --cor-texto: #fff; }
.sem-avaliacao { --cor-faixa: var(--laranja); --cor-texto: #fff; }
.sem-pausa { --cor-faixa: var(--mostarda); --cor-texto: #2E2A24; }
.sem-bloqueada { --cor-faixa: var(--roxo); --cor-texto: #fff; }
.sem-fora { --cor-faixa: var(--cinza-claro); --cor-texto: var(--suave); }

.nav-periodo { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 10px; font-weight: 800; }
.mes-cabecalho, .semana-mes .dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.mes-cabecalho span { text-align: center; font-size: .7rem; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .06em; padding: 4px 0; }
.semana-mes { background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; margin-bottom: 8px; }
.faixa { background: var(--cor-faixa); color: var(--cor-texto); font-size: .78rem; font-weight: 700; padding: 5px 12px; }
.dia-mes { min-height: 62px; padding: 4px 6px; border-right: 1px solid var(--linha); display: flex; flex-direction: column; gap: 2px; }
.dia-mes:last-child { border-right: 0; }
.dia-mes.fim-semana { background: #FBFAF7; }
.dia-mes.outro-mes .num-dia { opacity: .35; }
.dia-mes.hoje .num-dia { background: var(--tinta); color: #fff; border-radius: 999px; padding: 0 7px; align-self: flex-start; }
.num-dia { font-size: .84rem; font-weight: 700; }
.rotulo-dia { font-size: .68rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dia-mes.dia-semAula, .dia-semana.dia-semAula { background: var(--roxo-claro); }
.dia-mes.dia-avaliacao { background: #FFF8F1; }
.dia-mes.dia-pausaTri { background: #FDFAEE; }
.marca { display: block; font-size: .68rem; font-weight: 700; border-radius: 4px; padding: 1px 5px; background: var(--azul-claro); color: var(--azul); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marca-pausa, .marca-ferias, .marca-recesso, .marca-viagem { background: #E4DEF4; color: #4E3F7A; }
.marca-feriado { background: #F8DCD6; color: #8A3424; }
.marca-aniversario { background: var(--mostarda-claro); color: #7A5E10; }

.grade-semana { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.dia-semana { margin: 0; padding: 14px; }
.dia-semana h4 { font-size: .95rem; margin-bottom: 6px; }
.dia-semana.hoje { border-color: var(--tinta); }

.periodo-form { grid-template-columns: 1fr 1.6fr 1fr 1fr auto; }
.periodo-form .campo.largo { grid-column: auto; }
.lista-periodos { display: grid; gap: 8px; }
.periodo {
  display: grid; grid-template-columns: 150px 1fr auto auto; gap: 12px; align-items: center;
  background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 10px 14px;
}
.periodo-nome { display: flex; flex-direction: column; min-width: 0; }
.periodo-nome small { color: var(--suave); }
.periodo-nome .caixa { margin: 4px 0 0; }
.periodo-datas { display: flex; gap: 6px; flex-wrap: wrap; font-weight: 600; }
.selo-tipo { justify-self: start; font-size: .72rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--cinza-claro); color: var(--tinta); }
.tipo-trimestre .selo-tipo { background: var(--verde); color: #fff; }
.tipo-avaliacao .selo-tipo { background: var(--laranja); color: #fff; }
.tipo-pausaTri .selo-tipo { background: var(--mostarda); }
.tipo-pausa .selo-tipo, .tipo-ferias .selo-tipo, .tipo-recesso .selo-tipo, .tipo-viagem .selo-tipo { background: var(--roxo); color: #fff; }
.tipo-feriado .selo-tipo { background: #F8DCD6; color: #8A3424; }
.tipo-especial .selo-tipo { background: var(--azul-claro); color: var(--azul); }
.tipo-aniversario .selo-tipo { background: #FBE3EC; color: #9A2F5A; }
/* Caixinha recolhível de aniversários e pausas curtas do trimestre */
.periodos-miudos { margin-left: 24px; border: 1px dashed var(--linha-forte); border-radius: 10px; background: #FCFBF8; }
.periodos-miudos > summary { list-style: none; display: flex; gap: 8px; align-items: flex-start; padding: 8px 12px; cursor: pointer; font-size: .9rem; }
.periodos-miudos > summary::-webkit-details-marker { display: none; }
.periodos-miudos .seta .ic { width: 16px; height: 16px; margin-top: 2px; transition: transform .15s; color: var(--suave); }
.periodos-miudos[open] .seta .ic { transform: rotate(90deg); }
.lista-periodos.dentro { padding: 0 10px 10px; }
.lista-periodos.dentro .periodo { padding: 6px 10px; }

/* ---------- novo plano no modelo "Programas do CMC" (11/11/2026) ---------- */
.filtros-programas { display: grid; gap: 10px; }
.filtros-linha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
.filtros-linha .campo { margin: 0; }
.filtros-linha .campo-disc { grid-column: 2 / 4; }
.opcao-redonda { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 600; font-size: .9rem; }
.opcao-redonda input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opcao-redonda > span:first-of-type { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--linha-forte); background: var(--cartao); flex: none; display: grid; place-items: center; }
.opcao-redonda input:checked + span { background: var(--verde); border-color: var(--verde); box-shadow: inset 0 0 0 3px #fff; }
.opcao-redonda input:focus-visible + span { outline: 2px solid var(--verde); outline-offset: 2px; }
.opcao-redonda input:disabled + span { opacity: .4; }
.barra-usar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.barra-usar .botao:disabled { opacity: .45; cursor: default; }
.largo-total { flex-basis: 100%; margin: 0; }
.lista-programas { display: grid; gap: 12px; }
.programa { border-left: 3px solid var(--linha-forte); margin: 0; }
.programa.marcado { border-color: var(--verde); background: #FBFDFB; }
.programa-topo { display: flex; gap: 12px; align-items: flex-start; }
.programa-topo .so-bolinha { margin-top: 2px; }
.bolinha-vazia { width: 20px; flex: none; }
.programa-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.programa-corpo .sobretitulo { margin: 0; }
.programa-corpo h3 { margin: 0; font-size: 1.12rem; }
.programa-corpo .selo-conjunto { align-self: flex-start; margin: 0; }
.programa-corpo .autor { margin: 0; color: var(--suave); font-size: .88rem; }
.descricao-programa { margin: 0; font-size: .92rem; line-height: 1.55; }
.programa-corpo .obs { margin: 0; }
.chip-tri { font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 1px 9px; background: var(--laranja); color: #fff; }
.chip-tri.vazio { background: var(--cinza-claro); color: var(--suave); }
.freq-programa { margin: 0; color: var(--suave); font-size: .82rem; }
.programa .acoes-material { margin-top: 2px; }
@media (max-width: 640px) {
  .filtros-linha { grid-template-columns: 1fr; }
  .filtros-linha .campo-disc { grid-column: auto; }
}

/* ---------- novo plano ---------- */
.filtros { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; }
.filtros .campo { margin: 0; }
.filtros p { margin: 0 0 10px; }
.faltando summary { cursor: pointer; }
.lista-materiais { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 14px; }
.material { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.material h3 { font-size: 1.02rem; }
.material p { margin: 0; }
.autor { color: var(--suave); font-weight: 600; font-size: .86rem; }
.selos-material { display: flex; flex-wrap: wrap; gap: 6px; }
.selos-material .selo { margin: 0; }
.chips-fase { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-fase { font-size: .72rem; border: 1px solid var(--linha-forte); border-radius: 999px; padding: 1px 9px; background: var(--cartao); }
.lista-adotados { list-style: none; padding: 8px 10px; margin: 4px 0 0; background: var(--verde-claro); border-radius: 10px; font-size: .84rem; }
.lista-adotados li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 2px 0; }
.lista-adotados .bolinha { width: 10px; height: 10px; margin: 0; }
.acoes-material { display: flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 8px; }
.espaco { flex: 1; }
.previa { background: var(--fundo); border: 1px solid var(--linha); border-radius: 12px; padding: 4px 14px 10px; margin-top: 8px; }
.tabela-licoes .trecho input { width: 76px; padding: 4px 6px; }
.livros-disc { border-top: 1px solid var(--linha); padding: 10px 0; }
.livros-disc h4 { font-size: .95rem; margin-bottom: 4px; }
.livro-linha { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 6px 0; }
.botoes-linha { display: flex; align-items: center; gap: 2px; }
.fases-caixas { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.grupo-fases { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; }
.grupo-fases .caixa { margin: 0; }

/* ---------- cronograma ---------- */
.crono-barra { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.crono-estudantes { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.chip-est {
  border: 1.5px solid var(--cor); color: var(--cor); background: var(--cartao); border-radius: 999px;
  padding: 4px 12px; font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer;
}
.chip-est.ativo { background: var(--cor); color: #fff; }
.chip-est { display: inline-flex; align-items: center; gap: 4px; }
.chip-est .ic { width: 14px; height: 14px; }
.turma-est { margin-left: 6px; font-size: .86rem; font-weight: 700; color: var(--cor); }
.crono-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.crono-legenda { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .78rem; color: var(--suave); margin-bottom: 14px; }
.crono-legenda span::before { content: ""; display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; background: var(--c); }
.crono-corpo { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 16px; align-items: start; }
.pendentes { display: grid; gap: 10px; position: sticky; top: 72px; max-height: calc(100vh - 90px); overflow-y: auto; padding-right: 2px; }
.pendentes .vazio-pend { font-size: .86rem; color: var(--suave); padding: 6px 2px; }
.card-disc { background: var(--cartao); border: 1px solid var(--linha); border-left: 3px solid var(--cor); border-radius: 10px; padding: 10px 12px; }
.card-disc-topo { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.card-disc strong { font-size: .92rem; }
.card-disc .sub { font-size: .76rem; color: var(--suave); line-height: 1.35; }
.contador { flex: none; font-size: .72rem; font-weight: 800; color: #fff; background: var(--azul); border-radius: 999px; padding: 1px 8px; }
.alternar { display: inline-flex; background: var(--cinza-claro); border-radius: 8px; padding: 2px; margin: 8px 0 6px; }
.alternar button { border: 0; background: none; font: inherit; font-size: .76rem; font-weight: 700; color: var(--suave); padding: 3px 10px; border-radius: 6px; cursor: pointer; }
.alternar button.ativo { background: var(--tinta); color: #fff; }
.dias-botoes { display: flex; gap: 4px; }
.dias-botoes button {
  width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--linha-forte); background: var(--cartao);
  font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; color: var(--tinta);
}
.dias-botoes button:hover { border-color: var(--verde); color: var(--verde); }
.dias-botoes button.tem { background: var(--verde-claro); border-color: var(--verde-claro); color: var(--verde); }

.grade-crono-rolagem { overflow-x: auto; }
.grade-crono { display: grid; grid-template-columns: repeat(5, minmax(128px, 1fr)); gap: 8px; min-width: 700px; }
.col-dia { background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.col-dia-topo { text-align: center; background: var(--cinza-claro); border-radius: 8px; padding: 5px 4px; }
.col-dia-topo strong { display: block; font-size: .88rem; }
.col-dia-topo span { font-size: .72rem; color: var(--suave); }
.aviso-dia { font-size: .72rem; color: #8A4A12; background: var(--laranja-claro); border-radius: 6px; padding: 3px 6px; display: flex; gap: 4px; align-items: flex-start; }
.aviso-dia .ic { width: 12px; height: 12px; margin-top: 2px; color: var(--laranja); }
.rotulo-turno { font-size: .66rem; font-weight: 800; letter-spacing: .08em; color: var(--suave); text-transform: uppercase; margin-top: 2px; }
.zona { min-height: 44px; border-radius: 8px; display: flex; flex-direction: column; gap: 5px; padding: 2px; transition: background .15s; }
.zona.contraturno-zona { border-top: 1px dashed var(--linha-forte); padding-top: 6px; }
.zona.sobre { background: var(--verde-claro); }
.item-crono {
  display: flex; align-items: flex-start; gap: 4px; background: color-mix(in srgb, var(--cor) 9%, white);
  border: 1px solid color-mix(in srgb, var(--cor) 25%, white); border-left: 3px solid var(--cor);
  border-radius: 7px; padding: 5px 4px 5px 6px; cursor: grab; font-size: .8rem; line-height: 1.25;
}
.item-crono.comum { --cor: #6F675C; background: #F4F1EC; border-color: #E3DDD3; border-left-color: #6F675C; }
.item-crono .texto { flex: 1; min-width: 0; }
.item-crono .texto strong { display: block; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-crono .texto span { color: var(--suave); font-size: .72rem; }
.item-crono .x { border: 0; background: none; color: var(--suave); cursor: pointer; padding: 0 2px; border-radius: 4px; }
.item-crono .x:hover { color: var(--perigo); }
.item-crono .x svg { width: 13px; height: 13px; display: block; }
.item-crono.arrastando { opacity: .4; }
.pontos { display: inline-flex; gap: 2px; margin-right: 3px; }
.pontos i { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.total-semana { margin-top: 10px; font-size: .84rem; color: var(--suave); }
.modelo-grade { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); gap: 8px; min-width: 720px; }
.modelo-grade .col-dia { padding: 6px; }
.modelo-item { font-size: .76rem; border-bottom: 1px solid var(--linha); padding: 3px 2px; }
.modelo-item.sem-par { color: var(--suave); font-style: italic; }

.col-mais { border: 1px dashed var(--linha-forte); background: transparent; border-radius: 10px; cursor: pointer; color: var(--suave); display: grid; place-items: center; }
.col-mais:hover { color: var(--verde); border-color: var(--verde); }
.col-dia-topo { position: relative; }
.tirar-sabado { position: absolute; top: 4px; right: 4px; border: 0; background: none; color: var(--suave); cursor: pointer; padding: 2px; }
.tirar-sabado svg { width: 13px; height: 13px; display: block; }

/* ---------- aulas ---------- */
.nav-dia { display: flex; align-items: center; gap: 4px; }
.aviso-semana { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border-color: #E9D9B8; background: #FFFBF2; }
.aviso-semana > .ic { color: var(--oliva); }
.texto-aviso { display: flex; flex-direction: column; flex: 1; min-width: 220px; }
.botoes-aviso { display: flex; flex-wrap: wrap; gap: 6px; }
.linha-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; }
.largo-total { display: flex; justify-content: flex-start; width: 100%; padding: 10px 14px; margin-bottom: 12px; text-decoration: none; font-size: .9rem; }
.subtitulo-pequeno { display: flex; align-items: center; gap: 8px; font-size: .95rem; font-weight: 800; margin: 0; }
.autoeducacao .auto-item { display: flex; flex-direction: column; padding: 6px 0; border-bottom: 1px solid var(--linha); }
.auto-rodape { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; }
.relogio { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.relogio strong, #auto-tempo { font-variant-numeric: tabular-nums; font-weight: 800; font-size: 1.05rem; }
.botao-dia { width: 100%; justify-content: center; padding: 12px; font-size: 1rem; background: var(--tinta); margin-bottom: 4px; }
.botao-dia:hover { background: #000; }
.botao-dia span { font-weight: 600; opacity: .7; font-size: .85rem; margin-left: 6px; }
.centro { text-align: center; }
.titulo-turno { font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--suave); margin: 18px 0 8px; }
.lista-licoes { display: grid; gap: 8px; }
.linha-licao { display: flex; align-items: center; gap: 12px; background: var(--cartao); border: 1px solid var(--linha); border-left: 3px solid var(--cor); border-radius: 10px; padding: 10px 12px; }
.linha-licao.feita .info-licao strong { color: var(--suave); }
.check { width: 24px; height: 24px; flex: none; border-radius: 50%; border: 1.5px solid var(--linha-forte); background: var(--cartao); cursor: pointer; display: grid; place-items: center; padding: 0; color: #fff; }
.check:hover { border-color: var(--verde); }
.check.marcado { background: var(--verde); border-color: var(--verde); }
.check svg { width: 14px; height: 14px; }
.info-licao { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.selo-aluno { align-self: flex-start; font-size: .7rem; font-weight: 800; color: #fff; background: var(--cor); border-radius: 999px; padding: 1px 8px; margin-top: 3px; }
.acoes-licao { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.botao.escuro { background: var(--tinta); }
.botao.escuro:hover { background: #000; }

.lista-fechar { display: grid; gap: 8px; margin: 10px 0; }
.fechar-linha { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; }
.fechar-linha .selo-aluno { display: inline-block; }
.fechar-linha .passar { grid-column: 1 / -1; display: grid; gap: 6px; }
.fechar-linha .passar[hidden] { display: none; }
.passar-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

.painel-aula .bloco { border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.rotulo-bloco { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--suave); margin-bottom: 6px; cursor: default; }
details.bloco summary { cursor: pointer; }
.fizemos { display: flex; align-items: center; gap: 10px; border: 1px solid var(--verde-claro); background: var(--verde-claro); border-radius: 10px; padding: 10px 12px; font-weight: 800; margin: 12px 0; }
.fizemos input { width: 18px; height: 18px; accent-color: var(--verde); }
.pergunta { margin: 4px 0; font-style: italic; }
.linha-fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 8px; }
.campo-foto { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; border: 1px dashed var(--linha-forte); border-radius: 10px; padding: 10px 12px; cursor: pointer; font-size: .86rem; font-weight: 700; }
.campo-foto:hover { border-color: var(--verde); }
.campo-foto img { max-width: 100%; max-height: 160px; border-radius: 8px; }
.lista-perguntas { list-style: none; padding: 0; margin: 0 0 8px; }
.lista-perguntas li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border-bottom: 1px solid var(--linha); }
.linha-add { display: flex; gap: 8px; }
.linha-add input { flex: 1; }
.selecionadas { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.hab-sel { display: flex; align-items: flex-start; gap: 6px; background: var(--verde-claro); border-radius: 8px; padding: 6px 8px; font-size: .82rem; }
.hab-sel button { margin-left: auto; border: 0; background: none; cursor: pointer; color: var(--suave); padding: 0; }
.hab-sel svg { width: 13px; height: 13px; display: block; }
.bncc input#a-busca { width: 100%; margin-bottom: 6px; }
.lista-bncc { max-height: 260px; overflow-y: auto; border: 1px solid var(--linha); border-radius: 8px; }
.hab { display: flex; gap: 8px; align-items: flex-start; padding: 7px 10px; border-bottom: 1px solid var(--linha); font-size: .84rem; cursor: pointer; }
.hab:hover { background: var(--fundo); }
.hab input { margin-top: 3px; accent-color: var(--verde); }
.atribuicao { font-size: .7rem; color: var(--suave); margin: 6px 0 0; }

/* ---------- minha autoeducação ---------- */
.grade-auto { display: grid; grid-template-columns: repeat(7, minmax(130px, 1fr)); gap: 8px; min-width: 940px; }
.grade-auto .col-dia.hoje { border-color: var(--verde); }
.grade-auto .col-dia.hoje .col-dia-topo { background: var(--verde-claro); }
.item-auto.nn { border-left: 3px solid var(--verde); }
.legenda-nn { display: inline-block; width: 3px; height: 12px; background: var(--verde); border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
#au-objetivos { width: 100%; }
.item-auto { display: flex; gap: 4px; align-items: flex-start; border: 1px solid var(--linha); border-radius: 8px; padding: 6px 8px; font-size: .84rem; }
.item-auto > div { flex: 1; display: flex; flex-direction: column; }
.entrada-diario { background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; }
.entrada-diario p { margin: 2px 0; }
.entrada-topo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ---------- planejar ---------- */
.filtros-3 { grid-template-columns: 1.4fr 1fr 1fr; }
.nav-semana { display: flex; align-items: center; gap: 4px; border: 1px solid var(--linha-forte); border-radius: 8px; padding: 2px 4px; font-weight: 600; font-size: .88rem; background: #fff; }
.nav-semana span { flex: 1; text-align: center; }
.plano-disc h3 { font-size: 1.05rem; }
.recursos-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 10px; color: var(--suave); }
.chip-recurso { border: 0; border-radius: 999px; padding: 3px 10px; font: inherit; font-size: .74rem; font-weight: 700; cursor: pointer; background: var(--cinza-claro); color: var(--tinta); }
.chip-recurso.st-nao-iniciado { background: #F8DCD6; color: #8A3424; }
.chip-recurso.st-pedido, .chip-recurso.st-solicitado { background: var(--mostarda-claro); color: #7A5E10; }
.chip-recurso.st-baixado, .chip-recurso.st-recebido { background: var(--azul-claro); color: var(--azul); }
.chip-recurso.st-pronto { background: var(--verde); color: #fff; }
.plano-licao { border-top: 1px solid var(--linha); padding: 12px 0 4px; }
.plano-licao-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.status-plano { display: inline-flex; align-items: center; gap: 4px; }
.status-plano .ic { width: 14px; height: 14px; }
.salvo { color: var(--verde); font-weight: 700; min-width: 34px; }
.trecho-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.trecho-linha input { width: 84px; }
.editores { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.editor { border: 1px solid var(--linha-forte); border-radius: 8px; background: #fff; display: flex; flex-direction: column; }
.editor-barra { display: flex; align-items: center; gap: 2px; padding: 4px 6px; border-bottom: 1px solid var(--linha); }
.editor-rotulo { font-size: .78rem; font-weight: 700; margin-right: 6px; }
.editor-barra button { border: 0; background: none; cursor: pointer; padding: 3px 7px; border-radius: 6px; font: inherit; font-size: .8rem; color: var(--tinta); display: inline-flex; align-items: center; gap: 4px; }
.editor-barra button:hover { background: var(--cinza-claro); }
.editor-barra .ic { width: 14px; height: 14px; }
.editor-barra .ampliar { color: var(--suave); }
.editor-area { min-height: 84px; padding: 8px 10px; outline: none; font-size: .9rem; overflow-wrap: anywhere; }
.editor-area:empty::before { content: attr(data-placeholder); color: #A39B90; }
.editor-area ul, .texto-rico ul { margin: 4px 0; padding-left: 20px; }
.editor.grande .editor-area { min-height: 50vh; font-size: 1.02rem; line-height: 1.6; }
.texto-rico { font-size: .9rem; margin-bottom: 6px; }

/* ---------- meus recursos ---------- */
.resumo-largo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.alerta-recursos { display: flex; gap: 10px; align-items: flex-start; background: #FFF8F1; border-color: #F0D3B4; }
.alerta-recursos > .ic { color: var(--laranja); margin-top: 2px; }
.alerta-recursos p { margin: 4px 0 0; }
.filtros-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lista-recursos { display: grid; gap: 8px; }
.linha-recurso { display: flex; align-items: center; gap: 12px; background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 10px 14px; }
.info-recurso { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.chips-recurso { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 5px; }
.chips-recurso .selo { margin: 0; border: 0; cursor: pointer; font-family: inherit; }
.sel-status { flex: none; width: 170px; font-weight: 700; font-size: .84rem; }
.sel-status.st-nao-iniciado { background: #FDF1EE; color: #8A3424; }
.sel-status.st-pedido, .sel-status.st-solicitado { background: #FDF8E6; color: #7A5E10; }
.sel-status.st-baixado, .sel-status.st-recebido { background: var(--azul-claro); color: var(--azul); }
.sel-status.st-pronto { background: var(--verde-claro); color: var(--verde); }

/* ---------- relatório pedagógico ---------- */
.documento { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: clamp(18px, 4vw, 44px); color: #1F1F1C; }
.doc-topo { display: flex; justify-content: space-between; gap: 20px; border-bottom: 2px solid var(--tinta); padding-bottom: 14px; margin-bottom: 16px; }
.doc-familia { text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 800; color: var(--suave); margin: 0; }
.documento h1 { font-size: 1.7rem; font-weight: 800; margin: 2px 0 6px; }
.doc-aluno { font-size: 1.05rem; margin: 0 0 4px; }
.doc-meta { color: var(--suave); font-size: .86rem; margin: 2px 0; }
.doc-qr { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; font-size: .7rem; color: var(--suave); max-width: 120px; }
.doc-qr svg { width: 104px; height: 104px; }
.doc-resumo { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.doc-resumo div { border: 1px solid var(--linha); border-radius: 8px; padding: 8px 10px; }
.doc-resumo strong { display: block; font-size: 1.2rem; font-weight: 800; }
.doc-resumo span { font-size: .74rem; color: var(--suave); }
.doc-bloco, .doc-disciplina { margin: 0 0 22px; }
.documento h2 { font-size: 1.05rem; font-weight: 800; margin: 0 0 4px; }
.doc-habilidades h3 { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin: 12px 0 4px; }
.doc-freq { font-size: .84rem; color: var(--suave); margin: 0 0 6px; }
.doc-texto { position: relative; font-size: .88rem; padding-right: 34px; }
.doc-texto p { margin: 0 0 6px; }
.doc-texto .botao-icone { position: absolute; top: -4px; right: 0; }
.doc-metodo-t { font-weight: 700; }
.doc-metodo { margin: 0 0 10px; padding-left: 18px; }
.doc-lista { margin: 0; padding-left: 18px; font-size: .86rem; }
.doc-lista li { margin: 3px 0; }
.doc-tabela { width: 100%; border-collapse: collapse; font-size: .78rem; }
.doc-tabela th { text-align: left; font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); border-bottom: 1.5px solid var(--tinta); padding: 5px 6px; }
.doc-tabela td { border-bottom: 1px solid var(--linha); padding: 5px 6px; vertical-align: top; }
.doc-tabela td.num { font-weight: 800; text-align: center; width: 34px; }
.doc-tabela td.data { white-space: nowrap; }
.doc-tabela td.codigos span { display: inline-block; font-weight: 700; margin: 0 4px 2px 0; }
.doc-tabela tr.c-nao td:nth-child(4) { color: var(--perigo); font-weight: 700; }
.doc-tabela tr.c-sim td:nth-child(4) { color: var(--verde); font-weight: 700; }
.doc-tabela tr.c-futura td { color: #9A9184; }
.doc-fotos { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.doc-fotos figure { margin: 0; width: 150px; }
.doc-fotos img { width: 150px; height: 112px; object-fit: cover; border-radius: 6px; border: 1px solid var(--linha); }
.doc-fotos figcaption { font-size: .7rem; color: var(--suave); }
.doc-rodape { border-top: 1px solid var(--linha); padding-top: 12px; margin-top: 24px; font-size: .74rem; color: var(--suave); }
.doc-rodape p { margin: 2px 0; }
.assinatura { margin-top: 40px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.assinatura span { width: 260px; border-top: 1px solid var(--tinta); }
.assinatura p { color: var(--tinta); font-size: .82rem; margin-top: 4px; }

/* ---------- avaliações ---------- */
.so-imprimir { display: none; }
.principios summary { cursor: pointer; }
.principios ul { margin: 10px 0 6px; padding-left: 18px; font-size: .9rem; }
.principios li { margin: 5px 0; }
.prova-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 8px; }
.prova-topo h3 { font-size: 1.1rem; }
.pergunta-av { border-top: 1px solid var(--linha); padding: 14px 0 6px; }
.pergunta-topo { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.num-pergunta { width: 24px; height: 24px; border-radius: 50%; background: var(--tinta); color: #fff; display: grid; place-items: center; font-size: .78rem; font-weight: 800; flex: none; }
.pergunta-topo .sobretitulo { margin: 0; }
.texto-pergunta { width: 100%; font-weight: 700; font-size: 1rem; border-color: transparent; background: var(--fundo); margin-bottom: 8px; }
.formas { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.forma { border: 1px solid var(--linha-forte); background: var(--cartao); border-radius: 999px; padding: 3px 11px; font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; color: var(--suave); }
.forma.ativa { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.como-foi { border: 1px solid var(--linha); border-radius: 10px; padding: 8px 12px; }
.como-foi .caixa { margin: 4px 0; font-weight: 600; }
.acoes-centro { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 12px; }
.apoio-pergunta { margin: 4px 0 10px; padding: 8px 12px; border-left: 3px solid var(--verde, #2F5A45); background: rgba(47, 90, 69, .05); border-radius: 0 8px 8px 0; }
.apoio-pergunta summary { cursor: pointer; font-size: .85rem; font-weight: 700; color: var(--verde, #2F5A45); }
.apoio-pergunta p, .apoio-pergunta ul { margin: 6px 0; }
.apoio-pergunta ul { padding-left: 18px; }
.sugestao { display: block; width: 100%; text-align: left; border: 1px solid var(--linha); background: var(--fundo); border-radius: 8px; padding: 8px 10px; margin-bottom: 6px; font: inherit; font-size: .88rem; cursor: pointer; }
.sugestao:hover { border-color: var(--verde); }
.doc-intro p { font-size: .9rem; margin: 0 0 6px; line-height: 1.55; }
.doc-intro .item-intro { padding-left: 14px; text-indent: -10px; margin-bottom: 3px; }
.doc-consideracoes { margin-top: 10px; font-size: .88rem; border-left: 3px solid var(--verde); padding-left: 10px; }
.doc-consideracoes p { margin: 0 0 4px; }

/* ---------- Início ---------- */
.cartao-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.cartao-topo .subtitulo { margin: 0; }
.cartao-hoje { margin-bottom: 14px; }
.grade-inicio { align-items: start; }
.hoje-estudantes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px 24px; }
.hoje-nome { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.hoje-nome .bolinha { width: 12px; height: 12px; margin: 0; }
.lista-hoje { list-style: none; padding: 0; margin: 6px 0 0; }
.lista-hoje li { display: flex; align-items: center; gap: 8px; padding: 3px 0; font-size: .9rem; }
.lista-hoje li.ok { color: var(--suave); }
.lista-hoje li.ok > span:last-child { text-decoration: line-through; text-decoration-color: var(--linha-forte); }
.lista-hoje .ic { width: 16px; height: 16px; color: var(--verde); flex: none; }
.lista-hoje .circulo { width: 14px; height: 14px; border: 1.5px solid var(--linha-forte); border-radius: 50%; flex: none; margin: 0 1px; }
.cartao-alerta { border-color: #EBC9C1; }
.lista-curta { margin: 4px 0 8px; padding-left: 18px; font-size: .88rem; }
.semana-est { margin: 8px 0; }
.semana-linha { display: flex; justify-content: space-between; gap: 8px; }
.semana-linha .bolinha { width: 10px; height: 10px; margin: 0 6px 0 0; vertical-align: middle; }
.lista-marcos { list-style: none; padding: 0; margin: 4px 0 0; }
.lista-marcos li { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-top: 1px solid var(--linha); font-size: .88rem; }
.lista-marcos a { color: inherit; text-decoration: none; font-weight: 700; }
.lista-marcos .discreto { margin: 0; white-space: nowrap; }
.passos-inicio { padding-left: 20px; }
.passos-inicio li { margin: 6px 0; }
.passos-inicio li.ok { color: var(--suave); text-decoration: line-through; }

/* ---------- Calendário: semanas do trimestre ---------- */
.resumo-tri { text-align: center; margin: -4px 0 14px; }
.semana-tri { margin-bottom: 18px; scroll-margin-top: 70px; }
.semana-tri .semana-mes { margin-bottom: 8px; }
.semana-tri .grade-semana { margin-top: 0; }
.semana-tri .dia-semana { padding: 10px 12px; }
.semana-tri .dia-semana h4 { margin: 0 0 4px; font-size: .92rem; }
.semana-tri .dia-semana p { margin: 2px 0; }
.semana-atual .faixa { box-shadow: 0 0 0 2px var(--tinta) inset; }
.nav-periodo .botao-icone:disabled { opacity: .3; cursor: default; }

.apoio-aula { border-left: 3px solid var(--verde); padding: 4px 0 4px 10px; margin: 6px 0; }
.apoio-aula p { margin: 2px 0; }
.apoio-aula ol { margin: 4px 0; padding-left: 18px; }

/* ---------- Pastas do Drive ---------- */
.pasta-drive-aula { display: flex; align-items: center; gap: 6px; font-size: .88rem; margin: 4px 0 10px; }
.pasta-drive-aula .ic { width: 16px; height: 16px; color: var(--verde); flex: none; }
.lista-pastas { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 4px 14px; margin-top: 8px; }
.linha-pasta > span:first-child { font-size: .82rem; }
.pasta-entrada { display: flex; align-items: center; gap: 4px; }
.pasta-entrada input { flex: 1; min-width: 0; font-size: .8rem; }

/* ---------- Nuvem e conta ---------- */
.status-nuvem { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; color: var(--suave); text-decoration: none; border: 1px solid var(--linha-forte); border-radius: 999px; padding: 4px 10px; background: var(--cartao); }
.status-nuvem .ic { width: 15px; height: 15px; }
.status-nuvem.st-ok { color: var(--verde); border-color: #CFE0D5; }
.status-nuvem.st-desconectado { color: var(--tinta); }
.status-nuvem.st-offline { color: #7A5E10; background: var(--mostarda-claro); border-color: transparent; }
.status-nuvem.st-erro { color: var(--perigo); border-color: #EBC9C1; }
.status-nuvem[hidden] { display: none; }
.form-entrar { display: flex; flex-direction: column; gap: 4px; max-width: 360px; }
.form-entrar .botao { align-self: flex-start; margin-top: 6px; }
.campo-senha { display: flex; align-items: center; gap: 4px; }
.campo-senha input { flex: 1; }
.escolha-nuvem { display: grid; gap: 10px; margin: 12px 0; }
.opcao-nuvem { display: flex; flex-direction: column; gap: 4px; text-align: left; font: inherit; background: var(--cartao); border: 1.5px solid var(--linha-forte); border-radius: 12px; padding: 12px 14px; cursor: pointer; }
.opcao-nuvem:hover { border-color: var(--verde); }
.situacao-nuvem { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.situacao-nuvem .ic { width: 18px; height: 18px; flex: none; }
.situacao-nuvem.st-ok { color: var(--verde); }
.situacao-nuvem.st-offline { color: #7A5E10; }
.situacao-nuvem.st-erro { color: var(--perigo); }
.conta-ligada .acoes-linha { flex-wrap: wrap; margin-top: 10px; }

/* ---------- Minha autoeducação ---------- */
.frase-auto { background: var(--cartao); border: 1px solid var(--linha); border-left: 3px solid var(--mostarda); border-radius: 10px; padding: 10px 14px; font-size: .9rem; margin: 4px 0 8px; }
.abas-internas { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--linha-forte); margin: 14px 0 14px; }
.aba-interna { border: 0; background: none; font: inherit; font-weight: 700; color: var(--suave); padding: 8px 12px; border-bottom: 2.5px solid transparent; margin-bottom: -1px; cursor: pointer; }
.aba-interna.ativa { color: var(--tinta); border-bottom-color: var(--verde); }
.cabecalho-secao { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 18px 0 8px; }
.cabecalho-secao .subtitulo { margin: 0; }
.linha-auto-hoje { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--linha); }
.linha-auto-hoje:first-of-type { border-top: 0; }
.linha-auto-hoje > div { flex: 1; display: flex; flex-direction: column; }
.linha-auto-hoje .ic { width: 16px; height: 16px; color: var(--verde); }
.linha-auto-hoje .circulo { width: 14px; height: 14px; border: 1.5px solid var(--linha-forte); border-radius: 50%; flex: none; }
.linha-auto-hoje.ok strong { color: var(--suave); text-decoration: line-through; text-decoration-color: var(--linha-forte); }
.linha-auto-hoje .selo { margin: 0; }
.relogio-grande { display: flex; align-items: center; gap: 12px; background: var(--cinza-claro); border-radius: 12px; padding: 10px 14px; margin: 6px 0 12px; }
.relogio-grande span:first-child { font-size: 2rem; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.campo-nota { align-self: end; padding-bottom: 12px; }
.mais-campos { margin: 6px 0; }
.mais-campos summary { cursor: pointer; font-weight: 700; font-size: .88rem; color: var(--suave); margin-bottom: 6px; }
.chips-rolagem { max-height: 210px; overflow-y: auto; padding: 2px; margin-bottom: 10px; }
.tres-livros { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-bottom: 14px; align-items: start; }
.tres-livros .cartao { margin: 0; }
.livro-tipo .sobretitulo { margin: 0; }
.livro-atual { display: flex; flex-direction: column; gap: 3px; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.pag-linha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .85rem; margin-top: 4px; }
.pag-linha input { width: 70px; padding: 3px 6px; }
.livro-atual .acoes-linha { margin-top: 6px; flex-wrap: wrap; }
.linha-livro { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid var(--linha); }
.linha-livro > div { flex: 1; display: flex; flex-direction: column; }
.linha-livro select { width: auto; padding: 4px 8px; }
.linha-add { display: flex; gap: 8px; margin: 8px 0 4px; }
.linha-add input { flex: 1; }
.sobretitulo.passo { margin-top: 18px; }
.linha-ideia { display: flex; align-items: flex-start; gap: 10px; padding: 9px 0; border-top: 1px solid var(--linha); }
.linha-ideia.feita strong { color: var(--suave); text-decoration: line-through; }
.caixa-ideia { padding-top: 2px; }
.ideia-corpo { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.chips-mini { align-items: center; }
.chips-mini .chip { padding: 2px 9px; font-size: .76rem; border-radius: 999px; }
.sep-chips { width: 1px; height: 18px; background: var(--linha-forte); margin: 0 4px; }
.grade-blocos { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.bloco-min { background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; }
.bloco-topo { margin: 0; background: var(--tinta); color: #E8C76A; font-weight: 800; font-size: .78rem; letter-spacing: .08em; text-align: center; padding: 6px; }
.bloco-min ul { margin: 8px 0; padding-left: 26px; font-size: .86rem; }
.bloco-min p.discreto { padding: 6px 12px; }
.bloco-min .selo { margin: 0; font-size: .64rem; }
.filtro-fonte { margin: 10px 0 14px; }
.grupo-sug .sobretitulo { margin: 0; }
.grupo-sug .subtitulo { margin: 2px 0 4px; }
.lista-sug { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin-top: 10px; }
.item-sug { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; font: inherit; background: var(--cartao); border: 1px solid var(--linha-forte); border-radius: 10px; padding: 9px 11px; cursor: pointer; }
.item-sug:hover:not(:disabled) { border-color: var(--verde); }
.item-sug .sug-titulo { font-weight: 800; }
.item-sug .sug-nota { font-size: .8rem; color: #4A4540; }
.item-sug .sug-acao { margin-top: 4px; display: inline-flex; align-items: center; gap: 4px; font-size: .76rem; font-weight: 800; color: var(--verde); }
.item-sug .sug-acao .ic { width: 13px; height: 13px; }
.item-sug.na-lista { background: var(--verde-claro); border-color: transparent; cursor: default; color: var(--tinta); opacity: 1; }
.item-sug.na-lista .sug-acao { color: var(--suave); }

/* ---------- Meu planejamento (quadro do ano) ---------- */
.filtros-1 { grid-template-columns: minmax(0, 360px); }
.quadro-ano { width: 100%; border-collapse: collapse; min-width: 760px; font-size: .88rem; }
.quadro-ano thead th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .07em; color: var(--suave); padding: 8px 10px; border-bottom: 1px solid var(--linha-forte); vertical-align: bottom; }
.quadro-ano .data-col { display: block; text-transform: none; letter-spacing: 0; font-weight: 600; font-size: .72rem; }
.quadro-ano tbody th, .quadro-ano tfoot th { text-align: left; padding: 10px; border-bottom: 1px solid var(--linha); vertical-align: top; width: 20%; }
.quadro-ano .nome-disc { display: block; font-weight: 800; }
.quadro-ano td { padding: 10px; border-bottom: 1px solid var(--linha); vertical-align: top; width: 20%; }
.quadro-ano .tri-atual { background: var(--verde-claro); }
.quadro-ano thead .tri-atual { color: var(--verde); }
.quadro-ano .col-ano { border-left: 1px solid var(--linha-forte); }
.quadro-ano tfoot th, .quadro-ano tfoot td { border-top: 1.5px solid var(--linha-forte); border-bottom: 0; }
.livro-celula { font-size: .82rem; line-height: 1.3; margin-bottom: 4px; }
.numeros-celula { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; font-size: .82rem; margin-top: 4px; }
.numeros-celula .selo { margin: 0; }
.quadro-ano .discreto.pequeno { display: block; }
.barra-progresso { height: 6px; background: var(--cinza-claro); border-radius: 999px; overflow: hidden; margin: 5px 0 3px; }
.barra-progresso span { display: block; height: 100%; background: var(--verde); border-radius: 999px; }
.legenda-quadro { margin: 10px 0 0; }

/* ---------- Meu planejamento no modelo do logbook (11/11/2026) ---------- */
.onde-semana { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.onde-semana > .ic { width: 20px; height: 20px; color: var(--suave); flex: none; }
.onde-semana > div { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.boas-vindas .passos { list-style: none; padding: 0; margin: 6px 0 12px; display: grid; gap: 6px; font-size: .88rem; }
.boas-vindas .passos li { display: flex; gap: 8px; align-items: flex-start; }
.boas-vindas .passos li .ic { width: 16px; height: 16px; color: var(--verde); flex: none; margin-top: 2px; }
.boas-vindas .passos li.feito > span { text-decoration: line-through; color: var(--suave); }
.boas-vindas .passos a { color: inherit; font-weight: 700; }
.bolinha-passo { width: 14px; height: 14px; border: 1.5px solid var(--linha-forte); border-radius: 50%; flex: none; margin-top: 3px; }
.resumo-dois { display: grid; grid-template-columns: 1fr 1fr; }
.resumo-dois div { padding: 12px 16px; }
.resumo-dois strong { font-size: 1.6rem; }
.titulo-planos { margin-top: 18px; }
.filtros-planos { display: flex; gap: 6px; flex-wrap: wrap; }
.filtros-planos select { font: inherit; font-size: .85rem; padding: 5px 8px; border: 1px solid var(--linha-forte); border-radius: 8px; background: var(--cartao); }
.lista-planos { display: grid; gap: 10px; }
.plano-card { cursor: pointer; margin: 0; transition: border-color .15s; }
.plano-card:hover, .plano-card:focus { border-color: var(--linha-forte); outline: none; }
.plano-card h3 { margin: 0; font-size: 1.02rem; }
.plano-card-topo { display: flex; justify-content: space-between; gap: 10px; }
.icone-livro .ic { width: 18px; height: 18px; color: var(--suave); }
.plano-card-rodape { display: flex; align-items: center; gap: 6px; margin-top: 6px; }
.plano-card-rodape .selo-aluno { margin-top: 0; }
.voltar-plano { display: inline-flex; align-items: center; gap: 4px; text-decoration: none; color: var(--suave); margin-bottom: 10px; }
.voltar-plano .ic { width: 16px; height: 16px; }
.cabecalho-plano { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.titulo-plano { flex: 1; min-width: 240px; }
.titulo-plano h2 { font-size: 1.7rem; line-height: 1.15; margin: 2px 0 8px; }
.titulo-plano .parte { font-size: 1.2rem; }
.titulo-plano .selos-material { margin-bottom: 6px; }
.acoes-plano { display: flex; flex-wrap: wrap; gap: 6px; }
.botao-borda.ativo { background: var(--tinta); color: #fff; border-color: var(--tinta); }
.rotulo-bloco .ic { width: 14px; height: 14px; vertical-align: -2px; margin-right: 4px; }
.posicao-ano p { margin: 0; }
.metodo-licao ul { margin: 0; padding-left: 18px; font-size: .9rem; line-height: 1.5; }
/* Sigla da fonte do currículo (AOB, CMC): pequena, cinza, embaixo do título (pedido da Amanda). */
.fonte-material { display: block; margin: 2px 0 6px; font-size: .74rem; font-weight: 700; letter-spacing: .06em; color: #9A938B; }
.titulo-grupo-recurso { font-size: 1.05rem; font-weight: 800; color: var(--tinta); margin: 20px 0 8px; text-transform: none; letter-spacing: 0; }
/* Guia da lição (manuais da Amanda): tela grande, letra ajustável. */
.guia-materia-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.guia-materia-topo .rotulo-bloco { display: inline-flex; align-items: center; gap: 6px; }
.guia-materia .guia-caixa { --guia-letra: .9; max-height: 240px; overflow: hidden; padding: 0; position: relative;
  -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent); mask-image: linear-gradient(to bottom, #000 70%, transparent); }
.guia-materia .guia-caixa section:first-child h4 { margin-top: 8px; }
.guia-ler-tudo { margin-top: 4px; }
@media print { .guia-materia .guia-caixa { max-height: none; -webkit-mask-image: none; mask-image: none; } }
.guia-narr { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.guia-fundo { position: fixed; inset: 0; z-index: 60; background: rgba(30, 32, 28, .45); display: flex; justify-content: center; align-items: stretch; padding: 16px; }
.guia-licao { --guia-letra: 1; background: var(--cartao); border-radius: 14px; width: min(860px, 100%); display: flex; flex-direction: column; overflow: hidden; outline: none; box-shadow: 0 10px 40px rgba(0,0,0,.18); }
.guia-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 18px; border-bottom: 1px solid var(--linha); }
.guia-botoes { display: flex; gap: 6px; }
.guia-corpo { overflow-y: auto; padding: 8px 24px 28px; font-size: calc(1.05rem * var(--guia-letra)); line-height: 1.6; }
.guia-corpo h3 { font-size: 1.6em; margin: 12px 0 6px; }
.guia-corpo h4 { font-size: .8em; text-transform: uppercase; letter-spacing: .08em; color: var(--suave); margin: 22px 0 6px; }
.guia-corpo ul, .guia-corpo ol { margin: 0; padding-left: 22px; }
.guia-corpo li { margin-bottom: 6px; }
.guia-manual { display: flex; align-items: center; gap: 8px; margin-top: 24px; }
@media (max-width: 600px) { .guia-fundo { padding: 0; } .guia-licao { border-radius: 0; } .guia-corpo { padding: 6px 16px 24px; } }
.lista-plano { display: grid; gap: 6px; margin-top: 10px; }
.linha-plano { display: flex; align-items: center; gap: 12px; border: 1px solid var(--linha); border-radius: 10px; padding: 9px 12px; }
.linha-plano.clicavel { cursor: pointer; }
.linha-plano.clicavel:hover { border-color: var(--linha-forte); background: #FDFCFA; }
.linha-plano.feita .info-licao strong { color: var(--suave); }
.linha-plano .selo { flex: none; }
.edicao-licao { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.edicao-licao input { font: inherit; font-size: .85rem; padding: 4px 8px; border: 1px solid var(--linha-forte); border-radius: 7px; }
.edicao-licao input[type="number"] { width: 80px; }
.edicao-licao .o-que-fazer { flex: 1; min-width: 200px; }
.editar-plano .botoes-linha { flex-wrap: wrap; gap: 6px; }
.opcoes-reorganizar { display: grid; gap: 8px; margin: 10px 0; }
.opcoes-reorganizar .opcao { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; cursor: pointer; font-size: .9rem; }
.opcoes-reorganizar .opcao:has(input:checked) { border-color: var(--verde); background: var(--verde-claro); }
.opcoes-reorganizar .opcao > input { margin-top: 4px; }
.linha-outro { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.linha-outro input, .linha-outro select { font: inherit; font-size: .85rem; padding: 4px 8px; border: 1px solid var(--linha-forte); border-radius: 7px; }
.anotacoes .anotacao { border-top: 1px solid var(--linha); padding: 6px 0; }
.anotacoes .anotacao p { margin: 2px 0; font-size: .9rem; }
.lista-escolha { display: grid; gap: 6px; margin: 10px 0; }
.lista-escolha .botao-borda { justify-content: flex-start; padding: 8px 12px; }
.lista-escolha .bolinha { width: 12px; height: 12px; }

/* Página da lição: cronômetro com botões coloridos (Iniciar/Continuar verde, Pausar amarelo, Zerar vermelho). */
.voltar-plano[data-fechar] { margin-bottom: 4px; }
.modal .titulo-licao { font-size: 1.35rem; margin: 2px 0 0; }
.numero-licao { margin: 2px 0 4px; font-weight: 700; color: var(--suave); }
.painel-aula .relogio-aula { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.relogio-linha { display: flex; align-items: baseline; gap: 10px; }
.relogio-linha strong { font-size: 1.8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.botoes-relogio { display: flex; flex-wrap: wrap; gap: 6px; }
.botao-relogio { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 9px; padding: 8px 16px; font: inherit; font-size: .9rem; font-weight: 800; cursor: pointer; color: #fff; }
.botao-relogio .ic { width: 16px; height: 16px; }
.botao-relogio.iniciar { background: #2E8B57; }
.botao-relogio.iniciar:hover { background: #26744A; }
.botao-relogio.pausar { background: #E3B23C; color: #3B2E00; }
.botao-relogio.pausar:hover { background: #D4A22C; }
.botao-relogio.zerar { background: #C8402F; }
.botao-relogio.zerar:hover { background: #A93525; }
/* Página da lição no modelo do logbook (11/11/2026): Iniciar verde, Encerrar laranja, Registro rápido branco. */
.botao-relogio.encerrar { background: #E0672B; }
.botao-relogio.encerrar:hover { background: #C9561E; }
.botao-relogio.rapido { background: #fff; color: var(--tinta); border: 1px solid var(--linha-forte); }
.botao-relogio.rapido:hover { background: var(--creme, #FBF8F1); }
.relogio-info { display: flex; flex-direction: column; gap: 2px; }
.tempo-grande { font-size: 2rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.tempo-grande.passou { color: #C9561E; }
.duracao-planejada { font-size: .95rem; font-weight: 800; color: var(--verde); }
.duracao-planejada .discreto { font-weight: 600; font-size: .8rem; }
.numero-licao { margin: 4px 0 2px; font-size: 1rem; color: var(--tinta); }
.cabeca-licao .selo-aluno { margin: 0 4px 0 0; font-size: .78rem; padding: 2px 10px; }
.voltar-plano { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 8px; }
.titulo-bloco { display: block; font-weight: 800; font-size: 1.02rem; margin-bottom: 2px; }
.linha-titulo-bloco { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bloco-perguntas .linha-add { margin-top: 8px; }
.bloco-perguntas .linha-add[hidden], #a-lido[hidden] { display: none; }
#a-materiais { width: 100%; box-sizing: border-box; margin-top: 6px; }
.recursos-licao { margin-top: 10px; padding-top: 8px; border-top: 1px dashed rgba(47, 90, 69, .3); }
.rotulo-mini { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--verde); margin-bottom: 4px; }
.recursos-licao ul { margin: 0; padding-left: 18px; font-size: .9rem; line-height: 1.5; }
.recursos-licao details summary { cursor: pointer; }
.recursos-licao .apoio-aula { margin: 6px 0; }
.pergunta-lido { margin: 10px 0 4px; }
.opcoes-sim-nao { display: flex; gap: 18px; margin-bottom: 8px; }
.aviso-continua { display: flex; align-items: center; gap: 6px; background: #EAF3EE; color: var(--verde); font-weight: 700; font-size: .86rem; border-radius: 8px; padding: 6px 10px; margin: 6px 0; }
.aviso-continua .ic { width: 15px; height: 15px; }
#a-lido .botao { margin-top: 6px; }
.painel-aula .passo-licao .editor { margin-top: 8px; }
.referencia-leve { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 8px 0; }
.referencia-leve .ic { width: 15px; height: 15px; }
.botoes-agrupar { display: flex; align-items: center; gap: 6px; margin: 14px 0 4px; }
.botoes-agrupar button { font: inherit; font-size: .85rem; font-weight: 700; border: 1px solid var(--linha-forte); background: #fff; color: var(--tinta); border-radius: 999px; padding: 4px 12px; cursor: pointer; }
.botoes-agrupar button.ativo { background: var(--tinta); color: #fff; border-color: var(--tinta); }
.painel-aula .metodo-licao { background: var(--verde-claro); border-color: transparent; }
.painel-aula .metodo-licao summary, .painel-aula details > summary { cursor: pointer; }
.cabeca-licao { margin-bottom: 12px; }
.chips-licao { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.chips-licao .selo-aluno { margin-top: 0; font-size: .78rem; padding: 2px 10px; }
.chip-numero { font-weight: 800; font-size: .82rem; background: var(--tinta); color: #fff; border-radius: 999px; padding: 2px 10px; }
.leitura-hoje { display: flex; flex-direction: column; gap: 4px; background: #FFFDF6; border: 1px solid var(--linha-forte); border-left: 4px solid var(--verde); border-radius: 10px; padding: 12px 14px; margin: 10px 0; }
.leitura-hoje .rotulo-bloco { margin-bottom: 0; }
.ref-grande { font-size: 1.35rem; font-weight: 800; line-height: 1.2; }
.aviso-omitir { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; background: #FFF1D6; color: #7A4B00; font-weight: 700; font-size: .84rem; border-radius: 8px; padding: 3px 9px; margin: 2px 0; }
.aviso-omitir .ic { width: 14px; height: 14px; }
.aviso-omitir.em-linha { display: inline; padding: 1px 6px; }
.ref-licao { font-weight: 700; font-size: .92rem; }
/* Cartões leves (modelo do logbook, 11/11/2026): título forte, uma linha cinza, metadados pequenos. */
.info-licao.leve { gap: 1px; }
.info-licao.leve strong { font-size: 1rem; }
.sub-licao { font-size: .86rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.meta-licao { font-size: .78rem; color: var(--suave); }
.info-licao.leve .selo-aluno { margin-top: 4px; font-size: .72rem; padding: 1px 8px; align-self: flex-start; }
.linha-licao { padding: 8px 12px; }
.linha-plano { padding: 7px 12px; }
.linha-plano .linha-licao-topo strong { font-size: .95rem; }
.linha-licao-topo { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.linha-plano .info-licao { gap: 2px; }
.linha-plano.hoje { border-color: var(--verde); background: var(--verde-claro); }
.aula-do-dia { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-left: 4px solid var(--verde); }
.aula-do-dia > div { display: flex; flex-direction: column; gap: 3px; }
.aula-do-dia-num { font-size: 1.05rem; }
.aula-do-dia-ref { font-weight: 700; }
.passo-licao h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 1rem; }
.num-passo { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--verde); color: #fff; font-size: .8rem; }
.passo-licao textarea, .passo-licao > input { width: 100%; font: inherit; padding: 8px 10px; border: 1px solid var(--linha-forte); border-radius: 8px; margin-top: 6px; }
.passo-licao .linha-fotos { margin-top: 8px; }
.pergunta-anterior { display: flex; gap: 8px; background: var(--azul-claro); border-radius: 8px; padding: 8px 10px; margin: 6px 0; font-size: .9rem; }
.pergunta-anterior .ic { width: 16px; height: 16px; color: var(--azul); flex: none; margin-top: 2px; }
.pergunta-anterior div { display: flex; flex-direction: column; }
.para-mae { background: #F6F1FB; border-color: #E2D7F0 !important; }
.para-mae summary { display: flex; flex-direction: column; gap: 2px; }
.fizemos.leve { background: none; padding: 4px 0; font-weight: 600; }
.grade-form .largo { grid-column: 1 / -1; }
.grade-form[hidden] { display: none; }
.painel-aula details > summary.rotulo-bloco::after, .para-mae > summary .rotulo-bloco::after { content: " ▸ toque para abrir"; text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--suave); }
.painel-aula details[open] > summary.rotulo-bloco::after, .para-mae[open] > summary .rotulo-bloco::after { content: ""; }
@media (max-width: 640px) {
  .resumo-dois { grid-template-columns: 1fr 1fr; }
  .titulo-plano h2 { font-size: 1.4rem; }
  .linha-plano { flex-wrap: wrap; }
}
@media print {
  .linha-plano { break-inside: avoid; padding: 4px 8px; }
  .cabecalho-plano .titulo-plano h2 { font-size: 16pt; }
}

/* ---------- Histórico ---------- */
.ano-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--linha); }
.ano-linha:first-of-type { border-top: 0; }
.ano-linha > div:first-child { display: flex; flex-direction: column; gap: 2px; }
.ano-linha > div:first-child .selo { align-self: flex-start; margin: 0 0 2px; }
.ano-consulta { background: var(--mostarda-claro); border-radius: 10px; padding: 10px 14px; }
.acoes-linha { display: flex; gap: 6px; align-items: center; }
.filtros-diario { margin-bottom: 8px; }
.dia-diario { margin-top: 14px; }
.data-diario { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--suave); margin: 0 0 4px; padding-bottom: 4px; border-bottom: 1px solid var(--linha-forte); }
.item-diario { padding: 8px 0 10px; border-bottom: 1px solid var(--linha); }
.item-diario p { margin: 3px 0; }
.item-topo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.item-topo .selo { margin: 0; }
.item-topo .bolinha { width: 10px; height: 10px; flex: none; }
.narracao-diario { margin: 6px 0; padding: 4px 0 4px 12px; border-left: 3px solid var(--linha-forte); font-style: italic; color: #4A4540; font-size: .9rem; }
.lista-explica { padding-left: 18px; font-size: .9rem; }
.lista-explica li { margin: 6px 0; }
.aviso-texto { color: var(--perigo); font-weight: 700; }
.faixa-consulta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--mostarda-claro); border: 1px solid var(--mostarda); color: #5E4A0E; border-radius: var(--raio); padding: 8px 14px; margin: 16px 24px 0; }
.faixa-consulta .ic { width: 18px; height: 18px; }
.faixa-consulta span { flex: 1; }
.faixa-consulta[hidden] { display: none; }

/* ---------- celular e tablet ---------- */
@media (max-width: 900px) {
  .botao-menu { display: block; }
  .menu-lateral {
    position: fixed; top: 0; left: 0; z-index: 40; height: 100vh; background: var(--fundo);
    transform: translateX(-100%); transition: transform .2s; box-shadow: 0 0 40px rgba(0, 0, 0, .15);
    padding-top: calc(14px + env(safe-area-inset-top, 0px));
  }
  .menu-aberto .menu-lateral { transform: none; }
  .menu-aberto .fundo-menu { display: block; position: fixed; inset: 0; z-index: 30; background: rgba(31, 31, 28, .35); }
  .tela-fases, .crono-corpo { grid-template-columns: 1fr; }
  .lista-fases, .pendentes { position: static; max-height: none; }
  .pendentes { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
  .grade-dias, .grade-semana { grid-template-columns: 1fr 1fr; }
  .grade-form, .periodo-form { grid-template-columns: 1fr 1fr; }
  .periodo { grid-template-columns: 1fr auto; }
  .periodo .selo-tipo { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .grade-form, .periodo-form { grid-template-columns: 1fr; }
  .campo.largo { grid-column: auto; }
  .grade-dias, .grade-semana { grid-template-columns: 1fr; }
  .filtros, .filtros-3, .filtros-4 { grid-template-columns: 1fr; }
  .status-nuvem span { display: none; }
  .resumo-largo { grid-template-columns: 1fr 1fr; }
  .doc-resumo { grid-template-columns: 1fr 1fr; }
  .pergunta-av .linha-fotos { grid-template-columns: 1fr; }
  .doc-topo { flex-direction: column; }
  .doc-tabela { display: block; overflow-x: auto; }
  .linha-recurso { flex-wrap: wrap; }
  .sel-status { width: 100%; }
  .editores { grid-template-columns: 1fr; }
  .lista-materiais, .lista-estudantes { grid-template-columns: 1fr; }
  .rotulo-dia { display: none; }
  .linha-licao { flex-wrap: wrap; }
  .acoes-licao { width: 100%; justify-content: flex-start; padding-left: 36px; }
  .linha-fotos { grid-template-columns: 1fr; }
  .fechar-linha { grid-template-columns: 1fr; }
  .dia-mes { min-height: 48px; padding: 3px; }
  .marca { font-size: .6rem; padding: 0 3px; }
}

/* ---------- impressão (Exportar cronograma) ---------- */
@page { size: A4; margin: 14mm 12mm; }
@media print {
  .topo, .menu-lateral, .pendentes, .crono-acoes, .item-crono .x, .crono-estudantes button:not(.ativo), .nao-imprimir, .aviso-rapido { display: none !important; }
  .documento { border: 0; padding: 0; border-radius: 0; }
  .doc-tabela { font-size: 8.5pt; }
  .doc-tabela thead { display: table-header-group; }
  .doc-tabela tr, .doc-fotos figure, .doc-resumo, .assinatura { break-inside: avoid; }
  .documento h2 { break-after: avoid; }
  .doc-texto { padding-right: 0; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* Folha da avaliação para imprimir */
  body.modo-prova .so-imprimir { display: block; }
  body.modo-prova .texto-pergunta, body.modo-prova .principios, body.modo-prova .filtros { display: none !important; }
  body.modo-prova .prova { border: 0; box-shadow: none; padding: 0; }
  body.modo-prova .pergunta-av { break-inside: avoid; border-top: 0; padding: 0 0 6mm; }
  body.modo-prova .texto-pergunta-imp { font-weight: 700; font-size: 12pt; margin: 2mm 0; }
  body.modo-prova .linhas-resposta span { display: block; height: 9mm; border-bottom: 1px solid #9A9184; }
  main { padding: 0; max-width: none; }
  .crono-corpo { display: block; }
  .grade-crono { min-width: 0; }
  body { background: #fff; }
}
