:root{
  --primary:#1F6F5C;
  --primary-dark:#123D33;
  --gold:#B6862C;
  --lavender:#5A5FA8;
  --text-main:#17251F;
  --text-soft:#526059;
  --tint-green:#E8F2EE;
  --tint-gold:#FBF3E1;
  --border:#E1E9E5;
  --bg:#F7FAF8;
  --card:#FFFFFF;
  --font-head:"Cambria","Georgia",serif;
  --font-body:"Calibri","Segoe UI",Arial,sans-serif;
  --radius:14px;
  --shadow:0 1px 2px rgba(18,61,51,0.04),0 8px 24px rgba(18,61,51,0.06);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text-main);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--primary);text-decoration:none;}
a:hover{text-decoration:underline;}

/* ---- Top bar ---- */
.topbar{
  position:sticky;top:0;z-index:40;
  background:var(--primary-dark);
  color:#fff;
  padding:0 24px;
  height:56px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 10px rgba(0,0,0,0.12);
}
.topbar .brand{
  font-family:var(--font-head);
  font-weight:700;
  font-size:15px;
  letter-spacing:.2px;
  display:flex;align-items:center;gap:10px;
}
.topbar .brand .mark{
  width:26px;height:26px;border-radius:7px;
  background:linear-gradient(135deg,var(--gold),#8f6a22);
  display:inline-block;
}
.topbar .crumbs{font-size:12.5px;color:#CFE3DC;}
.topbar .crumbs a{color:#CFE3DC;}
.topbar .crumbs a:hover{color:#fff;}

/* ---- Shell layout ---- */
.shell{
  max-width:1180px;
  margin:0 auto;
  padding:28px 20px 80px;
  display:grid;
  grid-template-columns:250px 1fr;
  gap:28px;
  align-items:start;
}
@media (max-width: 900px){
  .shell{grid-template-columns:1fr;}
  .sidebar{order:2;}
}

/* ---- Sidebar: module rail ---- */
.sidebar{
  position:sticky;top:80px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:16px;
  box-shadow:var(--shadow);
}
.sidebar h4{
  font-family:var(--font-head);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--text-soft);
  margin:2px 0 12px;
}
.rail{list-style:none;margin:0;padding:0;position:relative;}
.rail li{position:relative;padding:0 0 14px 26px;}
.rail li:last-child{padding-bottom:0;}
.rail .dot{
  position:absolute;left:0;top:2px;
  width:18px;height:18px;border-radius:50%;
  background:var(--tint-green);border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:700;color:var(--text-soft);
}
.rail li.done .dot{background:var(--primary);border-color:var(--primary);color:#fff;}
.rail li.current .dot{background:var(--gold);border-color:var(--gold);color:#fff;}
.rail li:not(:last-child)::after{
  content:"";position:absolute;left:9px;top:20px;bottom:-14px;
  width:2px;background:var(--border);
}
.rail li.done:not(:last-child)::after{background:var(--primary);}
.rail a{font-size:13px;color:var(--text-main);display:block;}
.rail li.current a{color:var(--primary-dark);font-weight:700;}
.rail .jenis{font-size:10.5px;color:var(--text-soft);}

.sidebar .course-link{
  display:block;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--primary);font-weight:600;
}

/* ---- Main card ---- */
.doc{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:40px 44px 48px;
}
@media (max-width:600px){ .doc{padding:26px 20px 34px;} }

.eyebrow{font-family:var(--font-head);color:var(--text-soft);font-size:14px;margin:0 0 6px;}
.title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border-bottom:3px solid var(--gold);padding-bottom:18px;margin-bottom:8px;}
h1.doc-title{
  font-family:var(--font-head);color:var(--primary-dark);
  font-size:30px;line-height:1.25;margin:0;font-weight:700;
}
.badge{
  display:inline-block;padding:5px 12px;border-radius:999px;
  font-size:11.5px;font-weight:700;letter-spacing:.03em;white-space:nowrap;
  border:1px solid transparent;
}
.badge.asli{background:var(--tint-green);color:var(--primary-dark);border-color:var(--primary);}
.badge.sintesis{background:var(--tint-gold);color:#5b430f;border-color:var(--gold);}

/* ---- In-page quick nav ---- */
.quicknav{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 6px;}
.quicknav a{
  font-family:var(--font-head);font-size:12.5px;font-weight:700;
  background:var(--tint-green);color:var(--primary-dark);
  border:1px solid var(--border);border-radius:8px;padding:6px 11px;
}
.quicknav a:hover{background:var(--primary);color:#fff;text-decoration:none;}

/* ---- Sections ---- */
section.block{margin-top:34px;}
h2.sec{
  font-family:var(--font-head);color:var(--primary);font-weight:700;
  font-size:19px;border-bottom:2px solid var(--primary);
  padding-bottom:8px;margin:0 0 16px;
  scroll-margin-top:72px;
}
h3.sub{
  font-family:var(--font-head);color:var(--primary-dark);font-weight:700;
  font-size:15.5px;margin:20px 0 8px;
}
.tgroup{margin-bottom:14px;}
.tgroup .label{font-family:var(--font-head);font-weight:700;color:var(--primary-dark);font-size:14.5px;margin-bottom:6px;}
p{margin:0 0 14px;font-size:15px;color:var(--text-main);}
ul.bullets{margin:0 0 14px;padding-left:22px;}
ul.bullets li{margin-bottom:6px;font-size:15px;}

.highlight{
  background:var(--tint-green);border:1px solid var(--border);
  border-left:4px solid var(--primary);
  border-radius:10px;padding:14px 18px;margin:16px 0;font-size:14.5px;
}
.highlight.gold{background:var(--tint-gold);border-left-color:var(--gold);}

table.datatable{width:100%;border-collapse:collapse;margin:14px 0 18px;font-size:14px;
  border-radius:10px;overflow:hidden;border:1px solid var(--border);}
table.datatable th{background:var(--primary);color:#fff;font-family:var(--font-head);
  text-align:left;padding:10px 12px;font-weight:700;font-size:13px;}
table.datatable td{padding:9px 12px;border-top:1px solid var(--border);}
table.datatable tr:nth-child(even) td{background:var(--tint-green);}

.reflist{margin:0;padding-left:22px;font-size:13.5px;color:var(--text-soft);}
.reflist li{margin-bottom:10px;}

.docfooter{
  margin-top:40px;padding-top:16px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;font-size:12px;color:var(--text-soft);
}
.pagenav{display:flex;justify-content:space-between;margin-top:24px;gap:12px;}
.pagenav a{
  border:1px solid var(--border);border-radius:10px;padding:10px 16px;
  font-size:13.5px;font-weight:600;flex:1;
}
.pagenav a.next{text-align:right;}
.pagenav a:hover{background:var(--tint-green);text-decoration:none;}

/* index page */
.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin-top:18px;}
.course-card{
  background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;
  box-shadow:var(--shadow);
}
.course-card h3{font-family:var(--font-head);color:var(--primary-dark);margin:0 0 6px;font-size:16px;}
.course-card p{font-size:13px;color:var(--text-soft);margin:0 0 10px;}
.hero{
  background:linear-gradient(135deg,var(--primary-dark),var(--primary));
  color:#fff;border-radius:var(--radius);padding:36px 40px;box-shadow:var(--shadow);
}
.hero h1{font-family:var(--font-head);font-size:28px;margin:0 0 10px;}
.hero p{color:#DCEFE8;max-width:640px;margin:0;}
.mk-index-list{list-style:none;margin:14px 0 0;padding:0;}
.mk-index-list li{border-top:1px solid var(--border);padding:10px 0;display:flex;justify-content:space-between;font-size:14px;}
.mk-index-list li:first-child{border-top:none;}
