:root{
  --obsidian:#09090B; --zinc-900:#18181B; --zinc-800:#27272A; --zinc-700:#3F3F46;
  --zinc-600:#52525B; --zinc-500:#71717A; --zinc-400:#A1A1AA; --zinc-300:#D4D4D8;
  --zinc-200:#E4E4E7; --zinc-100:#F4F4F5; --paper:#FAFAFA; --white:#FFFFFF;
  --slate:#94A3B8; --slate-deep:#475569; --green:#10B981; --green-bg:#ECFDF5;
  --red:#EF4444; --red-bg:#FEF2F2;
  --sidebar:280px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:rgba(9,9,11,.10);}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--paper);color:var(--zinc-800);-webkit-font-smoothing:antialiased;line-height:1.65;
  overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
img,svg,table{max-width:100%;}

.sidebar{position:fixed;top:0;left:0;width:var(--sidebar);height:100vh;height:100dvh;background:var(--obsidian);
  color:var(--zinc-300);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:28px 0;z-index:50;}
.brand{padding:0 28px 24px;border-bottom:1px solid var(--zinc-800);margin-bottom:18px;}
.brand .mark{font-size:30px;color:var(--white);line-height:1;}
.brand .name{font-size:15px;font-weight:700;color:var(--white);letter-spacing:3px;margin-top:10px;}
.brand .sub{font-size:10px;color:var(--zinc-500);letter-spacing:3px;margin-top:2px;}
.nav-group{margin:18px 0;}
.nav-group h4{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--slate);
  padding:0 28px;margin-bottom:8px;text-transform:uppercase;}
.nav-group a{display:block;padding:7px 28px;font-size:13.5px;color:var(--zinc-400);
  border-left:2px solid transparent;transition:all .12s;}
.nav-group a:hover{color:var(--white);background:var(--zinc-900);}
.nav-group a.active{color:var(--white);border-left-color:var(--slate);background:var(--zinc-900);font-weight:600;}

.main{margin-left:var(--sidebar);min-height:100vh;}
.topbar{display:none;position:sticky;top:0;z-index:40;background:var(--obsidian);color:var(--white);
  padding:14px 20px;align-items:center;gap:14px;}
.topbar .mark{font-size:20px;}
.topbar .t{font-size:13px;font-weight:700;letter-spacing:2px;}
.hamburger{margin-left:auto;background:none;border:1px solid var(--zinc-700);color:var(--white);
  font-size:18px;width:38px;height:34px;border-radius:4px;cursor:pointer;}
.content{max-width:860px;margin:0 auto;padding:56px 48px 90px;}

.eyebrow{font-size:12px;font-weight:700;letter-spacing:2.5px;color:var(--slate-deep);
  text-transform:uppercase;margin-bottom:14px;}
h1{font-size:40px;font-weight:800;color:var(--obsidian);line-height:1.15;letter-spacing:-.5px;margin-bottom:8px;}
h2{font-size:25px;font-weight:700;color:var(--obsidian);margin:46px 0 14px;letter-spacing:-.2px;}
h3{font-size:18px;font-weight:700;color:var(--obsidian);margin:30px 0 10px;}
p{margin-bottom:16px;color:var(--zinc-700);}
.lead{font-size:19px;color:var(--zinc-600);line-height:1.6;margin:14px 0 26px;}
.rule{height:3px;background:var(--obsidian);width:100%;margin:18px 0 24px;}
ul,ol{margin:0 0 18px 22px;color:var(--zinc-700);}
li{margin-bottom:7px;}
strong{color:var(--obsidian);font-weight:700;}
.muted{color:var(--zinc-600);}

.callout{background:var(--zinc-100);border-left:4px solid var(--slate);padding:18px 22px;
  margin:24px 0;border-radius:0 6px 6px 0;}
.callout.dark{background:var(--obsidian);border-left-color:var(--slate);}
.callout.dark,.callout.dark p{color:var(--zinc-300);}
.callout .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--obsidian);
  text-transform:uppercase;margin-bottom:8px;}
.callout.dark .lbl{color:var(--slate);}
.callout p:last-child{margin-bottom:0;}

.worked{background:var(--white);border:1px solid var(--zinc-200);border-left:4px solid var(--obsidian);
  padding:20px 24px;margin:16px 0 8px;border-radius:0 6px 6px 0;}
.worked ol,.worked ul{margin:10px 0 12px 22px;}
.worked p:last-child{margin-bottom:0;}
.worked table{margin:14px 0;}

/* engineering formula block */
.formula{background:var(--obsidian);color:var(--white);border-radius:6px;
  padding:13px 18px;margin:14px 0;font-size:15px;text-align:center;letter-spacing:.3px;}
.worked .formula{background:var(--zinc-100);color:var(--obsidian);border:1px solid var(--zinc-300);font-weight:600;}

