@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap');
:root{
  --brand:#065A82; --brand2:#044a6b; --brand-light:#e6f2f8;
  --ok:#16a34a; --ok-bg:#f0fdf4; --ok-border:#86efac;
  --err:#dc2626; --err-bg:#fef2f2; --err-border:#fca5a5;
  --bg:#f8fafc; --card:#fff; --border:#e2e8f0;
  --radius:14px; --text:#1e293b; --muted:#64748b;
  --nav-h:58px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6;color:var(--text);background:var(--bg)}
a{color:var(--brand);text-decoration:none}

/* ── NAV ── */
#top-nav{position:sticky;top:0;z-index:300;background:var(--brand);height:var(--nav-h);display:flex;align-items:center;padding:0 1.5rem;gap:1rem;border-bottom:3px solid var(--brand2)}
.nav-logo-img{height:36px;width:auto;display:block}
#top-nav .spacer{flex:1}
#top-nav .progress-wrap{display:flex;align-items:center;gap:8px}
#top-nav .progress-wrap span{font-size:12px;color:rgba(255,255,255,.75);white-space:nowrap}
#top-nav .prog-bar{width:120px;height:6px;background:rgba(255,255,255,.25);border-radius:3px;overflow:hidden}
#top-nav .prog-fill{height:100%;background:#fff;border-radius:3px;transition:width .4s}

/* ── LAYOUT ── */
.wrap{max-width:780px;margin:0 auto;padding:2.5rem 1.5rem 5rem;display:flex;flex-direction:column;gap:2rem}

/* ── HERO ── */
.hero{background:var(--brand);color:#fff;border-radius:var(--radius);padding:2.5rem 2rem}
.hero-tag{display:inline-block;background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:3px 12px;border-radius:99px;margin-bottom:.8rem;border:1px solid rgba(255,255,255,.35)}
.hero h1{font-size:26px;font-weight:600;line-height:1.3;margin-bottom:.5rem}
.hero p{color:rgba(255,255,255,.8);font-size:15px;margin-bottom:1.5rem}
.hero-chips{display:flex;flex-wrap:wrap;gap:1rem}
.hero-chip{font-size:13px;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:5px}

/* ── SECTION HEADER ── */
.sh{border-left:4px solid var(--brand);padding-left:14px}
.sh h2{font-size:20px;font-weight:600;margin-bottom:3px}
.sh p{font-size:14px;color:var(--muted)}

/* ── PAGE HEADING ── */
.page-heading{font-size:22px;font-weight:600;border-bottom:2px solid var(--border);padding-bottom:.75rem}

/* ── INFO CARD ── */
.info-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}
.info-card p{font-size:15px;line-height:1.7;color:var(--text);margin-bottom:.8rem}
.info-card p:last-child{margin-bottom:0}
.info-card ul,.info-card ol{padding-left:1.3rem;margin-bottom:.8rem}
.info-card li{font-size:15px;line-height:1.7;margin-bottom:3px}
.info-card h3{font-size:16px;font-weight:600;margin-bottom:.5rem}

/* ── CALLOUT ── */
.callout{background:#e6f2f8;border:1px solid #b3d4e8;border-left:4px solid var(--brand);border-radius:8px;padding:12px 16px;font-size:14px;color:#033d5a;line-height:1.6}
.callout strong{color:#022a3e}

/* ── ACCORDION ── */
.accordion{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.ac-item{border-bottom:1px solid var(--border)}
.ac-item:last-child{border-bottom:none}
.ac-btn{width:100%;text-align:left;background:var(--brand);color:#fff;border:none;padding:12px 18px;font-family:inherit;font-size:15px;font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .15s}
.ac-btn:hover,.ac-btn.open{background:var(--brand2)}
.ac-arrow{font-size:11px;transition:transform .2s;flex-shrink:0}
.ac-btn.open .ac-arrow{transform:rotate(180deg)}
.ac-body{display:none;padding:1rem 1.25rem;background:var(--card);font-size:15px;line-height:1.7;color:var(--text)}
.ac-body.open{display:block}
.ac-body p{margin-bottom:.6rem}
.ac-body p:last-child{margin:0}
.ac-body ul{padding-left:1.3rem;margin:.3rem 0 .6rem}
.ac-body li{margin-bottom:3px}

/* ── ROLE GRID ── */
.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.role-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}
.role-tag{display:inline-block;background:var(--brand-light);color:var(--brand2);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:99px;margin-bottom:8px}
.role-card h3{font-size:15px;font-weight:600;margin-bottom:6px}
.role-card p{font-size:14px;color:var(--muted);line-height:1.5}

/* ── OBJ GRID ── */
.obj-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.obj-item{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;gap:10px;align-items:flex-start}
.obj-icon{width:30px;height:30px;border-radius:7px;background:var(--brand-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}
.obj-text{font-size:14px;line-height:1.45}

/* ── QUIZ CARD ── */
.q-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}
.q-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);margin-bottom:5px}
.q-question{font-size:17px;font-weight:500;color:var(--text);margin-bottom:1.1rem;line-height:1.5}
.q-hint{font-size:13px;color:var(--muted);margin-bottom:.9rem}
.q-feedback{margin-top:.9rem;padding:10px 14px;border-radius:8px;font-size:14px;font-weight:500;display:none;gap:8px}
.q-feedback.show{display:flex;align-items:flex-start}
.q-feedback.correct{background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok)}
.q-feedback.wrong{background:var(--err-bg);border:1px solid var(--err-border);color:var(--err)}

