/* Sistema visual da plataforma — tokens únicos, sem framework. */
/* Aurí v2 — identidade redesenhada (navy #09182C + dourado #F7C82B).
   Paleta reconciliada a partir de duas referências de moodboard com
   valores levemente diferentes entre si — os tons abaixo são a média
   matemática das duas, não escolha arbitrária de um lado.
   Regra dura: o dourado é acento, nunca texto de corpo sobre fundo
   claro (falha WCAG AA de contraste) — só aparece como texto sobre o
   navy, ou usa a variante --dourado-escuro sobre claro. */
:root{
  --tinta:#0B1526;          /* texto principal — muda no tema escuro */
  --marca:#09182C;          /* navy fixo de identidade — NUNCA muda de tema (botão primário, palco, badges) */
  --marca-2:#143055;        /* hover do navy fixo — também nunca muda; dobra como "superfície" no tema escuro */
  --tinta-2:#143055;        /* navy claro: hover e superfícies */
  --papel:#EDF1F8;          /* fundo da aplicação */
  --branco:#FFFFFF;
  --dourado:#F7C82B;        /* acento: bordas, estado ativo, marcador, CTAs */
  --dourado-fraco:#FDF3D6;  /* fundo de destaque suave */
  --dourado-escuro:#7A5A05; /* versão legível para texto sobre claro */
  --coral:#EF4444;
  --erro-fundo:#FDE8E8;
  --sucesso:#10B981;
  --sucesso-fundo:#E3F9F0;
  --cinza:#5A667F;
  --linha:#D8DEEA;
  --raio:18px; --nav-h:64px; --escala-fonte:1;
}
[data-fonte="grande"]{--escala-fonte:1.15}
[data-fonte="pequena"]{--escala-fonte:0.9}
/* Tema escuro — mesma identidade (navy + dourado), invertendo qual dos
   dois vira fundo e qual vira texto. O dourado não muda: já nasceu
   pensado pra funcionar sobre navy (ver nota de contraste acima). */
[data-tema="escuro"]{
  --tinta:#EFF2F7;          /* agora é o texto claro, não mais o fundo escuro */
  --tinta-2:#B9C4DB;        /* hover/texto secundário mais claro */
  --papel:#060D1C;          /* fundo geral — mais escuro que o navy original */
  --branco:#143055;         /* fundo dos cards — a "superfície" da paleta nova */
  --dourado-fraco:#2E2610;  /* destaque suave escuro, mesma família do dourado */
  --dourado-escuro:#F7C82B; /* no escuro, o dourado puro já é legível — não precisa escurecer */
  --coral:#F87171;
  --erro-fundo:#3D1515;     /* fundo de erro escuro — mesma família do coral, sem brilhar no escuro */
  --sucesso:#34D399;
  --sucesso-fundo:#0F2E22;
  --cinza:#9AA7C2;
  --linha:#24406B;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--papel);color:var(--tinta);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,sans-serif;
  font-size:calc(15px * var(--escala-fonte));line-height:1.55;-webkit-font-smoothing:antialiased;
}
a{color:var(--tinta);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--tinta);outline-offset:2px}

/* ---------- estrutura ---------- */
.app{min-height:100dvh;display:flex;flex-direction:column}
.conteudo{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:18px 16px calc(var(--nav-h) + 28px)}
@media(min-width:900px){
  .app{flex-direction:row}
  .conteudo{padding:28px 32px 48px}
}

/* ---------- marca ---------- */
/* O wordmark "Aurí" é o único lugar que mantém a serifada — é o logo,
   não um título de UI. Todo o resto do sistema usa Poppins/Inter. */
.marca{display:flex;align-items:center;gap:10px}
.marca-sinal{width:34px;height:34px;border-radius:10px;background:var(--marca);display:grid;place-items:center;flex:none;overflow:hidden}
.marca-sinal img{width:100%;height:100%;object-fit:cover}
.marca-sinal i{width:12px;height:12px;border-radius:50%;background:var(--dourado);box-shadow:0 0 0 4px rgba(247,200,43,.30)}
.marca-nome{font-family:"Cormorant Garamond",Georgia,serif;font-weight:700;font-size:21px;letter-spacing:.01em;line-height:1;color:var(--tinta)}
.marca-sub{font-family:"Poppins",sans-serif;font-size:10.5px;font-weight:600;color:var(--cinza);letter-spacing:.09em;text-transform:uppercase}

