/* Dinamiza Concursos — identidade, navegação e componentes compartilhados. */
:root {
  --marinho-950:#07192D;
  --marinho-900:#091F38;
  --marinho-800:#123353;
  --marinho-700:#204A71;
  --royal:#126595;
  --royal-escuro:#0E4E75;
  --celeste:#18B7E8;
  --celeste-claro:#75D5EF;
  --gelo:#F4F5F7;
  --papel:#F8F9FA;
  --branco:#FFF;
  --tinta:#182B3E;
  --ardosia:#617083;
  --linha:#DEE4EA;
  --atraso:#94641B;
  --atraso-fundo:#FBF3E4;
  --feito:#237357;
  --feito-fundo:#EAF5EF;
  --erro:#A33E49;
  --erro-fundo:#F9ECEE;
  --fonte:"Lexend","Segoe UI",system-ui,-apple-system,sans-serif;
  --fonte-cal:'Archivo Narrow','Arial Narrow',sans-serif;
  --fonte-cal-num:'Oswald','Arial Narrow',sans-serif;
  --superficie:#FFF;
  --relevo:none;
  --relevo-alto:0 14px 38px #091F381A;
  --tecla:none;
  --tecla-pressionada:none;
  --sidebar:242px;
  /* Camada de impacto: um azul vivo, usado só no que importa */
  --acento:#1E96F0;
  --acento-forte:#1570D4;
  --acento-escuro:#0F5CB3;
  --acento-suave:#E6F3FE;
  --fonte-num:'Oswald','Arial Narrow',sans-serif;
}

*,*::before,*::after {
  box-sizing:border-box;
}

html,body {
  margin:0;
}

body {
  font-family:var(--fonte);
  font-size:14px;
  line-height:1.6;
  color:var(--tinta);
  background:var(--gelo);
  -webkit-font-smoothing:antialiased;
}

button,input,select,textarea {
  font:inherit;
}

button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent;
}

a {
  color:var(--royal);
  text-underline-offset:3px;
}

a:hover {
  color:var(--royal-escuro);
}

h1,h2,h3 {
  margin:0;
  line-height:1.25;
  letter-spacing:-.035em;
}

h1 {
  font-size:clamp(26px,2.5vw,36px);
  font-weight:600;
}

h2 {
  font-size:19px;
  font-weight:600;
}

h3 {
  font-size:15px;
  font-weight:600;
}

p {
  margin:0;
}

b,strong {
  font-weight:600;
}

button {
  cursor:pointer;
}

:focus-visible {
  outline:3px solid var(--acento-forte);
  outline-offset:3px;
}

[hidden],.oculto {
  display:none!important;
}

.mut {
  color:var(--ardosia);
}

.pequeno {
  font-size:13px;
}

.ic {
  width:20px;
  height:20px;
  flex:none;
}

.sobretitulo {
  display:block;
  font-size:12px;
  font-weight:600;
  letter-spacing:.16em;
  color:var(--ardosia);
  margin-bottom:12px;
}

.pular {
  position:fixed;
  top:-80px;
  left:16px;
  z-index:100;
  padding:12px 20px;
  background:white;
}

.pular:focus {
  top:12px;
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Estrutura da aplicação */
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar);
  background:var(--marinho-900);
  color:#FFF;
  z-index:45;
  display:flex;
  flex-direction:column;
}

.sidebar-marca {
  padding:28px 22px 20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.marca-link {
  display:flex;
  align-items:center;
  gap:10px;
  color:#FFF;
  text-decoration:none;
}

.marca-link:hover {
  color:#FFF;
}

.marca {
  width:43px;
  height:46px;
  flex:none;
}

.marca-texto {
  display:flex;
  flex-direction:column;
  line-height:1.1;
}

.marca-texto b {
  font-size:22px;
  font-weight:700;
  letter-spacing:-.06em;
}

.marca-texto span {
  font-size:10px;
  letter-spacing:.3em;
  color:var(--celeste-claro);
  margin-top:6px;
}

.ambiente {
  margin:0 22px 18px;
  padding:10px 0 16px;
  border-bottom:1px solid #FFFFFF15;
  font-size:12.5px;
  color:#AABED1;
}

.nav-grupos {
  padding:0 12px 14px;
  flex:1;
  overflow:auto;
  scrollbar-width:thin;
}

.nav-grupo {
  margin-bottom:16px;
}

.nav-rotulo {
  display:block;
  padding:0 12px;
  margin-bottom:7px;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8BA2BA;
}

.nav-item {
  display:flex;
  gap:11px;
  align-items:center;
  min-height:42px;
  padding:10px 12px;
  margin:3px 0;
  text-decoration:none;
  color:#BDCCDA;
  border-radius:5px;
  font-size:13px;
  position:relative;
}

.nav-item:hover {
  color:#FFF;
  background:#FFFFFF09;
}

.nav-item .ic {
  width:17px;
  height:17px;
  opacity:.85;
}

.nav-item.on {
  color:#FFF;
  background:#163B58;
}

.nav-item.on::before {
  content:"";
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:3px;
  background:var(--acento);
  border-radius:2px;
  box-shadow:0 0 10px #1E96F0AA;
}

.nav-item.on .ic {
  color:#7CCBFA;
  opacity:1;
}

.nav-futuro {
  margin:12px 12px;
  font-size:12.5px;
  color:#94AABD;
}

.nav-futuro summary {
  cursor:pointer;
}

.nav-futuro p {
  font-size:12px;
  margin:10px 0;
}

.nav-futuro a {
  display:flex;
  justify-content:space-between;
  gap:8px;
  color:#AABED1;
  padding:5px 0;
  text-decoration:none;
}

.nav-futuro a span {
  font-size:11px;
}

.sidebar-rodape {
  border-top:1px solid #FFFFFF15;
  padding:18px 22px;
  display:flex;
  gap:11px;
  align-items:center;
  font-size:12.5px;
}

.sidebar-avatar {
  width:33px;
  height:33px;
  display:grid;
  place-items:center;
  background:#234562;
  border-radius:5px;
  color:#D6E6F2;
  font-weight:600;
}

.sidebar-rodape>div {
  flex:1;
  display:flex;
  flex-direction:column;
}

.sidebar-rodape>div span {
  font-size:12px;
  color:#94AABD;
}

.sidebar-rodape a {
  color:#94AABD;
}

.sidebar-rodape .ic {
  width:17px;
  height:17px;
}

.app-shell {
  margin-left:var(--sidebar);
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.topbar {
  height:74px;
  min-height:74px;
  border-bottom:1px solid var(--linha);
  background:#FFF;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:0 clamp(20px,3vw,44px);
  gap:12px;
}

.topbar-contexto,.topbar-conta {
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}

.topbar-marca {
  font-size:13px;
  color:#708091;
}

.topbar-marca b {
  color:var(--tinta);
}

.topbar-divisor {
  height:17px;
  width:1px;
  background:var(--linha);
}

.topbar-area {
  font-size:12.5px;
  color:var(--ardosia);
}

.topbar-conta a {
  font-size:12.5px;
  color:var(--ardosia);
  text-decoration:none;
}

.topbar-conta a:hover {
  text-decoration:underline;
}

.sair-link {
  display:flex;
  align-items:center;
  gap:6px;
}

.sair-link .ic {
  width:15px;
  height:15px;
}

.icone-btn {
  border:0;
  background:transparent;
  color:inherit;
  min-width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:5px;
}

.icone-btn:hover {
  background:#829AB51A;
}

.menu-btn,.sidebar-fechar {
  display:none;
}

.pagina {
  padding:32px clamp(20px,3vw,44px) 46px;
  flex:1;
  min-width:0;
}

.pagina-in {
  max-width:1380px;
  margin:auto;
  display:flex;
  flex-direction:column;
  gap:24px;
}

.pagina-larga .pagina-in {
  max-width:1680px;
}

.cabeca {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
}

.cabeca p {
  margin-top:8px;
  color:var(--ardosia);
  font-size:13px;
}

.cabeca .sobretitulo {
  margin-bottom:8px;
}

.acoes {
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  align-items:center;
}

.app-rodape {
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:#8995A2;
  font-size:12px;
  border-top:1px solid var(--linha);
  margin:0 clamp(20px,3vw,44px);
  padding:17px 0;
}

.nav-fundo {
  position:fixed;
  inset:0;
  background:#07192D99;
  border:0;
  z-index:44;
}

/* Superfícies e composição */
.bloco {
  background:#FFF;
  border:1px solid var(--linha);
  border-radius:6px;
  padding:22px 24px;
  min-width:0;
}

.bloco-cab {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.bloco-cab p {
  color:var(--ardosia);
  font-size:12.5px;
}

.duas {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:flex-start;
}

.duas>.larga {
  flex:999 1 520px;
  min-width:0;
}

.duas>.estreita {
  flex:1 1 290px;
  min-width:0;
}

.degraus {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  background:#FFF;
  border:1px solid var(--linha);
  border-radius:6px;
  overflow:hidden;
}

.degrau {
  padding:22px 24px;
  border-right:1px solid var(--linha);
  min-width:0;
}

.degrau:last-child {
  border-right:0;
}

.degrau.alto {
  background:var(--marinho-900);
  color:#FFF;
  border:0;
}

.degrau.alto .rot {
  color:#B2C5D7;
}

.degrau .num {
  display:block;
  font-family:var(--fonte-num);
  font-size:46px;
  font-weight:500;
  letter-spacing:-.01em;
  line-height:1.05;
  font-variant-numeric:tabular-nums;
  margin-bottom:7px;
}

.degrau .rot {
  font-size:12.5px;
  color:var(--ardosia);
  display:block;
  line-height:1.5;
}

.degrau .num small {
  letter-spacing:0;
}

.agenda-layout {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);
  gap:24px;
  align-items:start;
}

.agenda-principal,.agenda-resumo {
  display:flex;
  flex-direction:column;
  gap:24px;
  min-width:0;
}

.semana-estudo {
  margin-bottom:24px;
  background:#FFF;
  border:1px solid var(--linha);
  border-radius:5px;
  overflow:hidden;
}

.semana-cab {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 24px;
  border-bottom:1px solid var(--linha);
}

.semana-cab h2 {
  font-size:16px;
}

.semana-cab p {
  font-size:12.5px;
  color:var(--ardosia);
}

.semana-dias {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  overflow-x:auto;
}

.semana-dia {
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:18px 16px;
  color:var(--tinta);
  border-right:1px solid var(--linha);
  text-decoration:none;
}

.semana-dia:last-child {
  border-right:0;
}

.semana-dia:hover,.semana-dia:focus-visible {
  background:#F1F5FA;
  text-decoration:none;
}

.semana-dia.hoje {
  background:#EFF5FB;
  box-shadow:inset 0 3px 0 var(--royal);
}

.semana-dia-nome,.semana-dia-estado,.semana-dia small {
  font-size:12.5px;
}

.semana-dia-nome {
  color:var(--ardosia);
}

.semana-dia b {
  font-size:22px;
  font-weight:500;
  font-variant-numeric:tabular-nums;
}

.semana-progresso {
  height:3px;
  background:#E1E8F0;
  overflow:hidden;
  border-radius:2px;
}

.semana-progresso i {
  display:block;
  height:100%;
  background:var(--royal);
}

.semana-dia.completa .semana-progresso i {
  background:var(--feito);
}

.semana-dia.com-pendencia small {
  color:var(--atraso);
}

.orientacao-data {
  margin:12px 0 16px;
}

.nota-mentor-nova {
  background:#F6FAFE;
}

@media (max-width:700px) {
  .semana-dias {
    grid-template-columns:repeat(7,minmax(80px,1fr));
  }
  .semana-cab {
    padding:16px;
  }
  .semana-dia {
    padding:16px 12px;
  }
}

.proxima-meta {
  background:white;
  border:1px solid var(--linha);
  border-left:3px solid var(--royal);
  padding:24px;
  border-radius:5px;
}

.proxima-meta h2 {
  font-size:24px;
  margin:10px 0;
  max-width:44ch;
}

.proxima-meta p {
  font-size:13px;
  color:var(--ardosia);
}

.proxima-meta .acoes {
  margin-top:20px;
}

.agenda-lista {
  list-style:none;
  margin:0;
  padding:0;
}

.agenda-item {
  display:flex;
  gap:14px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--linha);
}

.agenda-item:last-child {
  border-bottom:0;
}

.agenda-ordem {
  font-size:12.5px;
  color:var(--ardosia);
  width:28px;
  flex:none;
}

.agenda-info {
  flex:1;
  min-width:0;
}

.agenda-info b {
  display:block;
  font-size:13px;
  line-height:1.5;
}

.agenda-info small {
  display:block;
  margin-top:4px;
  color:var(--ardosia);
  font-size:12.5px;
}

.agenda-item .btn {
  flex:none;
}

.nota-mentor {
  border-top:3px solid var(--royal);
}

.nota-mentor-texto {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:13px;
  line-height:1.8;
}

.nota-mentor .pequeno {
  margin-top:15px;
}

.resumo-linhas {
  margin:0;
}

.resumo-linhas>div {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--linha);
}

