/* ============================================================
   Plataforma Prof. Rodrigo Gondim
   Linguagem visual alinhada ao site profrodrigogondim.com.br
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800&family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root{
  /* Marca */
  --marinho:      #0c1130;
  --marinho-800:  #131a44;
  --marinho-700:  #1a1e43;
  --marinho-600:  #2c3670;
  --marinho-200:  #c9d0e6;
  --laranja:      #f2681e;
  --laranja-600:  #d95216;
  --laranja-100:  #fff0e7;
  --dourado:      #f4b942;

  /* Neutros */
  --tinta:   #10162b;
  --grafite: #303852;
  --cinza:   #59617d;
  --linha:   #e2e6f0;
  --nuvem:   #edf0f7;
  --papel:   #f3f5fa;
  --branco:  #ffffff;

  /* Semânticos */
  --certo:        #0f8a53;  --certo-fundo:  #e9faf1;
  --errado:       #d0342c;  --errado-fundo: #fef1f0;
  --alerta:       #c2700b;  --alerta-fundo: #fff8e8;
  --azul:         #1d6fd6;  --azul-fundo:   #eef6ff;

  /* Sistema */
  --raio:    18px;
  --raio-sm: 12px;
  --sombra:     0 10px 30px rgba(12,17,48,.07);
  --sombra-alta:0 18px 46px rgba(12,17,48,.14);
  --transicao: .18s cubic-bezier(.4,0,.2,1);

  --display: 'Archivo', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --corpo:   'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, monospace;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }
html{ -webkit-text-size-adjust:100% }