/* ---------- topo mobile ---------- */
.topo{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;background:var(--branco);border-bottom:1px solid var(--linha);position:sticky;top:0;z-index:20}
.topo-acoes{display:flex;align-items:center;gap:10px;flex:none}
.topo-sino{width:36px;height:36px;border-radius:50%;background:var(--papel);
  display:grid;place-items:center;flex:none}
.topo-sino .icone-svg{background:none;padding:0;width:19px;height:19px}
.topo-avatar{width:36px;height:36px;border-radius:50%;flex:none;overflow:hidden;
  display:grid;place-items:center;background:var(--marca)}
.topo-avatar img{width:100%;height:100%;object-fit:cover}
.topo-avatar span{color:var(--dourado);font-family:"Poppins",sans-serif;font-weight:700;font-size:13px}
@media(min-width:900px){.topo{display:none}}

/* ---------- navegação ---------- */
.nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-h);z-index:30;
  background:var(--branco);border-top:1px solid var(--linha);
  display:flex;padding-bottom:env(safe-area-inset-bottom);
  scrollbar-width:thin;scrollbar-color:var(--linha) transparent}
.nav::-webkit-scrollbar{width:6px}
.nav::-webkit-scrollbar-track{background:transparent}
.nav::-webkit-scrollbar-thumb{background:var(--linha);border-radius:999px}
.nav::-webkit-scrollbar-thumb:hover{background:var(--cinza)}
.nav a,.nav button{font:inherit;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:11px;font-weight:600;color:var(--cinza);text-decoration:none;
  min-height:44px;background:none;border:0;cursor:pointer;padding:0}
.nav-primario{display:flex;flex:1}
.nav a.ativo{color:var(--tinta)}
.nav a.ativo .icone-svg{background:var(--marca);color:var(--dourado)}
.icone-svg{width:32px;height:32px;padding:7px;box-sizing:border-box;border-radius:9px;
  background:var(--papel);transition:background-color .16s,color .16s;flex:none;display:inline-flex}
.icone-svg use{stroke:currentColor}

/* mobile: só os itens "primário" ficam na barra fixa — o resto mora no
   painel "Mais", que se abre por cima em vez de espremer a barra toda. */
.nav-secundario,.nav-marca,.nav-rodape,.nav-fechar{display:none}
.nav-cortina{display:none}
@media(max-width:899px){
  .nav-mais-abrir{display:flex;flex:1}
}

/* painel "Mais" — desliza da direita, cobre a tela, some ao fechar.
   É o MESMO elemento <nav>: alterna entre "barra compacta" (padrão) e
   "painel aberto" (classe .aberto) via JS, sem duplicar HTML. */
@media(max-width:899px){
  .nav.aberto{
    position:fixed;inset:0;left:auto;height:100dvh;width:min(320px,84vw);
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    padding:18px 14px calc(18px + env(safe-area-inset-bottom));gap:2px;
    border-top:0;border-left:1px solid var(--linha);
    box-shadow:-12px 0 32px rgba(9,24,44,.18);
    overflow-y:auto;
  }
  .nav.aberto .nav-primario,.nav.aberto .nav-mais-abrir{display:none}
  .nav.aberto .nav-secundario{display:flex;flex:none;flex-direction:row;justify-content:flex-start;
    gap:11px;padding:11px 12px;border-radius:12px;font-size:14px;min-height:46px}
  .nav.aberto .nav-secundario .nav-icone{flex:none}
  .nav.aberto .nav-marca{display:flex;margin-bottom:14px;padding:0 4px}
  .nav.aberto .nav-fechar{display:flex;position:absolute;top:14px;right:12px;flex:none;width:36px;min-height:36px;
    color:var(--tinta);font-size:20px}
  .nav.aberto .nav-rodape{display:block;margin-top:auto;font-size:12px;color:var(--cinza);
    padding:12px 4px 0;border-top:1px solid var(--linha)}
  .nav-cortina:not([hidden]){display:block;position:fixed;inset:0;z-index:29;
    background:rgba(9,24,44,.45)}
}

@media(min-width:900px){
  .nav{position:sticky;top:0;height:100dvh;width:236px;flex-direction:column;
    border-top:0;border-right:1px solid var(--linha);padding:22px 14px;gap:4px;
    overflow-y:auto}
  .nav a,.nav button{flex:none;flex-direction:row;justify-content:flex-start;gap:11px;
    padding:11px 12px;border-radius:12px;font-size:14px;min-height:44px}
  .nav a.ativo{background:var(--dourado-fraco);color:var(--tinta)}
  .nav-primario,.nav-secundario{display:flex}
  .nav-marca{display:flex;margin-bottom:20px;padding:0 4px}
  .nav-rodape{display:block;margin-top:auto;font-size:12px;color:var(--cinza);padding:12px 4px 0;border-top:1px solid var(--linha)}
  .nav-mais-abrir,.nav-fechar,.nav-cortina{display:none!important}
}

