/* NDX Academy - mesmo visual do site NDX */
:root{--bg:#000;--panel:#1e2837;--line:#1f3a26;--green:#00ff00;--green2:#22c55e;--text:#f4f6f8;--mute:#a9b4c2;--red:#f87171;box-sizing:border-box;color-scheme:dark}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 Inter,system-ui,sans-serif;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3{font-family:Poppins,Inter,sans-serif;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700}
h2{font-size:1.2rem;font-weight:600}
h3{font-size:.95rem;font-weight:600;color:var(--green)}
p{margin:0 0 1em}
a{color:var(--green)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,40px)}
main.wrap{padding-top:28px;padding-bottom:56px;flex:1}
main.estreito{max-width:560px}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.top{background:rgba(0,0,0,.92);border-bottom:1px solid #111;position:sticky;top:0;z-index:5}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--green);font:600 1.05rem Poppins,sans-serif}
.marca img{height:40px;width:auto;display:block}
.top nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.92rem}
.top nav a{color:var(--mute);text-decoration:none}
.top nav a:hover{color:var(--green)}
.pe{border-top:1px solid #111;padding:20px 0;color:var(--mute);font-size:.85rem}

.sub{color:var(--mute);max-width:70ch}
.pequeno{font-size:.88rem;color:var(--mute)}
.trilha{font-size:.88rem;color:var(--mute);margin-bottom:14px;overflow-wrap:anywhere}
.trilha a{color:var(--mute)}
.cartao{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px}
.cartao.vazio{color:var(--mute);text-align:center}
.aviso{border-radius:10px;padding:12px 16px;margin-bottom:18px;background:#0f2a12;border:1px solid var(--green2);overflow-wrap:anywhere}
.aviso.erro{background:#2a1010;border-color:var(--red);color:#fecaca}
.selo{display:inline-block;font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:999px;background:#0f2a12;color:var(--green);border:1px solid var(--green2)}
.selo.cinza{background:#16202b;color:var(--mute);border-color:#334155}

.btn{display:inline-block;background:var(--green);color:#000;font:600 .95rem Inter,sans-serif;text-decoration:none;padding:11px 22px;border-radius:999px;border:1px solid var(--green);cursor:pointer;white-space:nowrap}
.btn.o{background:transparent;color:var(--text)}
.btn.p{padding:6px 14px;font-size:.85rem}
.btn.perigo{background:transparent;color:var(--red);border-color:var(--red)}

label{display:block;font-size:.88rem;color:var(--mute);margin:14px 0 6px}
input,select,textarea{width:100%;background:#0b1118;border:1px solid #26384a;color:var(--text);border-radius:10px;padding:11px 12px;font:400 1rem Inter,sans-serif}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--green2)}
input[type=file]{padding:8px}
.form .btn{margin-top:20px}
.linha-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 16px}
.marcar{display:flex;align-items:center;gap:8px;color:var(--text);margin:8px 0}

.prog{height:8px;border-radius:4px;background:#0d1520;overflow:hidden}
.prog i{display:block;height:100%;background:var(--green2)}
.meta{display:flex;justify-content:space-between;font-size:.85rem;color:var(--mute);margin-bottom:6px;gap:12px}

.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.curso{display:block;text-decoration:none;color:var(--text);margin:0}
.curso:hover{border-color:var(--green2)}
.curso h2{color:var(--green)}
.curso p{color:var(--mute);font-size:.92rem;min-height:2.8em}
.resumo,.bloco{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.resumo>div,.bloco>div{flex:1;min-width:220px}
.bloco p{margin:0;color:var(--mute)}

.modulo{margin:28px 0 10px;color:var(--green)}
.aulas{list-style:none;margin:0 0 18px;padding:0}
.aulas li a{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #16202b;border-radius:10px;margin-bottom:6px;text-decoration:none;color:var(--text);background:#0a0f15}
.aulas li a:hover{border-color:var(--green2)}
.aulas .t{flex:1;min-width:0;overflow-wrap:anywhere}
.aulas .d{color:var(--mute);font-size:.82rem}
.marca-aula{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid #475569}
.feita .marca-aula{border-color:var(--green2);background:var(--green2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23000' stroke-width='2.6'/%3E%3C/svg%3E") center/100%}
.aulas .atual a{border-color:var(--green);background:#0f2a12}
.aulas.compacta li a{padding:9px 10px;font-size:.9rem}

.sala{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}
.lista{max-height:calc(100vh - 110px);overflow:auto;position:sticky;top:84px}
.titulo-aula{margin-top:18px}
.estado{min-height:1.2em}
.navaula{display:flex;justify-content:space-between;gap:12px;margin:18px 0 28px;flex-wrap:wrap}
.materiais{list-style:none;padding:0;margin:0}
.materiais li{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #16202b;border-radius:10px;margin-bottom:6px;flex-wrap:wrap}
.materiais span{color:var(--mute);font-size:.82rem}

.prova fieldset{min-width:0}
.prova legend{font-weight:600;padding:0;float:left;width:100%;margin-bottom:10px}
.opcao{display:flex;gap:10px;align-items:flex-start;color:var(--text);font-size:1rem;margin:0;padding:10px 0;clear:both;cursor:pointer}
.opcao input{margin-top:5px}

/* ---- Texto da aula e correção do questionário ---- */
.texto{max-width:75ch;margin:8px 0 24px;overflow-wrap:anywhere}
.texto h3{font-size:1.15rem;color:var(--green);margin:1.6em 0 .5em}
.texto h4{font:600 1rem Poppins,sans-serif;margin:1.3em 0 .4em}
.texto ul,.texto ol{padding-left:1.3em;margin:0 0 1em}
.texto li{margin-bottom:.35em}
.texto blockquote{margin:1em 0;padding:12px 16px;border-left:4px solid var(--green);background:#0f2a12;border-radius:0 10px 10px 0}
.texto blockquote p:last-child{margin:0}
.texto table{display:block;overflow-x:auto;margin:0 0 1em;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.texto table{max-width:100%;overflow-wrap:normal}
.texto th,.texto td{min-width:120px}
.texto th{color:var(--mute);font-weight:500}
.aulas .travado{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed #16202b;border-radius:10px;margin-bottom:6px;color:var(--mute)}
.selo.vermelho{background:#2a1010;color:#fecaca;border-color:var(--red)}
.correcao p{margin:0 0 8px}
.correcao.errada{border-color:#7f1d1d}

/* ---- Tira-dúvidas, biblioteca e ranking ---- */
.filtros{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.filtros select{width:auto;max-width:100%}
.filtros .marcar{margin:0}
.topicos,.acervo,.ranking{list-style:none;margin:0 0 24px;padding:0}
.topicos li,.acervo li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;border:1px solid #16202b;border-radius:10px;margin-bottom:6px;background:#0a0f15}
.topicos li a{flex:1;min-width:200px;text-decoration:none;color:var(--text)}
.topicos .t{display:block;font-weight:600;overflow-wrap:anywhere}
.topicos li a:hover .t{color:var(--green)}
.info{display:block;color:var(--mute);font-size:.82rem;overflow-wrap:anywhere}
.selos{display:flex;gap:6px;flex-wrap:wrap}
.post .quem{color:var(--mute);font-size:.88rem;margin:0 0 10px}
.post .corpo{overflow-wrap:anywhere}
.post.tutor{border-color:var(--green2)}
.acervo li>div{flex:1;min-width:200px}
.acervo a{font-weight:600;overflow-wrap:anywhere}
.acervo p{margin:2px 0;color:var(--mute);font-size:.92rem}
.ancora{margin-top:40px;scroll-margin-top:90px}
.ranking li{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid #16202b;border-radius:10px;margin-bottom:6px;background:#0a0f15}
.ranking .pos{flex:none;width:2.6em;font:700 1.1rem Poppins,sans-serif;color:var(--mute);text-align:center}
.ranking .podio .pos{color:var(--green)}
.ranking .quem{flex:1;min-width:0}
.ranking .quem b{display:block;overflow-wrap:anywhere}
.ranking .quem .prog{margin-top:6px}
.ranking .pts{flex:none;color:var(--mute);font-size:.85rem;text-align:right}
.ranking .pts b{display:block;font:700 1.3rem Poppins,sans-serif;color:var(--text)}
.ranking .eu{border-color:var(--green);background:#0f2a12}

/* ---- Vitrine pública ---- */
.vit-topo{padding:18px 0 6px}
.vit-topo h1{font-size:clamp(1.8rem,4.6vw,2.8rem);max-width:22ch}
.vit-rot{margin:0 0 8px;font:600 .8rem Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--green)}
.vit-pontos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:22px 0 8px}
.vit-pontos div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.vit-pontos b{display:block;font:600 1rem Poppins,sans-serif;color:var(--green)}
.vit-pontos span{color:var(--mute);font-size:.88rem}
.curso .selo{margin-bottom:10px}
.ementa{list-style:none;margin:0 0 18px;padding:0}
.ementa li{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid #16202b;border-radius:10px;margin-bottom:6px;background:#0a0f15;overflow-wrap:anywhere}
.ementa .d{flex:none;color:var(--mute);font-size:.82rem}
.lado .btn{display:block;text-align:center;margin:10px 0 6px;white-space:normal}
@media(max-width:900px){.turma.cta{order:-1}}

/* ---- Player de podcast ---- */
.pod{display:flex;gap:16px;align-items:center;margin:16px 0 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#0f2a12,#1e2837 60%)}
.pod-capa{flex:none;width:84px;height:84px;border-radius:14px;background:#000;display:grid;place-items:center;border:1px solid var(--green2)}
.pod-capa svg{width:42px;height:42px;fill:var(--green)}
.pod.tocando .pod-capa{box-shadow:0 0 0 4px rgba(34,197,94,.25)}
.pod-corpo{flex:1;min-width:0}
.pod-rot{margin:0;font:600 .72rem Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.pod-tit{margin:2px 0 8px;font:600 1.05rem Poppins,sans-serif;overflow-wrap:anywhere}
.pod-linha{display:flex;gap:10px;align-items:center;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--mute)}
.pod-seek{flex:1;min-width:0;padding:0;border:0;background:transparent;height:20px;accent-color:var(--green);cursor:pointer}
.pod-botoes{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}
.pod-botoes button{border:1px solid #26384a;background:#0b1118;color:var(--text);border-radius:999px;padding:7px 14px;font:500 .85rem Inter,sans-serif;cursor:pointer}
.pod-botoes button:hover{border-color:var(--green2)}
.pod-botoes .pod-pp{width:48px;height:48px;padding:0;border:0;background:var(--green);display:grid;place-items:center}
.pod-pp svg{width:26px;height:26px;fill:#000}
.pod-vel{width:auto;padding:6px 8px;font-size:.85rem;border-radius:999px;margin-left:auto}
.pod-erro{margin:8px 0 0;color:#fecaca;font-size:.88rem}
@media(max-width:560px){.pod{flex-direction:column;align-items:stretch}.pod-capa{width:56px;height:56px}.pod-capa svg{width:28px;height:28px}}

/* ---- Texto: aviso de atenção, fórmulas ---- */
.texto aside{margin:1em 0;padding:14px 16px 12px;border-radius:0 10px 10px 0;border-left:4px solid #f2b01e;background:#2a2210;color:#f6d88a}
.texto aside p{margin:0 0 .4em}.texto aside p:last-child{margin:0}
.texto aside strong{letter-spacing:.06em;text-transform:uppercase;font-size:.82rem}
.texto blockquote strong:only-child{letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;color:var(--green)}
.texto code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95em;background:#0a0f15;border:1px solid #16202b;border-radius:6px;padding:1px 6px}

/* ---- Ferramentas interativas das aulas ---- */
.fx{margin:1.4em 0;max-width:760px}
.fx .lab{border:1px solid #26384a;background:#0a0f15;border-radius:12px;overflow:hidden}
.fx .lab>header{padding:10px 16px;background:#16202b;border-bottom:1px solid #26384a;font:600 .76rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.fx .lab .body{padding:16px;display:grid;gap:16px}
.fx label{margin:0;color:var(--text);font-size:.92rem}
.fx .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}
.fx .row label{font-weight:500}
.fx .row output{font:500 .95rem ui-monospace,Menlo,monospace;min-width:4.5em;text-align:right;color:var(--green)}
.fx input[type=range]{grid-column:1/-1;width:100%;padding:0;border:0;background:transparent;accent-color:var(--green2)}
.fx .fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.fx .fields label{display:grid;gap:4px;font-size:.86rem;font-weight:500;color:var(--mute)}
.fx .fields input,.fx .fields select{font:400 1rem ui-monospace,Menlo,monospace;padding:8px 10px;min-width:0;width:100%}
.fx .readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.fx .readout div{background:#05090c;border:1px solid #16202b;padding:10px 12px;border-radius:8px}
.fx .readout small{display:block;font:500 .68rem Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:2px}
.fx .readout b{font:500 1.35rem ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums;color:var(--green)}
.fx .bars{display:grid;gap:6px}
.fx .bars div{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:8px;align-items:center;font-size:.85rem;color:var(--mute)}
.fx .bars i{display:block;height:14px;background:var(--green2);border-radius:3px;min-width:2px;transition:width .15s}
.fx .bars i.w{background:#f2b01e}
.fx .btns{display:flex;gap:8px;flex-wrap:wrap}
.fx-b{border:1px solid #26384a;background:#0b1118;color:var(--text);padding:7px 12px;border-radius:8px;cursor:pointer;font:500 .88rem Inter,sans-serif}
.fx-b:hover{border-color:var(--green2)}
.fx-b.on{background:#0f2a12;border-color:var(--green);color:var(--green)}
.fx .imgbox{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.fx canvas{width:100%;max-width:300px;aspect-ratio:1;background:#000;border-radius:8px;border:1px solid #16202b}
.fx .imgbox .ctl{flex:1 1 260px;display:grid;gap:12px;min-width:0}
.fx .cap{font-size:.85rem;color:var(--mute);margin:0;max-width:none}
.fx .checks{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.fx .checks li{margin:0}
.fx .checks label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;background:#0b1118;border:1px solid #26384a;border-radius:8px;cursor:pointer}
.fx .checks input{margin-top:.2rem;width:18px;height:18px;flex:none}
.fx .checks input:checked+span{color:var(--mute);text-decoration:line-through}
.fx .msg{padding:10px 14px;border-radius:8px;background:#0f2a12;color:var(--green);font-weight:600}
.fx .signs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.fx .sign{background:#0a0f15;border:1px solid #26384a;border-radius:12px;padding:14px 10px;text-align:center;font-size:.84rem;color:var(--mute)}
.fx .sign svg{width:72px;height:72px;display:block;margin:0 auto 8px}
.fx .sign b{display:block;font-size:.92rem;color:var(--text)}
.fx .gantry{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:18px;align-items:start}
.fx .gantry svg{width:100%;height:auto;background:#0a0f15;border:1px solid #26384a;border-radius:12px}
.fx .part{cursor:pointer}
.fx .part:focus-visible{outline:none}
.fx .part:focus-visible *,.fx .part.sel *{stroke:var(--green)!important;stroke-width:3!important}
.fx .g-body{fill:#1e2837;stroke:#7b8a9a;stroke-width:2}
.fx .g-bore{fill:#0a0f15;stroke:#7b8a9a;stroke-width:2}
.fx .g-slip{fill:none;stroke:#7b8a9a;stroke-width:2;stroke-dasharray:3 4}
.fx .g-tube{fill:#f2b01e;stroke:#f4f6f8;stroke-width:1.5}
.fx .g-col{fill:#f4f6f8;stroke:#f4f6f8;stroke-width:1}
.fx .g-det{fill:none;stroke:var(--green2);stroke-width:10}
.fx .g-fan{fill:var(--green2);opacity:.16}
.fx .g-pat{fill:#26384a;stroke:#7b8a9a;stroke-width:1.5}
.fx .g-tab{fill:#7b8a9a;stroke:#f4f6f8;stroke-width:1.5}
.fx #rot{transform-box:view-box;transform-origin:210px 150px}
.fx #rot.spin{animation:fx-gira 6s linear infinite}
@keyframes fx-gira{to{transform:rotate(360deg)}}
.fx .plist{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.fx .pcard{padding:14px 16px;background:#0a0f15;border:1px solid #26384a;border-radius:12px;min-height:11rem}
.fx .pcard h4{margin:0 0 .4em;font:600 1.05rem Poppins,sans-serif;color:var(--green)}
.fx .pcard p{margin:0}
.fx .pcard .svc{margin-top:10px;padding-top:10px;border-top:1px dashed #26384a;font-size:.92rem;color:var(--mute)}
.fx .pcard .svc b{color:var(--text)}
@media(max-width:700px){.fx .gantry{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.fx #rot.spin{animation:none}.fx .bars i{transition:none}}

/* EMO-INI: painéis do curso SOMATOM Emotion e Spirit (gerado por _fontes/gerar_emotion.py; não editar à mão) */
.fx{--bg:#0b1118;--surface:#0a0f15;--panel:#16202b;--ink:var(--text);--muted:var(--mute);--line:#26384a;--accent:var(--green2);--accent-ink:#000;--accent-soft:#0f2a12;--warn:#f2b01e;--warn-ink:#f6d88a;--warn-bg:#2a2210;--danger:#f87171;--ok:var(--green);--ok-bg:#0f2a12;--bad-bg:#2a1010;--f-body:Inter,system-ui,sans-serif;--f-mono:ui-monospace,Menlo,Consolas,monospace;--f-head:Poppins,Inter,sans-serif}
.fx[data-fx^="emo-fotos"]{max-width:none}
.fx-b.pri{background:var(--green);border-color:var(--green);color:#000;font-weight:600}
.fx .pcard h3,.fx .flowcard h3{margin:0 0 .4em;font:600 1.05rem Poppins,sans-serif;color:var(--green)}
.fx .pcard .pd,.fx .flowcard p{margin:0}
.fx .dpStep p,.fx #dpStep p{margin:0 0 10px}
.fx #dpStep ul{margin:10px 0;padding-left:1.2em}
.fx .diag .box ul,.fx .seq{max-width:none}
.fx .chips{display:flex;gap:6px;flex-wrap:wrap}
.fx .chip{border:1px solid var(--line);background:var(--bg);padding:6px 12px;border-radius:999px;cursor:pointer;font-size:.88rem}
.fx .chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
.fx .dia{width:100%;height:auto;background:var(--surface);border:1px solid var(--line);border-radius:4px}
.fx .dia text{font:500 11px var(--f-body);fill:var(--muted)}
.fx .s-box{fill:var(--panel);stroke:var(--muted);stroke-width:1.5}
.fx .s-box2{fill:var(--surface);stroke:var(--muted);stroke-width:1.5}
.fx .s-acc{fill:var(--accent);stroke:var(--ink);stroke-width:1.2;opacity:.9}
.fx .s-warn{fill:var(--warn);stroke:var(--ink);stroke-width:1.2}
.fx .s-dark{fill:var(--ink);stroke:var(--ink)}
.fx .s-line{fill:none;stroke:var(--muted);stroke-width:2}
.fx .membrane{fill:none;stroke:var(--ink);stroke-width:3}
.fx .chain{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:14px 0}
.fx .node{position:relative;padding:10px 8px;border:1px solid var(--line);background:var(--surface);border-radius:4px;text-align:center;font-size:.8rem;line-height:1.25;cursor:pointer;min-height:64px;display:grid;align-content:center;gap:2px}
.fx .node small{font:500 .66rem var(--f-mono);color:var(--muted)}
.fx .node.past{background:var(--accent-soft)}
.fx .node.now{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}
.fx .node.now small{color:var(--accent-ink);opacity:.8}
.fx .node:focus-visible{outline:3px solid var(--warn)}
.fx .flowcard{padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:4px;min-height:12rem}
.fx .flowcard h3{margin:0 0 6px}
.fx .flowcard .svc{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:.92rem}
.fx .swap{display:grid;gap:10px}
.fx .slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fx .slot{padding:12px 8px;border:2px solid var(--line);border-radius:4px;background:var(--bg);text-align:center;font-size:.85rem}
.fx .slot b{display:block;font:600 .75rem var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fx .slot.bad{border-color:var(--danger);background:var(--bad-bg)}
.fx .slot.bad::after{content:"canal com falha";display:block;color:var(--danger);font-weight:600;margin-top:4px}
.fx .seq{list-style:none;margin:0;padding:0;display:grid;gap:6px;counter-reset:s}
.fx .seq li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:3px;background:var(--bg);margin:0;counter-increment:s}
.fx .seq li::before{content:counter(s);font:500 .8rem var(--f-mono);color:var(--muted);padding-top:2px}
.fx .seq li b{font-family:var(--f-mono);font-weight:500;font-size:.92rem}
.fx .seq li span{display:block;font-size:.85rem;color:var(--muted)}
.fx .seq li.sub{margin-left:1.4rem}
.fx .seq li.chk2{cursor:pointer}
.fx .seq li.done{opacity:.55}
.fx .seq li.done b{text-decoration:line-through}
.fx .diag{display:grid;gap:12px}
.fx .diag .box{padding:12px 14px;border:1px solid var(--line);border-radius:4px;background:var(--bg)}
.fx .diag .box h4{margin:0 0 4px;font:700 .75rem var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fx .diag .box ul{margin:.2rem 0;padding-left:1.1rem}
.fx .photos .body{display:grid;gap:12px}
.fx .photos .pwrap{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:16px;align-items:start}
.fx .photos .stage{position:relative;line-height:0}
.fx .photos img{width:100%;height:auto;border-radius:4px;border:1px solid var(--line);display:block}
.fx .photos .hs{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;border:2px solid var(--accent-ink);background:var(--accent);color:var(--accent-ink);font:700 .8rem var(--f-body);cursor:pointer;line-height:1;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.fx .photos .hs.on{background:var(--warn);color:#1b1b1b;transform:translate(-50%,-50%) scale(1.2)}
.fx .photos .hs:focus-visible,.fx .photos .slist button:focus-visible{outline:3px solid var(--warn)}
.fx .photos .slist{list-style:none;margin:8px 0;padding:0;display:grid;gap:4px;counter-reset:n}
.fx .photos .slist li{counter-increment:n;margin:0}
.fx .photos .slist button{width:100%;text-align:left;padding:6px 10px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--ink);cursor:pointer;font-size:.9rem}
.fx .photos .slist button::before{content:counter(n)". ";font-family:var(--f-mono);color:var(--muted)}
.fx .photos .slist button.on{background:var(--accent-soft);border-color:var(--accent);font-weight:600}
.fx .photos .pcard h3{margin:.4rem 0 .2rem}
.fx .photos .cap{margin:0;font-size:.85rem;color:var(--muted)}
@media (max-width:860px){.fx .chain{grid-template-columns:repeat(2,minmax(0,1fr))}.fx .photos .pwrap,.fx .scp .pwrap{grid-template-columns:minmax(0,1fr)}}
.fx .scp .pwrap{grid-template-columns:minmax(0,560px) minmax(0,1fr)}
.fx .scp .hs.ring{width:24px;height:24px;background:rgba(242,176,30,.18);border:2px solid #F2B01E;color:transparent;box-shadow:0 0 0 2px rgba(0,0,0,.65);transition:transform .1s}
.fx .scp .hs.ring:hover{background:rgba(242,176,30,.45)}
.fx .scp .hs.ring.on{background:var(--warn);border-color:#1b1b1b;transform:translate(-50%,-50%) scale(1.25)}
.fx .scp .hs.ring.ok{background:var(--ok);border-color:#fff}
.fx .scp .hs.ring.no{background:var(--danger);border-color:#fff}
.fx .scp .stage img{background:#000}
.fx .scp .slist{max-height:260px;overflow:auto}
.fx .msg.bad{background:var(--bad-bg);color:var(--danger)}
.fx .scp .msg{font-weight:500}
@media (max-width:860px){.fx .scp .pwrap{grid-template-columns:minmax(0,1fr)}.fx .scp .slist{max-height:none}}
.fx .node{color:var(--text)}
.fx .chip{color:var(--text)}
.fx .chip.on{color:#000}
.fx .seq li{color:var(--text)}
.fx .photos .slist button{font-family:inherit}
.fx .photos .pwrap,.fx .scp .pwrap{grid-template-columns:minmax(0,1fr)}
.fx .scp .slist{max-height:260px;overflow:auto}
.fx .gantry{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.fx .chain{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
/* EMO-FIM */

/* ---- Turma: ranking ao lado do conteúdo e chat ---- */
.curso-sala{grid-template-columns:minmax(0,1fr) 340px}
.turma{position:sticky;top:84px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 100px)}
.lado{margin:0;padding:16px}
.lado h3{margin-bottom:10px}
.lado .pequeno{margin:8px 0 0}
.mini-rank{list-style:none;margin:0;padding:0}
.mini-rank li{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;font-size:.9rem}
.mini-rank .pos{flex:none;width:2.2em;color:var(--mute);font-weight:600}
.mini-rank .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-rank .p{flex:none;font-weight:600;font-variant-numeric:tabular-nums}
.mini-rank .eu{background:#0f2a12;color:var(--green)}
.mini-rank .eu .pos{color:var(--green)}
.mini-rank .pulo{justify-content:center;color:var(--mute);padding:0}
.lista .lado{margin-top:14px}
.conta{display:inline-block;min-width:1.5em;padding:0 6px;border-radius:999px;background:var(--green);color:#000;font-size:.72rem;font-weight:700;text-align:center;line-height:1.5em}

.chat{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:0}
.chat[hidden]{display:none}
.chat.fixo{flex:1;min-height:320px}
.chat.grande{height:min(68vh,640px)}
.chat header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat header h3{margin:0}
.chat-fechar{background:transparent;border:0;color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 6px}
.chat-msgs{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#0a0f15}
.chat-vazio{margin:auto;color:var(--mute);font-size:.9rem;text-align:center}
.msg-chat{max-width:88%;align-self:flex-start;background:#16202b;border-radius:12px 12px 12px 4px;padding:8px 12px}
.msg-chat.eu{align-self:flex-end;background:#0f2a12;border-radius:12px 12px 4px 12px}
.msg-chat.tutor{border:1px solid var(--green2)}
.msg-chat p{margin:0;max-width:none}
.msg-chat .de{font-size:.72rem;color:var(--mute);margin-bottom:2px}
.msg-chat.tutor .de{color:var(--green)}
.msg-chat .tx{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.93rem;line-height:1.45}
.msg-chat .apagar{background:transparent;border:0;color:var(--red);font-size:.72rem;padding:4px 0 0;cursor:pointer}
.chat-form{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--line)}
.chat-form textarea{flex:1;min-width:0;resize:none;padding:9px 12px;font-size:.95rem;line-height:1.4;max-height:120px}
.chat-botao{position:fixed;right:18px;bottom:18px;z-index:20;background:var(--green);color:#000;border:0;border-radius:999px;padding:12px 20px;font:600 .95rem Inter,sans-serif;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.5)}
.chat-botao .chat-novas{display:inline-block;min-width:1.5em;margin-left:6px;padding:0 6px;border-radius:999px;background:#000;color:var(--green);font-size:.75rem;line-height:1.5em}
.chat-botao .chat-novas[hidden]{display:none}
.chat.flutuante{position:fixed;right:18px;bottom:74px;z-index:21;width:min(380px,calc(100vw - 24px));height:min(520px,calc(100vh - 110px));box-shadow:0 10px 40px rgba(0,0,0,.6)}
.conversa{grid-template-columns:260px minmax(0,1fr)}
.turmas{display:flex;flex-direction:column;gap:6px}
.turmas a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:11px 14px;border:1px solid #16202b;border-radius:10px;text-decoration:none;color:var(--text);background:#0a0f15;overflow-wrap:anywhere}
.turmas a.atual{border-color:var(--green);background:#0f2a12}

/* ---- Player ---- */
.pl{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;border:1px solid var(--line);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
/* O quadro do YouTube é três vezes mais alto que a área visível: o título e a marca
   dele ficam fora da tela, e só o vídeo aparece. Ele não recebe cliques. */
.pl-fr{position:absolute;left:0;top:-100%;width:100%;height:300%;pointer-events:none}
.pl-fr iframe{width:100%;height:100%;border:0;display:block}
.pl-cap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#000;cursor:pointer;transition:background .2s}
.pl-cap img{height:52px;width:auto}
.pl-big{width:76px;height:76px;border-radius:50%;border:0;background:var(--green);cursor:pointer;display:grid;place-items:center}
.pl-big svg{width:38px;height:38px;fill:#000}
.pl-msg{margin:0;color:var(--mute);font-size:.92rem;text-align:center;padding:0 20px}
.pl.pausado .pl-cap{background:rgba(0,0,0,.55)}
.pl.pausado .pl-cap img{display:none}
.pl.tocando .pl-cap{background:transparent}
.pl.tocando .pl-cap>*{display:none}
.pl.carregando .pl-big{display:none}
.pl-som{position:absolute;top:14px;left:14px;z-index:3;background:var(--green);color:#000;border:0;border-radius:999px;padding:8px 16px;font:600 .88rem Inter,sans-serif;cursor:pointer}
.pl-bar{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:10px;padding:26px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.88));transition:opacity .25s}
.pl.tocando.ocioso .pl-bar{opacity:0;pointer-events:none}
.pl.tocando.ocioso{cursor:none}
.pl.inicio .pl-bar{display:none}
.pl-bar button{flex:none;width:36px;height:36px;border:0;border-radius:8px;background:transparent;cursor:pointer;display:grid;place-items:center;padding:0}
.pl-bar button:hover{background:rgba(255,255,255,.12)}
.pl-bar svg{width:24px;height:24px;fill:#fff}
.pl-t{flex:none;font-size:.82rem;font-variant-numeric:tabular-nums;color:#fff}
.pl-bar input[type=range]{padding:0;border:0;background:transparent;height:20px;accent-color:var(--green);cursor:pointer}
#pl-seek{flex:1;min-width:40px}
#pl-vol{flex:none;width:76px}
#pl-vel{flex:none;width:auto;padding:5px 6px;font-size:.82rem;border-radius:8px;background:#0b1118}
.pl:fullscreen{border-radius:0;border:0;width:100vw;height:100vh;aspect-ratio:auto}
.pl.cheia{position:fixed;inset:0;z-index:50;border-radius:0;border:0;width:100%;height:100%;aspect-ratio:auto}

/* ---- Painel ---- */
.numeros{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:24px}
.numeros .cartao{margin:0;text-align:center}
.numeros b{display:block;font:700 2rem Poppins,sans-serif;color:var(--green)}
.numeros span{color:var(--mute);font-size:.88rem}
.rolagem{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel);margin-bottom:18px}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{padding:11px 14px;text-align:left;border-bottom:1px solid #16202b;vertical-align:middle}
thead th{color:var(--mute);font-weight:500;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
td.acoes{white-space:nowrap;text-align:right}
td.acoes form{display:inline}
.cabeca{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}
details.cartao>summary{cursor:pointer;font:600 1rem Poppins,sans-serif;color:var(--green)}
details.item{border:1px solid #16202b;border-radius:10px;margin-bottom:6px;background:#0a0f15}
details.item>summary{cursor:pointer;padding:11px 14px;display:flex;gap:12px;align-items:center;overflow-wrap:anywhere}
details.item>summary .d{margin-left:auto;color:var(--mute);font-size:.82rem;white-space:nowrap}
details.item>.dentro{padding:4px 14px 16px;border-top:1px solid #16202b}
.duas{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;align-items:center}
.duas form{margin:0}
.senha-temp{font:600 1.05rem ui-monospace,Menlo,monospace;color:var(--green)}

@media(max-width:900px){
 .top{position:static}
 .curso-sala,.conversa{grid-template-columns:minmax(0,1fr)}
 .turma{position:static;max-height:none}
 .chat.fixo{height:420px;flex:none}
 .chat.flutuante{right:12px;bottom:70px}
 .ancora{scroll-margin-top:12px}
 .sala{grid-template-columns:minmax(0,1fr)}
 .lista{position:static;max-height:none}
}
@media(max-width:560px){
 #pl-vol{display:none}
 .pl-bar{gap:6px;padding-left:8px;padding-right:8px}
 .pl-t{font-size:.75rem}
 .pl-cap img{height:38px}
 .pl-big{width:60px;height:60px}
}
@media(prefers-reduced-motion:reduce){.pl-cap,.pl-bar{transition:none}}

/* Painel > Visitas */
.vis-graf{display:flex;align-items:flex-end;gap:2px;height:150px}
.vis-col{flex:1;height:100%;display:flex;align-items:flex-end;min-width:0}
.vis-col i{display:block;width:100%;min-height:2px;background:var(--green2);border-radius:3px 3px 0 0}
.vis-col:hover i{background:var(--green)}
.vis-eixo{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:var(--mute);font-size:.8rem}
footer.pe a{color:inherit}