body{
  font-family:var(--corpo);
  font-size:16px; line-height:1.6;
  color:var(--tinta);
  background:
    radial-gradient(circle at 12% 8%,rgba(242,104,30,.07),transparent 25rem),
    linear-gradient(180deg,#fff 0,var(--papel) 28rem);
  min-height:100vh; display:flex; flex-direction:column;
  -webkit-font-smoothing:antialiased;
}

a{ color:var(--marinho-600); text-decoration:none; transition:color var(--transicao) }
a:hover{ color:var(--laranja) }

:focus-visible{ outline:3px solid var(--laranja); outline-offset:2px; border-radius:4px }

.pular-conteudo{
  position:fixed; left:16px; top:-80px; z-index:1000;
  background:var(--marinho); color:#fff; border-radius:10px;
  padding:10px 16px; font-weight:700;
}
.pular-conteudo:focus{ top:12px; color:#fff }

/* ─── Faixa superior ─────────────────────────────────── */
.faixa{
  background:var(--marinho); color:var(--marinho-200);
  font-family:var(--mono); font-size:.7rem; letter-spacing:.09em;
  text-transform:uppercase;
}
.faixa__interno{
  width:min(100% - 40px,1160px); margin:0 auto; padding:7px 0;
  display:flex; justify-content:space-between; gap:16px;
}
.faixa strong{ color:var(--dourado); font-weight:600 }

/* ─── Cabeçalho ──────────────────────────────────────── */
.topo{
  background:rgba(255,255,255,.94);
  position:sticky; top:0; z-index:200;
  border-bottom:1px solid var(--linha);
  box-shadow:0 7px 24px rgba(12,17,48,.06);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
}
.topo__interno{
  max-width:1160px; margin:0 auto; padding:0 20px;
  height:72px; display:flex; align-items:center;
  justify-content:space-between; gap:16px;
  position:relative;   /* âncora do menu no celular */
}
.topo__marca{ display:flex; align-items:center; flex-shrink:0 }
.topo__marca img{ height:48px; width:auto; display:block }

.topo__nav{ display:flex; align-items:center; gap:4px }
.topo__nav a{
  color:var(--marinho-700); font-family:var(--corpo);
  font-size:.9rem; font-weight:600; padding:9px 12px;
  border-radius:var(--raio-sm); transition:all var(--transicao);
  display:flex; align-items:center; gap:7px;
}
.topo__nav a:hover{ color:var(--laranja); background:var(--laranja-100) }
.topo__nav a.ativo{ color:var(--laranja-600); background:var(--laranja-100) }
.topo__nav a.sair{ color:var(--cinza) }
.topo__nav a.sair:hover{ color:var(--errado); background:var(--errado-fundo) }
.nav-icone{
  width:17px; height:17px; flex:0 0 auto; fill:none;
  stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
}
.topo__saida-mobile,.topo__perfil-mobile{ display:none }
.topo__saida-mobile span{ font-size:.72rem; font-weight:800 }

/* Botão de menu no celular */
.topo__botao{
  display:none; cursor:pointer; border-radius:var(--raio-sm);
  /* !important porque a regra genérica de button vem depois no arquivo;
     sem isso, um carregamento parcial do CSS deixa o botão laranja */
  background:transparent !important; border:none !important;
  padding:8px !important; margin:0 !important; box-shadow:none !important;
  align-items:center; gap:8px; color:var(--marinho);
}
.topo__botao-linhas{ display:block; width:22px }
.topo__botao-linhas i{
  display:block; width:22px; height:2px; background:currentColor;
  border-radius:2px; margin:4px 0; transition:all var(--transicao);
}
.topo__botao>strong{ font-size:.78rem }
.topo__botao[aria-expanded="true"] .topo__botao-linhas i:nth-child(1){ transform:translateY(6px) rotate(45deg) }
.topo__botao[aria-expanded="true"] .topo__botao-linhas i:nth-child(2){ opacity:0 }
.topo__botao[aria-expanded="true"] .topo__botao-linhas i:nth-child(3){ transform:translateY(-6px) rotate(-45deg) }

/* ─── Layout ─────────────────────────────────────────── */
.folha{
  width:100%; max-width:1160px; margin:0 auto;
  padding:36px 20px 86px; flex:1;
}

/* ─── Tipografia ─────────────────────────────────────── */
h1,h2,h3,h4{ font-family:var(--display); color:var(--marinho); line-height:1.25 }
h1{ font-size:clamp(1.7rem,4vw,2.45rem); font-weight:800; letter-spacing:-.035em; margin-bottom:6px }
h2{ font-size:clamp(1.12rem,2vw,1.35rem); font-weight:800; letter-spacing:-.02em; margin:0 0 14px }
h3{ font-size:1.02rem; font-weight:700; margin:0 0 8px }
p{ margin-bottom:12px }
p:last-child{ margin-bottom:0 }

.rotulo{
  display:inline-block; font-family:var(--display);
  font-size:.72rem; font-weight:800; text-transform:uppercase;
  letter-spacing:.13em; color:var(--laranja); margin-bottom:8px;
}
.rotulo--claro{ color:rgba(255,255,255,.7) }
.apoio{ font-size:.9rem; color:var(--cinza) }
.vazio{ color:var(--cinza); font-style:italic }
.mt{ margin-top:20px }

/* ─── Recado ─────────────────────────────────────────── */
.recado{
  border-radius:var(--raio-sm); padding:14px 18px; margin-bottom:22px;
  font-size:.94rem; font-weight:500; display:flex; gap:10px; align-items:flex-start;
  animation:sobe .3s ease-out;
}
.recado--erro{ background:var(--errado-fundo); color:#8a231d; border-left:4px solid var(--errado) }
.recado--ok{   background:var(--certo-fundo);  color:#0a5c38; border-left:4px solid var(--certo) }
@keyframes sobe{ from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }

/* ─── Cartão ─────────────────────────────────────────── */
.cartao{
  background:var(--branco); border:1px solid var(--linha);
  border-radius:var(--raio); padding:24px 26px; margin-bottom:20px;
  box-shadow:var(--sombra);
}
.cartao--destaque{ border-top:3px solid var(--laranja) }

/* ─── Hero do aluno ──────────────────────────────────── */
.hero{
  background:linear-gradient(135deg,var(--marinho) 0%,var(--marinho-600) 100%);
  border-radius:var(--raio); margin-bottom:24px;
  padding:30px 30px 0; display:flex; align-items:flex-end;
  gap:24px; overflow:hidden; position:relative;
}
.hero::after{
  content:''; position:absolute; top:-60px; right:-60px;
  width:220px; height:220px; border-radius:50%;
  background:rgba(242,101,34,.14);
}
.hero__texto{ flex:1; padding-bottom:30px; position:relative; z-index:1 }
.hero__texto h1{ color:#fff; margin-bottom:4px }
.hero__nota{
  display:inline-flex; align-items:baseline; gap:8px;
  background:rgba(255,255,255,.12); border-radius:999px;
  padding:6px 16px; margin-top:10px;
  font-size:.86rem; color:rgba(255,255,255,.85);
}
.hero__nota strong{ font-family:var(--display); font-size:1.1rem; color:#fff; font-weight:800 }
.hero__foto{
  width:150px; flex-shrink:0; align-self:flex-end;
  object-fit:contain; object-position:bottom;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.3));
  position:relative; z-index:1;
}

/* ─── Formulário ─────────────────────────────────────── */
label{
  display:block; font-family:var(--display);
  font-size:.78rem; font-weight:700; color:var(--grafite);
  text-transform:uppercase; letter-spacing:.06em; margin:16px 0 6px;
}
label:first-child{ margin-top:0 }
label.marca{ text-transform:none; letter-spacing:0; font-weight:500; font-size:.94rem;
  display:flex; align-items:center; gap:9px; color:var(--tinta) }

/* Regra por exclusao. A lista anterior enumerava os tipos aceitos, e por isso
   deixava de fora justamente os mais comuns: <input> sem atributo type (que o
   navegador trata como texto) e input[type=date]. Esses campos apareciam
   estreitos e colados no rotulo. */
input:not([type]),
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):not([type=range]):not([type=color]):not([type=hidden]),
select,textarea{
  display:block; width:100%; font:inherit; font-size:.97rem;
  color:var(--tinta); background:var(--branco);
  border:1.5px solid var(--linha); border-radius:var(--raio-sm);
  padding:12px 14px; transition:all var(--transicao);
}
input:focus,select:focus,textarea:focus{
  outline:none; border-color:var(--laranja);
  box-shadow:0 0 0 4px rgba(242,101,34,.13);
}
input[type=date],input[type=datetime-local],input[type=time]{ max-width:260px }
input[type=checkbox],input[type=radio]{ accent-color:var(--laranja); width:17px; height:17px; cursor:pointer }
textarea{ resize:vertical; min-height:90px }

.form-busca{ display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap }
.form-busca input{ flex:1; min-width:180px }
.form-busca button{ margin-top:0 }

/* ─── Botões ─────────────────────────────────────────── */
button,.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--display); font-size:.93rem; font-weight:700;
  padding:12px 24px; border:none; border-radius:999px;
  background:var(--laranja); color:#fff; cursor:pointer;
  text-decoration:none; margin-top:18px;
  transition:all var(--transicao); box-shadow:0 2px 8px rgba(242,101,34,.28);
}
button:hover,.btn:hover{
  background:var(--laranja-600); color:#fff;
  transform:translateY(-1px); box-shadow:0 4px 14px rgba(242,101,34,.34);
}
button:active,.btn:active{ transform:translateY(0) }

.btn--azul{ background:var(--marinho-800); box-shadow:0 2px 8px rgba(30,58,95,.25) }
.btn--azul:hover{ background:var(--marinho); box-shadow:0 4px 14px rgba(30,58,95,.3) }
.btn--linha{
  background:transparent; color:var(--marinho-800);
  border:1.5px solid var(--linha); box-shadow:none;
}
.btn--linha:hover{ background:var(--nuvem); color:var(--marinho); border-color:var(--marinho-600) }
.btn--pequeno{ padding:7px 14px; font-size:.82rem; margin:0; box-shadow:none }
.btn-perigo{
  background:var(--errado-fundo); color:var(--errado);
  border:1.5px solid rgba(208,52,44,.3); box-shadow:none;
}
.btn-perigo:hover{ background:var(--errado); color:#fff; border-color:var(--errado) }
.acoes{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:18px }
.acoes .btn,.acoes button{ margin-top:0 }

/* ─── Tabela ─────────────────────────────────────────── */
.tabela-rolagem{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:18px }
.tbl{
  width:100%; border-collapse:collapse; font-size:.91rem;
  background:var(--branco); border-radius:var(--raio);
  overflow:hidden; box-shadow:var(--sombra); min-width:420px;
}
.tbl th{
  background:var(--nuvem); padding:12px 15px; text-align:left;
  font-family:var(--display); font-size:.72rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.07em; color:var(--grafite);
  border-bottom:2px solid var(--linha); white-space:nowrap;
}
.tbl td{ padding:12px 15px; border-bottom:1px solid var(--linha); vertical-align:middle }
.tbl tbody tr{ transition:background var(--transicao) }
.tbl tbody tr:hover{ background:var(--papel) }
.tbl tr:last-child td{ border-bottom:none }
.tbl .meio{ text-align:center }
.linha-suspensa td{ opacity:.48 }
.linha--erro td{ background:#fffbfa }
.ok{ color:var(--certo); font-weight:600 }
.nok{ color:var(--errado); font-weight:600 }

/* ─── Selo ───────────────────────────────────────────── */
.selo{
  display:inline-block; border-radius:999px; padding:4px 12px;
  font-family:var(--display); font-size:.75rem; font-weight:700;
  letter-spacing:.01em; white-space:nowrap;
}
.selo--certo{  background:var(--certo-fundo);  color:var(--certo) }
.selo--errado{ background:var(--errado-fundo); color:var(--errado) }
.selo--alerta{ background:var(--alerta-fundo); color:var(--alerta) }
.selo--azul{   background:var(--azul-fundo);   color:var(--azul) }
.selo--cinza{  background:var(--nuvem);        color:var(--cinza) }

/* ─── Cartões de número ──────────────────────────────── */
.stat-grid{
  display:grid; gap:14px; margin-bottom:24px;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.stat-card{
  background:var(--branco); border:1px solid var(--linha);
  border-top:3px solid var(--laranja); border-radius:var(--raio);
  padding:18px 20px; box-shadow:var(--sombra);
  transition:transform var(--transicao), box-shadow var(--transicao);
}
.stat-card:hover{ transform:translateY(-2px); box-shadow:var(--sombra-alta) }
.stat-card__valor{
  font-family:var(--display); font-size:1.9rem; font-weight:800;
  color:var(--marinho); line-height:1.1; letter-spacing:-.02em;
}
.stat-card__label{ font-size:.8rem; color:var(--cinza); margin-top:4px }
.stat-card--certo{  border-top-color:var(--certo) }
.stat-card--certo  .stat-card__valor{ color:var(--certo) }
.stat-card--errado{ border-top-color:var(--errado) }
.stat-card--errado .stat-card__valor{ color:var(--errado) }
.stat-card--alerta{ border-top-color:var(--alerta) }
.stat-card--alerta .stat-card__valor{ color:var(--alerta) }
.stat-card--azul{   border-top-color:var(--azul) }
.stat-card--azul   .stat-card__valor{ color:var(--azul) }

/* ─── Gráfico de evolução ────────────────────────────── */
.grafico-evolucao{
  display:flex; gap:12px; align-items:flex-end;
  height:120px; margin:18px 0 8px; padding-top:8px;
}
.barra-wrap{ display:flex; flex-direction:column; align-items:center; gap:6px; flex:1 }
.barra-col{
  width:100%; max-width:54px; height:calc(var(--pct,0%));
  background:var(--cor,var(--azul)); border-radius:6px 6px 0 0;
  min-height:5px; transition:height .6s cubic-bezier(.4,0,.2,1);
  position:relative;
}
.barra-pct{ font-size:.74rem; color:var(--cinza); font-weight:500 }

/* ─── Cartão de simulado ─────────────────────────────── */
.cartao-simulado{
  background:var(--branco); border:1px solid var(--linha);
  border-left:4px solid var(--laranja); border-radius:var(--raio);
  padding:22px 24px; margin-bottom:16px; box-shadow:var(--sombra);
  transition:transform var(--transicao), box-shadow var(--transicao);
}
.cartao-simulado:hover{ transform:translateY(-2px); box-shadow:var(--sombra-alta) }
.cartao-simulado--feito{ border-left-color:var(--certo) }
.cartao-simulado--fechado{ border-left-color:var(--linha); opacity:.72 }
.simulado-status{
  font-family:var(--display); font-size:.72rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.12em;
  color:var(--laranja); margin-bottom:6px;
}
.simulado-status--feito{ color:var(--certo) }
.simulado-status--encerrado{ color:var(--cinza) }
.painel-turma{ margin-bottom:26px }
.turma-nome{
  font-family:var(--display); font-size:.72rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.12em;
  color:var(--cinza); margin-bottom:10px;
}

/* ─── Cronômetro ─────────────────────────────────────── */
.barra-crono{
  position:sticky; top:66px; z-index:150;
  background:var(--branco); border:1px solid var(--linha);
  border-radius:var(--raio); padding:14px 22px; margin-bottom:22px;
  display:flex; justify-content:space-between; align-items:center;
  gap:14px; flex-wrap:wrap; box-shadow:var(--sombra);
}
.cronometro{
  font-family:var(--display); font-variant-numeric:tabular-nums;
  font-size:1.6rem; font-weight:800; color:var(--marinho);
  letter-spacing:.02em; line-height:1;
}
.cronometro--alerta{ color:var(--errado); animation:pulsa 1s infinite }
@keyframes pulsa{ 0%,100%{opacity:1} 50%{opacity:.55} }

/* ─── Questão ────────────────────────────────────────── */
.questao{
  background:var(--branco); border:1px solid var(--linha);
  border-radius:var(--raio); padding:24px 26px; margin-bottom:16px;
  box-shadow:var(--sombra);
}
.questao__num{
  font-family:var(--display); font-size:.74rem; font-weight:800;
  color:var(--laranja); text-transform:uppercase;
  letter-spacing:.1em; margin-bottom:10px;
}
.questao__enunciado{ font-size:1rem; line-height:1.75; margin-bottom:18px; color:var(--grafite) }
.alternativa{
  display:flex; align-items:flex-start; gap:12px;
  padding:12px 14px; margin-bottom:8px; cursor:pointer;
  border:1.5px solid var(--linha); border-radius:var(--raio-sm);
  transition:all var(--transicao);
}
.alternativa:hover{ border-color:var(--laranja); background:var(--laranja-100) }
.alternativa:has(input:checked){
  border-color:var(--laranja); background:var(--laranja-100);
  box-shadow:0 0 0 1px var(--laranja);
}
.alternativa input{ margin-top:2px; flex-shrink:0 }
.alternativa label{
  cursor:pointer; margin:0; text-transform:none; letter-spacing:0;
  font-weight:400; font-size:.96rem; line-height:1.6; color:var(--tinta);
}
.alternativa label strong{ font-family:var(--display); color:var(--marinho-800); margin-right:2px }

/* ─── Paginação ──────────────────────────────────────── */
.paginacao{ display:flex; gap:7px; margin-top:16px; flex-wrap:wrap }
.paginacao a{
  border:1.5px solid var(--linha); border-radius:var(--raio-sm);
  padding:7px 14px; font-size:.88rem; font-weight:600;
  background:var(--branco); color:var(--grafite); transition:all var(--transicao);
}
.paginacao a:hover{ border-color:var(--laranja); color:var(--laranja) }
.paginacao a.ativo{ background:var(--marinho-800); color:#fff; border-color:var(--marinho-800) }

/* ─── Detalhes expansíveis ───────────────────────────── */
details.cartao summary{
  cursor:pointer; font-family:var(--display); font-weight:700;
  font-size:1.02rem; color:var(--marinho); list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
details.cartao summary::-webkit-details-marker{ display:none }
details.cartao summary::after{
  content:'+'; font-size:1.5rem; font-weight:400; color:var(--laranja);
  line-height:1; transition:transform var(--transicao);
}
details.cartao[open] summary::after{ transform:rotate(45deg) }

/* ─── Rodapé ─────────────────────────────────────────── */
.pe{
  background:var(--marinho); color:rgba(255,255,255,.6);
  text-align:center; padding:26px 20px; font-size:.82rem; margin-top:auto;
}
.pe strong{ color:rgba(255,255,255,.9); font-weight:600 }

/* ─── Responsivo ─────────────────────────────────────── */
@media (max-width:760px){
  .area-aluno{ --menu-mobile-altura:72px }
  .topo__botao{ display:block }
  .topo__nav{
    display:none; position:absolute; top:100%; left:-20px; right:-20px;
    flex-direction:column; align-items:stretch; gap:2px;
    background:var(--marinho-800); padding:12px 20px 18px;
    border-bottom:3px solid var(--laranja);
    box-shadow:0 10px 24px rgba(15,23,42,.3);
    z-index:210;
  }
  .topo__nav.aberto{ display:flex; animation:sobe .2s ease-out }
  .topo__nav a{ padding:12px 14px; font-size:.95rem }

  .folha{ padding:24px 16px 60px }
  .cartao,.questao{ padding:20px 18px }
  .cartao-simulado{ padding:18px 18px }

  .hero{ flex-direction:column; padding:26px 22px 0; text-align:center }
  .hero__texto{ padding-bottom:20px }
  .hero__foto{ width:130px; align-self:center }
  .hero::after{ display:none }

  .grafico-evolucao{ height:96px; gap:8px }
  .barra-pct{ font-size:.68rem }
  .stat-grid{ grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px }
  .stat-card{ padding:14px 16px }
  .stat-card__valor{ font-size:1.6rem }

  .barra-crono{ top:60px; padding:12px 16px }
  .cronometro{ font-size:1.35rem }
  .acoes{ gap:8px }
  .acoes .btn,.acoes button{ flex:1; min-width:130px }
}

@media (max-width:420px){
  .topo__interno{ height:58px; padding:0 16px }
  .topo__marca img{ height:39px }
  h1{ font-size:1.3rem }
  .tbl{ font-size:.85rem }
  .tbl td,.tbl th{ padding:10px 11px }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important; scroll-behavior:auto !important;
  }
}

@media print{
  .topo,.faixa,.pe,.acoes,.barra-crono{ display:none }
  body{ background:#fff }
  .cartao,.tbl{ box-shadow:none; border:1px solid #ddd }
}

/* ================================================================
   Sala de Questões — prática comentada
   ================================================================ */
.sr-only{ position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important }
.bq-hero{
  display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:28px; align-items:center;
  margin-bottom:18px; padding:34px 38px; overflow:hidden; color:#fff;
  background:radial-gradient(circle at 85% 10%,rgba(255,106,26,.28),transparent 28%),linear-gradient(135deg,#0c1130,#172b65);
  border-radius:26px; box-shadow:var(--sombra-alta);
}
.bq-hero h1{ margin:5px 0 10px; color:#fff; font-size:clamp(1.7rem,3vw,2.65rem) }
.bq-hero p{ max-width:760px; margin:0; color:#dce5ff; line-height:1.65 }
.bq-hero .microtitulo{ color:#ffad7f }
.bq-hero__marca{ display:grid; place-items:center; min-height:140px; text-align:center; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16); border-radius:22px }
.bq-hero__marca strong{ display:block; color:#fff; font:800 2.8rem/1 var(--display) }
.bq-hero__marca span{ display:block; max-width:130px; margin-top:7px; color:#dce5ff; font-size:.78rem; line-height:1.35 }
.bq-indicadores{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin:0 0 18px }
.bq-indicadores article{ position:relative; min-width:0; padding:18px 19px; overflow:hidden; background:#fff; border:1px solid var(--linha); border-radius:18px; box-shadow:var(--sombra) }
.bq-indicadores article:before{ content:""; position:absolute; inset:0 auto 0 0; width:4px; background:#244488 }
.bq-indicadores span,.bq-indicadores small{ display:block; color:var(--cinza) }
.bq-indicadores span{ margin-bottom:5px; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em }
.bq-indicadores strong{ display:block; color:var(--marinho); font:800 1.8rem/1.1 var(--display) }
.bq-indicadores small{ margin-top:5px; font-size:.67rem }
.bq-indicadores .bq-indicador--certo:before{ background:var(--certo) }
.bq-indicadores .bq-indicador--certo strong{ color:var(--certo) }
.bq-indicadores .bq-indicador--revisao:before{ background:var(--laranja) }
.bq-indicadores .bq-indicador--revisao strong{ color:var(--laranja-600) }
.bq-filtros{ display:grid; grid-template-columns:1.15fr 1.25fr 1fr auto; gap:10px; align-items:end; margin:18px 0 24px; padding:17px; background:#fff; border:1px solid var(--linha); border-radius:18px; box-shadow:var(--sombra) }
.bq-filtros label{ margin:0; color:var(--marinho); font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em }
.bq-filtros select{ min-width:0; margin-top:6px }
.bq-filtros .btn{ min-height:46px; margin:0; white-space:nowrap }
.bq-provas{ margin:30px 0 }
.bq-provas__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px }
.bq-provas__grid a{ display:flex; min-height:190px; padding:22px; flex-direction:column; color:var(--marinho); background:#fff; border:1px solid var(--linha); border-top:4px solid var(--laranja); border-radius:20px; box-shadow:var(--sombra); transition:.2s ease }
.bq-provas__grid a:hover{ color:var(--marinho); transform:translateY(-3px); box-shadow:var(--sombra-alta) }
.bq-provas__grid span{ color:var(--laranja-600); font-size:.63rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em }
.bq-provas__grid strong{ margin:15px 0 5px; font:800 1.2rem/1.25 var(--display) }
.bq-provas__grid small{ color:var(--cinza) }
.bq-provas__grid b{ margin-top:auto; color:var(--azul); font-size:.78rem }
.bq-questao{ position:relative; margin:24px 0; padding:30px; background:#fff; border:1px solid var(--linha); border-radius:24px; box-shadow:var(--sombra-alta) }
.bq-questao__cabecalho{ display:flex; justify-content:space-between; gap:18px; align-items:flex-start; padding-bottom:18px; border-bottom:1px solid var(--linha) }
.bq-questao__cabecalho span:first-child{ color:var(--laranja-600); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em }
.bq-questao__cabecalho h2{ margin:4px 0 0; font-size:1.05rem }
.bq-favorito-form{ position:absolute; right:30px; top:82px }
.bq-favorito{ display:flex; gap:6px; align-items:center; margin:0; padding:7px 11px; color:#7a8299; background:#fff; border:1px solid var(--linha); border-radius:999px; font-size:.72rem; box-shadow:none }
.bq-favorito:hover,.bq-favorito.ativo{ color:#a86900; background:#fff7df; border-color:#f4d98a; transform:none; box-shadow:none }
.bq-enunciado{ width:100%; max-width:none; margin:44px 0 20px; overflow-wrap:anywhere; word-break:normal; hyphens:auto; white-space:normal; color:var(--marinho); font-size:1.02rem; font-weight:600; line-height:1.75; text-wrap:pretty }
.bq-imagens{ display:flex; flex-wrap:wrap; gap:16px; justify-content:center; margin:18px auto 25px; padding:18px; background:#f6f8fc; border:1px solid var(--linha); border-radius:18px }
.bq-imagens img{ width:auto; max-width:min(100%,520px); max-height:460px; object-fit:contain }
.bq-resposta fieldset{ display:grid; gap:9px; margin:0; padding:0; border:0 }
.bq-alternativa{ display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:60px; margin:0; padding:10px 15px; color:var(--marinho); background:#f7f8fc; border:1px solid #dfe4ef; border-radius:15px; cursor:pointer; transition:.15s ease }
.bq-alternativa:hover{ border-color:#9aaad0; background:#f1f4fa }
.bq-alternativa input{ position:absolute; opacity:0; pointer-events:none }
.bq-alternativa strong{ display:grid; width:38px; height:38px; place-items:center; color:#fff; background:#2c4387; border-radius:11px; font:800 .9rem var(--display) }
.bq-alternativa span{ line-height:1.5 }
.bq-alternativa:has(input:checked){ background:#fff0e8; border-color:#ff9a62; box-shadow:0 0 0 2px rgba(255,106,26,.1) }
.bq-alternativa:has(input:checked) strong{ background:var(--laranja) }
.bq-acoes{ display:flex; flex-wrap:wrap; gap:9px; margin-top:20px }
.bq-acoes .btn{ margin:0 }
.bq-resultado{ display:flex; gap:13px; align-items:center; margin:28px 0 15px; padding:17px 19px; border-radius:17px }
.bq-resultado>span{ display:grid; width:42px; height:42px; flex:0 0 42px; place-items:center; color:#fff; border-radius:50%; font-size:1.4rem; font-weight:800 }
.bq-resultado strong{ display:block; margin-bottom:3px; font:800 1rem var(--display) }
.bq-resultado p{ margin:0 }
.bq-resultado--certo{ color:#075a37; background:var(--certo-fundo); border:1px solid #a9e3c9 }
.bq-resultado--certo>span{ background:var(--certo) }
.bq-resultado--erro{ color:#8b301d; background:#fff0eb; border:1px solid #ffc6b4 }
.bq-resultado--erro>span{ background:#c3452c }
.bq-alternativas-corrigidas{ display:grid; gap:8px }
.bq-alternativas-corrigidas .bq-alternativa{ cursor:default }
.bq-alternativa.correta{ color:#075a37; background:var(--certo-fundo); border-color:#8fd4b7 }
.bq-alternativa.correta strong{ background:var(--certo) }
.bq-alternativa.marcada-errada{ color:#8b301d; background:#fff0eb; border-color:#ffc6b4 }
.bq-alternativa.marcada-errada strong{ background:#c3452c }
.bq-alternativa b{ color:inherit; font-size:.62rem; text-transform:uppercase; letter-spacing:.06em }
.bq-comentarios{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:19px }
.bq-comentarios article{ padding:17px; background:#f7f8fc; border:1px solid var(--linha); border-radius:16px }
.bq-comentarios article>span{ display:block; margin-bottom:7px; color:var(--azul); font-size:.64rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em }
.bq-comentarios p{ margin:0; line-height:1.62 }
.bq-comentarios .bq-dica{ grid-column:1/-1; background:#fff7e7; border-color:#f2dca4 }
.bq-comentarios .bq-dica>span{ color:#a86900 }
.bq-admin-cabecalho{ display:flex; gap:20px; justify-content:space-between; align-items:end; margin-bottom:20px }
.bq-admin-cabecalho h1{ margin:3px 0 6px }
.bq-admin-cabecalho .btn{ flex:0 0 auto; margin:0 }
.bq-indicadores--admin{ margin-bottom:20px }
.bq-filtros--admin{ grid-template-columns:1fr 1fr .8fr auto auto }
.bq-admin-lista{ padding:0; overflow:hidden }
.bq-admin-lista .tbl{ min-width:980px }
.bq-admin-acoes{ display:flex; gap:8px; align-items:center; white-space:nowrap }
.bq-admin-acoes form,.bq-admin-acoes button{ margin:0 }

@media(max-width:900px){
  .bq-hero{ grid-template-columns:1fr; padding:28px }
  .bq-hero__marca{ display:flex; min-height:auto; gap:10px; justify-content:center; padding:16px }
  .bq-hero__marca strong{ font-size:2rem }.bq-hero__marca span{ max-width:none; margin:0; text-align:left }
  .bq-indicadores{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .bq-filtros,.bq-filtros--admin{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .bq-filtros .btn{ width:100% }
  .bq-provas__grid{ grid-template-columns:1fr }
}
@media(max-width:600px){
  .bq-hero{ margin-inline:-5px; padding:24px 21px; border-radius:21px }
  .bq-hero h1{ font-size:1.7rem }
  .bq-indicadores{ gap:7px }
  .bq-indicadores article{ padding:14px 12px; border-radius:14px }
  .bq-indicadores strong{ font-size:1.45rem }
  .bq-filtros,.bq-filtros--admin{ grid-template-columns:1fr; padding:14px }
  .bq-questao{ margin-inline:-5px; padding:20px 16px; border-radius:20px }
  .bq-questao__cabecalho{ display:block; padding-right:0 }
  .bq-questao__cabecalho .status-pilula{ display:inline-flex; margin-top:10px }
  .bq-favorito-form{ position:static; margin-top:12px }
  .bq-enunciado{ margin-top:24px; font-size:.94rem }
  .bq-alternativa{ grid-template-columns:38px minmax(0,1fr); padding:9px 11px }
  .bq-alternativa strong{ width:35px; height:35px }
  .bq-alternativa b{ grid-column:2 }
  .bq-comentarios{ grid-template-columns:1fr }
  .bq-comentarios .bq-dica{ grid-column:auto }
  .bq-acoes{ display:grid; grid-template-columns:1fr }
  .bq-acoes .btn{ width:100% }
  .bq-admin-cabecalho{ display:block }
  .bq-admin-cabecalho .btn{ width:100%; margin-top:12px }
}

/* ============================================================
   DASHBOARD DO ALUNO
   ============================================================ */

/* ─── Anel de progresso ──────────────────────────────── */
.painel-nota{
  display:grid; grid-template-columns:auto 1fr; gap:28px;
  align-items:center;
}
.anel{ position:relative; width:150px; height:150px; flex-shrink:0 }
.anel svg{ transform:rotate(-90deg); width:100%; height:100% }
.anel__trilho{ fill:none !important; stroke:var(--nuvem); stroke-width:13 }
.anel__arco{
  fill:none !important; stroke-width:13; stroke-linecap:round;
  transition:stroke-dashoffset 1.1s cubic-bezier(.4,0,.2,1);
}
.anel__centro{
  position:absolute; inset:0; display:flex;
  flex-direction:column; align-items:center; justify-content:center;
}
.anel__valor{
  font-family:var(--display); font-size:2.3rem; font-weight:800;
  line-height:1; letter-spacing:-.03em; color:var(--marinho);
}
.anel__unidade{ font-size:1rem; font-weight:700; color:var(--cinza) }
.anel__label{
  font-size:.68rem; text-transform:uppercase; letter-spacing:.1em;
  color:var(--cinza); margin-top:4px; font-weight:600;
}

.resumo__nivel{
  display:inline-block; font-family:var(--display); font-weight:800;
  font-size:1.35rem; letter-spacing:-.01em; margin-bottom:4px;
}
.resumo__frase{ font-size:.95rem; color:var(--grafite); line-height:1.6 }
.resumo__delta{
  display:inline-flex; align-items:center; gap:5px;
  font-size:.86rem; font-weight:700; font-family:var(--display);
  border-radius:999px; padding:4px 12px; margin-top:10px;
}
.resumo__delta--sobe{ background:var(--certo-fundo); color:var(--certo) }
.resumo__delta--desce{ background:var(--errado-fundo); color:var(--errado) }
.resumo__delta--igual{ background:var(--nuvem); color:var(--cinza) }

/* ─── Gráfico de linha ───────────────────────────────── */
.gr-linha{ width:100%; height:auto; display:block; overflow:visible }
.gr-linha .grade{ stroke:var(--linha); stroke-width:1; stroke-dasharray:3 4 }
.gr-linha .area{ fill:url(#degrade) }
.gr-linha .linha{
  fill:none; stroke:var(--laranja); stroke-width:2.5;
  stroke-linecap:round; stroke-linejoin:round;
}
.gr-linha .ponto{ fill:var(--branco); stroke:var(--laranja); stroke-width:2.5 }
.gr-linha .ponto-ult{ fill:var(--laranja); stroke:var(--branco); stroke-width:3 }
.gr-linha .rotulo-y{ font-size:10px; fill:var(--cinza); font-family:var(--corpo) }
.gr-linha .rotulo-x{ font-size:10px; fill:var(--cinza); font-family:var(--corpo); text-anchor:middle }
.gr-linha .valor{
  font-size:11px; font-weight:700; fill:var(--marinho);
  font-family:var(--display); text-anchor:middle;
}

/* ─── Barras por tema ────────────────────────────────── */
.tema-lista{ display:flex; flex-direction:column; gap:16px }
.tema-item__topo{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:10px; margin-bottom:6px;
}
.tema-item__nome{ font-weight:600; font-size:.94rem; color:var(--tinta) }
.tema-item__dado{
  font-family:var(--display); font-weight:800; font-size:.94rem;
  white-space:nowrap;
}
.tema-item__qtd{ font-size:.78rem; color:var(--cinza); font-weight:500; margin-left:6px }
.tema-trilho{
  height:9px; background:var(--nuvem); border-radius:99px; overflow:hidden;
}
.tema-barra{
  height:100%; border-radius:99px; width:var(--pct,0%);
  transition:width 1s cubic-bezier(.4,0,.2,1);
}

/* ─── Cartão de foco ─────────────────────────────────── */
.foco{
  background:linear-gradient(135deg,var(--alerta-fundo) 0%,#fff6e0 100%);
  border:1px solid rgba(194,112,11,.25); border-left:4px solid var(--alerta);
  border-radius:var(--raio); padding:20px 22px; margin-bottom:20px;
}
.foco__titulo{
  font-family:var(--display); font-weight:800; color:var(--alerta);
  font-size:.95rem; margin-bottom:8px;
}
.foco ul{ margin:0; padding-left:18px }
.foco li{ margin-bottom:4px; font-size:.93rem; color:var(--grafite) }
.foco li:last-child{ margin-bottom:0 }

/* ─── Estado vazio ───────────────────────────────────── */
.vazio-cartao{
  text-align:center; padding:44px 24px;
  background:var(--branco); border:2px dashed var(--linha);
  border-radius:var(--raio); margin-bottom:20px;
}
.vazio-cartao__icone{
  width:56px; height:56px; margin:0 auto 14px;
  border-radius:50%; background:var(--laranja-100);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
}
.vazio-cartao h3{ margin-bottom:6px }
.vazio-cartao p{ color:var(--cinza); font-size:.93rem; max-width:380px; margin:0 auto 4px }

@media (max-width:640px){
  .painel-nota{ grid-template-columns:1fr; gap:18px; text-align:center; justify-items:center }
  .anel{ width:132px; height:132px }
  .anel__valor{ font-size:2rem }
  .resumo__frase{ text-align:center }
}

/* ============================================================
   PAINEL 2026 — EXPERIÊNCIA RESPONSIVA DO ALUNO
   Identidade alinhada ao site profrodrigogondim.com.br
   ============================================================ */

.animar{
  opacity:0; transform:translateY(16px);
  transition:opacity .55s ease,transform .55s ease;
}
.animar.visivel{ opacity:1; transform:none }

/* ─── Hero do novo painel ────────────────────────────── */
.painel-hero{
  min-height:370px; margin-bottom:18px; border-radius:28px; overflow:hidden;
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);
  align-items:stretch; position:relative; color:#fff;
  background:
    radial-gradient(90% 110% at 86% 14%,rgba(242,104,30,.36),transparent 55%),
    linear-gradient(150deg,var(--marinho-800) 0%,var(--marinho) 68%);
  box-shadow:0 24px 65px rgba(12,17,48,.24);
}
.painel-hero::before{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.35;
  background-image:radial-gradient(rgba(255,255,255,.16) 1.2px,transparent 1.4px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(110deg,#000 18%,transparent 70%);
          mask-image:linear-gradient(110deg,#000 18%,transparent 70%);
}
.painel-hero__conteudo{
  padding:42px 0 42px 44px; position:relative; z-index:2;
  display:flex; flex-direction:column; justify-content:center;
}
.assinatura-gabarito{
  display:flex; align-items:center; gap:5px; margin-bottom:18px;
  font-family:var(--mono); font-size:.66rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.15em; color:var(--marinho-200);
}
.assinatura-gabarito span{ margin-right:9px }
.assinatura-gabarito i{
  width:9px; height:9px; border-radius:50%; border:1.5px solid rgba(255,255,255,.45);
}
.assinatura-gabarito i.marcada{ background:var(--laranja); border-color:var(--laranja) }
.painel-hero__turma{
  color:var(--dourado); font-family:var(--mono); font-size:.72rem;
  letter-spacing:.09em; text-transform:uppercase; font-weight:600; margin-bottom:8px;
}
.painel-hero h1{
  color:#fff; font-size:clamp(2rem,4.1vw,3.5rem); line-height:1.04;
  letter-spacing:-.045em; max-width:720px; margin:0 0 16px;
}
.painel-hero h1 em{ color:var(--laranja-100); font-style:normal; font-weight:700 }
.painel-hero__texto{ color:#d6dced; font-size:1rem; line-height:1.65; max-width:600px }
.painel-hero__acoes{ display:flex; gap:10px; flex-wrap:wrap; margin:9px 0 19px }
.painel-hero__acoes .btn{ margin:0 }
.btn--hero-linha{
  color:#fff; border:1.5px solid rgba(255,255,255,.34); background:rgba(255,255,255,.06);
  box-shadow:none;
}
.btn--hero-linha:hover{ color:#fff; border-color:#fff; background:rgba(255,255,255,.13) }
.painel-hero__selos{
  display:flex; flex-wrap:wrap; gap:8px 20px; color:var(--marinho-200);
  font-family:var(--mono); font-size:.68rem; letter-spacing:.035em;
}
.painel-hero__selos span{ display:flex; align-items:center; gap:7px }
.painel-hero__selos span::before{
  content:''; width:6px; height:6px; border-radius:50%; background:var(--dourado);
}
.painel-hero__visual{ position:relative; z-index:1; min-height:370px; align-self:stretch }
.painel-hero__visual img{
  position:absolute; right:16px; bottom:0; width:min(100%,350px); max-height:360px;
  object-fit:contain; object-position:bottom; filter:drop-shadow(0 22px 35px rgba(0,0,0,.38));
}
.painel-hero__orbita{
  position:absolute; width:330px; height:330px; border-radius:50%;
  right:5px; bottom:-74px; border:2px solid rgba(255,138,61,.48);
  box-shadow:0 0 0 28px rgba(242,104,30,.05),0 0 0 58px rgba(242,104,30,.025);
}

/* ─── Atalhos ────────────────────────────────────────── */
.atalhos-painel{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:34px }
.atalhos-painel a{
  min-width:0; display:flex; align-items:center; gap:12px; padding:15px 17px;
  background:#fff; color:var(--tinta); border:1px solid var(--linha);
  border-radius:16px; box-shadow:0 5px 18px rgba(12,17,48,.05);
  transition:transform var(--transicao),box-shadow var(--transicao),border-color var(--transicao);
}
.atalhos-painel a:hover{
  color:var(--tinta); border-color:rgba(242,104,30,.45);
  transform:translateY(-2px); box-shadow:var(--sombra);
}
.atalho-icone{
  width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center;
  border-radius:11px; color:var(--laranja); background:var(--laranja-100);
  font-family:var(--display); font-size:1.05rem; font-weight:800;
}
.atalhos-painel a:nth-child(2) .atalho-icone{ color:var(--azul); background:var(--azul-fundo) }
.atalhos-painel a:nth-child(3) .atalho-icone{ color:var(--certo); background:var(--certo-fundo) }
.atalhos-painel a>span:nth-child(2){ min-width:0; display:flex; flex-direction:column }
.atalhos-painel strong{ font-family:var(--display); font-size:.9rem; color:var(--marinho); line-height:1.25 }
.atalhos-painel small{ color:var(--cinza); font-size:.75rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.atalhos-painel b{ margin-left:auto; color:var(--cinza); font-weight:500 }

/* ─── Seções e desafios ──────────────────────────────── */
.secao-painel{ margin:0 0 34px }
.secao-painel__cabecalho,.grafico-card__cabecalho{
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px;
  margin-bottom:17px;
}
.secao-painel__cabecalho h2,.grafico-card__cabecalho h2{ margin:2px 0 0 }
.secao-painel__cabecalho>a,.link-seta{
  color:var(--marinho-600); font-size:.86rem; font-weight:700; white-space:nowrap;
}
.secao-painel__cabecalho>a:hover,.link-seta:hover{ color:var(--laranja) }
.secao-painel__apoio{ color:var(--cinza); font-size:.78rem }
.microtitulo{
  display:block; font-family:var(--mono); font-size:.65rem; font-weight:600;
  color:var(--laranja); text-transform:uppercase; letter-spacing:.14em;
}
.desafio-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px }

.desafio-card:hover{ transform:translateY(-3px); box-shadow:var(--sombra-alta) }

.status-pilula{
  display:inline-flex; border-radius:999px; padding:4px 9px; background:var(--laranja-100);
  color:var(--laranja-600); font-family:var(--mono); font-size:.61rem;
  font-weight:600; text-transform:uppercase; letter-spacing:.07em;
}
.status-pilula--feito{ background:var(--certo-fundo); color:var(--certo) }



.desafio-card__dados span{
  color:var(--cinza); font-size:.72rem; background:var(--papel);
  padding:4px 8px; border-radius:7px;
}
.desafio-card__dados strong{ color:var(--grafite) }

.desafio-card__acoes .btn{ margin:0 }
.estado-compacto{
  display:flex; align-items:center; gap:16px; padding:19px 22px;
  background:#fff; border:1px solid var(--linha); border-radius:18px; box-shadow:var(--sombra);
}
.estado-compacto__icone{
  width:42px; height:42px; border-radius:50%; display:grid; place-items:center;
  color:var(--certo); background:var(--certo-fundo); font-weight:800;
}
.estado-compacto div{ flex:1 }
.estado-compacto p{ color:var(--cinza); font-size:.84rem; margin:2px 0 0 }
.estado-compacto .btn{ margin:0 }

/* ─── Primeiro acesso ────────────────────────────────── */
.primeiro-passo{
  display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; align-items:center;
  background:#fff; border:1px solid var(--linha); border-radius:22px;
  padding:30px 32px; box-shadow:var(--sombra);
}
.primeiro-passo__texto h2{ margin:5px 0 9px }
.primeiro-passo__texto p{ color:var(--cinza); font-size:.92rem }
.passos-iniciais{ list-style:none; display:grid; gap:10px }
.passos-iniciais li{
  display:flex; align-items:center; gap:12px; padding:12px 14px;
  border:1px solid var(--linha); border-radius:14px; background:var(--papel);
}
.passos-iniciais li>span{
  width:30px; height:30px; border-radius:9px; display:grid; place-items:center;
  background:var(--marinho); color:#fff; font-family:var(--display); font-weight:800;
}
.passos-iniciais div{ display:flex; flex-direction:column }
.passos-iniciais strong{ color:var(--marinho); font-family:var(--display); font-size:.86rem }
.passos-iniciais small{ color:var(--cinza); font-size:.76rem }

/* ─── Indicadores ────────────────────────────────────── */
.indicadores-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px }
.indicador-card{
  min-width:0; background:#fff; border:1px solid var(--linha); border-radius:18px;
  padding:18px 18px 16px; box-shadow:0 8px 24px rgba(12,17,48,.06);
  position:relative; overflow:hidden;
  transition:transform var(--transicao),box-shadow var(--transicao);
}
.indicador-card:hover{ transform:translateY(-3px); box-shadow:var(--sombra-alta) }
.indicador-card::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--laranja);
}
.indicador-card--azul::before{ background:var(--azul) }
.indicador-card--verde::before{ background:var(--certo) }
.indicador-card--navy::before{ background:var(--marinho-600) }
.indicador-card__topo{ display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--cinza); font-size:.72rem; margin-bottom:13px }
.indicador-card__topo i{
  width:28px; height:28px; border-radius:9px; display:grid; place-items:center;
  font-family:var(--display); font-style:normal; font-weight:800;
  color:var(--laranja); background:var(--laranja-100);
}
.indicador-card--azul .indicador-card__topo i{ color:var(--azul); background:var(--azul-fundo) }
.indicador-card--verde .indicador-card__topo i{ color:var(--certo); background:var(--certo-fundo) }
.indicador-card--navy .indicador-card__topo i{ color:var(--marinho-600); background:var(--nuvem) }
.indicador-card>strong{
  display:block; color:var(--marinho); font-family:var(--display);
  font-size:clamp(1.65rem,3vw,2.25rem); line-height:1; letter-spacing:-.045em;
}
.indicador-card>strong small{ color:var(--cinza); font-size:.85rem; margin-left:2px }
.indicador-card p{ color:var(--cinza); font-size:.7rem; line-height:1.4; margin:9px 0 0 }

/* ─── Gráficos ───────────────────────────────────────── */
.graficos-grid{
  display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);
  gap:15px; margin-bottom:15px;
}
.grafico-card{
  min-width:0; background:#fff; border:1px solid var(--linha); border-radius:20px;
  padding:23px 24px; box-shadow:var(--sombra); margin-bottom:15px;
}
.graficos-grid .grafico-card{ margin-bottom:0 }
.delta-pilula{
  display:inline-flex; padding:5px 10px; border-radius:999px;
  font-family:var(--mono); font-size:.65rem; font-weight:600; white-space:nowrap;
}
.delta-pilula--sobe{ color:var(--certo); background:var(--certo-fundo) }
.delta-pilula--desce{ color:var(--errado); background:var(--errado-fundo) }
.delta-pilula--igual{ color:var(--cinza); background:var(--nuvem) }
.grafico-linha-moderno{ width:100%; height:auto; display:block; overflow:visible }
.grafico-linha-moderno .grade{ stroke:var(--linha); stroke-width:1; stroke-dasharray:3 5 }
.grafico-linha-moderno .eixo-y,.grafico-linha-moderno .eixo-x{
  fill:var(--cinza); font-family:var(--mono); font-size:9px;
}
.grafico-linha-moderno .eixo-x{ text-anchor:middle }
.grafico-linha-moderno .linha-meta{ stroke:rgba(15,138,83,.45); stroke-width:1.2; stroke-dasharray:5 5 }
.grafico-linha-moderno .texto-meta{ fill:var(--certo); font-family:var(--mono); font-size:9px }
.grafico-linha-moderno .area-evolucao{ fill:url(#area-evolucao); stroke:none }
.grafico-linha-moderno .linha-evolucao{
  fill:none; stroke:var(--laranja); stroke-width:3; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:1; stroke-dashoffset:1;
}
.visivel .grafico-linha-moderno .linha-evolucao{ animation:desenha-linha 1.25s ease .12s forwards }
@keyframes desenha-linha{ to{ stroke-dashoffset:0 } }
.grafico-linha-moderno .ponto-evolucao circle{
  fill:#fff; stroke:var(--laranja); stroke-width:2.8;
  filter:drop-shadow(0 2px 3px rgba(242,104,30,.22));
}
.grafico-linha-moderno .ponto-evolucao:last-of-type circle{ fill:var(--laranja); stroke:#fff; stroke-width:3 }
.grafico-linha-moderno .valor-ponto{
  fill:var(--marinho); font-family:var(--display); font-size:10px; font-weight:700; text-anchor:middle;
}
.grafico-vazio{
  min-height:210px; display:grid; place-items:center; text-align:center;
  color:var(--cinza); font-size:.86rem; background:var(--papel); border-radius:14px;
}
.donut-bloco{ display:flex; flex-direction:column; align-items:center; gap:21px; padding:5px 0 2px }
.donut{
  width:172px; height:172px; border-radius:50%; position:relative;
  display:grid; place-items:center;
  background:conic-gradient(var(--cor) calc(var(--valor) * 1%),var(--nuvem) 0);
  box-shadow:inset 0 0 0 1px rgba(12,17,48,.04);
}
.donut::after{ content:''; position:absolute; inset:18px; border-radius:50%; background:#fff; box-shadow:0 6px 20px rgba(12,17,48,.07) }
.donut>div{ position:relative; z-index:1; text-align:center; display:flex; flex-direction:column }
.donut strong{ color:var(--marinho); font-family:var(--display); font-size:2rem; line-height:1 }
.donut span{ color:var(--cinza); font-size:.7rem; margin-top:4px }
.donut-legenda{ width:100%; display:grid; gap:8px }
.donut-legenda>div{ display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:center; font-size:.76rem }
.donut-legenda span{ color:var(--cinza) }
.donut-legenda strong{ color:var(--grafite); font-family:var(--display); font-size:.78rem }
.legenda-cor{ width:8px; height:8px; border-radius:50%; background:var(--certo) }
.legenda-cor--erro{ background:var(--nuvem); border:1px solid var(--linha) }
.legenda-cor--tempo{ background:var(--laranja) }

/* Barras por tema */
.grafico-card--temas{ padding-bottom:26px }
.legenda-faixas{ display:flex; gap:12px; align-items:center; color:var(--cinza); font-size:.68rem }
.legenda-faixas span{ display:flex; align-items:center; gap:5px }
.legenda-faixas i{ width:7px; height:7px; border-radius:50% }
.faixa-verde{ background:var(--certo) }.faixa-laranja{ background:var(--laranja) }
.barras-temas{ display:grid; gap:17px }
.barra-tema__topo{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:7px }
.barra-tema__topo>span{ color:var(--grafite); font-size:.84rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.barra-tema__topo strong{ font-family:var(--display); font-size:.83rem; white-space:nowrap }
.barra-tema__topo small{ color:var(--cinza); font-family:var(--corpo); font-size:.68rem; font-weight:500; margin-left:5px }
.barra-tema__trilho{ height:10px; overflow:hidden; border-radius:999px; background:var(--nuvem); position:relative }
.barra-tema__trilho::after{
  content:''; position:absolute; left:80%; top:0; bottom:0; border-left:1px dashed rgba(12,17,48,.28);
}
.barra-tema__trilho i{
  display:block; width:0; height:100%; border-radius:999px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--cor) 72%,#fff),var(--cor));
  transition:width 1s cubic-bezier(.2,.8,.2,1);
}
.visivel .barra-tema__trilho i{ width:var(--largura) }

/* ─── Insights ───────────────────────────────────────── */
.insights-grid{ display:grid; grid-template-columns:1fr 1fr; gap:15px; margin:15px 0 }
.insight-card{
  background:#fff; border:1px solid var(--linha); border-radius:20px;
  padding:24px; box-shadow:var(--sombra); position:relative; overflow:hidden;
}
.insight-card h2{ margin:4px 0 16px }
.insight-card--foco{ background:linear-gradient(145deg,#fff 0%,#fff9f3 100%) }
.insight-card--foco::after{
  content:''; position:absolute; width:100px; height:100px; border-radius:50%;
  right:-45px; top:-45px; background:rgba(242,104,30,.11);
}
.insight-destaque{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:13px 15px; border-radius:13px; background:var(--laranja-100); margin-bottom:12px;
}
.insight-destaque strong{ color:var(--marinho); font-size:.88rem }
.insight-destaque span{ color:var(--laranja-600); font-family:var(--mono); font-size:.7rem; white-space:nowrap }
.lista-foco{ list-style:none; display:grid; gap:0; margin:0 0 14px }
.lista-foco li{ display:flex; justify-content:space-between; gap:12px; padding:9px 2px; border-bottom:1px solid var(--linha); font-size:.79rem }
.lista-foco li span{ color:var(--grafite) }.lista-foco li strong{ color:var(--alerta) }
.insight-texto{ color:var(--cinza); font-size:.84rem; margin-bottom:17px }
.trilha-resumo{ display:flex; gap:17px; align-items:center; margin:4px 0 20px }
.mini-anel{
  --cor:var(--laranja); width:94px; height:94px; flex:0 0 94px; border-radius:50%;
  display:grid; place-items:center; position:relative;
  background:conic-gradient(var(--cor) calc(var(--valor) * 1%),var(--nuvem) 0);
}
.mini-anel::after{ content:''; position:absolute; inset:10px; border-radius:50%; background:#fff }
.mini-anel strong{ position:relative; z-index:1; color:var(--marinho); font-family:var(--display); font-size:1.2rem }
.trilha-resumo>div:last-child>strong{ color:var(--marinho); font-family:var(--display); font-size:.88rem }
.trilha-resumo p{ color:var(--cinza); font-size:.76rem; line-height:1.5; margin:5px 0 0 }
.insight-card .btn{ margin:0 }
.rodape-painel{
  display:flex; align-items:center; gap:28px; padding:18px 20px; margin-top:15px;
  background:#fff; border:1px solid var(--linha); border-radius:18px; box-shadow:var(--sombra);
}
.rodape-painel>div{ display:flex; flex-direction:column; min-width:100px }
.rodape-painel>div span{ color:var(--cinza); font-size:.68rem }
.rodape-painel>div strong{ color:var(--marinho); font-family:var(--display); font-size:.9rem }
.rodape-painel .btn{ margin:0 0 0 auto }

/* ─── Rodapé geral renovado ──────────────────────────── */
.pe__interno{
  width:min(100% - 40px,1160px); margin:0 auto; display:flex;
  align-items:center; justify-content:center; gap:8px 20px; flex-wrap:wrap;
}

/* ─── Tablet ─────────────────────────────────────────── */
@media (max-width:980px){
  .painel-hero{ grid-template-columns:minmax(0,1fr) 280px }
  .painel-hero__conteudo{ padding-left:32px }
  .painel-hero__visual img{ right:-8px; width:300px }
  .desafio-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .indicadores-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .graficos-grid{ grid-template-columns:1fr }
  .donut-bloco{ flex-direction:row; justify-content:center }
  .donut-legenda{ max-width:250px }
}

/* ─── Celular: navegação fixa e componentes compactos ─ */
@media (max-width:760px){
  .faixa__interno{ justify-content:center; width:calc(100% - 28px); padding:5px 0 }
  .faixa__interno strong{ display:none }
  .topo__interno{ height:62px; padding:0 16px; gap:8px }
  .topo__marca img{ height:39px; max-width:230px }
  .area-aluno .topo__marca img{ height:33px; max-width:150px }
  .area-aluno .topo__acoes-usuario{ gap:4px }

  /* Aluno: menu inferior, sempre visível e confortável para o polegar. */
  .area-aluno .topo__botao{ display:none }
  .area-aluno .topo__nav--aluno{
    display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:2px;
    position:fixed; z-index:500; left:6px; right:6px; bottom:8px; top:auto;
    min-height:var(--menu-mobile-altura); padding:6px max(3px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96); border:1px solid rgba(226,230,240,.95);
    border-radius:18px; box-shadow:0 14px 38px rgba(12,17,48,.22);
    -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  }
  .area-aluno .topo__nav--aluno a{
    min-width:0; min-height:58px; padding:7px 1px 6px; border-radius:12px;
    flex-direction:column; justify-content:center; gap:3px;
    font-size:.58rem; font-weight:750; line-height:1.1; text-align:center;
  }
  .area-aluno .topo__nav--aluno a>span[data-curto]{width:100%;overflow:hidden;font-size:0;white-space:nowrap;text-overflow:ellipsis}
  .area-aluno .topo__nav--aluno a>span[data-curto]::after{content:attr(data-curto);font-size:.58rem}
  .area-aluno .topo__nav--aluno .nav-icone{ width:19px; height:19px }
  .area-aluno .topo__nav--aluno a.ativo{ color:var(--laranja); background:var(--laranja-100) }
  /* Sair fica fora da barra inferior: acao destrutiva nao mora na faixa do
     polegar, encostada num item de uso diario. Ele volta para o topo,
     ao lado do sino de notificacoes. */
  .area-aluno .topo__nav--aluno a.sair,
  .area-aluno .topo__nav--aluno a[href$="perfil.php"]{ display:none }
  .area-aluno .topo__perfil-mobile{
    display:grid; place-items:center; width:39px; height:39px;
    color:var(--marinho-600); background:var(--papel);
    border:1px solid var(--linha); border-radius:12px;
  }
  .area-aluno .topo__perfil-mobile.ativo{ color:var(--laranja); background:var(--laranja-100); border-color:rgba(242,104,30,.28) }
  .area-aluno .topo__perfil-mobile .nav-icone{ width:19px; height:19px }
  .area-aluno .topo__saida-mobile{
    display:grid; place-items:center; width:39px; height:39px;
    color:var(--errado); background:var(--errado-fundo);
    border:1px solid rgba(197,34,42,.18); border-radius:12px;
  }
  .area-aluno .topo__saida-mobile span{ display:none }
  .area-aluno .topo__saida-mobile .nav-icone{ width:19px; height:19px }
  .area-aluno .folha{ padding-bottom:108px }
  .area-aluno .pe{ padding-bottom:100px }

  /* Professor continua com menu expansível. */
  .area-professor .topo__nav{
    background:#fff; border-bottom:2px solid var(--laranja);
  }
  .area-professor .topo__nav a{ color:var(--marinho-700) }

  .folha{ padding:20px 14px 70px }
  .painel-hero{ display:block; min-height:0; border-radius:22px; margin-bottom:14px }
  .painel-hero__conteudo{ padding:28px 22px 26px }
  .painel-hero h1{ font-size:clamp(1.75rem,8vw,2.35rem) }
  .painel-hero__texto{ font-size:.91rem; max-width:none }
  .painel-hero__visual{ display:none }
  .painel-hero__acoes{ flex-direction:column; align-items:stretch }
  .painel-hero__acoes .btn{ width:100% }
  .painel-hero__selos{ display:grid; gap:7px }

  .atalhos-painel{
    display:flex; gap:10px; overflow-x:auto; margin:0 -14px 28px; padding:0 14px 5px;
    scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  .atalhos-painel::-webkit-scrollbar{ display:none }
  .atalhos-painel a{ min-width:238px; scroll-snap-align:start }
  .secao-painel{ margin-bottom:28px }
  .secao-painel__cabecalho,.grafico-card__cabecalho{ align-items:center }
  .secao-painel__apoio{ display:none }
  .desafio-grid{
    display:flex; overflow-x:auto; gap:11px; margin:0 -14px; padding:0 14px 6px;
    scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  .desafio-grid::-webkit-scrollbar{ display:none }
  
  .estado-compacto{ align-items:flex-start; flex-wrap:wrap; padding:17px }
  .estado-compacto .btn{ width:100% }
  .primeiro-passo{ grid-template-columns:1fr; padding:23px 20px; gap:20px }
  .indicadores-grid{ gap:9px }
  .indicador-card{ padding:15px 14px 14px }
  .indicador-card__topo span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .indicador-card>strong{ font-size:1.65rem }
  .grafico-card{ padding:19px 16px; border-radius:18px }
  .grafico-linha-moderno{ margin:0 -5px; width:calc(100% + 10px) }
  .donut-bloco{ flex-direction:column }
  .donut{ width:154px; height:154px }
  .insights-grid{ grid-template-columns:1fr }
  .rodape-painel{ align-items:flex-start; flex-wrap:wrap; gap:14px }
  .rodape-painel .btn{ width:100%; margin:0 }
  .pe__interno{ flex-direction:column; gap:4px }
}

@media (max-width:480px){
  .assinatura-gabarito{ font-size:.58rem }
  .assinatura-gabarito i{ width:8px; height:8px }
  .painel-hero__turma{ font-size:.63rem }
  .indicadores-grid{ grid-template-columns:1fr 1fr }
  .indicador-card__topo i{ display:none }
  .indicador-card p{ min-height:2em }
  .secao-painel__cabecalho>a{ font-size:.76rem }
  .legenda-faixas{ display:none }
  .barra-tema__topo>span{ max-width:68% }
  .trilha-resumo{ align-items:flex-start }
  .mini-anel{ width:80px; height:80px; flex-basis:80px }
  .acoes .btn,.acoes button{ min-width:0 }
}

@supports not (background:color-mix(in srgb,#000,#fff)){
  .barra-tema__trilho i{ background:var(--cor) }
}

/* ============================================================
   DESTAQUE DA SALA VERBENA E BANCO RESPONSIVO — v1
   ============================================================ */
.destaque-sala-verbena{
  position:relative; isolation:isolate; overflow:hidden;
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:20px;
  margin:0 0 16px; padding:22px 24px; color:#fff;
  background:
    radial-gradient(circle at 88% 15%,rgba(242,104,30,.48),transparent 34%),
    linear-gradient(135deg,var(--marinho-800),#1a3676);
  border:1px solid rgba(255,255,255,.14); border-radius:22px; box-shadow:var(--sombra-alta);
  transition:transform var(--transicao),box-shadow var(--transicao);
}
.destaque-sala-verbena::after{
  content:''; position:absolute; z-index:-1; right:-42px; bottom:-92px; width:210px; height:210px;
  border:1px solid rgba(255,255,255,.14); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.035);
}
.destaque-sala-verbena:hover{ color:#fff; transform:translateY(-3px); box-shadow:0 22px 50px rgba(12,17,48,.22) }
.destaque-sala-verbena__icone{
  width:64px; height:64px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(145deg,var(--laranja),#ff8b47); border-radius:19px;
  box-shadow:0 10px 25px rgba(242,104,30,.35);
}
.destaque-sala-verbena__icone .nav-icone{ width:31px; height:31px }
.destaque-sala-verbena__conteudo{ min-width:0; display:flex; flex-direction:column }
.destaque-sala-verbena__conteudo small{
  margin-bottom:3px; color:#ffbd98; font:600 .61rem var(--mono); letter-spacing:.13em; text-transform:uppercase;
}
.destaque-sala-verbena__conteudo strong{ color:#fff; font:800 1.22rem/1.25 var(--display) }
.destaque-sala-verbena__conteudo>span{ max-width:760px; margin-top:5px; color:#dce5ff; font-size:.79rem; line-height:1.5 }
.destaque-sala-verbena__acao{
  display:inline-flex; align-items:center; gap:9px; padding:10px 15px; color:var(--marinho);
  background:#fff; border-radius:999px; font-size:.72rem; font-weight:800; white-space:nowrap;
}
.destaque-sala-verbena__acao b{ color:var(--laranja); font-size:1rem }

/* Evita que o cabeçalho herde largura mínima da tabela no celular. */
.area-professor .bq-admin-cabecalho{
  width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:end; gap:20px;
}
.area-professor .bq-admin-cabecalho>div{ min-width:0; width:100% }
.area-professor .bq-admin-cabecalho h1{ max-width:100%; word-break:normal; overflow-wrap:normal }
.area-professor .bq-admin-cabecalho p{ max-width:760px; word-break:normal; overflow-wrap:break-word }
.area-professor .bq-admin-cabecalho>.btn{ width:auto; max-width:100%; justify-self:end }
.area-professor .bq-admin-lista,.area-professor .bq-admin-lista .tabela-rolagem{ width:100%; min-width:0 }

@media(max-width:700px){
  .destaque-sala-verbena{ grid-template-columns:auto minmax(0,1fr); gap:15px; padding:19px 17px; border-radius:19px }
  .destaque-sala-verbena__icone{ width:52px; height:52px; border-radius:15px }
  .destaque-sala-verbena__icone .nav-icone{ width:26px; height:26px }
  .destaque-sala-verbena__conteudo strong{ font-size:1.04rem }
  .destaque-sala-verbena__conteudo>span{ font-size:.72rem }
  .destaque-sala-verbena__acao{ grid-column:2; justify-self:start; padding:8px 12px }

  .area-professor .bq-admin-cabecalho{
    display:grid!important; grid-template-columns:minmax(0,1fr)!important; align-items:start!important;
    gap:14px!important; width:100%!important; min-width:0!important; margin-bottom:18px;
  }
  .area-professor .bq-admin-cabecalho>div,
  .area-professor .bq-admin-cabecalho h1,
  .area-professor .bq-admin-cabecalho p{ width:100%!important; min-width:0!important; max-width:none!important }
  .area-professor .bq-admin-cabecalho h1{ font-size:1.65rem; line-height:1.12; white-space:normal!important; word-break:keep-all!important; overflow-wrap:normal!important }
  .area-professor .bq-admin-cabecalho p{ font-size:.8rem; line-height:1.55; white-space:normal!important; word-break:normal!important; overflow-wrap:break-word!important }
  .area-professor .bq-admin-cabecalho>.btn{ width:100%!important; justify-self:stretch!important; margin:0!important }
  .area-professor .bq-indicadores--admin{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .area-professor .bq-filtros--admin{ grid-template-columns:minmax(0,1fr)!important; width:100%; min-width:0 }
  .area-professor .bq-filtros--admin label,.area-professor .bq-filtros--admin select{ width:100%; min-width:0 }

  .area-professor .bq-admin-lista{ padding:0; overflow:visible; background:transparent; border:0; box-shadow:none }
  .area-professor .bq-admin-lista .tabela-rolagem{ overflow:visible }
  .area-professor .bq-admin-lista .tbl{ display:block; min-width:0!important; width:100%; background:transparent; box-shadow:none }
  .area-professor .bq-admin-lista thead{ display:none }
  .area-professor .bq-admin-lista tbody{ display:grid; gap:11px; width:100% }
  .area-professor .bq-admin-lista tr{ display:block; width:100%; padding:13px 14px; background:#fff; border:1px solid var(--linha); border-radius:16px; box-shadow:var(--sombra) }
  .area-professor .bq-admin-lista td{
    display:grid; grid-template-columns:82px minmax(0,1fr); align-items:start; gap:12px;
    width:100%; padding:8px 0; text-align:right; white-space:normal; word-break:normal; overflow-wrap:anywhere;
    border-bottom:1px solid var(--linha);
  }
  .area-professor .bq-admin-lista td:last-child{ border-bottom:0 }
  .area-professor .bq-admin-lista td::before{
    content:attr(data-label); color:var(--cinza); font:700 .58rem var(--mono); letter-spacing:.06em;
    text-align:left; text-transform:uppercase;
  }
  .area-professor .bq-admin-lista td:first-child strong{ display:block; line-height:1.35 }
  .area-professor .bq-admin-lista td:first-child .apoio{ display:block; margin-top:4px; line-height:1.45 }
  .area-professor .bq-admin-acoes{ justify-content:flex-end; flex-wrap:wrap; white-space:normal }
}

@media(max-width:390px){
  .destaque-sala-verbena{ grid-template-columns:1fr }
  .destaque-sala-verbena__icone{ width:48px; height:48px }
  .destaque-sala-verbena__acao{ grid-column:1 }
  .area-professor .bq-indicadores--admin{ grid-template-columns:1fr }
  .area-professor .bq-admin-lista td{ grid-template-columns:72px minmax(0,1fr); gap:8px }
}

/* ============================================================
   MÓDULOS DE APRENDIZAGEM E ENGAJAMENTO
   ============================================================ */

.topo__acoes-usuario{ display:flex; align-items:center; gap:7px; flex-shrink:0 }
.topo__notificacao{
  width:39px; height:39px; display:grid; place-items:center; position:relative;
  color:var(--marinho-700); background:var(--papel); border:1px solid var(--linha); border-radius:12px;
}
.topo__notificacao:hover{ color:var(--laranja); background:var(--laranja-100) }
.topo__notificacao.ativo{ color:var(--laranja); background:var(--laranja-100); border-color:rgba(242,104,30,.25) }
.topo__notificacao .nav-icone{ width:19px; height:19px }
.topo__notificacao>span{
  position:absolute; right:-5px; top:-6px; min-width:19px; height:19px; padding:0 5px;
  display:grid; place-items:center; border-radius:999px; color:#fff; background:var(--errado);
  border:2px solid #fff; font:600 .55rem/1 var(--mono);
}
.area-professor .topo__interno{ height:auto; min-height:72px }
.area-professor .topo__nav--professor{ flex-wrap:wrap; justify-content:flex-end; padding:7px 0 }
.area-professor .topo__nav--professor a{ padding:7px 8px; font-size:.76rem }

/* Cabeçalhos e navegação interna */
.hub-hero,.progresso-hero,.ranking-hero,.certificados-hero{
  display:flex; justify-content:space-between; align-items:center; gap:30px;
  padding:34px 38px; margin-bottom:16px; overflow:hidden; position:relative;
  color:#fff; border-radius:24px; background:
  radial-gradient(circle at 88% 15%,rgba(242,104,30,.40),transparent 36%),
  linear-gradient(145deg,var(--marinho-800),var(--marinho)); box-shadow:var(--sombra-alta);
}
.hub-hero::after,.progresso-hero::after,.ranking-hero::after,.certificados-hero::after{
  content:''; position:absolute; right:-55px; bottom:-80px; width:220px; height:220px;
  border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 30px rgba(255,255,255,.035);
}
.hub-hero>div,.progresso-hero>div,.ranking-hero>div,.certificados-hero>div{ position:relative; z-index:1 }
.hub-hero h1,.progresso-hero h1,.ranking-hero h1,.certificados-hero h1{ color:#fff; max-width:710px }
.hub-hero p,.progresso-hero p,.ranking-hero p,.certificados-hero p{ color:#d9deed; max-width:680px }
.hub-hero__acoes{ display:flex; gap:9px; flex-wrap:wrap; margin-top:18px }
.hub-hero__acoes .btn{ margin:0 }
.hub-progresso{ display:flex; flex-direction:column; align-items:center; text-align:center; min-width:170px }
.hub-progresso>span{ color:#e7eaf4; font-size:.76rem; margin-top:9px }
.mini-anel--escuro::after{ background:var(--marinho-800) }
.mini-anel--escuro strong{ color:#fff }
.subnav-modulos{
  display:flex; align-items:center; gap:5px; overflow-x:auto; padding:5px; margin:0 0 22px;
  background:#fff; border:1px solid var(--linha); border-radius:15px; box-shadow:var(--sombra); scrollbar-width:none;
}
.subnav-modulos::-webkit-scrollbar{ display:none }
.subnav-modulos a{ padding:9px 16px; color:var(--cinza); font-size:.8rem; font-weight:700; white-space:nowrap; border-radius:10px }
.subnav-modulos a:hover,.subnav-modulos a.ativo{ color:var(--laranja-600); background:var(--laranja-100) }
.pagina-cabecalho{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px }
.pagina-cabecalho p{ color:var(--cinza) }
.contador-novas{ color:#fff; background:var(--laranja); border-radius:999px; padding:6px 12px; font-size:.72rem; font-weight:700; white-space:nowrap }

/* Biblioteca */
.resumo-faixa{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:15px }
.resumo-faixa>div{ display:flex; align-items:baseline; gap:7px; padding:13px 17px; background:#fff; border:1px solid var(--linha); border-radius:14px }
.resumo-faixa strong{ color:var(--marinho); font:800 1.25rem var(--display) }
.resumo-faixa span{ color:var(--cinza); font-size:.74rem }
.filtros-modernos{ display:flex; gap:9px; align-items:center; margin:20px 0 11px }
.filtros-modernos .btn{ margin:0 }
.busca-moderna{ flex:1; display:flex; gap:9px; align-items:center; background:#fff; border:1.5px solid var(--linha); border-radius:999px; padding:0 15px }
.busca-moderna:focus-within{ border-color:var(--laranja); box-shadow:0 0 0 4px rgba(242,104,30,.10) }
.busca-moderna span{ color:var(--cinza); font-size:1.2rem }
.busca-moderna input{ flex:1; min-width:0; border:0!important; box-shadow:none!important; background:transparent; padding:10px 0 }
.chips-filtro{ display:flex; gap:7px; overflow-x:auto; padding:2px 0 15px; scrollbar-width:none }
.chips-filtro a{ flex:0 0 auto; color:var(--cinza); background:#fff; border:1px solid var(--linha); border-radius:999px; padding:6px 12px; font-size:.72rem; font-weight:700 }
.chips-filtro a.ativo,.chips-filtro a:hover{ color:#fff; background:var(--marinho-800); border-color:var(--marinho-800) }
.materiais-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px }
.material-card{ min-width:0; display:flex; flex-direction:column; padding:20px; background:#fff; border:1px solid var(--linha); border-radius:18px; box-shadow:var(--sombra); transition:transform var(--transicao),box-shadow var(--transicao) }
.material-card:hover{ transform:translateY(-3px); box-shadow:var(--sombra-alta) }
.material-card--concluido{ border-color:rgba(15,138,83,.25); background:linear-gradient(145deg,#fff,#f7fffa) }
.material-card__cabecalho{ min-height:38px; display:flex; align-items:center; gap:7px; margin-bottom:14px }
.material-card__cabecalho .status-pilula:first-of-type{ margin-left:auto }
.material-tipo{ width:38px; height:38px; display:grid; place-items:center; color:var(--laranja); background:var(--laranja-100); border-radius:11px; font:800 .67rem var(--mono) }
.material-tipo--video,.material-tipo--aula{ color:#fff; background:var(--laranja) }
.material-tipo--mapa{ color:var(--marinho-600); background:var(--azul-fundo) }
.material-card__categoria{ color:var(--laranja-600); font:600 .62rem var(--mono); text-transform:uppercase; letter-spacing:.06em }
.material-card h2{ margin:6px 0 7px; font-size:1.02rem }
.material-card p{ color:var(--cinza); font-size:.78rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden }
.material-card__rodape{ margin-top:auto; padding-top:16px; display:flex; justify-content:space-between; align-items:center; gap:10px; border-top:1px solid var(--linha) }
.material-card__rodape>span{ color:var(--cinza); font-size:.64rem }
.material-card__rodape a{ font-size:.73rem; white-space:nowrap }

/* Leitor de material */
.migalhas{ display:flex; align-items:center; gap:8px; color:var(--cinza); font-size:.72rem; margin-bottom:18px }
.migalhas a{ color:var(--laranja-600); font-weight:700 }
.aula-cabecalho,.trilha-detalhe-cabecalho{ display:flex; align-items:flex-start; justify-content:space-between; gap:28px; padding:26px; margin-bottom:14px; background:#fff; border:1px solid var(--linha); border-radius:20px; box-shadow:var(--sombra) }
.aula-cabecalho>div:first-child,.trilha-detalhe-cabecalho>div:first-child{ flex:1 }
.aula-cabecalho p,.trilha-detalhe-cabecalho p{ color:var(--cinza) }
.aula-cabecalho form,.aula-cabecalho .btn{ flex:0 0 auto; margin:0 }
.aula-metadados{ display:flex; flex-wrap:wrap; gap:8px; margin-top:13px }
.aula-metadados span{ color:var(--cinza); background:var(--papel); border-radius:999px; padding:5px 9px; font-size:.66rem }
.texto-certo{ color:var(--certo)!important; background:var(--certo-fundo)!important }
.player-video{ aspect-ratio:16/9; overflow:hidden; margin-bottom:18px; background:#000; border-radius:21px; box-shadow:var(--sombra-alta) }
.player-video iframe{ width:100%; height:100%; display:block; border:0 }
.abrir-material{ display:flex; align-items:center; gap:18px; padding:25px; margin-bottom:18px; background:#fff; border:1px solid var(--linha); border-radius:19px; box-shadow:var(--sombra) }
.abrir-material__icone{ width:64px; height:64px; flex:0 0 64px; display:grid; place-items:center; color:#fff; background:var(--laranja); border-radius:17px; font:800 .75rem var(--mono) }
.abrir-material>div:nth-child(2){ flex:1 }.abrir-material h2{ margin:0 0 4px }.abrir-material p{ color:var(--cinza); font-size:.8rem }.abrir-material .btn{ margin:0 }
.material-relacionados{ margin-top:26px }
.lista-relacionados{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px }
.lista-relacionados a{ display:grid; grid-template-columns:1fr auto; gap:4px 12px; padding:14px; color:var(--marinho); background:#fff; border:1px solid var(--linha); border-radius:13px }
.lista-relacionados span{ grid-column:1; color:var(--laranja); font-size:.61rem; text-transform:uppercase }.lista-relacionados strong{ font-size:.78rem }.lista-relacionados b{ grid-row:1/3; grid-column:2; align-self:center }

/* Trilhas */
.recomendacao-personalizada{ padding:24px; margin-bottom:25px; color:#fff; background:linear-gradient(135deg,var(--marinho-600),var(--marinho-800)); border-radius:20px; box-shadow:var(--sombra) }
.recomendacao-personalizada__cabecalho{ display:flex; align-items:flex-start; gap:14px; margin-bottom:15px }.recomendacao-personalizada h2{ color:#fff;margin:0 0 3px }.recomendacao-personalizada p{ color:#dbe0ef;font-size:.78rem }
.selo-ia{ color:var(--marinho); background:var(--dourado); border-radius:999px; padding:5px 9px; font:700 .58rem var(--mono); text-transform:uppercase }
.recomendacao-lista{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px }.recomendacao-lista a{ display:flex; flex-direction:column; min-width:0; padding:13px; color:#fff; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.12); border-radius:12px }.recomendacao-lista span{ color:var(--dourado);font-size:.6rem }.recomendacao-lista strong{ font-size:.75rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }.recomendacao-lista b{ color:#fff;font-size:.65rem;margin-top:8px }
.trilhas-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px }.trilha-card{ padding:22px; background:#fff; border:1px solid var(--linha); border-radius:19px; box-shadow:var(--sombra) }.trilha-card--personalizada{ border-top:3px solid var(--laranja) }.trilha-card__topo{ display:flex; justify-content:space-between; gap:12px; color:var(--laranja); font:600 .62rem var(--mono); text-transform:uppercase }.trilha-card__topo small{ color:var(--cinza) }.trilha-card h3{ margin:10px 0 6px }.trilha-card p{ color:var(--cinza);font-size:.78rem }.trilha-progresso{ display:grid; grid-template-columns:1fr auto; align-items:center; gap:9px; margin:16px 0 }.trilha-progresso>div{ height:8px; overflow:hidden; background:var(--nuvem); border-radius:99px }.trilha-progresso i{ display:block;height:100%;background:linear-gradient(90deg,var(--laranja),var(--dourado));border-radius:99px }.trilha-progresso span{ font:700 .7rem var(--mono);color:var(--marinho) }.trilha-card__rodape{ display:flex;align-items:center;justify-content:space-between;gap:12px }.trilha-card__rodape>span{ color:var(--cinza);font-size:.65rem }.trilha-card__rodape .btn{ margin:0 }
.trilha-detalhe-progresso{ display:flex; flex-direction:column; align-items:center; min-width:100px }.trilha-detalhe-progresso>span{ color:var(--cinza);font-size:.66rem;margin-top:5px }.prazo-trilha{ display:inline-flex; margin-bottom:14px; color:var(--cinza); background:var(--alerta-fundo); border-radius:999px; padding:6px 12px; font-size:.72rem }
.etapas-trilha{ list-style:none; display:grid; gap:10px; margin:0 }.etapa-trilha{ display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:18px 20px; background:#fff; border:1px solid var(--linha); border-radius:16px; box-shadow:var(--sombra) }.etapa-trilha--feita{ background:linear-gradient(135deg,#fff,#f7fffa);border-color:rgba(15,138,83,.22) }.etapa-trilha__numero{ width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--marinho-600);font:800 .8rem var(--display) }.etapa-trilha--feita .etapa-trilha__numero{ background:var(--certo) }.etapa-trilha__conteudo>span{ color:var(--laranja);font-size:.6rem;text-transform:uppercase }.etapa-trilha__conteudo h2{ font-size:.92rem;margin:2px 0 }.etapa-trilha__conteudo p{ color:var(--cinza);font-size:.72rem }.etapa-trilha__acao .btn,.etapa-trilha__acao button{ margin:0 }.conclusao-trilha{ display:flex;align-items:center;gap:16px;padding:22px;margin-top:18px;color:#fff;background:linear-gradient(135deg,var(--certo),#075c38);border-radius:18px }.conclusao-trilha>span{ font-size:2rem }.conclusao-trilha>div{ flex:1 }.conclusao-trilha h2{ color:#fff;margin:0 }.conclusao-trilha p{ color:#dff7ea;font-size:.76rem }.conclusao-trilha .btn{ margin:0;background:#fff;color:var(--certo) }

/* Modelo Verbena: conteúdos agrupados em cinco fases de estudo. */
.trilha-guia{
  display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:22px;
  align-items:center; padding:24px; margin-bottom:16px; color:#fff;
  background:linear-gradient(135deg,var(--marinho-600),var(--marinho-800));
  border-radius:20px; box-shadow:var(--sombra);
}
.trilha-guia h2{ color:#fff; margin:4px 0 5px }
.trilha-guia p{ color:#dbe0ef; font-size:.77rem }
.trilha-guia__etapas{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px }
.trilha-guia__etapas span{
  min-width:0; padding:11px 8px; color:#fff; background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.13); border-radius:12px;
  font-size:.62rem; line-height:1.35; text-align:center;
}
.trilha-guia__etapas b{
  width:25px; height:25px; display:grid; place-items:center; margin:0 auto 6px;
  color:var(--marinho); background:var(--dourado); border-radius:50%;
  font:800 .7rem var(--display);
}
.modulos-estudo{ display:grid; gap:14px }
.modulo-estudo{
  padding:21px; background:#fff; border:1px solid var(--linha);
  border-radius:19px; box-shadow:var(--sombra);
}
.modulo-estudo--concluido{ border-color:rgba(15,138,83,.30); background:linear-gradient(145deg,#fff,#f4fff9) }
.modulo-estudo__cabecalho{ display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:15px }
.modulo-estudo__cabecalho>div:first-child{ flex:1; min-width:0 }
.modulo-estudo__cabecalho h2{ margin:4px 0 0; font-size:1rem; line-height:1.38 }
.modulo-estudo__progresso{
  min-width:74px; padding:8px 11px; text-align:center;
  color:var(--marinho); background:var(--papel); border-radius:12px;
}
.modulo-estudo--concluido .modulo-estudo__progresso{ color:#075c38; background:var(--certo-fundo) }
.modulo-estudo__progresso strong{ display:block; font:800 1rem var(--display) }
.modulo-estudo__progresso span{ display:block; color:inherit; font-size:.56rem; text-transform:uppercase }
.modulo-etapas{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px }
.etapa-modulo-form{ min-width:0; margin:0 }
.etapa-modulo{
  width:100%; min-height:98px; display:flex; flex-direction:column; align-items:flex-start;
  gap:8px; margin:0; padding:11px; text-align:left; color:var(--marinho-700);
  background:var(--papel); border:1px solid var(--linha); border-radius:13px;
  box-shadow:none; transition:transform var(--transicao),border-color var(--transicao),background var(--transicao);
}
.etapa-modulo:hover{ transform:translateY(-2px); color:var(--marinho); background:#fff; border-color:var(--laranja) }
.etapa-modulo--proxima{ background:var(--laranja-100); border-color:rgba(242,104,30,.45) }
.etapa-modulo--feita{ color:#075c38; background:var(--certo-fundo); border-color:rgba(15,138,83,.26) }
.etapa-modulo__estado{
  width:29px; height:29px; display:grid; place-items:center; flex:0 0 29px;
  color:#fff; background:var(--marinho-600); border-radius:9px;
  font:800 .72rem var(--display);
}
.etapa-modulo--proxima .etapa-modulo__estado{ background:var(--laranja) }
.etapa-modulo--feita .etapa-modulo__estado{ background:var(--certo) }
.etapa-modulo__texto{ min-width:0; display:flex; flex-direction:column; gap:3px }
.etapa-modulo__texto strong{ font-size:.67rem; line-height:1.3 }
.etapa-modulo__texto small{ color:var(--cinza); font-size:.55rem; line-height:1.3 }

/* Publicação em um clique no painel do professor. */
.modelo-verbena-admin{
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
  padding:24px; margin:18px 0; color:#fff;
  background:linear-gradient(135deg,var(--marinho-600),var(--marinho));
  border-radius:20px; box-shadow:var(--sombra-alta);
}
.modelo-verbena-admin h2{ color:#fff; margin:4px 0 5px }
.modelo-verbena-admin p{ max-width:700px; color:#dbe0ef; font-size:.78rem }
.modelo-verbena-admin form{ min-width:250px; margin:0; text-align:center }
.modelo-verbena-admin button{ width:100%; margin:0 }
.modelo-verbena-admin small{ display:block; margin-top:7px; color:#c8cede; font-size:.57rem }

/* Saída também disponível dentro do perfil. */
.sair-conta{
  display:flex; align-items:center; justify-content:space-between; gap:22px;
  padding:22px; margin-top:18px; background:#fff;
  border:1px solid rgba(208,52,44,.22); border-radius:18px;
}
.sair-conta h2{ margin:4px 0 }
.sair-conta p{ color:var(--cinza); font-size:.76rem }
.btn--sair{ display:inline-flex; align-items:center; justify-content:center; gap:8px; margin:0; color:#fff; background:var(--errado) }
.btn--sair:hover{ color:#fff; background:#ad2822 }
.btn--sair .nav-icone{ width:19px; height:19px }

/* Metas e progresso */
.placar-aluno{ display:flex; gap:9px }.placar-aluno>div{ min-width:125px;padding:15px;text-align:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:15px }.placar-aluno strong{ display:block;color:#fff;font:800 1.5rem var(--display) }.placar-aluno span{ color:#dbe0ef;font-size:.62rem }
.engajamento-resumo{ display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:26px }.engajamento-resumo a{ display:flex;flex-direction:column;padding:16px 18px;background:#fff;border:1px solid var(--linha);border-radius:15px;box-shadow:var(--sombra) }.engajamento-resumo span{ color:var(--laranja);font-size:.64rem;text-transform:uppercase }.engajamento-resumo strong{ color:var(--marinho);font:800 1.55rem var(--display) }.engajamento-resumo small{ color:var(--cinza) }
.metas-grid{ display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px }.meta-card{ padding:18px;background:#fff;border:1px solid var(--linha);border-radius:16px;box-shadow:var(--sombra) }.meta-card__topo{ display:flex;justify-content:space-between;color:var(--cinza);font-size:.62rem }.meta-card__topo strong{ color:var(--laranja) }.meta-card h3{ font-size:.88rem;margin:9px 0 }.meta-trilho{ height:8px;overflow:hidden;background:var(--nuvem);border-radius:99px }.meta-trilho i{ display:block;height:100%;background:linear-gradient(90deg,var(--laranja),var(--dourado));border-radius:99px }.meta-card p{ color:var(--cinza);font-size:.68rem;margin-top:9px }
.ranking-previa{ display:grid;grid-template-columns:1fr minmax(300px,.8fr) auto;align-items:center;gap:22px;padding:23px;margin-top:20px;background:#fff;border:1px solid var(--linha);border-radius:18px;box-shadow:var(--sombra) }.ranking-previa p{ color:var(--cinza);font-size:.75rem }.ranking-previa ol{ list-style:none;display:grid;gap:6px }.ranking-previa li{ display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;font-size:.73rem }.ranking-previa li>span{ width:24px;height:24px;display:grid;place-items:center;background:var(--papel);border-radius:50%;font-weight:700 }.ranking-previa li b{ color:var(--laranja) }.ranking-previa .btn{ margin:0 }
.modal-plataforma{ width:min(92vw,500px);padding:0;border:0;border-radius:20px;box-shadow:0 30px 90px rgba(12,17,48,.35) }.modal-plataforma::backdrop{ background:rgba(12,17,48,.62);backdrop-filter:blur(4px) }.modal-plataforma form{ position:relative;padding:28px }.modal-fechar{ position:absolute;right:14px;top:10px;width:34px;height:34px;padding:0;margin:0;color:var(--cinza);background:transparent;box-shadow:none;font-size:1.4rem }.modal-fechar:hover{ color:var(--errado);background:var(--errado-fundo) }

/* Ranking */
.minha-posicao{ min-width:150px;text-align:center;padding:18px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:17px }.minha-posicao span,.minha-posicao b{ display:block;color:#dbe0ef;font-size:.66rem }.minha-posicao strong{ display:block;color:#fff;font:800 2.2rem var(--display) }.podio{ display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:28px auto 18px;max-width:690px }.podio__item{ flex:1;display:flex;flex-direction:column;align-items:center;padding:19px 12px;background:#fff;border:1px solid var(--linha);border-radius:18px;box-shadow:var(--sombra) }.podio__item--1{ order:2;transform:translateY(-14px);border-top:4px solid var(--dourado) }.podio__item--2{ order:1;border-top:4px solid #aab2c5 }.podio__item--3{ order:3;border-top:4px solid #bb7745 }.podio__medalha{ font:800 1.2rem var(--display);color:var(--laranja) }.avatar-iniciais{ width:42px;height:42px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,var(--marinho-600),var(--marinho));border-radius:50%;font:800 .9rem var(--display) }.podio__item .avatar-iniciais{ margin:7px }.podio__item>strong{ font-size:.78rem }.podio__item>b{ color:var(--laranja);font-size:.74rem }.podio__item small{ color:var(--cinza) }.ranking-lista{ display:grid;gap:7px;max-width:850px;margin:0 auto 18px }.ranking-linha{ display:grid;grid-template-columns:38px 42px 1fr auto;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid var(--linha);border-radius:14px }.ranking-linha--eu{ border-color:var(--laranja);background:var(--laranja-100) }.ranking-linha__pos{ color:var(--cinza);font:700 .75rem var(--mono) }.ranking-linha__nome{ display:flex;flex-direction:column }.ranking-linha__nome strong{ font-size:.8rem }.ranking-linha__nome span{ color:var(--cinza);font-size:.62rem }.ranking-linha>b{ color:var(--marinho);font:.8rem var(--display) }.pontos-explicacao,.privacidade-ranking{ max-width:850px;margin:14px auto;padding:18px;background:#fff;border:1px solid var(--linha);border-radius:16px }.pontos-explicacao>div{ display:flex;gap:8px;flex-wrap:wrap }.pontos-explicacao>div span{ color:var(--cinza);background:var(--papel);padding:6px 9px;border-radius:9px;font-size:.65rem }.pontos-explicacao>div strong{ color:var(--laranja) }.pontos-explicacao p{ color:var(--cinza);font-size:.65rem;margin-top:8px }.privacidade-ranking{ display:flex;align-items:center;justify-content:space-between;gap:18px }.privacidade-ranking p{ color:var(--cinza);font-size:.7rem }.privacidade-ranking .btn{ margin:0 }

/* Notificações */
.notificacoes-lista{ display:grid;gap:9px;max-width:850px }.notificacao-item{ display:grid;grid-template-columns:auto 1fr;gap:13px;padding:18px 20px;background:#fff;border:1px solid var(--linha);border-radius:15px;box-shadow:var(--sombra) }.notificacao-item--nova{ border-left:4px solid var(--laranja);background:linear-gradient(90deg,var(--laranja-100),#fff 18%) }.notificacao-item__ponto{ width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--nuvem) }.notificacao-item--nova .notificacao-item__ponto{ background:var(--laranja) }.notificacao-item__meta{ display:flex;justify-content:space-between;gap:12px;color:var(--cinza);font-size:.61rem;text-transform:uppercase }.notificacao-item h2{ font-size:.9rem;margin:5px 0 }.notificacao-item p{ color:var(--cinza);font-size:.76rem;line-height:1.5 }.notificacao-item a{ font-size:.72rem }

/* Certificados */
.certificados-hero__numero{ position:relative;z-index:1;min-width:100px;text-align:center;color:#fff;font:800 3.2rem var(--display) }.certificados-grid{ display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px }.certificado-card{ display:flex;flex-direction:column;padding:22px;background:#fff;border:1px solid var(--linha);border-radius:19px;box-shadow:var(--sombra) }.certificado-card__selo{ width:44px;height:44px;display:grid;place-items:center;color:#fff;background:var(--certo);border-radius:50%;font-weight:800;margin-bottom:13px }.certificado-card>span{ color:var(--laranja);font-size:.62rem;text-transform:uppercase }.certificado-card h2{ font-size:1rem;margin:5px 0 }.certificado-card p{ color:var(--cinza);font-size:.72rem }.certificado-card small{ color:var(--cinza);font:.55rem var(--mono);word-break:break-all;margin-top:auto;padding-top:13px }.certificado-card .btn{ width:100%;margin-top:13px }.validar-link{ display:flex;justify-content:center;gap:8px;margin:22px;color:var(--cinza);font-size:.72rem }.validacao-certificado{ max-width:680px;margin:20px auto;padding:30px;background:#fff;border:1px solid var(--linha);border-radius:21px;box-shadow:var(--sombra) }.validacao-certificado>p{ color:var(--cinza) }.validacao-form{ display:flex;gap:8px;margin:20px 0 }.validacao-form input{ font-family:var(--mono);text-transform:uppercase }.validacao-form button{ margin:0 }.certificado-valido{ display:flex;gap:14px;padding:18px;color:#075c38;background:var(--certo-fundo);border:1px solid rgba(15,138,83,.25);border-radius:15px }.certificado-valido>span{ width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;color:#fff;background:var(--certo);border-radius:50% }.certificado-valido p{ color:#176a48;font-size:.78rem }.certificado-valido small{ color:#3f735f }

/* Folha do certificado */
.pagina-certificado{ display:block;min-height:100vh;padding:22px;background:#e9edf5 }.certificado-acoes{ max-width:1120px;margin:0 auto 14px;display:flex;justify-content:space-between;align-items:center }.certificado-acoes button{ margin:0 }.certificado-folha{ max-width:1120px;min-height:760px;margin:auto;padding:18px;background:#fff;box-shadow:0 20px 60px rgba(12,17,48,.18) }.certificado-moldura{ min-height:724px;display:flex;flex-direction:column;padding:38px 48px;border:3px solid var(--marinho);outline:1px solid var(--laranja);outline-offset:-12px;position:relative;overflow:hidden }.certificado-moldura::before,.certificado-moldura::after{ content:'';position:absolute;width:260px;height:260px;border-radius:50%;background:var(--laranja-100);z-index:0 }.certificado-moldura::before{ left:-150px;top:-150px }.certificado-moldura::after{ right:-150px;bottom:-150px }.certificado-moldura header,.certificado-moldura footer,.certificado-conteudo,.certificado-validacao{ position:relative;z-index:1 }.certificado-moldura header{ display:flex;justify-content:space-between;align-items:center }.certificado-moldura header img{ width:250px;height:auto }.certificado-moldura header span{ color:var(--laranja);font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.14em }.certificado-conteudo{ flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center }.certificado-kicker{ color:var(--cinza);font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.12em }.certificado-conteudo h1{ margin:14px 0 7px;color:var(--marinho);font-size:clamp(2.1rem,5vw,4rem);border-bottom:2px solid var(--laranja) }.certificado-conteudo>p{ color:var(--cinza) }.certificado-conteudo h2{ max-width:800px;margin:10px 0;color:var(--marinho-600);font-size:1.7rem }.certificado-curso{ font-size:.9rem }.certificado-criterio{ max-width:720px;font-size:.75rem;font-style:italic }.certificado-moldura footer{ display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:30px;align-items:end;text-align:center }.certificado-moldura footer>div{ display:flex;flex-direction:column }.certificado-moldura footer span{ color:var(--cinza);font-size:.6rem }.certificado-moldura footer strong{ color:var(--marinho);font-size:.76rem }.assinatura-certificado{ border-top:1px solid var(--marinho);padding-top:8px }.certificado-validacao{ text-align:center;color:var(--cinza);font:.5rem var(--mono);margin-top:18px;word-break:break-all }

/* Professor */
.form-grade{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px }.form-grade .campo-largo{ grid-column:1/-1 }.form-grade .marca{ align-self:end;min-height:45px }.admin-modulos-grid{ display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px }.admin-modulos-grid .cartao{ margin:0 }.acoes-tabela{ display:flex;gap:5px;align-items:center }.acoes-tabela form{ margin:0 }.etapas-admin{ list-style:none;display:grid;gap:7px;margin:15px 0 }.etapas-admin li{ display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:10px;background:var(--papel);border-radius:11px }.etapas-admin li>span{ width:27px;height:27px;display:grid;place-items:center;color:#fff;background:var(--marinho-600);border-radius:50%;font-size:.65rem }.etapas-admin li>div{ display:flex;flex-direction:column }.etapas-admin small{ color:var(--cinza) }.etapas-admin .btn{ margin:0 }

@media (max-width:980px){
  .materiais-grid,.metas-grid,.certificados-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .recomendacao-lista{ grid-template-columns:repeat(2,1fr) }
  .ranking-previa{ grid-template-columns:1fr 1fr }.ranking-previa .btn{ grid-column:1/-1 }
  .admin-modulos-grid{ grid-template-columns:1fr }
}

@media (max-width:760px){
  .topo__acoes-usuario{ margin-left:auto }
  .area-aluno .topo__notificacao{ display:grid }
  .area-professor .topo__nav--professor{ flex-wrap:nowrap }
  .hub-hero,.progresso-hero,.ranking-hero,.certificados-hero{ align-items:flex-start;padding:26px 21px;border-radius:21px }
  .hub-progresso,.placar-aluno,.minha-posicao,.certificados-hero__numero{ display:none }
  .subnav-modulos{ margin:0 -4px 20px }
  .resumo-faixa{ grid-template-columns:repeat(3,minmax(0,1fr));gap:6px }.resumo-faixa>div{ flex-direction:column;gap:0;padding:10px }.resumo-faixa span{ font-size:.6rem }
  .materiais-grid,.trilhas-grid,.metas-grid,.certificados-grid{ grid-template-columns:1fr }
  .filtros-modernos{ align-items:stretch }.filtros-modernos .btn{ padding-inline:16px }
  .aula-cabecalho,.trilha-detalhe-cabecalho{ flex-direction:column;padding:20px }.aula-cabecalho form,.aula-cabecalho .btn{ width:100% }
  .abrir-material{ align-items:flex-start;flex-wrap:wrap;padding:19px }.abrir-material>div:nth-child(2){ min-width:calc(100% - 90px) }.abrir-material .btn{ width:100% }
  .lista-relacionados{ grid-template-columns:1fr }
  .recomendacao-lista{ display:flex;overflow-x:auto;margin-right:-24px;padding-right:24px }.recomendacao-lista a{ min-width:230px }
  .etapa-trilha{ grid-template-columns:auto 1fr;padding:15px;gap:11px }.etapa-trilha__acao{ grid-column:2 }.etapa-trilha__acao .btn,.etapa-trilha__acao form{ width:100% }
  .trilha-guia{ grid-template-columns:1fr; padding:21px }
  .trilha-guia__etapas{ display:flex; overflow-x:auto; margin-right:-21px; padding-right:21px; scrollbar-width:none }
  .trilha-guia__etapas span{ min-width:125px }
  .modulo-estudo{ padding:17px 15px }
  .modulo-estudo__cabecalho{ gap:10px }
  .modulo-estudo__cabecalho h2{ font-size:.9rem }
  .modulo-etapas{ grid-template-columns:1fr; gap:7px }
  .etapa-modulo-form{ width:100% }
  .etapa-modulo{
    min-height:0; display:grid; grid-template-columns:42px minmax(0,1fr);
    align-items:center; justify-content:stretch; column-gap:13px;
    padding:11px 13px; text-align:left;
  }
  .etapa-modulo__estado{ width:38px; height:38px; flex-basis:38px; margin:0 }
  .etapa-modulo__texto{ width:100%; align-items:flex-start; text-align:left }
  .etapa-modulo__texto strong{ font-size:.74rem }
  .modelo-verbena-admin{ grid-template-columns:1fr; padding:21px }
  .modelo-verbena-admin form{ min-width:0; width:100% }
  .sair-conta{ align-items:flex-start; flex-direction:column }
  .sair-conta .btn{ width:100% }
  .conclusao-trilha{ flex-wrap:wrap }.conclusao-trilha .btn{ width:100% }
  .engajamento-resumo{ grid-template-columns:repeat(3,minmax(0,1fr));gap:6px }.engajamento-resumo a{ padding:11px }.engajamento-resumo strong{ font-size:1.25rem }.engajamento-resumo small{ font-size:.55rem }
  .ranking-previa{ grid-template-columns:1fr }.ranking-previa .btn{ grid-column:auto;width:100% }
  .podio{ gap:5px }.podio__item{ padding:14px 5px }.podio__item>strong{ max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }.podio__item small{ display:none }
  .ranking-linha{ grid-template-columns:30px 36px 1fr auto;padding:10px;gap:8px }.ranking-linha .avatar-iniciais{ width:36px;height:36px }.ranking-linha__nome span{ display:none }
  .privacidade-ranking{ align-items:flex-start;flex-direction:column }.privacidade-ranking .btn{ width:100% }
  .validacao-form{ flex-direction:column }.validacao-form button{ width:100% }
  .form-grade{ grid-template-columns:1fr }.form-grade .campo-largo{ grid-column:auto }
  .acoes-tabela{ flex-direction:column;align-items:stretch }
}

/* ============================================================
   PAINEL DO PROFESSOR — CENTRAL DE GESTÃO RESPONSIVA
   ============================================================ */

/* Cabeçalho limpo e menu lateral acessível em qualquer tela. */
.area-professor .topo__interno{ max-width:1280px; height:74px; min-height:74px }
.area-professor .topo__contexto{
  margin-left:auto; padding:7px 12px; color:var(--marinho-600);
  background:var(--papel); border:1px solid var(--linha); border-radius:999px;
  font-size:.72rem; font-weight:700;
}
.area-professor .topo__botao{
  display:flex; min-height:42px; padding:9px 13px !important;
  color:var(--marinho); background:var(--branco) !important;
  border:1px solid var(--linha) !important; border-radius:12px !important;
}
.area-professor .topo__botao:hover{ color:var(--laranja); background:var(--laranja-100) !important; transform:none }
.area-professor .topo__nav--professor{
  position:fixed; inset:0 0 0 auto; z-index:520;
  width:min(390px,92vw); height:100vh; height:100dvh; max-height:100vh; max-height:100dvh;
  padding:14px 14px max(18px,env(safe-area-inset-bottom));
  display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start;
  gap:2px; overflow:hidden !important;
  overscroll-behavior:contain;
  color:var(--marinho); background:rgba(255,255,255,.985);
  border-left:1px solid var(--linha); box-shadow:-24px 0 60px rgba(12,17,48,.18);
  transform:translateX(104%); visibility:hidden; pointer-events:none;
  transition:transform .25s cubic-bezier(.4,0,.2,1),visibility .25s;
}
.menu-professor__rolagem{
  min-height:0; flex:1 1 auto; display:flex; flex-direction:column; gap:2px;
  padding-right:2px; overflow-x:hidden; overflow-y:auto;
  overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y;
  scrollbar-width:thin; scrollbar-color:#b6bdd0 transparent;
}
.menu-professor__rolagem::-webkit-scrollbar{ width:8px }
.menu-professor__rolagem::-webkit-scrollbar-track{ background:transparent }
.menu-professor__rolagem::-webkit-scrollbar-thumb{ background:#b6bdd0; border:2px solid #fff; border-radius:999px }
.area-professor .topo__nav--professor.aberto{
  transform:translateX(0); visibility:visible; pointer-events:auto; animation:none;
}
.area-professor .topo__nav--professor a{
  width:100%; min-height:40px; padding:8px 11px; color:var(--marinho-700);
  border:1px solid transparent; border-radius:12px;
  font-size:.83rem; font-weight:650;
}
.area-professor .topo__nav--professor a .nav-icone{ width:19px; height:19px; color:var(--cinza) }
.area-professor .topo__nav--professor a:hover{
  color:var(--laranja-600); background:var(--laranja-100); border-color:rgba(242,104,30,.12);
}
.area-professor .topo__nav--professor a.ativo{
  color:var(--laranja-600); background:var(--laranja-100); border-color:rgba(242,104,30,.18);
}
.area-professor .topo__nav--professor a.ativo .nav-icone{ color:var(--laranja) }
.area-professor .topo__nav--professor a.sair{
  flex:0 0 auto; margin-top:6px; color:var(--errado); background:var(--errado-fundo); border-color:rgba(208,52,44,.10);
}
.menu-professor__cabecalho{
  flex:0 0 auto;
  display:flex; justify-content:space-between; align-items:center; gap:18px;
  padding:0 2px 10px; margin-bottom:2px;
  background:rgba(255,255,255,.985); border-bottom:1px solid var(--linha);
}
.menu-professor__cabecalho>div{ display:flex; flex-direction:column }
.menu-professor__cabecalho span{ color:var(--laranja); font:.6rem var(--mono); text-transform:uppercase; letter-spacing:.1em }
.menu-professor__cabecalho strong{ color:var(--marinho); font:.98rem var(--display) }
.menu-professor__cabecalho button{
  width:38px; height:38px; flex:0 0 38px; margin:0; padding:0;
  color:var(--marinho); background:var(--papel); border:1px solid var(--linha);
  border-radius:12px; box-shadow:none; font:400 1.8rem/1 var(--corpo);
}
.menu-professor__cabecalho button:hover{ color:var(--laranja); background:var(--laranja-100); transform:none; box-shadow:none }
.menu-professor__rotulo{
  padding:7px 11px 2px; color:#7b839d;
  font:600 .58rem var(--mono); letter-spacing:.1em; text-transform:uppercase;
}
.menu-professor__fundo{
  position:fixed; inset:0; z-index:510; display:block; width:100%; height:100%;
  margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important;
  background:rgba(7,12,35,.52) !important; box-shadow:none !important;
  opacity:0; visibility:hidden; pointer-events:none; transform:none !important;
  transition:opacity .22s ease,visibility .22s;
}
.menu-professor-aberto .menu-professor__fundo{ opacity:1; visibility:visible; pointer-events:auto }
body.menu-professor-aberto{ overflow:hidden }

/* Em notebooks baixos, todos os comandos continuam visíveis em zoom de 100%.
   Se a altura for ainda menor, a rolagem permanece disponível dentro do menu. */
@media (max-height:720px){
  .area-professor .topo__nav--professor{
    padding:8px 11px max(12px,env(safe-area-inset-bottom)); gap:1px;
  }
  .menu-professor__rolagem{ gap:1px }
  .area-professor .topo__nav--professor a{
    min-height:35px; padding:6px 10px; font-size:.78rem;
  }
  .area-professor .topo__nav--professor a .nav-icone{ width:17px; height:17px }
  .area-professor .topo__nav--professor a.sair{ margin-top:2px }
  .menu-professor__cabecalho{
    padding:0 2px 7px;
  }
  .menu-professor__cabecalho button{ width:34px; height:34px; flex-basis:34px; font-size:1.55rem }
  .menu-professor__rotulo{ padding:5px 10px 1px; font-size:.54rem }
}

/* A largura do painel aproveita melhor notebooks e monitores. */
.area-professor .folha{ max-width:1280px; padding-top:30px }

/* Apresentação principal. */
.prof-dashboard-hero{
  position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto;
  align-items:center; gap:34px; min-height:250px; padding:38px 42px; margin-bottom:18px;
  color:#fff; border-radius:26px; box-shadow:0 22px 54px rgba(12,17,48,.16);
  background:
    radial-gradient(circle at 88% 14%,rgba(242,104,30,.50),transparent 29%),
    linear-gradient(135deg,var(--marinho) 0%,var(--marinho-600) 100%);
}
.prof-dashboard-hero::after{
  content:''; position:absolute; right:-75px; bottom:-135px; width:310px; height:310px;
  border:1px solid rgba(255,255,255,.13); border-radius:50%;
  box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 82px rgba(255,255,255,.025);
}
.prof-dashboard-hero__conteudo,.prof-dashboard-hero__resumo{ position:relative; z-index:1 }
.prof-dashboard-hero__rotulo{
  display:inline-flex; margin-bottom:10px; color:#ffc7a9;
  font:600 .66rem var(--mono); letter-spacing:.12em; text-transform:uppercase;
}
.prof-dashboard-hero h1{ color:#fff; font-size:clamp(2rem,4vw,3.05rem); margin-bottom:8px }
.prof-dashboard-hero p{ max-width:660px; color:#d9deed; font-size:1rem }
.prof-dashboard-hero__acoes{ display:flex; flex-wrap:wrap; gap:9px; margin-top:20px }
.prof-dashboard-hero__acoes .btn{ margin:0 }
.btn--claro{ color:var(--marinho)!important; background:#fff; box-shadow:none }
.btn--claro:hover{ color:var(--laranja-600)!important; background:var(--laranja-100); box-shadow:none }
.btn--contorno-claro{ color:#fff!important; background:transparent; border:1.5px solid rgba(255,255,255,.55); box-shadow:none }
.btn--contorno-claro:hover{ color:#fff!important; background:rgba(255,255,255,.12); border-color:#fff; box-shadow:none }
.prof-dashboard-hero__resumo{
  min-width:205px; padding:21px; display:flex; flex-direction:column;
  border:1px solid rgba(255,255,255,.18); border-radius:18px;
  background:rgba(255,255,255,.09); backdrop-filter:blur(8px);
}
.prof-dashboard-hero__resumo span{ color:#ffc7a9; font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em }
.prof-dashboard-hero__resumo strong{ margin:5px 0; color:#fff; font:800 1.5rem var(--display) }
.prof-dashboard-hero__resumo small{ max-width:150px; color:#d9deed; font-size:.67rem; line-height:1.4 }

/* Indicadores. */
.prof-indicadores{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:34px }
.prof-indicador{
  min-width:0; display:flex; align-items:center; gap:13px; padding:17px 18px;
  color:var(--marinho); background:#fff; border:1px solid var(--linha);
  border-radius:17px; box-shadow:var(--sombra); transition:transform var(--transicao),box-shadow var(--transicao);
}
.prof-indicador:hover{ color:var(--marinho); transform:translateY(-2px); box-shadow:var(--sombra-alta) }
.prof-indicador__icone{ width:43px; height:43px; flex:0 0 43px; display:grid; place-items:center; border-radius:13px }
.prof-indicador__icone .nav-icone{ width:21px; height:21px }
.prof-indicador>span:last-child{ min-width:0; display:flex; flex-direction:column }
.prof-indicador strong{ color:var(--marinho); font:800 1.55rem/1.1 var(--display) }
.prof-indicador small{ overflow:hidden; color:var(--cinza); font-size:.7rem; white-space:nowrap; text-overflow:ellipsis }
.prof-indicador--laranja .prof-indicador__icone{ color:var(--laranja); background:var(--laranja-100) }
.prof-indicador--azul .prof-indicador__icone{ color:var(--azul); background:var(--azul-fundo) }
.prof-indicador--verde .prof-indicador__icone{ color:var(--certo); background:var(--certo-fundo) }
.prof-indicador--marinho .prof-indicador__icone{ color:var(--marinho-600); background:var(--nuvem) }

/* Seções e atalhos. */
.prof-secao{ margin-bottom:34px; scroll-margin-top:105px }
.prof-secao__cabecalho{
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:14px;
}
.prof-secao__cabecalho>div{ min-width:0 }
.prof-secao__cabecalho>div>span{
  display:block; margin-bottom:2px; color:var(--laranja);
  font:600 .6rem var(--mono); letter-spacing:.1em; text-transform:uppercase;
}
.prof-secao__cabecalho h2{ margin:0; font-size:1.28rem }
.prof-secao__cabecalho>a{ flex:0 0 auto; color:var(--marinho-600); font-size:.76rem; font-weight:700 }
.prof-secao__cabecalho>a:hover{ color:var(--laranja) }
.prof-secao__cabecalho>a b{ margin-left:4px }
.prof-atalhos{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px }
.prof-atalhos a{
  min-width:0; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px;
  padding:16px 17px; color:var(--marinho); background:#fff;
  border:1px solid var(--linha); border-radius:16px; box-shadow:var(--sombra);
}
.prof-atalhos a:hover{ color:var(--marinho); border-color:rgba(242,104,30,.25); transform:translateY(-2px); box-shadow:var(--sombra-alta) }
.prof-atalhos i{ width:41px; height:41px; display:grid; place-items:center; color:var(--laranja); background:var(--laranja-100); border-radius:12px; font-style:normal }
.prof-atalhos i .nav-icone{ width:20px; height:20px }
.prof-atalhos a:nth-child(2) i,.prof-atalhos a:nth-child(5) i{ color:var(--azul); background:var(--azul-fundo) }
.prof-atalhos a:nth-child(3) i,.prof-atalhos a:nth-child(6) i{ color:var(--certo); background:var(--certo-fundo) }
.prof-atalhos a>span{ min-width:0; display:flex; flex-direction:column }
.prof-atalhos strong{ color:var(--marinho); font:.86rem var(--display) }
.prof-atalhos small{ overflow:hidden; color:var(--cinza); font-size:.67rem; white-space:nowrap; text-overflow:ellipsis }
.prof-atalhos b{ color:#9ba2b7; font-size:1.3rem; font-weight:400 }

/* Cartões de turma: nenhuma ação fica sobreposta. */
.prof-turmas-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px }
.prof-turma-card{
  min-width:0; padding:22px; background:#fff; border:1px solid var(--linha);
  border-top:3px solid var(--laranja); border-radius:20px; box-shadow:var(--sombra);
}
.prof-turma-card__topo{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px }
.prof-turma-card__icone{ width:43px; height:43px; display:grid; place-items:center; color:var(--laranja); background:var(--laranja-100); border-radius:13px }
.prof-turma-card__icone .nav-icone{ width:21px; height:21px }
.prof-status{ display:inline-flex; align-items:center; gap:6px; color:var(--certo); background:var(--certo-fundo); border-radius:999px; padding:5px 9px; font-size:.62rem; font-weight:700 }
.prof-status i{ width:6px; height:6px; background:var(--certo); border-radius:50% }
.prof-turma-card h3{ margin:0 0 7px; font-size:1.05rem; line-height:1.35 }
.prof-turma-card__meta{ display:flex; flex-wrap:wrap; gap:5px 15px; color:var(--cinza); font-size:.72rem }
.prof-turma-card__meta strong{ color:var(--grafite) }
.prof-turma-card__acoes{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:18px }
.prof-turma-card__acoes a{
  min-width:0; display:flex; align-items:center; justify-content:center; gap:6px;
  padding:9px 8px; color:var(--marinho-600); background:var(--papel);
  border:1px solid var(--linha); border-radius:11px; font-size:.7rem; font-weight:700;
}
.prof-turma-card__acoes a:hover{ color:var(--laranja-600); background:var(--laranja-100); border-color:rgba(242,104,30,.2) }
.prof-turma-card__acoes .nav-icone{ width:16px; height:16px }
.prof-turma-card__acoes .prof-acao-principal{
  grid-column:1/-1; color:#fff; background:var(--laranja); border-color:var(--laranja);
}
.prof-turma-card__acoes .prof-acao-principal:hover{ color:#fff; background:var(--laranja-600); border-color:var(--laranja-600) }

/* Tabelas em painéis e cartões no celular. */
.prof-duas-colunas{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start }
.prof-painel-lista{
  min-width:0; padding:20px; background:#fff; border:1px solid var(--linha);
  border-radius:20px; box-shadow:var(--sombra);
}
.prof-painel-lista .prof-secao__cabecalho{ align-items:center; margin-bottom:13px }
.prof-tabela-wrap{ width:100%; overflow-x:auto; border:1px solid var(--linha); border-radius:14px }
.prof-tabela{ min-width:560px; margin:0; border-radius:0; box-shadow:none; font-size:.78rem }
.prof-tabela th{ padding:10px 11px; font-size:.62rem }
.prof-tabela td{ padding:10px 11px }
.prof-tabela td small{ display:block; max-width:180px; overflow:hidden; color:var(--cinza); font-size:.61rem; text-overflow:ellipsis; white-space:nowrap }
.prof-codigo{ color:var(--marinho); font-family:var(--mono); font-size:.72rem }
.prof-vazio{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  min-height:150px; padding:26px; text-align:center; color:var(--cinza);
  background:linear-gradient(135deg,var(--papel),#fff); border:1px dashed #cbd1e0; border-radius:17px;
}
.prof-vazio strong{ color:var(--marinho); font-family:var(--display) }
.prof-vazio span{ font-size:.75rem }
.prof-vazio--compacto{ min-height:115px }

@media (max-width:1040px){
  .prof-indicadores{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .prof-atalhos{ grid-template-columns:repeat(2,minmax(0,1fr)) }
  .prof-duas-colunas{ grid-template-columns:1fr }
  .prof-tabela{ min-width:680px }
}

@media (max-width:820px){
  .area-professor .folha{ padding:22px 16px 72px }
  .prof-dashboard-hero{ grid-template-columns:1fr; padding:30px; border-radius:22px }
  .prof-dashboard-hero__resumo{ display:none }
  .prof-turmas-grid{ grid-template-columns:1fr }
}

@media (max-width:600px){
  .area-professor .faixa__interno{ justify-content:center }
  .area-professor .faixa strong{ display:none }
  .area-professor .topo__interno{ height:64px; min-height:64px; padding:0 14px }
  .area-professor .topo__marca img{ height:36px; max-width:225px }
  .area-professor .topo__contexto{ display:none }
  .area-professor .topo__botao{ margin-left:auto !important }
  .area-professor .topo__botao>strong{ display:none }
  .area-professor .topo__nav--professor{
    width:min(360px,94vw); padding:12px 12px max(16px,env(safe-area-inset-bottom));
  }
  .area-professor .topo__nav--professor .menu-professor__cabecalho{
    padding-top:0;
  }

  .prof-dashboard-hero{ padding:27px 22px; min-height:0; margin-bottom:12px }
  .prof-dashboard-hero h1{ font-size:1.75rem }
  .prof-dashboard-hero p{ font-size:.86rem; line-height:1.55 }
  .prof-dashboard-hero__acoes{ display:grid; grid-template-columns:1fr; margin-top:17px }
  .prof-dashboard-hero__acoes .btn{ width:100%; padding:11px 17px }
  .prof-indicadores{ gap:8px; margin-bottom:27px }
  .prof-indicador{ gap:9px; padding:13px 11px; border-radius:14px }
  .prof-indicador__icone{ width:35px; height:35px; flex-basis:35px; border-radius:10px }
  .prof-indicador__icone .nav-icone{ width:18px; height:18px }
  .prof-indicador strong{ font-size:1.25rem }
  .prof-indicador small{ font-size:.59rem }
  .prof-secao{ margin-bottom:28px }
  .prof-secao__cabecalho{ align-items:center }
  .prof-secao__cabecalho h2{ font-size:1.1rem }
  .prof-secao__cabecalho>a{ font-size:.68rem }
  .prof-atalhos{ grid-template-columns:1fr }
  .prof-atalhos a{ padding:14px }
  .prof-turma-card{ padding:18px 16px; border-radius:18px }
  .prof-turma-card h3{ font-size:.96rem }
  .prof-turma-card__acoes{ gap:6px }
  .prof-turma-card__acoes a{ min-height:42px; padding:8px 5px; font-size:.64rem }
  .prof-painel-lista{ padding:16px 13px; border-radius:18px }
  .prof-tabela-wrap{ overflow:visible; border:0; border-radius:0 }
  .prof-tabela{ display:block; min-width:0; background:transparent }
  .prof-tabela thead{ display:none }
  .prof-tabela tbody{ display:grid; gap:9px }
  .prof-tabela tr{ display:block; padding:11px 12px; background:var(--papel); border:1px solid var(--linha); border-radius:13px }
  .prof-tabela td{
    display:grid; grid-template-columns:80px minmax(0,1fr); gap:10px; padding:6px 0;
    text-align:right; border-bottom:1px solid rgba(226,230,240,.9); word-break:break-word;
  }
  .prof-tabela td:last-child{ border:0 }
  .prof-tabela td::before{ content:attr(data-label); color:var(--cinza); font-size:.59rem; font-weight:700; text-align:left; text-transform:uppercase; letter-spacing:.06em }
  .prof-tabela td small{ margin-left:auto }
}

@media (max-width:380px){
  .area-professor .topo__marca img{ max-width:205px }
  .prof-indicador__icone{ display:none }
  .prof-indicador{ justify-content:center; text-align:center }
  .prof-turma-card__acoes a{ flex-direction:column; gap:3px }
}

@media print{
  .pagina-certificado{ padding:0;background:#fff }
  .certificado-acoes{ display:none }
  .certificado-folha{ width:297mm;min-height:210mm;padding:8mm;box-shadow:none }
  .certificado-moldura{ min-height:194mm }
}

/* ============================================================
   MENU DO PROFESSOR SEM REDUÇÃO DE ZOOM — v2
   Cabeçalho e saída permanecem visíveis; apenas os comandos rolam.
   ============================================================ */
.area-professor .topo__nav--professor{
  box-sizing:border-box !important;
  height:100vh !important;
  height:100svh !important;
  height:100dvh !important;
  max-height:100vh !important;
  max-height:100svh !important;
  max-height:100dvh !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
}
.area-professor .topo__nav--professor .menu-professor__cabecalho{
  position:relative;
  z-index:2;
  flex:0 0 auto !important;
}
.area-professor .topo__nav--professor .menu-professor__rolagem{
  position:relative;
  flex:1 1 0 !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
}
.area-professor .topo__nav--professor .menu-professor__rolagem > *{
  flex:0 0 auto !important;
}
.area-professor .topo__nav--professor > a.sair{
  position:relative;
  z-index:2;
  flex:0 0 auto !important;
  margin:5px 0 0 !important;
  padding-bottom:max(9px,env(safe-area-inset-bottom)) !important;
  background:var(--errado-fundo) !important;
  box-shadow:0 -9px 18px rgba(255,255,255,.96);
}

@media (max-height:620px){
  .area-professor .topo__nav--professor{
    padding:7px 9px max(8px,env(safe-area-inset-bottom)) !important;
  }
  .area-professor .topo__nav--professor .menu-professor__cabecalho{
    padding-bottom:5px !important;
  }
  .area-professor .topo__nav--professor .menu-professor__rolagem{
    gap:0 !important;
  }
  .area-professor .topo__nav--professor .menu-professor__rolagem a{
    min-height:34px !important;
    padding:5px 9px !important;
    font-size:.76rem !important;
  }
  .area-professor .topo__nav--professor .menu-professor__rotulo{
    padding:4px 9px 1px !important;
  }
}

/* ================================================================
   ÁREA DO PROFESSOR POR PREPARATÓRIO — FASE 1 (24/08/2026)
   ================================================================ */
.prof-area-barra{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin:0 0 20px;padding:15px 18px;border:1px solid #dfe4f0;border-left:4px solid var(--laranja);
  border-radius:16px;background:linear-gradient(135deg,#fff 0%,#f8f9fc 100%);
  box-shadow:0 8px 24px rgba(12,17,48,.06)
}
.prof-area-barra>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.prof-area-barra span{color:var(--laranja);font:.6rem var(--mono);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.prof-area-barra strong{color:var(--marinho);font:800 1rem var(--display);line-height:1.3}
.prof-area-barra small{color:var(--cinza);font-size:.72rem;line-height:1.4}
.prof-area-barra .btn{flex:0 0 auto;margin:0}
.menu-professor__trocar{display:inline-flex;margin-top:4px;color:#59617d!important;font-size:.63rem!important;font-weight:700!important}
.menu-professor__trocar:hover{color:var(--laranja)!important}
.prof-turma-card--selecionada{border-color:rgba(242,104,30,.35)!important;box-shadow:0 16px 38px rgba(242,104,30,.13)!important}
.prof-area-selo{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#fff0e7;color:#d95216;font-size:.62rem;font-weight:800}
.prof-area-selo::before{content:'';width:6px;height:6px;border-radius:50%;background:#f2681e}
.prof-contexto-fixo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 18px;color:#59617d;font-size:.75rem}
.prof-contexto-fixo strong{color:#0c1130}
@media(max-width:640px){
  .prof-area-barra{align-items:flex-start;flex-direction:column;padding:14px}
  .prof-area-barra .btn{width:100%;text-align:center}
}


/* === FASE 2 — ÁREA DO ALUNO POR PREPARATÓRIO =========================== */
.area-aluno .topo__contexto--aluno{
  display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:10px;padding:7px 10px;
  border:1px solid rgba(255,255,255,.18);border-radius:11px;color:#fff;background:rgba(255,255,255,.07);
  text-decoration:none;white-space:nowrap;line-height:1.1
}
.area-aluno .topo__contexto--aluno span{font-size:.66rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
.area-aluno .topo__contexto--aluno small{font-size:.58rem;color:#ffd2bd;font-weight:700}
.area-aluno .topo__contexto--aluno:hover{background:rgba(255,255,255,.13);color:#fff}

.aluno-area-barra{
  display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px;padding:13px 16px;
  background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #dfe6ef;border-left:4px solid var(--laranja);
  border-radius:15px;box-shadow:0 8px 24px rgba(20,42,77,.05)
}
.aluno-area-barra>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.aluno-area-barra span{color:var(--laranja);font:.6rem var(--mono);font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.aluno-area-barra strong{color:var(--marinho);font:800 1rem var(--display);line-height:1.3}
.aluno-area-barra small{color:var(--cinza);font-size:.72rem;line-height:1.4}
.aluno-area-barra .btn{flex:0 0 auto;margin:0}

.aluno-preps-hero{
  display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:26px 28px;
  border-radius:22px;background:linear-gradient(135deg,#101b3f,#173b68);color:#fff;overflow:hidden;position:relative
}
.aluno-preps-hero:after{content:'';position:absolute;width:210px;height:210px;border-radius:50%;right:-70px;top:-90px;background:rgba(242,104,30,.22)}
.aluno-preps-hero>div,.aluno-preps-hero__numero{position:relative;z-index:1}
.aluno-preps-hero .microtitulo{color:#ffb48e}.aluno-preps-hero h1{color:#fff;margin:5px 0 8px}.aluno-preps-hero p{margin:0;max-width:720px;color:#dbe5f2;line-height:1.55}
.aluno-preps-hero__numero{display:grid;place-items:center;min-width:78px;height:78px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);font:800 2rem var(--display)}
.aluno-preps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}
.aluno-prep-card{padding:22px;border:1px solid #dfe6ef;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(20,42,77,.06);transition:.18s ease}
.aluno-prep-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(20,42,77,.10)}
.aluno-prep-card--atual{border-color:rgba(242,104,30,.42);box-shadow:0 14px 34px rgba(242,104,30,.12)}
.aluno-prep-card__topo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.aluno-prep-card__icone{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#fff0e7;color:var(--laranja)}
.aluno-prep-card__icone .nav-icone{width:22px;height:22px}
.aluno-prep-card h2{margin:5px 0 12px;font-size:1.12rem;line-height:1.35;color:var(--marinho)}
.aluno-prep-card__meta{display:flex;flex-wrap:wrap;gap:7px 18px;margin-bottom:18px;color:var(--cinza);font-size:.75rem}.aluno-prep-card__meta strong{color:var(--grafite)}
.aluno-prep-card form{margin:0}.aluno-prep-card form .btn{width:100%;margin:0;text-align:center}
.aluno-prep-selo{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#fff0e7;color:#d95216;font-size:.64rem;font-weight:800}.aluno-prep-selo:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--laranja)}
.aluno-preps-nota{display:flex;gap:14px;align-items:flex-start;padding:17px 19px;border-radius:16px;background:#f6f9fc;border:1px solid #e0e7ef}.aluno-preps-nota strong{flex:0 0 auto;color:var(--marinho)}.aluno-preps-nota p{margin:0;color:var(--cinza);line-height:1.5;font-size:.78rem}
.perfil-preparatorios-atalho{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:14px 16px;border:1px solid #e0e7ef;border-radius:15px;background:#f8fafc}.perfil-preparatorios-atalho>div{display:flex;flex-direction:column;gap:2px}.perfil-preparatorios-atalho strong{color:var(--marinho)}.perfil-preparatorios-atalho span{font-size:.72rem;color:var(--cinza)}
@media(max-width:1180px){.prof-turmas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aluno-preps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.aluno-preps-grid{grid-template-columns:1fr}.area-aluno .topo__contexto--aluno small{display:none}}
@media(max-width:680px){
  .area-aluno .topo__contexto--aluno{margin-left:auto;margin-right:7px;padding:6px 8px;max-width:138px}.area-aluno .topo__contexto--aluno span{font-size:.58rem;overflow:hidden;text-overflow:ellipsis}
  .aluno-area-barra{align-items:flex-start;flex-direction:column;padding:13px}.aluno-area-barra .btn{width:100%;text-align:center}
  .aluno-preps-hero{padding:21px 18px;border-radius:18px}.aluno-preps-hero__numero{min-width:58px;height:58px;font-size:1.45rem;border-radius:16px}.aluno-preps-hero p{font-size:.8rem}
  .aluno-prep-card{padding:18px 16px}.aluno-preps-nota,.perfil-preparatorios-atalho{flex-direction:column}.perfil-preparatorios-atalho .btn{width:100%;text-align:center}
}

/* === AJUSTE SAIR NO CELULAR — 04/09/2026 ================================
   O nome do preparatório ocupava o espaço reservado às ações do cabeçalho e
   empurrava Perfil e Sair para fora da tela. No celular essa informação já
   aparece no cartão "Preparatório atual", então o cabeçalho prioriza as ações. */
@media (max-width:760px){
  /* O backdrop-filter transforma o cabeçalho em bloco de referência para
     elementos fixed no Safari/iOS. Sem ele, a navegação volta ao rodapé da
     tela e deixa logomarca, Perfil e Sair visíveis na parte superior. */
  .area-aluno .topo{
    background:rgba(255,255,255,.98);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .area-aluno .topo__contexto--aluno{ display:none }
  .area-aluno .topo__interno{ justify-content:flex-start }
  .area-aluno .topo__acoes-usuario{
    display:flex; align-items:center; flex-shrink:0;
    margin-left:auto; gap:5px;
  }
  .area-aluno .topo__saida-mobile{
    display:flex; align-items:center; justify-content:center;
    width:auto; min-width:61px; height:39px; padding:0 9px; gap:5px;
    white-space:nowrap;
  }
  .area-aluno .topo__saida-mobile span{
    display:inline; font-size:.68rem; font-weight:800;
  }
}

@media (max-width:380px){
  .area-aluno .topo__interno{ padding:0 10px; gap:5px }
  .area-aluno .topo__marca img{ width:auto; height:28px; max-width:105px }
  .area-aluno .topo__acoes-usuario{ gap:2px }
  .area-aluno .topo__notificacao,
  .area-aluno .topo__perfil-mobile{ width:34px; height:34px }
  .area-aluno .topo__saida-mobile{
    min-width:53px; height:34px; padding:0 6px; gap:3px;
  }
  .area-aluno .topo__saida-mobile span{ font-size:.62rem }
  .area-aluno .topo__saida-mobile .nav-icone{ width:17px; height:17px }
}

/* ---- Submenu contextual do painel do professor ------------------------- */
.area-professor .topo__nav--professor a.aberto{
  color:var(--marinho-800); background:var(--azul-fundo); border-color:rgba(23,45,110,.10);
}
.menu-professor__sub{
  display:flex; flex-direction:column; gap:1px;
  margin:2px 0 5px 12px; padding-left:10px;
  border-left:2px solid rgba(23,45,110,.13);
}
.area-professor .topo__nav--professor .menu-professor__sub a{
  min-height:34px; padding:6px 10px; font-size:.76rem; font-weight:600; color:var(--cinza);
}
.area-professor .topo__nav--professor .menu-professor__sub a .nav-icone{ width:16px; height:16px }
.area-professor .topo__nav--professor .menu-professor__sub a.ativo{
  color:var(--laranja-600); background:var(--laranja-100); border-color:rgba(242,104,30,.18);
}

/* ---- Índice de conteúdos da Sala de Questões --------------------------- */
.bq-indice{margin:0 0 18px;padding:0;background:#fff;border:1px solid var(--linha);border-radius:20px;box-shadow:var(--sombra);overflow:hidden}
.bq-indice>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;list-style:none}
.bq-indice>summary::-webkit-details-marker{display:none}
.bq-indice>summary>span:first-child{display:grid;gap:3px;min-width:0}
.bq-indice>summary strong{font-size:1.02rem;letter-spacing:-.02em}
.bq-indice>summary small{color:var(--cinza);font-size:.72rem;line-height:1.45}
.bq-indice__selo{flex:0 0 auto;padding:8px 13px;color:var(--marinho-600);background:var(--papel);border:1px solid var(--linha);border-radius:999px;font-size:.68rem;font-weight:800;white-space:nowrap}
.bq-indice__lista{display:grid;gap:6px;padding:0 16px 16px}
.bq-indice__tema{border:1px solid var(--linha);border-radius:14px;background:#fbfcff;overflow:hidden}
.bq-indice__tema>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;cursor:pointer;list-style:none;font-size:.8rem}
.bq-indice__tema>summary::-webkit-details-marker{display:none}
.bq-indice__tema>summary b{font-weight:800;color:var(--marinho)}
.bq-indice__tema>summary i{flex:0 0 auto;padding:3px 9px;color:var(--marinho-600);background:#fff;border:1px solid var(--linha);border-radius:999px;font-style:normal;font-size:.64rem;font-weight:800}
.bq-indice__link{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 10px 6px 22px;padding:8px 12px;color:var(--cinza);background:#fff;border:1px solid var(--linha);border-radius:11px;font-size:.74rem;font-weight:650;text-decoration:none}
.bq-indice__link:hover{color:var(--laranja-600);border-color:rgba(242,104,30,.3);background:var(--laranja-100)}
.bq-indice__link.ativo{color:var(--laranja-600);background:var(--laranja-100);border-color:rgba(242,104,30,.32);font-weight:800}
.bq-indice__link i{flex:0 0 auto;font-style:normal;font-size:.66rem;font-weight:800;font-variant-numeric:tabular-nums}
.bq-indice__link.vazio{opacity:.55;cursor:default;background:transparent;border-style:dashed}
.bq-indice__link.vazio:hover{color:var(--cinza);background:transparent;border-color:var(--linha)}
@media(max-width:650px){
  .bq-indice>summary{flex-direction:column;align-items:flex-start;gap:10px;padding:16px}
  .bq-indice__link{margin-left:12px}
}

/* Diagnóstico da classificação do banco de questões */
.indice-diagnostico{margin-top:18px;padding-top:16px;border-top:1px solid var(--linha)}
.indice-diagnostico .tabela-rolagem{margin-top:10px;max-height:420px;overflow:auto}
.indice-diagnostico .alerta{color:var(--errado);font-weight:850}

/* Relatório de questões repetidas */
.dup-relatorio .tabela-rolagem{margin-top:12px;max-height:460px;overflow:auto}
.dup-relatorio .alerta{color:var(--errado);font-weight:850}
.dup-relatorio td a{font-weight:800}
.dup-acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 6px}
.dup-acoes form{margin:0}
.dup-previa{margin:14px 0;padding:14px 16px;background:var(--papel);border:1px solid var(--linha);border-radius:14px}
.dup-previa ul{margin:10px 0 0;padding-left:18px;display:grid;gap:8px;max-height:320px;overflow:auto}
.dup-previa li{font-size:.78rem;line-height:1.4}

/* ---- Classificação de subtemas em lote -------------------------------- */
.classificar-lote{display:grid;gap:12px;margin:18px 0}
.classificar-item{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;padding:16px 18px;background:#fff;border:1px solid var(--linha);border-radius:16px;box-shadow:var(--sombra)}
.classificar-item__texto>span{display:block;margin-bottom:6px;font-size:.66rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--cinza)}
.classificar-item__texto p{margin:0;font-size:.82rem;line-height:1.5;color:var(--tinta)}
.classificar-item__campos{display:grid;align-content:start;gap:4px}
.classificar-item__campos label{margin:0 0 2px}
.classificar-item__campos select{font-size:.82rem;padding:9px 11px}
.classificar-acoes{position:sticky;bottom:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;background:rgba(255,255,255,.96);border:1px solid var(--linha);border-radius:16px;box-shadow:0 -6px 24px rgba(12,17,48,.08);backdrop-filter:blur(6px)}
.classificar-acoes button{margin:0}
@media(max-width:820px){
  .classificar-item{grid-template-columns:1fr;gap:12px}
}
.classificar-item__campos .sugerido{margin-left:6px;padding:2px 7px;color:#075c38;background:#e6f6ee;border-radius:999px;font-size:.58rem;font-weight:900;text-transform:none;letter-spacing:0}
.lote-filtro{border-left:4px solid var(--laranja)}
.lote-filtro__campos{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}
.lote-filtro__campos select{flex:1;min-width:260px}
.lote-filtro__campos button{margin:0;flex:0 0 auto}

/* ---- Sessões personalizadas de treino --------------------------------- */
.sessao-barra{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 16px;padding:14px 18px;background:#fff;border:1px solid var(--linha);border-left:4px solid var(--laranja);border-radius:16px;box-shadow:var(--sombra)}
.sessao-barra strong{display:block;font-size:.95rem}
.sessao-barra small{color:var(--cinza);font-size:.74rem}
.sessao-barra__acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sessao-barra__barra{display:block;width:130px;height:8px;background:var(--papel);border:1px solid var(--linha);border-radius:99px;overflow:hidden}
.sessao-barra__barra i{display:block;height:100%;background:var(--laranja);border-radius:99px}
.sessao-montar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.sessao-montar .campo-largo{grid-column:1/-1}
.sessao-lista{display:grid;gap:10px;margin-top:16px}
.sessao-lista article{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:13px 16px;background:#fff;border:1px solid var(--linha);border-radius:14px}
.sessao-lista article b{font-size:.86rem}
.sessao-lista article span{color:var(--cinza);font-size:.74rem}
@media(max-width:650px){.sessao-montar{grid-template-columns:1fr}}

/* ---- Cartão da Sala de Questões no painel do aluno --------------------- */
.sala-card{display:grid;gap:18px;margin:0 0 20px;padding:22px 24px;color:#fff;background:linear-gradient(135deg,#0c1130 0%,#172a6e 62%,#1e3a8a 100%);border-radius:24px;box-shadow:0 20px 45px rgba(12,17,48,.22)}
.sala-card__topo{display:flex;align-items:flex-start;gap:16px}
.sala-card__icone{flex:0 0 auto;display:grid;place-items:center;width:54px;height:54px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:17px}
.sala-card__icone .nav-icone{width:28px;height:28px;color:#fff}
.sala-card__titulo{min-width:0}
.sala-card__titulo small{display:block;color:var(--laranja);font-size:.62rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.sala-card__titulo strong{display:block;margin:3px 0 5px;color:#fff;font:800 1.24rem/1.24 var(--display);letter-spacing:-.02em}
.sala-card__titulo>span{display:block;max-width:760px;color:#dce5ff;font-size:.79rem;line-height:1.5}
.sala-card__numeros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sala-card__numeros--cinco{grid-template-columns:repeat(5,minmax(0,1fr))}
.sala-card__numeros article{padding:13px 15px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:16px}
.sala-card__numeros span{display:block;color:#b9c7ee;font-size:.6rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.sala-card__numeros strong{display:block;margin:4px 0 2px;color:#fff;font:800 1.5rem/1 var(--display);font-variant-numeric:tabular-nums}
.sala-card__numeros small{color:#c9d5f5;font-size:.68rem}
.sala-card__numeros .is-verde strong{color:#7ef0b8}
.sala-card__numeros .is-vermelho strong{color:#ffb4ac}
.sala-card__acoes{display:flex;gap:10px;flex-wrap:wrap}
.sala-card__acoes .btn--linha{color:#fff;border-color:rgba(255,255,255,.34);background:transparent}
.sala-card__acoes .btn--linha:hover{color:#0c1130;background:#fff;border-color:#fff}
@media(max-width:900px){.sala-card__numeros{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.sala-card{padding:20px}.sala-card__acoes .btn{width:100%;justify-content:center}}

/* ---- Caixa da Sala de Questões no painel do professor ------------------ */
.prof-sala-caixa{display:grid;gap:16px;margin:0 0 18px;padding:22px 24px;background:#fff;border:1px solid var(--linha);border-left:4px solid var(--laranja);border-radius:20px;box-shadow:var(--sombra)}
.prof-sala-caixa__topo{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.prof-sala-caixa__topo h2{margin:3px 0 5px;font-size:1.2rem;letter-spacing:-.02em}
.prof-sala-caixa__topo .btn{flex:0 0 auto;margin:0}
.prof-sala-caixa__numeros{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.prof-sala-caixa__numeros article{padding:13px 15px;background:var(--papel);border:1px solid var(--linha);border-radius:14px}
.prof-sala-caixa__numeros span{display:block;color:var(--cinza);font-size:.6rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.prof-sala-caixa__numeros strong{display:block;margin:4px 0 2px;font:800 1.45rem/1 var(--display);font-variant-numeric:tabular-nums}
.prof-sala-caixa__numeros small{color:var(--cinza);font-size:.68rem}
.prof-sala-caixa__numeros .is-alerta{background:#fff2f0;border-color:rgba(197,34,42,.2)}
.prof-sala-caixa__numeros .is-alerta strong{color:var(--errado)}
.prof-sala-caixa__acoes{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:900px){.prof-sala-caixa__numeros{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.prof-sala-caixa{padding:20px}.prof-sala-caixa__acoes .btn{width:100%;justify-content:center}}

/* ---- Cartões de simulado no painel do aluno --------------------------- */
.desafio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:stretch;gap:18px}
.desafio-card{--acento:#2f5bd8;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'topo topo' 'titulo titulo' 'nota nota' 'dados acoes';align-content:start;align-items:center;gap:15px 18px;min-width:0;padding:24px;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--acento) 5%,#fff) 0,#fff 46%);border:1px solid color-mix(in srgb,var(--acento) 18%,var(--linha));border-radius:20px;box-shadow:0 2px 3px rgba(12,17,48,.04),0 14px 34px rgba(12,17,48,.08);transition:transform .22s cubic-bezier(.2,.8,.3,1),border-color .22s ease,box-shadow .22s ease}
.desafio-card::before{content:'';position:absolute;z-index:-1;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--acento) 0,color-mix(in srgb,var(--acento) 62%,#fff) 72%,color-mix(in srgb,var(--acento) 18%,#fff) 100%)}
.desafio-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--acento) 30%,var(--linha));box-shadow:0 3px 5px rgba(12,17,48,.05),0 20px 42px rgba(12,17,48,.12)}
.desafio-card--feito{--acento:#0f9d63}
.desafio-card.is-alto{--acento:#0f9d63}
.desafio-card.is-medio{--acento:#c9821a}
.desafio-card.is-baixo{--acento:#c5222a}
.desafio-card__topo{grid-area:topo;display:flex;align-items:center;justify-content:space-between;gap:10px}
.desafio-card .status-pilula{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;color:color-mix(in srgb,var(--acento) 72%,var(--marinho));background:color-mix(in srgb,var(--acento) 9%,#fff);border:1px solid color-mix(in srgb,var(--acento) 24%,transparent);border-radius:999px;font-size:.6rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.desafio-card .status-pilula::before{content:'';width:6px;height:6px;flex:0 0 6px;background:var(--acento);border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,var(--acento) 12%,transparent)}
.desafio-card__prazo{color:var(--cinza);font-size:.68rem;font-weight:800}
.desafio-card h3{grid-area:titulo;min-height:2.55em;margin:0;color:var(--marinho);font-size:1.04rem;line-height:1.28;letter-spacing:-.025em;text-wrap:balance;text-transform:none}
.desafio-card__nota{grid-area:nota;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:14px 15px;background:color-mix(in srgb,var(--acento) 5%,#fff);border:1px solid color-mix(in srgb,var(--acento) 16%,var(--linha));border-radius:16px}
.desafio-card__anel{flex:0 0 auto;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:conic-gradient(var(--acento) calc(var(--pct)*1%),color-mix(in srgb,var(--acento) 13%,#e7eaf1) 0);box-shadow:0 5px 14px color-mix(in srgb,var(--acento) 13%,transparent)}
.desafio-card__anel span{display:flex;align-items:baseline;justify-content:center;width:47px;height:47px;background:#fff;border-radius:50%;font:800 1.08rem/47px var(--display);color:var(--acento);font-variant-numeric:tabular-nums}
.desafio-card__anel i{font-style:normal;font-size:.55rem;margin-left:2px}
.desafio-card__nota strong{display:block;color:var(--marinho);font-size:.86rem;line-height:1.25}
.desafio-card__nota small{display:block;margin-top:4px;color:var(--cinza);font-size:.67rem;line-height:1.4}
.desafio-card__dados{grid-area:dados;display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.desafio-card__dados span{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;color:var(--cinza);background:var(--papel);border:1px solid var(--linha);border-radius:10px;font-size:.67rem;font-weight:650}
.desafio-card__dados strong{color:var(--marinho);font-weight:850;font-variant-numeric:tabular-nums}
.desafio-card__acoes{grid-area:acoes;display:flex;justify-content:flex-end;gap:8px;min-width:0;flex-wrap:wrap}
.desafio-card__acoes .btn{min-height:40px;margin:0;padding:9px 15px;white-space:nowrap}
@media(max-width:760px){.desafio-card{grid-template-columns:1fr;grid-template-areas:'topo' 'titulo' 'nota' 'dados' 'acoes'}.desafio-card h3{min-height:0}.desafio-card__acoes{justify-content:flex-start;padding-top:13px;border-top:1px solid color-mix(in srgb,var(--acento) 12%,var(--linha))}}
@media(max-width:560px){.desafio-grid{grid-template-columns:1fr;gap:12px}.desafio-card{gap:12px;padding:19px 17px;border-radius:18px}.desafio-card__nota{padding:12px}.desafio-card__anel{width:56px;height:56px}.desafio-card__anel span{width:43px;height:43px;line-height:43px}.desafio-card__acoes .btn{flex:1;justify-content:center}}

/* === EXPERIÊNCIA MOBILE/PWA v2 — 05/09/2026 =========================== */
html,body{width:100%;max-width:100%;overflow-x:hidden}
@supports(overflow:clip){html,body{overflow-x:clip}}
img,svg,video,iframe{max-width:100%}
.folha,.folha>*,.aula-cabecalho>*,.abrir-material>*{min-width:0}
.aula-cabecalho h1,.aula-cabecalho p,.material-card h3,.material-card p,
.hub-hero h1,.hub-hero p,.pagina-cabecalho h1{overflow-wrap:anywhere}
.migalhas{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
.abrir-material__acoes{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-left:auto}
.abrir-material__acoes .btn{margin:0;white-space:nowrap}
.btn--desmarcar{color:#9c2419;border-color:#e9bbb7;background:#fff7f6}
.btn--desmarcar:hover{color:#fff;border-color:#b62e25;background:#b62e25}

@media(max-width:760px){
  body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
  .folha{width:100%;max-width:100%;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .topo__interno{width:100%;max-width:100%}
  .hub-hero,.progresso-hero,.ranking-hero,.certificados-hero{flex-direction:column;align-items:stretch;padding:23px 19px;gap:19px}
  .hub-progresso{align-items:flex-start;min-width:0}
  .hub-hero__acoes,.pagina-cabecalho{flex-direction:column;align-items:stretch}
  .hub-hero__acoes .btn,.pagina-cabecalho .btn{width:100%;justify-content:center;text-align:center}
  .filtros-modernos{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
  .busca-moderna{min-width:0}
  .material-card__rodape{align-items:stretch;flex-direction:column}
  .material-card__rodape .btn,.material-card__rodape a{width:100%;justify-content:center;text-align:center}
  .aula-cabecalho{width:100%;gap:16px}
  .aula-cabecalho form,.aula-cabecalho form .btn{width:100%}
  .abrir-material{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%;gap:13px}
  .abrir-material__acoes{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:0}
  .abrir-material__acoes .btn{width:100%;white-space:normal;text-align:center;justify-content:center}
  input,select,textarea{max-width:100%}
  .tabela-rolagem{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

@media(max-width:480px){
  .filtros-modernos{grid-template-columns:1fr}
  .filtros-modernos>.btn{width:100%;justify-content:center}
  .abrir-material{grid-template-columns:1fr}
  .abrir-material__icone{width:52px;height:52px}
  .abrir-material__acoes{grid-column:1;grid-template-columns:1fr}
  .resumo-faixa{grid-template-columns:1fr}
}

@media(max-width:360px){
  .area-aluno .navegacao-inferior a{font-size:.58rem}
  .area-aluno .navegacao-inferior .nav-icone{width:20px;height:20px}
}