/* ---------- tipografia ---------- */
.eyebrow{font-family:"Poppins",sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tinta)}
h1{font-family:"Poppins",sans-serif;font-weight:700;
  font-size:clamp(26px,5.6vw,38px);letter-spacing:-.01em;line-height:1.12;margin:6px 0 8px}
h2{font-family:"Poppins",sans-serif;font-size:16px;font-weight:700;letter-spacing:-.01em}
.lede{color:var(--cinza);max-width:58ch}

/* ---------- cartões ---------- */
.grade{display:grid;gap:14px;margin-top:20px}

/* ---------- bento grid — bloco em destaque + blocos menores ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}
.bento-2x2{grid-column:span 2;grid-row:span 2}
@media(max-width:680px){.bento{grid-template-columns:repeat(2,1fr)}.bento-2x2{grid-column:span 2}}
.cartao.cartao-destaque{background:linear-gradient(135deg,var(--marca) 0%,#1c3a63 100%);
  border:none;color:#fff;display:flex;flex-direction:column;justify-content:center}
.cartao.cartao-destaque .kpi{color:#fff}
.cartao.cartao-destaque .kpi-rotulo{color:rgba(255,255,255,.65)}
.kpi-nota{font-size:11.5px;color:var(--cinza);margin-top:6px}
@media(min-width:700px){.grade.duas{grid-template-columns:1fr 1fr}}
@media(min-width:700px){.grade.tres{grid-template-columns:repeat(3,1fr)}}
.cartao{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);padding:16px}
.cartao .nota{font-size:13px;color:var(--cinza);margin-top:2px}
a.cartao{color:inherit;text-decoration:none;display:block;transition:.16s}
a.cartao:hover{border-color:var(--marca);text-decoration:none}

.kpi{font-family:"Poppins",sans-serif;font-weight:700;
  font-size:32px;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.kpi-rotulo{font-family:"Poppins",sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cinza);margin-top:4px}

/* ---------- botões e campos ---------- */
.btn{font:inherit;font-weight:600;font-size:14px;cursor:pointer;min-height:44px;
  border:1px solid var(--linha);background:var(--branco);color:var(--tinta);
  padding:10px 18px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:.16s;text-decoration:none}
.btn:hover{border-color:var(--marca);text-decoration:none}
.btn.primario{background:var(--dourado);color:var(--marca);border-color:var(--dourado);font-weight:700}
.btn.primario:hover{background:var(--dourado-escuro);border-color:var(--dourado-escuro);color:var(--branco)}
[data-tema="escuro"] .btn.primario:hover{color:var(--marca);background:var(--dourado-escuro)}
.campo{margin-bottom:14px}
.campo label{display:block;font-family:"Poppins",sans-serif;font-size:12px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--cinza);margin-bottom:6px}
.campo input,.campo select{font:inherit;width:100%;min-height:44px;padding:10px 12px;
  border-radius:12px;border:1px solid var(--linha);background:var(--branco);color:var(--tinta)}

/* ---------- chips de parâmetro ---------- */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.chip{font-family:"Poppins",sans-serif;font-size:11px;font-weight:700;
  background:var(--papel);border:1px solid var(--linha);border-radius:999px;padding:5px 12px}
.chip.destaque{background:var(--dourado-fraco);border-color:var(--dourado);color:var(--dourado-escuro)}

/* ---------- selo de status ---------- */
.selo{font-family:"Poppins",sans-serif;font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 9px;border-radius:7px;background:var(--papel);color:var(--cinza)}
.selo.publicado{background:var(--sucesso-fundo);color:var(--sucesso)}
.selo.rascunho{background:var(--erro-fundo);color:var(--coral)}

/* ---------- listas ---------- */
.lista{list-style:none;display:grid;gap:8px;margin-top:12px}
.lista li{display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 14px;background:var(--branco);border:1px solid var(--linha);border-radius:12px}
.vazio{padding:22px 16px;text-align:center;color:var(--cinza);border:1px dashed var(--linha);
  border-radius:var(--raio);background:var(--branco)}