table{width:100%;border-collapse:collapse;margin:22px 0;font-size:14.5px;}
th{background:var(--obsidian);color:var(--white);text-align:left;padding:10px 13px;
  font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
td{padding:10px 13px;border:1px solid var(--zinc-200);color:var(--zinc-700);vertical-align:top;}
tr:nth-child(even) td{background:var(--white);}
td.k{font-weight:700;color:var(--obsidian);background:var(--zinc-100)!important;}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin:24px 0;}
.card{background:var(--white);border:1px solid var(--zinc-200);border-top:3px solid var(--obsidian);
  padding:20px;border-radius:0 0 6px 6px;}
.card .tag{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--slate-deep);text-transform:uppercase;}
.card h4{font-size:16px;font-weight:700;color:var(--obsidian);margin:6px 0 8px;}
.card p{font-size:13.5px;margin:0;color:var(--zinc-600);}
.card.link:hover{border-top-color:var(--slate);box-shadow:0 6px 22px rgba(9,9,11,.08);transition:.15s;}

.objlist{list-style:none;margin:0 0 18px;}
.objlist li{padding-left:26px;position:relative;margin-bottom:9px;}
.objlist li:before{content:"\25B8";position:absolute;left:0;color:var(--slate);font-weight:700;}

.hero{background:var(--obsidian);color:var(--white);margin:-56px -48px 40px;padding:70px 48px 60px;}
.hero .mark{font-size:46px;}
.hero .eyebrow{color:var(--slate);margin-top:18px;}
.hero h1{color:var(--white);font-size:46px;}
.hero p{color:var(--zinc-300);font-size:18px;max-width:620px;margin-top:10px;}
.hero .meta{margin-top:26px;padding-top:18px;border-top:1px solid var(--zinc-700);
  font-size:12px;color:var(--zinc-500);letter-spacing:1px;}

/* module status + result */
.module-status{display:inline-block;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;
  background:var(--zinc-200);color:var(--zinc-600);margin-bottom:8px;}
.module-status.done{background:var(--green-bg);color:#065F46;}
.module-result{display:none;}
.module-result.show{display:block;}

/* diagram */
figure.diagram{margin:26px 0;background:var(--white);border:1px solid var(--zinc-200);
  border-radius:8px;padding:24px 24px 16px;}
figure.diagram svg{width:100%;height:auto;display:block;}
figure.diagram figcaption{font-size:12.5px;color:var(--zinc-500);text-align:center;
  margin-top:14px;padding-top:12px;border-top:1px solid var(--zinc-100);}

/* accordion */
details.deeper{background:var(--white);border:1px solid var(--zinc-200);border-radius:6px;
  margin:18px 0;overflow:hidden;}
details.deeper summary{cursor:pointer;padding:15px 20px;font-weight:700;color:var(--obsidian);
  font-size:15px;list-style:none;display:flex;align-items:center;gap:10px;}
details.deeper summary::-webkit-details-marker{display:none;}
details.deeper summary:before{content:"+";display:inline-block;width:20px;height:20px;
  background:var(--obsidian);color:var(--white);border-radius:4px;text-align:center;
  line-height:20px;font-size:15px;flex:none;}
details.deeper[open] summary:before{content:"\2212";}
details.deeper summary:hover{background:var(--zinc-100);}
details.deeper .dbody{padding:0 20px 18px;border-top:1px solid var(--zinc-100);}
details.deeper .dbody p:first-child{margin-top:14px;}
details.deeper .dbody p:last-child{margin-bottom:0;}

/* common mistakes */
.mistakes{background:var(--red-bg);border-left:4px solid var(--red);padding:18px 22px;
  margin:22px 0;border-radius:0 6px 6px 0;}
.mistakes .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:#991B1B;
  text-transform:uppercase;margin-bottom:10px;}
.mistakes ul{list-style:none;margin:0;}
.mistakes li{padding-left:24px;position:relative;margin-bottom:9px;font-size:14px;color:var(--zinc-700);}
.mistakes li:last-child{margin-bottom:0;}
.mistakes li:before{content:"\2715";position:absolute;left:0;color:var(--red);font-weight:700;font-size:12px;}

/* interactive exercise */
.exercise{background:var(--white);border:1px solid var(--zinc-200);border-radius:8px;
  padding:22px 24px;margin:18px 0;}
