
/* Portal do aluno: barra lateral fixa + área de conteúdo em cards; identidade ConverTools (preto, lima, roxo) */
:root{
  --ink:#07070A;
  --surface:#101016;
  --surface-2:#17171F;
  --line:#26262F;
  --fg:#F3F3F6;
  --muted:#8C8C9B;
  --lime:#BEF934;
  --roxo:#7933FB;
  --roxo-soft:#2A1358;
  --lime-soft:#2B3A10;
  --font-display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --font-body:'Barlow','Helvetica Neue',Arial,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--ink);
  color:var(--fg);
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;text-wrap:balance;letter-spacing:-.02em}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.hide{display:none!important}

/* ---------- marca ---------- */
.logo{font-family:var(--font-display);font-weight:900;letter-spacing:-.02em;line-height:1}
.logo .b{color:#fff}
.logo .g{color:var(--lime)}
.logo .sub{display:block;font-size:.42em;font-weight:600;letter-spacing:.42em;color:#fff;margin-top:.25em}

/* ---------- login ---------- */
#login{min-height:100svh;display:grid;place-items:center;
  padding-block:40px;
  padding-left:max(16px,env(safe-area-inset-left,0px));
  padding-right:max(16px,env(safe-area-inset-right,0px));
  background:
    radial-gradient(60% 50% at 85% 10%, rgba(121,51,251,.30), transparent 70%),
    radial-gradient(55% 45% at 10% 90%, rgba(190,249,52,.16), transparent 70%),
    var(--ink);
}
.auth{width:100%;max-width:420px}
.auth-brand{text-align:center;margin-bottom:28px}
.auth-brand .logo{font-size:40px}
.auth-brand p{color:var(--muted);font-size:13px;margin:14px 0 0;letter-spacing:.06em;text-transform:uppercase}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.auth form{padding:24px;display:flex;flex-direction:column;gap:14px}
label{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
input,select,textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:var(--fg)}
input::placeholder,textarea::placeholder{color:#5C5C68}
input:focus,select:focus,textarea:focus{border-color:var(--lime);outline:none}
textarea{min-height:120px;resize:vertical;line-height:1.6}
.btn{border:0;border-radius:9px;padding:12px 18px;font-weight:700;font-family:var(--font-display);cursor:pointer;letter-spacing:.01em}
.btn-lime{background:var(--lime);color:#0A0A0A}
.btn-lime:hover{background:#CBFF4D}
.btn-roxo{background:var(--roxo);color:#fff}
.btn-roxo:hover{background:#8A4BFF}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--fg)}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}
.btn-sm{padding:8px 13px;font-size:13px;border-radius:8px}
.switch{text-align:center;font-size:14px;color:var(--muted);margin-top:16px}
.switch button{background:none;border:0;color:var(--lime);font-weight:700;cursor:pointer;padding:0}
.demo{margin-top:16px;padding:13px 15px;border:1px dashed var(--line);border-radius:11px;font-size:12.5px;color:var(--muted);line-height:1.7}
.demo b{color:var(--fg);font-weight:600}
.erro{background:#2B0F14;border:1px solid #6B1F2A;color:#FFB3BE;border-radius:9px;padding:10px 13px;font-size:13.5px}

/* ---------- shell ---------- */
#app{display:grid;grid-template-columns:244px 1fr;min-height:100svh}
.side{background:#0B0B10;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px;
  padding-block:24px 18px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:16px;
  position:sticky;top:env(safe-area-inset-top,0px);height:100svh}
.side .logo{font-size:21px;margin-bottom:26px}
.nav-btn{display:flex;align-items:center;gap:10px;background:none;border:0;border-radius:9px;padding:10px 12px;
  color:var(--muted);font-weight:600;cursor:pointer;text-align:left;width:100%;font-size:14.5px}
.nav-btn:hover{color:var(--fg);background:var(--surface)}
.nav-btn.on{background:var(--lime);color:#0A0A0A}
.nav-btn .ico{width:18px;text-align:center;font-size:15px}
.side-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}
.side-foot .nome{font-weight:700;font-family:var(--font-display);font-size:14.5px}
.side-foot .mail{color:var(--muted);font-size:12px;overflow-wrap:anywhere;margin-bottom:10px}

main{min-width:0;padding-block:28px 56px;
  padding-left:max(20px,env(safe-area-inset-left,0px));
  padding-right:max(20px,env(safe-area-inset-right,0px));width:100%}
/* conteúdo centralizado e com largura máxima; sobra de tela vira margem igual nos dois lados */
main{--cw:1320px;padding-left:max(20px,env(safe-area-inset-left,0px),calc((100% - var(--cw))/2));
  padding-right:max(20px,env(safe-area-inset-right,0px),calc((100% - var(--cw))/2))}
@media (min-width:2100px){main{--cw:1520px}}
@media (min-width:1200px) and (max-width:1500px){#app{grid-template-columns:224px 1fr}}
.page-head{margin-bottom:22px}
.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--lime);font-weight:700}
.page-head h1{font-size:30px;font-weight:800;margin-top:6px}
.page-head p{color:var(--muted);margin:8px 0 0;max-width:62ch}

/* ---------- dashboard ---------- */
.grid{display:grid;gap:16px}
.g-hero{grid-template-columns:1.25fr 1fr}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.pad{padding:22px}
.rank-card{background:linear-gradient(135deg,var(--roxo-soft) 0%,var(--surface) 62%);border:1px solid #3A2270;
  border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:14px}
.pat-emb{width:48px;height:48px;object-fit:contain;flex:0 0 48px}
.pat-emb.off{filter:grayscale(1);opacity:.35}
.rank-card .emb-grande{width:110px;height:110px;object-fit:contain;align-self:flex-start}
.g-pat{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.g-pat .g-n{flex:0 0 24px;color:var(--muted)}
.g-pat .g-nome{flex:1 1 160px;min-width:120px}
.g-pat .g-xp{flex:0 0 100px;width:100px}
.g-emb{position:relative;flex:0 0 52px;width:52px;height:52px;border:1px dashed var(--line);border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);font-size:11px;text-align:center;overflow:hidden;padding:0}
.g-emb img{width:100%;height:100%;object-fit:contain}
.g-emb:hover{border-color:var(--lime);color:var(--lime)}
.g-rm{flex:0 0 auto}
.patente{font-family:var(--font-display);font-size:42px;font-weight:900;line-height:1;color:#fff}
.patente .idx{color:var(--lime)}
.prox{font-size:13.5px;color:#C9C3DC}
.bar{height:9px;border-radius:99px;background:#1D1D27;overflow:hidden}
.bar span{display:block;height:100%;border-radius:99px;background:var(--lime);transition:width .45s ease}
.bar.roxa span{background:var(--roxo)}
.xp{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.xp b{color:var(--fg);font-family:var(--font-display);font-size:16px;display:block;font-variant-numeric:tabular-nums}
.ring-card{display:flex;align-items:center;gap:20px}
.ring{position:relative;flex:0 0 auto}
.ring .val{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);
  font-weight:900;font-size:26px;font-variant-numeric:tabular-nums}
.tile h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.tile .num{font-family:var(--font-display);font-weight:900;font-size:30px;margin-top:6px;font-variant-numeric:tabular-nums}
.tile .leg{font-size:12.5px;color:var(--muted)}
.sec-title{font-family:var(--font-display);font-weight:700;font-size:17px;margin:30px 0 14px;display:flex;
  justify-content:space-between;align-items:baseline;gap:12px}
.sec-title small{color:var(--muted);font-weight:500;font-family:var(--font-body);font-size:13px}
.trilha-card{padding:20px;display:flex;flex-direction:column;gap:12px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.trilha-card .nm{font-family:var(--font-display);font-weight:700;font-size:15px;display:flex;align-items:center;gap:9px}
.trilha-card .pc{font-family:var(--font-display);font-weight:900;font-size:26px;font-variant-numeric:tabular-nums}
.proximas{display:flex;flex-direction:column;gap:9px}
.prox-item{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--line);
  border-radius:11px;padding:13px 15px}
.prox-item .tx{flex:1;min-width:0}
.prox-item .tx b{display:block;font-weight:600;font-size:14.5px}
.prox-item .tx span{color:var(--muted);font-size:12.5px}
.badges{display:flex;flex-wrap:wrap;gap:10px}
.badge{border:1px solid var(--line);border-radius:11px;padding:12px 14px;min-width:150px;background:var(--surface);opacity:.42}
.badge.on{opacity:1;border-color:var(--lime);background:var(--lime-soft)}
.badge .t{font-family:var(--font-display);font-weight:700;font-size:13.5px}
.badge .d{font-size:12px;color:var(--muted)}
.badge.on .d{color:#C6DFA0}

/* ---------- trilhas ---------- */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.tab{background:var(--surface);border:1px solid var(--line);border-radius:99px;padding:9px 16px;cursor:pointer;
  font-weight:600;font-size:14px;color:var(--muted)}
.tab.on{background:#fff;color:#0A0A0A;border-color:#fff}
.mod{border:1px solid var(--line);border-radius:13px;background:var(--surface);margin-bottom:12px;overflow:hidden}
.mod-head{display:flex;align-items:center;gap:14px;padding:16px 18px;cursor:pointer;background:none;border:0;width:100%;text-align:left}
.mod-num{flex:0 0 auto;width:34px;height:26px;border-radius:6px;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:800;font-size:12.5px;color:#0A0A0A}
.mod-head .t{flex:1;min-width:0}
.mod-head .t b{display:block;font-family:var(--font-display);font-size:15.5px;font-weight:700}
.mod-head .t span{font-size:12.5px;color:var(--muted)}
.mod-head .pc{font-family:var(--font-display);font-weight:800;font-size:14px;font-variant-numeric:tabular-nums;color:var(--muted)}
.mod-head .pc.full{color:var(--lime)}
.mod-body{border-top:1px solid var(--line);padding:8px 18px 16px}
.aula{display:flex;align-items:flex-start;gap:12px;padding:9px 0;cursor:pointer;border-bottom:1px solid #1C1C24}
.aula:last-child{border-bottom:0}
.aula input{width:19px;height:19px;flex:0 0 auto;margin:2px 0 0;accent-color:var(--lime);cursor:pointer}
.aula span{font-size:14.5px;line-height:1.45}
.aula.done span{color:var(--muted);text-decoration:line-through}
.mod-acoes{display:flex;gap:9px;flex-wrap:wrap;padding-top:14px;margin-top:4px;border-top:1px solid #1C1C24}

/* ---------- patentes ---------- */
.pat-list{display:grid;gap:10px}
.pat{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:12px;padding:14px 18px;background:var(--surface)}
.pat.atual{border-color:var(--lime);background:var(--lime-soft)}
.pat.feito .nm{color:var(--lime)}
.pat .n{font-family:var(--font-display);font-weight:900;font-size:13px;color:var(--muted);width:26px;font-variant-numeric:tabular-nums}
.pat .nm{font-family:var(--font-display);font-weight:700;font-size:16px;flex:1;min-width:0}
.pat .req{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.pat .tag{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#0A0A0A;background:var(--lime);
  border-radius:99px;padding:4px 10px}

/* ---------- configurações ---------- */
.conf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.form-card{padding:20px;display:flex;flex-direction:column;gap:14px}
.form-card h3{font-size:16px;font-weight:700}
.form-card .dica{font-size:12.5px;color:var(--muted);margin-top:-6px}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>*{flex:1;min-width:150px}
.ok{background:var(--lime-soft);border:1px solid #4A6B1C;color:#D8F7A4;border-radius:9px;padding:10px 13px;font-size:13.5px}
.lista-conf{display:flex;flex-direction:column;gap:8px;max-height:430px;overflow:auto}
.lc{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:11px 14px;background:var(--surface-2)}
.lc .t{flex:1;min-width:0}
.lc .t b{display:block;font-size:14px;font-weight:600}
.lc .t span{font-size:12px;color:var(--muted)}
.ico-btn{background:none;border:1px solid var(--line);border-radius:7px;width:30px;height:30px;cursor:pointer;color:var(--muted);flex:0 0 auto}
.ico-btn:hover{border-color:#8B2436;color:#FF8C9E}
.aviso{font-size:12.5px;color:var(--muted);border-left:2px solid var(--roxo);padding-left:12px}

@media (max-width:900px){
  #app{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;gap:8px;
    border-right:0;border-bottom:1px solid var(--line);padding-block:12px}
  .side .logo{font-size:17px;margin:0 8px 0 0;flex:0 0 auto}
  .side .logo .sub{display:none}
  .nav-btn{width:auto;flex:0 0 auto;padding:8px 12px;white-space:nowrap}
  .side-foot{margin:0 0 0 auto;border:0;padding:0;flex:0 0 auto}
  .side-foot .nome,.side-foot .mail{display:none}
  .g-hero,.g-3,.g-4,.conf-grid{grid-template-columns:1fr}
}
@media (max-width:620px){
  .g-4{grid-template-columns:1fr 1fr}
  .page-head h1{font-size:24px}
  .patente{font-size:33px}
}

/* ---------- v2: sistema real ---------- */
a{color:var(--lime)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-danger{background:#3A1219;border:1px solid #6B1F2A;color:#FFB3BE}
.btn-danger:hover{background:#4D1822}
.muted{color:var(--muted)}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--lime);color:#0A0A0A;font-weight:700;padding:11px 18px;border-radius:10px;z-index:99;max-width:90vw}
.toast.err{background:#FFB3BE}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:12px}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--lime)}
.side-sec{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#5C5C68;margin:14px 0 2px 12px;font-weight:700}
.curso-card{padding:22px;display:flex;flex-direction:column;gap:12px;cursor:pointer;text-decoration:none;color:inherit;transition:border-color .15s}
.curso-card:hover{border-color:var(--lime)}
.curso-card h3{font-size:18px}.curso-card p{margin:0;color:var(--muted);font-size:13.5px}
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:99px;padding:3px 9px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.tag.ok{background:var(--lime-soft);color:var(--lime);border-color:#4A6B1C}.tag.rasc{background:#33290A;color:#F5D36B;border-color:#5C4A12}
a.aula-l{display:flex;align-items:center;gap:12px;padding:11px 0;text-decoration:none;color:var(--fg);border-bottom:1px solid #1C1C24}
a.aula-l:last-child{border-bottom:0}a.aula-l:hover b{color:var(--lime)}
.aula-l .st{flex:0 0 22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:12px;color:#0A0A0A}
.aula-l .st.ok{background:var(--lime);border-color:var(--lime)}.aula-l .st.mid{border-color:var(--roxo)}
.aula-l .tx{flex:1;min-width:0}.aula-l b{font-weight:600;font-size:14.5px}.aula-l .sub{font-size:12px;color:var(--muted)}
.aula-l .pc{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.player-wrap{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}
.player{aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;position:relative}
.player iframe,.player>div{position:absolute;inset:0;width:100%;height:100%;border:0}
.aula-corpo{margin-top:18px;line-height:1.7;max-width:75ch}.aula-corpo h2,.aula-corpo h3{margin:20px 0 8px}.aula-corpo p{margin:0 0 12px}.aula-corpo code{background:var(--surface-2);padding:1px 6px;border-radius:5px}
.aula-corpo ul{padding-left:20px}
.prog-live{display:flex;align-items:center;gap:12px;margin:14px 0}.prog-live .bar{flex:1}.prog-live b{font-family:var(--font-display);min-width:44px;text-align:right}
.passo{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:10px}
.passo input{width:20px;height:20px;accent-color:var(--lime);margin-top:3px;flex:0 0 auto}.passo.done{opacity:.6}
.passo h4{font-size:15px;margin-bottom:4px}.passo p{margin:0;color:#C9C9D4;white-space:pre-wrap}
.perg{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin-bottom:12px}
.perg h4{font-size:15px;margin-bottom:10px}.alt{display:flex;gap:10px;align-items:flex-start;padding:8px 0;cursor:pointer}.alt input{width:auto;margin-top:4px;accent-color:var(--lime)}
.perg.certa{border-color:#4A6B1C}.perg.errada{border-color:#6B1F2A}
.mat{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:8px;text-decoration:none;color:var(--fg)}.mat:hover{border-color:var(--lime)}
.lista-lat{position:sticky;top:20px;max-height:calc(100svh - 40px);overflow:auto}
table.tb{width:100%;border-collapse:collapse;font-size:14px}
.tb th{text-align:left;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line)}
.tb td{padding:12px;border-bottom:1px solid #1C1C24;vertical-align:middle}.tb tr.lk{cursor:pointer}.tb tr.lk:hover td{background:var(--surface-2)}
.tb .bar{min-width:90px}
.tbl-wrap{overflow-x:auto}
.adm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ed-mod{border:1px solid var(--line);border-radius:13px;background:var(--surface);margin-bottom:14px}
.ed-mod-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ed-mod-h .nm{flex:1;min-width:180px;font-family:var(--font-display);font-weight:700;font-size:16px}
.ed-aula{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #1C1C24;flex-wrap:wrap}.ed-aula:last-child{border-bottom:0}
.ed-aula a{flex:1;min-width:160px;color:var(--fg);text-decoration:none;font-size:14.5px}.ed-aula a:hover{color:var(--lime)}
.sm{width:30px;height:30px;padding:0;border:1px solid var(--line);background:none;border-radius:7px;color:var(--muted);cursor:pointer}.sm:hover{border-color:var(--lime);color:var(--lime)}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.f-grid .full{grid-column:1/-1}
.chk{display:flex;align-items:center;gap:9px;font-size:14px;text-transform:none;letter-spacing:0;color:var(--fg);font-weight:500;margin:0;cursor:pointer}.chk input{width:auto;accent-color:var(--lime)}
.bloco{border:1px solid var(--line);border-radius:11px;padding:14px;background:var(--surface-2);margin-bottom:10px;display:flex;flex-direction:column;gap:10px}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;padding:16px;z-index:50}
.modal{width:100%;max-width:520px;max-height:92svh;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:14px}
.cursos-chk{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:10px}
.tela-cheia{min-height:50svh;display:grid;place-items:center;color:var(--muted)}
@media (max-width:1000px){.player-wrap{grid-template-columns:1fr}.lista-lat{position:static;max-height:none}.f-grid{grid-template-columns:1fr}}
@media (max-width:1000px){.f-grid{grid-template-columns:1fr!important}}

/* ---------- responsivo extra ---------- */
img,video,iframe{max-width:100%}
@media (max-width:900px){
  main{padding-block:20px 44px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
}
@media (max-width:620px){
  .conf-grid,.g-hero,.g-3{grid-template-columns:1fr}
  table.tb{font-size:13px}
  .modal{max-width:100%}
}

/* ---------- biblioteca de prompts ---------- */
.pr-busca input{font-size:16px;padding:15px 18px;border-radius:12px}
.pr-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pr-cat{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:8px 15px;font-weight:600;font-size:13.5px;cursor:pointer}
.pr-cat span{opacity:.6;margin-left:4px}.pr-cat:hover{color:var(--fg)}.pr-cat.on{background:var(--lime);border-color:var(--lime);color:#0A0A0A}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pr-card{display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s}.pr-card:hover{border-color:var(--lime)}
.pr-capa{display:block;aspect-ratio:16/10;background:#111118;position:relative;overflow:hidden}
.pr-capa img{width:100%;height:100%;object-fit:cover;display:block}
.pr-sem{display:flex;height:100%;align-items:center;justify-content:center;font-size:38px;color:#3A3A46}
.pr-qtd{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;font-size:11px;font-weight:700;border-radius:99px;padding:3px 9px}
.pr-corpo{padding:16px;display:flex;flex-direction:column;gap:9px;flex:1}
.pr-corpo h3{font-size:16.5px;line-height:1.3}.pr-corpo h3 a{color:var(--fg);text-decoration:none}
.pr-corpo p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pr-chips{display:flex;flex-wrap:wrap;gap:6px}
.pr-chip{background:none;border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:3px 10px;font-size:12px;cursor:pointer}.pr-chip:hover{color:var(--lime);border-color:var(--lime)}
.pr-det{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.pr-det.sem-img{grid-template-columns:minmax(0,860px)}
.pr-gal-main{background:#000;border-radius:14px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in}
.pr-gal-main img{display:block;width:100%;max-height:70vh;object-fit:contain}
.pr-leg{padding:10px 14px;font-size:13px;color:var(--muted);background:var(--surface)}
.pr-gal-th{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.pr-gal-th button{width:74px;height:56px;padding:0;border:2px solid var(--line);border-radius:9px;overflow:hidden;cursor:pointer;background:#000}
.pr-gal-th button.on{border-color:var(--lime)}.pr-gal-th img{width:100%;height:100%;object-fit:cover;display:block}
.pr-pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.65;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:16px;max-height:70vh;overflow:auto}
.pr-zoom{cursor:zoom-out;z-index:120}.pr-zoom img{max-width:94vw;max-height:94svh;border-radius:10px}
.pr-edit-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.pr-edit-img{border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:8px}
.pr-edit-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}
@media (max-width:1000px){.pr-det{grid-template-columns:minmax(0,1fr)}.pr-gal-main img{max-height:60vh}}
@media (max-width:620px){.pr-grid{grid-template-columns:1fr}}

/* ---------- seleção em massa no curso ---------- */
.sel-ck{display:none;width:18px;height:18px;flex:0 0 auto;margin:0;accent-color:var(--lime)}
.selmode .sel-ck{display:inline-block}
.sel-barra{position:sticky;bottom:14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;margin-top:16px;border-color:var(--lime);box-shadow:0 10px 30px rgba(0,0,0,.5);z-index:20}
.sel-barra[hidden]{display:none}
.combo select{width:100%}.combo input[hidden]{display:none}.combo input:not([hidden]){margin-top:8px}

.cert-box{border-color:#5C4A12;background:#1B1708;margin-bottom:14px}

/* ---------- capa do curso e miniaturas das aulas ---------- */
.curso-capa{margin:-22px -22px 4px;aspect-ratio:16/7;overflow:hidden;border-radius:13px 13px 0 0;background:#111118}
.curso-capa img{width:100%;height:100%;object-fit:cover;display:block}
.curso-banner{position:relative;margin:0 0 18px;border-radius:16px;overflow:hidden;aspect-ratio:16/5;max-height:340px;background:linear-gradient(135deg,var(--cor,#BEF934) 0%,#0F0F14 85%);border:1px solid var(--line)}
.curso-banner img{width:100%;height:100%;object-fit:cover;display:block}
.capa-prev{border:1px dashed var(--line);border-radius:10px;overflow:hidden;aspect-ratio:16/6;display:flex;align-items:center;justify-content:center;background:#111118}
.capa-prev img{width:100%;height:100%;object-fit:cover;display:block}
.thumb{position:relative;flex:0 0 auto;width:124px;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#18181F;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb-ico{font-size:24px;color:#4A4A58}
.thumb-t{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.78);color:#fff;font-size:11px;font-weight:700;border-radius:4px;padding:1px 5px;font-variant-numeric:tabular-nums}
@media (max-width:620px){.thumb{width:92px}.curso-banner{aspect-ratio:16/8}}

/* ---------- lista lateral da aula: módulos bem separados ---------- */
.lista-lat{padding:14px}
.lat-curso{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:2px 4px 12px}
.lat-mod{border:1px solid var(--line);border-radius:12px;background:#0F0F14;margin-bottom:12px;overflow:hidden}
.lat-mod:last-child{margin-bottom:0}
.lat-mod.atual{border-color:#4A6B1C}
.lat-head{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;background:#17171F;border-bottom:1px solid transparent;user-select:none}
.lat-head::-webkit-details-marker{display:none}
.lat-mod[open] .lat-head{border-bottom-color:var(--line)}
.lat-mod.atual .lat-head{background:#1B2210}
.lat-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lat-t b{font-family:var(--font-display);font-size:13.5px;line-height:1.3}
.lat-t small{font-size:11.5px;color:var(--muted)}
.lat-seta{color:var(--muted);font-size:13px;transition:transform .15s}
.lat-mod:not([open]) .lat-seta{transform:rotate(-90deg)}
.lat-aulas{padding:4px 12px 6px}
.lat-aulas a.aula-l{padding:8px 8px;margin:0 -8px;border-radius:8px;border-bottom:1px solid #1C1C24}
.lat-aulas a.aula-l:last-child{border-bottom:0}
.lat-aulas a.aula-l.cur{background:var(--lime-soft);border-bottom-color:transparent}
.lat-aulas a.aula-l.cur b{color:var(--lime)}
.lat-aulas a.aula-l:hover{background:#17171F}

.nav-badge{margin-left:auto;background:var(--lime);color:#0A0A0A;border-radius:99px;font-size:11px;font-weight:800;padding:1px 7px}.nav-badge[hidden]{display:none}

/* campo de senha com olho dentro + prazos por curso */
.senha-linha{display:flex;gap:10px;flex-wrap:wrap}
.senha-campo{position:relative;flex:1 1 240px;min-width:0}
.senha-campo input{padding-right:46px}
.senha-campo .olho{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:0;border-radius:8px;color:var(--muted);cursor:pointer;padding:0}
.senha-campo .olho:hover{color:var(--lime)}
.senha-campo .olho svg{width:18px;height:18px}
.btn-ic{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px}
.btn-ic svg{width:16px;height:16px}
.cursos-chk{max-height:320px}
.curso-topo{display:flex;align-items:center;gap:10px}
.curso-topo .chk{flex:1;min-width:0;flex-wrap:wrap}
.rel{flex:0 0 auto;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:9px;padding:0;cursor:pointer;color:#6B6B76}
.rel svg{width:18px;height:18px}
.rel[hidden],.rel-txt[hidden]{display:none}
.rel:hover{background:var(--surface-2)}
.rel[aria-expanded=true]{border-color:currentColor}
.rel[data-st=ativo],.rel-txt[data-st=ativo]{color:var(--lime)}
.rel[data-st=venceu],.rel-txt[data-st=venceu]{color:#FF6B6B}
.rel-txt{font-size:12px;color:#6B6B76;white-space:nowrap}
.curso-prazo .btn-sm{padding:6px 10px;font-size:12px}
.curso-prazo .row input{padding:8px 10px}
.curso-linha{border-bottom:1px solid var(--line);padding-bottom:8px}
.curso-linha:last-child{border-bottom:0;padding-bottom:0}
.curso-prazo{margin:8px 0 2px 26px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.curso-prazo[hidden]{display:none}
.curso-prazo label{font-size:11px}
.det-conta{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.det-conta summary{cursor:pointer;font-weight:600;font-size:13px}
.curso-prazo .btn.on,.det-conta .btn.on{background:var(--lime-soft);border-color:var(--lime);color:var(--lime)}
.curso-topo{cursor:default}.curso-topo .chk{cursor:inherit}.curso-topo:has(input:checked){cursor:pointer}.curso-topo input{cursor:pointer}
