:root{
  --navy:#0b1a33; --navy-2:#0c1f3d; --gold:#E7B84B; --gold-dk:#b8860b;
  --ink:#0e1b2e; --muted:#5b6470; --line:#e6e9ef; --bg:#f4f6fb; --card:#ffffff;
  --ok:#1a9b6c; --bad:#c0392b; --radius:14px; --sh:0 10px 30px rgba(11,26,51,.10);
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans Arabic",sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.55}
body[dir="rtl"]{font-family:"Noto Sans Arabic",var(--sans)}
button{font-family:inherit;cursor:pointer}
img{max-width:100%}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em}
.brand .mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--gold),#f3d488);color:var(--navy);display:grid;place-items:center;font-weight:800}
.brand small{display:block;font-weight:500;color:#aab6cc;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.topbar .spacer{flex:1}
.langswitch{display:flex;gap:4px;background:rgba(255,255,255,.08);padding:4px;border-radius:999px}
.langswitch button{border:0;background:transparent;color:#cdd6e6;padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px}
.langswitch button.active{background:var(--gold);color:var(--navy)}

/* ---------- layout ---------- */
.layout{display:grid;grid-template-columns:320px 1fr;min-height:calc(100vh - 56px)}
.sidebar{background:var(--card);border-inline-end:1px solid var(--line);padding:18px;overflow:auto}
.main{padding:28px clamp(18px,4vw,56px);max-width:900px;margin:0 auto;width:100%}
@media(max-width:820px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:56px 0 auto 0;max-height:70vh;transform:translateY(-120%);transition:.25s;z-index:15;box-shadow:var(--sh)}.sidebar.open{transform:none}}

.course-meta h1{font-size:20px;margin:0 0 2px}
.course-meta .sub{color:var(--muted);font-size:13px;margin-bottom:14px}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:10px 0 4px}
.progress > i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-dk),var(--gold));width:0;transition:.4s}
.progress-txt{font-size:12px;color:var(--muted)}