.ex-prompt{font-weight:600;color:var(--obsidian);margin-bottom:14px;}
.ex-pool{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.ex-item,.ex-l,.ex-r{display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  background:var(--paper);border:1px solid var(--zinc-200);border-radius:6px;padding:11px 14px;
  font-size:14px;font-family:inherit;color:var(--zinc-700);cursor:pointer;transition:.1s;}
.ex-item:hover,.ex-l:hover,.ex-r:hover{border-color:var(--slate);}
.ex-item.placed,.ex-l.placed,.ex-r.placed{background:var(--zinc-100);border-color:var(--zinc-300);}
.ex-l.sel{border-color:var(--obsidian);background:var(--white);box-shadow:0 0 0 1px var(--obsidian);}
.ex-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  background:var(--obsidian);color:var(--white);border-radius:4px;font-size:12px;font-weight:700;flex:none;}
.ex-ok{background:var(--green-bg)!important;border-color:var(--green)!important;color:#065F46!important;}
.ex-no{background:var(--red-bg)!important;border-color:var(--red)!important;color:#991B1B!important;}
.ex-match{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.ex-col{display:flex;flex-direction:column;gap:8px;}
.ex-actions{display:flex;gap:10px;}
.ex-check,.ex-reset{border:none;padding:9px 18px;border-radius:5px;font-size:13px;
  font-weight:600;font-family:inherit;cursor:pointer;}
.ex-check{background:var(--obsidian);color:var(--white);}
.ex-check:hover{background:var(--zinc-800);}
.ex-reset{background:var(--zinc-100);color:var(--zinc-700);border:1px solid var(--zinc-200);}
.ex-result{display:none;margin-top:13px;font-size:13.5px;font-weight:600;color:#991B1B;}
.ex-result.show{display:block;}
.ex-result.ok{color:#065F46;}

/* related documents */
.reldocs{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px;}
.reldoc{display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--zinc-200);
  border-radius:6px;padding:9px 14px;font-size:13px;transition:.12s;}
.reldoc:hover{border-color:var(--slate);background:var(--zinc-100);}
.reldoc .rc{font-size:10.5px;font-weight:700;color:var(--white);background:var(--obsidian);
  padding:3px 7px;border-radius:3px;}

/* quiz */
.quiz{margin:18px 0;}
.q{background:var(--white);border:1px solid var(--zinc-200);border-radius:6px;padding:20px 22px;margin-bottom:16px;}
.q .qtag{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--slate-deep);text-transform:uppercase;}
.q .qtext{font-weight:600;color:var(--obsidian);margin:6px 0 14px;}
.opt,.exam-opt{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--zinc-200);
  border-radius:5px;padding:10px 14px;margin-bottom:8px;font-size:14px;font-family:inherit;
  color:var(--zinc-700);cursor:pointer;transition:.1s;}
.opt:hover,.exam-opt:hover{border-color:var(--slate);}
.opt.correct,.exam-opt.correct{background:var(--green-bg);border-color:var(--green);color:#065F46;font-weight:600;}
.opt.wrong,.exam-opt.wrong{background:var(--red-bg);border-color:var(--red);color:#991B1B;}
.opt.disabled,.exam-opt.disabled{cursor:default;}
.exam-opt.sel{border-color:var(--obsidian);box-shadow:0 0 0 1px var(--obsidian);font-weight:600;color:var(--obsidian);}
.rationale{display:none;margin-top:10px;padding:12px 14px;background:var(--zinc-100);
  border-left:3px solid var(--slate);font-size:13.5px;color:var(--zinc-700);border-radius:0 4px 4px 0;}
.rationale.show{display:block;}
.reveal-btn{background:var(--obsidian);color:var(--white);border:none;padding:9px 18px;
  border-radius:5px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;}
.reveal-btn:hover{background:var(--zinc-800);}

/* exam */
.exam-q{background:var(--white);border:1px solid var(--zinc-200);border-radius:6px;
  padding:20px 22px;margin-bottom:14px;}
.exam-q .qtag{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--slate-deep);text-transform:uppercase;}
.exam-q .qtext{font-weight:600;color:var(--obsidian);margin:6px 0 14px;}
#exam-submit{background:var(--obsidian);color:var(--white);border:none;padding:14px 32px;
  border-radius:6px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;margin-top:8px;}
#exam-submit:hover{background:var(--zinc-800);}
.exam-result{display:none;margin:24px 0;padding:20px 24px;border-radius:0 8px 8px 0;}
.exam-result.show{display:block;}
.exam-result.pass{background:var(--green-bg);border-left:4px solid var(--green);}
.exam-result.fail{background:var(--red-bg);border-left:4px solid var(--red);}
.exam-result .lbl{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;}
.exam-result.pass .lbl{color:#065F46;}
.exam-result.fail .lbl{color:#991B1B;}
.exam-result p{margin:0;color:var(--zinc-700);}

/* certificate */
#cert{display:none;margin-top:30px;}
#cert.show{display:block;}
.cert-name-row{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap;}
#cert-name{flex:1;min-width:220px;padding:11px 14px;border:1px solid var(--zinc-300);
  border-radius:6px;font-family:inherit;font-size:14px;}
.cert-doc{background:var(--white);border:3px solid var(--obsidian);padding:48px 40px;
  text-align:center;margin:18px 0;}
.cert-mark{font-size:40px;color:var(--obsidian);}
.cert-k{font-size:12px;font-weight:700;letter-spacing:4px;color:var(--slate-deep);margin:10px 0 22px;}
.cert-t{font-size:30px;font-weight:800;color:var(--obsidian);}
.cert-sub{font-size:14px;color:var(--zinc-600);max-width:440px;margin:10px auto;}
.cert-name{font-size:30px;font-weight:700;color:var(--obsidian);border-bottom:2px solid var(--zinc-300);
  display:inline-block;padding:4px 40px 8px;margin:8px 0;}
.cert-meta{font-size:11px;letter-spacing:2px;color:var(--zinc-500);margin-top:22px;}

/* progress dashboard */
.prog-bar{background:var(--zinc-200);border-radius:20px;height:14px;overflow:hidden;margin:8px 0 6px;}
#prog-bar-fill{background:var(--obsidian);height:100%;width:0;transition:width .4s;}
#prog-bar-label{font-size:13px;color:var(--zinc-600);margin-bottom:20px;}
.prog-row{display:flex;align-items:center;gap:14px;background:var(--white);border:1px solid var(--zinc-200);
  border-radius:6px;padding:13px 16px;margin-bottom:8px;}
.prog-row .pn{font-size:12px;font-weight:700;color:var(--white);background:var(--obsidian);
  padding:4px 8px;border-radius:4px;white-space:nowrap;}
.prog-row .pt{flex:1;font-size:14px;font-weight:600;color:var(--obsidian);}
.prog-state{font-size:13px;display:flex;align-items:center;gap:8px;}
.pill{font-size:11px;font-weight:700;letter-spacing:.5px;padding:4px 10px;border-radius:20px;
  background:var(--zinc-200);color:var(--zinc-600);}
.pill.done{background:var(--green-bg);color:#065F46;}
.prog-score{font-size:13px;font-weight:700;color:var(--obsidian);}
#prog-reset{background:var(--zinc-100);color:var(--zinc-600);border:1px solid var(--zinc-200);
  padding:9px 16px;border-radius:5px;font-size:12.5px;font-family:inherit;cursor:pointer;margin-top:10px;}
.ident-banner{position:fixed;bottom:16px;right:16px;left:16px;max-width:420px;margin-left:auto;z-index:90;
  box-shadow:0 8px 30px rgba(0,0,0,.12);padding:14px 16px;}
.ident-banner .lbl{margin-bottom:6px;}
@media(min-width:921px){.ident-banner{left:auto;bottom:24px;right:24px;}}

.pager{display:flex;justify-content:space-between;gap:14px;margin-top:48px;
  padding-top:24px;border-top:1px solid var(--zinc-200);}
.pager a{flex:1;padding:14px 18px;border:1px solid var(--zinc-200);border-radius:6px;background:var(--white);}
.pager a:hover{border-color:var(--slate);}
.pager .dir{font-size:11px;letter-spacing:1.5px;color:var(--slate-deep);text-transform:uppercase;}
.pager .ttl{font-weight:700;color:var(--obsidian);font-size:14px;margin-top:3px;}
.pager a.next{text-align:right;}
.pager a.empty{visibility:hidden;}

footer{margin-left:var(--sidebar);background:var(--obsidian);color:var(--zinc-500);
  padding:24px 48px;font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
footer .tag{letter-spacing:1.5px;}

/* library */
.lib-search{width:100%;padding:12px 16px;border:1px solid var(--zinc-300);border-radius:6px;
  font-family:inherit;font-size:15px;margin:6px 0 10px;color:var(--zinc-800);}
.lib-search:focus{outline:none;border-color:var(--slate);}
.lib-status{font-size:13px;color:var(--zinc-600);margin-bottom:18px;}
.doc-group{margin:28px 0;}
.doc-group h3{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate-deep);
  border-bottom:2px solid var(--obsidian);padding-bottom:6px;margin:0 0 12px;}
.doc-card{display:flex;gap:16px;align-items:flex-start;background:var(--white);
  border:1px solid var(--zinc-200);border-radius:6px;padding:15px 17px;margin-bottom:9px;}
.doc-card .code{font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--white);
  background:var(--obsidian);padding:4px 9px;border-radius:4px;white-space:nowrap;margin-top:2px;}
.doc-card .dbody{flex:1;min-width:0;}
.doc-card h4{font-size:15px;font-weight:700;color:var(--obsidian);margin:0 0 3px;}
.doc-card .ddesc{font-size:13px;margin:0 0 6px;color:var(--zinc-600);}
.doc-card .dmeta{font-size:11.5px;color:var(--zinc-600);}
.doc-card .dl{font-size:12.5px;font-weight:600;color:var(--obsidian);border:1px solid var(--zinc-300);
  padding:8px 14px;border-radius:5px;white-space:nowrap;align-self:center;transition:.12s;}
.doc-card .dl:hover{border-color:var(--slate);background:var(--zinc-100);}

@media(max-width:920px){
  .sidebar{transform:translateX(-100%);transition:transform .2s;width:264px;}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 44px rgba(0,0,0,.45);}
  .main,footer{margin-left:0;}
  .login-page{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;}
  .login-aside{display:none;}
  .login-topbar{display:flex;}
  .login-main{padding:34px 22px 48px;}
  .login-footer{grid-column:1;padding:20px 22px;}
  .topbar{display:flex;}
  .hamburger{width:42px;height:40px;}
  .content{padding:34px 22px 70px;}
  .hero{margin:-34px -22px 30px;padding:48px 22px 42px;}
  h1,.hero h1{font-size:32px;}
  .pager{flex-direction:column;}
  .ex-match{grid-template-columns:1fr;}
  .doc-card{flex-wrap:wrap;}
  /* iOS Safari: 16px form controls stop the zoom-on-focus jump */
  input,textarea,select{font-size:16px;}
  /* wide tables scroll within their column instead of breaking the page */
  .content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  /* comfortable touch targets (Apple HIG ~44px) */
  .opt,.exam-opt,.diag-opt{padding:13px 16px;}
  .ex-item,.ex-l,.ex-r{padding:13px 14px;}
  .reveal-btn,.ex-check,.ex-reset,.sim-check,.sim-reset,.memo-submit{padding:13px 20px;}
  .formula{overflow-x:auto;}
}
@media(max-width:480px){
  .content{padding:28px 16px 58px;}
  .hero{margin:-28px -16px 24px;padding:38px 16px 34px;}
  h1,.hero h1{font-size:26px;}
  .hero .mark{font-size:38px;}
  h2{font-size:21px;}
  .lead{font-size:17px;}
  .sim,.memo,.sim-dash{padding:18px 16px;}
  .brief{padding:18px 17px;}
  .callout{padding:16px 17px;}
  .cert-doc{padding:32px 20px;}
  .chat-msg{max-width:92%;}
  .sim-actions{flex-direction:column;}
  .sim-actions button{width:100%;}
  .ident-row button{width:100%;}
}
/* advisors */
.adv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:24px 0;}
.adv-card{background:var(--white);border:1px solid var(--zinc-200);border-radius:8px;padding:22px;display:block;transition:.15s;}
.adv-card:hover{border-color:var(--slate);box-shadow:0 6px 22px rgba(9,9,11,.08);}
.adv-avatar{width:48px;height:48px;border-radius:50%;background:var(--obsidian);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;letter-spacing:1px;}
.adv-card .adv-avatar{margin-bottom:12px;}
.adv-card h4{font-size:17px;color:var(--obsidian);margin:0 0 2px;}
.adv-card .adv-role{font-size:12px;color:var(--slate-deep);font-weight:600;margin-bottom:10px;}
.adv-card .adv-q{font-size:13px;color:var(--zinc-600);font-style:italic;margin:0;}
.adv-badge{display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:1px;background:var(--zinc-100);
  color:var(--slate-deep);padding:3px 8px;border-radius:4px;text-transform:uppercase;margin-bottom:10px;}
