@font-face {
    font-family: "RPTec Font Awesome";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("../vendor/fontawesome/webfonts/fa-solid-900.woff2") format("woff2"), url("../vendor/fontawesome/webfonts/fa-solid-900.ttf") format("truetype");
}

.editor-aula { border: 1px solid var(--cinza-300); border-radius: 12px; background: #fff; overflow: hidden; }
.barra-editor-aula { display: flex; flex-wrap: wrap; gap: 5px; padding: 8px; background: var(--cinza-50); border-bottom: 1px solid var(--cinza-200); }
.barra-editor-aula button { border: 1px solid var(--cinza-300); border-radius: 7px; background: #fff; padding: 6px 9px; color: var(--azul-800); cursor: pointer; font-size: .72rem; font-weight: 700; }
.barra-editor-aula button:hover { background: var(--azul-50); }
.editor-aula textarea { display: block; width: 100%; min-height: 360px; border: 0; border-radius: 0; resize: vertical; }
.editor-conteudo-visual { min-height: 360px; padding: 18px; outline: 0; line-height: 1.65; white-space: normal; }
.editor-conteudo-visual:focus { box-shadow: inset 0 0 0 2px var(--azul-300); }
.editor-conteudo-visual h2,.editor-conteudo-visual h3,.editor-conteudo-visual h4 { margin: 12px 0 8px; color: var(--azul-900); }
.editor-conteudo-visual blockquote { margin: 12px 0; padding: 10px 14px; border-left: 4px solid var(--azul-500); background: var(--azul-50); }
.editor-conteudo-visual pre { margin: 14px 0; padding: 16px; overflow-x: auto; color: #e8f3ff; background: #10283d; border: 1px solid #204b6d; border-radius: 10px; font: .86rem/1.55 Consolas, Monaco, monospace; white-space: pre-wrap; }
.editor-conteudo-visual pre code { color: inherit; background: transparent; font: inherit; }
.editor-conteudo-visual table { width: 100%; margin: 12px 0; border-collapse: collapse; }
.editor-conteudo-visual td,.editor-conteudo-visual th { padding: 8px; border: 1px solid var(--cinza-300); text-align: left; }
.editor-previa-aula { min-height: 260px; padding: 20px; border-top: 1px solid var(--cinza-200); background: #fff; }
.editor-previa-aula h2,.editor-previa-aula h3,.editor-previa-aula h4 { color: var(--azul-900); }
.editor-previa-aula blockquote { margin: 12px 0; padding: 10px 14px; border-left: 4px solid var(--azul-500); background: var(--azul-50); }
.editor-aula-tela-cheia { position: fixed; z-index: 1000; inset: 12px; box-shadow: 0 20px 70px #0005; }
.editor-aula-tela-cheia .editor-conteudo-visual { height: calc(100vh - 90px); overflow: auto; }
@media (max-width: 720px) { .barra-editor-aula button { flex: 1 0 auto; } .editor-aula textarea { min-height: 280px; } }

:root {
    --azul-950: #09243f;
    --azul-900: #0b3158;
    --azul-800: #0d477c;
    --azul-700: #0b5ea8;
    --azul-600: #0876ce;
    --azul-100: #e8f3fc;
    --verde-600: #159567;
    --verde-100: #e8f7f1;
    --laranja-500: #f29c38;
    --laranja-100: #fff3e2;
    --vermelho-600: #c43d4d;
    --vermelho-100: #fff0f2;
    --cinza-950: #142331;
    --cinza-700: #4d6071;
    --cinza-500: #718191;
    --cinza-300: #ccd6df;
    --cinza-200: #dde5eb;
    --cinza-100: #edf2f5;
    --cinza-50: #f7f9fb;
    --branco: #fff;
    --sombra: 0 18px 50px rgba(13, 47, 78, .1);
    --raio: 18px;
    --transicao: 180ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--cinza-950); background: var(--cinza-50); font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; letter-spacing: -.025em; }
.limite { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

.marca { display: inline-flex; align-items: center; gap: 11px; color: var(--azul-950); font-size: 1.3rem; font-weight: 800; letter-spacing: -.04em; }
.marca-simbolo { display: block; width: 42px; height: 42px; flex: 0 0 42px; object-fit: contain; filter: drop-shadow(0 8px 14px rgba(8,118,206,.2)); }
.marca-simbolo-claro { display: grid; place-items: center; color: var(--azul-950); background: #fff; border-radius: 13px; box-shadow: 0 8px 20px rgba(0,0,0,.16); filter: none; font-size: .68rem; font-weight: 900; letter-spacing: -.06em; }
.marca-clara { color: #fff; }
.etiqueta { display: inline-block; margin-bottom: 12px; color: var(--azul-700); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.etiqueta-clara { color: #a9d9ff; }

.botao { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 21px; border: 1px solid transparent; border-radius: 12px; cursor: pointer; font-weight: 750; transition: transform var(--transicao), box-shadow var(--transicao), background var(--transicao); }
.botao:hover { transform: translateY(-1px); }
.botao:focus-visible, input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid rgba(8,118,206,.25); outline-offset: 2px; }
.botao-primario { color: #fff; background: linear-gradient(135deg, var(--azul-600), var(--azul-800)); box-shadow: 0 10px 25px rgba(8,118,206,.2); }
.botao-primario:hover { box-shadow: 0 13px 28px rgba(8,118,206,.3); }
.botao-contorno { color: var(--azul-800); border-color: #b7ccde; background: rgba(255,255,255,.7); }
.botao-neutro { color: var(--cinza-700); border-color: var(--cinza-200); background: #fff; }
.botao-perigo { color: #fff; background: var(--vermelho-600); box-shadow: 0 10px 22px rgba(196,61,77,.18); }
.botao-perigo:hover { box-shadow: 0 13px 26px rgba(196,61,77,.28); }
.botao-compacto { min-height: 38px; padding: 0 16px; border-radius: 10px; font-size: .9rem; }
.botao-largo { width: 100%; }

.topo-publico { position: absolute; z-index: 10; inset: 0 0 auto; padding: 22px 0; }
.largura-topo { display: flex; align-items: center; justify-content: space-between; }
.largura-topo nav { display: flex; align-items: center; gap: 22px; }
.link-topo { color: var(--azul-900); font-size: .93rem; font-weight: 700; }
.hero { position: relative; overflow: hidden; padding: 150px 0 95px; background: radial-gradient(circle at 90% 15%, rgba(56,172,236,.2), transparent 28%), linear-gradient(145deg, #f6fbff 0%, #eaf5fd 55%, #f9fcfe 100%); }
.hero::before { content: ""; position: absolute; width: 540px; height: 540px; left: -350px; bottom: -330px; border: 100px solid rgba(8,118,206,.07); border-radius: 50%; pointer-events: none; }
.grade-hero { display: grid; grid-template-columns: 1.12fr .88fr; gap: 75px; align-items: center; }
.hero-texto h1 { max-width: 720px; margin-bottom: 23px; color: var(--azul-950); font-size: clamp(2.5rem, 5vw, 4.6rem); }
.hero-texto > p { max-width: 680px; color: var(--cinza-700); font-size: 1.12rem; }
.acoes-hero { display: flex; gap: 12px; margin: 32px 0 19px; }
.hero-texto .nota-acesso { color: var(--cinza-500); font-size: .82rem; }
.painel-hero { position: relative; display: grid; min-height: 470px; place-items: center; }
.orbita { position: absolute; border: 1px solid rgba(8,118,206,.18); border-radius: 50%; }
.orbita-a { width: 460px; height: 460px; }
.orbita-b { width: 330px; height: 330px; border-style: dashed; }
.cartao-destaque { position: relative; z-index: 2; width: min(350px, 88%); padding: 35px; color: #fff; background: linear-gradient(145deg, var(--azul-800), var(--azul-950)); border: 1px solid rgba(255,255,255,.18); border-radius: 28px; box-shadow: 0 30px 70px rgba(9,36,63,.28); transform: rotate(2deg); }
.cartao-destaque::after { content: ""; position: absolute; z-index: -1; width: 115px; height: 115px; right: -35px; top: -35px; background: rgba(36,158,222,.23); border-radius: 34px; transform: rotate(19deg); }
.icone-destaque { display: grid; width: 54px; height: 54px; margin-bottom: 38px; place-items: center; color: var(--azul-900); background: #fff; border-radius: 17px; font-size: 1.4rem; }
.cartao-destaque small { display: block; color: #aed9f6; font-weight: 700; }
.cartao-destaque strong { display: block; margin: 6px 0 22px; font-size: 1.55rem; line-height: 1.15; }
.progresso { height: 6px; overflow: hidden; background: rgba(255,255,255,.14); border-radius: 99px; }
.progresso span { display: block; width: 72%; height: 100%; background: linear-gradient(90deg, #66c5f4, #4de2b0); border-radius: inherit; }
.mini-indicadores { display: grid; gap: 12px; margin-top: 27px; }
.mini-indicadores span { display: flex; align-items: center; gap: 12px; color: #d7ebf9; font-size: .85rem; }
.mini-indicadores b { display: grid; width: 28px; height: 28px; place-items: center; background: rgba(255,255,255,.1); border-radius: 8px; font-size: .68rem; }
.secao-recursos { padding: 85px 0 95px; background: #fff; }
.cabecalho-secao { max-width: 650px; margin-bottom: 42px; }
.cabecalho-secao h2 { color: var(--azul-950); font-size: clamp(1.9rem, 3vw, 2.8rem); }
.grade-recursos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.grade-recursos article { padding: 30px; border: 1px solid var(--cinza-200); border-radius: var(--raio); transition: border var(--transicao), transform var(--transicao); }
.grade-recursos article:hover { border-color: #91bddf; transform: translateY(-3px); }
.grade-recursos article > span { display: grid; width: 48px; height: 48px; margin-bottom: 25px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 14px; font-size: 1.35rem; }
.grade-recursos h3 { margin-bottom: 10px; color: var(--azul-950); font-size: 1.15rem; }
.grade-recursos p { margin: 0; color: var(--cinza-700); font-size: .92rem; }
.link-destaque { display: inline-block; margin-top: 18px; color: var(--azul-700); font-size: .84rem; font-weight: 800; }
.rodape-publico { padding: 26px 0; color: #b9ccdc; background: var(--azul-950); font-size: .86rem; }
.rodape-publico .limite { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.rodape-publico strong { color: #fff; font-size: 1.1rem; }

.pagina-autenticacao { min-height: 100vh; background: #fff; }
.autenticacao-grade { display: grid; min-height: 100vh; grid-template-columns: minmax(390px, .85fr) 1.15fr; }
.autenticacao-marca { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 50px clamp(35px, 5vw, 80px); color: #fff; background: radial-gradient(circle at 20% 85%, rgba(42,192,158,.2), transparent 30%), linear-gradient(150deg, var(--azul-700), var(--azul-950)); }
.autenticacao-marca::after { content: ""; position: absolute; width: 430px; height: 430px; right: -290px; top: 25%; border: 75px solid rgba(255,255,255,.07); border-radius: 50%; }
.autenticacao-marca > div { position: relative; z-index: 1; max-width: 500px; }
.autenticacao-marca h1 { margin-bottom: 22px; font-size: clamp(2.2rem, 4vw, 3.8rem); }
.autenticacao-marca p { color: #cbe5f7; font-size: 1.05rem; }
.autenticacao-marca > small { color: #99bdd8; }
.autenticacao-formulario { display: grid; padding: 45px; place-items: center; background: #f8fafc; }
.cartao-formulario { width: min(465px, 100%); }
.cartao-formulario h2, .cartao-primeiro-acesso h1 { margin: 26px 0 8px; color: var(--azul-950); font-size: 2rem; }
.cartao-formulario > p { margin-bottom: 27px; color: var(--cinza-700); }
.voltar { color: var(--cinza-700); font-size: .88rem; font-weight: 700; }
.formulario { display: grid; }
.formulario label { margin: 14px 0 7px; color: var(--cinza-950); font-size: .87rem; font-weight: 750; }
.formulario label span { color: var(--cinza-500); font-size: .72rem; font-weight: 600; }
.formulario label b { color: var(--vermelho-600); }
.formulario input, .formulario select, .formulario textarea, .barra-busca input { width: 100%; min-height: 47px; padding: 10px 13px; color: var(--cinza-950); border: 1px solid var(--cinza-300); border-radius: 10px; background: #fff; transition: border var(--transicao), box-shadow var(--transicao); }
.formulario textarea { min-height: 105px; resize: vertical; }
.formulario input:focus, .formulario select:focus, .formulario textarea:focus, .barra-busca input:focus { border-color: var(--azul-600); box-shadow: 0 0 0 4px rgba(8,118,206,.1); outline: none; }
.formulario > .botao { margin-top: 24px; }
.campo-senha { position: relative; }
.campo-senha input { padding-right: 70px; }
.campo-senha button { position: absolute; right: 12px; top: 50%; padding: 4px; color: var(--azul-700); border: 0; background: transparent; cursor: pointer; transform: translateY(-50%); font-size: .78rem; font-weight: 800; }
.aviso-seguranca, .nota-formulario { display: flex; gap: 13px; margin-top: 28px; padding: 17px; color: var(--cinza-700); background: var(--azul-100); border-radius: 12px; font-size: .82rem; }
.aviso-seguranca span, .nota-formulario span { color: var(--azul-700); }
.aviso-seguranca p, .nota-formulario p { margin: 0; }
.pagina-autenticacao-simples { min-height: 100vh; background: radial-gradient(circle at 80% 15%, rgba(8,118,206,.13), transparent 28%), var(--cinza-50); }
.primeiro-acesso { display: grid; min-height: 100vh; padding: 40px 20px; place-items: center; }
.cartao-primeiro-acesso { width: min(560px, 100%); padding: 38px; background: #fff; border: 1px solid var(--cinza-200); border-radius: 22px; box-shadow: var(--sombra); }
.cartao-primeiro-acesso .etiqueta { display: block; margin: 30px 0 0; }
.form-sair-secundario { margin-top: 17px; text-align: center; }
.form-sair-secundario button { color: var(--cinza-500); border: 0; background: transparent; cursor: pointer; font-size: .82rem; }

.estrutura-app { display: grid; min-height: 100vh; grid-template-columns: 255px minmax(0, 1fr); }
.barra-lateral { position: fixed; inset: 0 auto 0 0; z-index: 20; display: flex; width: 255px; height: 100vh; height: 100dvh; overflow-y: auto; overscroll-behavior: contain; flex-direction: column; padding: 28px 20px 20px; color: #d9e9f5; background: linear-gradient(180deg, var(--azul-950), #061b30); }
.barra-lateral .marca { padding: 0 8px; }
.botao-recolher-menu { display: grid !important; width: 30px !important; min-width: 30px; height: 30px; flex: 0 0 30px; align-self: flex-end; margin: 22px 0 -30px auto; padding: 0 !important; place-items: center; color: #b9cfdf; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; background: rgba(255,255,255,.06); cursor: pointer; font-size: 1.5rem; line-height: 1; transition: background var(--transicao), color var(--transicao); }
.botao-recolher-menu i { display: block; width: 14px; color: currentColor; font-family: "RPTec Font Awesome"; font-size: .82rem; font-style: normal; font-weight: 900; line-height: 14px; text-align: center; transform: translateX(-1px); }
.botao-recolher-menu i::before { content: "\f053"; }
.botao-recolher-menu:hover { color: #fff; background: rgba(255,255,255,.14); }
.menu-principal { margin-top: 42px; }
.menu-principal a { display: flex; align-items: center; gap: 12px; margin-bottom: 5px; padding: 12px 13px; border-radius: 10px; color: #b9cfdf; font-size: .9rem; font-weight: 700; transition: color var(--transicao), background var(--transicao); }
.menu-principal a span { display: grid; width: 22px; place-items: center; color: #80b7de; font-size: 1.12rem; }
.menu-principal a:hover, .menu-principal a.ativo { color: #fff; background: rgba(255,255,255,.09); }
.menu-rotulo { margin: 30px 13px 9px; color: #6f93ad; font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.usuario-lateral { display: flex; align-items: center; gap: 11px; margin-top: auto; padding: 15px 10px 2px; border-top: 1px solid rgba(255,255,255,.1); }
.avatar { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: var(--azul-950); background: #c9e9ff; border-radius: 12px; font-weight: 800; }
.usuario-lateral strong, .usuario-lateral small { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.usuario-lateral strong { color: #fff; font-size: .82rem; }
.usuario-lateral small { color: #89a9c0; font-size: .68rem; }
.conteudo-app { min-width: 0; grid-column: 2; }
.estrutura-app.menu-recolhido { grid-template-columns: 76px minmax(0, 1fr); }
.menu-recolhido .barra-lateral { width: 76px; padding-right: 10px; padding-left: 10px; }
.menu-recolhido .marca { padding: 0; justify-content: center; }
.menu-recolhido .marca-nome, .menu-recolhido .menu-rotulo, .menu-recolhido .usuario-lateral > div { display: none; }
.menu-recolhido .botao-recolher-menu { margin-right: auto; margin-left: auto; }
.menu-recolhido .botao-recolher-menu i { transform: translateX(1px) rotate(180deg); }
.menu-recolhido .menu-principal a { justify-content: center; gap: 0; padding-right: 10px; padding-left: 10px; font-size: 0; }
.menu-recolhido .menu-principal a span[aria-hidden="true"] { font-size: 1.12rem; }
.menu-recolhido .usuario-lateral { justify-content: center; padding-right: 0; padding-left: 0; }
.topo-interno { position: sticky; top: 0; z-index: 15; display: flex; height: 74px; align-items: center; gap: 16px; padding: 0 32px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--cinza-200); backdrop-filter: blur(14px); }
.topo-contexto { display: grid; margin-right: auto; }
.topo-contexto small { color: var(--cinza-500); font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; }
.topo-contexto strong { color: var(--azul-950); font-size: .95rem; }
.botao-menu { display: none; width: 39px; height: 39px; border: 1px solid var(--cinza-200); border-radius: 9px; background: #fff; cursor: pointer; }
.conteudo-principal { width: min(1320px, 100%); margin: 0 auto; padding: 34px; }
.cabecalho-pagina { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.cabecalho-pagina h1 { margin-bottom: 8px; color: var(--azul-950); font-size: clamp(1.8rem, 3vw, 2.4rem); }
.cabecalho-pagina p { margin: 0; color: var(--cinza-700); }
.grade-indicadores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 20px; }
.indicador { position: relative; overflow: hidden; padding: 24px; background: #fff; border: 1px solid var(--cinza-200); border-radius: var(--raio); box-shadow: 0 8px 22px rgba(13,47,78,.04); }
.indicador::after { content: ""; position: absolute; width: 85px; height: 85px; right: -25px; top: -28px; border-radius: 50%; opacity: .16; }
.indicador span, .indicador small { display: block; color: var(--cinza-500); }
.indicador span { font-size: .8rem; font-weight: 750; }
.indicador strong { display: block; margin: 7px 0 2px; color: var(--azul-950); font-size: 2rem; }
.indicador small { font-size: .72rem; }
.indicador-azul::after { background: var(--azul-600); }
.indicador-verde::after { background: var(--verde-600); }
.indicador-laranja::after { background: var(--laranja-500); }
.grade-paineis { display: grid; grid-template-columns: 1.45fr .75fr; gap: 20px; }
.painel { padding: 25px; background: #fff; border: 1px solid var(--cinza-200); border-radius: var(--raio); box-shadow: 0 8px 24px rgba(13,47,78,.045); }
.painel h2 { color: var(--azul-950); font-size: 1.25rem; }
.lista-acoes { display: grid; gap: 9px; margin-top: 20px; }
.lista-acoes a { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; padding: 13px; border: 1px solid var(--cinza-200); border-radius: 12px; transition: border var(--transicao), background var(--transicao); }
.lista-acoes a:hover { border-color: #9cc4e2; background: #fafdff; }
.lista-acoes a > span { display: grid; width: 42px; height: 42px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 11px; font-size: 1.2rem; }
.lista-acoes strong, .lista-acoes small { display: block; }
.lista-acoes strong { font-size: .88rem; }
.lista-acoes small { color: var(--cinza-500); font-size: .72rem; }
.lista-acoes b { color: var(--azul-600); }
.lista-aulas-recentes { display: grid; gap: 9px; margin-top: 20px; }
.lista-aulas-recentes a { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; padding: 13px; border: 1px solid var(--cinza-200); border-radius: 12px; }
.lista-aulas-recentes a:hover { border-color: #9cc4e2; background: #fafdff; }
.numero-aula-recente { display: grid; width: 42px; height: 42px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 11px; font-size: .72rem; font-weight: 700; text-align: center; }
.lista-aulas-recentes strong, .lista-aulas-recentes small { display: block; }
.lista-aulas-recentes strong { font-size: .88rem; }
.lista-aulas-recentes small { color: var(--cinza-500); font-size: .72rem; }
.lista-aulas-recentes b { color: var(--azul-600); }
.painel-status { color: #d8e8f5; background: linear-gradient(155deg, var(--azul-800), var(--azul-950)); border: 0; }
.painel-status .etiqueta { color: #9ad0f4; }
.painel-status h2 { color: #fff; }
.lista-verificacao { display: grid; gap: 12px; margin: 26px 0 0; padding: 0; list-style: none; }
.lista-verificacao li { display: flex; align-items: center; gap: 10px; font-size: .85rem; }
.lista-verificacao span { display: grid; width: 24px; height: 24px; place-items: center; color: #bbf4df; background: rgba(50,203,151,.18); border-radius: 7px; }
.vazio { padding: 60px; text-align: center; }

.alerta { margin-bottom: 20px; padding: 15px 17px; border: 1px solid transparent; border-radius: 12px; font-size: .88rem; }
.alerta ul { margin: 8px 0 0; padding-left: 20px; }
.alerta-sucesso { color: #146b4c; background: var(--verde-100); border-color: #b6e5d3; }
.alerta-erro { color: #8d2936; background: var(--vermelho-100); border-color: #f1c3ca; }
.alerta-aviso { color: #7a5018; background: var(--laranja-100); border-color: #f2d3a9; }
.alert-info { color: var(--azul-800); background: var(--azul-100); border-color: #bcdaee; font-size: .76rem; }
.alert-info strong { font-size: .8rem; }
.alert-info p { margin: 4px 0 0; font-size: .74rem; }
.status-questionario { margin: 10px 0; font-size: .78rem; }
.status-realizado { color: var(--verde-700); }
.status-nao-realizado { color: var(--cinza-600); }
.botao-realizado { color: #fff; background: var(--verde-600); border-color: var(--verde-600); }
.botao-encerrado { color: #fff; background: var(--vermelho-600); border-color: var(--vermelho-600); }
.botao-disponivel { color: #fff; background: var(--azul-700); border-color: var(--azul-700); }
.botao-recuperacao { color: #664d03; background: #ffc107; border-color: #ffc107; }
.botao-recuperacao:hover { color: #664d03; background: #e0a800; border-color: #d39e00; }
.notas-finais-cabecalho { margin-bottom: 18px; }
.painel-notas-finais { padding: 0; overflow: hidden; }
.notas-finais-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 18px 20px; background: var(--cinza-50); border-bottom: 1px solid var(--cinza-200); }
.notas-finais-toolbar label { display: block; margin-bottom: 6px; color: var(--cinza-600); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.notas-finais-toolbar select { min-width: 250px; }
.notas-finais-regra { display: grid; gap: 3px; color: var(--cinza-600); font-size: .75rem; text-align: right; }
.notas-finais-regra strong { color: var(--azul-800); font-size: .78rem; }
.tabela-notas-finais { border: 0; border-radius: 0; }
.tabela-notas-finais .coluna-numero { width: 65px; text-align: center; }
.tabela-notas-finais .coluna-nota { width: 150px; text-align: right; }
.tabela-notas-finais input { width: 100px; text-align: right; }
.painel-notas-finais .acoes-formulario { padding: 16px 20px; border-top: 1px solid var(--cinza-200); }
.acoes-cabecalho-painel { display: flex; flex-wrap: wrap; gap: 8px; }
.link-modulo-notas { color: var(--azul-700); text-decoration: none; }
.link-modulo-notas:hover { text-decoration: underline; }
@media (max-width: 700px) { .notas-finais-toolbar { align-items: stretch; flex-direction: column; } .notas-finais-toolbar select { width: 100%; min-width: 0; } .notas-finais-regra { text-align: left; } }
.alternativas-resultado { margin: 12px 0; padding: 10px 12px; border-radius: 9px; background: var(--cinza-100); font-size: .82rem; }
.alternativas-resultado strong { display: block; margin-bottom: 5px; color: var(--azul-950); }
.alternativas-resultado div { padding: 3px 0; }
.alerta-aviso a { text-decoration: underline; font-weight: 800; }
.alerta-credencial { display: flex; align-items: center; justify-content: space-between; gap: 25px; color: #144c77; background: var(--azul-100); border-color: #bcdaee; }
.alerta-credencial p { margin: 3px 0 0; }
.alerta-credencial dl { display: flex; gap: 8px; margin: 0; }
.alerta-credencial dl div { min-width: 145px; padding: 9px 12px; background: #fff; border-radius: 9px; }
.alerta-credencial dt { color: var(--cinza-500); font-size: .65rem; font-weight: 700; text-transform: uppercase; }
.alerta-credencial dd { margin: 3px 0 0; color: var(--azul-950); font-family: Consolas, monospace; font-weight: 800; }

.painel-tabela { padding: 0; overflow: hidden; }
.barra-busca { display: flex; gap: 9px; padding: 18px; border-bottom: 1px solid var(--cinza-200); }
.barra-busca input { max-width: 430px; }
.tabela-responsiva { overflow-x: auto; }
.lista-boletim { display: grid; gap: 16px; }
.modulo-boletim { padding: 0; overflow: hidden; }
.modulo-boletim summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 25px; cursor: pointer; list-style: none; }
.modulo-boletim summary::-webkit-details-marker { display: none; }
.modulo-boletim summary::before { content: "›"; order: 2; color: var(--azul-600); font-size: 1.5rem; line-height: 1; transition: transform var(--transicao); }
.modulo-boletim[open] summary::before { transform: rotate(90deg); }
.modulo-boletim summary > span { min-width: 0; }
.modulo-boletim summary strong { display: block; color: var(--azul-950); font-size: 1rem; }
.modulo-boletim summary small { display: block; margin-top: 4px; color: var(--cinza-500); font-size: .75rem; }
.modulo-boletim summary > b { order: 1; margin-left: auto; color: var(--azul-700); font-size: 1.35rem; white-space: nowrap; }
.modulo-boletim .nota-final-manual { margin: 0; padding: 10px 25px; color: #7a5018; background: var(--laranja-100); border-top: 1px solid #f6dfbd; border-bottom: 1px solid #f6dfbd; font-size: .78rem; }
.modulo-boletim .tabela-responsiva { border-top: 1px solid var(--cinza-200); }
.modulo-boletim table { min-width: 680px; }
.modulo-boletim tbody tr:last-child td { border-bottom: 0; }
@media (max-width: 720px) {
    .modulo-boletim summary { gap: 10px; padding: 18px 16px; }
    .modulo-boletim summary > b { font-size: 1.1rem; }
    .modulo-boletim .nota-final-manual { padding-right: 16px; padding-left: 16px; }
}
table { width: 100%; border-collapse: collapse; }
th, td { padding: 15px 18px; text-align: left; border-bottom: 1px solid var(--cinza-200); vertical-align: middle; }
th { color: var(--cinza-500); background: #f9fbfc; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
td { color: var(--cinza-700); font-size: .82rem; }
td strong, td small { display: block; }
td strong { color: var(--cinza-950); }
td small { margin-top: 3px; color: var(--cinza-500); }
td code { padding: 4px 7px; color: var(--azul-800); background: var(--azul-100); border-radius: 6px; font-size: .72rem; }
.estado-vazio { padding: 45px; text-align: center; }
.selo { display: inline-block; padding: 4px 9px; border-radius: 99px; font-size: .68rem; font-weight: 800; }
.selo-sucesso { color: #14704f; background: var(--verde-100); }
.selo-neutro { color: #536676; background: var(--cinza-100); }
.selo-aviso { margin-left: 6px; color: #7a5018; background: var(--laranja-100); }
.link-tabela { color: var(--azul-800); }
.link-tabela:hover { text-decoration: underline; }
.acoes-cabecalho { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.formulario-inline { display: inline-flex; margin: 0; }
.painel-acesso-conta { align-items: center; display: flex; gap: 28px; justify-content: space-between; margin-top: 20px; }
.painel-acesso-conta h2 { margin-bottom: 8px; }
.painel-acesso-conta p { margin: 0; max-width: 700px; }
.grade-detalhes-aluno { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 20px; }
.lista-detalhes { display: grid; gap: 0; margin: 18px 0 0; }
.lista-detalhes div { display: grid; grid-template-columns: minmax(130px, .55fr) 1fr; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--cinza-200); }
.lista-detalhes div:last-child { border-bottom: 0; }
.lista-detalhes dt { color: var(--cinza-500); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.lista-detalhes dd { margin: 0; color: var(--cinza-950); font-size: .83rem; overflow-wrap: anywhere; }
.lista-detalhes code { color: var(--azul-800); font-size: .75rem; }
.acoes-tabela { display: flex; flex-wrap: wrap; gap: 7px; }
.botao-icone-tabela { width: 38px; min-height: 38px; padding: 0; }
.botao-icone-tabela .fa-eye { display: inline-block; color: currentColor; font-family: "RPTec Font Awesome"; font-size: 1rem; font-style: normal; font-weight: 900; line-height: 1; }
.botao-icone-tabela .fa-eye::before { content: "\f06e"; }
.botao .fa-screwdriver-wrench { display: inline-block; color: currentColor; font-family: "RPTec Font Awesome"; font-size: 1rem; font-style: normal; font-weight: 900; line-height: 1; }
.botao .fa-screwdriver-wrench::before { content: "\f7d9"; }
.botao .fa-pen-to-square { display: inline-block; color: currentColor; font-family: "RPTec Font Awesome"; font-size: 1rem; font-style: normal; font-weight: 900; line-height: 1; }
.botao .fa-pen-to-square::before { content: "\f044"; }
.botao-icone-tabela svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.cpf-aluno { display: inline-flex; align-items: center; gap: 7px; }
.botao-icone-cpf { display: inline-grid; width: 30px; height: 30px; padding: 0; place-items: center; color: var(--azul-700); background: var(--azul-100); border: 1px solid #bcdaee; border-radius: 8px; cursor: pointer; }
.botao-icone-cpf:hover { color: var(--azul-950); border-color: var(--azul-600); }
.botao-icone-cpf:focus-visible { outline: 3px solid rgba(22, 119, 189, .25); outline-offset: 2px; }
.botao-icone-cpf:disabled { color: var(--cinza-500); cursor: wait; opacity: .7; }
.botao-icone-cpf svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.email-aluno { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .72rem; }
.email-copiavel { padding: 0; color: inherit; background: transparent; border: 0; border-bottom: 1px dotted currentColor; font: inherit; cursor: copy; }
.email-copiavel:hover { color: var(--azul-700); }
.email-copiavel:focus-visible { color: var(--azul-700); outline: 3px solid rgba(22, 119, 189, .25); outline-offset: 2px; border-radius: 3px; }
.email-copiavel:disabled { cursor: wait; opacity: .7; }
.email-copiavel.copiado, .confirmacao-copia-email { color: var(--verde-700); }
.confirmacao-copia-email { font-size: .66rem; font-weight: 800; }
.cabecalho-painel-tabela { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 24px; border-bottom: 1px solid var(--cinza-200); }
.cabecalho-painel-tabela h2, .painel-titulo h2, .cabecalho-compacto h2 { margin: 0; color: var(--azul-950); font-size: 1.25rem; }
.cabecalho-painel-tabela .etiqueta, .painel-titulo .etiqueta, .cabecalho-compacto .etiqueta { margin-bottom: 6px; }
.grade-resumo-administrativo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.grade-resumo-administrativo > div { padding: 17px; background: var(--cinza-50); border: 1px solid var(--cinza-200); border-radius: 12px; }
.grade-resumo-administrativo strong, .grade-resumo-administrativo small { display: block; }
.grade-resumo-administrativo strong { margin-bottom: 8px; color: var(--azul-950); }
.grade-resumo-administrativo small { margin-top: 4px; color: var(--cinza-700); }
.filtros-administrativos { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) auto auto; gap: 12px; align-items: end; margin-bottom: 20px; padding: 18px; }
.filtros-administrativos .campo { display: grid; gap: 6px; }
.filtros-administrativos label { color: var(--cinza-700); font-size: .72rem; font-weight: 800; }
.filtros-administrativos input, .filtros-administrativos select { width: 100%; min-height: 46px; padding: 9px 12px; border: 1px solid var(--cinza-300); border-radius: 10px; background: #fff; }
.bloco-administrativo { margin-top: 22px; }
.cabecalho-compacto { margin-bottom: 16px; }
.grade-publicacoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cartao-publicacao { position: relative; }
.cartao-publicacao header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 12px; padding-right: 52px; }
.acao-excluir-oferta { position: absolute; top: 16px; right: 16px; margin: 0; }
.acao-excluir-oferta .botao { width: 36px; height: 36px; min-width: 36px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.cartao-publicacao header strong, .cartao-publicacao header small { display: block; }
.cartao-publicacao header small { margin-top: 3px; color: var(--cinza-500); font-size: .75rem; }
.cartao-publicacao .grade-formulario { margin-bottom: 14px; }
.filtros-questionarios { grid-template-columns: minmax(260px, 1fr) minmax(190px, .45fr) auto auto; }
.secao-expansivel { margin-bottom: 16px; padding: 0; overflow: hidden; }
.secao-expansivel > summary { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; cursor: pointer; list-style: none; }
.secao-expansivel > summary::-webkit-details-marker { display: none; }
.secao-expansivel > summary::after { content: "+"; color: var(--azul-700); font-size: 1.4rem; font-weight: 800; }
.secao-expansivel[open] > summary::after { content: "−"; }
.secao-expansivel > summary strong, .secao-expansivel > summary small { display: block; }
.secao-expansivel > summary small { margin-top: 3px; color: var(--cinza-500); font-size: .75rem; }
.conteudo-expansivel { padding: 23px; border-top: 1px solid var(--cinza-200); }
.lista-perguntas-admin { display: grid; gap: 12px; margin-top: 15px; }
.resumo-pergunta { display: flex; align-items: center; gap: 13px; }
.resumo-pergunta > b { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; color: var(--azul-800); background: var(--azul-100); border-radius: 9px; }
.lista-alternativas { display: grid; gap: 12px; }
.lista-alternativas h3 { margin: 0; color: var(--azul-950); font-size: 1rem; }
.linha-alternativa { display: grid; grid-template-columns: 84px minmax(0, 1fr) minmax(0, .8fr); gap: 12px; align-items: end; padding: 14px; background: var(--cinza-50); border: 1px solid var(--cinza-200); border-radius: 12px; }
.seletor-correta { display: flex !important; align-items: center; gap: 7px; min-height: 47px; margin: 0 !important; color: var(--verde-600) !important; }
.seletor-correta input { width: auto !important; min-height: auto !important; }
.grade-questionarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cartao-questionario { display: flex; flex-direction: column; }
.cartao-questionario-recuperacao { color: #664d03; background: #fff3cd; border-color: #ffecb5; }
.cartao-questionario-recuperacao h2 { color: #664d03; }
.cartao-questionario-recuperacao > p, .cartao-questionario-recuperacao dt { color: #806b26; }
.cartao-questionario-recuperacao dd { color: #664d03; }
.cartao-questionario-recuperacao dl div { border-color: #f1dda0; }
.cartao-questionario header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cartao-questionario header small { color: var(--cinza-500); font-size: .7rem; text-align: right; }
.cartao-questionario h2 { margin: 20px 0 9px; color: var(--azul-950); font-size: 1.2rem; }
.cartao-questionario > p { flex: 1; color: var(--cinza-700); font-size: .86rem; }
.cartao-questionario dl { display: grid; gap: 8px; margin: 15px 0 20px; }
.cartao-questionario dl div { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 7px; border-bottom: 1px solid var(--cinza-200); font-size: .76rem; }
.cartao-questionario dt { color: var(--cinza-500); }
.cartao-questionario dd { margin: 0; color: var(--azul-950); font-weight: 750; text-align: right; }
.temporizador-questionario { min-width: 130px; padding: 13px 18px; color: #fff; background: var(--azul-950); border-radius: 13px; text-align: center; }
.temporizador-questionario small, .temporizador-questionario strong { display: block; }
.temporizador-questionario small { color: #a9c7de; font-size: .65rem; text-transform: uppercase; }
.temporizador-questionario strong { margin-top: 2px; font-size: 1.35rem; }
.form-questionario { display: grid; gap: 18px; }
.navegacao-perguntas { position: sticky; top: 88px; z-index: 5; display: flex; flex-wrap: wrap; gap: 7px; padding: 12px; background: rgba(255,255,255,.94); border: 1px solid var(--cinza-200); border-radius: 12px; backdrop-filter: blur(10px); }
.navegacao-perguntas a { display: grid; width: 34px; height: 34px; place-items: center; color: var(--azul-800); background: var(--azul-100); border-radius: 9px; font-size: .78rem; font-weight: 800; }
.pergunta-aluno { scroll-margin-top: 150px; }
.pergunta-aluno legend { padding: 0 5px; color: var(--azul-950); font-size: .82rem; font-weight: 800; }
.pergunta-aluno legend span { margin-left: 8px; color: var(--cinza-500); font-weight: 600; }
.enunciado-pergunta { margin: 0 0 20px; color: var(--cinza-950); font-size: 1.03rem; font-weight: 700; }
.alternativas-aluno { display: grid; gap: 10px; }
.alternativas-aluno label { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 14px 16px; color: var(--cinza-700); background: var(--cinza-50); border: 1px solid var(--cinza-200); border-radius: 11px; cursor: pointer; }
.alternativas-aluno label:has(input:checked) { color: var(--azul-950); background: var(--azul-100); border-color: #91bfe1; }
.alternativas-aluno input { width: auto; min-height: auto; margin-top: 3px; }
.form-questionario [data-bloqueio-selecao] { -webkit-user-select: none; user-select: none; }
.finalizar-questionario { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.finalizar-questionario p { margin: 4px 0 0; color: var(--cinza-500); font-size: .82rem; }
.lista-feedback-questionario { display: grid; gap: 14px; margin-top: 24px; }
.feedback-pergunta { border-left: 5px solid var(--cinza-300); }
.feedback-correto { border-left-color: var(--verde-600); }
.feedback-incorreto { border-left-color: var(--vermelho-600); }
.feedback-pergunta header { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.feedback-pergunta header span { font-size: .74rem; font-weight: 850; }
.feedback-correto header span { color: var(--verde-600); }
.feedback-incorreto header span { color: var(--vermelho-600); }
.feedback-pergunta > p { color: var(--cinza-950); font-weight: 700; }
.feedback-pergunta dl { display: grid; gap: 8px; }
.feedback-pergunta dl div { padding: 11px 13px; background: var(--cinza-50); border-radius: 9px; }
.feedback-pergunta dt { color: var(--cinza-500); font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.feedback-pergunta dd { margin: 3px 0 0; color: var(--cinza-950); }
.explicacao-resposta { margin-top: 14px; padding: 14px; color: var(--azul-950); background: var(--azul-100); border-radius: 10px; }
.explicacao-resposta p { margin: 5px 0 0; }
.filtros-ranking { grid-template-columns: minmax(260px, .7fr) auto auto; }
.painel-ranking { padding: 0; overflow: hidden; }
.posicao-ranking { display: grid; width: 42px; height: 42px; place-items: center; color: var(--azul-800); background: var(--azul-100); border-radius: 12px; font-size: 1rem; }
.linha-ranking-1 .posicao-ranking { color: #77540a; background: #fff0b8; box-shadow: inset 0 0 0 1px #ebce6b; }
.linha-ranking-2 .posicao-ranking { color: #50606c; background: #edf1f4; box-shadow: inset 0 0 0 1px #cbd4da; }
.linha-ranking-3 .posicao-ranking { color: #7b4526; background: #f7dfd0; box-shadow: inset 0 0 0 1px #dfb598; }
.correcao-resultado summary { color: var(--azul-700); cursor: pointer; font-weight: 800; }
.formulario-correcao { display: grid; min-width: 250px; gap: 8px; margin-top: 9px; }
.formulario-correcao input, .formulario-correcao select, .formulario-correcao textarea { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid var(--cinza-300); border-radius: 8px; background: #fff; }
.pagina-ranking-publico { min-height: 100vh; background: var(--cinza-50); }
.hero-ranking { padding: 145px 0 65px; color: var(--azul-950); background: radial-gradient(circle at 85% 20%, rgba(8,118,206,.16), transparent 30%), linear-gradient(145deg, #f6fbff, #eaf5fd); }
.hero-ranking h1 { margin-bottom: 16px; font-size: clamp(2.3rem, 4vw, 4rem); }
.hero-ranking p { max-width: 760px; margin: 0; color: var(--cinza-700); font-size: 1.05rem; }
.lista-ranking-publico { padding-top: 50px; padding-bottom: 75px; }
.painel-observacao-interna { margin-bottom: 20px; border-color: #f0d4ae; background: #fffdf8; }
.painel-observacao-interna h2 { margin: 7px 0 10px; }
.painel-observacao-interna p { margin: 0; color: var(--cinza-700); white-space: pre-line; }
.painel-historico-academico { margin-bottom: 20px; }
.grade-indicadores-quatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bloco-frequencia { margin-top: 20px; }
.selo-frequencia { min-width: 78px; text-align: center; }
.selo-presente { color: #14704f; background: var(--verde-100); }
.selo-falta { color: #8d2936; background: var(--vermelho-100); }
.selo-justificada { color: #7a5018; background: var(--laranja-100); }
.filtros-frequencia { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(180px, .35fr) auto; gap: 16px; align-items: end; margin-bottom: 16px; }
.filtros-frequencia .campo,
.filtros-relatorio-frequencia .campo { display: grid; gap: 6px; }
.filtros-frequencia label,
.filtros-relatorio-frequencia label { color: var(--cinza-700); font-size: .72rem; font-weight: 800; }
.filtros-frequencia input,
.filtros-frequencia select,
.filtros-relatorio-frequencia input,
.filtros-relatorio-frequencia select { width: 100%; min-height: 46px; padding: 9px 12px; color: var(--cinza-950); border: 1px solid var(--cinza-300); border-radius: 10px; background: #fff; transition: border var(--transicao), box-shadow var(--transicao); }
.filtros-frequencia input:focus,
.filtros-frequencia select:focus,
.filtros-relatorio-frequencia input:focus,
.filtros-relatorio-frequencia select:focus { border-color: var(--azul-600); box-shadow: 0 0 0 4px rgba(8,118,206,.1); outline: none; }
.datas-frequencia { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 16px; color: var(--cinza-500); font-size: .72rem; }
.datas-frequencia strong { margin-right: 4px; }
.datas-frequencia a { padding: 6px 9px; color: var(--azul-800); background: #fff; border: 1px solid var(--cinza-200); border-radius: 8px; font-weight: 800; }
.datas-frequencia a.ativo { color: #fff; background: var(--azul-700); border-color: var(--azul-700); }
.cabecalho-chamada { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cabecalho-chamada h2 { margin: 6px 0; }
.cabecalho-chamada p { margin: 0; color: var(--cinza-500); font-size: .8rem; }
.tabela-chamada { margin: 0 -25px; }
.tabela-chamada select { min-width: 150px; }
.fonte-frequencia { margin: 0; color: var(--cinza-500); font-size: .75rem; }

.formulario-administrativo { gap: 24px; }
/* Utilitários de espaçamento compatíveis com o padrão Bootstrap. */
.m-0 { margin: 0 !important; }
.m-1 { margin: .25rem !important; }
.m-2 { margin: .5rem !important; }
.m-3 { margin: 1rem !important; }
.m-4 { margin: 1.5rem !important; }
.m-5 { margin: 3rem !important; }
.m-auto { margin: auto !important; }
.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: .25rem !important; }
.mt-2 { margin-top: .5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.mt-5 { margin-top: 3rem !important; }
.mt-auto { margin-top: auto !important; }
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: .25rem !important; }
.mb-2 { margin-bottom: .5rem !important; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mb-5 { margin-bottom: 3rem !important; }
.mb-auto { margin-bottom: auto !important; }
.ms-0 { margin-inline-start: 0 !important; }
.ms-1 { margin-inline-start: .25rem !important; }
.ms-2 { margin-inline-start: .5rem !important; }
.ms-3 { margin-inline-start: 1rem !important; }
.ms-4 { margin-inline-start: 1.5rem !important; }
.ms-5 { margin-inline-start: 3rem !important; }
.me-0 { margin-inline-end: 0 !important; }
.me-1 { margin-inline-end: .25rem !important; }
.me-2 { margin-inline-end: .5rem !important; }
.me-3 { margin-inline-end: 1rem !important; }
.me-4 { margin-inline-end: 1.5rem !important; }
.me-5 { margin-inline-end: 3rem !important; }
.mx-0 { margin-inline: 0 !important; }
.mx-1 { margin-inline: .25rem !important; }
.mx-2 { margin-inline: .5rem !important; }
.mx-3 { margin-inline: 1rem !important; }
.mx-4 { margin-inline: 1.5rem !important; }
.mx-5 { margin-inline: 3rem !important; }
.my-0 { margin-block: 0 !important; }
.my-1 { margin-block: .25rem !important; }
.my-2 { margin-block: .5rem !important; }
.my-3 { margin-block: 1rem !important; }
.my-4 { margin-block: 1.5rem !important; }
.my-5 { margin-block: 3rem !important; }
.filtros-relatorio-aulas { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.filtros-relatorio-aulas .acoes-formulario { grid-column: 1 / -1; }
.formulario-administrativo fieldset { margin: 0; padding: 0 0 25px; border: 0; border-bottom: 1px solid var(--cinza-200); }
.formulario-administrativo legend { margin-bottom: 18px; color: var(--azul-950); font-size: 1rem; font-weight: 800; }
.grade-formulario { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px 20px; }
.painel-alterar-senha { max-width: 820px; }
.campo { min-width: 0; }
.campo-duplo { grid-column: 1 / -1; }
.campo label { display: block; margin-top: 0; }
.campo small { display: block; margin-top: 5px; color: var(--cinza-500); font-size: .7rem; }
.grade-opcoes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.opcao-marcavel { display: flex !important; min-height: 48px; align-items: center; gap: 10px; margin: 0 !important; padding: 11px 13px; border: 1px solid var(--cinza-300); border-radius: 10px; background: #fff; cursor: pointer; }
.opcao-marcavel input { width: 18px !important; min-height: 18px !important; margin: 0; accent-color: var(--azul-700); }
.opcao-marcavel span { color: var(--cinza-950) !important; font-size: .82rem !important; }
.acoes-formulario { display: flex; justify-content: flex-end; gap: 9px; }
.nota-formulario { margin: 0; }
.painel-resumo-movimentacao { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.painel-resumo-movimentacao > div { min-width: 130px; }
.painel-resumo-movimentacao strong { display: block; margin-top: 6px; color: var(--azul-950); font-size: 2rem; }
.painel-resumo-movimentacao p { max-width: 760px; margin: 0; color: var(--cinza-700); font-size: .84rem; }
.filtro-enturmacao-acompanhamento { display: grid; grid-template-columns: minmax(280px, 1fr) auto; align-items: end; gap: 14px; margin-bottom: 20px; }
.contexto-acompanhamento { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 20px; background: linear-gradient(135deg, #fff, var(--azul-100)); }
.contexto-acompanhamento h2 { margin: 7px 0; color: var(--azul-950); font-size: 1.55rem; }
.contexto-acompanhamento p { margin: 0; color: var(--cinza-700); font-size: .84rem; }
.contexto-acompanhamento dl { display: flex; gap: 10px; margin: 0; }
.contexto-acompanhamento dl div { min-width: 125px; padding: 12px; background: rgba(255,255,255,.82); border: 1px solid var(--cinza-200); border-radius: 10px; }
.contexto-acompanhamento dt { color: var(--cinza-500); font-size: .63rem; font-weight: 800; text-transform: uppercase; }
.contexto-acompanhamento dd { margin: 4px 0 0; color: var(--azul-950); font-size: .78rem; font-weight: 800; }
.contexto-acompanhamento dd small { display: block; margin-top: 3px; color: var(--cinza-500); font-size: .62rem; font-weight: 650; }
.grade-alertas-pedagogicos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.alerta-pedagogico { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--cinza-200); border-left-width: 5px; border-radius: 12px; background: #fff; }
.alerta-pedagogico > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 8px; font-weight: 900; }
.alerta-pedagogico strong { display: block; color: var(--azul-950); font-size: .84rem; }
.alerta-pedagogico p { margin: 4px 0 0; color: var(--cinza-700); font-size: .76rem; }
.alerta-pedagogico-perigo { border-left-color: var(--vermelho-600); }
.alerta-pedagogico-perigo > span { color: #8d2936; background: var(--vermelho-100); }
.alerta-pedagogico-aviso { border-left-color: #d18a26; }
.alerta-pedagogico-aviso > span { color: #7a5018; background: var(--laranja-100); }
.alerta-pedagogico-sucesso { border-left-color: var(--verde-600); }
.alerta-pedagogico-sucesso > span { color: #14704f; background: var(--verde-100); }
.alerta-pedagogico-neutro { border-left-color: var(--azul-700); }
.alerta-pedagogico-neutro > span { color: var(--azul-800); background: var(--azul-100); }
.indicadores-acompanhamento { margin-bottom: 20px; }
.painel-acompanhamento { margin-bottom: 20px; }
.cabecalho-painel-tabela p, .cabecalho-secao-acompanhamento p { margin: 6px 0 0; color: var(--cinza-500); font-size: .76rem; }
.cabecalho-secao-acompanhamento { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.cabecalho-secao-acompanhamento h2 { margin: 0; color: var(--azul-950); font-size: 1.25rem; }
.barra-progresso-acompanhamento { height: 9px; overflow: hidden; background: var(--cinza-100); border-radius: 99px; }
.barra-progresso-acompanhamento span { display: block; height: 100%; background: linear-gradient(90deg, var(--azul-700), var(--verde-600)); border-radius: inherit; }
.legenda-progresso-acompanhamento { margin: 7px 0 20px; color: var(--cinza-500); font-size: .72rem; }
.lista-modulos-acompanhamento { display: grid; gap: 11px; }
.modulo-acompanhamento { overflow: hidden; border: 1px solid var(--cinza-200); border-radius: 12px; background: #fff; }
.modulo-acompanhamento summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px 18px; cursor: pointer; list-style: none; }
.modulo-acompanhamento summary::-webkit-details-marker { display: none; }
.modulo-acompanhamento summary strong, .modulo-acompanhamento summary small { display: block; }
.modulo-acompanhamento summary strong { color: var(--azul-950); font-size: .86rem; }
.modulo-acompanhamento summary small { margin-top: 4px; color: var(--cinza-500); font-size: .7rem; }
.modulo-acompanhamento summary > span { color: var(--azul-800); font-size: .88rem; font-weight: 850; }
.modulo-acompanhamento[open] summary { background: var(--cinza-50); border-bottom: 1px solid var(--cinza-200); }
.selo-perigo { color: #8d2936; background: var(--vermelho-100); }

.topo-publico-solido { position: relative; padding: 18px 0; background: #fff; border-bottom: 1px solid var(--cinza-200); }
.hero-curso { padding: 82px 0 76px; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(55,190,235,.2), transparent 28%), linear-gradient(145deg, var(--azul-800), var(--azul-950)); }
.hero-curso h1 { max-width: 850px; margin: 12px 0 18px; font-size: clamp(2.4rem, 5vw, 4.5rem); }
.hero-curso > .limite > p { max-width: 760px; color: #cbe4f6; font-size: 1.08rem; }
.trilha { display: flex; gap: 9px; margin-bottom: 38px; color: #aac8dd; font-size: .78rem; }
.trilha a { color: #fff; font-weight: 750; }
.metadados-curso { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 35px; }
.metadados-curso span { padding: 11px 15px; color: #cfe5f4; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; font-size: .78rem; }
.metadados-curso b { margin-right: 5px; color: #fff; font-size: .95rem; }
.secao-curso { padding: 75px 0; }
.resumo-curso { background: #fff; }
.grade-resumo-curso { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.grade-resumo-curso article { min-height: 145px; padding: 24px; border: 1px solid var(--cinza-200); border-radius: var(--raio); }
.grade-resumo-curso small, .grade-resumo-curso strong, .grade-resumo-curso span { display: block; }
.grade-resumo-curso small { color: var(--cinza-500); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.grade-resumo-curso strong { margin: 13px 0 6px; color: var(--azul-950); font-size: 1.15rem; }
.grade-resumo-curso span { color: var(--cinza-700); font-size: .82rem; }
.aviso-publico { display: flex; align-items: flex-start; gap: 14px; margin-top: 18px; padding: 20px 22px; color: #31546e; background: var(--azul-100); border-radius: 14px; font-size: .88rem; }
.aviso-publico > span { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #fff; background: var(--azul-700); border-radius: 9px; }
.aviso-publico p { margin: 3px 0 0; }
.secao-matriz { background: var(--cinza-50); }
.cabecalho-secao-curso { display: flex; max-width: none; align-items: end; justify-content: space-between; gap: 40px; }
.cabecalho-secao-curso h2 { margin-bottom: 0; }
.cabecalho-secao-curso > p { max-width: 480px; margin: 0; color: var(--cinza-700); }
.lista-fases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.fase-curso { overflow: hidden; background: #fff; border: 1px solid var(--cinza-200); border-radius: var(--raio); box-shadow: 0 8px 24px rgba(13,47,78,.04); }
.fase-curso > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 22px; color: #fff; background: linear-gradient(135deg, var(--azul-700), var(--azul-900)); }
.fase-curso > header span, .fase-curso > header strong { display: block; }
.fase-curso > header span { color: #b9dcf3; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.fase-curso > header strong { margin-top: 4px; font-size: .95rem; }
.fase-curso > header > b { font-size: 1.2rem; }
.componente-matriz { border-bottom: 1px solid var(--cinza-200); }
.componente-matriz:last-child { border-bottom: 0; }
.componente-matriz summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 20px; cursor: pointer; list-style: none; }
.componente-matriz summary::-webkit-details-marker { display: none; }
.componente-matriz summary > span { display: flex; align-items: center; gap: 12px; }
.componente-matriz summary small { display: grid; width: 31px; height: 31px; flex: 0 0 31px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 8px; font-size: .65rem; }
.componente-matriz summary strong { color: var(--cinza-950); font-size: .87rem; }
.componente-matriz summary > b { color: var(--cinza-500); font-size: .75rem; }
.componente-matriz > p { margin: 0; padding: 0 20px 18px 63px; color: var(--cinza-700); font-size: .8rem; }
.secao-andamento { background: #fff; }
.legenda-status { display: flex; flex-wrap: wrap; gap: 8px; margin: -18px 0 26px; }
.status { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 99px; font-size: .64rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.status-andamento { color: #146b4c; background: var(--verde-100); }
.status-aguardando { color: #7a5018; background: var(--laranja-100); }
.status-sem-registro { color: #536676; background: var(--cinza-100); }
.aviso-acesso-restrito { display: flex; align-items: center; gap: 14px; margin: -8px 0 26px; padding: 17px 19px; color: #31546e; background: var(--azul-100); border: 1px solid #c7e0f1; border-radius: 14px; }
.aviso-acesso-restrito > span { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; color: #fff; background: var(--azul-700); border-radius: 10px; }
.aviso-acesso-restrito p { margin: 0 auto 0 0; font-size: .82rem; }
.lista-turmas-publicas { display: grid; gap: 28px; }
.turma-publica { overflow: hidden; border: 1px solid var(--cinza-200); border-radius: 22px; box-shadow: var(--sombra); }
.cabecalho-turma-publica { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 27px; background: #f8fbfd; border-bottom: 1px solid var(--cinza-200); }
.cabecalho-turma-publica .etiqueta { margin-bottom: 8px; }
.cabecalho-turma-publica h3 { margin-bottom: 6px; color: var(--azul-950); font-size: 1.55rem; }
.cabecalho-turma-publica p { margin: 0; color: var(--cinza-700); font-size: .84rem; }
.numero-aulas { min-width: 105px; text-align: right; }
.numero-aulas strong, .numero-aulas small { display: block; }
.numero-aulas strong { color: var(--azul-800); font-size: 2rem; }
.numero-aulas small { color: var(--cinza-500); font-size: .68rem; }
.nota-andamento { display: flex; align-items: flex-start; gap: 13px; margin: 18px 22px 0; padding: 15px 17px; background: var(--cinza-50); border: 1px solid var(--cinza-200); border-radius: 12px; }
.nota-andamento .status { flex: 0 0 auto; }
.nota-andamento p { margin: 1px 0 0; color: var(--cinza-700); font-size: .8rem; }
.componentes-andamento { display: grid; gap: 16px; padding: 22px; }
.componente-andamento { overflow: hidden; border: 1px solid var(--cinza-200); border-radius: 15px; }
.componente-andamento > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; background: #fbfcfd; border-bottom: 1px solid var(--cinza-200); }
.componente-andamento h4 { margin: 7px 0 0; color: var(--azul-950); font-size: 1.05rem; }
.componente-andamento > header > strong { color: var(--cinza-500); font-size: .75rem; }
.aula-publica { border-bottom: 1px solid var(--cinza-200); }
.aula-publica:last-child { border-bottom: 0; }
.aula-publica summary, .resumo-aula-publica { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px 17px; }
.aula-publica summary { cursor: pointer; list-style: none; }
.aula-publica summary::-webkit-details-marker { display: none; }
.numero-aula { display: grid; width: 32px; height: 32px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 9px; font-size: .68rem; font-weight: 850; }
.aula-publica summary strong, .aula-publica summary small, .resumo-aula-publica strong, .resumo-aula-publica small { display: block; }
.aula-publica summary strong, .resumo-aula-publica strong { color: var(--cinza-950); font-size: .82rem; }
.aula-publica summary small, .resumo-aula-publica small { margin-top: 3px; color: var(--cinza-500); font-size: .68rem; }
.aula-publica-restrita { background: #fcfdfe; }
.possui-slide { padding: 4px 8px; color: var(--azul-700); background: var(--azul-100); border-radius: 7px; font-size: .63rem; font-weight: 800; }
.conteudo-aula { padding: 0 17px 17px 65px; }
.conteudo-aula p { color: var(--cinza-700); font-size: .78rem; white-space: pre-line; }
.estado-vazio-publico { margin: 0; padding: 30px; color: var(--cinza-500); text-align: center; }
.requisitos-curso { color: #fff; background: linear-gradient(145deg, var(--azul-800), var(--azul-950)); }
.grade-requisitos { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; align-items: start; }
.grade-requisitos h2 { font-size: 2rem; }
.grade-requisitos p { margin: 0; color: #cce4f4; line-height: 1.9; }

nav[role="navigation"] { padding: 15px 18px; }
nav[role="navigation"] > div:first-child { display: none; }
nav[role="navigation"] > div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--cinza-500); font-size: .75rem; }
nav[role="navigation"] a, nav[role="navigation"] span[aria-current="page"] span { display: inline-grid; min-width: 32px; height: 32px; place-items: center; padding: 0 8px; border: 1px solid var(--cinza-200); background: #fff; }
nav[role="navigation"] span[aria-current="page"] span { color: #fff; background: var(--azul-700); border-color: var(--azul-700); }
nav[role="navigation"] svg { width: 16px; }

/* Ambiente de aprendizagem */
.area-player-curso { background: #eef3f7; }
.estrutura-player { min-height: 100vh; }
.barra-player { position: fixed; inset: 0 auto 0 0; z-index: 30; display: flex; width: 340px; height: 100vh; height: 100dvh; overflow: hidden; flex-direction: column; color: #d9e9f5; background: linear-gradient(180deg, #10283d, #071a2b); box-shadow: 8px 0 30px rgba(5,25,42,.14); }
.cabecalho-barra-player { padding: 23px 24px 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
.cabecalho-barra-player .marca { margin: 22px 0 24px; }
.voltar-player { color: #8fb1ca; font-size: .78rem; font-weight: 750; }
.voltar-player:hover { color: #fff; }
.etiqueta-player { display: block; margin-bottom: 6px; color: #77b8e7; font-size: .66rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cabecalho-barra-player h1 { margin-bottom: 18px; color: #fff; font-size: 1.05rem; line-height: 1.3; }
.resumo-progresso-player > div:first-child { display: flex; align-items: center; justify-content: space-between; color: #8fb1ca; font-size: .7rem; }
.resumo-progresso-player strong { color: #fff; font-size: .82rem; }
.trilha-progresso-player { height: 6px; margin-top: 8px; overflow: hidden; background: rgba(255,255,255,.11); border-radius: 99px; }
.trilha-progresso-player span { display: block; height: 100%; background: linear-gradient(90deg, #22a4e5, #49d9a6); border-radius: inherit; }
.navegacao-modulos { overflow-y: auto; overscroll-behavior: contain; padding: 14px 12px 30px; }
.link-visao-player { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 11px 12px; color: #b7cede; border-radius: 9px; font-size: .8rem; font-weight: 800; }
.link-visao-player:hover, .link-visao-player.ativo { color: #fff; background: rgba(255,255,255,.09); }
.grupo-modulo-player { border-top: 1px solid rgba(255,255,255,.07); }
.grupo-modulo-player > summary { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 15px 11px; color: #d5e4ee; cursor: pointer; list-style: none; }
.grupo-modulo-player > summary::-webkit-details-marker { display: none; }
.grupo-modulo-player > summary span, .grupo-modulo-player > summary small, .grupo-modulo-player > summary strong { display: block; }
.grupo-modulo-player > summary small { margin-bottom: 3px; color: #6289a5; font-size: .58rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.grupo-modulo-player > summary strong { font-size: .77rem; line-height: 1.25; }
.grupo-modulo-player > summary b { display: grid; min-width: 24px; height: 24px; place-items: center; color: #83b8dc; background: rgba(255,255,255,.06); border-radius: 7px; font-size: .63rem; }
.grupo-modulo-player > div { display: grid; gap: 3px; padding: 0 0 11px; }
.link-resumo-modulo, .link-aula-player { margin: 0 3px; color: #8facbf; border-radius: 8px; font-size: .71rem; }
.link-resumo-modulo { padding: 8px 12px 8px 43px; font-weight: 750; }
.link-aula-player { display: grid; grid-template-columns: 27px minmax(0,1fr); gap: 8px; align-items: center; padding: 9px; }
.link-aula-player > span { display: grid; width: 25px; height: 25px; place-items: center; color: #8db9d7; border: 1px solid rgba(255,255,255,.11); border-radius: 7px; font-size: .58rem; font-weight: 850; }
.link-aula-player strong, .link-aula-player small { display: block; }
.link-aula-player strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .7rem; }
.link-aula-player small { margin-top: 2px; color: #5f829b; font-size: .58rem; }
.link-resumo-modulo:hover, .link-resumo-modulo.ativo, .link-aula-player:hover, .link-aula-player.ativo { color: #fff; background: rgba(15,142,216,.18); }
.link-aula-player.ativo { box-shadow: inset 3px 0 #29a9ed; }
.link-aula-player.concluida > span { color: #54dfad; border-color: rgba(84,223,173,.35); }
.modulo-sem-aulas { padding: 5px 12px 10px 43px; color: #58798f; font-size: .65rem; }
.conteudo-player { min-height: 100vh; margin-left: 340px; }
.topo-player { position: sticky; z-index: 20; top: 0; display: flex; min-height: 74px; align-items: center; gap: 15px; padding: 0 30px; border-bottom: 1px solid var(--cinza-200); background: rgba(255,255,255,.94); backdrop-filter: blur(15px); }
.topo-player > div { flex: 1; }
.topo-player small, .topo-player strong { display: block; }
.topo-player small { color: var(--cinza-500); font-size: .65rem; text-transform: uppercase; }
.topo-player strong { color: var(--azul-950); font-size: .86rem; }
.principal-player { width: min(1120px, calc(100% - 54px)); margin: 0 auto; padding: 38px 0 70px; }
.hero-player-curso, .hero-modulo-player { position: relative; overflow: hidden; padding: 42px; color: #fff; background: radial-gradient(circle at 90% 10%, rgba(42,173,238,.3), transparent 32%), linear-gradient(135deg, var(--azul-800), var(--azul-950)); border-radius: 24px; box-shadow: var(--sombra); }
.hero-player-curso .etiqueta, .hero-modulo-player .etiqueta { color: #9ed7f7; }
.hero-player-curso h2, .hero-modulo-player h2 { max-width: 780px; margin-bottom: 14px; font-size: clamp(2rem,4vw,3.3rem); }
.hero-player-curso p, .hero-modulo-player p { max-width: 850px; margin-bottom: 0; color: #cee5f4; }
.metadados-player { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.metadados-player span { padding: 9px 13px; color: #c9e0ef; background: rgba(255,255,255,.09); border-radius: 9px; font-size: .72rem; }
.metadados-player strong { color: #fff; }
.secao-modulos-player, .lista-aulas-modulo-player { margin-top: 36px; }
.cabecalho-conteudo-player { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 20px; }
.cabecalho-conteudo-player h2 { margin: 0; color: var(--azul-950); font-size: 1.65rem; }
.cabecalho-conteudo-player p { max-width: 470px; margin: 0; color: var(--cinza-500); font-size: .8rem; }
.grade-modulos-player { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.cartao-modulo-player { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 16px; padding: 22px; border: 1px solid var(--cinza-200); background: #fff; border-radius: 16px; box-shadow: 0 8px 25px rgba(13,47,78,.05); }
.numero-modulo-player { display: grid; width: 48px; height: 48px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 13px; font-weight: 900; }
.cartao-modulo-player small { color: var(--cinza-500); font-size: .66rem; }
.cartao-modulo-player h3 { margin: 4px 0 8px; font-size: 1rem; }
.cartao-modulo-player p { margin: 0; color: var(--cinza-700); font-size: .76rem; }
.cartao-modulo-player footer { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--cinza-100); color: var(--cinza-500); font-size: .72rem; }
.cartao-modulo-player footer a { color: var(--azul-700); font-weight: 850; }
.cartao-aula-modulo { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 14px; align-items: center; margin-bottom: 9px; padding: 17px 19px; border: 1px solid var(--cinza-200); background: #fff; border-radius: 14px; }
.cartao-aula-modulo:hover { border-color: #93c5e7; box-shadow: 0 8px 25px rgba(13,47,78,.06); }
.estado-aula-modulo { display: grid; width: 40px; height: 40px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 11px; font-weight: 900; }
.cartao-aula-modulo div small, .cartao-aula-modulo div strong { display: block; }
.cartao-aula-modulo div small { color: var(--verde-600); font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.cartao-aula-modulo div strong { margin: 3px 0; font-size: .87rem; }
.cartao-aula-modulo p { margin: 0; color: var(--cinza-500); font-size: .72rem; }
.cartao-aula-modulo > b { color: var(--cinza-500); font-size: .7rem; }
.cartao-aula-modulo > b a { color: inherit; text-decoration: none; }
.pagina-aula-player { width: min(960px,100%); margin: 0 auto; }
.cabecalho-aula-player { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; margin-bottom: 25px; }
.cabecalho-aula-player h1 { margin-bottom: 10px; color: var(--azul-950); font-size: clamp(2rem,4vw,3.1rem); }
.cabecalho-aula-player p { max-width: 750px; color: var(--cinza-700); }
.duracao-aula-player { flex: 0 0 auto; padding: 8px 11px; color: var(--cinza-700); background: #fff; border: 1px solid var(--cinza-200); border-radius: 9px; font-size: .72rem; font-weight: 800; }
.midia-aula-player { margin: 24px 0; overflow: hidden; background: #fff; border: 1px solid var(--cinza-200); border-radius: 17px; box-shadow: 0 12px 35px rgba(13,47,78,.07); }
.midia-aula-player > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; }
.midia-aula-player > header h2 { margin: 0; font-size: 1.1rem; }
.midia-aula-player > header .etiqueta { margin-bottom: 4px; }
.midia-aula-player > header a { color: var(--azul-700); font-size: .72rem; font-weight: 800; }
.quadro-video-player, .quadro-slides-player { position: relative; padding-top: 56.25%; background: #071420; }
.quadro-video-player iframe, .quadro-slides-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.quadro-pdf-player iframe { width: 100%; height: min(78vh,780px); border: 0; border-top: 1px solid var(--cinza-200); }
.material-externo-player { display: grid; grid-template-columns: 45px minmax(0,1fr) auto; gap: 13px; align-items: center; margin: 18px 0; padding: 16px; color: var(--cinza-700); border: 1px solid var(--cinza-200); background: #fff; border-radius: 13px; }
.material-externo-player > span { display: grid; width: 43px; height: 43px; place-items: center; color: var(--azul-700); background: var(--azul-100); border-radius: 11px; }
.material-externo-player strong, .material-externo-player small { display: block; }
.material-externo-player strong { color: var(--azul-950); font-size: .84rem; }
.material-externo-player small { font-size: .69rem; }
.conteudo-didatico-player { display: grid; gap: 19px; margin: 28px 0; }
.conteudo-didatico-player > p, .conteudo-didatico-player > ul, .conteudo-didatico-player > ol { margin: 0; padding: 26px; color: #344b5e; background: #fff; border: 1px solid var(--cinza-200); border-radius: 15px; font-size: .94rem; line-height: 1.8; white-space: pre-line; }
.conteudo-didatico-player > ul, .conteudo-didatico-player > ol { padding-left: 48px; }
.conteudo-didatico-player > h2, .conteudo-didatico-player > h3, .conteudo-didatico-player > h4 { margin: 0; padding: 20px 26px; color: var(--azul-950); background: #fff; border: 1px solid var(--cinza-200); border-radius: 15px; }
.conteudo-didatico-player > h4 { font-size: 1.15rem; }
.conteudo-didatico-player > .separador-aula-player { width: calc(100% - 52px); margin: 0 auto; border: 0; border-top: 1px solid var(--cinza-200); }
.conteudo-didatico-player > p:has(+ .bloco-codigo-player), .conteudo-didatico-player > ul:has(+ .bloco-codigo-player), .conteudo-didatico-player > ol:has(+ .bloco-codigo-player) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.conteudo-didatico-player > p:has(+ .bloco-codigo-player) + .bloco-codigo-player, .conteudo-didatico-player > ul:has(+ .bloco-codigo-player) + .bloco-codigo-player, .conteudo-didatico-player > ol:has(+ .bloco-codigo-player) + .bloco-codigo-player { margin-top: -19px; border-top-left-radius: 0; border-top-right-radius: 0; }
.conteudo-didatico-player > .bloco-codigo-player:has(+ p), .conteudo-didatico-player > .bloco-codigo-player:has(+ ul), .conteudo-didatico-player > .bloco-codigo-player:has(+ ol) { margin-bottom: -19px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.conteudo-didatico-player > .bloco-codigo-player:has(+ p) + p, .conteudo-didatico-player > .bloco-codigo-player:has(+ ul) + ul, .conteudo-didatico-player > .bloco-codigo-player:has(+ ol) + ol { border-top-left-radius: 0; border-top-right-radius: 0; }
.conteudo-didatico-player > p:has(+ p), .conteudo-didatico-player > p:has(+ ul), .conteudo-didatico-player > p:has(+ ol), .conteudo-didatico-player > ul:has(+ p), .conteudo-didatico-player > ol:has(+ p) { margin-bottom: -19px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.conteudo-didatico-player > p:has(+ p) + p, .conteudo-didatico-player > p:has(+ ul) + ul, .conteudo-didatico-player > p:has(+ ol) + ol, .conteudo-didatico-player > ul:has(+ p) + p, .conteudo-didatico-player > ol:has(+ p) + p { border-top-left-radius: 0; border-top-right-radius: 0; }
.bloco-texto-player, .bloco-codigo-player, .bloco-aviso-player { background: #fff; border: 1px solid var(--cinza-200); border-radius: 15px; }
.bloco-texto-player { padding: 26px; }
.bloco-texto-player h2, .conteudo-didatico-player > h2 { margin-bottom: 13px; color: var(--azul-950); font-size: 1.45rem; }
.bloco-texto-player p { margin: 0; color: #344b5e; font-size: .94rem; line-height: 1.8; }
.conteudo-didatico-player code.codigo-inline { padding: 2px 6px; color: #e5f2fa; background: #0b1d2d; border: 1px solid #17354e; border-radius: 5px; font: .9em Consolas, "Courier New", monospace; white-space: nowrap; }
.bloco-codigo-player { overflow: hidden; background: #0b1d2d; border-color: #17354e; }
.bloco-codigo-player header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 16px; color: #b9d1e2; border-bottom: 1px solid rgba(255,255,255,.08); background: #10283c; font-size: .7rem; font-weight: 800; }
.bloco-codigo-player header small { color: #63c4ef; text-transform: uppercase; }
.botao-copiar-codigo { margin-left: auto; padding: 5px 9px; color: #cceafa; border: 1px solid rgba(255,255,255,.2); background: transparent; border-radius: 6px; cursor: pointer; font: inherit; font-size: .65rem; }
.botao-copiar-codigo:hover { color: #fff; background: rgba(255,255,255,.1); }
.bloco-codigo-player pre { max-width: 100%; margin: 0; overflow: auto; padding: 22px; color: #e5f2fa; font: .82rem/1.7 Consolas, "Courier New", monospace; tab-size: 4; }
.bloco-codigo-player code { font: inherit; white-space: pre; }
.painel-comentario-aula form { display: grid; gap: 14px; margin-top: 18px; }
.editor-comentario-aula { overflow: hidden; border: 1px solid #17354e; border-radius: 14px; background: #0b1d2d; }
.editor-comentario-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; color: #b9d1e2; background: #10283c; border-bottom: 1px solid rgba(255,255,255,.08); font-size: .78rem; }
.editor-comentario-cabecalho label, .campo-linguagem-comentario { display: flex; align-items: center; gap: 9px; color: #b9d1e2; font-size: .72rem; font-weight: 700; }
.editor-comentario-aula select { padding: 7px 30px 7px 10px; color: #e5f2fa; background: #0b1d2d; border: 1px solid #31516b; border-radius: 7px; }
.campo-linguagem-comentario { padding: 10px 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.campo-linguagem-comentario[hidden] { display: none; }
.editor-comentario-aula textarea { display: block; width: 100%; min-height: 190px; resize: vertical; padding: 19px; color: #e5f2fa; background: #0b1d2d; border: 0; outline: 0; font: .88rem/1.7 Consolas, "Courier New", monospace; tab-size: 4; }
.editor-comentario-aula textarea:focus { box-shadow: inset 0 0 0 2px #2386b5; }
.editor-comentario-aula textarea::placeholder { color: #7f9bb0; }
.editor-comentario-aula > small { display: block; padding: 0 18px 13px; color: #91adbf; font-size: .68rem; }
.campo-linguagem-comentario:not([hidden]) + textarea { min-height: 250px; }
.comentario-codigo { margin: 0; overflow: auto; padding: 14px; color: #e5f2fa; background: #0b1d2d; border: 1px solid #17354e; border-radius: 9px; font: .78rem/1.65 Consolas, "Courier New", monospace; white-space: pre; }
@media (max-width: 600px) { .editor-comentario-cabecalho { align-items: flex-start; flex-direction: column; } }
.tabela-aula-player { margin: 18px 0; overflow-x: auto; }
.tabela-aula-player table { width: 100%; min-width: 620px; border-collapse: collapse; background: #fff; }
.tabela-aula-player th,.tabela-aula-player td { padding: 9px 11px; border: 1px solid var(--cinza-200); text-align: left; vertical-align: top; }
.tabela-aula-player th { color: var(--azul-950); background: var(--azul-50); font-weight: 850; }
.bloco-aviso-player { display: flex; gap: 14px; padding: 19px; color: #27475e; background: #eef8ff; border-color: #c5e4f8; }
.bloco-aviso-player > span { color: var(--azul-600); }
.bloco-aviso-player strong { display: block; margin-bottom: 5px; }
.bloco-aviso-player p { margin: 0; font-size: .84rem; }
.rodape-aula-player { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 35px; padding-top: 24px; border-top: 1px solid var(--cinza-200); }
.navegacao-aulas-player { display: flex; gap: 10px; }
.aula-concluida-player { padding: 10px 13px; color: #14704f; background: var(--verde-100); border-radius: 10px; font-size: .78rem; font-weight: 850; }

/* Editor de blocos da aula */
.editor-blocos-aula { display: grid; gap: 12px; }
.bloco-editor-aula { padding: 16px; border: 1px solid var(--cinza-200); background: var(--cinza-50); border-radius: 12px; }
.cabecalho-bloco-editor { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.cabecalho-bloco-editor strong { font-size: .8rem; }
.acoes-cabecalho-bloco { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.acoes-cabecalho-bloco button { border: 0; background: transparent; color: var(--cinza-700); cursor: pointer; font-size: .72rem; font-weight: 800; }
.acoes-cabecalho-bloco button:disabled { cursor: default; opacity: .35; }
.remover-bloco-aula { color: var(--vermelho-600); border: 0; background: transparent; cursor: pointer; font-size: .72rem; font-weight: 800; }
.acoes-blocos-aula { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.descricao-fieldset { margin: -2px 0 15px; color: var(--cinza-500); font-size: .78rem; }

.lista-turmas-preview { display: grid; gap: 8px; margin-top: 8px; }
.lista-turmas-preview a { align-items: center; background: #f7fafc; border: 1px solid var(--cinza-200); border-radius: 10px; color: var(--azul-950); display: flex; gap: 16px; justify-content: space-between; padding: 10px 12px; text-decoration: none; }
.lista-turmas-preview a:hover { border-color: var(--azul-600); color: var(--azul-700); }
.lista-turmas-preview b { color: var(--azul-700); font-size: .72rem; white-space: nowrap; }

@media (max-width: 1100px) {
    .barra-player { left: -360px; transition: left var(--transicao); }
    .barra-player.aberta { left: 0; box-shadow: 20px 0 50px rgba(0,0,0,.3); }
    .conteudo-player { margin-left: 0; }
    .topo-player .botao-menu { display: grid; place-items: center; }
}

@media (max-width: 980px) {
    .grade-hero { grid-template-columns: 1fr; gap: 25px; }
    .painel-hero { min-height: 390px; }
    .grade-paineis { grid-template-columns: 1fr; }
    .estrutura-app { grid-template-columns: 1fr; }
    .conteudo-app { grid-column: 1; }
    .barra-lateral { position: fixed; left: -275px; width: 255px; transition: left var(--transicao); }
    .barra-lateral.aberta { left: 0; box-shadow: 20px 0 50px rgba(0,0,0,.25); }
    .botao-menu { display: grid; place-items: center; }
    .botao-recolher-menu { display: none; }
    .grade-indicadores { grid-template-columns: repeat(3, 1fr); }
    .autenticacao-grade { grid-template-columns: 1fr; }
    .autenticacao-marca { display: none; }
    .lista-fases { grid-template-columns: 1fr; }
    .grade-resumo-curso { grid-template-columns: 1fr; }
    .grade-indicadores-quatro { grid-template-columns: repeat(2, 1fr); }
    .filtros-frequencia { grid-template-columns: 1fr 1fr; }
    .filtros-frequencia .botao { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
    .limite { width: min(100% - 28px, 1180px); }
    .link-topo { display: none; }
    .hero { padding: 125px 0 65px; }
    .hero-texto h1 { font-size: 2.45rem; }
    .acoes-hero { flex-direction: column; align-items: stretch; }
    .painel-hero { min-height: 330px; }
    .orbita-a { width: 340px; height: 340px; }
    .orbita-b { width: 260px; height: 260px; }
    .cartao-destaque { width: 290px; padding: 26px; }
    .grade-recursos { grid-template-columns: 1fr; }
    .rodape-publico .limite { flex-direction: column; align-items: flex-start; }
    .autenticacao-formulario { padding: 28px 20px; }
    .cartao-primeiro-acesso { padding: 25px; }
    .topo-interno { padding: 0 17px; }
    .topo-contexto small { display: none; }
    .conteudo-principal { padding: 24px 16px; }
    .cabecalho-pagina { align-items: stretch; flex-direction: column; }
    .cabecalho-pagina > .botao { align-self: flex-start; }
    .grade-indicadores { grid-template-columns: 1fr; }
    .grade-formulario { grid-template-columns: 1fr; }
    .filtros-relatorio-aulas { grid-template-columns: 1fr; }
    .filtros-relatorio-aulas .acoes-formulario { grid-column: auto; }
    .grade-opcoes { grid-template-columns: 1fr; }
    .campo-duplo { grid-column: auto; }
    .alerta-credencial { align-items: stretch; flex-direction: column; }
    .alerta-credencial dl { flex-direction: column; }
    .barra-busca { flex-direction: column; }
    .barra-busca input { max-width: none; }
    .acoes-formulario { flex-direction: column-reverse; }
    .acoes-formulario .botao { width: 100%; }
    th, td { padding: 13px 14px; }
    .hero-curso { padding: 58px 0; }
    .hero-curso h1 { font-size: 2.35rem; }
    .cabecalho-secao-curso, .cabecalho-turma-publica, .nota-andamento { align-items: flex-start; flex-direction: column; }
    .numero-aulas { text-align: left; }
    .grade-requisitos { grid-template-columns: 1fr; gap: 20px; }
    .aula-publica summary { grid-template-columns: 36px minmax(0, 1fr); }
    .resumo-aula-publica { grid-template-columns: 36px minmax(0, 1fr); }
    .possui-slide { display: none; }
    .conteudo-aula { padding-left: 17px; }
    .aviso-acesso-restrito { align-items: flex-start; flex-direction: column; }
    .acoes-cabecalho, .cabecalho-chamada { align-items: stretch; flex-direction: column; }
    .acoes-cabecalho .formulario-inline .botao { width: 100%; }
    .painel-acesso-conta { align-items: stretch; flex-direction: column; }
    .painel-acesso-conta .formulario-inline .botao { width: 100%; }
    .grade-detalhes-aluno, .grade-indicadores-quatro, .filtros-frequencia { grid-template-columns: 1fr; }
    .filtros-administrativos, .grade-publicacoes, .grade-resumo-administrativo, .grade-questionarios { grid-template-columns: 1fr; }
    .linha-alternativa { grid-template-columns: 1fr; }
    .finalizar-questionario { align-items: stretch; flex-direction: column; }
    .filtros-frequencia .botao { grid-column: auto; }
    .lista-detalhes div { grid-template-columns: 1fr; gap: 4px; }
    .cabecalho-painel-tabela { align-items: flex-start; flex-direction: column; }
    .painel-resumo-movimentacao { align-items: flex-start; flex-direction: column; }
    .filtro-enturmacao-acompanhamento { grid-template-columns: 1fr; }
    .contexto-acompanhamento { align-items: stretch; flex-direction: column; }
    .contexto-acompanhamento dl { display: grid; grid-template-columns: 1fr; }
    .grade-alertas-pedagogicos { grid-template-columns: 1fr; }
    .cabecalho-secao-acompanhamento { align-items: flex-start; flex-direction: column; }
    .principal-player { width: min(100% - 28px,1120px); padding-top: 22px; }
    .hero-player-curso, .hero-modulo-player { padding: 28px; }
    .grade-modulos-player { grid-template-columns: 1fr; }
    .cabecalho-conteudo-player, .cabecalho-aula-player, .rodape-aula-player { align-items: stretch; flex-direction: column; }
    .cartao-aula-modulo { grid-template-columns: 38px minmax(0,1fr); }
    .cartao-aula-modulo > b { grid-column: 2; }
    .navegacao-aulas-player { flex-direction: column; }
    .navegacao-aulas-player .botao { width: 100%; }
    .midia-aula-player > header { align-items: flex-start; flex-direction: column; }
}

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

/* Mapa de frequência por competência (21 a 20) */
.campo-modulos-frequencia { margin-top: 17px; }
.campo-modulos-frequencia > small { margin-bottom: 10px; }
.grade-modulos-frequencia { grid-template-columns: repeat(3,minmax(0,1fr)); }
.grade-modulos-frequencia .opcao-marcavel span { min-width: 0; }
.grade-modulos-frequencia .opcao-marcavel strong,
.grade-modulos-frequencia .opcao-marcavel small { display: block; }
.grade-modulos-frequencia .opcao-marcavel strong { font-size: .76rem; line-height: 1.3; }
.grade-modulos-frequencia .opcao-marcavel small { margin-top: 3px; font-size: .62rem; }
.filtros-relatorio-frequencia { display: grid; grid-template-columns: minmax(250px,1fr) 215px minmax(260px,.8fr) 46px; gap: 20px; align-items: end; margin-bottom: 14px; }
.filtros-relatorio-frequencia input[type="month"] { min-width: 215px; }
.botao-icone-filtro { width: 46px; height: 46px; min-height: 46px; padding: 0; border-radius: 10px; }
.botao-icone-filtro svg { width: 20px; height: 20px; }
.navegacao-competencias { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 14px; padding: 11px 15px; color: var(--cinza-700); background: #fff; border: 1px solid var(--cinza-200); border-radius: 11px; font-size: .75rem; }
.navegacao-competencias a { color: var(--azul-700); font-weight: 850; }
.folha-frequencia { padding: 24px; overflow: hidden; background: #fff; border: 1px solid var(--cinza-200); border-radius: 14px; box-shadow: var(--sombra); }
.cabecalho-relatorio-frequencia { text-align: center; }
.cabecalho-relatorio-frequencia h2 { margin: 5px 0 13px; color: var(--azul-950); font-size: 1.18rem; text-transform: uppercase; }
.cabecalho-relatorio-frequencia dl { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 25px; margin: 0 0 19px; }
.cabecalho-relatorio-frequencia dl div { display: flex; gap: 5px; font-size: .72rem; }
.cabecalho-relatorio-frequencia dt { color: var(--cinza-500); font-weight: 750; }
.cabecalho-relatorio-frequencia dd { margin: 0; color: var(--azul-950); font-weight: 850; }
.estado-vazio-relatorio { margin: 0 0 15px; padding: 13px; background: var(--cinza-50); border-radius: 9px; }
.tabela-mapa-frequencia { border: 1px solid #8b98a3; }
.tabela-mapa-frequencia table { min-width: max-content; border-collapse: collapse; }
.tabela-mapa-frequencia th,
.tabela-mapa-frequencia td { height: 31px; padding: 4px 6px; border: 1px solid #8b98a3; color: #172b3b; font-size: .67rem; text-align: center; }
.tabela-mapa-frequencia th { background: #f2f5f7; font-size: .63rem; font-weight: 900; letter-spacing: .02em; text-transform: uppercase; }
.tabela-mapa-frequencia .coluna-numero { position: sticky; left: 0; z-index: 2; width: 40px; min-width: 40px; background: #fff; }
.tabela-mapa-frequencia thead .coluna-numero { z-index: 4; background: #f2f5f7; }
.tabela-mapa-frequencia .coluna-aluno { position: sticky; left: 40px; z-index: 2; width: 330px; min-width: 330px; background: #fff; text-align: left; }
.tabela-mapa-frequencia thead .coluna-aluno { z-index: 4; background: #f2f5f7; text-align: center; }
.tabela-mapa-frequencia .coluna-data { min-width: 47px; }
.tabela-mapa-frequencia .coluna-data small { display: block; font-size: .53rem; line-height: 1; }
.tabela-mapa-frequencia .coluna-total { min-width: 63px; font-weight: 900; }
.tabela-mapa-frequencia .celula-presenca { font-family: Georgia, serif; font-size: .76rem; font-weight: 900; }
.tabela-mapa-frequencia .presente,
.legenda-frequencia .presente { color: #246db4; }
.tabela-mapa-frequencia .falta,
.legenda-frequencia .falta { color: #d52d39; }
.tabela-mapa-frequencia .justificada,
.legenda-frequencia .justificada { color: #b46b0a; }
.tabela-mapa-frequencia .nao-aplicavel { color: #9ca7ae; background: #f3f5f6; }
.legenda-frequencia { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 18px; margin-top: 14px; color: var(--cinza-700); font-size: .68rem; }
.legenda-frequencia span { display: flex; align-items: center; gap: 5px; }
.legenda-frequencia b { font-size: .76rem; }
.legenda-frequencia small { margin-left: auto; color: var(--cinza-500); }
.link-frequencia-modulo { display: block; margin-top: 7px; color: var(--azul-700); font-size: .66rem; font-weight: 800; }
.filtros-relatorio-desempenho { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.2fr) 46px; gap: 20px; align-items: end; margin-bottom: 18px; }
.filtros-relatorio-desempenho .campo { display: grid; gap: 6px; }
.filtros-relatorio-desempenho label { color: var(--cinza-700); font-size: .72rem; font-weight: 800; }
.filtros-relatorio-desempenho select { width: 100%; min-height: 46px; padding: 9px 12px; color: var(--cinza-950); border: 1px solid var(--cinza-300); border-radius: 10px; background: #fff; transition: border var(--transicao), box-shadow var(--transicao); }
.filtros-relatorio-desempenho select:focus { border-color: var(--azul-600); box-shadow: 0 0 0 4px rgba(8,118,206,.1); outline: none; }
.grade-indicadores-desempenho { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.folha-desempenho { padding: 24px; overflow: hidden; background: #fff; border: 1px solid var(--cinza-200); border-radius: 14px; box-shadow: var(--sombra); }
.cabecalho-relatorio-desempenho { margin-bottom: 19px; text-align: center; }
.cabecalho-relatorio-desempenho h2 { margin: 5px 0 7px; color: var(--azul-950); font-size: 1.18rem; text-transform: uppercase; }
.cabecalho-relatorio-desempenho p { margin: 0; color: var(--cinza-600); font-size: .78rem; }
.tabela-desempenho { border: 1px solid var(--cinza-200); border-radius: 10px; }
.tabela-desempenho .coluna-numero { width: 55px; text-align: center; }
.tabela-desempenho .coluna-media,
.tabela-desempenho .coluna-quantidade { text-align: right; white-space: nowrap; }
.tabela-desempenho .nota-desempenho { color: var(--azul-800); font-size: 1rem; }
.tabela-desempenho .nota-sem-registro { color: var(--cinza-500); font-size: 1rem; }
.legenda-desempenho { margin-top: 14px; color: var(--cinza-500); font-size: .72rem; }

@media (max-width: 1100px) {
    .grade-modulos-frequencia { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .filtros-relatorio-frequencia { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .filtros-relatorio-desempenho { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
    .grade-modulos-frequencia,
    .filtros-relatorio-frequencia,
    .filtros-relatorio-desempenho { grid-template-columns: 1fr; }
    .filtros-relatorio-frequencia input[type="month"] { min-width: 0; }
    .navegacao-competencias { align-items: stretch; flex-direction: column; text-align: center; }
    .folha-frequencia,
    .folha-desempenho { padding: 14px; }
    .tabela-mapa-frequencia .coluna-aluno { width: 230px; min-width: 230px; }
}

@media print {
    @page { size: landscape; margin: 8mm; }
    body { background: #fff !important; }
    .barra-lateral,
    .topo-interno,
    .nao-imprimir { display: none !important; }
    .estrutura-app { display: block !important; }
    .conteudo-app { display: block !important; }
    .conteudo-principal { padding: 0 !important; }
    .folha-frequencia,
    .folha-desempenho { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
    .tabela-mapa-frequencia { overflow: visible; }
    .tabela-mapa-frequencia table { width: 100%; min-width: 0; }
    .tabela-mapa-frequencia .coluna-numero,
    .tabela-mapa-frequencia .coluna-aluno { position: static; }
    .tabela-mapa-frequencia .coluna-aluno { width: auto; min-width: 220px; }
    .tabela-mapa-frequencia th,
    .tabela-mapa-frequencia td { height: 20px; padding: 2px 3px; font-size: 7pt; }
    .legenda-frequencia { break-inside: avoid; }
}

/* Administração visual de módulos e aulas */
.barra-player-administrativa .cabecalho-barra-player h1 { margin-bottom: 14px; }
.acoes-barra-admin-player { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 16px; }
.acoes-barra-admin-player a { display: grid; min-height: 36px; place-items: center; padding: 7px 9px; color: #d9edfb; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.06); border-radius: 9px; font-size: .68rem; font-weight: 850; text-align: center; }
.acoes-barra-admin-player a:first-child { color: #fff; background: var(--azul-600); border-color: var(--azul-600); }
.acoes-barra-admin-player a:hover { background: rgba(255,255,255,.13); }
.acoes-barra-admin-player a:first-child:hover { background: var(--azul-700); }
.acoes-barra-admin-player .acao-questionario-admin-player { grid-column: 1 / -1; }
.navegacao-aulas-admin { padding-top: 12px; }
.rotulo-aulas-admin-player { margin: 13px 11px 8px; color: #6689a1; font-size: .58rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.navegacao-aulas-admin .link-aula-player { grid-template-columns: 33px minmax(0,1fr); margin-bottom: 3px; }
.navegacao-aulas-admin .link-aula-player > span { width: 31px; height: 31px; overflow: hidden; font-size: .54rem; }
.navegacao-aulas-admin .link-aula-player strong { white-space: normal; line-height: 1.25; }
.acoes-topo-admin-player { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.botao-informacao-aula { width: 38px; padding: 0; border-radius: 50%; }
.botao-informacao-aula span { display: grid; width: 20px; height: 20px; place-items: center; color: var(--azul-700); border: 2px solid currentColor; border-radius: 50%; font-family: Georgia, serif; font-size: .75rem; font-weight: 900; }
.metadados-cabecalho-aula-admin { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }

.modal-aula-admin { width: min(920px,calc(100% - 32px)); max-height: min(88vh,850px); padding: 0; overflow: hidden; color: var(--cinza-950); border: 0; border-radius: 18px; background: #fff; box-shadow: 0 35px 90px rgba(3,22,38,.32); }
.modal-aula-admin::backdrop { background: rgba(4,21,35,.68); backdrop-filter: blur(4px); }
.conteudo-modal-aula-admin { max-height: min(88vh,850px); overflow-y: auto; padding: 26px; }
.conteudo-modal-aula-admin > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid var(--cinza-200); }
.conteudo-modal-aula-admin > header .etiqueta { margin-bottom: 5px; }
.conteudo-modal-aula-admin > header h2 { margin: 0; color: var(--azul-950); }
.conteudo-modal-aula-admin > header button { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; color: var(--cinza-700); border: 1px solid var(--cinza-200); background: var(--cinza-50); border-radius: 10px; cursor: pointer; font-size: 1.35rem; line-height: 1; }
.grade-indicadores-modal-aula { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 20px 0; }
.grade-indicadores-modal-aula article { padding: 15px; background: var(--cinza-50); border: 1px solid var(--cinza-200); border-radius: 12px; }
.grade-indicadores-modal-aula span,
.grade-indicadores-modal-aula strong { display: block; }
.grade-indicadores-modal-aula span { color: var(--cinza-500); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.grade-indicadores-modal-aula strong { margin-top: 5px; color: var(--azul-800); font-size: 1.6rem; }
.nota-visualizacao-aula { margin: -7px 0 18px; color: var(--cinza-500); font-size: .68rem; }
.lista-informacoes-aula-admin { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; border: 1px solid var(--cinza-200); border-radius: 12px; }
.lista-informacoes-aula-admin div { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 10px; padding: 11px 13px; border-bottom: 1px solid var(--cinza-200); }
.lista-informacoes-aula-admin div:nth-child(odd) { border-right: 1px solid var(--cinza-200); }
.lista-informacoes-aula-admin div:nth-last-child(-n+2) { border-bottom: 0; }
.lista-informacoes-aula-admin dt { color: var(--cinza-500); font-size: .68rem; font-weight: 750; }
.lista-informacoes-aula-admin dd { margin: 0; font-size: .72rem; font-weight: 800; }
.turmas-modal-aula-admin { margin-top: 23px; }
.turmas-modal-aula-admin .etiqueta { margin-bottom: 3px; }
.turmas-modal-aula-admin h3 { margin: 0 0 12px; }
.turmas-modal-aula-admin .tabela-responsiva { border: 1px solid var(--cinza-200); border-radius: 11px; }
.turmas-modal-aula-admin th,
.turmas-modal-aula-admin td { padding: 10px 12px; font-size: .7rem; }

@media (max-width: 720px) {
    .acoes-topo-admin-player .botao-primario { display: none; }
    .topo-player { padding: 0 15px; }
    .grade-indicadores-modal-aula { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lista-informacoes-aula-admin { grid-template-columns: 1fr; }
    .lista-informacoes-aula-admin div,
    .lista-informacoes-aula-admin div:nth-child(odd),
    .lista-informacoes-aula-admin div:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--cinza-200); }
    .lista-informacoes-aula-admin div:last-child { border-bottom: 0; }
    .conteudo-modal-aula-admin { padding: 19px; }
    .metadados-cabecalho-aula-admin { align-items: flex-end; flex-direction: column; }
}
