:root{
  --ln-primary:#0d5c46;      /* hijau tua Nur Ihsan */
  --ln-primary-2:#127a5c;
  --ln-accent:#c8a13a;       /* emas */
  --ln-bg:#f4f6f5;
  --ln-dark:#0b3a2d;
}
body{background:var(--ln-bg);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#22302b;}
.ln-navbar{background:linear-gradient(90deg,var(--ln-dark),var(--ln-primary));box-shadow:0 2px 10px rgba(0,0,0,.12);}
.ln-navbar .nav-link{border-radius:.5rem;padding:.4rem .8rem !important;transition:.15s;}
.ln-navbar .nav-link:hover,.ln-navbar .nav-link.active{background:rgba(255,255,255,.14);}
.ln-logo{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;background:var(--ln-accent);color:#3a2c00;border-radius:9px;font-size:1.1rem;}
.ln-avatar{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;background:var(--ln-accent);color:#3a2c00;border-radius:50%;font-weight:700;}
.ln-main{min-height:calc(100vh - 130px);}
.ln-footer{background:#fff;border-top:1px solid #e5e9e7;}
.card{border:none;border-radius:14px;box-shadow:0 1px 3px rgba(16,40,32,.07);}
.card-header{background:#fff;border-bottom:1px solid #eef1f0;font-weight:600;border-radius:14px 14px 0 0 !important;}
.btn-primary{background:var(--ln-primary);border-color:var(--ln-primary);}
.btn-primary:hover{background:var(--ln-primary-2);border-color:var(--ln-primary-2);}
.btn-outline-primary{color:var(--ln-primary);border-color:var(--ln-primary);}
.btn-outline-primary:hover{background:var(--ln-primary);border-color:var(--ln-primary);}
.text-primary{color:var(--ln-primary) !important;}
.badge.bg-primary{background:var(--ln-primary) !important;}
a{color:var(--ln-primary);}
.stat-card{border-left:5px solid var(--ln-primary);}
.stat-card .num{font-size:2rem;font-weight:800;line-height:1;color:var(--ln-primary);}
.stat-card .lbl{color:#6b7a74;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;}
.ln-auth{min-height:100vh;display:flex;align-items:center;background:linear-gradient(135deg,var(--ln-dark),var(--ln-primary) 60%,var(--ln-primary-2));}
.ln-auth .card{max-width:430px;margin:auto;border-radius:18px;overflow:hidden;}
.ln-auth .card-top{background:var(--ln-primary);color:#fff;padding:1.8rem;text-align:center;}
.materi-body{font-size:1.02rem;line-height:1.75;}
.materi-body h3{color:var(--ln-primary);margin-top:1.6rem;font-size:1.25rem;}
.materi-body h4{color:var(--ln-primary-2);margin-top:1.2rem;font-size:1.08rem;}
.materi-body ul,.materi-body ol{margin-bottom:1rem;}
.materi-body blockquote{border-left:4px solid var(--ln-accent);padding:.4rem 1rem;background:#fbf7ea;margin:1rem 0;font-style:italic;}
.level-pill{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.progress{background:#e3e9e6;border-radius:20px;}
.progress-bar{background:var(--ln-primary);}
.quiz-opt{display:block;border:1.5px solid #dfe5e2;border-radius:10px;padding:.8rem 1rem;margin-bottom:.6rem;cursor:pointer;transition:.12s;}
.quiz-opt:hover{border-color:var(--ln-primary);background:#f0f7f4;}
.quiz-opt input{margin-right:.6rem;}
.quiz-opt.selected{border-color:var(--ln-primary);background:#e7f2ed;}
.timeline-step{position:relative;padding-left:2rem;padding-bottom:1.2rem;border-left:2px solid #dfe5e2;margin-left:.5rem;}
.timeline-step:last-child{border-left-color:transparent;}
.timeline-step .dot{position:absolute;left:-9px;top:2px;width:16px;height:16px;border-radius:50%;background:#cdd6d1;}
.timeline-step.done .dot{background:var(--ln-primary);}
.timeline-step.active .dot{background:var(--ln-accent);box-shadow:0 0 0 4px rgba(200,161,58,.25);}
@media print{.ln-navbar,.ln-footer,.no-print{display:none !important;}body{background:#fff;}}
.cert{border:10px solid var(--ln-primary);padding:2.5rem;text-align:center;background:#fff;position:relative;}
.cert:before{content:"";position:absolute;inset:14px;border:2px solid var(--ln-accent);pointer-events:none;}
.cert h1{color:var(--ln-primary);letter-spacing:.05em;}
.cert .nama{font-size:2rem;font-weight:800;border-bottom:2px dotted #bbb;display:inline-block;padding:.2rem 2rem;margin:1rem 0;}