.adv-head{display:flex;gap:20px;align-items:center;margin:6px 0 14px;}
.adv-head .adv-avatar{width:62px;height:62px;font-size:19px;flex:none;}
.adv-head h1{margin:0 0 3px;}
.adv-head .adv-role{font-size:13px;color:var(--slate-deep);font-weight:600;}
.adv-consult{list-style:none;margin:8px 0 18px;}
.adv-consult li{padding-left:24px;position:relative;margin-bottom:8px;}
.adv-consult li:before{content:"\25B8";position:absolute;left:0;color:var(--slate);font-weight:700;}
.adv-quotes{display:flex;flex-direction:column;gap:9px;margin:14px 0;}
.adv-quote{font-size:16px;font-style:italic;color:var(--zinc-700);padding-left:16px;border-left:3px solid var(--slate);}
.adv-link{display:flex;gap:16px;align-items:center;background:var(--white);border:1px solid var(--zinc-200);
  border-left:4px solid var(--slate);border-radius:0 6px 6px 0;padding:15px 18px;margin:8px 0;}
.adv-link .adv-avatar{flex:none;}
.adv-link .al-body{flex:1;min-width:0;}
.adv-link .al-body .lbl{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--slate-deep);margin-bottom:3px;}
.adv-link .al-body p{margin:0;font-size:13.5px;color:var(--zinc-600);}
.adv-link .al-cta{font-size:12.5px;font-weight:700;color:var(--white);background:var(--obsidian);
  padding:9px 15px;border-radius:5px;white-space:nowrap;}