/* ---------- login ---------- */
.login-tela{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}
.login-caixa{width:100%;max-width:380px}
.login-caixa .cartao{padding:22px}
.erro{background:var(--erro-fundo);border-left:3px solid var(--coral);padding:10px 12px;
  border-radius:0 10px 10px 0;font-size:13.5px;margin-bottom:14px}

/* ---------- player ---------- */
.palco{position:relative;background:var(--marca);border-radius:var(--raio);overflow:hidden;
  aspect-ratio:3/4;max-height:62vh;margin:0 auto;display:grid;place-items:center}
@media(min-width:700px){.palco{aspect-ratio:3/4;max-width:420px}}
.palco video,.palco iframe{width:100%;height:100%;border:0;object-fit:contain}
.palco-vazio{color:rgba(255,255,255,.6);font-size:13.5px;text-align:center;padding:24px}
.controles{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.velocidades{display:flex;border:1px solid var(--linha);border-radius:12px;overflow:hidden;background:var(--branco)}
.velocidades button{font-family:"Poppins",sans-serif;font-size:12px;font-weight:700;
  border:0;background:transparent;color:var(--cinza);padding:0 14px;min-height:44px;cursor:pointer}
.velocidades button+button{border-left:1px solid var(--linha)}
.velocidades button[aria-pressed="true"]{background:var(--marca);color:var(--dourado)}
.btn[aria-pressed="true"]{background:var(--marca);border-color:var(--marca);color:var(--dourado)}
.espelhado video{transform:scaleX(-1)}

/* linha de fases */
.trilha{display:flex;height:46px;border-radius:12px;overflow:hidden;border:1px solid var(--linha);margin-top:14px}
.faixa{flex:1;display:grid;place-items:center;font-family:"Poppins",sans-serif;
  font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  color:var(--cinza);background:var(--branco);border:0;cursor:pointer;min-height:44px}
.faixa+.faixa{border-left:1px solid var(--linha)}
.faixa[data-tipo="movimento"]{background:var(--dourado-fraco);color:var(--dourado-escuro)}
.faixa[aria-pressed="true"]{background:var(--marca);color:var(--branco)}

/* ---------- espelho de prática (modal com câmera) ---------- */
.modal-pratica{border:none;border-radius:var(--raio);padding:20px;max-width:820px;width:92vw}
.modal-pratica::backdrop{background:rgba(9,24,44,.6)}
.pratica-cabecalho{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pratica-lado-a-lado{display:grid;gap:14px;margin-top:10px}
@media(min-width:640px){.pratica-lado-a-lado{grid-template-columns:1fr 1fr}}
.pratica-lado-a-lado video{width:100%;aspect-ratio:3/4;object-fit:cover;
  border-radius:var(--raio);background:var(--marca)}
#pratica-camera{transform:scaleX(-1)} /* espelho de verdade — a mão direita do aluno aparece à direita dele */

/* botão sair: precisa parecer link, mas ser POST. A classe .nav-secundario
   (definida lá em cima, junto do resto da navegação) já cuida de
   mostrar/esconder e do layout — aqui só o essencial de estilo do botão
   interno, que não herda flex do form pai automaticamente. */
.nav-sair button{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:11px;width:100%;color:inherit;font:inherit}
.nav-tema{width:100%}
@media(min-width:900px){
  .nav-sair button:hover{background:var(--papel)}
  .nav-tema:hover{background:var(--papel)}
}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ---------- selo ESX ---------- */
.selo-esx{margin-top:26px;padding-top:14px;border-top:1px solid var(--linha);
  font-size:12px;color:var(--cinza);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.selo-esx .marca-esx{font-weight:700;color:var(--tinta);letter-spacing:.02em}
.selo-esx .risco{width:20px;height:2px;background:var(--dourado);flex:none;border-radius:2px}
.selo-login{margin-top:18px;text-align:center;font-size:12.5px;color:var(--cinza)}
.selo-login .assinatura{display:inline-flex;align-items:center;gap:9px;
  background:var(--marca);color:var(--branco);padding:9px 16px;border-radius:999px;
  font-size:12px;letter-spacing:.02em}
.selo-login .assinatura strong{color:var(--dourado);font-weight:700}
.selo-login .tagline{display:block;margin-top:9px;font-family:"Poppins",sans-serif;
  font-weight:600;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--cinza)}


/* ---------- mensagens e ajuda de formulário ---------- */
.aviso{padding:11px 14px;border-radius:12px;font-size:14px;margin-bottom:12px;
  border-left:3px solid var(--dourado);background:var(--dourado-fraco);color:var(--tinta)}
.aviso.error{border-left-color:var(--coral);background:var(--erro-fundo);color:var(--coral)}
.aviso.success{border-left-color:var(--sucesso);background:var(--sucesso-fundo);color:var(--sucesso)}
.ajuda{font-size:12.5px;color:var(--cinza);margin-top:5px}
.erro-campo{font-size:12.5px;color:var(--coral);margin-top:5px;font-weight:600}
.campo textarea{font:inherit;width:100%;padding:10px 12px;border-radius:12px;
  border:1px solid var(--linha);background:var(--branco);color:var(--tinta);resize:vertical}
.campo input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--dourado)}
.campo input[type=file]{padding:9px}
.lista form{margin:0}


