:root{--verde:#00ff47;--fundo:#000;--carta:#0b0b0b;--linha:#1c1c1c;--texto:#f2f2f2;--suave:#8d8d8d}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--fundo);color:var(--texto);font-family:Figtree,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}
a{color:inherit;text-decoration:none}
main{max-width:1040px;margin:0 auto;padding:32px 20px 80px}

.topo{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:16px 20px;border-bottom:1px solid var(--linha);position:sticky;top:0;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);z-index:5}
.marca{font-weight:800;letter-spacing:.14em;font-size:15px}
.marca span{color:var(--verde)}
.topo nav{display:flex;gap:18px;font-size:14px;color:var(--suave);flex-wrap:wrap}
.topo nav a:hover{color:var(--verde)}
.topo nav .sair{color:#5d5d5d}

h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
h2.modulo{font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--verde);margin:38px 0 14px}
h3{font-size:17px;font-weight:600}
.sub{color:var(--suave);margin-bottom:22px;max-width:60ch}
.voltar{color:var(--suave);font-size:14px;display:inline-block;margin-bottom:18px}
.voltar:hover{color:var(--verde)}
code{background:#151515;padding:1px 6px;border-radius:5px;font-size:.9em}

.caixa{background:var(--carta);border:1px solid var(--linha);border-radius:16px;padding:26px;margin-bottom:18px}
.caixa.centro{max-width:440px;margin:8vh auto;text-align:center}
.caixa h2{font-size:16px;font-weight:600;margin-bottom:14px}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.duas{grid-template-columns:1fr}}

input,textarea,select{width:100%;background:#000;border:1px solid var(--linha);color:var(--texto);
  border-radius:10px;padding:13px 14px;font:inherit;font-size:15px;margin-bottom:10px}
input:focus,textarea:focus{outline:none;border-color:var(--verde)}
input[type=file]{padding:10px;color:var(--suave)}
input[type=checkbox]{width:auto;margin:0 8px 0 0}
textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;resize:vertical}
label.linha{display:flex;align-items:center;color:var(--suave);font-size:14px;margin:4px 0 14px}
form.linha{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
form.linha input{margin:0}

button,.botao{background:var(--verde);color:#000;border:none;border-radius:10px;padding:13px 22px;
  font:inherit;font-weight:700;font-size:15px;cursor:pointer;display:inline-block}
button:hover,.botao:hover{filter:brightness(1.12)}
.botao.vazio{background:transparent;color:var(--suave);border:1px solid var(--linha);margin-left:8px}
.mini{background:#141414;color:var(--suave);border:1px solid var(--linha);padding:7px 12px;font-size:13px;font-weight:600;border-radius:8px}
.mini:hover{color:var(--verde);border-color:var(--verde);filter:none}
.mini.perigo:hover{color:#ff4d4d;border-color:#ff4d4d}

.aviso{background:#101010;border:1px solid var(--linha);border-left:3px solid var(--suave);
  border-radius:10px;padding:14px 16px;margin-bottom:22px;font-size:14px;color:#cfcfcf}
.aviso.bom{border-left-color:var(--verde)}
.aviso.mau{border-left-color:#ff4d4d}
.copiar{margin-top:10px;font-size:13px;font-family:ui-monospace,monospace}

.grelha{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.cartao{background:var(--carta);border:1px solid var(--linha);border-radius:16px;padding:22px;transition:.15s}
.cartao:hover{border-color:var(--verde);transform:translateY(-2px)}
.cartao p{color:var(--suave);font-size:14px;margin-top:8px}
.etiqueta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--verde);display:block;margin-bottom:8px}

.video{position:relative;width:100%;aspect-ratio:16/9;background:#080808;border:1px solid var(--linha);
  border-radius:16px;overflow:hidden;margin:22px 0}
.video iframe,.video video,.video embed,.video object{position:absolute;inset:0;width:100%;height:100%;border:0}
.sem-video{display:grid;place-items:center;height:100%;color:#4a4a4a;font-size:14px}

.ficheiros{list-style:none;display:flex;flex-direction:column;gap:8px}
.ficheiros li{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#101010;border:1px solid var(--linha);border-radius:10px;padding:12px 16px;font-size:14px}
.ficheiros li a:hover{color:var(--verde)}
.ficheiros li span{color:#555;font-size:12px}

.tabela{width:100%;border-collapse:collapse;font-size:14px;margin-top:22px;display:block;overflow-x:auto}
.tabela th{text-align:left;color:#666;font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--linha)}
.tabela td{padding:12px;border-bottom:1px solid #111;white-space:nowrap}
.tabela tr.inactivo{opacity:.4}
.accoes{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.aula-admin .cabeca{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}
.aula-admin .ficheiros{margin-bottom:12px}

footer{text-align:center;color:#333;font-size:12px;padding:30px 20px 50px}

details.alternativa{margin-top:22px;border-top:1px solid var(--linha);padding-top:16px;text-align:left}
details.alternativa summary{color:var(--suave);font-size:14px;cursor:pointer;text-align:center;list-style:none}
details.alternativa summary::-webkit-details-marker{display:none}
details.alternativa summary:hover{color:var(--verde)}
details.alternativa[open] summary{color:var(--verde);margin-bottom:14px}
.sub.pequeno{font-size:13px;margin-bottom:12px}
.chave{opacity:.55;font-size:12px}