.adv-link .al-cta:hover{background:var(--zinc-800);}
/* chat */
.chat{border:1px solid var(--zinc-200);border-radius:10px;overflow:hidden;margin:18px 0;background:var(--white);}
.chat-head{background:var(--obsidian);color:var(--white);padding:13px 18px;display:flex;align-items:center;gap:12px;}
.chat-head .adv-avatar{width:38px;height:38px;font-size:12px;background:var(--zinc-800);flex:none;}
.chat-head .ch-name{font-weight:700;font-size:14px;}
.chat-head .ch-sub{font-size:11px;color:var(--zinc-400);}
.chat-log{padding:18px;max-height:440px;overflow-y:auto;display:flex;flex-direction:column;gap:11px;}
.chat-msg{max-width:85%;padding:11px 15px;border-radius:13px;font-size:14px;line-height:1.55;
  white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;}
.chat-msg.advisor{background:var(--zinc-100);color:var(--zinc-800);border-bottom-left-radius:3px;align-self:flex-start;}
.chat-msg.user{background:var(--obsidian);color:var(--white);border-bottom-right-radius:3px;align-self:flex-end;}
.chat-msg.typing{color:var(--zinc-500);font-style:italic;}
.chat-input-row{display:flex;gap:10px;padding:13px 16px;border-top:1px solid var(--zinc-200);}
#chat-input{flex:1;resize:none;border:1px solid var(--zinc-300);border-radius:8px;padding:10px 13px;
  font-family:inherit;font-size:14px;line-height:1.5;height:42px;max-height:120px;}