/* ── CHOICE LIST ── */
.choice-list{list-style:none;display:flex;flex-direction:column;gap:8px}
.choice-item label{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px solid var(--border);border-radius:9px;cursor:pointer;font-size:15px;transition:border-color .15s,background .15s}
.choice-item label:hover{border-color:var(--brand);background:var(--brand-light)}
.choice-item input{accent-color:var(--brand)}
.choice-item.revealed-correct label{border-color:var(--ok);background:var(--ok-bg)}
.choice-item.revealed-wrong label{border-color:var(--err);background:var(--err-bg)}

/* ── TRUE/FALSE ── */
.tf-row{display:flex;gap:12px}
.tf-btn{flex:1;font-family:inherit;font-size:16px;font-weight:500;padding:14px;border:1.5px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;transition:all .15s;color:var(--text)}
.tf-btn:hover{border-color:var(--brand);background:var(--brand-light)}
.tf-btn.selected{border-color:var(--brand);background:var(--brand-light)}
.tf-btn.correct{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.tf-btn.wrong{border-color:var(--err);background:var(--err-bg);color:var(--err)}

/* ── DRAG & DROP ── */
.drag-source{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:1.1rem;min-height:42px}
.drag-item{padding:7px 14px;background:var(--brand-light);border:1.5px solid var(--brand);color:var(--brand2);border-radius:8px;cursor:grab;font-size:14px;font-weight:500;user-select:none;transition:opacity .15s}
.drag-item:active{cursor:grabbing}
.drag-item.dragging{opacity:.3}
.drop-targets{display:flex;flex-direction:column;gap:10px}
.drop-row{display:flex;align-items:flex-start;gap:12px}
.drop-label{min-width:190px;font-size:14px;font-weight:600;padding-top:10px;line-height:1.4}
.drop-box{flex:1;min-height:46px;border:2px dashed var(--border);border-radius:9px;padding:6px 10px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;transition:border-color .15s,background .15s;background:var(--bg)}
.drop-box.drag-over{border-color:var(--brand);background:var(--brand-light)}
.drop-box.correct{border-color:var(--ok);background:var(--ok-bg);border-style:solid}
.drop-box.wrong{border-color:var(--err);background:var(--err-bg);border-style:solid}

/* ── BUTTONS ── */
.q-btn{font-family:inherit;font-size:14px;font-weight:500;padding:9px 22px;border:none;border-radius:8px;cursor:pointer;background:var(--brand);color:#fff;transition:background .15s,transform .1s;margin-top:1rem;display:inline-block}
.q-btn:hover{background:var(--brand2)}
.q-btn:active{transform:scale(.97)}
.q-btn:disabled{opacity:.4;cursor:default;transform:none}
.btn-outline{background:var(--card);color:var(--text);border:1.5px solid var(--border);border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;padding:9px 22px;cursor:pointer;transition:all .15s;display:inline-block}
.btn-outline:hover{border-color:var(--brand);background:var(--brand-light);color:var(--brand)}

/* ── PAGE NAV ── */
.page-nav{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;gap:12px}
.page-nav a,.page-nav button{font-family:inherit;font-size:14px;font-weight:500;color:var(--brand);text-decoration:none;padding:9px 18px;border:1.5px solid var(--brand);border-radius:8px;background:var(--card);cursor:pointer;transition:all .15s}
.page-nav a:hover,.page-nav button:hover{background:var(--brand-light)}
.page-nav .pg-info{font-size:13px;color:var(--muted)}
.page-nav .next-btn{background:var(--brand);color:#fff;border-color:var(--brand)}
.page-nav .next-btn:hover{background:var(--brand2)}

/* ── COMPLETION PAGE ── */
.completion-hero{background:var(--brand);color:#fff;border-radius:var(--radius);padding:2.5rem 2rem;text-align:center}
.completion-hero .tick-circle{width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.2);border:3px solid rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 1rem}
.completion-hero h1{font-size:26px;font-weight:600;margin-bottom:.5rem}
.completion-hero p{color:rgba(255,255,255,.85);font-size:15px;margin:.3rem 0}

.recap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.recap-card{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--brand);border-radius:10px;padding:1rem 1.1rem}
.recap-card h3{font-size:14px;font-weight:600;margin-bottom:4px;color:var(--brand)}
.recap-card p{font-size:13px;color:var(--muted);line-height:1.45}

.assessment-cta{background:var(--card);border:2px solid var(--brand);border-radius:var(--radius);padding:2rem;text-align:center}
.assessment-cta h2{font-size:20px;font-weight:600;margin-bottom:.75rem;color:var(--brand)}
.assessment-cta p{font-size:15px;color:var(--text);margin-bottom:.5rem;line-height:1.6}
.cta-details{background:var(--brand-light);border-radius:8px;padding:1rem 1.25rem;margin:1rem 0;display:flex;justify-content:center;gap:2.5rem;flex-wrap:wrap}
.cta-detail-item{text-align:center}
.cta-detail-item .num{font-size:26px;font-weight:600;color:var(--brand)}
.cta-detail-item .lbl{font-size:12px;color:var(--muted)}
.cta-warning{font-size:14px;color:var(--brand2);font-weight:600;margin:1rem 0 1.25rem;background:var(--brand-light);border-radius:8px;padding:10px 16px;border:1px solid #b3d4e8}
.assessment-link-btn{display:inline-block;font-family:inherit;font-size:16px;font-weight:600;padding:14px 44px;background:var(--brand);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .15s;text-decoration:none}
.assessment-link-btn:hover{background:var(--brand2)}

/* ── SUMMARY PAGE ── */
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.summary-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.1rem}
.summary-card h3{font-size:14px;font-weight:600;margin-bottom:4px}
.summary-card p{font-size:13px;color:var(--muted);line-height:1.4}

/* ── PRINT ── */
@media print{
  #top-nav,.page-nav,.no-print{display:none!important}
  body{background:#fff}
  .wrap{padding:0}
}