/* ---------- envio de vídeo e marcação de fases ---------- */
.checklist{list-style:none;display:grid;gap:11px;margin-top:4px}
.checklist li{display:flex;gap:11px;align-items:flex-start;font-size:14px}
.marca-item{width:24px;height:24px;border-radius:8px;flex:none;display:grid;place-items:center;
  background:var(--marca);color:var(--dourado);font-family:"Poppins",sans-serif;
  font-size:12px;font-weight:700}
.relogio{font-family:"Poppins",sans-serif;font-size:14px;font-weight:700;
  background:var(--marca);color:var(--dourado);padding:0 14px;border-radius:12px;
  display:inline-flex;align-items:center;min-height:44px}
.marcadores{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.marcadores .btn{min-height:40px;padding:8px 13px;font-size:13px}
.valor{font-family:"Poppins",sans-serif;font-size:13px;font-weight:700;color:var(--tinta);
  background:var(--dourado-fraco);border:1px solid var(--dourado);border-radius:9px;
  padding:7px 11px;min-width:74px;text-align:center}


/* ---------- atividades ---------- */
.opcoes{display:grid;gap:9px;margin-top:14px}
.opcao{display:flex;gap:11px;align-items:flex-start;padding:13px 14px;cursor:pointer;
  border:1px solid var(--linha);border-radius:12px;background:var(--branco);
  font-size:14.5px;min-height:52px;transition:.14s}
.opcao:hover{border-color:var(--marca)}
.opcao input{margin-top:2px;width:20px;height:20px;flex:none;accent-color:var(--dourado)}
.opcao:has(input:checked){border-color:var(--dourado);background:var(--dourado-fraco)}
.opcao .palco{aspect-ratio:3/4;max-height:220px}
.alternativa{border-top:1px dashed var(--linha);padding-top:14px;margin-top:14px}
.alternativa:first-of-type{border-top:0;padding-top:0;margin-top:10px}
.rotulo-alt{font-family:"Poppins",sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--cinza);margin-bottom:8px}

/* ---------- paginação ---------- */
.paginacao{display:flex;gap:10px;align-items:center;justify-content:center;
  flex-wrap:wrap;margin-top:20px}
.pagina-atual{font-family:"Poppins",sans-serif;font-size:12px;color:var(--cinza)}


/* ---------- acessibilidade ---------- */
.pular{position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--marca);color:var(--dourado);padding:12px 18px;
  border-radius:0 0 12px 0;font-weight:700;font-size:14px}
.pular:focus{left:0;text-decoration:none}
#conteudo:focus{outline:none}
/* o botão do VLibras não pode cobrir a navegação inferior no celular */
@media(max-width:899px){
  div[vw] .vw-access-button{bottom:calc(var(--nav-h) + 12px)!important}
}

/* ---------- legenda dos parâmetros ---------- */
.legenda-parametros{margin-top:12px;font-size:13px}
.legenda-parametros summary{
  cursor:pointer;color:var(--dourado-escuro);font-weight:700;list-style:none;
  display:inline-flex;align-items:center;gap:6px;padding:2px 0;
}
.legenda-parametros summary::-webkit-details-marker{display:none}
.legenda-parametros summary::before{
  content:"?";width:16px;height:16px;border-radius:50%;background:var(--dourado);
  color:var(--marca);font-size:11px;font-weight:800;display:inline-grid;place-items:center;flex:none;
}
.legenda-parametros summary:hover{text-decoration:underline}
.legenda-parametros[open] summary{margin-bottom:8px}
.legenda-intro{color:var(--cinza);margin-bottom:8px}
.legenda-parametros dl{
  display:grid;gap:8px;background:var(--dourado-fraco);border-radius:12px;padding:12px 14px;
  border:1px solid var(--linha);
}
.legenda-parametros dt{
  font-family:"Poppins",sans-serif;font-size:11px;font-weight:700;color:var(--tinta);
  letter-spacing:.02em;
}
.legenda-parametros dd{color:var(--cinza);font-size:12.5px;margin:2px 0 0}

