:root{
  --ink:#0F212C; --ink-2:#16303F; --ink-3:#1E3D4E;
  --paper:#F1EFE7; --surface:#FFFFFF;
  --teal:#0F7D74; --teal-dark:#0A5A53; --teal-tint:#E2F1EE;
  --amber:#E2933C; --amber-dark:#8A5A16; --amber-tint:#FBEEDC;
  --green:#3E9142; --green-dark:#276029; --green-tint:#E7F2E4;
  --red:#C24A3D; --red-tint:#F8E7E4;
  --blue:#2E6F9E; --blue-dark:#1F4E70; --blue-tint:#E7EFF5;
  --purple:#6B5CA5; --purple-dark:#493D74; --purple-tint:#EEECF6;
  --border:#DFD9C9; --text-primary:#16242C; --text-secondary:#5B6B72; --text-muted:#8B9297;
  --font-display:'Space Grotesk', sans-serif; --font-body:'IBM Plex Sans', sans-serif; --font-mono:'IBM Plex Mono', monospace;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--paper);font-family:var(--font-body);color:var(--text-primary);}
a{color:inherit;}

.signal{display:inline-flex;align-items:flex-end;gap:2px;height:14px;flex-shrink:0;}
.signal i{display:block;width:3px;background:#C9C2AE;border-radius:1px;}
.signal i:nth-child(1){height:4px;} .signal i:nth-child(2){height:7px;}
.signal i:nth-child(3){height:10px;} .signal i:nth-child(4){height:14px;}
.signal[data-level="1"] i:nth-child(1){background:var(--red);}
.signal[data-level="2"] i:nth-child(1),.signal[data-level="2"] i:nth-child(2){background:var(--amber);}
.signal[data-level="3"] i:nth-child(1),.signal[data-level="3"] i:nth-child(2),.signal[data-level="3"] i:nth-child(3){background:var(--teal);}
.signal[data-level="4"] i{background:var(--green);}

.hidden{display:none !important;}

/* ---------- LOGIN ---------- */
.login-wrap{display:flex;min-height:100vh;width:100%;}
.login-brand{width:44%;min-width:360px;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:48px 56px;}
.brand-mark{font-family:var(--font-display);font-weight:700;font-size:20px;}
.brand-mark span{color:var(--teal);}
.login-headline{font-family:var(--font-display);font-weight:600;font-size:34px;line-height:1.25;margin:40px 0 16px;}
.login-sub{font-size:15px;line-height:1.6;color:#AEB9BE;max-width:380px;margin:0;}
.login-form-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;}
.login-form{width:100%;max-width:340px;}
.login-form h1{font-family:var(--font-display);font-size:24px;font-weight:600;margin:0 0 6px;}
.login-form p.lead{color:var(--text-secondary);font-size:14px;margin:0 0 32px;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;}
.field input{width:100%;height:44px;border:0.5px solid var(--border);border-radius:8px;padding:0 14px;font-size:14px;font-family:var(--font-body);}
.field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-tint);}
.btn-primary{border:none;border-radius:8px;background:var(--ink);color:#fff;font-family:var(--font-body);font-weight:500;font-size:14px;cursor:pointer;height:46px;padding:0 20px;}
.btn-primary:hover{background:var(--ink-3);}
.btn-primary.full{width:100%;margin-top:8px;}
.btn-primary:disabled{opacity:0.6;cursor:default;}
.login-foot{margin-top:20px;font-size:13px;color:var(--text-muted);text-align:center;}
.form-error{background:var(--red-tint);color:#7A241C;font-size:13px;padding:10px 12px;border-radius:8px;margin-bottom:16px;display:none;}

/* ---------- DASHBOARD ---------- */
.app-wrap{display:flex;width:100%;min-height:100vh;}
.sidebar{width:264px;flex-shrink:0;background:var(--ink);color:#fff;display:flex;flex-direction:column;padding:28px 0;}
.sidebar-brand{font-family:var(--font-display);font-weight:700;font-size:17px;padding:0 24px 24px;border-bottom:0.5px solid #24404E;}
.sidebar-brand span{color:var(--teal);}
.nav-section-label{font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:#7C8A91;padding:20px 24px 8px;}
.nav-list{list-style:none;margin:0;padding:0 12px;flex:1;overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;color:#C4CDD1;font-size:13.5px;}
.nav-item .idx{font-family:var(--font-mono);font-size:11px;color:#5E717A;width:20px;flex-shrink:0;}
.nav-item .name{flex:1;}
.nav-item:hover{background:var(--ink-2);color:#fff;}
.nav-item.active{background:var(--ink-3);color:#fff;}
.sidebar-user{margin:16px 12px 0;padding:14px;border-top:0.5px solid #24404E;display:flex;align-items:center;gap:10px;}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:13px;flex-shrink:0;}
.user-meta p{margin:0;line-height:1.4;}
.user-name{font-size:13.5px;font-weight:500;color:#fff;}
.user-role{font-size:12px;color:#8FA0A8;}
.logout-link{margin-left:auto;font-size:11px;color:#7C8A91;cursor:pointer;text-decoration:underline;background:none;border:none;}

.content{flex:1;padding:36px 44px;overflow-y:auto;}
.content-header h1{font-family:var(--font-display);font-size:26px;font-weight:600;margin:0 0 4px;}
.content-header p{color:var(--text-secondary);font-size:14px;margin:0;}

.panel{background:var(--surface);border:0.5px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:24px;}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:0.5px solid var(--border);}
.panel-head h2{font-family:var(--font-display);font-size:16px;font-weight:600;margin:0;}

.module-row{display:flex;align-items:center;gap:16px;padding:15px 22px;border-bottom:0.5px solid var(--border);cursor:pointer;}
.module-row:last-child{border-bottom:none;}
.module-row.locked{cursor:default;opacity:0.6;}
.module-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;flex-shrink:0;}
.module-num.done{background:var(--green-tint);color:var(--green-dark);}
.module-num.active{background:var(--amber-tint);color:var(--amber-dark);}
.module-num.locked{background:#EEECE3;color:var(--text-muted);}
.module-info{flex:1;min-width:0;}
.module-title{font-size:14px;font-weight:500;margin:0 0 3px;}
.module-sub{font-size:12.5px;color:var(--text-secondary);margin:0;}
.module-badge{font-size:11px;font-weight:500;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.badge-done{background:var(--green-tint);color:var(--green-dark);}
.badge-active{background:var(--amber-tint);color:var(--amber-dark);}
.badge-locked{background:#EEECE3;color:var(--text-muted);}

.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.trilha-card{background:var(--surface);border:0.5px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:14px;cursor:pointer;}
.trilha-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:14px;flex-shrink:0;}
.trilha-card-title{font-size:14.5px;font-weight:500;margin:0 0 4px;line-height:1.35;}
.trilha-card-num{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);}
.trilha-tag{display:inline-block;font-size:10.5px;font-weight:500;padding:3px 9px;border-radius:20px;margin-top:6px;}
.trilha-card-foot{display:flex;align-items:center;justify-content:space-between;border-top:0.5px solid var(--border);padding-top:12px;margin-top:auto;gap:8px;}

.cert-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.cert-card{background:var(--surface);border:0.5px solid var(--border);border-radius:12px;padding:22px 18px;text-align:center;}
.cert-medal{width:56px;height:56px;border-radius:50%;background:var(--amber-tint);display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 14px;}

.tabs{display:flex;gap:4px;background:#fff;border:0.5px solid var(--border);border-radius:9px;padding:3px;margin-bottom:20px;width:fit-content;}
.tab{border:none;background:transparent;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--text-secondary);padding:8px 14px;border-radius:6px;cursor:pointer;}
.tab.active{background:var(--ink);color:#fff;}
.tabpanel{display:none;} .tabpanel.active{display:block;}

/* ---------- AULA ---------- */
.aula-top{display:flex;align-items:center;gap:16px;padding:18px 44px;background:var(--surface);border-bottom:0.5px solid var(--border);}
.aula-back{background:none;border:0.5px solid var(--border);border-radius:8px;width:34px;height:34px;cursor:pointer;font-size:15px;color:var(--text-secondary);}
.aula-top-title h1{font-family:var(--font-display);font-size:17px;font-weight:600;margin:0;}
.aula-top-title p{font-size:12.5px;color:var(--text-secondary);margin:2px 0 0;}
.secure-badge{display:flex;align-items:center;gap:6px;background:var(--green-tint);color:var(--green-dark);font-size:11.5px;font-weight:500;padding:6px 12px;border-radius:20px;margin-left:auto;}
.aula-body{max-width:760px;margin:0 auto;padding:28px 24px 60px;}
.aula-content{background:var(--surface);border:0.5px solid var(--border);border-radius:12px;padding:26px 28px;font-size:14.5px;line-height:1.7;}
.aula-content h2{font-family:var(--font-display);font-size:19px;}
.aula-content blockquote{background:var(--teal-tint);border-left:3px solid var(--teal);margin:16px 0;padding:12px 16px;border-radius:0 8px 8px 0;}

.protected-frame{position:relative;background:#0B1820;border-radius:12px;overflow:hidden;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;user-select:none;}
.watermark-layer{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);pointer-events:none;opacity:0.5;transform:rotate(-18deg) scale(1.3);}
.watermark-layer span{color:#fff;font-family:var(--font-mono);font-size:11px;display:flex;align-items:center;justify-content:center;white-space:nowrap;}

.pdf-viewer-wrap{position:relative;background:#fff;border:0.5px solid var(--border);border-radius:12px;overflow:hidden;}
.pdf-viewer-wrap canvas{width:100%;display:block;}
.pdf-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.pdf-watermark span{transform:rotate(-30deg);font-family:var(--font-mono);font-size:13px;color:rgba(120,110,90,0.35);white-space:nowrap;}

.frame-note{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--text-muted);}
.section-label{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:0.05em;margin:32px 0 12px;}
.doubt-box{display:flex;gap:10px;margin-bottom:16px;}
.doubt-box textarea{flex:1;height:44px;resize:none;border:0.5px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--font-body);font-size:13.5px;}
.doubt-item{display:flex;gap:10px;padding:12px 0;border-bottom:0.5px solid var(--border);}
.doubt-avatar{width:28px;height:28px;border-radius:50%;background:var(--blue-tint);color:var(--blue-dark);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;}
.doubt-name{font-size:13px;font-weight:500;margin:0;}
.doubt-text{font-size:13px;color:var(--text-secondary);margin:2px 0 0;}
.aula-foot{display:flex;justify-content:flex-end;margin-top:24px;gap:10px;}

/* ---------- PROVA ---------- */
.questao-card{background:var(--surface);border:0.5px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:14px;}
.questao-enunciado{font-size:14px;font-weight:500;margin:0 0 12px;}
.alternativa{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;}
.alternativa:hover{background:var(--paper);}
.alternativa input{accent-color:var(--teal);}
.resultado-box{text-align:center;padding:40px 20px;}
.resultado-nota{font-family:var(--font-mono);font-size:44px;font-weight:500;}
.resultado-nota.aprovado{color:var(--green-dark);}
.resultado-nota.reprovado{color:var(--red);}

@media (max-width:820px){
  .login-wrap{flex-direction:column;} .login-brand{width:100%;min-width:0;}
  .app-wrap{flex-direction:column;}
  .sidebar{width:100%;flex-direction:row;align-items:center;padding:12px 16px;}
  .nav-list{display:none;}
  .catalog-grid{grid-template-columns:1fr;} .cert-wall{grid-template-columns:1fr 1fr;}
  .content{padding:20px;}
}
