/* =========================================================================
   QALadder — static lesson pages  (loads AFTER article.css)
   Callouts, drills, code labels, prev/next and the module TOC. Namespaced
   .ls-* so nothing leaks into the other article pages. Reading typography
   itself comes from article.css — this file only adds the lesson furniture.
   ========================================================================= */

/* ===== CALLOUTS ======================================================== */
.ls-call{
  margin:16px 0;padding:12px 15px;border:1px solid var(--border);
  border-left-width:4px;border-radius:10px;background:var(--surface-2);
}
.ls-call-h{
  display:block;font-family:var(--font-mono);font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;
}
.ls-call p{margin:0;font-size:16px;line-height:1.7;}
.ls-call.key{background:var(--grad-brand-soft);border-left-color:var(--accent);}
.ls-call.key .ls-call-h{color:var(--accent-deep);}
.ls-call.warn{background:var(--warn-bg);border-left-color:var(--warn);}
.ls-call.warn .ls-call-h{color:var(--warn);}
.ls-call.tip{background:var(--pass-bg);border-left-color:var(--pass);}
.ls-call.tip .ls-call-h{color:var(--pass);}

/* ===== CODE with label ================================================= */
.ls-code{margin:0 0 18px;}
.ls-code-lbl{
  font-family:var(--font-mono);font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep);
  margin-bottom:6px;
}
.ls-code pre{margin:0;}

/* ===== DRILL =========================================================== */
.ls-drill{
  margin:26px 0 0;padding:14px 16px;
  border:1px dashed var(--accent);border-radius:10px;
  background:var(--accent-soft);
}
.ls-drill .ls-call-h{color:var(--accent-deep);}
.ls-drill p{margin:0;font-size:16px;line-height:1.7;}

/* source line — quiet provenance, same voice as the app's lesson-src */
.ls-src{
  margin:14px 0 0;font-family:var(--font-mono);font-size:11.5px;
  color:var(--text-faint);
}

/* ===== PREV / NEXT ===================================================== */
.ls-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:30px 0 0;}
.ls-nav-card{
  display:flex;flex-direction:column;gap:4px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:13px 15px;text-decoration:none !important;
  transition:border-color var(--t-fast),transform var(--t-fast);
}
.ls-nav-card:hover{border-color:var(--accent);transform:translateY(-1px);}
.ls-nav-card span{
  font-family:var(--font-mono);font-size:10.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);
}
.ls-nav-card b{font-size:14.5px;line-height:1.4;color:var(--text);font-weight:650;}
.ls-nav-card.next{text-align:right;align-items:flex-end;}
.ls-nav-card.empty{border:none;background:none;}

/* ===== MODULE TOC ====================================================== */
.ls-toc{margin-top:34px;}
.ls-toc h2{font-size:var(--fs-md);margin:0 0 10px;}
.ls-toc ol{margin:0;padding-left:24px;font-size:15.5px;line-height:1.7;}
.ls-toc li{margin-bottom:6px;}
.ls-toc li[aria-current] b{color:var(--text);font-weight:650;}

/* syllabus page module sections */
.ls-mod{margin:0 0 30px;}
.ls-mod h2{margin:34px 0 4px;}
.ls-mod-meta{
  margin:0 0 10px;font-family:var(--font-mono);font-size:12px;
  color:var(--text-soft);
}
.ls-mod ol{margin:0 0 6px;padding-left:24px;font-size:16px;line-height:1.75;}
.ls-mod li{margin-bottom:5px;}

@media(max-width:640px){
  .ls-nav{grid-template-columns:1fr;}
  .ls-nav-card.next{text-align:left;align-items:flex-start;}
}