/* ---------- sequência do aluno (streak) ---------- */
.sequencia{display:flex;align-items:center;gap:16px;background:var(--dourado-fraco);
  border:1px solid var(--dourado);border-radius:var(--raio);padding:16px 18px;margin-top:16px}
.sequencia-numero{font-family:"Poppins",sans-serif;font-weight:700;font-size:38px;
  color:var(--dourado-escuro);line-height:1;font-variant-numeric:tabular-nums;
  display:flex;align-items:center;gap:6px}
.sequencia-chama{font-size:26px}
.sequencia-texto{flex:1}
.sequencia-titulo{font-weight:700;color:var(--tinta)}
.sequencia-nota{font-size:13px;color:var(--cinza);margin-top:2px}
.sequencia.risco{background:var(--erro-fundo);border-color:var(--coral)}
.sequencia.risco .sequencia-numero{color:var(--coral)}

/* ---------- sinal do dia ---------- */
a.sinal-do-dia{display:flex;flex-direction:column;gap:2px;background:var(--dourado-fraco);
  border:1px solid var(--dourado);border-radius:var(--raio);padding:14px 18px;margin-top:16px}
a.sinal-do-dia:hover{border-color:var(--dourado-escuro);text-decoration:none}
.sinal-do-dia-rotulo{font-family:"Poppins",sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--dourado-escuro)}
.sinal-do-dia-glosa{font-family:"Poppins",sans-serif;font-weight:700;
  font-size:24px;color:var(--tinta);line-height:1.2}
.sinal-do-dia-pt{font-size:13px;color:var(--cinza)}

/* variante azul — usada na "Frase do dia", pra não ficar idêntica ao
   card de sinal do dia (dourado) logo acima dela */