.mod{margin-top:14px}
.mod > .mhead{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;padding:8px 6px;border-radius:8px}
.mod > .mhead .num{width:22px;height:22px;border-radius:6px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12px}
.mod.done > .mhead .num{background:var(--ok)}
.slidelist{list-style:none;margin:4px 0 0;padding:0 0 0 6px}
.slidelist li{margin:2px 0}
.slidelist button{width:100%;text-align:start;border:0;background:transparent;color:var(--ink);padding:7px 10px;border-radius:8px;font-size:13px;display:flex;gap:8px;align-items:center}
.slidelist button:hover{background:#f0f3fa}
.slidelist button.active{background:#eef3ff;color:var(--navy);font-weight:600}
.slidelist button[disabled]{color:#aab1bd;cursor:not-allowed}
.slidelist .ic{width:16px;text-align:center;flex:none}
.q-row button .ic{color:var(--gold-dk)}

/* ---------- slide card ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh);padding:clamp(22px,4vw,44px)}
.kicker{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk);font-weight:700;margin-bottom:8px}
.card h2{font-size:clamp(22px,3.2vw,30px);margin:.1em 0 .35em;line-height:1.2}
.onscreen{font-size:18px;color:var(--ink);background:#faf7ee;border-inline-start:4px solid var(--gold);padding:14px 16px;border-radius:10px;margin:16px 0}
.narration{color:#2c3646;font-size:16px}
.slide-type-hero .card{background:linear-gradient(180deg,#0b1a33,#122a4d);color:#fff;border:0}
.slide-type-hero h2,.slide-type-hero .narration{color:#fff}
.slide-type-hero .onscreen{background:rgba(255,255,255,.08);color:#fff;border-color:var(--gold)}
.slide-type-hero .kicker{color:var(--gold)}
/* scenario = applied practice; summary = recap; reflection = pause & think */
.slide-type-scenario .card{border-inline-start:5px solid #b87333}
.slide-type-scenario .onscreen{background:#fbf1e7;border-color:#b87333}
.slide-type-summary .card{border-inline-start:5px solid var(--ok);background:linear-gradient(180deg,#ffffff,#f5fbf8)}
.slide-type-summary .onscreen{background:#eafaf3;border-color:var(--ok)}
.slide-type-reflection .card{border-inline-start:5px solid #6b7fd7;background:linear-gradient(180deg,#ffffff,#f6f7fe)}
.slide-type-reflection .onscreen{background:#eef1fe;border-color:#6b7fd7}
.badge-type{float:inline-end;font-size:11px;color:var(--muted);border:1px solid var(--line);padding:3px 8px;border-radius:99px;text-transform:capitalize}
body[dir="rtl"] .badge-type{float:inline-end}

.media{margin:18px 0;border-radius:12px;overflow:hidden;background:#000}
.media video{display:block;width:100%}

/* ---------- controls ---------- */
.controls{display:flex;gap:12px;align-items:center;margin-top:22px}
.btn{border:0;border-radius:10px;padding:12px 20px;font-weight:700;font-size:15px}
.btn.primary{background:var(--gold);color:var(--navy)}
.btn.primary:hover{filter:brightness(1.03)}
.btn.ghost{background:#eef1f7;color:var(--navy)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.controls .spacer{flex:1}

/* ---------- quiz / exam ---------- */
.quiz .q{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:14px 0;background:var(--card)}
.quiz .q .prompt{font-weight:600;margin-bottom:10px}
.opt{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:7px 0;background:#fff}
.opt:hover{border-color:var(--gold)}
.opt input{margin-top:3px}
.opt.correct{border-color:var(--ok);background:#eafaf3}
.opt.wrong{border-color:var(--bad);background:#fdecea}
.tf{display:flex;gap:10px}
.tf .btn{flex:1}
.match-row{display:flex;gap:10px;align-items:center;margin:8px 0}
.match-row .left{flex:1;font-weight:600}
.match-row select{flex:1;padding:9px;border-radius:8px;border:1px solid var(--line)}
.rationale{margin-top:8px;font-size:14px;color:var(--muted);background:#f7f9fc;border-radius:8px;padding:9px 12px;display:none}
.rationale.show{display:block}
.rationale.ok{color:#127a54}.rationale.no{color:#a5281b}
.scorebar{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:16px 0}
.scorebar .big{font-size:30px;font-weight:800}
.pass{color:var(--ok)}.fail{color:var(--bad)}

/* ---------- certificate ---------- */
.cert-wrap{display:grid;place-items:center;padding:10px 0}
.credential{width:min(1000px,100%)}
.credential-svg{width:100%;height:auto;display:block;border-radius:16px;box-shadow:var(--sh)}
@media print{.credential{width:100%}.credential-svg{box-shadow:none}}
.cert{width:min(1000px,100%);background:#fff;border:14px solid #0c1f3d;outline:2px solid #E7B84B;outline-offset:-24px;padding:clamp(36px,6vw,64px) clamp(28px,7vw,72px);text-align:center;box-shadow:var(--sh);font-family:Georgia,"Times New Roman",serif;color:#0e1b2e}
.cert .k{letter-spacing:.35em;text-transform:uppercase;color:#b8860b;font-weight:700;font-size:15px}
.cert h1{font-size:46px;margin:18px 0 6px;font-family:Georgia,serif}
.cert .name{font-size:40px;margin:26px 0 6px;color:#0b1a33;font-family:Georgia,serif}
.cert .rule{width:260px;height:2px;background:var(--gold);margin:8px auto 18px}
.cert .title{font-size:22px;margin:4px 0 18px}
.cert .meta{color:var(--muted);font-size:14px}
.cert .code{font-family:ui-monospace,Menlo,monospace;background:#f3efe6;padding:.15em .5em;border-radius:6px}
@media print{
  @page{size:A4 landscape;margin:12mm}
  .topbar,.sidebar,.controls,.no-print{display:none!important}
  .layout{display:block}.main{max-width:none;padding:0}
  .card{box-shadow:none;border:0}
  .cert{border-width:12px;box-shadow:none;page-break-inside:avoid}
  .cert-wrap{padding:0}
}

/* ---------- course intro / overview ---------- */
.intro{max-width:820px;margin:0 auto}
.intro .hero-card{background:linear-gradient(140deg,#0b1a33,#163455);color:#fff;border-radius:var(--radius);padding:clamp(26px,5vw,48px);box-shadow:var(--sh)}
.intro .eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:700;font-size:13px}
.intro h1{font-size:clamp(28px,5vw,44px);margin:10px 0 8px;line-height:1.1}
.intro .blurb{color:#cdd6e6;font-size:17px;max-width:60ch}
.intro .stats{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.intro .stat{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 14px;font-size:14px}
.intro .stat b{display:block;font-size:22px;color:var(--gold)}
.intro .cta{margin-top:8px}
.intro .btn.primary{font-size:16px;padding:14px 26px}
.syllabus{margin:26px auto 0;max-width:820px}
.syllabus h2{font-size:18px;margin:0 0 12px}
.syllabus ol{list-style:none;counter-reset:m;padding:0;margin:0;display:grid;gap:8px}
.syllabus li{counter-increment:m;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;gap:12px;align-items:center;font-weight:600}
.syllabus li::before{content:counter(m);width:26px;height:26px;flex:none;border-radius:7px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:13px}

.hidden{display:none!important}
.center{text-align:center}
.lead{font-size:17px;color:var(--muted)}
.name-input{width:100%;max-width:420px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);font-size:16px;margin:10px 0}
.menu-toggle{display:none;border:0;background:rgba(255,255,255,.1);color:#fff;border-radius:8px;padding:8px 12px;font-size:18px}
@media(max-width:820px){.menu-toggle{display:block}}
.pill{display:inline-block;background:#eef3ff;color:var(--navy);border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}
