/* FM4 — Plataforma de ensino: mesmo visual escuro do site */
:root {
  --fundo: #070B14; --fundo-2: #0B1120; --painel: #111A2C; --painel-2: #16213A; --linha: #1F2B45;
  --texto: #E7ECF5; --texto-2: #9AA8C2; --texto-3: #6B7A96;
  --azul: #4582FF; --azul-claro: #7EA8FF; --azul-escuro: #2F66E0;
  --verde: #3DDC97; --amarelo: #FFC35C; --amarelo-claro: #FFD27A; --vermelho: #FF7A7A;
  --mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
  --lado: 248px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { color-scheme: dark; background: var(--fundo); }
body { background: var(--fundo); color: var(--texto); font: 15px/1.55 "Poppins", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }
ul { list-style: none; }
.ico { width: 18px; height: 18px; flex: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Estrutura ---------- */
.app { display: grid; grid-template-columns: var(--lado) 1fr; min-height: 100vh; background: linear-gradient(90deg, var(--fundo-2) var(--lado), transparent var(--lado)); }
.lado { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 4px; padding: 22px 16px; background: var(--fundo-2); border-right: 1px solid var(--linha); }
.lado__logo { width: 124px; height: auto; margin: 6px 14px 28px; }
.lado__item { position: relative; white-space: nowrap; display: flex; align-items: center; gap: 12px; height: 44px; padding: 0 14px; border-radius: 10px; color: var(--texto-2); font-size: 14.5px; font-weight: 500; transition: background .15s, color .15s; }
.lado__item:hover { background: rgba(255,255,255,.03); color: var(--texto); }
.lado__item.on { background: rgba(69,130,255,.12); color: #fff; }
.lado__item.on::before { content: ""; position: absolute; left: -16px; top: 10px; bottom: 10px; width: 3px; border-radius: 0 3px 3px 0; background: var(--azul); }
.lado__item.on .ico { color: var(--azul-claro); }
.lado__breve { margin-left: auto; font-size: 10px; padding: 0 6px; white-space: nowrap; border-radius: 99px; border: 1px solid var(--linha); color: var(--texto-3); }
.lado__sep { height: 1px; background: var(--linha); margin: 10px 14px; }
.lado__pe { margin-top: auto; display: flex; flex-direction: column; gap: 4px; padding-top: 10px; border-top: 1px solid var(--linha); }
.conteudo { padding: 28px 40px 56px; width: 100%; min-width: 0; }
.conteudo > :not(.topo) { max-width: 1240px; }
.conteudo > .sala__grade { max-width: 1500px; }
.topo { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px; min-height: 84px; margin: -28px -40px 26px; padding: 14px 40px; background: rgba(7,11,20,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--linha); }
.topo__txt { flex: 1; min-width: 0; }
.topo__txt .titulo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topo__volta { width: 40px; height: 40px; flex: none; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--linha); color: var(--texto-2); }
.topo__volta:hover { color: #fff; border-color: var(--azul); }
.topo__dir { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.titulo { font-size: 26px; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; }
.sub { color: var(--texto-2); font-size: 14.5px; }
.idioma { display: flex; gap: 2px; padding: 3px; border: 1px solid var(--linha); border-radius: 8px; }
.idioma button { border: 0; background: none; cursor: pointer; padding: 3px 8px; border-radius: 5px; font-size: 12px; font-weight: 600; color: var(--texto-3); }
.idioma button.on { background: var(--painel-2); color: #fff; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--azul), #7B5CFF); display: grid; place-items: center; font-weight: 700; font-size: 14px; color: #fff; flex: none; }
.avatar--g { width: 84px; height: 84px; font-size: 28px; }
.navbaixo { display: none; }

/* ---------- Peças ---------- */
.card { background: var(--painel); border: 1px solid var(--linha); border-radius: 16px; }
.caixa { padding: 18px 20px; }
.caixa__t { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 600; margin-bottom: 14px; }
.caixa__t a { margin-left: auto; font-size: 13px; font-weight: 500; color: var(--azul-claro); }
.rot { font: 13px var(--mono); color: var(--azul-claro); }
.barra { height: 6px; border-radius: 99px; background: #1B2741; overflow: hidden; }
.barra i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--azul), var(--azul-claro)); }
.barra--ok i { background: var(--verde); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 10px; border: 1px solid transparent; background: var(--azul); color: #fff; font-weight: 600; font-size: 14.5px; white-space: nowrap; cursor: pointer; transition: background .15s, border-color .15s; }
.btn:hover { background: var(--azul-escuro); }
.btn--p { height: 38px; padding: 0 14px; font-size: 13.5px; }
.btn--linha { background: transparent; border-color: var(--linha); color: var(--texto); }
.btn--linha:hover { background: rgba(69,130,255,.08); border-color: var(--azul); }
.btn--ok { background: rgba(61,220,151,.12); border-color: rgba(61,220,151,.4); color: var(--verde); }
.btn--ok:hover { background: rgba(61,220,151,.2); }
.btn--am { background: linear-gradient(180deg, #FFC35C, #F2A428); color: #1A1203; }
.btn--am:hover { background: #FFC35C; }
.etq { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 99px; border: 1px solid var(--linha); color: var(--texto-2); white-space: nowrap; }
.etq--ok { color: var(--verde); border-color: rgba(61,220,151,.4); }
.etq--az { color: var(--azul-claro); border-color: rgba(69,130,255,.5); }
.etq--am { color: var(--amarelo-claro); border-color: rgba(255,195,92,.45); }
.etq--vm { color: var(--vermelho); border-color: rgba(255,122,122,.45); }
.vazio { color: var(--texto-3); font-size: 14px; }
.aviso-demo { margin-bottom: 18px; padding: 10px 14px; border-radius: 10px; border: 1px dashed rgba(255,195,92,.45); color: var(--amarelo-claro); font-size: 13px; }

/* ---------- Início ---------- */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.kpi { padding: 18px 20px; }
.kpi small { display: block; color: var(--texto-2); font-size: 13px; }
.kpi b { display: block; margin-top: 4px; font-size: 30px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.kpi span { font-size: 12.5px; color: var(--verde); }
.kpi span.neutro { color: var(--texto-2); }
.grade2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.col { display: flex; flex-direction: column; gap: 20px; }
.cont { display: flex; gap: 16px; align-items: center; }
.cont__img { position: relative; width: 150px; flex: none; border-radius: 10px; overflow: hidden; }
.cont__img img { width: 100%; aspect-ratio: 733/500; object-fit: cover; object-position: left center; }
.cont__img span { position: absolute; inset: 0; display: grid; place-items: center; }
.cont__img span i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: rgba(69,130,255,.92); box-shadow: 0 8px 22px rgba(69,130,255,.5); }
.cont__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.cont__meta { color: var(--texto-2); font-size: 13px; }
.cont__aula { font-size: 16px; font-weight: 600; line-height: 1.35; }
.cont__barra { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--texto-2); }
.cont__barra .barra { flex: 1; }
.semana { display: flex; align-items: flex-end; gap: 12px; height: 150px; }
.semana__d { flex: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; }
.semana__d i { display: block; width: 100%; max-width: 34px; min-height: 4px; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, var(--azul-claro), var(--azul)); }
.semana__d i.zero { background: #1B2741; }
.semana__d em { font-style: normal; font-size: 11px; color: var(--texto-2); min-height: 15px; }
.semana__d span { font-size: 12px; color: var(--texto-3); }
.semana__d.hoje span { color: #fff; font-weight: 600; }
.semana__tot { margin-top: 12px; font-size: 13px; color: var(--texto-2); }
.lista { display: flex; flex-direction: column; }
.lista__i { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-top: 1px solid var(--linha); }
.lista__i:first-child { border-top: 0; padding-top: 0; }
.lista__i:last-child { padding-bottom: 0; }
.lista__i img { width: 76px; border-radius: 8px; aspect-ratio: 733/500; object-fit: cover; object-position: left center; }
.lista__i > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.lista__i b { font-size: 14px; font-weight: 600; }
.lista__i span { font-size: 12.5px; color: var(--texto-2); }
.pend { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 12px; background: rgba(255,195,92,.08); border: 1px solid rgba(255,195,92,.35); }
.pend + .pend { margin-top: 10px; }
.pend > div { flex: 1; }
.pend b { display: block; font-size: 14px; color: var(--amarelo-claro); }
.pend span { font-size: 13px; color: var(--texto-2); }
.pend--vm { background: rgba(255,122,122,.07); border-color: rgba(255,122,122,.35); }
.pend--vm b { color: var(--vermelho); }
.aviso { padding: 12px 0; border-top: 1px solid var(--linha); font-size: 13.5px; }
.aviso:first-of-type { border-top: 0; padding-top: 0; }
.aviso:last-child { padding-bottom: 0; }
.aviso small { display: block; color: var(--texto-3); font-size: 12px; margin-bottom: 2px; }


/* ---------- Painel do Início (um só grid: mesmo espaço na horizontal e na vertical) ---------- */
.painel { --gap: 20px; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }
.painel .kpis { display: contents; }
.painel .meia { grid-column: span 2; }
.painel .todo { grid-column: 1 / -1; }
.painel .kpi { margin: 0; }
.cont { display: grid; grid-template-columns: minmax(0, 44%) 1fr; grid-template-rows: auto 1fr; column-gap: 18px; }
.cont > .caixa__t { grid-column: 1 / -1; }
.cont .cont__img { width: 100%; height: 100%; min-height: 150px; align-self: stretch; }
.cont .cont__img img { height: 100%; }
.cont .cont__txt { justify-content: center; }
.cont .cont__txt .btn { align-self: flex-start; margin-top: 4px; }
.sem { display: flex; flex-direction: column; }
.sem .semana { flex: 1; min-height: 150px; }
.gc { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap, 20px); }
.gcc { display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; border: 1px solid var(--linha); background: var(--painel-2); transition: border-color .15s, transform .15s; }
a.gcc:hover, .gcc__link:hover h3 { border-color: var(--azul); }
a.gcc:hover { transform: translateY(-2px); }
.gcc img, .gcc__link img { width: 100%; aspect-ratio: 733/500; object-fit: cover; }
.gcc__link { display: flex; flex-direction: column; flex: 1; }
.gcc__c { flex: 1; display: flex; flex-direction: column; gap: 9px; padding: 14px 16px 16px; }
.gcc__c .etq { align-self: flex-start; }
.gcc__c .etq .ico { width: 13px; height: 13px; }
.gcc h3 { font-size: 15px; font-weight: 600; line-height: 1.35; }
.gcc__c > p { font-size: 13px; color: var(--texto-2); }
.gcc__i { display: flex; justify-content: space-between; }
.gcc__ver { margin-top: auto; display: flex; align-items: center; gap: 6px; color: var(--azul-claro) !important; font-weight: 500; }
.gcc__ver .ico { width: 15px; height: 15px; }
.gcc--novo img { filter: grayscale(.45) brightness(.6); }
.gcc__pe { display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 0 16px 16px; }
.gcc__pe b { font-size: 15px; }

/* ---------- Sino de alertas ---------- */
.sino { position: relative; }
.sino__btn { position: relative; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--linha); background: var(--painel); color: var(--texto-2); cursor: pointer; }
.sino__btn:hover, .sino__btn[aria-expanded="true"] { color: #fff; border-color: var(--azul); }
.sino__btn .ico { width: 20px; height: 20px; }
.sino__n { position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: #FF5C5C; color: #fff; font-size: 11.5px; font-weight: 700; display: grid; place-items: center; border: 2px solid var(--fundo); }
.sino__lista { position: absolute; right: 0; top: calc(100% + 10px); z-index: 30; width: 380px; max-width: calc(100vw - 32px); padding: 14px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.9); }
.sino__t { font-size: 14px; font-weight: 600; margin: 2px 4px 10px; }
.alerta { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 12px; border: 1px solid var(--linha); }
.alerta + .alerta { margin-top: 8px; }
.alerta > .ico { color: var(--azul-claro); }
.alerta > div { flex: 1; min-width: 0; }
.alerta b { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.4; }
.alerta span { font-size: 12.5px; color: var(--texto-2); }
.alerta--am { background: rgba(255,195,92,.07); border-color: rgba(255,195,92,.35); }
.alerta--am > .ico, .alerta--am b { color: var(--amarelo-claro); }
.alerta--vm { background: rgba(255,122,122,.06); border-color: rgba(255,122,122,.35); }
.alerta--vm > .ico, .alerta--vm b { color: var(--vermelho); }
.alerta--az b { font-weight: 500; }

/* ---------- Tela do curso ---------- */
.volta { margin: -8px 0 16px; font-size: 13.5px; }
.volta a { display: inline-flex; align-items: center; gap: 6px; color: var(--azul-claro); }
.volta .ico { width: 15px; height: 15px; }
.cs-topo { display: grid; grid-template-columns: 300px 1fr; gap: 24px; padding: 20px; align-items: center; }
.cs-topo img { width: 100%; border-radius: 12px; aspect-ratio: 733/500; object-fit: cover; }
.cs-topo > div { display: flex; flex-direction: column; gap: 14px; }
.cs-topo .etq { align-self: flex-start; }
.cs-topo .etq .ico { width: 13px; height: 13px; }
.cs-num { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.cs-num li { padding: 10px 12px; border-radius: 10px; background: #0B1222; border: 1px solid var(--linha); }
.cs-num b { display: block; font-size: 17px; font-weight: 700; }
.cs-num span { font-size: 12px; color: var(--texto-2); }
.cs-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.cs-acoes .btn { max-width: 100%; white-space: normal; height: auto; min-height: 44px; padding-block: 10px; line-height: 1.35; text-align: left; }
.cs-req { margin-top: 20px; }
.cs-req ul { display: flex; flex-direction: column; gap: 10px; }
.cs-req li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--texto-2); }
.cs-req li .ico { color: var(--texto-3); }
.cs-req li.ok { color: var(--texto); }
.cs-req li.ok .ico { color: var(--verde); }
.mods { display: flex; flex-direction: column; gap: 10px; }
.md { padding: 0; overflow: hidden; }
.md summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 42px 1fr auto 20px; gap: 14px; align-items: center; padding: 14px 18px; }
.md summary::-webkit-details-marker { display: none; }
.md summary:hover { background: rgba(255,255,255,.02); }
.md__seta { color: var(--texto-3); transition: transform .2s; display: grid; }
.md[open] .md__seta { transform: rotate(180deg); }
.aulas { list-style: none; border-top: 1px solid var(--linha); padding: 6px 10px 10px; }
.aula { display: grid; grid-template-columns: 18px 26px 1fr auto; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 8px; font-size: 14px; color: var(--texto-2); }
a.aula:hover { background: rgba(69,130,255,.08); color: #fff; }
.aula .ico { width: 17px; height: 17px; color: var(--texto-3); }
.aula__n { font: 12px var(--mono); color: var(--texto-3); }
.aula__ok { font-size: 12px; color: var(--verde); }
.aula.vista { color: var(--texto); }
.aula.vista .ico { color: var(--verde); }
.aula.atual { background: rgba(69,130,255,.1); color: #fff; }
.aula.atual .ico { color: var(--azul-claro); }
.aula.aval { grid-template-columns: 18px 1fr auto; margin-top: 6px; border: 1px dashed var(--linha); }
.aula.aval b { color: var(--texto); font-weight: 600; }
.aula.aval.pend { border-color: rgba(255,195,92,.45); background: rgba(255,195,92,.06); }
.aula.aval.pend .ico { color: var(--amarelo-claro); }
.aula.aval.vista { border-style: solid; border-color: rgba(61,220,151,.3); }
.aula.trava { opacity: .7; }
.md__n { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font: 600 13px var(--mono); background: #16213A; color: var(--texto-3); }
.md summary > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.md b { font-size: 14.5px; font-weight: 600; }
.md summary > div > span { font-size: 12.5px; color: var(--texto-2); }
.md .barra { max-width: 260px; height: 5px; }
.md.ok .md__n { background: rgba(61,220,151,.12); color: var(--verde); }
.md.at { border-color: rgba(69,130,255,.55); }
.md.at .md__n { background: var(--azul); color: #fff; }
.md.aval .md__n { background: rgba(255,195,92,.14); color: var(--amarelo-claro); }
.md.trava summary { opacity: .75; }
.md.trava .md__n { color: var(--texto-3); }
li.aula.trava { cursor: not-allowed; }


/* ---------- Sala de aula ---------- */
.sala { min-height: 100vh; }
.sala__topo { position: sticky; top: 0; z-index: 25; display: flex; align-items: center; gap: 20px; height: 64px; padding: 0 24px; background: rgba(11,17,32,.95); backdrop-filter: blur(8px); border-bottom: 1px solid var(--linha); }
.sala__volta { display: flex; align-items: center; gap: 10px; min-width: 0; font-weight: 600; font-size: 15px; }
.sala__volta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sala__volta:hover { color: var(--azul-claro); }
.sala__prog { display: flex; align-items: center; gap: 10px; max-width: 280px; margin-top: 4px; font-size: 12.5px; color: var(--texto-2); white-space: nowrap; }
.sala__prog .barra { display: block; }
.sala__prog .barra { flex: 1; }
.sala__grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.sala__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.player { position: relative; aspect-ratio: 16/9; border-radius: 14px; overflow: hidden; background: #000; border: 1px solid var(--linha); outline: none; user-select: none; }
.player:focus-visible { box-shadow: 0 0 0 3px rgba(69,130,255,.5); }
.player__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.45); transition: filter .3s; }
.player.tocando .player__poster { filter: brightness(.7) saturate(1.1); }
.player__marca { position: absolute; z-index: 2; padding: 4px 8px; border-radius: 6px; font: 600 13px var(--mono); color: rgba(255,255,255,.42); background: rgba(0,0,0,.18); pointer-events: none; white-space: nowrap; transition: left 1.2s ease, top 1.2s ease; }
.player__grande { position: absolute; left: 50%; top: 50%; z-index: 3; transform: translate(-50%, -60%); width: 76px; height: 76px; border-radius: 50%; border: 0; display: grid; place-items: center; cursor: pointer; color: #fff; background: rgba(69,130,255,.92); box-shadow: 0 12px 34px rgba(69,130,255,.5); transition: opacity .2s, transform .2s; }
.player__grande .ico { width: 30px; height: 30px; }
.player.tocando .player__grande { opacity: 0; pointer-events: none; }
.player__ctl { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; padding: 22px 16px 10px; background: linear-gradient(0deg, rgba(0,0,0,.85), transparent); }
.player__linha { position: relative; height: 6px; border-radius: 99px; background: rgba(255,255,255,.22); cursor: pointer; }
.player__linha::after { content: ""; position: absolute; inset: -8px 0; }
.player__linha i { position: relative; display: block; height: 100%; border-radius: inherit; background: var(--azul); }
.player__visto { position: absolute; left: 0; top: 0; bottom: 0; border-radius: inherit; background: rgba(255,255,255,.35); }
.player__aviso { position: absolute; left: 50%; top: 18px; z-index: 6; transform: translateX(-50%); max-width: 90%; padding: 9px 14px; border-radius: 10px; background: rgba(26,18,3,.92); border: 1px solid rgba(255,195,92,.6); color: var(--amarelo-claro); font-size: 13.5px; text-align: center; }
.player__aviso[hidden] { display: none; }
.player__bts { display: flex; align-items: center; gap: 12px; margin-top: 8px; font-size: 13px; }
.player__bts button { border: 0; background: none; color: #fff; cursor: pointer; padding: 4px; display: grid; place-items: center; }
.player__bts .ico { width: 20px; height: 20px; }
.player__tempo { font: 13px var(--mono); color: #DCE4F2; white-space: nowrap; }
.player__esp { flex: 1; }
.player__sel { display: flex; align-items: center; gap: 6px; color: #C4CEE0; }
.player__sel select { background: rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.2); border-radius: 6px; padding: 3px 6px; font-size: 12.5px; }
.player__fim { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 20px; background: rgba(7,11,20,.9); }
.player__fim[hidden] { display: none; }
.player__fim p { color: var(--texto-2); }
.player__fim b { font-size: 20px; }
.player__fim div { display: flex; gap: 10px; margin-top: 6px; }
.sala__cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sala__titulo { margin-top: 2px; font-size: 22px; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
.sala__estado { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 13px; color: var(--texto-2); }
.sala__estado .ico { width: 15px; height: 15px; }
.sala__estado.ok { color: var(--verde); }
.sala__regra { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px; border: 1px dashed rgba(255,195,92,.45); background: rgba(255,195,92,.06); color: var(--amarelo-claro); font-size: 13.5px; }
.sala__regra .ico { width: 16px; height: 16px; }
.btn.desat { opacity: .5; cursor: not-allowed; background: var(--painel-2); color: var(--texto-2); border-color: var(--linha); }
.btn.desat:hover { background: var(--painel-2); }
.sl.trava summary { color: var(--texto-3); }
.sl__msg { padding: 6px 10px 8px; font-size: 12.5px; color: var(--texto-3); }
.sla.trava { color: var(--texto-3); cursor: not-allowed; }
.sla.trava .ico { color: var(--texto-3); }
.sala__acoes { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; flex: none; }
.abas--sala { margin-bottom: 0; }
.sala__painel { min-height: 120px; }
.mats { display: flex; flex-direction: column; gap: 10px; }
.mats li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--linha); background: #0B1222; }
.mats li > .ico { color: var(--azul-claro); }
.mats li div { flex: 1; }
.mats b { display: block; font-weight: 600; font-size: 14px; }
.mats span { font-size: 12.5px; color: var(--texto-3); }
.duv { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.sala__lista { position: sticky; top: 104px; max-height: calc(100vh - 124px); overflow: auto; padding: 14px 10px; }
.sala__lt { font-weight: 600; padding: 0 8px 10px; }
.sl summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr auto 16px; gap: 8px; align-items: center; padding: 10px 8px; border-radius: 8px; font-size: 13.5px; font-weight: 600; }
.sl summary::-webkit-details-marker { display: none; }
.sl summary:hover { background: rgba(255,255,255,.03); }
.sl summary small { font-weight: 500; color: var(--texto-3); font-size: 12px; }
.sl summary .ico { width: 16px; height: 16px; color: var(--texto-3); transition: transform .2s; }
.sl[open] summary .ico { transform: rotate(180deg); }
.sl ol { list-style: none; padding: 2px 0 8px; }
.sla { display: flex; align-items: flex-start; gap: 10px; padding: 8px 10px; border-radius: 8px; font-size: 13.5px; color: var(--texto-2); line-height: 1.4; }
.sla .ico { width: 16px; height: 16px; margin-top: 2px; color: var(--texto-3); }
a.sla:hover { background: rgba(69,130,255,.08); color: #fff; }
.sla.vista { color: var(--texto); }
.sla.vista .ico { color: var(--verde); }
.sla.cur { background: rgba(69,130,255,.14); color: #fff; font-weight: 500; }
.sla.cur .ico { color: var(--azul-claro); }
.sla--aval { margin-top: 2px; border: 1px dashed var(--linha); }
.sla--aval .ico { color: var(--amarelo-claro); }
@media (max-width: 1300px) {
  .sala__grade { grid-template-columns: 1fr; }
  .sala__lista { position: static; max-height: none; }
}
@media (max-width: 860px) {
  .sala__grade { gap: 14px; }
  .player { margin-inline: -16px; border-radius: 0; border-left: 0; border-right: 0; }
  .sala__cab { flex-direction: column; }
  .sala__acoes { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .player__sel { font-size: 0; gap: 0; }
  .player__bts { gap: 8px; }
  .player__sel select { font-size: 12px; padding: 2px 4px; }
  .player__marca { font-size: 11px; }
  .player__grande { width: 60px; height: 60px; }
  .sala__titulo { font-size: 19px; }
  .sala__acoes .btn { flex: 1; }
}


/* ---------- Certificado (desenho) ---------- */
.cert { position: relative; container-type: inline-size; aspect-ratio: 297 / 210; width: 100%; overflow: hidden; background: #fff; color: #2A3142; font-family: "Poppins", sans-serif; border-radius: 6px; }
.cert__dados { position: absolute; inset: 0; }
.cert__nome2 { position: absolute; left: 10%; right: 10%; top: 35.6%; text-align: center; font-family: "Alegreya Sans", "Montserrat", sans-serif; font-weight: 500; font-size: 4.7cqw; line-height: 1.15; color: #1E73BE; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cert__txt { position: absolute; left: 16.5%; right: 16.5%; top: 46.2%; text-align: center; font-family: "Montserrat", sans-serif; font-size: 2.27cqw; line-height: 1.33; color: #0F2A55; }
.cert__txt b { font-weight: 700; }
.cert__cod2 { position: absolute; left: 20%; right: 20%; top: 72.5%; text-align: center; font-family: "Montserrat", sans-serif; font-size: 1.05cqw; color: #5B6785; }
.cert__cod2 b { color: #0F2A55; font-family: var(--mono); }
.cert--img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cert__deco { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; }
.cert__in { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 5.5cqw 12cqw 3.2cqw; }
.cert__t { font-size: 6.4cqw; font-weight: 800; letter-spacing: .14em; color: #1F2A55; line-height: 1; }
.cert__p { margin-top: 2cqw; font-size: 1.85cqw; line-height: 1.55; color: #3A4256; max-width: 64cqw; }
.cert__p b { color: #1F2A55; }
.cert__nome { margin-top: 1.6cqw; font-family: "Cormorant Garamond", Georgia, serif; font-style: italic; font-size: 5.2cqw; font-weight: 500; color: #2F66E0; line-height: 1.1; border-bottom: .12cqw solid #C9D3E8; padding: 0 4cqw .6cqw; }
.cert__pe { margin-top: auto; width: 100%; display: flex; align-items: flex-end; justify-content: space-between; padding: 0 2cqw 0 14cqw; }
.cert__ass { display: flex; flex-direction: column; align-items: center; gap: .4cqw; }
.cert__assin { font-family: "Great Vibes", cursive; font-size: 3.4cqw; color: #1F2A55; line-height: 1; }
.cert__linha { width: 22cqw; height: .12cqw; background: #8C97B0; }
.cert__ass small { font-size: 1.3cqw; color: #6B7488; }
.cert__logo { width: 17cqw; height: auto; }
.cert__cod { margin-top: 1.6cqw; font-size: 1.15cqw; color: #6B7488; letter-spacing: .02em; }
.cert__cod b { color: #1F2A55; font-family: var(--mono); }
.cert--verso .cert__in { align-items: stretch; text-align: left; padding: 4.5cqw 8cqw 3cqw 8cqw; }
.cert__vt { font-size: 3cqw; font-weight: 800; color: #1F2A55; letter-spacing: .06em; text-transform: uppercase; }
.cert__vc { font-size: 1.5cqw; color: #6B7488; margin: .4cqw 0 1.6cqw; }
.cert__mods { columns: 3; column-gap: 2.6cqw; font-size: .98cqw; line-height: 1.4; flex: 1; overflow: hidden; }
.cert__mods div { margin-bottom: 1cqw; }
.cert__mods b { break-after: avoid; }
.cert__mods b { display: block; color: #1F2A55; font-size: 1.08cqw; margin-bottom: .2cqw; }
.cert__mods p { color: #4A5368; }
.cert--verso .cert__cod { text-align: right; }

/* ---------- Página Certificados ---------- */
.ces { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 20px; }
.ce { display: flex; flex-direction: column; overflow: hidden; }
.ce__prev { position: relative; display: block; padding: 18px; background: #0B1222; border-bottom: 1px solid var(--linha); }
.ce__prev .cert { box-shadow: 0 14px 34px -14px rgba(0,0,0,.8); transition: transform .2s; }
a.ce__prev:hover .cert { transform: scale(1.015); }
.ce--trava .ce__prev .cert { filter: blur(2px) grayscale(.6) brightness(.55); }
.ce__cad { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; }
.ce__cad .ico { width: 40px; height: 40px; padding: 10px; box-sizing: content-box; border-radius: 50%; background: rgba(7,11,20,.75); border: 1px solid var(--linha); }
.ce__c { flex: 1; display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 20px; }
.ce__c .etq { align-self: flex-start; }
.ce__c .etq .ico { width: 13px; height: 13px; }
.ce__dados { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.ce__dados li { padding: 9px 12px; border-radius: 10px; background: #0B1222; border: 1px solid var(--linha); }
.ce__dados span { display: block; font-size: 12px; color: var(--texto-3); }
.ce__dados b { font-size: 14px; font-weight: 600; word-break: break-all; }
.ce__req { display: flex; flex-direction: column; gap: 12px; }
.ce__req li { display: grid; grid-template-columns: 18px 1fr; gap: 6px 10px; align-items: center; font-size: 13.5px; color: var(--texto-2); }
.ce__req li .ico { color: var(--texto-3); width: 17px; height: 17px; }
.ce__req li.ok .ico { color: var(--verde); }
.ce__req .barra { grid-column: 2; height: 5px; }
.ce__acoes { margin-top: auto; display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- Um certificado ---------- */
.cv { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.cv__vista .abas { margin-bottom: 14px; }
.cv__papel { padding: 22px; border-radius: 16px; background: #0B1222; border: 1px solid var(--linha); }
.cv__papel .cert { box-shadow: 0 20px 50px -20px rgba(0,0,0,.9); }
.cv__lado { position: sticky; top: 104px; display: flex; flex-direction: column; gap: 12px; }
.cv__bts { display: flex; flex-direction: column; gap: 8px; }
.cv__t { font-size: 13px; font-weight: 600; color: var(--texto-2); margin-top: 6px; }
.cv__link { display: flex; gap: 8px; align-items: center; }
.cv__link code { flex: 1; min-width: 0; padding: 9px 11px; border-radius: 8px; background: #0B1222; border: 1px solid var(--linha); font: 12.5px var(--mono); color: var(--azul-claro); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cv__validar { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: var(--azul-claro); }
.cv__validar .ico { width: 15px; height: 15px; }
.imprimir { display: none; }

/* ---------- Validação pública ---------- */
.val { min-height: 100vh; padding: 0 16px 48px; }
.val__topo { max-width: 860px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 22px 0; }
.val__topo img { width: 130px; height: auto; }
.val__main { max-width: 860px; margin: 0 auto; padding: 30px; display: flex; flex-direction: column; gap: 16px; }
.val__form { display: flex; gap: 10px; }
.val__form input { flex: 1; min-width: 0; padding: 12px 14px; border-radius: 10px; border: 1px solid var(--linha); background: #0B1222; font: 15px var(--mono); text-transform: uppercase; outline: none; }
.val__form input:focus { border-color: var(--azul); }
.val__res { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: 14px; }
.val__res .ico { width: 30px; height: 30px; }
.val__res b { display: block; font-size: 17px; }
.val__res span { font-size: 13.5px; color: var(--texto-2); }
.val__res.ok { background: rgba(61,220,151,.08); border: 1px solid rgba(61,220,151,.4); }
.val__res.ok .ico, .val__res.ok b { color: var(--verde); }
.val__res.erro { background: rgba(255,122,122,.07); border: 1px solid rgba(255,122,122,.4); }
.val__res.erro .ico, .val__res.erro b { color: var(--vermelho); }
.val__dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.val__dados li { padding: 10px 14px; border-radius: 10px; background: #0B1222; border: 1px solid var(--linha); }
.val__dados span { display: block; font-size: 12px; color: var(--texto-3); }
.val__dados b { font-weight: 600; }
.val__cert { padding: 16px; border-radius: 14px; background: #0B1222; border: 1px solid var(--linha); }

@media (max-width: 1100px) { .cv { grid-template-columns: minmax(0, 1fr); } .cv__lado { position: static; } }
@media (max-width: 600px) {
  .ces { grid-template-columns: 1fr; }
  .ce__prev, .cv__papel { padding: 12px; }
  .val__main { padding: 20px; }
  .val__form { flex-direction: column; }
}

/* ---------- Impressão do certificado (Baixar PDF) ---------- */
/* @page (tamanho/orientação) é definido pelo app.js conforme a página: certificado = A4 deitado sem margem; caderno = A4 em pé */
@media print {
  html { color-scheme: light; }
  html, body { background: #fff !important; }
  body[data-pagina="certificado"] * { visibility: hidden; }
  body[data-pagina="certificado"] .imprimir, body[data-pagina="certificado"] .imprimir * { visibility: visible; }
  .imprimir { display: block !important; position: absolute; left: 0; top: 0; width: 297mm; }
  .imprimir .cert { width: 297mm; height: 210mm; aspect-ratio: auto; border-radius: 0; page-break-after: always; break-after: page; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .navbaixo, .toast { display: none !important; }
}

/* ---------- Meus cursos ---------- */
.abas { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.abas button { border: 1px solid var(--linha); background: none; cursor: pointer; padding: 7px 14px; border-radius: 99px; font-size: 13.5px; color: var(--texto-2); }
.abas button.on { background: rgba(69,130,255,.14); border-color: rgba(69,130,255,.5); color: #fff; }
.cursos { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.cc { display: flex; flex-direction: column; overflow: hidden; }
.cc__img { position: relative; }
.cc__img img { width: 100%; aspect-ratio: 733/500; object-fit: cover; }
.cc__img .etq { position: absolute; top: 12px; right: 12px; background: rgba(7,11,20,.85); }
.cc__c { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 16px 18px 18px; }
.cc__t { font-size: 16px; font-weight: 600; line-height: 1.35; }
.cc__i { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--texto-2); }
.cc__acoes { margin-top: auto; display: flex; gap: 8px; padding-top: 4px; }
.cc__acoes .btn { flex: 1; }
.cc--trava .cc__img img { filter: grayscale(.5) brightness(.55); }
.secao-t { font-size: 18px; font-weight: 600; margin: 34px 0 14px; }

/* ---------- Perfil ---------- */
.perfil { display: grid; grid-template-columns: 260px 1fr; gap: 20px; align-items: start; }
.perfil__foto { padding: 24px; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.perfil__foto b { font-size: 16px; }
.perfil__foto span { font-size: 13px; color: var(--texto-2); word-break: break-all; }
.form { padding: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.form h2 { grid-column: 1 / -1; font-size: 16px; font-weight: 600; }
.form h2 + p { grid-column: 1 / -1; margin-top: -10px; font-size: 13px; color: var(--texto-2); }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo--todo { grid-column: 1 / -1; }
.campo label { font-size: 13px; font-weight: 500; color: var(--texto-2); }
.campo input, .campo select, .campo textarea { width: 100%; padding: 11px 13px; border-radius: 10px; border: 1px solid var(--linha); background: #0B1222; outline: none; transition: border-color .15s; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--azul); }
.campo input[readonly] { color: var(--texto-2); }
.campo small { font-size: 12px; color: var(--texto-3); }
.campo small.dica { color: var(--amarelo-claro); }
.form__acoes { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; }
.toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0; z-index: 50; padding: 12px 18px; border-radius: 12px; background: #13243F; border: 1px solid rgba(61,220,151,.45); color: var(--verde); font-size: 14px; font-weight: 500; transition: .25s; pointer-events: none; }
.toast.on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Compras ---------- */
.renovar { display: flex; align-items: center; gap: 16px; padding: 18px 20px; margin-bottom: 20px; border-radius: 16px; background: rgba(255,195,92,.08); border: 1px solid rgba(255,195,92,.4); }
.renovar > div { flex: 1; }
.renovar b { display: block; color: var(--amarelo-claro); }
.renovar span { font-size: 13.5px; color: var(--texto-2); }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 12.5px; font-weight: 500; color: var(--texto-3); padding: 0 14px 12px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.tabela td { padding: 14px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tr:last-child td { border-bottom: 0; }
.tabela td b { font-weight: 600; }
.tabela .num { text-align: right; white-space: nowrap; }
.tabela-cx { padding: 18px 6px 6px; overflow-x: auto; }

/* ---------- Avaliar ---------- */
.avaliar { max-width: 640px; padding: 26px; display: flex; flex-direction: column; gap: 18px; }
.avaliar__curso { display: flex; gap: 14px; align-items: center; }
.avaliar__curso img { width: 110px; border-radius: 10px; aspect-ratio: 733/500; object-fit: cover; object-position: left; }
.estrelas { display: flex; gap: 6px; }
.estrelas button { border: 0; background: none; cursor: pointer; padding: 2px; color: #2A3756; transition: transform .1s, color .1s; }
.estrelas button:hover { transform: scale(1.08); }
.estrelas button.on { color: var(--amarelo); }
.estrelas svg { width: 36px; height: 36px; }
.estrelas__txt { font-size: 13.5px; color: var(--texto-2); min-height: 20px; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--texto-2); cursor: pointer; }
.check input { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--azul); }
.obrigado { text-align: center; padding: 36px 26px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.obrigado .ico { width: 48px; height: 48px; color: var(--verde); }

/* ---------- Em breve ---------- */
.breve { max-width: 560px; padding: 34px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 40px auto 0; }
.breve .ico { width: 44px; height: 44px; color: var(--azul-claro); }

/* ---------- Telas menores ---------- */
@media (max-width: 1100px) {
  .topo { margin: -24px -24px 22px; padding: 14px 24px; }
  .painel { grid-template-columns: repeat(2, 1fr); }
  .painel .meia { grid-column: 1 / -1; }
  .gc { grid-template-columns: repeat(2, 1fr); }
  .cs-topo { grid-template-columns: 240px 1fr; }
  .cs-num { grid-template-columns: repeat(2, 1fr); }
  .conteudo { padding: 24px 24px 56px; }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .grade2 { display: flex; flex-direction: column; }
  .grade2 .col { display: contents; }
  .o1 { order: 1; } .o2 { order: 2; } .o3 { order: 3; } .o4 { order: 4; } .o5 { order: 5; } .o6 { order: 6; }
}
@media (max-width: 860px) {
  .app { grid-template-columns: 1fr; }
  .lado { display: none; }
  .conteudo { padding: 18px 16px 96px; }
  .navbaixo { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; justify-content: space-around; padding: 8px 4px calc(10px + env(safe-area-inset-bottom)); background: rgba(11,17,32,.96); backdrop-filter: blur(8px); border-top: 1px solid var(--linha); }
  .navbaixo a { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 11px; color: var(--texto-3); min-width: 56px; }
  .navbaixo a.on { color: var(--azul-claro); }
  .topo__logo { display: block !important; width: 96px; height: auto; }
  .topo { margin: -18px -16px 18px; padding: 10px 16px; min-height: 64px; }
  .topo .titulo { font-size: 19px; }
  .perfil { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .painel { --gap: 14px; }
  .cont { grid-template-columns: 1fr; row-gap: 14px; }
  .cont .cont__img { min-height: 0; }
  .gc { grid-template-columns: 1fr; }
  .cs-topo { grid-template-columns: 1fr; padding: 16px; }
  .md summary { grid-template-columns: 36px 1fr 18px; gap: 10px; padding: 12px 14px; }
  .md summary > .etq { grid-column: 2; grid-row: 2; justify-self: start; }
  .md summary .md__seta { grid-column: 3; grid-row: 1; }
  .md__n { width: 36px; height: 36px; }
  .aulas { padding: 6px 6px 8px; }
  .aula { grid-template-columns: 16px 1fr; gap: 8px; }
  .aula__n { display: none; }
  .aula__ok { display: none; }
  .aula > .etq, .aula > .btn { grid-column: 2; justify-self: start; }
  .aula.aval { grid-template-columns: 16px 1fr; }
  .sino__lista { position: fixed; left: 16px; right: 16px; top: 70px; width: auto; }
  .titulo { font-size: 22px; }
  .kpi { padding: 14px 16px; }
  .kpi b { font-size: 24px; }
  .cont { flex-direction: column; align-items: stretch; }
  .cont__img { width: 100%; }
  .form { grid-template-columns: 1fr; padding: 20px; }
  .topo .idioma { display: none; }
  .renovar { flex-direction: column; align-items: stretch; }
  .tabela thead { display: none; }
  .tabela tr { display: block; padding: 12px 14px; border-bottom: 1px solid var(--linha); }
  .tabela tr:last-child { border-bottom: 0; }
  .tabela td { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; border: 0; text-align: right; }
  .tabela td::before { content: attr(data-r); color: var(--texto-3); font-size: 12.5px; text-align: left; }
  .tabela .num { text-align: right; }
  .avaliar { padding: 20px; }
  .estrelas svg { width: 32px; height: 32px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* Verso do certificado: textos por cima do fundo (posições da arte de 2000 x 1414 px) */
.cert--v { color: #0F2A55; font-family: "Montserrat", sans-serif; }
.cv-curso { position: absolute; left: 16%; width: 39.5%; top: 11.1%; text-align: center; font-size: 1.32cqw; font-weight: 400; line-height: 1.2; color: #0F2A55; white-space: nowrap; }
.cv-b { position: absolute; white-space: nowrap; }
.cv-b h4 { font-weight: 700; line-height: 1.25; margin: 0 0 .1cqw; color: #0F2A55; }
.cv-cols { display: flex; align-items: flex-start; }
.cv-cols ul { list-style: none; margin: 0; padding: 0; font-weight: 300; color: #1B3566; }
/* itens desabilitados (ex.: Avaliar curso antes do certificado) */
.lado__item.off, .lado__item.off:hover { opacity: .45; cursor: not-allowed; background: none; color: var(--texto-2); }
.lado__item.off .ico:last-child { width: 14px; height: 14px; margin-left: auto; }
.btn.off, .btn.off:hover { opacity: .45; cursor: not-allowed; background: transparent; border-color: var(--linha); }

/* ---------- Meu perfil ---------- */
.pf-ro { position: relative; }
.pf-ro input { padding-right: 40px; color: var(--texto-2); background: #0A0F1C; cursor: default; }
.pf-ro .ico { position: absolute; right: 13px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--texto-3); }
.pf-nome-pe { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.pf-sol { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; padding: 18px; border-radius: 12px; border: 1px solid rgba(69,130,255,.4); background: rgba(69,130,255,.06); }
.pf-sol > b, .pf-sol > p { grid-column: 1 / -1; }
.pf-sol > p { margin-top: -10px; font-size: 13px; color: var(--texto-2); }
.pf-pend { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; background: rgba(255,195,92,.08); border: 1px solid rgba(255,195,92,.3); color: var(--amarelo-claro); font-size: 13.5px; }
.pf-pend .ico { flex: none; width: 18px; height: 18px; }
.pf-bloco { padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.pf-bloco h2 { font-size: 16px; font-weight: 600; }
.pf-ses { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pf-ses li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--linha); }
.pf-ses li:first-child { border-top: 0; }
.pf-ses li > .ico { color: var(--texto-3); }
.pf-ses li div { flex: 1; min-width: 0; }
.pf-ses b, .pf-priv b { display: block; font-size: 14px; font-weight: 600; }
.pf-ses span:not(.etq), .pf-priv span { font-size: 12.5px; color: var(--texto-2); }
.pf-priv { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--linha); }
.pf-priv:first-of-type { border-top: 0; }
.pf-priv div { flex: 1; min-width: 0; }
.pf-perigo { color: var(--vermelho); border-color: rgba(255,122,122,.4); }
.pf-perigo:hover { background: rgba(255,122,122,.08); border-color: var(--vermelho); }

/* A: cabeçalho com capa + abas */
.pfa { display: flex; flex-direction: column; gap: 20px; max-width: 980px; }
.pfa > .card + .card { margin-top: 0; }
.pfa-cab { overflow: hidden; }
.pfa-capa { height: 110px; background: radial-gradient(120% 140% at 85% 0%, rgba(126,168,255,.35), transparent 60%), linear-gradient(120deg, #13213F, #1B3A7A 55%, #2F66E0); }
.pfa-id { display: flex; align-items: flex-end; gap: 20px; padding: 0 28px 22px; margin-top: -42px; flex-wrap: wrap; }
.pfa-id .avatar { position: relative; border: 4px solid var(--painel); width: 96px; height: 96px; font-size: 32px; }
.pfa-cam { position: absolute; right: -4px; bottom: -2px; width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--painel); background: var(--painel-2); color: var(--texto); display: grid; place-items: center; cursor: pointer; }
.pfa-cam .ico { width: 15px; height: 15px; }
.pfa-nome { flex: 1; min-width: 200px; padding-bottom: 4px; }
.pfa-nome h2 { font-size: 22px; font-weight: 700; }
.pfa-nome span { font-size: 13.5px; color: var(--texto-2); }
.pfa-st { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.pfa-st li { min-width: 92px; padding: 10px 14px; border: 1px solid var(--linha); border-radius: 12px; background: #0B1222; text-align: center; }
.pfa-st b { display: block; font-size: 20px; line-height: 1.2; }
.pfa-st span { font-size: 12px; color: var(--texto-2); }
.pfa-abas { margin-bottom: 0; }

@media (max-width: 760px) {
  .pfa-id { padding: 0 18px 18px; }
  .pfa-st { width: 100%; }
  .pfa-st li { flex: 1; min-width: 0; }
    .pf-priv { flex-wrap: wrap; }
  .pf-sol { grid-template-columns: minmax(0, 1fr); }
}

/* Menu da conta (avatar no topo) */
.conta { position: relative; }
.conta__btn { border: 2px solid transparent; cursor: pointer; padding: 0; width: 42px; height: 42px; }
.conta__btn:hover, .conta__btn[aria-expanded="true"] { border-color: var(--azul-claro); }
.conta__menu { position: absolute; right: 0; top: calc(100% + 10px); z-index: 30; width: 240px; padding: 8px; box-shadow: 0 24px 60px -20px rgba(0,0,0,.9); display: flex; flex-direction: column; }
.conta__menu[hidden] { display: none; }
.conta__quem { padding: 8px 10px 10px; margin-bottom: 4px; border-bottom: 1px solid var(--linha); }
.conta__quem b { display: block; font-size: 14px; }
.conta__quem span { display: block; font-size: 12px; color: var(--texto-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conta__menu a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; font-size: 14px; color: var(--texto); }
.conta__menu a .ico { width: 18px; height: 18px; color: var(--texto-2); }
.conta__menu a:hover, .conta__menu a:focus-visible { background: rgba(69,130,255,.1); outline: none; }
.conta__menu .conta__sair { margin-top: 4px; border-top: 1px solid var(--linha); border-radius: 0 0 8px 8px; padding-top: 11px; }
.conta__sair:hover { color: var(--vermelho); }

/* ---------- Fórum de dúvidas (conversa privada aluno x instrutor) ---------- */
.lado__n { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; background: var(--azul); color: #fff; font-size: 11.5px; font-weight: 700; display: grid; place-items: center; }
.navbaixo a { position: relative; }
.navbaixo__n { position: absolute; top: -2px; left: calc(50% + 6px); width: 8px; height: 8px; border-radius: 50%; background: var(--azul); }
.chat { display: flex; flex-direction: column; height: calc(100vh - 84px - 26px - 40px); height: calc(100dvh - 84px - 26px - 40px); min-height: 460px; max-width: 980px; overflow: hidden; }
.chat__cab { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--linha); }
.chat__cab .avatar { width: 42px; height: 42px; background: linear-gradient(135deg, #1B3A7A, var(--azul)); }
.chat__cab div { flex: 1; min-width: 0; }
.chat__cab b { display: block; font-size: 15px; }
.chat__cab div span { font-size: 12.5px; color: var(--texto-2); }
.chat__priv .ico { width: 13px; height: 13px; }
.chat__msgs { flex: 1; overflow-y: auto; padding: 18px 20px; display: flex; flex-direction: column; gap: 10px; }
.chat__vazio { margin: auto; text-align: center; }
.chat__dia { display: flex; justify-content: center; margin: 10px 0 4px; }
.chat__dia span { font-size: 12px; color: var(--texto-3); padding: 3px 12px; border-radius: 99px; background: #0B1222; border: 1px solid var(--linha); }
.msg { display: flex; align-items: flex-end; gap: 8px; max-width: 78%; }
.msg--eu { align-self: flex-end; }
.msg__av { width: 30px; height: 30px; font-size: 11px; flex: none; background: linear-gradient(135deg, #1B3A7A, var(--azul)); }
.msg__b { display: flex; flex-direction: column; gap: 6px; padding: 10px 14px 8px; border-radius: 16px; background: var(--painel-2); border: 1px solid var(--linha); min-width: 0; }
.msg--ele .msg__b { border-bottom-left-radius: 4px; }
.msg--eu .msg__b { background: #1D3A78; border-color: #2A4E9A; border-bottom-right-radius: 4px; }
.msg__t { font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.msg__ref { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--azul-claro); padding: 4px 8px; border-radius: 8px; background: rgba(0,0,0,.2); min-width: 0; }
.msg__ref span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msg__ref .ico { width: 13px; height: 13px; flex: none; }
.msg__ref:hover span { text-decoration: underline; }
.msg__anexo { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; font-size: 12.5px; padding: 6px 10px; border-radius: 8px; background: rgba(0,0,0,.22); color: var(--texto); }
.msg__anexo .ico { width: 16px; height: 16px; color: var(--azul-claro); }
.msg__h { align-self: flex-end; display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--texto-3); }
.msg--eu .msg__h { color: #9DB5E6; }
.msg__h .ico { width: 13px; height: 13px; color: var(--verde); }
.chat__env { border-top: 1px solid var(--linha); padding: 12px 16px 10px; display: flex; flex-direction: column; gap: 8px; background: var(--fundo-2); }
.chat__ctx { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; font-size: 12.5px; padding: 4px 4px 4px 10px; border-radius: 99px; border: 1px solid rgba(69,130,255,.45); background: rgba(69,130,255,.1); color: var(--azul-claro); }
.chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.chip .ico { width: 13px; height: 13px; flex: none; }
.chip button { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(255,255,255,.08); color: var(--texto); cursor: pointer; font-size: 15px; line-height: 1; }
.chip button:hover { background: rgba(255,255,255,.16); }
.chat__linha { display: flex; align-items: flex-end; gap: 8px; }
.chat__clip { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; border: 1px solid var(--linha); color: var(--texto-2); cursor: pointer; }
.chat__clip:hover, .chat__clip:focus-within { color: #fff; border-color: var(--azul); }
.chat__linha textarea { flex: 1; min-width: 0; resize: none; min-height: 44px; max-height: 160px; padding: 11px 13px; border-radius: 10px; border: 1px solid var(--linha); background: #0B1222; color: var(--texto); font: inherit; font-size: 14.5px; line-height: 1.45; outline: none; }
.chat__linha textarea:focus { border-color: var(--azul); }
.chat__enviar { flex: none; }
.chat__dica { font-size: 11.5px; color: var(--texto-3); }
.duv__ja { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--azul-claro); }
.duv__ja .ico { width: 16px; height: 16px; }
.duv__acoes { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 860px) {
  .chat { height: calc(100dvh - 190px); min-height: 380px; }
  .msg { max-width: 92%; }
  .chat__priv { display: none; }
  .chat__enviar span { display: none; }
  .chat__enviar { width: 44px; padding: 0; }
  .chat__dica { display: none; }
}

/* ---------- Minhas anotações (caderno por curso) ---------- */
.cad-abas { margin-bottom: 14px; }
.cad-qt { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; margin-left: 4px; border-radius: 99px; background: rgba(255,255,255,.08); font-size: 11.5px; font-weight: 600; }
.cad-abas button.on .cad-qt { background: var(--azul); color: #fff; }
.cad-barra { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 20px; align-items: center; margin-bottom: 18px; }
.cad-busca { width: 100%; max-width: 460px; position: relative; display: flex; align-items: center; }
.cad-busca .ico { position: absolute; left: 13px; width: 18px; height: 18px; color: var(--texto-3); pointer-events: none; }
.cad-busca input { width: 100%; height: 44px; padding: 0 14px 0 40px; border-radius: 10px; border: 1px solid var(--linha); background: #0B1222; color: var(--texto); font: inherit; font-size: 14px; outline: none; }
.cad-busca input:focus { border-color: var(--azul); }
.cad-barra .btn { width: 100%; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }
.cad { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 20px; align-items: start; }
.cad--so { grid-template-columns: minmax(0, 1fr); }
.cad-ind { position: sticky; top: 108px; max-height: calc(100vh - 130px); overflow-y: auto; padding: 18px; }
.cad-ind__t { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-3); margin-bottom: 10px; }
.cad-ind__m + .cad-ind__m { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--linha); }
.cad-ind__m > a { display: block; font-size: 13.5px; color: var(--texto); line-height: 1.4; }
.cad-ind__m > a b { color: var(--azul-claro); font-weight: 600; }
.cad-ind ul { list-style: none; margin: 6px 0 0; padding: 0 0 0 10px; border-left: 1px solid var(--linha); }
.cad-ind li a { display: block; padding: 3px 0 3px 8px; font-size: 12.5px; color: var(--texto-2); line-height: 1.35; }
.cad-ind a:hover { color: #fff; }
/* papel do caderno: folha clara pautada */
.cad-papel { --pauta: 28px; position: relative; background: #FBFAF6; color: #1E2433; border-radius: 6px 14px 14px 6px; padding: 40px 48px 32px 76px; box-shadow: 0 24px 60px -24px rgba(0,0,0,.9), inset 10px 0 0 #E9E5DA; min-height: 60vh; }
.cad-papel::before { content: ""; position: absolute; top: 0; bottom: 0; left: 56px; width: 2px; background: rgba(229,96,96,.45); }
.cad-capa { position: relative; padding-bottom: 22px; margin-bottom: 8px; border-bottom: 2px solid #1E2433; }
.cad-capa__k { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #2F66E0; }
.cad-capa h2 { font-size: 28px; line-height: 1.2; font-weight: 700; margin: 4px 0 6px; padding-right: 130px; color: #0F2A55; }
.cad-capa p:not(.cad-capa__k) { font-size: 13.5px; color: #5B6478; }
.cad-capa__logo { position: absolute; right: 0; top: 4px; width: 110px; height: auto; }
.cad-mod { scroll-margin-top: 100px; }
.cad-mod h3 { display: flex; align-items: baseline; gap: 10px; font-size: 18px; font-weight: 700; color: #0F2A55; margin: 30px 0 4px; }
.cad-mod h3 span { flex: none; white-space: nowrap; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: #2F66E0; padding: 3px 9px; border-radius: 6px; }
.cad-nota { scroll-margin-top: 110px; padding: 14px 0 6px; border-bottom: 1px dashed #D8D3C6; border-radius: 6px; transition: background .6s; }
.cad-nota.pisca { background: rgba(69,130,255,.12); }
.cad-nota__cab { display: flex; align-items: flex-start; gap: 12px; justify-content: space-between; }
.cad-nota h4 { font-size: 15px; font-weight: 600; color: #1E2433; line-height: 1.4; }
.cad-nota h4 small { display: block; font-size: 11.5px; font-weight: 500; color: #8A8F9C; text-transform: uppercase; letter-spacing: .05em; }
.cad-nota__bts { display: flex; gap: 4px; flex: none; }
.cad-bt { display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 10px; border-radius: 8px; border: 1px solid #DDD8CB; background: #fff; color: #3A4256; font: inherit; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.cad-bt .ico { width: 14px; height: 14px; }
.cad-bt:hover { border-color: #2F66E0; color: #2F66E0; }
.cad-nota__txt { margin-top: 6px; font-family: "Poppins", sans-serif; font-size: 15px; line-height: var(--pauta); color: #26304A; background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--pauta) - 1px), #DCE4F2 calc(var(--pauta) - 1px), #DCE4F2 var(--pauta)); overflow-wrap: anywhere; }
.cad-nota__txt .tempo { display: inline-block; font: 600 12px/1 var(--mono); color: #2F66E0; background: #E6EEFF; border-radius: 5px; padding: 4px 6px; vertical-align: 1px; }
.cad-nota__ed { display: block; width: 100%; margin-top: 8px; padding: 10px 12px; border: 1px solid #2F66E0; border-radius: 8px; background: #fff; color: #1E2433; font: inherit; font-size: 15px; line-height: 1.6; resize: vertical; outline: none; }
.cad-vazio { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding: 50px 10px; color: #5B6478; font-size: 14.5px; }
.cad-vazio > .ico { width: 44px; height: 44px; color: #B9C3D8; }
.cad-vazio p { max-width: 460px; }
.cad-pe { margin-top: 30px; font-size: 11.5px; color: #9AA0AC; text-align: right; }
@media (max-width: 1100px) {
  .cad { grid-template-columns: minmax(0, 1fr); }
  .cad-ind { order: -1; }
  .cad-barra { grid-template-columns: minmax(0, 1fr) auto; }
  .cad-barra .btn { width: auto; }
  .cad-ind { position: static; max-height: none; }
}
@media (max-width: 600px) {
  .cad-papel { padding: 26px 18px 24px 34px; }
  .cad-papel::before { left: 22px; }
  .cad-capa h2 { font-size: 22px; padding-right: 0; }
  .cad-capa__logo { position: static; display: block; width: 90px; margin-bottom: 10px; }
  .cad-nota__cab { flex-direction: column; gap: 8px; }
  .cad-barra { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .cad-barra .btn { width: 100%; }
}
@media print {
  body[data-pagina="anotacoes"] .lado, body[data-pagina="anotacoes"] .topo, body[data-pagina="anotacoes"] .cad-abas, body[data-pagina="anotacoes"] .cad-barra, body[data-pagina="anotacoes"] .cad-ind, body[data-pagina="anotacoes"] .cad-nota__bts { display: none !important; }
  body[data-pagina="anotacoes"] .app { display: block; background: none; min-height: 0; }
  body[data-pagina="anotacoes"] .conteudo { padding: 0; }
  body[data-pagina="anotacoes"] .cad { display: block; }
  body[data-pagina="anotacoes"] .cad-papel { max-width: none; min-height: 0; box-shadow: none; border-radius: 0; padding: 0 0 0 14mm; background: #fff; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body[data-pagina="anotacoes"] .cad-papel::before { left: 6mm; }
  .cad-nota { break-inside: avoid; }
  .cad-nota.pisca { background: none; }
  .cad-mod h3 { break-after: avoid; }
}

/* Alertas: vistos ficam apagados; avisos do instrutor podem ser dispensados */
.alerta.visto { opacity: .62; }
.alerta.visto:hover { opacity: 1; }
.alerta__x { flex: none; width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--linha); background: none; color: var(--texto-2); font-size: 17px; line-height: 1; cursor: pointer; }
.alerta__x:hover { color: #fff; border-color: var(--azul); }
.sino__itens { max-height: min(60vh, 460px); overflow-y: auto; }
.gcc__c > p.gcc__acesso { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--texto-2); }
.gcc__acesso .ico { width: 14px; height: 14px; flex: none; }
.gcc__c > p.gcc__acesso.am { color: var(--amarelo-claro); }
.gcc__c > p.gcc__acesso.vm { color: var(--vermelho); }
/* Card do curso do aluno: rodapé com Ver o curso + Renovar */
.gcc--meu:hover { border-color: var(--azul); }
.gcc--meu .gcc__link:hover h3 { color: var(--azul-claro); }
.gcc__rod { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 16px 16px; margin-top: auto; }
.gcc__rod .gcc__ver { margin-top: 0; white-space: nowrap; font-size: 14px; }
.gcc__rod .btn .ico { width: 15px; height: 15px; }

/* ---------- Avaliação do módulo ---------- */
.cont__img span i.am { background: linear-gradient(180deg, #FFC35C, #F2A428); color: #1A1203; }
.cont__dica { font-size: 12.5px; color: var(--amarelo-claro); margin-top: -4px; }
.av { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 20px; align-items: start; max-width: 1180px; }
.av-q { padding: 26px 28px; display: flex; flex-direction: column; gap: 20px; }
.av-q__cab { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--texto-2); }
.av-q__cab span { white-space: nowrap; }
.av-q__cab .barra { flex: 1; }
.av-q__p { font-size: 19px; line-height: 1.45; font-weight: 600; }
.av-ops { display: flex; flex-direction: column; gap: 10px; }
.av-op { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--linha); background: #0B1222; color: var(--texto); font: inherit; font-size: 15px; line-height: 1.45; cursor: pointer; transition: border-color .15s, background .15s; }
.av-op:hover { border-color: rgba(69,130,255,.6); }
.av-op:focus-visible { outline: 2px solid var(--azul-claro); outline-offset: 2px; }
.av-op.on { border-color: var(--azul); background: rgba(69,130,255,.13); }
.av-op__l { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; border: 1px solid var(--linha); color: var(--texto-2); }
.av-op.on .av-op__l { background: var(--azul); border-color: var(--azul); color: #fff; }
.av-nav { display: flex; justify-content: space-between; gap: 10px; padding-top: 6px; border-top: 1px solid var(--linha); padding-top: 18px; }
.av-conf { padding: 16px 18px; border-radius: 12px; border: 1px solid rgba(255,195,92,.45); background: rgba(255,195,92,.08); display: flex; flex-direction: column; gap: 12px; }
.av-conf p { font-size: 14px; color: var(--amarelo-claro); }
.av-acoes { display: flex; flex-wrap: wrap; gap: 10px; }
.av-mapa { position: sticky; top: 108px; display: flex; flex-direction: column; gap: 14px; }
.av-mapa__g { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.av-mapa__g button { aspect-ratio: 1; border-radius: 10px; border: 1px solid var(--linha); background: none; color: var(--texto-2); font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.av-mapa__g button.feita { background: rgba(69,130,255,.16); border-color: rgba(69,130,255,.5); color: #fff; }
.av-mapa__g button.on { outline: 2px solid var(--azul-claro); outline-offset: 1px; }
.av-mapa__c { font-size: 13px; color: var(--texto-2); }
.av-mapa .btn { width: 100%; }
.av-regras { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid var(--linha); display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; color: var(--texto-2); }
.av-regras li { display: flex; gap: 8px; align-items: flex-start; }
.av-regras .ico { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--azul-claro); }
.av-intro { max-width: 760px; padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.av-intro__ico { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: rgba(255,195,92,.12); color: var(--amarelo-claro); }
.av-intro__ico .ico { width: 28px; height: 28px; }
.av-intro h2 { font-size: 22px; }
.av-info { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.av-info li { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--linha); background: #0B1222; }
.av-info b { display: block; font-size: 20px; }
.av-info span { font-size: 12.5px; color: var(--texto-2); }
.av-regras--intro { border-top: 0; padding-top: 0; font-size: 13.5px; }
.av-ult { font-size: 13.5px; color: var(--texto-2); }
.av-link { border: 0; background: none; padding: 0; color: var(--azul-claro); font: inherit; cursor: pointer; text-decoration: underline; }
.av-res { display: flex; gap: 28px; align-items: center; padding: 28px 32px; max-width: 1180px; }
.av-res.ok { border-color: rgba(61,220,151,.4); }
.av-res.no { border-color: rgba(255,122,122,.35); }
.av-nota { flex: none; width: 128px; height: 128px; border-radius: 50%; display: grid; place-content: center; text-align: center; border: 6px solid var(--verde); }
.av-res.no .av-nota { border-color: var(--vermelho); }
.av-nota b { font-size: 38px; line-height: 1; }
.av-nota span { font-size: 12px; color: var(--texto-2); text-transform: uppercase; letter-spacing: .08em; }
.av-res__txt { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.av-res__txt h2 { font-size: 22px; }
.av-res__txt p { font-size: 14.5px; color: var(--texto-2); }
.av-res__txt .av-acoes { margin-top: 8px; }
.av-grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; margin-top: 20px; max-width: 1180px; }
.av-grade > .av-hist:only-child { grid-column: 1 / -1; max-width: 520px; }
.av-err { margin: 6px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 12px; }
.av-err li { padding-left: 4px; }
.av-err p { font-size: 14px; line-height: 1.5; }
.av-err a { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 13px; color: var(--azul-claro); }
.av-err a .ico { width: 14px; height: 14px; }
.av-hist .tabela td { padding: 10px 6px; font-size: 13.5px; }
@media (max-width: 1100px) {
  .av, .av-grade { grid-template-columns: minmax(0, 1fr); }
  .av-mapa { position: static; }
}
@media (max-width: 600px) {
  .av-q { padding: 20px 18px; }
  .av-q__p { font-size: 17px; }
  .av-info { grid-template-columns: 1fr 1fr; }
  .av-intro { padding: 22px 18px; }
  .av-res { flex-direction: column; text-align: center; padding: 24px 18px; }
  .av-res__txt { align-items: center; }
  .av-nav .btn { flex: 1; }
}
.av-tempo { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px; border: 1px solid var(--linha); background: #0B1222; color: var(--texto); white-space: nowrap; }
.av-tempo .ico { width: 15px; height: 15px; color: var(--azul-claro); }
.av-tempo b { font: 600 14px var(--mono); min-width: 40px; }
.av-tempo.fim { border-color: rgba(255,122,122,.55); color: var(--vermelho); background: rgba(255,122,122,.08); }
.av-tempo.fim .ico { color: var(--vermelho); }
.av-desistir { align-self: center; font-size: 13px; color: var(--texto-3); }
.av-desistir:hover { color: var(--vermelho); }
.av-conf--vm { border-color: rgba(255,122,122,.45); background: rgba(255,122,122,.07); }
.av-conf--vm p { color: #FFB0B0; }
.btn--vm { background: #E5484D; color: #fff; }
.btn--vm:hover { background: #C93C40; }
.av-motivo { color: var(--vermelho) !important; }

/* ---------- Login (opções A/B/C) ---------- */
.lg { min-height: 100vh; min-height: 100dvh; display: flex; background: var(--fundo); }
.lg-topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lg-logo img { width: 140px; height: auto; display: block; }
.lg-idioma .idioma { background: rgba(255,255,255,.02); }
.lg-form { display: flex; flex-direction: column; gap: 16px; width: 100%; max-width: 400px; }
.lg-form h1 { font-size: 26px; font-weight: 700; line-height: 1.2; }
.lg-sub { margin-top: -8px; color: var(--texto-2); font-size: 14.5px; }
.lg-form .campo input { height: 48px; font-size: 15px; }
.lg-form .campo input[aria-invalid="true"] { border-color: var(--vermelho); }
.lg-erro { color: var(--vermelho) !important; font-size: 12.5px; }
.lg-rot { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.lg-senha { position: relative; }
.lg-senha input { padding-right: 48px; }
.lg-olho { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; display: grid; place-items: center; border: 0; background: none; color: var(--texto-3); cursor: pointer; border-radius: 8px; }
.lg-olho:hover { color: #fff; background: rgba(255,255,255,.05); }
.lg-olho .ico { width: 19px; height: 19px; }
.lg-link { border: 0; background: none; padding: 0; font: inherit; font-size: 13px; color: var(--azul-claro); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.lg-link:hover { text-decoration: underline; }
.lg-link .ico { width: 14px; height: 14px; }
.lg-centro { align-self: center; }
.lg-full { width: 100%; height: 48px; font-size: 15px; }
.lg-full[disabled] { opacity: .7; cursor: progress; }
.lg-lembrar { font-size: 13.5px; color: var(--texto-2); }
.lg-pe { text-align: center; font-size: 13.5px; color: var(--texto-2); padding-top: 14px; border-top: 1px solid var(--linha); }
.lg-pe a { color: var(--azul-claro); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }
.lg-pe a .ico { width: 14px; height: 14px; }
.lg-ok { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: rgba(61,220,151,.12); color: var(--verde); }
.lg-ok .ico { width: 28px; height: 28px; }
.lg-seguro { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--texto-3); }
.lg-seguro .ico { width: 13px; height: 13px; }

/* A: painel da marca à esquerda + formulário à direita */
.lg-a__lado { position: relative; flex: 1.1; overflow: hidden; display: flex; align-items: flex-end; padding: 48px; background: #08101F; }
.lg-a__mosaico { position: absolute; inset: -40px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; transform: rotate(-6deg) scale(1.15); opacity: .45; filter: blur(1.5px); }
.lg-a__mosaico img { width: 100%; height: 100%; object-fit: cover; border-radius: 16px; }
.lg-a__lado::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,11,20,.2) 0%, rgba(7,11,20,.75) 55%, #070B14 100%), linear-gradient(90deg, rgba(47,102,224,.25), transparent 60%); }
.lg-a__txt { position: relative; z-index: 1; max-width: 460px; }
.lg-a__txt h2 { font-size: 32px; line-height: 1.2; font-weight: 700; }
.lg-a__txt ul { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; color: var(--texto-2); font-size: 14.5px; }
.lg-a__txt b { display: inline-grid; place-items: center; min-width: 30px; height: 30px; margin-right: 8px; border-radius: 8px; background: rgba(69,130,255,.18); color: var(--azul-claro); }
.lg-a__txt b .ico { width: 16px; height: 16px; }
.lg-a__main { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 32px 48px; background: var(--fundo); }
.lg-a__form { display: flex; justify-content: center; }

@media (max-width: 960px) {
  .lg-a__lado { display: none; }
  .lg-a__main { padding: 24px 20px; }
}
@media (max-width: 600px) {
  .lg-form h1 { font-size: 23px; }
}

/* Suporte Ao Aluno: sobre qual curso é a mensagem */
.duv-cursos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.duv-cursos__t { font-size: 12.5px; color: var(--texto-2); margin-right: 2px; }
.duv-c { font: inherit; font-size: 12.5px; padding: 5px 11px; border-radius: 99px; border: 1px solid var(--linha); background: #0B1222; color: var(--texto-2); cursor: pointer; }
.duv-c:hover { border-color: #2B3B5E; color: #fff; }
.duv-c.on { border-color: var(--azul); background: rgba(69,130,255,.16); color: #fff; }
.duv-cursos.falta .duv-c { border-color: rgba(255,195,92,.6); }
.duv-cursos.falta .duv-cursos__t { color: var(--amarelo); font-weight: 600; }
.msg__curso { color: var(--texto-2); }
@media (max-width: 600px) { .duv-cursos { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: 0 16px; } .duv-c { flex: none; } .duv-cursos__t { flex: none; } }

/* Tela de manutenção (ligada no painel admin) */
.manut { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 32px 20px; text-align: center; background: radial-gradient(90% 70% at 50% 0, #13305F 0, var(--fundo) 70%); }
.manut__logo { height: 40px; margin-bottom: 18px; }
.manut__ico { width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,195,92,.14); color: var(--amarelo); }
.manut h1 { margin: 6px 0 0; font-size: clamp(24px, 4vw, 34px); color: #fff; }
.manut p { margin: 0; max-width: 520px; color: var(--texto-2); font-size: 16px; line-height: 1.6; }
.manut__volta { margin-top: 6px; padding: 10px 18px; border-radius: 12px; border: 1px solid rgba(255,195,92,.4); background: rgba(255,195,92,.08); color: var(--texto); font-size: 15px; }
.manut__volta b { color: var(--amarelo); }
.manut__adm { position: fixed; bottom: 18px; font-size: 12.5px; color: var(--texto-3); }

/* Administrador vendo a área do aluno: botão no topo, igual ao "Ver Área Do Aluno" do admin */
.volta-adm { white-space: nowrap; }
@media (max-width: 860px) { .volta-adm { padding: 0; width: 40px; height: 40px; justify-content: center; } .volta-adm span { display: none; } }

/* Login real: avisos e regras da senha */
.lg-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 12px; border-radius: 10px; background: rgba(255,122,122,.1); border: 1px solid rgba(255,122,122,.35); color: #FFC9C9; font-size: 13.5px; line-height: 1.45; }
.lg-aviso .ico { width: 17px; height: 17px; flex: none; margin-top: 1px; color: var(--vermelho); }
.lg-ok--erro { background: rgba(255,122,122,.12); color: var(--vermelho); }
.ds-regras { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--texto-3); }
.ds-regras li { display: flex; align-items: center; gap: 6px; }
.ds-regras .ico { width: 14px; height: 14px; }
.ds-regras li.ok { color: var(--verde); }