#chat-input:focus{outline:none;border-color:var(--slate);}
#chat-send{background:var(--obsidian);color:var(--white);border:none;border-radius:8px;padding:0 22px;
  font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;}
#chat-send:hover{background:var(--zinc-800);}
#chat-send:disabled{opacity:.5;cursor:default;}
.chat-note{font-size:11.5px;color:var(--zinc-600);padding:2px 16px 14px;margin:0;}

/* ===== Project Cedar Hall simulation ===== */
.sim-dash{background:var(--white);border:1px solid var(--zinc-200);border-radius:10px;padding:24px;margin:24px 0;}
.rank-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.rank-name{font-size:24px;font-weight:800;color:var(--obsidian);letter-spacing:-.3px;}
.rank-blurb{font-size:13.5px;color:var(--zinc-600);}
.xp-line{font-size:12.5px;color:var(--zinc-600);margin:10px 0 5px;letter-spacing:.3px;}
.xp-bar{background:var(--zinc-200);border-radius:20px;height:16px;overflow:hidden;}
.xp-fill{background:var(--obsidian);height:100%;width:0;transition:width .5s;}
.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:18px 0 6px;}
.skill{background:var(--paper);border:1px solid var(--zinc-200);border-radius:8px;padding:13px 15px;}
.skill-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;}
.skill-name{font-size:13px;font-weight:700;color:var(--obsidian);}
.skill-pct{font-size:12px;font-weight:700;color:var(--slate-deep);}
.skill-bar{background:var(--zinc-200);border-radius:20px;height:8px;overflow:hidden;}
.skill-fill{background:var(--slate);height:100%;width:0;transition:width .5s;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:14px 0;}
.badge{background:var(--paper);border:1px solid var(--zinc-200);border-radius:8px;padding:14px;text-align:center;opacity:.45;}
.badge.earned{opacity:1;border-color:var(--obsidian);background:var(--white);}
.badge-ic{width:38px;height:38px;margin:0 auto 8px;border-radius:50%;background:var(--zinc-200);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:17px;}
.badge.earned .badge-ic{background:var(--obsidian);}
.badge-name{font-size:12.5px;font-weight:700;color:var(--obsidian);margin-bottom:3px;}
.badge-desc{font-size:11px;color:var(--zinc-600);line-height:1.4;}
.stage-map{display:flex;flex-direction:column;gap:10px;margin:18px 0;}
.stagecard{display:flex;align-items:center;gap:16px;background:var(--white);border:1px solid var(--zinc-200);
  border-left:4px solid var(--zinc-300);border-radius:0 8px 8px 0;padding:16px 18px;transition:.13s;}
.stagecard:hover{border-color:var(--slate);border-left-color:var(--slate);}
.stagecard.done{border-left-color:var(--green);}
.stagecard .sc-n{flex:none;width:42px;height:42px;border-radius:8px;background:var(--obsidian);color:var(--white);
  display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;}
.stagecard.done .sc-n{background:var(--green);}
.stagecard .sc-body{flex:1;min-width:0;}
.stagecard .sc-phase{font-size:10.5px;font-weight:700;letter-spacing:1.5px;color:var(--slate-deep);text-transform:uppercase;}
.stagecard .sc-title{font-size:16px;font-weight:700;color:var(--obsidian);margin-top:2px;}
.stagecard .sc-state{flex:none;font-size:12px;font-weight:700;}
.stagecard .sc-state .pill{font-size:11px;}

.brief{background:var(--obsidian);color:var(--zinc-300);border-radius:10px;padding:22px 26px;margin:20px 0;}
.brief p{color:var(--zinc-300);}
.brief p:last-child{margin-bottom:0;}
.brief .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--slate);text-transform:uppercase;margin-bottom:10px;}

.sim{background:var(--white);border:1px solid var(--zinc-200);border-radius:10px;padding:22px 24px;margin:16px 0;}
.sim-given-tbl{margin:6px 0 18px;}
.sim-inputs{display:flex;flex-direction:column;gap:10px;margin:14px 0;}
.sim-row{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--zinc-200);
  border-radius:7px;padding:11px 14px;flex-wrap:wrap;}
.sim-row label{flex:1;min-width:200px;font-size:14px;color:var(--zinc-800);font-weight:500;}
.sim-row input{width:120px;padding:8px 10px;border:1px solid var(--zinc-300);border-radius:5px;
  font-family:inherit;font-size:14px;text-align:right;}