.resumo-linhas>div:last-child {
  border-bottom:0;
}

.resumo-linhas dt {
  font-size:13px;
  color:var(--ardosia);
}

.resumo-linhas dd {
  margin:0;
  font-weight:600;
  font-size:13px;
}

.atencao-lista {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}

.atencao-item {
  background:#FFF;
  border:1px solid var(--linha);
  border-left:3px solid #BC8F49;
  border-radius:5px;
  padding:18px;
}

.atencao-item h3 {
  margin-bottom:8px;
}

.atencao-item p {
  font-size:12.5px;
  color:var(--ardosia);
}

.atencao-item .acoes {
  margin-top:14px;
}

.bloco-atencao {
  border:0;
  padding:0;
  background:transparent;
}

.vazio {
  padding:25px 0;
  text-align:center;
  color:var(--ardosia);
  font-size:13px;
}

.vazio h3 {
  color:var(--tinta);
  margin-bottom:7px;
}

.vazio .btn {
  margin-top:14px;
}

.tabela-filtros {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:18px;
  align-items:center;
}

.tabela-filtros .campo {
  flex:1 1 220px;
}

.tabela-filtros .campo.filtro-peq {
  flex:0 1 180px;
}

.tabela-contagem {
  font-size:12.5px;
  color:var(--ardosia);
}

/* Ações e formulários */
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:42px;
  padding:9px 16px;
  font:inherit;
  font-weight:500;
  font-size:13px;
  color:var(--tinta);
  background:#FFF;
  border:1px solid #CCD5DF;
  border-radius:5px;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  transition:background .15s,border-color .15s;
}

.btn:hover {
  background:#F4F7FA;
  border-color:#96ADBE;
  color:var(--tinta);
}

.btn-pri {
  color:#FFF;
  background:var(--acento-forte);
  border-color:var(--acento-forte);
  font-weight:600;
}

.btn-pri:hover {
  color:#FFF;
  background:var(--acento-escuro);
  border-color:var(--acento-escuro);
}

.btn-perigo {
  color:var(--erro);
}

.btn-peq {
  min-height:34px;
  font-size:12.5px;
  padding:6px 11px;
}

.btn[disabled] {
  opacity:.5;
  cursor:not-allowed;
}

.btn .ic {
  width:16px;
  height:16px;
}

.link-btn {
  border:0;
  background:transparent;
  padding:4px 0;
  color:var(--royal);
  font:inherit;
  font-size:13px;
  cursor:pointer;
}

.link-btn:hover {
  text-decoration:underline;
}

.teclas {
  display:inline-flex;
  flex-wrap:wrap;
  gap:2px;
  padding:3px;
  border:1px solid var(--linha);
  border-radius:5px;
  background:#F0F3F6;
  align-self:flex-start;
}

.tecla {
  min-height:34px;
  padding:7px 13px;
  border:1px solid transparent;
  border-radius:3px;
  font:inherit;
  font-size:12.5px;
  font-weight:500;
  color:var(--ardosia);
  background:transparent;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  cursor:pointer;
}

.tecla:hover {
  color:var(--tinta);
  background:#FFFFFF88;
}

.tecla.on {
  color:var(--marinho-900);
  background:#FFF;
  border-color:#D5DEE7;
}

.campo {
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:12.5px;
  font-weight:500;
  color:#41566B;
  min-width:0;
}

.campo input,.campo select,.campo textarea,.entrada {
  width:100%;
  min-height:42px;
  padding:10px 12px;
  font:inherit;
  font-size:13px;
  font-weight:400;
  color:var(--tinta);
  background:#FFF;
  border:1px solid #CCD5DF;
  border-radius:5px;
  max-width:100%;
}

.campo input:focus,.campo select:focus,.campo textarea:focus,.entrada:focus {
  border-color:var(--royal);
}

.campo textarea {
  min-height:110px;
  resize:vertical;
  line-height:1.7;
}

.campo .dica,.dica {
  font-size:12.5px;
  font-weight:400;
  color:var(--ardosia);
}

.grade {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:16px;
}

.check {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  cursor:pointer;
  min-width:0;
}

.check input {
  width:17px;
  height:17px;
  accent-color:var(--royal);
  flex:none;
}

.horas-dia {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(108px,1fr));
  gap:10px;
}

.horas-dia label,.horas-dia .celula {
  background:#F6F8FA;
  border:1px solid var(--linha);
  border-radius:5px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:7px;
  font-size:12.5px;
}

.horas-dia input {
  width:72px;
  min-height:38px;
  border:1px solid #CCD5DF;
  border-radius:4px;
  padding:0 8px;
  font:inherit;
  background:white;
}

.linha-aluno {
  justify-content:space-between;
  padding:11px 12px;
  background:#F7F9FB;
  border:1px solid var(--linha);
  border-radius:4px;
}

