:root{
  --charcoal:#1E1B2E;
  --charcoal-soft:#2E2A42;
  --gold:#D4A537;
  --gold-deep:#B8862E;
  --cream:#FBF6F1;
  --ink-soft:#6B6478;
  --berry:#7A2E4A;
  --danger:#B4392E;
  --ok:#3B8A5A;
}
*{box-sizing:border-box;}
body{
  margin:0;font-family:'Poppins',Arial,sans-serif;
  background:var(--cream);color:var(--charcoal);
}
a{color:inherit;}
.container{max-width:1080px;margin:0 auto;padding:0 24px;}
.topbar{
  background:var(--charcoal);color:var(--cream);
  padding:16px 0;
}
.topbar .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:12px;}
.topbar .brand{font-weight:700;font-size:19px;color:var(--cream);text-decoration:none;}
.topbar .brand b{color:var(--gold);}
.topbar nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.topbar nav .greet{color:rgba(251,246,241,0.65);font-size:13px;width:100%;margin-bottom:2px;}
.topbar nav a{
  color:rgba(251,246,241,0.9);text-decoration:none;font-size:13px;
  background:rgba(251,246,241,0.08);border:1px solid rgba(251,246,241,0.14);
  border-radius:999px;padding:7px 13px;white-space:nowrap;
}
.topbar nav a:hover{color:var(--charcoal);background:var(--gold);border-color:var(--gold);}
.topbar nav a.sair{background:none;border:none;padding:7px 4px;color:rgba(251,246,241,0.55);}
.topbar nav a.sair:hover{color:var(--gold);background:none;}
@media (max-width:480px){
  .topbar .container{flex-direction:column;align-items:flex-start;}
  .topbar nav{width:100%;}
  .topbar nav .greet{width:auto;margin-bottom:0;margin-right:auto;}
  .topbar nav a{flex:0 0 auto;}
}

.card-box{
  background:#fff;border-radius:18px;padding:32px;
  box-shadow:0 10px 30px -14px rgba(30,27,46,0.15);
}
.auth-wrap{
  min-height:80vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;
}
.auth-box{max-width:420px;width:100%;}
.auth-box h1{font-size:23px;margin-bottom:6px;}
.auth-box p.sub{color:var(--ink-soft);font-size:14.5px;margin-bottom:26px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;}
.field input{
  width:100%;padding:12px 14px;border-radius:10px;border:1px solid #ddd;
  font-size:15px;font-family:inherit;
}
.field input:focus{outline:2px solid var(--gold);border-color:var(--gold);}
.btn{
  display:inline-block;padding:13px 24px;border-radius:10px;font-weight:600;
  text-decoration:none;text-align:center;border:none;cursor:pointer;font-size:15px;font-family:inherit;
}
.btn-primary{background:var(--gold-deep);color:#fff;width:100%;}
.btn-primary:hover{background:var(--gold);}
.btn-outline{background:transparent;border:1.5px solid var(--charcoal);color:var(--charcoal);}
.btn-sm{padding:8px 16px;font-size:13.5px;}
.msg-error{background:#fdeceb;color:var(--danger);padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:16px;}
.msg-ok{background:#eaf6ee;color:var(--ok);padding:12px 14px;border-radius:10px;font-size:14px;margin-bottom:16px;}

.dash-head{padding:36px 0 8px;}
.dash-head h1{font-size:26px;margin:0 0 4px;}
.dash-head p{color:var(--ink-soft);margin:0;}

.course-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:22px;padding:26px 0 60px;
}
.course-card{
  background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:0 10px 26px -16px rgba(30,27,46,0.18);
  display:flex;flex-direction:column;position:relative;
}
.course-card .thumb{
  height:150px;background:linear-gradient(135deg,var(--charcoal),var(--charcoal-soft));
  display:flex;align-items:center;justify-content:center;color:var(--gold);
}
.course-card.locked .thumb{filter:grayscale(0.4);opacity:0.85;}
.course-card .lock-badge{
  position:absolute;top:12px;right:12px;background:rgba(30,27,46,0.85);
  color:var(--cream);border-radius:50%;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;
}
.course-card .body{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1;}
.course-card h3{font-size:16.5px;margin:0 0 8px;}
.course-card p{font-size:13.5px;color:var(--ink-soft);margin:0 0 14px;flex:1;}
.progress-bar{background:#eee;border-radius:20px;height:8px;overflow:hidden;margin-bottom:8px;}
.progress-bar span{display:block;height:100%;background:var(--gold-deep);}
.progress-label{font-size:12px;color:var(--ink-soft);margin-bottom:14px;}
.price-tag{font-size:19px;font-weight:700;color:var(--gold-deep);margin-bottom:14px;}
.price-tag small{font-size:12.5px;color:var(--ink-soft);font-weight:400;display:block;text-decoration:line-through;}

.lesson-layout{display:grid;grid-template-columns:280px 1fr;gap:0;min-height:80vh;}
.lesson-sidebar{background:var(--charcoal);color:var(--cream);padding:22px 16px;overflow-y:auto;}
.lesson-sidebar h4{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--gold);margin:18px 0 8px 8px;}
.lesson-sidebar a{
  display:flex;align-items:center;gap:10px;padding:10px 8px;border-radius:8px;
  color:rgba(251,246,241,0.82);text-decoration:none;font-size:13.5px;
}
.lesson-sidebar a.active{background:var(--charcoal-soft);color:var(--cream);font-weight:600;}
.lesson-sidebar a .chk{width:16px;height:16px;border-radius:50%;border:1.5px solid rgba(251,246,241,0.4);flex-shrink:0;}
.lesson-sidebar a.done .chk{background:var(--gold);border-color:var(--gold);}
.lesson-main{padding:30px 40px;max-width:820px;}
.lesson-main video, .lesson-main iframe{width:100%;aspect-ratio:16/9;border-radius:14px;border:none;background:#000;}
.lesson-main h2{margin:22px 0 10px;}
.lesson-main .desc{color:var(--ink-soft);line-height:1.6;margin-bottom:22px;}

@media (max-width:900px){
  .lesson-layout{display:block;min-height:0;}
  .lesson-sidebar{max-height:280px;padding:16px 14px;}
  .lesson-main{padding:20px 16px;max-width:100%;}
}

.badge-erro{background:#fdeceb;color:var(--danger);padding:3px 10px;border-radius:20px;font-size:12px;}
.badge-ok{background:#eaf6ee;color:var(--ok);padding:3px 10px;border-radius:20px;font-size:12px;}

table.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;}
table.admin-table th, table.admin-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #eee;font-size:14px;}
table.admin-table th{background:var(--charcoal);color:var(--cream);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.5px;}
.admin-wrap{padding:30px 0 60px;}
.admin-nav{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap;}
.admin-nav a{padding:9px 16px;border-radius:20px;background:#fff;text-decoration:none;font-size:13.5px;border:1px solid #eee;}
.admin-nav a.active{background:var(--charcoal);color:var(--cream);}
form.admin-form{background:#fff;border-radius:16px;padding:24px;margin-bottom:24px;}
form.admin-form .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;}
@media (max-width:600px){ form.admin-form .row{grid-template-columns:1fr;} }
form.admin-form textarea{min-height:90px;resize:vertical;}
