/* Fase 11: cursos (catálogo, detalhe, meus cursos, sala de aula, certificado) */
.cursos-pagina { padding:40px 0 70px; }
.cursos-busca { background:#fff; border:1px solid #E5E7EB; border-radius:14px; padding:20px; margin-bottom:20px; box-shadow:0 4px 14px rgba(17,24,39,.04); }
.cursos-busca__linha { display:flex; gap:10px; flex-wrap:wrap; }
.cursos-busca__texto { flex:1 1 320px; position:relative; margin:0; }
.cursos-busca__texto i { position:absolute; left:14px; top:50%; transform:translateY(-50%); font-size:20px; color:#4B5563; }
.cursos-busca__texto input { width:100%; height:52px; border:1px solid #9CA3AF; border-radius:10px; padding:0 14px 0 44px; font-size:16px; }
.cursos-filtros { display:flex; flex-wrap:wrap; gap:12px 18px; margin-top:14px; align-items:flex-end; }
.cursos-filtros label { display:flex; flex-direction:column; gap:4px; font-size:13px; font-weight:600; color:#374151; margin:0; }
.cursos-filtros select { min-width:170px; height:42px; border:1px solid #9CA3AF; border-radius:8px; padding:0 10px; font-size:15px; background:#fff; color:#111827; }
.cursos-limpar { font-weight:600; text-decoration:underline; color:#1e4fa8; padding-bottom:10px; }
.cursos-contagem { color:#374151; margin:0 0 16px; }
.cursos-contagem a { text-decoration:underline; color:#1e4fa8; font-weight:600; }
.cursos-vazio { text-align:center; padding:40px; background:#fff; border-radius:14px; border:1px solid #E5E7EB; }
.cursos-grade { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:20px; }
.curso-card { background:#fff; border:1px solid #E5E7EB; border-radius:14px; overflow:hidden; transition:box-shadow .2s, transform .2s; }
.curso-card:hover, .curso-card:focus-within { box-shadow:0 10px 28px rgba(17,24,39,.10); transform:translateY(-2px); }
.curso-card__link { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.curso-card__capa { position:relative; aspect-ratio:16/9; background:linear-gradient(135deg, var(--cor), color-mix(in srgb, var(--cor) 55%, #000)); display:flex; align-items:center; justify-content:center; }
.curso-card__capa img { width:100%; height:100%; object-fit:cover; }
.curso-card__inicial { font-size:64px; color:rgba(255,255,255,.9); }
.curso-card__modalidade { position:absolute; left:12px; top:12px; background:#fff; color:#111827; font-size:12px; font-weight:700; padding:4px 10px; border-radius:999px; }
.curso-card__corpo { padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
.curso-card__area { font-size:12px; font-weight:700; color:#14532D; text-transform:uppercase; letter-spacing:.03em; }
.curso-card__titulo { font-size:18px; line-height:1.3; margin:0; color:#111827; font-weight:700; }
.curso-card__parceiro { margin:0; color:#4B5563; font-size:14px; }
.curso-card__info { list-style:none; margin:4px 0 0; padding:0; display:flex; gap:14px; flex-wrap:wrap; color:#374151; font-size:14px; }
.curso-card__nota { margin:0; display:flex; align-items:center; gap:8px; font-size:13px; color:#374151; }
.curso-card__situacao { margin:auto 0 0; padding-top:8px; font-size:14px; font-weight:600; }
.curso-card__situacao--aberta { color:#14532D; }
.curso-card__situacao--breve { color:#1E3A8A; }
.curso-card__situacao--fechada { color:#4B5563; }
.curso-card__progresso { margin-top:auto; padding-top:8px; font-size:14px; font-weight:600; color:#1F2937; display:grid; gap:6px; }
.barra { display:block; height:8px; background:#E5E7EB; border-radius:999px; overflow:hidden; }
.barra i { display:block; height:100%; background:var(--c-primaria, #1e7e34); border-radius:999px; }
.estrelas { --tam:16px; display:inline-block; width:calc(var(--tam) * 5); height:var(--tam);
  background:linear-gradient(90deg, #B45309 calc(var(--nota) / 5 * 100%), #D1D5DB 0);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.9 7.5.7-5.7 5 1.7 7.4L12 18.3 5.5 22l1.7-7.4-5.7-5 7.5-.7z'/%3E%3C/svg%3E") 0 0/var(--tam) var(--tam) repeat-x;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3 6.9 7.5.7-5.7 5 1.7 7.4L12 18.3 5.5 22l1.7-7.4-5.7-5 7.5-.7z'/%3E%3C/svg%3E") 0 0/var(--tam) var(--tam) repeat-x; }

/* detalhe do curso */
.curso-topo { background:linear-gradient(135deg, color-mix(in srgb, var(--cor) 85%, #000), color-mix(in srgb, var(--cor) 45%, #000)); color:#fff; padding:125px 0 36px; }
.curso-topo h1 { color:#fff; font-size:34px; line-height:1.2; margin:6px 0 8px; }
.curso-topo__trilha, .curso-topo__trilha a { color:#fff; font-size:14px; }
.curso-topo__trilha a { text-decoration:underline; color:#fff !important; }
.curso-topo__sub { font-size:18px; color:#fff; margin:0 0 14px; max-width:760px; }
.curso-topo__fatos { list-style:none; margin:0; padding:0; display:flex; gap:10px 22px; flex-wrap:wrap; font-size:15px; }
.curso-topo__fatos li { display:flex; align-items:center; gap:6px; color:#fff; }
.estrelas--claro { background:linear-gradient(90deg, #FCD34D calc(var(--nota) / 5 * 100%), rgba(255,255,255,.45) 0); }
.curso-grade { display:grid; grid-template-columns:minmax(0, 1fr) 360px; gap:28px; align-items:start; }
@media (max-width: 991px) { .curso-grade { grid-template-columns:1fr; } .curso-lado { order:-1; } }
.curso-bloco { background:#fff; border:1px solid #E5E7EB; border-radius:14px; padding:22px 24px; margin-bottom:20px; }
.curso-bloco h2 { font-size:20px; margin:0 0 12px; }
.curso-texto { color:#1F2937; line-height:1.65; }
.curso-mudo { color:#4B5563; font-size:14px; }
.curso-modulo { border:1px solid #E5E7EB; border-radius:10px; margin-bottom:10px; }
.curso-modulo summary { cursor:pointer; padding:12px 14px; display:flex; justify-content:space-between; gap:10px; background:#F9FAFB; border-radius:10px; }
.curso-modulo ul { list-style:none; margin:0; padding:6px 14px 12px; }
.curso-modulo li { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid #F3F4F6; }
.curso-modulo li:last-child { border-bottom:0; }
.curso-modulo li > a, .curso-modulo li > span:nth-child(2) { flex:1; }
.curso-modulo li a { color:#1e4fa8; text-decoration:underline; }
.curso-modulo li i { font-size:20px; color:#374151; }
.curso-ok { color:#15803D; font-weight:700; }
.curso-prof { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; }
.curso-prof img, .curso-prof__ini { width:72px; height:72px; border-radius:50%; object-fit:cover; flex:none; }
.curso-prof__ini { display:flex; align-items:center; justify-content:center; background:var(--c-primaria, #1e7e34); color:#fff; font-size:28px; font-weight:700; }
.curso-prof p { margin:6px 0 0; color:#374151; line-height:1.55; }
.curso-avals { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.curso-avals p { margin:4px 0; color:#1F2937; }
.curso-caixa { background:#fff; border:1px solid #E5E7EB; border-radius:14px; padding:20px; position:sticky; top:110px; box-shadow:0 6px 20px rgba(17,24,39,.06); }
.curso-caixa__capa { width:100%; border-radius:10px; margin-bottom:12px; aspect-ratio:16/9; object-fit:cover; }
.curso-caixa__preco { font-size:24px; font-weight:800; color:#14532D; margin:0 0 10px; }
.curso-caixa__dados { margin:0 0 14px; display:grid; gap:8px; }
.curso-caixa__dados div { display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid #F3F4F6; padding-bottom:6px; }
.curso-caixa__dados dt { color:#4B5563; font-weight:500; font-size:14px; }
.curso-caixa__dados dd { margin:0; font-weight:600; color:#111827; text-align:right; font-size:14px; }
.curso-docs { background:#FFFBEB; border:1px solid #FDE68A; border-radius:10px; padding:12px; font-size:14px; margin-bottom:14px; }
.curso-docs ul { margin:6px 0; padding-left:18px; }
.curso-feito { color:#14532D; font-weight:700; margin:0 0 10px; }
.curso-aviso { color:#713F12; background:#FEF9C3; padding:10px 12px; border-radius:8px; margin:0 0 10px; }
.curso-andamento { font-weight:700; margin:0 0 6px; }
#cursoStatus:empty { display:none; }
#cursoStatus { margin-top:10px; }

/* meus cursos */
.mc-nivel { display:flex; gap:18px; align-items:center; flex-wrap:wrap; background:linear-gradient(135deg, #14532D, var(--c-primaria, #1e7e34)); color:#fff; border-radius:14px; padding:18px 22px; margin-bottom:20px; }
.mc-nivel__selo { width:64px; height:64px; border-radius:50%; background:#FDE68A; color:#713F12; font-size:28px; font-weight:800; display:flex; align-items:center; justify-content:center; border:4px solid #fff; flex:none; }
.mc-nivel__info { flex:1 1 280px; }
.mc-nivel__info p { margin:0 0 6px; color:#fff; }
.mc-nivel .curso-mudo { color:#fff; font-size:13px; }
.mc-nivel .barra { background:rgba(255,255,255,.3); }
.mc-nivel .barra i { background:#FDE68A; }
.mc-nivel__fatos { display:flex; gap:16px; flex-wrap:wrap; font-size:14px; }
.mc-nivel__fatos span { background:rgba(255,255,255,.15); padding:6px 12px; border-radius:999px; color:#fff; }
.mc-cursos { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.mc-curso { display:flex; gap:16px; align-items:flex-start; border:1px solid #E5E7EB; border-radius:12px; padding:14px; flex-wrap:wrap; }
.mc-curso__capa { width:140px; aspect-ratio:16/9; border-radius:8px; overflow:hidden; flex:none; background:linear-gradient(135deg, var(--cor), color-mix(in srgb, var(--cor) 55%, #000)); display:flex; align-items:center; justify-content:center; color:#fff; font-size:36px; }
.mc-curso__capa img { width:100%; height:100%; object-fit:cover; }
.mc-curso__info { flex:1 1 260px; min-width:0; }
.mc-curso__info h4 { margin:0 0 4px; font-size:17px; }
.mc-curso__info h4 a { color:#111827; }
.mc-curso__info p { margin:0 0 6px; }
.mc-curso__prog { display:grid; gap:4px; max-width:360px; font-size:14px; }
.mc-curso__acoes { display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
@media (max-width: 640px) { .mc-curso__acoes { align-items:flex-start; width:100%; } .mc-curso__capa { width:100%; } }
.mc-cancelar, .mc-link { background:none; border:0; color:#1e4fa8; text-decoration:underline; cursor:pointer; font-size:14px; padding:0; }
.mc-cancelar { color:#991B1B; }
.mc-docs { margin-top:10px; background:#F9FAFB; border-radius:10px; padding:12px; }
.mc-docs ul { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px; }
.mc-docs li { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.mc-docs__nome { font-weight:600; min-width:180px; }
.mc-docs__botao { padding:6px 14px !important; font-size:14px; cursor:pointer; margin:0; }
.mc-docs__botao:focus-within { outline:3px solid #1e4fa8; }
.mc-docs__status { margin:8px 0 0; }
.mc-selos { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:14px; }
.mc-selo { border:2px solid var(--cor); border-radius:14px; padding:16px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; }
.mc-selo__icone { width:60px; height:60px; border-radius:50%; background:var(--cor); color:#fff; display:flex; align-items:center; justify-content:center; font-size:30px; margin-bottom:6px; }
.mc-selo.bloqueado { border-color:#D1D5DB; background:#F9FAFB; }
.mc-selo.bloqueado .mc-selo__icone { background:#9CA3AF; }

/* validação do certificado */
.cert-valido { background:#fff; border:2px solid #15803D; border-radius:14px; padding:22px; }
.cert-valido__selo { font-size:22px; font-weight:800; color:#14532D; margin:0 0 14px; display:flex; align-items:center; gap:8px; }
.cert-valido__selo i { font-size:30px; }
.cert-valido dl { display:grid; gap:8px; margin:0 0 16px; }
.cert-valido dl div { display:grid; grid-template-columns:180px 1fr; gap:10px; border-bottom:1px solid #F3F4F6; padding-bottom:6px; }
@media (max-width: 560px) { .cert-valido dl div { grid-template-columns:1fr; gap:2px; } }
.cert-valido dt { color:#4B5563; font-weight:500; }
.cert-valido dd { margin:0; font-weight:700; color:#111827; }
.cert-invalido { background:#FEF2F2; border:2px solid #FCA5A5; border-radius:14px; padding:18px 20px; color:#7F1D1D; }
.cert-invalido p { margin:0 0 6px; }
.curso-previa { background:#EFF6FF; color:#1E3A8A; border:1px solid #BFDBFE; border-radius:999px; font-size:13px; font-weight:700; padding:3px 10px; cursor:pointer; white-space:nowrap; }

/* ================================================================
   Celular (até 767px): visual de aplicativo, sem espaços sobrando
   ================================================================ */
.cursos-filtrar-btn, .cursos-filtros__topo, .cursos-filtros__aplicar, .cursos-filtros-fundo, .curso-barra { display:none; }
body.sem-rolagem { overflow:hidden; }
@media (max-width: 767px) {
  /* cabeçalho da página: só o título, pequeno, logo abaixo do topo */
  .page-title.page-title--app { padding:92px 0 6px; background:#fff; }
  .page-title--app h1 { font-size:22px; line-height:1.25; margin:0; }
  .page-title--app .page-breadcrumb { display:none; }
  .cursos-pagina { padding:6px 0 28px; }
  .cursos-pagina .auto-container, .curso-topo .auto-container { padding-left:14px; padding-right:14px; }

  /* busca numa linha só: campo + Buscar + Filtros */
  .cursos-busca { border:0; box-shadow:none; padding:0; margin-bottom:10px; background:transparent; }
  .cursos-busca__linha { flex-wrap:nowrap; gap:8px; }
  .cursos-busca__texto { flex:1 1 auto; min-width:0; }
  .cursos-busca__texto input { height:46px; border-radius:23px; font-size:16px; padding-left:40px; background:#F3F4F6; border-color:#D1D5DB; }
  .cursos-busca__texto i { left:12px; font-size:18px; }
  .cursos-busca__linha > .theme-btn { display:none; }
  .cursos-filtrar-btn { display:inline-flex; align-items:center; gap:6px; flex:none; height:46px; padding:0 14px; border-radius:23px;
    border:1px solid #D1D5DB; background:#fff; color:#111827; font-weight:600; font-size:15px; }
  .cursos-filtrar-btn i { font-size:18px; }
  .cursos-filtrar-btn__n { background:var(--c-primaria, #1e7e34); color:#fff; border-radius:999px; font-size:12px; min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; }

  /* filtros viram uma folha que sobe de baixo */
  .cursos-filtros-fundo:not([hidden]) { display:block; position:fixed; inset:0; background:rgba(17,24,39,.5); z-index:9995; }
  .cursos-filtros { position:fixed; left:0; right:0; bottom:0; z-index:9996; margin:0; background:#fff; border-radius:18px 18px 0 0;
    padding:8px 16px calc(16px + env(safe-area-inset-bottom)); flex-direction:column; align-items:stretch; gap:12px;
    transform:translateY(105%); transition:transform .22s ease; max-height:85vh; overflow:auto; box-shadow:0 -8px 30px rgba(0,0,0,.2); }
  .cursos-filtros.aberta { transform:none; }
  @media (prefers-reduced-motion: reduce) { .cursos-filtros { transition:none; } }
  .cursos-filtros__topo { display:flex; justify-content:space-between; align-items:center; padding:6px 0; border-bottom:1px solid #F3F4F6; }
  .cursos-filtros__topo strong { font-size:18px; }
  .cursos-filtros__fechar { width:40px; height:40px; border:0; background:#F3F4F6; border-radius:50%; font-size:24px; line-height:1; color:#111827; }
  .cursos-filtros label { width:100%; }
  .cursos-filtros select { width:100%; min-width:0; height:48px; font-size:16px; }
  .cursos-filtros__aplicar { display:block; width:100%; }
  .cursos-limpar { padding:0; text-align:center; }

  .cursos-contagem { font-size:14px; margin-bottom:10px; }

  /* cards em lista: capa pequena à esquerda */
  .cursos-grade { grid-template-columns:1fr; gap:10px; }
  .curso-card { border-radius:12px; }
  .curso-card:hover, .curso-card:focus-within { transform:none; }
  .curso-card__link { flex-direction:row; }
  .curso-card__capa { width:104px; aspect-ratio:auto; flex:none; align-self:stretch; min-height:118px; }
  .curso-card__inicial { font-size:36px; }
  .curso-card__modalidade { left:6px; right:6px; top:auto; bottom:6px; font-size:10px; padding:2px 6px; text-align:center; }
  .curso-card__corpo { padding:10px 12px; gap:3px; }
  .curso-card__area { font-size:10.5px; }
  .curso-card__titulo { font-size:16px; }
  .curso-card__parceiro { font-size:13px; }
  .curso-card__info { gap:10px; font-size:13px; margin-top:2px; }
  .curso-card__nota { font-size:12px; }
  .curso-card__situacao, .curso-card__progresso { padding-top:4px; font-size:13px; }

  /* página do curso */
  .curso-topo { padding:90px 0 14px; }
  .curso-topo h1 { font-size:22px; margin:2px 0 4px; }
  .curso-topo__trilha { font-size:13px; }
  .curso-topo__sub { font-size:14px; margin-bottom:8px; }
  .curso-topo__fatos { gap:4px 12px; font-size:13px; }
  .curso-grade { gap:12px; }
  .curso-lado { order:0; }
  .curso-bloco { padding:14px; margin-bottom:12px; border-radius:12px; }
  .curso-bloco h2 { font-size:17px; margin-bottom:8px; }
  .curso-texto { font-size:15px; line-height:1.55; }
  .curso-modulo summary { padding:10px 12px; font-size:14px; }
  .curso-modulo ul { padding:4px 10px 8px; }
  .curso-modulo li { padding:8px 0; font-size:14px; gap:8px; flex-wrap:wrap; }
  .curso-prof img, .curso-prof__ini { width:52px; height:52px; font-size:22px; }
  /* resumo do curso em grade de 2 colunas; a ação vai para a barra fixa */
  .curso-caixa { position:static; padding:12px 14px; box-shadow:none; border-radius:12px; }
  .curso-caixa__capa, .curso-caixa__preco { display:none; }
  .curso-caixa__dados { grid-template-columns:1fr 1fr; gap:8px 12px; margin:0; }
  .curso-caixa__dados div { flex-direction:column; gap:0; border:0; padding:0; }
  .curso-caixa__dados dt { font-size:12px; }
  .curso-caixa__dados dd { text-align:left; font-size:14px; }
  #cursoAcao > .theme-btn, #cursoAcao > .barra, #cursoAcao > .curso-andamento, #cursoAcao > .curso-feito { display:none; }
  #cursoAcao > p.curso-mudo { display:none; }
  .curso-docs { margin:10px 0 0; }
  .curso-barra { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:9980; align-items:center; gap:12px; background:#fff;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -6px 20px rgba(17,24,39,.12); }
  .curso-barra__info { display:flex; flex-direction:column; line-height:1.2; flex:1; min-width:0; }
  .curso-barra__info strong { color:#14532D; font-size:16px; }
  .curso-barra__info span { font-size:12.5px; color:#4B5563; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .curso-barra .theme-btn { padding:12px 18px; flex:none; }
  .curso-barra__ok { color:#14532D; font-weight:700; }
  .curso-barra__fechado { color:#4B5563; font-weight:600; font-size:14px; }
  body:has(.curso-barra) { padding-bottom:76px; }

  /* validação do certificado */
  .cert-valido { padding:14px; }
  .cert-valido__selo { font-size:18px; margin-bottom:8px; }
  .cert-valido dl { gap:6px; }
  .cert-valido dl div { padding-bottom:4px; }
}
/* botão de acessibilidade acima de qualquer barra fixa de baixo */
@media (max-width: 991px) {
  body:has(.barra-inferior) .a11y { bottom:88px; }
}
.curso-abas-bloco { padding-top:6px; }
.curso-abas { margin:0 0 4px; }
.curso-sub { font-size:16px; margin:16px 0 6px; }
@media (max-width: 767px) {
  .curso-lado { order:-1; }
  .curso-abas-bloco { padding:4px 12px 12px; }
  .aula-abas.curso-abas { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; overflow:visible; }
  .curso-abas [role=tab] { padding:12px 4px; font-size:14px; }
  .curso-abas [role=tab] span { display:none; }
}
@media (max-width: 991px) { .curso-grade { grid-template-columns:minmax(0, 1fr); } .curso-principal, .curso-lado { min-width:0; } }
.curso-sub { font-weight:700; }
@media (max-width: 767px) {
  .curso-caixa__dados div { justify-content:flex-start; }
  .aula-abas.curso-abas [role=tab] { white-space:normal; line-height:1.2; padding:12px 2px; font-size:13.5px; }
}

/* turmas na página do curso */
.curso-turmas { border:0; padding:0; margin:0 0 14px; }
.curso-turmas legend { font-weight:600; font-size:15px; margin-bottom:8px; color:#111827; }
.curso-turma { display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid #E5E7EB; border-radius:10px; margin-bottom:8px; cursor:pointer; background:#fff; }
.curso-turma:has(input:checked) { border-color:var(--c-primaria, #15803D); box-shadow:0 0 0 1px var(--c-primaria, #15803D); }
.curso-turma input { margin-top:3px; width:18px; height:18px; flex:none; }
.curso-turma > span { display:flex; flex-direction:column; gap:1px; font-size:14px; color:#374151; }
.curso-turma strong { color:#111827; }
.curso-turma__vagas { font-size:13px; color:#15803D; font-weight:600; }
.curso-turma--cheia .curso-turma__vagas { color:#92400E; }
.curso-turma:has(input:disabled) { opacity:.6; cursor:not-allowed; }