.sim-row input:focus{outline:none;border-color:var(--slate);}
.sim-row .sim-unit{font-size:12.5px;color:var(--zinc-500);width:54px;}
.sim-row .sim-mark{width:20px;font-weight:700;text-align:center;}
.sim-row.sim-ok{background:var(--green-bg);border-color:var(--green);}
.sim-row.sim-ok .sim-mark{color:var(--green);}
.sim-row.sim-no{background:var(--red-bg);border-color:var(--red);}
.sim-row.sim-no .sim-mark{color:var(--red);}
.sim-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.sim-check,.memo-submit{background:var(--obsidian);color:var(--white);border:none;padding:11px 22px;
  border-radius:6px;font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;}
.sim-check:hover,.memo-submit:hover{background:var(--zinc-800);}
.sim-check:disabled,.memo-submit:disabled{opacity:.5;cursor:default;}
.sim-reset{background:var(--zinc-100);color:var(--zinc-700);border:1px solid var(--zinc-200);
  padding:11px 18px;border-radius:6px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;}
.sim-result{display:none;margin-top:14px;padding:14px 18px;border-radius:0 7px 7px 0;font-size:14px;}
.sim-result.show{display:block;}
.sim-result.ok{background:var(--green-bg);border-left:4px solid var(--green);}
.sim-result.partial{background:var(--red-bg);border-left:4px solid var(--red);}
.sim-solution{display:none;margin-top:14px;background:var(--zinc-100);border-left:4px solid var(--slate);
  padding:16px 20px;border-radius:0 7px 7px 0;}
.sim-solution.show{display:block;}
.sim-solution .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--obsidian);text-transform:uppercase;margin-bottom:8px;}
.sim-solution p:last-child{margin-bottom:0;}

.memo{background:var(--white);border:1px solid var(--zinc-200);border-radius:10px;padding:22px 24px;margin:16px 0;}
.memo-text{width:100%;min-height:130px;padding:12px 14px;border:1px solid var(--zinc-300);border-radius:7px;
  font-family:inherit;font-size:14px;line-height:1.6;resize:vertical;color:var(--zinc-800);}
.memo-text:focus{outline:none;border-color:var(--slate);}
.memo-result{display:none;margin-top:14px;padding:16px 20px;border-radius:0 8px 8px 0;
  background:var(--zinc-100);border-left:4px solid var(--obsidian);}
.memo-result.show{display:block;}
.memo-score{font-size:30px;font-weight:800;color:var(--obsidian);line-height:1;}
.memo-score span{font-size:14px;font-weight:600;color:var(--zinc-500);}
.memo-fb{font-size:14px;color:var(--zinc-700);line-height:1.6;margin-top:8px;}

.diag-q{background:var(--white);border:1px solid var(--zinc-200);border-radius:6px;padding:18px 20px;margin-bottom:12px;}
.diag-opt{display:block;width:100%;text-align:left;background:var(--paper);border:1px solid var(--zinc-200);
  border-radius:5px;padding:10px 14px;margin-bottom:7px;font-size:14px;font-family:inherit;color:var(--zinc-700);cursor:pointer;}
.diag-opt:hover{border-color:var(--slate);}
.diag-opt.sel{border-color:var(--obsidian);box-shadow:0 0 0 1px var(--obsidian);font-weight:600;color:var(--obsidian);}
.diag-opt.disabled{cursor:default;}
.diag-opt.right{background:var(--green-bg);border-color:var(--green);color:#065F46;}
.diag-opt.wrongpick{background:var(--red-bg);border-color:var(--red);color:#991B1B;}

@media(max-width:920px){
  .sim-row label{flex:1 0 100%;min-width:0;margin-bottom:4px;}
  .sim-row input{flex:1;width:auto;min-width:110px;}
}

/* learner identity / training record card */
.ident{background:var(--white);border:1px solid var(--zinc-200);border-left:4px solid var(--slate);
  border-radius:0 8px 8px 0;padding:18px 22px;margin:22px 0;}
.ident .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--obsidian);text-transform:uppercase;margin-bottom:8px;}
.ident p{font-size:13.5px;color:var(--zinc-600);margin-bottom:12px;}
.ident-row{display:flex;gap:10px;flex-wrap:wrap;}
.ident-row input{flex:1;min-width:170px;padding:10px 13px;border:1px solid var(--zinc-300);
  border-radius:6px;font-family:inherit;font-size:14px;color:var(--zinc-800);}
.ident-row input:focus{outline:none;border-color:var(--slate);}
.ident-row button{background:var(--obsidian);color:var(--white);border:none;padding:10px 24px;
  border-radius:6px;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;}
.ident-row button:hover{background:var(--zinc-800);}
#ident-set{font-size:13.5px;color:var(--zinc-700);}

