/* Dark is a colour theme of the SAME LMS layout, not a second design system.
   Deliberately inherit all grid, spacing, typography, scrolling and breakpoints
   from lms.css. Do not reintroduce fixed-height .lms / overflow:hidden. */
body.dark{
  color-scheme:dark;
  --white:#101827;--paper:#162235;
  --ink:#f2f6fd;--muted:#c6d2e2;--faint:#a5b5ca;
  --line:#304258;--line-2:#45566c;
  --blue:#77b0ff;--blue-dark:#102f63;--cyan:#8de5ff;
  --orange:#ffa065;--orange-mid:#ff9a67;
  --green:#72dea5;--green-dark:#1b5937;
  --purple:#bfa2ff;--purple-light:#d5c7ff;
  --border:var(--line);--card:var(--white);
  --sh-soft:0 6px 24px rgba(0,0,0,.14);
  --sh-med:0 12px 36px rgba(0,0,0,.3);
  background:#0c1422;color:var(--muted);
}
body.dark ::selection{background:#77b0ff;color:#081529}
body.dark .topbar{background:rgba(12,20,34,.95);border-color:var(--line)}
body.dark .brand,body.dark h1,body.dark h2{color:var(--ink)}
body.dark .topnav a{color:var(--muted)}
body.dark .topnav a:hover{background:#20334a;color:var(--ink)}
body.dark .topnav a.active{background:#2f72d4;color:#fff}
body.dark .brand em,body.dark .kicker,body.dark h1 .accent,body.dark h2 .accent{color:var(--blue)}
body.dark .theme-toggle{background:#1b2a3c;border-color:var(--line-2);color:var(--ink)}
body.dark .theme-toggle:hover{border-color:var(--blue)}
body.dark .theme-toggle .tt-sun{display:none}
body.dark .theme-toggle .tt-moon{display:block}
body.dark .ts-seg,body.dark .filter-seg{background:var(--white);border-color:var(--line)}
body.dark .ts-seg button,body.dark .filter-seg button{color:var(--muted)}
body.dark .ts-seg button.on,body.dark .filter-seg button.on{background:#2f72d4;color:#fff}
body.dark .bottombar{background:transparent;border-color:var(--line)}
body.dark .crumb,body.dark .cohort-line,body.dark .lede{color:var(--muted)}
body.dark .crumb b{color:var(--blue)}
body.dark .btn{background:#2f72d4;color:#fff}
body.dark .btn:hover{background:#5093ed;color:#fff}
body.dark .btn.ghost{background:transparent;color:var(--blue);border-color:var(--blue)}
body.dark .btn.ghost:hover{background:#20334a;color:var(--ink)}
body.dark .meta-chip,body.dark .founder-strip,body.dark .week-card,
body.dark .sess,body.dark .price-card,body.dark .journey-strip figure,
body.dark .faq-card,body.dark .agenda,body.dark .prework,body.dark .ex-block,
body.dark .lesson-content,body.dark .session-node{
  background:var(--white);border-color:var(--line);box-shadow:var(--sh-soft);
}
body.dark .meta-chip span,body.dark .founder-strip p,body.dark .week-card .w-sess,
body.dark .sess p,body.dark .price-card li,body.dark .faq-a{color:var(--muted)}
body.dark .track-panel,body.dark .foundations-banner,body.dark .note-chip,
body.dark .enroll-flow li,body.dark .application-steps li{background:var(--paper);border-color:var(--line)}
body.dark .track-panel h2,body.dark .meta-chip b,
body.dark .founder-strip b,body.dark .price-card .p-price,
body.dark .note-chip b,body.dark .week-card h3,
body.dark .sess h3,body.dark .faq-row summary{color:var(--ink)}
body.dark .meta-chip:nth-child(1) b{color:var(--blue)}
body.dark .meta-chip:nth-child(2) b{color:var(--orange)}
body.dark .meta-chip:nth-child(3) b{color:var(--purple)}
body.dark .meta-chip:nth-child(4) b{color:var(--green)}
body.dark .track-card[data-track-pick="eng"]{background:#1954ae}
body.dark .track-card[data-track-pick="biz"]{background:#9c481f}
body.dark .track-card h3,body.dark .track-card p,body.dark .track-card .tc-k{color:#fff}
body.dark .journey-strip figcaption{color:var(--muted)}
body.dark .week-card:hover,body.dark .price-card.featured{border-color:var(--blue)}
body.dark .price-card.featured{background:#13243b}
body.dark .wtag.all,body.dark .tag-everyone{background:#293b52;color:var(--ink)}
body.dark .wtag.eng,body.dark .tag-eng{background:#244b83;color:#e5f2ff}
body.dark .wtag.biz,body.dark .tag-biz{background:#6c3d27;color:#ffe6ce}
body.dark .wtag.lock,body.dark .tag-enrolled{background:#48346c;color:#f3eaff}
body.dark .week-deliv,body.dark .outcome-box,body.dark .access-notice{background:#1b3550;color:var(--ink)}
body.dark .week-deliv b,body.dark .outcome-box .ob-k{color:var(--blue)}
body.dark .note-link:hover{background:#223650}
body.dark .private-strip{background:#162b52;color:#fff}
body.dark .private-strip h3,body.dark .private-strip .p-price{color:#fff}
body.dark .private-strip .btn{background:#fff;color:#102f63}
body.dark .private-strip .btn:hover{background:#d7ecff;color:#102f63}
body.dark .faq-row{border-color:var(--line)}
body.dark .faq-row summary::after{border-color:var(--muted)}
body.dark .ag-row{border-color:var(--line)}
body.dark .ag-row b,body.dark .lesson-block,body.dark .lesson-sub{color:var(--ink)}
body.dark .ag-row span,body.dark .tick li{color:var(--muted)}
body.dark .lab-form{background:var(--white);border:1px solid var(--line);box-shadow:var(--sh-soft)}
body.dark .lab-form label,body.dark .lab-form legend{color:var(--ink)}
body.dark .lab-form input,body.dark .lab-form select,body.dark .lab-form textarea{
  background:#0c1422;color:var(--ink);border-color:var(--line-2)
}
body.dark .lab-form input::placeholder,body.dark .lab-form textarea::placeholder{color:var(--faint)}
body.dark .lab-form .consent,body.dark .field-help{color:var(--muted)}
body.dark .lab-form input:focus,body.dark .lab-form select:focus,body.dark .lab-form textarea:focus{border-color:var(--blue);background:#0c1422}
body.dark .session-node{background:var(--white)}
body.dark .session-check{background:var(--white);border-color:var(--line-2)}
body.dark .session-check.done{background:var(--green-dark);border-color:var(--green)}
body.dark .timeline::before,body.dark .progress-bar{background:var(--line)}
body.dark .week-num{background:#2f72d4;color:#fff}
body.dark .track-badge.eng{background:#4a291a;color:#ffc89a;border-color:#865139}
body.dark .track-badge.biz{background:#1b365c;color:#aad6ff;border-color:#345888}
body.dark .track-badge.both{background:#193b34;color:#a3ecd0;border-color:#326b5a}
body.dark .foundations-banner b,body.dark .session-body h3{color:var(--ink)}
body.dark .africa-banner{background:linear-gradient(135deg,#173228,#142235);border-color:#315948}
body.dark .africa-text{color:var(--ink)}
body.dark .africa-text b{color:#a3e9bf}
body.dark .africa-strip{background:#19362f;border-color:#396754;color:#b7f4cd}
body.dark .reset-progress button{border-color:var(--line-2);color:var(--muted)}
body.dark #lab-search-input,body.dark .lab-search-results{background:var(--white);border-color:var(--line-2);color:var(--ink)}
body.dark .lab-search-results a{color:var(--ink);border-color:var(--line)}
body.dark .lab-search-results a:hover{background:var(--paper)}
body.dark .lab-search-results .sr-desc,body.dark .lab-search-results .sr-empty{color:var(--muted)}
body.dark .access-card{background:var(--white);border-color:var(--line)}
body.dark .access-card label{color:var(--ink)}
body.dark .access-card input{background:#0c1422;border-color:var(--line-2);color:var(--ink)}
body.dark .access-card button[type=submit]{background:#2f72d4;color:#fff}
body.dark .access-card .access-error{color:#ffc4b3}
body.dark a:focus-visible,body.dark button:focus-visible,
body.dark input:focus-visible,body.dark select:focus-visible,
body.dark textarea:focus-visible{outline-color:var(--cyan)}
/* Keep the floating assistant above the page instead of collapsing its height. */
body.dark .lab-chat-fab{min-height:48px}
/* User motion and screen-reader preferences take precedence over transitions. */
@media(prefers-reduced-motion:reduce){
 body.dark *,body.dark *::before,body.dark *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}