a.sinal-do-dia.frase-do-dia{background:#DCE8FD;border-color:#1958A8}
a.sinal-do-dia.frase-do-dia:hover{border-color:#0F3D7A}
a.sinal-do-dia.frase-do-dia .sinal-do-dia-rotulo{color:#1958A8}
[data-tema="escuro"] a.sinal-do-dia.frase-do-dia{background:#16273F;border-color:#6FA8F5}
[data-tema="escuro"] a.sinal-do-dia.frase-do-dia .sinal-do-dia-rotulo{color:#6FA8F5}

/* ---------- círculo de progresso (painel do aluno) ---------- */
.cartao-progresso{display:flex;align-items:center;gap:18px;background:var(--branco);
  border:1px solid var(--linha);border-radius:var(--raio);padding:18px;margin-top:20px}
.circulo-progresso{position:relative;flex:none;width:96px;height:96px}
.circulo-progresso svg{transition:stroke-dashoffset .5s ease}
.circulo-progresso-texto{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;gap:1px}
.circulo-progresso-numero{font-family:"Poppins",sans-serif;font-weight:700;font-size:24px;color:var(--tinta);line-height:1}
.circulo-progresso-total{font-family:"Poppins",sans-serif;font-weight:600;font-size:13px;color:var(--cinza);line-height:1;margin-top:9px}
.cartao-progresso-legenda .nota{margin-top:2px}

/* ---------- perfil: cabeçalho com avatar grande + stats + menu ---------- */
.perfil-cabecalho{display:flex;flex-direction:column;align-items:center;text-align:center;
  margin-top:18px;padding:22px 16px;background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio)}
.perfil-avatar-grande{position:relative;width:84px;height:84px}
.perfil-avatar-grande img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:1px solid var(--linha)}
.perfil-avatar-grande span{width:84px;height:84px;border-radius:50%;background:var(--marca);color:var(--dourado);
  display:grid;place-items:center;font-family:"Poppins",sans-serif;font-weight:700;font-size:26px}
.perfil-avatar-editar{position:absolute;bottom:-2px;right:-2px;width:30px;height:30px;border-radius:50%;
  background:var(--dourado);border:3px solid var(--branco);display:grid;place-items:center;cursor:pointer;font-size:13px}

.perfil-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.perfil-stat{background:var(--branco);border:1px solid var(--linha);border-radius:14px;
  padding:14px 8px;text-align:center}
.perfil-stat-numero{font-family:"Poppins",sans-serif;font-weight:700;font-size:22px;color:var(--tinta);
  font-variant-numeric:tabular-nums}
.perfil-stat-rotulo{font-size:10.5px;color:var(--cinza);margin-top:2px;line-height:1.3}

.perfil-menu{display:grid;gap:8px;margin-top:14px}
.perfil-menu-item{display:flex;align-items:center;gap:12px;background:var(--branco);
  border:1px solid var(--linha);border-radius:14px;padding:13px 15px;text-decoration:none;transition:.14s}
.perfil-menu-item:hover{border-color:var(--marca);text-decoration:none}
.perfil-menu-icone{width:34px;height:34px;border-radius:10px;flex:none;background:var(--dourado-fraco)!important;
  color:var(--dourado-escuro);padding:8px!important;box-sizing:border-box}
.perfil-menu-texto{flex:1;font-family:"Poppins",sans-serif;font-weight:600;font-size:14px;color:var(--tinta)}
.perfil-menu-seta{color:var(--cinza);font-size:18px}
.chips-categoria{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;overflow-x:auto;padding-bottom:2px}
.chip-categoria{font-family:"Poppins",sans-serif;font-size:12.5px;font-weight:600;
  padding:8px 15px;border-radius:999px;border:1px solid var(--linha);background:var(--branco);
  color:var(--cinza);white-space:nowrap;flex:none;min-height:38px;display:inline-flex;align-items:center;
  transition:background-color .16s,border-color .16s,color .16s}
.chip-categoria.ativo{background:var(--marca);border-color:var(--marca);color:var(--dourado)}
.chip-categoria:hover{text-decoration:none;border-color:var(--marca)}

/* ---------- cards de sinal com selo visual (dicionário) ---------- */
.grade-sinais{display:grid;gap:12px;margin-top:18px}
@media(min-width:700px){.grade-sinais{grid-template-columns:1fr 1fr}}
.cartao-sinal{display:flex;gap:13px;align-items:flex-start;background:var(--branco);
  border:1px solid var(--linha);border-radius:var(--raio);padding:15px;text-decoration:none;transition:.14s}
.cartao-sinal:hover{border-color:var(--marca);text-decoration:none}
.cartao-sinal-selo{width:44px;height:44px;border-radius:13px;flex:none;
  display:grid;place-items:center;font-family:"Poppins",sans-serif;font-weight:700;font-size:18px}
.cartao-sinal-capa{width:44px;height:44px;border-radius:13px;flex:none;object-fit:cover}
.cartao-sinal-corpo{flex:1;min-width:0}
.cartao-sinal-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cartao-sinal-corpo h2{font-size:17px}
.grade-categorias{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
@media(min-width:640px){.grade-categorias{grid-template-columns:repeat(4,1fr)}}
.cartao-categoria{display:flex;align-items:center;gap:10px;background:var(--branco);
  border:1px solid var(--linha);border-radius:14px;padding:12px 13px;text-decoration:none;transition:.14s}
.cartao-categoria:hover{border-color:var(--dourado);text-decoration:none}
.cartao-categoria-icone{width:34px;height:34px;border-radius:10px;flex:none;
  display:grid;place-items:center;font-family:"Poppins",sans-serif;font-weight:700;font-size:14px}
.cartao-categoria-nome{font-family:"Poppins",sans-serif;font-weight:600;font-size:13px;color:var(--tinta)}
.cartao-categoria-conta{font-size:11.5px;color:var(--cinza);margin-top:1px}

/* ---------- central de notificações ---------- */
.lista-notificacoes{display:grid;gap:9px;margin-top:16px}
.notificacao{display:flex;gap:12px;align-items:flex-start;background:var(--branco);
  border:1px solid var(--linha);border-radius:14px;padding:13px 15px}
.notificacao-icone{width:36px;height:36px;border-radius:11px;flex:none;
  background:var(--papel);display:grid;place-items:center;font-size:16px}
.notificacao-conquista .notificacao-icone{background:var(--dourado-fraco)}
.notificacao-risco .notificacao-icone{background:var(--erro-fundo)}
.notificacao-titulo{font-size:14px;color:var(--tinta);line-height:1.4}
.notificacao-quando{font-size:11.5px;color:var(--cinza);margin-top:3px}

/* ---------- onboarding (carrossel antes do login, uma vez por aparelho) ---------- */
.onboarding-slide{text-align:center;padding:8px 6px 22px}
.onboarding-emoji{font-size:52px;line-height:1;margin-bottom:14px}
.onboarding-slide h2{font-size:21px;line-height:1.3}
.onboarding-slide .nota{margin-top:8px;font-size:14px}
.onboarding-pontos{display:flex;justify-content:center;gap:7px;margin-bottom:16px}
.onboarding-ponto{width:7px;height:7px;border-radius:50%;background:var(--linha)}
.onboarding-ponto.ativo{background:var(--dourado);width:20px;border-radius:4px;transition:.2s}
.onboarding-controles{display:flex;justify-content:space-between;gap:10px}

/* ---------- ícone do botão de tema — alterna sol/lua conforme o tema ativo ---------- */
.icone-alvo-claro{display:none}
[data-tema="escuro"] .icone-alvo-escuro{display:none}
[data-tema="escuro"] .icone-alvo-claro{display:inline-flex}

/* ---------- cursos: cards com ícone + barra de progresso ---------- */
.grade-cursos{display:grid;gap:12px;margin-top:16px}
@media(min-width:700px){.grade-cursos{grid-template-columns:1fr 1fr}}
.cartao-curso{display:flex;gap:13px;align-items:flex-start;background:var(--branco);
  border:1px solid var(--linha);border-radius:var(--raio);padding:15px;text-decoration:none;transition:.14s}
.cartao-curso:hover{border-color:var(--marca);text-decoration:none}
.cartao-curso-icone{width:44px;height:44px;border-radius:13px;flex:none;
  background:var(--dourado-fraco);color:var(--dourado-escuro);display:grid;place-items:center}
.cartao-curso-icone .icone-svg{width:22px;height:22px;padding:0;background:none}
.cartao-curso-corpo{flex:1;min-width:0}
.cartao-curso-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cartao-curso-corpo h2{font-size:17px}
.barra-progresso{height:6px;border-radius:999px;background:var(--papel);margin-top:10px;overflow:hidden}
.barra-progresso-cheia{height:100%;background:var(--dourado);border-radius:999px;transition:width .4s ease}

/* ---------- passos numerados ("Como fazer o sinal") ---------- */
.passos-numerados{list-style:none;display:grid;gap:10px}
.passos-numerados li{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--tinta)}
.passo-numero{width:24px;height:24px;border-radius:50%;flex:none;background:var(--marca);
  color:var(--dourado);display:grid;place-items:center;font-family:"Poppins",sans-serif;
  font-weight:700;font-size:12px;margin-top:1px}

/* ---------- campo de senha com botão de mostrar/esconder ---------- */
.campo-senha{position:relative}
.campo-senha input{padding-right:44px}
.campo-senha-alternar{position:absolute;right:4px;top:50%;transform:translateY(-50%);
  background:none;border:0;cursor:pointer;padding:8px;display:grid;place-items:center}
.campo-senha-alternar .icone-svg{background:none;padding:0;width:20px;height:20px;color:var(--cinza)}
.icone-senha-esconder{display:none}
.campo-senha-alternar[aria-pressed="true"] .icone-senha-mostrar{display:none}
.campo-senha-alternar[aria-pressed="true"] .icone-senha-esconder{display:inline-flex}

/* ---------- cores variadas por categoria (selo do dicionário/trilha/dashboard) ---------- */
/* Determinística via hash do nome (ver filtro cor_categoria) — mesma
   categoria sempre cai na mesma cor, sem precisar de catálogo fixo. */
.cor-cat-0{background:var(--dourado-fraco);color:var(--dourado-escuro)}
.cor-cat-1{background:#DCE8FD;color:#1958A8}
.cor-cat-2{background:#DCF5E8;color:#0F7A4A}
.cor-cat-3{background:#EDE0FB;color:#6B34B8}
.cor-cat-4{background:#FDE0EC;color:#C21F6B}
.cor-cat-5{background:#D7F3F0;color:#0E7C72}
.cor-cat-6{background:#FDE6D2;color:#C2570C}
[data-tema="escuro"] .cor-cat-1{background:#16273F;color:#6FA8F5}
[data-tema="escuro"] .cor-cat-2{background:#123324;color:#4ADE95}
[data-tema="escuro"] .cor-cat-3{background:#271A3D;color:#C293F5}
[data-tema="escuro"] .cor-cat-4{background:#3A1526;color:#F582B3}
[data-tema="escuro"] .cor-cat-5{background:#103330;color:#4FE0D3}
[data-tema="escuro"] .cor-cat-6{background:#3A2210;color:#F5A05C}