/* accessibility — visible focus, skip link, module meta */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,
.opt:focus-visible,.exam-opt:focus-visible,.ex-item:focus-visible,.ex-l:focus-visible,
.ex-r:focus-visible,.reveal-btn:focus-visible,.adv-card:focus-visible,.card.link:focus-visible,
.doc-card .dl:focus-visible,.reldoc:focus-visible,.login-toggle:focus-visible,.login-submit:focus-visible{
  outline:3px solid var(--slate);outline-offset:2px;border-radius:3px;}
.nav-group a:focus-visible{outline:3px solid var(--slate);outline-offset:-3px;}
.skip{position:absolute;left:8px;top:-60px;background:var(--obsidian);color:var(--white);
  padding:11px 18px;z-index:200;border-radius:0 0 6px 6px;font-size:13px;font-weight:600;
  transition:top .15s;}
.skip:focus{top:0;}
.module-meta{font-size:12.5px;color:var(--zinc-600);letter-spacing:.3px;margin:-4px 0 4px;}
.cert-verify{font-size:11px;letter-spacing:1px;color:var(--zinc-600);margin-top:6px;}

/* login — split layout matches sidebar + main + footer */
.login-page{
  min-height:100vh;min-height:100dvh;display:grid;
  grid-template-columns:var(--sidebar) 1fr;grid-template-rows:1fr auto;
  background:var(--paper);}
.login-aside{
  grid-row:1/span 2;background:var(--obsidian);color:var(--zinc-300);
  padding:28px;display:flex;flex-direction:column;}
.login-aside .brand{padding:0 0 24px;border-bottom:1px solid var(--zinc-800);margin-bottom:24px;}
.login-aside-copy{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px 0 24px;}
.login-aside .eyebrow{color:var(--slate);margin-bottom:14px;}
.login-aside-copy p{font-size:15px;color:var(--zinc-400);line-height:1.6;margin:0;}
.login-aside .meta{
  margin-top:auto;padding-top:18px;border-top:1px solid var(--zinc-800);
  font-size:11px;color:var(--zinc-500);letter-spacing:1px;line-height:1.5;}
.login-topbar{
  display:none;grid-column:1/-1;position:sticky;top:0;z-index:40;
  background:var(--obsidian);color:var(--white);padding:14px 20px;align-items:center;gap:14px;}
.login-topbar .mark{font-size:20px;}
.login-topbar .t{font-size:13px;font-weight:700;letter-spacing:2px;}
.login-main{
  display:flex;align-items:center;justify-content:center;padding:56px 48px;}
.login-content{width:100%;max-width:420px;}
.login-content .eyebrow{margin-bottom:14px;}
.login-content h1{margin-bottom:10px;}
.login-content .lead{margin-bottom:26px;}
.login-panel{background:var(--white);border:1px solid var(--zinc-200);border-left:4px solid var(--obsidian);
  border-radius:0 8px 8px 0;padding:22px 24px;}
.login-panel .lbl{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--obsidian);
  text-transform:uppercase;margin-bottom:8px;}
.login-panel .hint{font-size:13.5px;color:var(--zinc-600);margin-bottom:16px;}
.login-form{display:flex;flex-direction:column;gap:12px;}
.login-field label{display:block;font-size:13px;font-weight:600;color:var(--obsidian);margin-bottom:8px;}
.login-field-row{position:relative;display:flex;align-items:stretch;}
.login-field-row input{
  width:100%;padding:10px 72px 10px 13px;border:1px solid var(--zinc-300);border-radius:6px;
  font-family:inherit;font-size:14px;color:var(--zinc-800);background:var(--paper);}
.login-field-row input:focus{outline:none;border-color:var(--slate);}
.login-field-row input[aria-invalid="true"]{border-color:var(--red);}
.login-toggle{
  position:absolute;top:50%;right:6px;transform:translateY(-50%);
  border:1px solid var(--zinc-300);background:var(--white);color:var(--slate-deep);
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  padding:6px 9px;border-radius:5px;cursor:pointer;}
.login-toggle:hover{border-color:var(--slate);color:var(--obsidian);}
.login-error{
  margin:0;padding:12px 14px;border-radius:6px;background:var(--red-bg);
  border-left:4px solid var(--red);color:#991B1B;font-size:13.5px;line-height:1.45;}
.login-submit{
  width:100%;background:var(--obsidian);color:var(--white);border:none;padding:14px 24px;
  border-radius:6px;font-weight:700;font-size:15px;font-family:inherit;cursor:pointer;margin-top:4px;}
.login-submit:hover:not(:disabled){background:var(--zinc-800);}
.login-submit:disabled{opacity:.72;cursor:wait;}
.login-footer{
  grid-column:2;background:var(--obsidian);color:var(--zinc-500);
  padding:24px 48px;font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.login-footer .tag{letter-spacing:1.5px;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*:before,*:after{transition:none!important;animation:none!important;}
}

@media print{
  .sidebar,.topbar,footer,.pager,#exam-submit,.cert-name-row,.reveal-btn,.skip{display:none!important;}
  .main{margin:0;}
}