.avisos {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.aviso {
  padding:12px 16px;
  font-size:13px;
  border-left:3px solid;
  border-radius:3px;
  overflow-wrap:anywhere;
}

.aviso.ok {
  background:var(--feito-fundo);
  border-color:var(--feito);
  color:#205D49;
}

.aviso.erro {
  background:var(--erro-fundo);
  border-color:var(--erro);
  color:#84323D;
}

.aviso:not(.ok):not(.erro):not(.info) {
  background:var(--atraso-fundo);
  border-color:var(--atraso);
  color:#78501C;
}

.aviso.info {
  background:#EAF2F8;
  border-color:var(--royal);
  color:#285374;
}

.tabela-wrap {
  overflow:auto;
  max-width:100%;
}

.tabela {
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}

.tabela th {
  text-align:left;
  font-size:12px;
  font-weight:500;
  color:var(--ardosia);
  padding:12px 14px;
  border-bottom:1px solid var(--linha);
  white-space:nowrap;
  background:#FAFBFC;
}

.tabela td {
  padding:15px 14px;
  border-bottom:1px solid #E7EBF0;
  vertical-align:middle;
}

.tabela tr:last-child td {
  border-bottom:0;
}

.tabela tbody tr:hover {
  background:#F9FBFD;
}

.tabela td a {
  text-decoration:none;
}

.tabela td a:hover {
  text-decoration:underline;
}

.tabela .num {
  text-align:right;
  font-variant-numeric:tabular-nums;
}

.tabela .acoes {
  flex-wrap:nowrap;
}

.tabela .acoes a {
  font-size:12.5px;
}

.etq {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:3px 7px;
  font-size:12px;
  font-weight:500;
  border-radius:3px;
  background:#EDF1F5;
  color:#526477;
  white-space:nowrap;
  text-decoration:none;
}

.etq.ok {
  background:var(--feito-fundo);
  color:var(--feito);
}

.etq.atraso {
  background:var(--atraso-fundo);
  color:var(--atraso);
}

.etq.erro {
  background:var(--erro-fundo);
  color:var(--erro);
}

.etq.azul {
  background:#EAF2F8;
  color:var(--royal);
}

.etq.escura {
  background:var(--marinho-800);
  color:white;
}

.riscado {
  text-decoration:line-through;
  text-decoration-thickness:1px;
  color:var(--ardosia);
}

.barra {
  display:block;
  height:6px;
  border-radius:3px;
  overflow:hidden;
  background:#E7EDF3;
  position:relative;
}

.barra>i {
  display:block;
  height:100%;
  border-radius:3px;
  background:linear-gradient(90deg,var(--acento-forte),var(--acento));
  transform-origin:left center;
  animation:dz-encher .9s cubic-bezier(.2,.7,.2,1) both;
}

/* Entrada editorial */
.login {
  min-height:100vh;
  display:grid;
  grid-template-columns:1.12fr 1fr;
}

.login-lado {
  background:var(--marinho-900);
  color:white;
  display:flex;
  flex-direction:column;
  padding:48px clamp(28px,6vw,90px);
  position:relative;
  overflow:hidden;
}

.login-logo {
  display:flex;
  align-items:center;
  gap:15px;
}

.login-logo .marca {
  width:59px;
  height:64px;
}

.login-logo b {
  display:block;
  font-size:29px;
  letter-spacing:-.06em;
  font-weight:700;
  line-height:1.1;
}

.login-logo span {
  display:block;
  font-size:12px;
  letter-spacing:.32em;
  color:var(--celeste-claro);
  margin-top:6px;
}

.login-editorial {
  margin:auto 0;
  padding:65px 0;
}

.login-editorial .sobretitulo {
  color:#8AAFC9;
  font-size:12px;
}

.login-editorial h1 {
  font-size:clamp(42px,5vw,74px);
  line-height:1.06;
  letter-spacing:-.065em;
}

.login-editorial h1 span {
  color:var(--celeste);
}

.login-editorial p {
  font-size:14px;
  line-height:1.9;
  color:#B8CCDC;
  margin-top:25px;
}

.login-principios {
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:40px;
  border-top:1px solid #FFFFFF20;
  padding-top:24px;
  font-size:13px;
  color:#B8CCDC;
}

.login-principios b {
  display:inline-block;
  width:33px;
  color:var(--celeste-claro);
  font-size:12px;
}

.login-assinatura {
  font-size:12px;
  color:#8AA3B9;
}

.login-form {
  display:flex;
  align-items:center;
  justify-content:center;
  padding:48px 28px;
  background:#FFF;
}

.login-card {
  width:min(400px,100%);
  display:flex;
  flex-direction:column;
  gap:23px;
}

.login-card h2 {
  font-size:28px;
  line-height:1.25;
  letter-spacing:-.045em;
  margin-bottom:12px;
}

.login-card p.mut {
  font-size:13px;
}

.login-card .campo input {
  min-height:48px;
}

.login-card>.btn {
  min-height:49px;
  justify-content:space-between;
}

.login-card .check {
  font-size:12.5px;
}

.esqueci summary {
  cursor:pointer;
  color:var(--royal);
  font-size:12.5px;
}

.esqueci p {
  margin-top:8px;
  font-size:12.5px;
  color:var(--ardosia);
}

.login-ajuda {
  font-size:12px;
  color:#8796A4;
  padding-top:22px;
  border-top:1px solid var(--linha);
}

/* Calendário */
.cal-barra {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
}

.cal-nav {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.cal-titulo {
  font-size:17px;
  font-weight:500;
  min-width:160px;
  text-align:center;
  text-transform:capitalize;
}

.cal-filtros {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.cal-filtros select {
  min-width:180px;
}

.saldo {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px 26px;
}

.saldo-barra {
  flex:1 1 320px;
  min-width:0;
}

.saldo-barra .linha1 {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  font-size:12.5px;
  margin-bottom:11px;
}

.saldo-trilho {
  position:relative;
  height:8px;
  border-radius:4px;
  overflow:hidden;
  background:#E6EBF0;
}

.saldo-trilho i {
  position:absolute;
  inset:0 auto 0 0;
  border-radius:4px;
}

.saldo-trilho .plan {
  background:#BFD0DF;
}

.saldo-trilho .real {
  background:var(--royal);
}

.legenda {
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  font-size:12px;
  color:var(--ardosia);
}

.legenda span {
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.legenda i {
  width:9px;
  height:9px;
  border-radius:2px;
  display:inline-block;
}

.cal-legendas {
  border-top:1px solid var(--linha);
  padding-top:12px;
}

#calendario {
  background:#FFF;
  border:1px solid var(--linha);
  border-radius:6px;
  overflow:hidden;
  padding:6px;
}

.fc {
  --fc-border-color:#E3E8EE;
  --fc-today-bg-color:#F6FAFD;
  --fc-page-bg-color:#FFF;
  font-size:12.5px;
  font-family:var(--fonte-cal);
}

.fc .fc-col-header-cell-cushion {
  padding:12px 4px;
  font-size:12px;
  font-weight:500;
  color:var(--ardosia);
  text-transform:capitalize;
  text-decoration:none;
}

.fc .fc-daygrid-day-top {
  flex-direction:row;
}

.fc .fc-daygrid-day-number {
  font-family:var(--fonte-cal-num);
  font-size:13px;
  font-weight:500;
  color:var(--tinta);
  text-decoration:none;
  padding:8px;
  line-height:1.1;
}

.fc .fc-day-other .fc-daygrid-day-number {
  color:#A2ADBA;
}

.fc .fc-day-today .fc-daygrid-day-number {
  background:var(--marinho-800);
  color:#FFF;
  margin:4px;
  padding:5px 7px;
  border-radius:3px;
}

.fc .fc-daygrid-day-frame {
  min-height:128px;
  display:flex;
  flex-direction:column;
}

.fc .fc-daygrid-day-events {
  margin-bottom:4px;
}

.fc-daygrid-event-harness {
  margin-top:4px;
}

.fc .dz-meta {
  border:0;
  border-left:3px solid var(--disc-cor,#647A8F);
  border-radius:3px;
  padding:0;
  margin:0 4px;
  cursor:pointer;
  background:#F7F9FB!important;
  color:var(--tinta)!important;
}

.fc .dz-meta.is-aluno {
  outline:1px dashed #8294A6;
  outline-offset:-1px;
}

.fc .dz-meta.is-done {
  opacity:.65;
}

.dz-ev {
  font-family:var(--fonte-cal);
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 6px;
  min-width:0;
  font-weight:400;
  font-size:13px;
  line-height:1.4;
}

.dz-ev .dur {
  font-family:var(--fonte-cal-num);
  flex:none;
  font-size:12px;
  color:var(--ardosia);
  font-variant-numeric:tabular-nums;
}

.dz-ev .tit {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.dz-meta.is-done .tit {
  text-decoration:line-through;
}

.dz-ev .ponto {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--atraso);
  flex:none;
}

.dz-ev svg {
  flex:none;
}

.dz-semana .dz-ev {
  flex-direction:column;
  align-items:flex-start;
  padding:9px 8px;
  gap:5px;
  white-space:normal;
}

.dz-semana .dz-ev .tit {
  white-space:normal;
  font-size:14px;
  overflow-wrap:anywhere;
}

.dz-semana .dz-ev .pequeno {
  font-size:12.5px;
  color:var(--ardosia);
}

.dz-total {
  margin-top:auto;
  padding:6px 8px;
  font-size:11.5px;
  color:var(--ardosia);
  font-variant-numeric:tabular-nums;
}

.dz-total.acima {
  color:var(--erro);
}

.fc .dz-acima {
  background:#FEF5F5;
}

.fc .fc-daygrid-more-link {
  font-size:11.5px;
  font-weight:500;
  color:var(--royal);
  margin-left:6px;
}

.fc .fc-list {
  border:0;
}

.fc .fc-list-day-cushion {
  background:#F4F7FA;
  padding:12px;
}

.fc .fc-list-day-cushion a {
  color:var(--ardosia);
  text-decoration:none;
}

.fc .fc-list-event-time {
  display:none;
}

.fc .fc-list-event-graphic {
  padding-left:18px;
}

.fc .fc-list-event-title {
  padding:12px 16px;
}

.fc .fc-list-event .dz-ev {
  gap:12px;
}

.fc .fc-list-event .tit {
  white-space:normal;
  overflow-wrap:anywhere;
  font-size:12.5px;
}

.fc .fc-list-event:hover td {
  background:#F6FAFD;
}

.fc .fc-list-empty {
  background:#FFF;
}

.cal-dica {
  font-size:11.5px;
  color:var(--ardosia);
}

/* Estudo, modais e leitura */
.modal {
  position:fixed;
  inset:0;
  z-index:60;
  display:flex;
  padding:18px;
}

.modal-fundo {
  position:absolute;
  inset:0;
  background:#07192DA6;
  border:0;
}

.modal-caixa {
  position:relative;
  margin:auto;
  width:min(1320px,100%);
  height:min(900px,calc(100dvh - 36px));
  background:#FFF;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border-radius:8px;
  box-shadow:0 24px 80px #07192D40;
  min-width:0;
}

.modal-pequeno .modal-caixa {
  width:min(660px,100%);
  height:auto;
  max-height:calc(100dvh - 36px);
}

.modal-cab {
  padding:22px 26px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  border-bottom:1px solid var(--linha);
  background:#FFF;
}

.modal-cab .info {
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
  flex:1 1 300px;
}

.modal-cab h2 {
  font-size:25px;
  font-weight:600;
  overflow-wrap:anywhere;
}

.modal-cab .meta-linha {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  font-size:12.5px;
  color:var(--ardosia);
}

.modal-corpo {
  flex:1 1 auto;
  display:flex;
  min-height:0;
  overflow:hidden;
}

.estudo {
  flex:1;
  min-width:0;
  padding:22px 30px 32px;
  display:flex;
  flex-direction:column;
  gap:24px;
  overflow:auto;
}

.registro {
  width:310px;
  flex:none;
  background:#F8FAFB;
  border-left:1px solid var(--linha);
  padding:24px;
  display:flex;
  flex-direction:column;
  gap:23px;
  overflow:auto;
}

.registro h3 {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--ardosia);
  font-weight:500;
  margin-bottom:9px;
}

.registro p {
  font-size:13px;
  line-height:1.8;
}

.registro .final {
  margin-top:auto;
  display:flex;
  flex-direction:column;
  gap:9px;
}

.tempo-linha {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
}

.tempo-linha input {
  width:70px;
  min-height:42px;
  border:1px solid #CCD5DF;
  border-radius:4px;
  padding:0 8px;
  font:inherit;
  font-size:16px;
  background:white;
}

.crono-area {
  display:flex;
  flex-direction:column;
  gap:5px;
}

.crono-area>small {
  color:var(--ardosia);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.cronometro {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--marinho-900);
}

.cronometro .luz {
  width:7px;
  height:7px;
  border-radius:50%;
  background:#A6B4C2;
}

.cronometro.rodando .luz {
  background:var(--feito);
}

.cronometro .tempo {
  font-variant-numeric:tabular-nums;
  font-size:26px;
  font-weight:500;
  letter-spacing:-.04em;
  min-width:114px;
  line-height:1.2;
}

.cronometro button {
  width:34px;
  height:34px;
  border:1px solid var(--linha);
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#FFF;
  color:var(--tinta);
}

.cronometro .play {
  background:var(--royal);
  border-color:var(--royal);
  color:white;
}

.cronometro .zerar {
  font-size:18px;
}

.fechar {
  width:36px;
  height:36px;
  border:1px solid var(--linha);
  border-radius:4px;
  background:#FFF;
  font-size:16px;
  color:var(--ardosia);
}

.mat-abas {
  display:flex;
  flex-wrap:wrap;
  gap:3px;
  flex:none;
}

.mat-conteudo {
  max-width:72ch;
  margin:0 auto;
  font-size:16px;
  line-height:1.9;
  width:100%;
  color:#283E52;
}

.mat-conteudo h3 {
  font-size:20px;
  margin:24px 0 10px;
}

.mat-conteudo ul {
  padding-left:22px;
  margin:8px 0;
}

.mapa {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.mapa .no {
  width:fit-content;
  max-width:100%;
  padding:9px 13px;
  border-left:2px solid #BCD0E0;
  font-size:14px;
  background:#F5F8FA;
  border-radius:3px;
  overflow-wrap:anywhere;
}

.mapa .n0 {
  background:var(--marinho-900);
  color:white;
  font-weight:600;
  border:0;
}

.mapa .n1 {
  background:#EAF2F8;
  color:#245274;
}

.cartao {
  width:100%;
  max-width:760px;
  min-height:300px;
  padding:32px;
  border:1px solid var(--linha);
  border-radius:6px;
  background:#FFF;
  font:inherit;
  font-size:23px;
  line-height:1.6;
  display:flex;
  flex-direction:column;
  gap:24px;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--tinta);
}

.cartao.verso {
  background:#F1F7FA;
}

.cartao small {
  font-size:12px;
  color:var(--ardosia);
}

.cartao-nav {
  display:flex;
  justify-content:space-between;
  align-items:center;
  max-width:760px;
  gap:10px;
  font-size:13px;
}

.vazio-mat {
  color:var(--ardosia);
  font-size:13px;
  padding:20px 0;
  line-height:1.9;
}

.form-meta {
  padding:25px;
  display:flex;
  flex-direction:column;
  gap:18px;
  overflow:auto;
}

.estudo-pagina {
  display:flex;
  flex-direction:column;
  height:calc(100dvh - 230px);
  min-height:560px;
  background:white;
  border:1px solid var(--linha);
  border-radius:6px;
  overflow:hidden;
}

.estudo-pagina .estudo-fechar {
  display:none;
}

.estudo-pagina .abrir-pagina {
  display:none;
}

.registro-oculto .registro {
  display:none;
}

.estudo-pagina.registro-oculto .estudo {
  max-width:1040px;
  align-self:center;
  width:100%;
  margin:auto;
}

.estudo-pagina.registro-oculto .modal-corpo {
  justify-content:center;
}

.leitura-rodape {
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:13px 26px;
  border-top:1px solid var(--linha);
  font-size:12px;
  color:var(--ardosia);
}

.pagina-estudo .pagina-in {
  gap:18px;
}

.pagina-estudo .cabeca h1 {
  font-size:24px;
}

.status-cor {
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:2px;
  background:var(--disc-cor,#617083);
  margin-right:5px;
}

/* Conteúdos, relatórios e cadastros */
.disc-abas {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:10px;
}

.disc-aba {
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:16px;
  color:var(--tinta);
  text-decoration:none;
  background:white;
  border:1px solid var(--linha);
  border-radius:5px;
}

.disc-aba:hover {
  color:var(--tinta);
  border-color:#AAC0D2;
}

.disc-aba.on {
  border-color:var(--royal);
  box-shadow:inset 0 2px 0 var(--royal);
}

.disc-aba b {
  font-size:13px;
  line-height:1.5;
}

.disc-aba .mut {
  display:flex;
  justify-content:space-between;
  font-size:12px;
}

details.item {
  background:white;
  border:1px solid var(--linha);
  border-radius:5px;
}

details.item+details.item {
  margin-top:10px;
}

details.item summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:12px;
  padding:17px 18px;
}

details.item summary::-webkit-details-marker {
  display:none;
}

details.item summary .nm {
  flex:1;
  min-width:0;
  font-size:13px;
}

details.item summary .seta {
  color:var(--ardosia);
  font-size:20px;
}

details.item[open] summary .seta {
  transform:rotate(90deg);
}

details.item ol {
  list-style:none;
  margin:0;
  padding:0 18px 12px;
}

details.item li {
  display:flex;
  gap:14px;
  padding:12px 0;
  border-top:1px solid var(--linha);
  flex-wrap:wrap;
  font-size:13px;
}

.falta-lista>div {
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 0;
  border-top:1px solid var(--linha);
  flex-wrap:wrap;
  font-size:13px;
}

.grafico {
  width:100%;
  height:auto;
  display:block;
}

.grafico-wrap {
  overflow-x:auto;
}

.grafico-wrap .grafico {
  min-width:650px;
}

.constancia {
  display:grid;
  grid-template-columns:repeat(14,minmax(0,1fr));
  gap:5px;
  max-width:460px;
}

.constancia i {
  aspect-ratio:1;
  display:block;
  border-radius:2px;
}

.etapas {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.etapas li {
  padding:13px 14px;
  background:#EAEEF2;
  border-radius:4px;
  color:var(--ardosia);
  font-size:12.5px;
  display:flex;
  gap:8px;
  align-items:center;
}

.etapas li b {
  font-size:16px;
}

.etapas li.on {
  background:var(--marinho-900);
  color:white;
}

.etapas li.ok {
  color:var(--feito);
  background:var(--feito-fundo);
}

.opcao {
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px;
  background:white;
  border:1px solid var(--linha);
  border-radius:5px;
  cursor:pointer;
}

.opcao:has(input:checked) {
  border-color:var(--royal);
  background:#F3F8FB;
}

.opcao input {
  width:18px;
  height:18px;
  accent-color:var(--royal);
}

.nivel-linha {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 0;
  border-top:1px solid var(--linha);
  font-size:13px;
}

.nivel-opcoes {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.nivel-opcoes label {
  position:relative;
}

.nivel-opcoes input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.nivel-opcoes span {
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 12px;
  background:white;
  border:1px solid var(--linha);
  border-radius:4px;
  font-size:12px;
  cursor:pointer;
}

.nivel-opcoes input:checked+span {
  background:var(--marinho-800);
  border-color:var(--marinho-800);
  color:white;
}

.nivel-opcoes input:focus-visible+span {
  outline:3px solid var(--royal);
  outline-offset:2px;
}

.disc-bloco {
  background:white;
  border:1px solid var(--linha);
  border-radius:5px;
  padding:20px;
}

.disc-bloco+.disc-bloco {
  margin-top:14px;
}

.disc-bloco .linha {
  display:grid;
  grid-template-columns:minmax(0,1fr) 85px 110px auto;
  gap:12px;
  align-items:end;
}

.disc-bloco textarea {
  margin-top:14px;
  min-height:160px;
  font-family:Consolas,monospace;
  font-size:13px;
}

.assunto-linha {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 0;
  border-top:1px solid var(--linha);
  flex-wrap:wrap;
  font-size:13px;
}

.mats {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.pendente {
  background:white;
  border:1px solid var(--linha);
  border-left:4px solid var(--royal);
  border-radius:6px;
  padding:35px;
  max-width:850px;
}

.pendente .txt {
  display:flex;
  flex-direction:column;
  gap:16px;
}

.pendente p {
  color:var(--ardosia);
  max-width:65ch;
  font-size:13px;
}

.pendente .acoes {
  margin-top:10px;
}

@media(min-width:1600px) {
  .pagina {
    padding-top:40px;
  }
  .agenda-layout {
    grid-template-columns:minmax(0,2fr) minmax(300px,1fr);
  }
}

@media(max-width:1180px) {
  :root {
    --sidebar:218px;
  }
  .sidebar-marca {
    padding-left:17px;
    padding-right:17px;
  }
  .marca-texto b {
    font-size:20px;
  }
  .pagina {
    padding-left:24px;
    padding-right:24px;
  }
  .agenda-layout {
    grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);
  }
  .modal-cab .acoes {
    gap:8px;
  }
  .registro {
    width:280px;
    padding:20px;
  }
  .disc-bloco .linha {
    grid-template-columns:minmax(0,1fr) 85px 100px;
  }
  .disc-bloco .linha>.acoes {
    grid-column:1/-1;
  }
  .topbar-area,.topbar-divisor {
    display:none;
  }
  .tabela td {
    padding:13px 10px;
  }
}

@media(max-width:980px) {
  .sidebar {
    transform:translateX(-100%);
    transition:transform .2s;
    width:260px;
  }
  .nav-aberta .sidebar {
    transform:translateX(0);
  }
  .app-shell {
    margin-left:0;
  }
  .menu-btn,.sidebar-fechar {
    display:inline-flex;
  }
  .sidebar-rodape {
    margin-top:auto;
  }
  .topbar {
    height:65px;
    min-height:65px;
    padding:0 20px;
  }
  .topbar-contexto {
    gap:8px;
  }
  .pagina {
    padding:26px 20px 36px;
  }
  .degrau {
    padding:19px;
  }
  .estudo-pagina {
    height:calc(100dvh - 210px);
  }
  .login {
    grid-template-columns:1fr 1fr;
  }
  .login-lado {
    padding:36px;
  }
  .login-editorial h1 {
    font-size:49px;
  }
  .agenda-layout {
    grid-template-columns:minmax(0,1.3fr) minmax(250px,1fr);
  }
}

@media(max-width:700px) {
  .pagina {
    padding:22px 16px 30px;
  }
  .pagina-in {
    gap:20px;
  }
  .topbar {
    padding:0 12px;
  }
  .topbar-conta {
    gap:12px;
  }
  .topbar-marca {
    font-size:12.5px;
  }
  .app-rodape {
    margin:0 16px;
    font-size:11px;
  }
  .agenda-layout {
    grid-template-columns:1fr;
  }
  .degraus {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .degrau {
    border-bottom:1px solid var(--linha);
    padding:18px;
  }
  .degrau:nth-child(2) {
    border-right:0;
  }
  .degrau:nth-last-child(-n+2) {
    border-bottom:0;
  }
  .degrau .num {
    font-size:34px;
  }
  .degrau .rot {
    font-size:12px;
  }
  .bloco {
    padding:19px;
  }
  .bloco-cab h2 {
    font-size:17px;
  }
  .duas {
    gap:20px;
  }
  .duas>.larga,.duas>.estreita {
    flex-basis:100%;
  }
  .cabeca .acoes {
    width:100%;
  }
  .cabeca .campo {
    flex-wrap:wrap;
  }
  .cabeca .campo select {
    min-width:0!important;
    max-width:100%;
  }
  .tabela-filtros .campo.filtro-peq {
    flex:1 1 140px;
  }
  .cal-barra {
    gap:12px;
  }
  .cal-nav {
    gap:5px;
    justify-content:center;
    width:100%;
  }
  .cal-nav .teclas {
    width:100%;
    justify-content:center;
    margin-top:6px;
  }
  .cal-titulo {
    font-size:14px;
    min-width:140px;
    flex:1;
  }
  .cal-filtros {
    width:100%;
  }
  .cal-filtros .campo {
    flex:1;
    min-width:0;
  }
  .cal-filtros select {
    min-width:0;
    font-size:12px;
  }
  .cal-legendas {
    font-size:10.5px;
  }
  .fc .fc-daygrid-day-frame {
    min-height:100px;
  }
  .fc .fc-daygrid-day-number {
    font-size:12px;
    padding:6px;
  }
  .fc .fc-col-header-cell-cushion {
    font-size:10.5px;
  }
  .dz-ev {
    font-size:10.5px;
    padding:4px;
  }
  .fc .fc-dayGridMonth-view .dur {
    display:none;
  }
  .dz-total {
    font-size:8px;
    padding:3px;
  }
  .login {
    grid-template-columns:1fr;
  }
  .login-lado {
    padding:25px;
  }
  .login-logo .marca {
    width:38px;
    height:43px;
  }
  .login-logo b {
    font-size:24px;
  }
  .login-logo span {
    font-size:8px;
  }
  .login-editorial {
    padding:30px 0 4px;
  }
  .login-editorial h1 {
    font-size:40px;
  }
  .login-editorial p,.login-principios,.login-assinatura {
    display:none;
  }
  .login-editorial .sobretitulo {
    font-size:8px;
    margin-bottom:10px;
  }
  .login-form {
    padding:32px 25px;
  }
  .login-card h2 {
    font-size:25px;
  }
  .login-card {
    gap:20px;
  }
  .modal {
    padding:8px;
  }
  .modal-caixa {
    height:calc(100dvh - 16px);
    border-radius:6px;
  }
  .modal-pequeno .modal-caixa {
    max-height:calc(100dvh - 16px);
  }
  .modal-cab {
    padding:17px;
    gap:14px;
  }
  .modal-cab h2 {
    font-size:20px;
  }
  .modal-cab .info {
    flex-basis:100%;
  }
  .modal-cab .acoes {
    width:100%;
    justify-content:space-between;
  }
  .modal-corpo {
    display:block;
    overflow:auto;
  }
  .estudo {
    overflow:visible;
    padding:20px;
  }
  .registro {
    width:100%;
    border-left:0;
    border-top:1px solid var(--linha);
    overflow:visible;
    padding:20px;
  }
  .cronometro .tempo {
    font-size:23px;
    min-width:100px;
  }
  .crono-area>small {
    display:none;
  }
  .mat-conteudo {
    font-size:15px;
  }
  .cartao {
    font-size:20px;
    min-height:240px;
    padding:24px;
  }
  .mat-abas .tecla {
    font-size:12px;
    padding:7px 9px;
  }
  .estudo-pagina {
    height:auto;
    min-height:0;
  }
  .estudo-pagina .modal-corpo {
    overflow:visible;
  }
  .estudo-pagina .estudo {
    min-height:280px;
  }
  .leitura-rodape {
    padding:14px 20px;
  }
  .estudo-pagina.registro-oculto .estudo {
    max-width:100%;
  }
  .form-meta {
    padding:20px;
  }
  .etapas {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .grade[style*="repeat(3"] {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .disc-bloco .linha {
    grid-template-columns:1fr 1fr;
  }
  .disc-bloco .linha>.campo:first-child {
    grid-column:1/-1;
  }
  .disc-bloco .linha>.acoes {
    grid-column:1/-1;
  }
  .agenda-item {
    gap:10px;
    flex-wrap:wrap;
  }
  .agenda-ordem {
    width:22px;
  }
  .agenda-info {
    flex:1 1 160px;
  }
  .agenda-item .btn {
    margin-left:32px;
  }
  .proxima-meta {
    padding:20px;
  }
  .proxima-meta h2 {
    font-size:21px;
  }
  .pendente {
    padding:24px;
  }
  .linha-aluno {
    flex-wrap:wrap;
  }
  .bloco .constancia {
    gap:4px;
  }
  .grafico-wrap .grafico {
    min-width:620px;
  }
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
    scroll-behavior:auto!important;
  }
}

.fc .fc-list-event-dot {
  border-color:var(--disc-cor,#617083)!important;
}

.fc .fc-list-event .dz-ev {
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
  padding:3px 0;
}

.fc .fc-list-event .dz-ev .pequeno {
  font-size:11.5px;
  color:var(--ardosia);
}

.fc .fc-list-event .dz-ev .tit {
  font-size:12.5px;
  font-weight:500;
}

.legenda .link-btn {
  font-size:12px;
  padding:0;
}

.legenda .link-btn.ativo {
  font-weight:600;
}

/* =====================================================================
   Camada de impacto
   Faixa de destaque em marinho, números grandes em Oswald, escada até a
   prova, mapa do edital, blocos secundários leves e microinterações.
   ===================================================================== */

@keyframes dz-encher {
  from { transform:scaleX(0); }
  to { transform:scaleX(1); }
}

@keyframes dz-acender {
  from { opacity:0; transform:translateY(-6px); }
  to { opacity:1; transform:none; }
}

/* Botão amplo compartilhado entre as atividades. */
.btn-grande {min-height:48px;font-size:14px;padding:12px 22px;}

/* Escada até a prova ------------------------------------------------------ */
.escada {
  margin:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
}

.escada svg {
  width:clamp(170px,16vw,240px);
  height:auto;
  overflow:visible;
  filter:drop-shadow(0 14px 14px #00000055);
}

.escada .cubo {
  animation:dz-acender .45s cubic-bezier(.2,.7,.2,1) both;
  animation-delay:calc(var(--i) * 25ms + .2s);
}

.escada .cubo.s-futura path,
.escada .cubo.s-vazia path {
  stroke:#FFFFFF2E;
  stroke-width:.7;
}

.escada figcaption {
  font-size:12.5px;
  color:#A9C3DA;
  text-align:center;
}

.escada-legenda {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px 12px;
  margin-top:4px;
  font-size:11.5px;
}

.escada-legenda i {
  display:inline-block;
  width:9px;
  height:9px;
  margin-right:5px;
  border-radius:2px;
}

.escada figcaption b {
  color:#FFF;
  font-weight:600;
}

/* Mapa do edital ---------------------------------------------------------- */
.mapa-edital {
  display:flex;
  flex-direction:column;
  gap:4px;
}

.mapa-legenda {
  list-style:none;
  margin:0 0 10px;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-size:12.5px;
  color:var(--ardosia);
}

.mapa-legenda li {
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.mapa-linha {
  display:grid;
  grid-template-columns:minmax(180px,250px) minmax(0,1fr);
  gap:8px 22px;
  align-items:center;
  padding:12px 0;
  border-top:1px solid var(--linha);
}

.mapa-disc {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.mapa-disc a,
.mapa-disc b {
  font-weight:600;
  color:var(--tinta);
  text-decoration:none;
  line-height:1.3;
}

.mapa-disc a:hover {
  color:var(--acento-forte);
  text-decoration:underline;
}

.mapa-disc span {
  font-size:12.5px;
  color:var(--ardosia);
}

.mapa-disc strong {
  font-family:var(--fonte-num);
  font-weight:500;
  font-size:15px;
  color:var(--acento-forte);
}

.mapa-grade {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.mapa-cel {
  display:inline-block;
  width:22px;
  height:22px;
  border-radius:3px;
  background:#E4E9EF;
  flex:none;
}

.mapa-grade .mapa-cel {
  animation:dz-acender .4s ease both;
  animation-delay:calc(var(--i) * 18ms);
}

.mapa-legenda .mapa-cel {
  width:14px;
  height:14px;
}

.mapa-cel.est-estudado {
  background:#147D98;
  border:1px solid #147D98;
}

.mapa-cel.est-agendado {
  background:#CDE7EF;
  border:1px solid #8DBCCB;
}

.mapa-cel.est-atrasado {
  background:#E8B864;
  border:1px solid #C89549;
}

.mapa-cel.est-pendente {
  background:#E7ECEF;
  border:1px solid #CED8DE;
}

.mapa-grade .mapa-cel:hover {
  outline:2px solid var(--tinta);
  outline-offset:1px;
}

/* Blocos secundários e cartões vivos --------------------------------------- */
.bloco.leve {
  background:transparent;
  border:0;
  border-top:2px solid var(--tinta);
  border-radius:0;
  padding:18px 0 0;
}

.cartao-vivo,
.semana-dia,
.disc-aba {
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.cartao-vivo:hover {
  transform:translateY(-3px);
  box-shadow:0 14px 26px -18px #091F38AA;
}

.atencao-item {
  border-left-color:#C98A2E;
}

/* Números das faixas de indicadores das demais telas */
.degrau.alto {
  background:
    radial-gradient(120% 140% at 100% 0%, #16467A 0%, transparent 60%),
    var(--marinho-900);
}

.degrau.alto .num {
  color:#FFF;
}

.semana-dia.hoje {
  box-shadow:inset 0 3px 0 var(--acento);
}

.semana-progresso i {
  background:linear-gradient(90deg,var(--acento-forte),var(--acento));
}

/* Responsivo */
@media(max-width:860px) {
  .mapa-linha {
    grid-template-columns:1fr;
  }
  .mapa-cel {
    width:18px;
    height:18px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .destaque > *,
  .escada .cubo,
  .mapa-grade .mapa-cel,
  .barra > i {
    animation:none!important;
  }
  .cartao-vivo:hover {
    transform:none;
  }
}

.bloco-cab > h2 {
  flex:0 0 auto;
}

/* ===================================================================== */
/* Recursos da planilha de plano de estudos (out/2026)                    */
/* ===================================================================== */

/* Concurso: disciplinas ligadas às provas */
.disc-bloco .linha {
  grid-template-columns:minmax(200px,1.7fr) 78px 104px minmax(150px,1fr) minmax(150px,1fr) auto;
}

.prova-linha {
  display:grid;
  grid-template-columns:minmax(200px,2fr) minmax(130px,1fr) 110px minmax(110px,.9fr) 100px auto;
  gap:12px;
  align-items:end;
  padding:14px 0;
  border-top:1px solid #E7EBF0;
}

.prova-linha:first-child {
  border-top:0;
  padding-top:0;
}

.prova-resumo {
  grid-column:1/-1;
  margin:0;
  font-size:12.5px;
  color:var(--ardosia);
}

.prova-resumo.diverge {
  color:var(--atraso);
}

@media(max-width:1280px) {
  .disc-bloco .linha {
    grid-template-columns:minmax(0,1fr) 85px 100px;
  }
  .disc-bloco .linha>.campo:nth-child(5),
  .disc-bloco .linha>.campo:nth-child(6) {
    grid-column:span 1;
  }
  .disc-bloco .linha>.acoes {
    grid-column:1/-1;
  }
  .prova-linha {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .prova-linha .prova-nome {
    grid-column:1/-1;
  }
}

@media(max-width:700px) {
  .disc-bloco .linha,
  .prova-linha {
    grid-template-columns:1fr 1fr;
  }
}

/* Ciclo de estudos */
.ciclo-campos {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:16px;
}

.ciclo-hoje {
  margin:0;
  font-size:13px;
  font-weight:600;
  color:var(--acento-escuro);
}

.ciclo-resumo-texto {
  margin:0;
}

.pincel {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:18px;
  margin-bottom:16px;
}

.pincel-lista {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  flex:1 1 520px;
}

.pincel-op {
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 10px;
  border:1px solid var(--linha);
  border-radius:4px;
  background:#FFF;
  font:inherit;
  font-size:12.5px;
  color:var(--tinta);
  cursor:pointer;
}

.pincel-op i {
  width:14px;
  height:14px;
  flex:none;
  border:1px solid;
  border-left-width:4px;
  border-radius:3px;
}

.pincel-op small {
  color:var(--ardosia);
  font-variant-numeric:tabular-nums;
}

.pincel-op:hover {
  border-color:#B9C6D3;
}

.pincel-op.on {
  border-color:var(--tinta);
  box-shadow:inset 0 0 0 1px var(--tinta);
  background:#F6F9FC;
}

.pincel-op.apagar i {
  background:repeating-linear-gradient(45deg,#FFF 0 3px,#F2D9DC 3px 6px)!important;
}

.pincel-tipo {
  flex:0 0 200px;
}

.ciclo-grade-wrap {
  overflow:auto;
  max-width:100%;
  border:1px solid var(--linha);
  border-radius:5px;
}

.ciclo-grade {
  width:100%;
  min-width:640px;
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  font-family:var(--fonte-cal);
  user-select:none;
  -webkit-user-select:none;
}

.ciclo-grade th,
.ciclo-grade td {
  padding:0;
  border-right:1px solid #EEF1F4;
  border-bottom:1px solid #E7EBF0;
}

.ciclo-grade thead th {
  padding:8px 6px;
  text-align:center;
  font-weight:500;
  background:#FAFBFC;
}

.ciclo-grade thead th b {
  display:block;
  font-size:13px;
  font-weight:600;
  color:var(--tinta);
}

.ciclo-grade thead th small {
  display:block;
  font-size:11px;
  color:var(--ardosia);
}

.ciclo-grade thead th.hoje {
  background:var(--acento-suave);
  box-shadow:inset 0 3px 0 var(--acento);
}

.ciclo-grade thead th.hoje small {
  color:var(--acento-escuro);
  font-weight:600;
}

.ciclo-hora,
.ciclo-hora-cab {
  position:sticky;
  left:0;
  z-index:1;
  width:62px;
  text-align:center;
  font-family:var(--fonte-cal-num);
  font-size:12px;
  font-weight:400;
  color:var(--ardosia);
  background:#FAFBFC;
}

.ciclo-grade td.hoje {
  background:#F5FAFF;
}

.ciclo-cel {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:4px;
  width:100%;
  height:34px;
  padding:0 7px;
  border:0;
  border-left:3px solid transparent;
  background:transparent;
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  text-align:left;
  color:var(--tinta);
  overflow:hidden;
}

.ciclo-grade.editavel .ciclo-cel {
  cursor:crosshair;
}

.ciclo-grade.editavel .ciclo-cel.vazia:hover {
  background:#EEF4FA;
}

.ciclo-cel:focus-visible {
  outline:2px solid var(--acento-forte);
  outline-offset:-2px;
}

.ciclo-cel-nome {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ciclo-cel-tipo {
  flex:none;
  padding:0 4px;
  border-radius:2px;
  font-size:10px;
  font-weight:700;
  background:#FFFFFFB8;
}

.ciclo-grade tfoot th,
.ciclo-grade tfoot td {
  background:#FAFBFC;
  border-bottom:0;
}

.ciclo-total {
  padding:8px 4px!important;
  text-align:center;
  font-family:var(--fonte-cal-num);
  font-size:13px;
}

.tabela-ciclo caption {
  caption-side:top;
  padding:0 0 10px;
  text-align:left;
  font-size:13px;
  color:var(--ardosia);
}

.tabela-ciclo td,
.tabela-ciclo th {
  padding:10px 12px;
}

.tabela-ciclo tfoot th,
.tabela-ciclo tfoot td {
  font-weight:600;
  text-align:left;
  border-top:1px solid var(--linha);
  background:#FAFBFC;
}

.tabela-ciclo tfoot td.num {
  text-align:right;
}

.ciclo-disc {
  display:flex;
  align-items:center;
  gap:10px;
}

.ciclo-disc i {
  width:12px;
  height:12px;
  flex:none;
  border:1px solid;
  border-left-width:4px;
  border-radius:3px;
}

.ciclo-disc b {
  display:block;
  font-weight:500;
}

.ciclo-disc small {
  display:block;
  font-size:11.5px;
  color:var(--ardosia);
}

.ciclo-extra td {
  color:var(--ardosia);
}

.grafico-dias svg {
  width:100%;
  height:auto;
}

.ciclo-graficos {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));
  gap:24px;
  align-items:start;
}

.gp-linha {
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(0,1.4fr) 112px;
  gap:12px;
  align-items:center;
  padding:6px 0;
  font-size:12.5px;
  border-bottom:1px solid #EEF1F4;
}

.gp-linha:last-child {
  border-bottom:0;
}

.gp-valores {
  text-align:right;
}

.gp-nome {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.gp-barras {
  display:flex;
  flex-direction:column;
  gap:3px;
}

.gp-barras i {
  display:block;
  height:6px;
  min-width:2px;
  border-radius:2px;
}

.gp-pontos {
  background:var(--marinho-800);
}

.gp-horas {
  background:var(--acento);
}

.gp-valores {
  color:var(--ardosia);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.barra-salvar {
  position:sticky;
  bottom:16px;
  z-index:20;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:20px;
  padding:12px 16px;
  color:#FFF;
  background:var(--marinho-900);
  border-radius:6px;
  box-shadow:var(--relevo-alto);
}

.barra-salvar .btn:not(.btn-pri) {
  color:#FFF;
  background:transparent;
  border-color:#FFFFFF55;
}

.ciclo-config .bloco-cab,
.ciclo-aplicar .bloco-cab {
  align-items:flex-start;
}

/* Importação da planilha */
.lista-simples {
  margin:0;
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  font-size:13px;
}

.abas-plano,
.opcoes-importacao {
  border:0;
  padding:0;
  margin:0 0 18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.abas-plano legend,
.opcoes-importacao legend {
  margin-bottom:8px;
}

.aba-plano {
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px 14px;
  border:1px solid var(--linha);
  border-radius:5px;
  cursor:pointer;
  background:#FFF;
}

.aba-plano:has(input:checked) {
  border-color:var(--acento-forte);
  box-shadow:inset 3px 0 0 var(--acento-forte);
  background:#F7FBFF;
}

.aba-plano input {
  margin-top:4px;
  accent-color:var(--royal);
}

.aba-plano b {
  display:block;
}

.aba-plano small {
  color:var(--ardosia);
  font-size:12.5px;
}

.previa-aba {
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid var(--linha);
  border-radius:5px;
  background:#FAFBFC;
}

.previa-aba summary {
  cursor:pointer;
  font-weight:500;
  font-size:13px;
}

.previa-aba[open] summary {
  margin-bottom:12px;
}

.previa-aba .tabela {
  background:#FFF;
}

.tabela-nomes td {
  padding:8px 12px;
}

.tabela-nomes select {
  width:100%;
  min-width:220px;
  min-height:36px;
  padding:6px 10px;
  border:1px solid #CCD5DF;
  border-radius:4px;
  font:inherit;
  font-size:13px;
  background:#FFF;
}

.tabela-nomes select.sugerido {
  border-color:var(--acento-forte);
  background:#F3F9FF;
}

.tend-alta {
  color:var(--feito);
  font-weight:600;
}

.tend-baixa {
  color:var(--erro);
  font-weight:600;
}

.legenda-tracejada {
  background:repeating-linear-gradient(90deg,#237357 0 5px,transparent 5px 8px)!important;
  height:3px!important;
  width:16px!important;
  border-radius:0!important;
}

/* Horário nas metas e registros fora das metas */
.form-meta-linha {
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
}

.dz-ev .hora {
  flex:none;
  font-family:var(--fonte-cal-num);
  font-size:12px;
  font-weight:500;
  color:var(--tinta);
  font-variant-numeric:tabular-nums;
}

.fc .dz-meta.is-livre {
  border-left-style:dotted;
  background:repeating-linear-gradient(135deg,#F7F9FB 0 6px,#EEF2F6 6px 7px)!important;
  opacity:.85;
}

.fc .dz-meta.is-livre .tit {
  text-decoration:none;
}

.legenda .leg-livre {
  background:repeating-linear-gradient(135deg,#FFF 0 2px,#AFC0D0 2px 3px);
  border-left:2px dotted #647A8F;
}

.mm-avaliacao {
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px;
  background:#F7FAFD;
  border:1px solid #DCE7F2;
  border-radius:5px;
}

.mm-avaliacao[hidden] {
  display:none;
}

.mm-avaliacao h3 {
  margin:0;
  font-size:14px;
}

.agenda-ordem.agenda-hora {
  width:44px;
  font-family:var(--fonte-num);
  font-size:14px;
  color:var(--tinta);
  font-variant-numeric:tabular-nums;
}

.agenda-rodape {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding-top:14px;
  border-top:1px solid var(--linha);
}

/* Visão anual */
.tabela-anual tfoot th,
.tabela-anual tfoot td {
  font-weight:600;
  border-top:1px solid var(--linha);
  background:#FAFBFC;
}

.tabela-anual tr.mut td {
  color:#9AA6B2;
}

.mapa-anual-wrap {
  overflow-x:auto;
  max-width:100%;
  padding-bottom:4px;
}

.mapa-anual {
  display:block;
  max-width:none;
}

.mapa-anual rect:hover {
  stroke:var(--tinta);
  stroke-width:1.2;
}

.mapa-anual-legenda {
  margin-top:10px;
}

.mapa-anual-legenda b {
  font-weight:600;
  margin-left:2px;
  font-variant-numeric:tabular-nums;
}

/* ===================================================================== */
/* Ajustes de layout: menu compacto e recolhível, usuário no cabeçalho,   */
/* faixa de destaque mais baixa                                           */
/* ===================================================================== */

/* Menu lateral mais compacto: cabe inteiro na tela na maioria dos casos */
.sidebar-marca {
  padding:20px 20px 14px;
}

.ambiente {
  margin:0 20px 10px;
  padding:4px 0 12px;
}

.nav-grupos {
  padding:0 10px 14px;
  scrollbar-width:thin;
  scrollbar-color:transparent transparent;
}

.nav-grupos:hover {
  scrollbar-color:#FFFFFF33 transparent;
}

.nav-grupos::-webkit-scrollbar {
  width:6px;
}

.nav-grupos::-webkit-scrollbar-track {
  background:transparent;
}

.nav-grupos::-webkit-scrollbar-thumb {
  background:transparent;
  border-radius:3px;
}

.nav-grupos:hover::-webkit-scrollbar-thumb {
  background:#FFFFFF33;
}

.nav-grupo {
  margin-bottom:10px;
}

.nav-rotulo {
  margin:6px 0 4px;
  font-size:10.5px;
}

.nav-item {
  min-height:36px;
  padding:7px 12px;
  margin:1px 0;
}

.nav-item span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.nav-futuro {
  margin:6px 12px 4px;
}

/* Botão do menu também nas telas largas (recolhe e expande) */
.menu-btn {
  display:inline-flex;
}

.app-shell,
.sidebar {
  transition:margin-left .18s ease, width .18s ease, transform .2s;
}

/* Menu recolhido: só os ícones */
@media(min-width:981px) {
  /* :root.menu-recolhido vence o :root que define --sidebar mais abaixo no arquivo. */
  :root.menu-recolhido {
    --sidebar:68px;
  }
  .menu-recolhido .sidebar-marca {
    padding:18px 0 12px;
    justify-content:center;
  }
  .menu-recolhido .marca-texto,
  .menu-recolhido .ambiente,
  .menu-recolhido .nav-futuro,
  .menu-recolhido .nav-item span {
    display:none;
  }
  .menu-recolhido .marca {
    width:36px;
    height:38px;
  }
  .menu-recolhido .nav-grupos {
    padding:0 10px 14px;
  }
  .menu-recolhido .nav-rotulo {
    height:1px;
    margin:8px 6px;
    padding:0;
    overflow:hidden;
    font-size:0;
    background:#FFFFFF1A;
  }
  .menu-recolhido .nav-item {
    justify-content:center;
    padding:9px 0;
  }
  .menu-recolhido .nav-item .ic {
    width:19px;
    height:19px;
  }
}

/* Usuário no cabeçalho */
.topbar-usuario {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  text-decoration:none!important;
}

.topbar-avatar {
  width:32px;
  height:32px;
  flex:none;
  display:grid;
  place-items:center;
  border-radius:5px;
  background:var(--marinho-800);
  color:#D6E6F2;
  font-weight:600;
  font-size:13px;
}

.topbar-usuario-texto {
  display:flex;
  flex-direction:column;
  line-height:1.25;
  min-width:0;
}

.topbar-usuario-texto b {
  max-width:200px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
  font-weight:600;
  color:var(--tinta);
}

.topbar-usuario-texto small {
  font-size:11.5px;
  color:var(--ardosia);
}

.topbar {
  height:64px;
  min-height:64px;
}

.escada {
  gap:6px;
}

.escada svg {
  width:clamp(110px,9vw,150px);
}

.escada figcaption {
  font-size:12px;
}

.escada-legenda {
  font-size:11px;
}

@media(max-width:980px) {
  .topbar {
    height:60px;
    min-height:60px;
  }
}

@media(max-width:700px) {
  .topbar-usuario-texto,
  .topbar-conta > a[href$="/conta"]:not(.topbar-usuario) {
    display:none;
  }
}

/* Identidade consolidada de editorial.css (revisão 2026-10-16). */
/* Dinamiza Editorial — camada de identidade e experiência.
   Mantém os componentes e as regras funcionais de app.css. */

:root {
  --sidebar:224px;
  --gelo:#F5F3EF;
  --papel:#F9F8F5;
  --tinta:#182B3E;
  --ardosia:#617182;
  --linha:#E0E5E9;
  --royal:#0D6688;
  --royal-escuro:#084D6A;
  --acento:#18B7E8;
  --acento-forte:#0D7298;
  --acento-escuro:#095B7A;
  --acento-suave:#E8F7FB;
  --fonte:"IBM Plex Sans","Segoe UI",sans-serif;
  --fonte-cal:"Archivo Narrow","Arial Narrow",sans-serif;
  --fonte-cal-num:"Archivo Narrow","Arial Narrow",sans-serif;
  --fonte-num:"Archivo Narrow","Arial Narrow",sans-serif;
}

body {font-size:14px;line-height:1.5;background:var(--gelo);}
h1,h2,h3 {font-family:"Archivo","Segoe UI",sans-serif;letter-spacing:-.035em;}
h1 {font-size:clamp(25px,2vw,31px);}
h2 {font-size:18px;}
.pagina {padding:28px clamp(20px,2.5vw,38px) 50px;}
.pagina-in {gap:20px;max-width:1500px;}
.pagina-larga .pagina-in {max-width:1720px;}
.bloco {border-radius:5px;box-shadow:none;padding:22px 24px;}
.bloco-cab {margin-bottom:17px;align-items:center;}
.bloco-cab p {line-height:1.4;}
.btn {border-radius:4px;box-shadow:none!important;}
.btn-pri {background:#0B5575;border-color:#0B5575;color:#FFF;}
.btn-pri:hover {background:#093F59;border-color:#093F59;color:#FFF;}
.btn-claro {border-color:#C3CDD5;}
.etq {border-radius:3px;}
.app-rodape {display:none;}
.topbar {height:60px;min-height:60px;padding:0 clamp(20px,2.5vw,38px);}
.topbar-area {font-size:12px;font-weight:600;color:#56687A;letter-spacing:.015em;}
.topbar-contexto,.topbar-conta {gap:12px;}
.topbar-usuario {border-right:1px solid var(--linha);padding-right:14px;}
.topbar-avatar {border-radius:4px;width:31px;height:31px;}
.sair-link {font-size:12px;}

/* Navegação editorial, com seções progressivamente reveladas. */
.sidebar {background:#091F38;}
.sidebar-marca {padding:22px 18px 18px;}
.marca {width:40px;height:43px;}
.marca-texto b {font-family:"Archivo",sans-serif;font-size:21px;}
.ambiente {margin:0 18px 18px;padding:0 0 14px;color:#8FA8BE;}
.nav-grupos {padding:0 10px 18px;}
.nav-primarios {margin-bottom:10px;}
.nav-item {min-height:40px;margin:2px 0;padding:10px 12px;font-size:13px;border-radius:4px;}
.nav-item.on {background:#153B57;}
.nav-item.on::before {box-shadow:none;background:#18B7E8;}
.nav-item .ic {width:17px;height:17px;}
.nav-accordion {margin:3px 0;}
.nav-accordion > summary {
  list-style:none;display:flex;align-items:center;gap:11px;
  padding:10px 12px;min-height:40px;cursor:pointer;
  border-radius:4px;color:#BFCEDB;font-size:13px;
}
.nav-accordion > summary::-webkit-details-marker {display:none;}
.nav-accordion > summary:hover {background:#FFFFFF0B;color:#FFF;}
.nav-accordion > summary .ic {width:17px;height:17px;flex:none;}
.nav-accordion.grupo-ativo > summary {color:#FFF;font-weight:600;}
.nav-accordion.grupo-ativo > summary .ic {color:#18B7E8;}
.nav-accordion .nav-seta {margin-left:auto;color:#89A2B5;transition:transform .15s;}
.nav-accordion[open] .nav-seta {transform:rotate(180deg);}
.nav-subitems {margin:3px 0 10px 19px;padding-left:8px;border-left:1px solid #FFFFFF20;}
.nav-subitems .nav-item {min-height:34px;padding:7px 10px;font-size:12.5px;}
.nav-subitems .nav-item .ic {width:15px;height:15px;opacity:.65;}
.nav-subitems .nav-item.on {background:#153B57;}
.nav-futuro {margin:14px 12px 0;padding-top:12px;border-top:1px solid #FFFFFF18;}
.nav-futuro summary {font-size:11.5px;color:#8EA6B8;}
.nav-futuro a {font-size:11.5px;}
@media(min-width:981px) {
  .menu-recolhido .nav-accordion > summary {justify-content:center;padding:10px 0;}
  .menu-recolhido .nav-accordion > summary span,
  .menu-recolhido .nav-subitems {display:none;}
  .menu-recolhido .nav-accordion > summary .ic {width:19px;height:19px;}
  .menu-recolhido .nav-accordion {margin-bottom:4px;}
}

/* Padrão de páginas, títulos e formulários. */
.editorial-cabeca {align-items:center;gap:16px 24px;}
.editorial-cabeca p {margin-top:7px;}
.editorial-sobretitulo {
  display:block;font-size:10.5px;line-height:1.4;letter-spacing:.14em;
  text-transform:uppercase;color:#738292;font-weight:700;margin-bottom:8px;
}
.editorial-cabeca .acoes {gap:8px;}
.editorial-cabeca .btn {min-height:40px;}
.tabela th {background:#F7F8F9;color:#5E7081;font-size:11px;letter-spacing:.035em;}
.tabela td {font-size:13px;}
.tabela tbody tr:hover {background:#F9FBFC;}
.campo input,.campo select,.campo textarea {border-radius:4px;}
.campo input:focus,.campo select:focus,.campo textarea:focus {border-color:#0D7298;}
.barra > i {background:#1388AF;}

/* Painel do mentor: números, trabalho e prioridades. */
.metricas-editoriais {
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--linha);background:#FFF;border-radius:5px;overflow:hidden;
}
.metrica-editorial {
  min-height:130px;padding:18px 21px;display:flex;flex-direction:column;
  justify-content:space-between;border-right:1px solid var(--linha);
}
.metrica-editorial:last-child {border-right:0;}
.metrica-rotulo {font-size:11.5px;font-weight:600;color:#66788A;}
.metrica-editorial strong {
  font:600 38px/1 "Archivo Narrow",sans-serif;
  color:#142D43;letter-spacing:-.025em;font-variant-numeric:tabular-nums;
}
.metrica-editorial small {font-size:11.5px;color:#6C7B88;line-height:1.35;}
.metrica-atencao strong {color:#9C611E;}
.faixa-operacional {
  display:flex;align-items:center;gap:12px;padding:11px 15px;
  background:#FFF9EF;border:1px solid #ECD6B4;border-left:3px solid #B98233;
  border-radius:4px;font-size:12.5px;
}
.faixa-operacional-marca {
  width:26px;height:26px;border-radius:50%;flex:none;
  display:grid;place-items:center;background:#F7E7CB;color:#835211;font-weight:700;
}
.faixa-operacional > div {display:flex;flex:1;min-width:0;flex-wrap:wrap;gap:4px 12px;}
.faixa-operacional b {color:#644617;}
.faixa-operacional span {color:#846E52;}
.faixa-operacional a {font-weight:600;white-space:nowrap;color:#805114;text-decoration:none;}
.dashboard-editorial {display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:20px;}
.dashboard-turma {padding:21px 0 8px;}
.dashboard-turma > .bloco-cab {padding:0 23px;}
.dashboard-turma > .bloco-cab h2 {font-size:17px;}
.dashboard-turma > .bloco-cab .tabela-contagem {font-size:12px;}
.filtros-editoriais {padding:0 23px 15px;gap:12px;}
.filtros-editoriais .campo {font-size:11.5px;}
.filtros-editoriais input,.filtros-editoriais select {height:39px;}
.tabela-editorial {width:100%;font-variant-numeric:tabular-nums;}
.tabela-editorial th {white-space:nowrap;padding:13px 14px;}
.tabela-editorial td {padding:14px;vertical-align:middle;}
.tabela-editorial td:first-child,.tabela-editorial th:first-child {padding-left:23px;}
.tabela-editorial td:last-child,.tabela-editorial th:last-child {padding-right:23px;}
.aluno-nome {font-weight:600;color:#1D394D;text-decoration:none;}
.aluno-nome:hover {text-decoration:underline;}
.aluno-sub {display:block;color:#7B8893;font-size:11.5px;margin-top:3px;}
.valor-horas {font-weight:600;white-space:nowrap;}
.valor-horas span {font-weight:400;color:#81909B;}
.barra-tabela {height:4px;max-width:124px;margin-top:7px;}
.nowrap {white-space:nowrap;}
.acoes-tabela {gap:12px;flex-wrap:nowrap;}
.acoes-tabela a {font-size:12px;font-weight:600;white-space:nowrap;}
.dashboard-lateral {display:flex;flex-direction:column;gap:20px;}
.bloco-lateral {padding:19px 21px;}
.bloco-lateral .bloco-cab {margin-bottom:14px;}
.bloco-lateral h2 {font-size:16px;}
.contador-atencao {font:600 20px "Archivo Narrow",sans-serif;color:#9C611E;}
.prioridade-linha {padding:12px 0;border-top:1px solid var(--linha);}
.prioridade-linha:first-of-type {border-top:0;padding-top:0;}
.prioridade-linha a {display:flex;justify-content:space-between;gap:8px;color:var(--tinta);text-decoration:none;}
.prioridade-linha a .ic {color:#0D7298;width:15px;height:15px;}
.prioridade-linha p {margin-top:5px;font-size:12px;color:#74818C;line-height:1.45;}
.prova-lateral {display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--linha);padding:12px 0;}
.prova-lateral:first-of-type {border-top:0;}
.prova-lateral div {display:flex;flex-direction:column;gap:4px;min-width:0;}
.prova-lateral b {font-size:12.5px;font-weight:600;line-height:1.3;}
.prova-lateral small {font-size:11.5px;color:#7A8995;}
.prova-lateral > span {font-size:11px;color:#0A6485;white-space:nowrap;font-weight:600;}
.estado-inicial {padding:30px;}

/* Meu estudo: uma atividade principal e suporte de acompanhamento. */
.cabeca-aluno {align-items:end;}
.cabeca-acoes-aluno {display:flex;align-items:center;gap:22px;}
.prazo-prova {display:flex;gap:9px;align-items:center;border-right:1px solid #D9DFE2;padding-right:20px;}
.prazo-prova strong {font:600 34px/1 "Archivo Narrow",sans-serif;color:#163A51;}
.prazo-prova span {font-size:11.5px;color:#71818E;line-height:1.35;}
.inicio-aluno-grid {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(285px,.8fr);gap:20px;align-items:start;}
.sessao-principal {
  background:#FFF;border:1px solid #DCE3E7;border-top:4px solid #091F38;
  border-radius:5px;padding:23px 28px;display:flex;flex-direction:column;
}
.sessao-principal-topo {display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;}
.sessao-etiqueta {font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#0E6F91;font-weight:700;}
.sessao-ciclo {font-size:11.5px;color:#7A8995;}
.sessao-principal h2 {font:600 clamp(24px,2vw,31px)/1.2 "Archivo",sans-serif;letter-spacing:-.05em;color:#112E43;}
.sessao-disciplina {margin-top:9px;font-size:13.5px;color:#627487;}
.sessao-horario {font-size:12px;color:#667A89;margin-top:5px;}
.sessao-objetivo {margin-top:17px;padding-top:14px;border-top:1px solid #E8ECEF;color:#3E5263;font-size:13px;}
.sessao-rodape {display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:0;padding-top:20px;}
.sessao-rodape .btn {min-height:44px;}
.sessao-rodape > span {font-size:11.5px;color:#87939D;}
.rotina-resumo {display:flex;flex-direction:column;gap:18px;background:#091F38;color:#FFF;border-radius:5px;padding:24px 25px;}
.rotina-resumo .editorial-sobretitulo {color:#93B8D3;margin-bottom:7px;}
.rotina-resumo h2 {color:#FFF;font-size:16px;}
.rotina-resumo-topo > strong {display:block;font:600 34px/1.1 "Archivo Narrow",sans-serif;margin-top:17px;}
.rotina-resumo-topo > strong small {font:400 21px "Archivo Narrow",sans-serif;color:#A0BDCF;}
.barra-rotina {height:7px;margin-top:15px;background:#2B4960;overflow:hidden;border-radius:4px;}
.barra-rotina > i {background:#18B7E8;}
.rotina-resumo-topo p {font-size:11.5px;color:#A0B8CC;margin-top:10px;}
.rotina-mini-metricas {display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:13px;border-top:1px solid #FFFFFF20;}
.rotina-mini-metricas div {display:flex;flex-direction:column;gap:4px;}
.rotina-mini-metricas strong {font:600 25px "Archivo Narrow",sans-serif;}
.rotina-mini-metricas strong small {color:#A3B7C8;font-size:16px;}
.rotina-mini-metricas span {color:#A0B8CC;font-size:11px;}
.rotina-resumo .link-btn {color:#7ED9F5;margin-top:auto;font-size:12px;}
.semana-editorial {border:1px solid var(--linha);border-radius:5px;background:#FFF;padding:17px 21px;}
.semana-editorial .semana-cab {margin-bottom:10px;}
.semana-editorial .semana-cab h2 {font-size:16px;}
.semana-editorial .semana-dias {border:1px solid #E7EBEF;border-radius:4px;}
.semana-editorial .semana-dia {padding:10px 7px;min-height:80px;background:transparent;}
.semana-editorial .semana-dia b {font:600 22px "Archivo Narrow",sans-serif;}
.semana-editorial .semana-dia.hoje {background:#EAF8FB;box-shadow:inset 0 3px 0 #18B7E8;}
.semana-editorial .semana-progresso {height:4px;}
.semana-editorial .semana-progresso i {background:#0E769A;}
.semana-editorial .semana-dia-nome,.semana-editorial .semana-dia-estado {font-size:10.5px;}
.agenda-editorial {gap:20px;}
.agenda-editorial .agenda-principal {flex:1;}
.agenda-editorial .agenda-resumo {flex:0 0 300px;}
.agenda-dia {padding:22px 0 10px;}
.agenda-dia > .bloco-cab {padding:0 24px;}
.agenda-dia .agenda-item {padding:14px 24px;gap:13px;min-height:74px;}
.agenda-dia .agenda-item:last-child {border-bottom:0;}
.agenda-dia .agenda-ordem {color:#0D6586;font-weight:600;}
.agenda-dia .agenda-info b {font-size:13.5px;}
.agenda-situacao {font-size:11px;color:#89949B;white-space:nowrap;}
.agenda-concluida .agenda-situacao {color:#28745B;}
.agenda-dia .agenda-rodape {padding:14px 24px;}
.nota-mentor-editorial {border-left:3px solid #18B7E8;}
.nota-mentor-editorial .orientacao-data {display:block;font-size:11.5px;color:#0D7298;margin:-6px 0 12px;}
.nota-mentor-editorial .nota-mentor-texto {font-size:13px;line-height:1.65;}
.pendencia-titulo {margin:12px 0 8px;}
.bloco-lateral > .link-btn {display:inline-block;margin-top:15px;}

/* Outras páginas herdam o mesmo acabamento, sem esconder controles. */
.cal-barra {gap:12px;}
.cal-legendas {font-size:11.5px;}
.cal-barra-editorial {align-items:center;gap:14px;}
.cal-barra-editorial .cal-nav {flex:1;min-width:0;}
.cal-barra-editorial .cal-titulo {font-family:"Archivo",sans-serif;font-size:16px;letter-spacing:-.025em;}
.cal-filtros-detalhes {position:relative;flex:none;}
.cal-filtros-detalhes > summary,.cal-legenda-detalhes > summary {
  width:max-content;cursor:pointer;list-style:none;font-size:12px;font-weight:600;
  color:#0B6788;padding:10px 2px;
}
.cal-filtros-detalhes > summary::-webkit-details-marker,.cal-legenda-detalhes > summary::-webkit-details-marker {display:none;}
.cal-filtros-detalhes > summary::after,.cal-legenda-detalhes > summary::after {content:"⌄";padding-left:7px;}
.cal-filtros-detalhes[open] > summary::after,.cal-legenda-detalhes[open] > summary::after {content:"⌃";}
.cal-filtros-detalhes .cal-filtros {
  position:absolute;right:0;top:100%;z-index:15;width:min(430px,88vw);
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
  background:#FFF;box-shadow:0 12px 30px #091F3823;border:1px solid var(--linha);
  padding:17px;border-radius:5px;
}
.cal-filtros-detalhes .cal-filtros select {min-width:0;width:100%;}
.cal-legenda-detalhes {margin-top:-8px;margin-bottom:0;}
.cal-legenda-detalhes .cal-legendas {padding:4px 0 10px;gap:8px 16px;}
.ciclo-passos {
  display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--linha);
  background:#FFF;border-radius:5px;overflow:hidden;
}
.ciclo-passos a {
  flex:1;min-width:170px;display:flex;align-items:center;gap:11px;
  padding:13px 17px;color:#2E485B;font-size:12px;font-weight:600;
  text-decoration:none;border-right:1px solid var(--linha);
}
.ciclo-passos a:last-child {border-right:0;}
.ciclo-passos a:hover {background:#EDF7FA;color:#085C7B;}
.ciclo-passos a span {font:600 19px "Archivo Narrow",sans-serif;color:#0E83AB;}
.ciclo-config,.ciclo-grade-bloco,.ciclo-aplicar {scroll-margin-top:80px;}
.ciclo-passos ~ section h2[id] {scroll-margin-top:82px;}
.ciclo-grade-bloco {border-top:3px solid #091F38;}
.ciclo-grade thead th {background:#F4F7F8;}
.ciclo-grade td.hoje {background:#EEF9FC;}
.pincel-op.on {border-color:#0D7298;box-shadow:inset 0 0 0 1px #0D7298;background:#EFFAFF;}
.barra-salvar {background:#091F38;}
.avaliacao-form-recolhido {padding:0;overflow:hidden;}
.avaliacao-form-recolhido > summary {
  list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:19px 23px;cursor:pointer;font:600 15px "Archivo",sans-serif;color:#13344A;
}
.avaliacao-form-recolhido > summary::-webkit-details-marker {display:none;}
.avaliacao-form-recolhido > summary:hover {background:#F4F9FB;}
.avaliacao-form-recolhido > summary span {font-size:20px;color:#0A779D;}
.avaliacao-form-recolhido[open] > summary span {transform:rotate(180deg);}
.avaliacao-form-corpo {border-top:1px solid var(--linha);padding:22px 23px 24px;}

@media(max-width:1280px) {
  .dashboard-editorial {grid-template-columns:minmax(0,1fr) 255px;}
  .tabela-editorial td,.tabela-editorial th {padding:12px 10px;}
  .dashboard-turma .tabela-wrap {overflow-x:auto;}
  .tabela-editorial {min-width:720px;}
}
@media(max-width:1100px) {
  .metricas-editoriais {grid-template-columns:repeat(2,minmax(0,1fr));}
  .metrica-editorial:nth-child(2) {border-right:0;}
  .metrica-editorial:nth-child(-n+2) {border-bottom:1px solid var(--linha);}
  .dashboard-editorial {grid-template-columns:minmax(0,1fr);}
  .dashboard-lateral {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .inicio-aluno-grid {grid-template-columns:minmax(0,1fr) 280px;}
  .agenda-editorial .agenda-resumo {flex-basis:270px;}
}
@media(max-width:860px) {
  .inicio-aluno-grid {grid-template-columns:1fr;}
  .rotina-resumo {min-height:0;}
  .dashboard-lateral {grid-template-columns:1fr;}
  .agenda-editorial {flex-direction:column;}
  .agenda-editorial .agenda-resumo {flex-basis:auto;width:100%;}
  .semana-editorial .semana-dias {overflow-x:auto;}
  .semana-editorial .semana-dia {min-width:80px;}
}
@media(max-width:700px) {
  .pagina {padding:20px 15px 38px;}
  .pagina-in {gap:16px;}
  .editorial-cabeca {align-items:start;}
  .editorial-cabeca .acoes {width:100%;}
  .editorial-cabeca .acoes .btn {flex:1;justify-content:center;}
  .metricas-editoriais {grid-template-columns:1fr 1fr;}
  .metrica-editorial {min-height:108px;padding:14px;}
  .metrica-editorial strong {font-size:30px;}
  .metrica-editorial small {font-size:10.5px;}
  .faixa-operacional {display:grid;grid-template-columns:26px minmax(0,1fr);align-items:start;gap:7px 12px;}
  .faixa-operacional > div {display:block;min-width:0;}
  .faixa-operacional > div b,.faixa-operacional > div span {display:block;overflow-wrap:anywhere;}
  .faixa-operacional a {grid-column:2;justify-self:start;margin-left:0;white-space:normal;}
  .dashboard-turma > .bloco-cab,.filtros-editoriais {padding-left:15px;padding-right:15px;}
  .filtros-editoriais {flex-direction:column;align-items:stretch;}
  .filtros-editoriais .campo,.filtros-editoriais .campo.filtro-peq {width:100%;max-width:none;}
  .dashboard-turma .tabela-wrap {overflow-x:auto;}
  .cabeca-acoes-aluno {width:100%;justify-content:space-between;}
  .sessao-principal {padding:19px;}
  .rotina-resumo {padding:20px;}
  .semana-editorial {padding:16px 12px;}
  .agenda-dia > .bloco-cab {padding:0 16px;}
  .agenda-dia .agenda-item {padding:13px 16px;flex-wrap:wrap;}
  .agenda-dia .agenda-situacao {display:none;}
  .agenda-dia .agenda-rodape {padding:14px 16px;}
  .cal-barra-editorial .cal-nav {gap:5px;}
  .cal-barra-editorial .teclas {order:2;width:100%;justify-content:stretch;}
  .cal-barra-editorial .tecla {flex:1;}
  .cal-filtros-detalhes {margin-left:auto;}
  .cal-filtros-detalhes .cal-filtros {grid-template-columns:1fr;}
  .ciclo-passos a {min-width:50%;padding:10px;}
}
@media(prefers-reduced-motion:reduce) {
  .nav-accordion .nav-seta {transition:none;}
}

/* Segunda revisão: navegação compacta com lista flutuante acessível. */
.nav-flyout {
  position:fixed;z-index:90;min-width:225px;max-width:min(270px,calc(100vw - 90px));
  padding:10px;background:#102D47;border:1px solid #36556D;border-radius:5px;
  box-shadow:0 14px 35px #091F3847;color:#FFF;
}
.nav-flyout[hidden] {display:none!important;}
.nav-flyout-titulo {padding:7px 10px 10px;font:600 12px "Archivo",sans-serif;color:#B8D8E8;}
.nav-flyout .nav-subitems {display:block;margin:0;padding:0;border:0;}
.nav-flyout .nav-item {display:flex;min-height:41px;margin:1px 0;padding:10px;white-space:normal;justify-content:flex-start;text-align:left;gap:10px;}
.menu-recolhido .nav-flyout .nav-item {justify-content:flex-start;padding:10px;text-align:left;}
.nav-flyout .nav-item span {display:block;}
.nav-flyout .nav-item .ic {flex:none;}
.nav-flyout .nav-item.on {background:#20516F;}
.nav-flyout .nav-item:focus-visible {outline:2px solid #65D6F7;outline-offset:-2px;}
@media(min-width:981px) {
  .menu-recolhido .nav-accordion > summary:focus-visible {outline:2px solid #65D6F7;outline-offset:-2px;}
  .menu-recolhido .nav-accordion > summary:hover {background:#1B4764;}
}

/* Painel em telas pequenas: cartões de linha, sem tabela lateralmente exposta. */
.turma-resultados,.dashboard-turma {min-width:0;}
.turma-tabela {position:relative;max-width:100%;}
.turma-mobile {display:none;}
.aluno-mobile {border-top:1px solid var(--linha);padding:15px 17px;min-width:0;}
.aluno-mobile[hidden] {display:none!important;}
.aluno-mobile-cab {display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.aluno-mobile-cab > div {min-width:0;overflow-wrap:anywhere;}
.aluno-mobile-cab .etq {flex:none;font-size:10.5px;}
.aluno-mobile-dados {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0;}
.aluno-mobile-dados div {display:flex;flex-direction:column;gap:3px;}
.aluno-mobile-dados small {font-size:10px;color:#718294;}
.aluno-mobile-dados strong {font:600 21px "Archivo Narrow",sans-serif;color:#14374E;}
.aluno-mobile-dados strong span {font-size:12px;font-weight:400;color:#7D8B97;}
.aluno-mobile-acoes {display:flex;flex-wrap:wrap;align-items:center;gap:9px 15px;border-top:1px solid #EEF1F3;padding-top:11px;}
.aluno-mobile-acoes span {font-size:10.5px;color:#778795;margin-right:auto;}
.aluno-mobile-acoes a {font-size:12px;font-weight:600;white-space:nowrap;}

/* Calendário: manter a grade no primeiro campo visual. */
.pagina-calendario .pagina-in {gap:12px;}
.cal-cabeca {display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px 20px;}
.cal-cabeca > div:first-child {min-width:0;}
.cal-cabeca .editorial-sobretitulo {margin-bottom:5px;}
.cal-cabeca .campo select {min-width:170px!important;}
.cal-cabeca > .acoes {gap:7px;flex-wrap:nowrap;}
.cal-cabeca > .acoes > form {flex-wrap:nowrap;}
.cal-cabeca .acoes .btn {min-height:36px;padding:8px 12px;font-size:12px;}
.cal-saldo-compacto {
  padding:10px 16px;background:#FFF;border:1px solid var(--linha);border-radius:5px;
  gap:9px 20px;align-items:center;
}
.cal-saldo-compacto .saldo-barra {flex:1 1 400px;}
.cal-saldo-compacto .saldo-barra .linha1 {display:flex;align-items:center;gap:15px;flex-wrap:wrap;}
.cal-saldo-compacto .saldo-barra .linha1 b {font-size:12px;}
.cal-saldo-compacto .saldo-trilho {height:5px;margin-top:5px;}
.cal-saldo-detalhe {margin-left:auto;font-size:11px;white-space:nowrap;}
.cal-barra-editorial {padding:0;gap:5px 14px;justify-content:flex-start;}
.cal-barra-editorial .cal-nav {flex:1 1 auto;gap:6px;}
.cal-barra-editorial .cal-titulo {font-size:15px;text-transform:none;min-width:145px;}
.cal-barra-editorial .teclas {margin-left:8px;}
.cal-barra-editorial > details {flex:none;position:relative;}
.cal-barra-editorial > details > summary {white-space:nowrap;padding:6px 3px;}
#cal-aviso:empty {display:none;}
.cal-barra-editorial .cal-legendas {
  position:absolute;z-index:14;right:0;top:100%;width:min(390px,88vw);
  background:#FFF;border:1px solid var(--linha);border-radius:5px;
  padding:15px;box-shadow:0 12px 30px #091F3823;
  display:flex;flex-wrap:wrap;gap:9px 13px;
}
.cal-barra-editorial .cal-legendas .link-btn {width:100%;text-align:left;margin-top:5px;}
.cal-legenda-detalhes {margin:0;}
.cal-filtros-detalhes .cal-filtros {max-width:calc(100vw - 35px);}

/* Semana e agenda: um único contorno e espaçamento consistente. */
.semana-editorial {margin-bottom:0;padding:0;overflow:hidden;}
.semana-editorial .semana-cab {padding:14px 19px 10px;margin:0;border-bottom:0;}
.semana-editorial .semana-dias {border:0;border-radius:0;}
.semana-editorial .semana-dia {border-right:1px solid #EFF1F3;position:relative;}
.semana-editorial .semana-dia.com-pendencia::after {
  content:"";position:absolute;right:11px;top:12px;width:6px;height:6px;
  border-radius:50%;background:#C08A39;
}
.semana-editorial .semana-dia.hoje {box-shadow:inset 0 3px 0 #18B7E8;}
.agenda-editorial {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr);gap:20px;}
.agenda-editorial .agenda-principal,.agenda-editorial .agenda-resumo {flex:none;min-width:0;}

/* Marca motivacional compacta no resumo do aluno. */
.escada-mini {border-top:1px solid #FFFFFF22;padding-top:14px;}
.escada-mini-cab {display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:9px;}
.escada-mini-cab b {font-size:11.5px;font-weight:600;color:#D5E8F3;}
.escada-mini-cab span {font-size:10.5px;color:#8FABBF;}
.escada-mini-passos {display:grid;grid-template-columns:repeat(var(--escada-total,6),minmax(0,1fr));gap:5px;align-items:end;}
.escada-mini-passo {display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;}
.escada-mini-passo.salto {position:relative;}
.escada-mini-passo.salto::before {content:"···";position:absolute;bottom:19px;left:-12px;color:#91AABB;font-size:11px;letter-spacing:0;}
.escada-mini-pilar {width:100%;max-width:34px;display:block;background:#31546D;border-top:3px solid #62869E;border-radius:2px 2px 0 0;}
.escada-mini-passo.cumprida .escada-mini-pilar {background:#14769D;border-color:#48C4EB;}
.escada-mini-passo.parcial .escada-mini-pilar {background:#416F91;border-color:#90C7E4;}
.escada-mini-passo.fraca .escada-mini-pilar {background:#49576B;border-color:#899DB1;}
.escada-mini-passo.atual .escada-mini-pilar {background:#AE792D;border-color:#F4C366;}
.escada-mini-passo.prova .escada-mini-pilar {background:#0E849B;border-color:#78DCE9;}
.escada-mini-passo small {font-size:8.5px;letter-spacing:.02em;color:#9EB6C8;}
.escada-mini-passo.atual small {color:#F4C366;font-weight:700;}
.escada-mini-passo.prova small {color:#87E6EE;font-weight:700;}

@media(max-width:1100px) {
  .agenda-editorial {grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);}
}
@media(max-width:1100px) {
  .cal-cabeca {grid-template-columns:1fr;}
  .cal-cabeca > .acoes {justify-content:flex-start;}
}
@media(max-width:860px) {
  .agenda-editorial {grid-template-columns:1fr;}
  .cal-cabeca {align-items:flex-start;}
}
@media(max-width:700px) {
  .dashboard-editorial,.dashboard-turma,.turma-resultados {min-width:0;max-width:100%;}
  .dashboard-turma {overflow:hidden;}
  .turma-tabela {display:none;}
  .turma-mobile {display:block;}
  .filtros-editoriais {align-items:stretch;gap:10px;}
  .filtros-editoriais .campo,.filtros-editoriais .campo.filtro-peq {flex:0 0 auto;width:100%;max-width:100%;}
  .filtros-editoriais input,.filtros-editoriais select {height:40px;min-height:40px;}
  .cal-cabeca .acoes {gap:6px;}
  .cal-cabeca > .acoes {flex-wrap:wrap;}
  .cal-cabeca .acoes > form {width:100%;}
  .cal-cabeca .acoes > form .campo {width:100%;}
  .cal-cabeca .acoes > form select {flex:1;min-width:0!important;}
  .cal-saldo-compacto {padding:10px 12px;}
  .cal-saldo-compacto .saldo-barra {flex-basis:100%;}
  .cal-saldo-detalhe {margin:0;}
  .cal-barra-editorial .cal-nav {flex-basis:100%;}
  .cal-barra-editorial .cal-titulo {min-width:0;flex:1 1 100px;font-size:13px;}
  .cal-barra-editorial .teclas {margin-left:0;}
  .cal-barra-editorial > details {flex:1 1 0;}
  .cal-barra-editorial > details > summary {font-size:11.5px;}
  .cal-filtros-detalhes .cal-filtros {right:auto;left:0;}
  .cal-barra-editorial .cal-legendas {right:0;}
  .semana-editorial .semana-cab {padding:13px 15px 8px;}
  .semana-editorial .semana-dia {min-width:72px;}
  .agenda-editorial {grid-template-columns:1fr;}
}

/* Linguagem de indicadores compartilhada entre todas as áreas. */
.degraus {
  grid-template-columns:repeat(4,minmax(0,1fr));border-radius:5px;
  background:#FFF;border:1px solid var(--linha);overflow:hidden;
}
.degrau,.degrau.alto {min-width:0;min-height:120px;padding:19px 22px;background:#FFF;color:#152F43;border-right:1px solid var(--linha);}
.degrau:last-child {border-right:0;}
.degrau .num,.degrau.alto .num {font:600 37px/1.15 "Archivo Narrow",sans-serif;color:#14314A;margin-bottom:9px;}
.degrau .rot,.degrau.alto .rot {font-size:11.5px;color:#677989;line-height:1.45;}
.degrau.alto .num {color:#0B7294;}
.grafico-wrap {overflow-x:auto;max-width:100%;}
.grafico-wrap .grafico {max-width:100%;}
.mapa-bloco {border-top:3px solid #091F38;}
.disc-abas {gap:10px;}
.disc-aba.on {border-color:#0D7298;}
.disc-aba .barra > i {background:#0D789C;}
.falta-lista {border-top-color:#B98233!important;}

/* Cadastro extenso organizado por etapas persistentes. */
.cadastro-etapas {
  display:flex;align-items:stretch;border:1px solid var(--linha);
  background:#FFF;border-radius:5px;overflow:hidden;
}
.cadastro-etapas a {
  flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:12px 16px;
  font-size:12px;font-weight:600;color:#25465A;text-decoration:none;
  border-right:1px solid var(--linha);
}
.cadastro-etapas a:last-child {border-right:0;}
.cadastro-etapas a:hover,.cadastro-etapas a:focus-visible {background:#EAF7FA;color:#086386;}
.cadastro-etapas a span {color:#0D789C;font:600 21px "Archivo Narrow",sans-serif;}
#concurso-basico,#concurso-provas,#concurso-conteudos {scroll-margin-top:80px;}

/* Login: a mesma marca editorial que o aluno encontrará após entrar. */
.login-body {font-family:"IBM Plex Sans","Segoe UI",sans-serif;background:#F5F3EF;}
.login-lado {background:#091F38;}
.login-logo b {font-family:"Archivo",sans-serif;letter-spacing:-.055em;}
.login-editorial h1 {font-family:"Archivo",sans-serif;letter-spacing:-.06em;}
.login-editorial h1 span {color:#18B7E8;}
.login-editorial p {color:#B3CBDC;line-height:1.75;}
.login-principios {border-top-color:#FFFFFF25;color:#C0D1DE;}
.login-form {background:#F5F3EF;}
.login-card {background:#FFF;border:1px solid #E1E5E9;border-radius:5px;padding:35px 38px;width:min(465px,100%);gap:20px;}
.login-card h2 {font-family:"Archivo",sans-serif;color:#132F43;font-size:25px;}
.login-card .campo input {border-radius:4px;}
.login-card > .btn {border-radius:4px;}

@media(max-width:1100px) {
  .degraus {grid-template-columns:repeat(2,minmax(0,1fr));}
  .degrau:nth-child(2) {border-right:0;}
  .degrau:nth-child(-n+2) {border-bottom:1px solid var(--linha);}
}
@media(max-width:700px) {
  .degraus {grid-template-columns:repeat(2,minmax(0,1fr));}
  .degrau,.degrau.alto {min-height:105px;padding:13px 15px;}
  .degrau .num,.degrau.alto .num {font-size:29px;}
  .degrau .rot,.degrau.alto .rot {font-size:10.5px;}
  .cadastro-etapas {flex-direction:column;}
  .cadastro-etapas a {border-right:0;border-bottom:1px solid var(--linha);padding:9px 14px;}
  .cadastro-etapas a:last-child {border-bottom:0;}
  .login-card {border:0;background:transparent;padding:0;}
}



/* Campo de arquivo com o mesmo acabamento dos botões */
.campo input[type="file"] {
  padding:6px;
  min-height:42px;
  cursor:pointer;
  color:var(--ardosia);
}

.campo input[type="file"]::file-selector-button {
  margin-right:12px;
  min-height:30px;
  padding:5px 14px;
  font:inherit;
  font-size:12.5px;
  font-weight:600;
  color:#FFF;
  background:#0B5575;
  border:1px solid #0B5575;
  border-radius:4px;
  cursor:pointer;
  transition:background .15s;
}

.campo input[type="file"]::file-selector-button:hover {
  background:#093F59;
}
