/* GENERATED by _system/theme/build_theme.py - do not edit by hand. One design concept for all lesson webs. */
:root{--bg:#f6f7f9;--surface:#ffffff;--surface2:#f0f2f5;--ink:#151a23;--muted:#566070;--line:#dce0e7;--accent:#2449c7;--orange:#d48a1e;--violet:#0e6f8a;--violet-light:#e8edfb;--mint:#e8edfb;--good:#0a7352;--bad:#b4312a;--shadow:0 1px 2px rgba(21,26,35,.05),0 8px 24px rgba(21,26,35,.06)}
[data-theme=dark]{--bg:#0d1016;--surface:#151a22;--surface2:#1b212b;--ink:#e8ebf1;--muted:#9aa3b3;--line:#2a3240;--accent:#8ea6ff;--orange:#f0b455;--violet:#5cc8e0;--violet-light:#1c2540;--mint:#18213a;--good:#4fd0a2;--bad:#ff8d80;--shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px rgba(0,0,0,.35)}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3,[style*="Georgia"]{font-family:Charter,"Bitstream Charter","Sitka Text",Cambria,"Iowan Old Style",Georgia,serif}
h1,h2{font-weight:500}
.brand-mark{background:linear-gradient(rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(135deg,#13244a 0%,#1e3b7a 100%)!important}
.progress-track span,.bar-fill{background:#2449c7!important}
#reading-line{background:linear-gradient(90deg,#2449c7,#d48a1e)!important}
.flashcard{background:#e8edfb!important;border-color:#dce0e7!important;color:#151a23!important}
[data-theme=dark] .flashcard{background:#18213a!important;border-color:#2a3240!important;color:#e8ebf1!important}
::selection{background:#fbf0df;color:#151a23}
:root:not([data-theme=dark]) .nav-item.active{background:#e8edfb}
:root:not([data-theme=dark]) .nav-item.active .nav-num{border-color:#2449c7}
:root:not([data-theme=dark]) .flow-tab.active{background:#e8edfb}
:root:not([data-theme=dark]) .avatar{background:#e8edfb;color:#2449c7}
:root:not([data-theme=dark]) .pill.foundation{background:#fbf0df;color:#985300}
:root:not([data-theme=dark]) .hero{background:#e8edfb;border-color:#dce0e7}
.hero:before{background:radial-gradient(ellipse at 90% 15%,rgba(35,120,138,.20),transparent 65%),radial-gradient(ellipse at 70% 100%,rgba(224,137,27,.18),transparent 65%)!important}
:root:not([data-theme=dark]) .card-art,:root:not([data-theme=dark]) .module-card .card-art{background:#f0f2f5!important}
:root:not([data-theme=dark]) .module-card:nth-child(even) .card-art{background:#e8edfb!important}
.hero{background:linear-gradient(rgba(36,73,199,.065) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(36,73,199,.065) 1px,transparent 1px) 0 0/16px 16px,#ffffff!important;border-color:#dce0e7!important}.hero:before{display:none!important}
[data-theme=dark] .hero{background:linear-gradient(rgba(142,166,255,.07) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(142,166,255,.07) 1px,transparent 1px) 0 0/16px 16px,#151a22!important;border-color:#2a3240!important}
.hero h1{color:var(--ink)!important;letter-spacing:-.5px!important}.hero h1 em{color:var(--accent)!important}.hero p{color:var(--muted)!important;font-size:15px!important}
.hero .eyebrow,.hero-meta{color:var(--muted)!important}.btn.primary{background:var(--ink)!important;color:var(--bg)!important}
.code-card{background:#121826!important}.code-toolbar{background:#1c2433!important}.toast{background:#151a23!important}
:root:not([data-theme=dark]) .flow-tab.active{background:#e8edfb!important}.nav-item.active .nav-num{border-color:var(--accent)!important}
.progress-track span{background:var(--accent)!important}.roadmap>div:before{background:var(--accent)!important}::selection{background:#cdd8fb;color:#151a23}
.brand small,.course-tag,.nav-label,.nav-num,.eyebrow,.hero .eyebrow,.stage-label,.stage-label span,.lesson-toc .eyebrow,.pill,.lab-head .pill,.output-label,.token small,.notebook-cell .cell-label,.flashcard small,.flashcard .hint,.source-line,.assessment span,.assess-note,.quiz-meta,.lab-metrics div,.card-bottom,.journey-step p,.journey-step .step-dot,.hero-meta,.section-heading p,.section-link,.stat span,.code-toolbar,.code-toolbar button,.flow-tab,.result-doc>span:first-child,.bitrow,.tip-card .eyebrow,footer,.date-label,.search-trigger kbd,.lesson-toc a,.top-left,.mode-control select,.btn.small,.side-progress,.sidebar-bottom p{font-size:12px!important}
.lesson-section p,.lesson-section li,.exercise-list li{font-size:15.5px!important;line-height:1.75!important}.objective-box li,.compare-grid p,.flow-details p,.roadmap p,.source-card p,.aside-card p,.completion-box p,.tutor-note,.lab-description,.lab-output,.lab-output p,.quiz-option,.quiz-feedback,.quiz-score,.card-body p,.journey-step strong,.quick-actions a,.welcome-line p,.nav-sub,.text-button,.search-trigger,.lab label,.inline-control,.btn,.summary,summary,.page-header>p{font-size:13.5px!important}details p,table,.result-doc,.notebook-md,.reader-text,.plain,.code-card pre,.mono{font-size:13.5px!important}.nav-item{font-size:14px!important}body{font-size:16px}
/* --- shared by every app: navigation dock (added by lesson-web.js, 2026-11-04): Back + Courses sidebar --- */
.lw-dock{position:fixed;left:10px;bottom:10px;z-index:2147483000;display:flex;gap:6px;font:600 13px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.lw-dock button{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px 0 8px;
  border-radius:99px;background:#ffffff;color:#2449c7;border:1px solid #dce0e7;box-shadow:0 1px 2px rgba(21,26,35,.05),0 8px 24px rgba(21,26,35,.06);
  font:600 13px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;transition:border-color .15s,background .15s}
.lw-dock button:hover{border-color:#2449c7;background:#e8edfb}
.lw-dock button:focus-visible{outline:2px solid #2449c7;outline-offset:2px}
.lw-dock svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.lw-cbtn b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:99px;background:#2449c7;color:#fff;font:700 11.5px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.lw-veil{position:fixed;inset:0;z-index:2147483001;background:rgba(13,16,22,.42);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.lw-veil.is-open{opacity:1;visibility:visible}
.lw-panel{position:fixed;top:0;left:0;bottom:0;z-index:2147483002;width:min(340px,88vw);display:flex;flex-direction:column;
  background:#ffffff;color:#151a23;border-right:1px solid #dce0e7;box-shadow:0 0 40px rgba(13,16,22,.25);
  transform:translateX(-102%);visibility:hidden;transition:transform .25s ease,visibility .25s;font:400 14px/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;text-align:left}
.lw-panel.is-open{transform:none;visibility:visible}
.lw-ph{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 16px;color:#fff;background:linear-gradient(rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(135deg,#13244a 0%,#1e3b7a 100%)}
.lw-ph small{display:block;font:600 11px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.08em;text-transform:uppercase;opacity:.75}
.lw-ph strong{display:block;font:500 24px/1.2 Charter,"Bitstream Charter","Sitka Text",Cambria,"Iowan Old Style",Georgia,serif;margin-top:2px;color:#fff}
.lw-x{all:unset;cursor:pointer;display:grid;place-items:center;width:36px;height:36px;border-radius:99px;color:#fff;background:rgba(255,255,255,.12)}
.lw-x:hover{background:rgba(255,255,255,.22)} .lw-x:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lw-x svg,.lw-hubl svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lw-list{flex:1;overflow-y:auto;padding:10px;display:grid;gap:4px;align-content:start}
.lw-course{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border-radius:12px;
  color:#151a23!important;text-decoration:none!important;border:1px solid transparent}
.lw-course:hover{background:#f0f2f5}
.lw-course:focus-visible{outline:2px solid #2449c7;outline-offset:-2px}
.lw-course i{font:700 12px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-style:normal;letter-spacing:.04em;display:grid;place-items:center;height:44px;border-radius:10px;
  background:#e8edfb;color:#2449c7}
.lw-course b{display:block;font:600 14px/1.35 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:#151a23}
.lw-course em{display:block;font:600 11.5px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-style:normal;color:#2449c7;margin-top:3px}
.lw-course.is-here{background:#e8edfb;border-color:#2449c7}
.lw-course.is-here i{background:#2449c7;color:#fff}
.lw-hubl{display:flex;align-items:center;gap:10px;margin:0 10px 12px;padding:12px 14px;border-radius:12px;border:1px solid #dce0e7;
  color:#2449c7!important;text-decoration:none!important;font:600 13.5px/1.2 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.lw-hubl:hover{border-color:#2449c7;background:#e8edfb}
.lw-dark .lw-dock button{background:#151a22;color:#8ea6ff;border-color:#2a3240}
.lw-dark .lw-dock button:hover{background:#1c2540;border-color:#8ea6ff}
.lw-dark .lw-cbtn b{background:#8ea6ff;color:#0d1016}
.lw-dark .lw-panel{background:#151a22;color:#e8ebf1;border-color:#2a3240}
.lw-dark .lw-ph{background:linear-gradient(rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(255,255,255,.075) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(135deg,#0f1a33 0%,#172b57 100%)}
.lw-dark .lw-course,.lw-dark .lw-course b{color:#e8ebf1!important}
.lw-dark .lw-course:hover{background:#1b212b}
.lw-dark .lw-course i{background:#1c2540;color:#8ea6ff}
.lw-dark .lw-course em{color:#8ea6ff}
.lw-dark .lw-course.is-here{background:#1c2540;border-color:#8ea6ff}
.lw-dark .lw-course.is-here i{background:#8ea6ff;color:#0d1016}
.lw-dark .lw-hubl{color:#8ea6ff!important;border-color:#2a3240}
.lw-dark .lw-hubl:hover{background:#1c2540;border-color:#8ea6ff}
@media print{.lw-dock,.lw-panel,.lw-veil{display:none!important}}
/* phones: icon-only round buttons so the dock stays small over lesson text */
@media (max-width:760px){body{padding-bottom:60px}.lw-dock{left:8px;bottom:max(8px,env(safe-area-inset-bottom))}.lw-dock button{width:40px;height:40px;padding:0;justify-content:center}
  .lw-dock button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.lw-cbtn b{width:26px;height:26px}}
/* --- shared: graph paper & ink (2026-11-03) --- */
:root{--lw-p1:#2449c7;--lw-p2:#0a7352;--lw-p3:#985300;--lw-p1bg:#e8edfb;--lw-p2bg:#e3f3ec;--lw-p3bg:#fbf0df}
.lw-dark{--lw-p1:#8ea6ff;--lw-p2:#4fd0a2;--lw-p3:#f0b455;--lw-p1bg:#18213a;--lw-p2bg:#11291f;--lw-p3bg:#33270f}
/* three parts, one colour each everywhere (the word label always stays: colour is never the only cue) */
.ws-part.ws-p1{color:var(--lw-p1)!important;border-color:var(--lw-p1)!important;background:var(--lw-p1bg)}
.ws-part.ws-p2{color:var(--lw-p2)!important;border-color:var(--lw-p2)!important;background:var(--lw-p2bg)}
.ws-part.ws-p3{color:var(--lw-p3)!important;border-color:var(--lw-p3)!important;background:var(--lw-p3bg)}
.ws-nav-h.ws-p1,.part-h.ws-p1{color:var(--lw-p1)!important}.ws-nav-h.ws-p2,.part-h.ws-p2{color:var(--lw-p2)!important}.ws-nav-h.ws-p3,.part-h.ws-p3{color:var(--lw-p3)!important}
.ws-nav-h,.part-h{font-size:11.5px!important;font-weight:700!important;letter-spacing:.08em!important;display:flex!important;align-items:center;gap:8px}
.ws-nav-h::before,.part-h::before{content:"";width:8px;height:8px;border-radius:2px;background:currentColor;flex:none}
.ws-step > .ws-n{background:var(--lw-p2)} .ws-ans{border-color:var(--lw-p2)} .ws-edge .ws-in b{color:var(--lw-p2)}
.ws-take{margin-top:14px;border:1px solid var(--lw-p2);border-left-width:4px;border-radius:10px;padding:12px 16px;background:var(--lw-p2bg);color:var(--lw-ink)}
.ws-take > b{display:block;font:700 12px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--lw-p2);margin-bottom:6px}
.ws-take ul{margin:0;padding-left:1.2em} .ws-take li{margin:4px 0;line-height:1.55}
/* keyboard focus is always visible */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--lw-acc)!important;outline-offset:2px!important;border-radius:4px}
/* reduced motion */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* small labels never below 11 px */
.nav-new,.side-flag,.mini-id{font-size:11px!important}
/* --- shared: WORKED SOLUTIONS layout (Part 2 · Problems with solutions) and the 3-part sidebar headings --- */
:root{--lw-acc:#2449c7;--lw-ink:#151a23;--lw-ink2:#384152;--lw-mut:#566070;--lw-line:#dce0e7;--lw-surf:#ffffff;--lw-surf2:#f0f2f5;--lw-teal:#0e6f8a;--lw-warm:#985300;--lw-okbg:#e3f3ec;--lw-bad:#b4312a}
.lw-dark{--lw-acc:#8ea6ff;--lw-ink:#e8ebf1;--lw-ink2:#c3c9d4;--lw-mut:#9aa3b3;--lw-line:#2a3240;--lw-surf:#151a22;--lw-surf2:#1b212b;--lw-teal:#5cc8e0;--lw-warm:#f0b455;--lw-okbg:#11291f;--lw-bad:#ff8d80}
.ws-part{display:inline-block;font:600 11.5px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--lw-acc);border:1px solid var(--lw-acc);border-radius:99px;padding:3px 10px;margin:0 0 8px}
.ws-nav-h{color:var(--lw-acc)!important;letter-spacing:.06em}
.ws{border:1px solid var(--lw-line);border-radius:14px;background:var(--lw-surf);padding:18px 20px;margin:16px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;color:var(--lw-ink)}
.ws > *,.ws-edge > div,.ws-step > div{min-width:0;overflow-wrap:anywhere}
.ws > h3,.ws > h4{margin:0}
.ws-need{border-left:3px solid var(--lw-teal);padding:8px 14px;background:var(--lw-surf2);border-radius:0 10px 10px 0;font-size:.95em;line-height:1.55}
.ws-need > b:first-child{color:var(--lw-teal)}
.ws-steps{display:grid;gap:12px}
.ws-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
.ws-step > .ws-n{width:28px;height:28px;border-radius:99px;background:var(--lw-acc);color:var(--lw-surf);display:grid;place-items:center;font:700 12.5px/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin-top:2px}
.ws-step p{margin:0} .ws-step p + p,.ws-step p + pre,.ws-step pre + p{margin-top:6px}
.ws-why{font-size:.94em;color:var(--lw-ink2);line-height:1.55}
.ws-why > b:first-child{color:var(--lw-teal)}
.ws-ans{border:1.5px solid var(--lw-acc);border-radius:10px;padding:10px 14px;background:var(--lw-okbg)}
.ws-edge{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ws-edge > div{border:1px solid var(--lw-line);border-radius:10px;padding:10px 12px;background:var(--lw-surf2);font-size:.93em;line-height:1.5}
.ws-edge b{display:block;font:600 11.5px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--lw-mut);margin-bottom:4px}
.ws-edge .ws-in b{color:var(--lw-acc)}
.ws-fig{margin:0;border:1px solid var(--lw-line);border-radius:12px;padding:12px;background:var(--lw-surf)}
.ws-fig svg{width:100%;height:auto;display:block;margin:0 auto}
.ws-fig figcaption{font-size:.9em;color:var(--lw-ink2);line-height:1.5;margin-top:8px}
.ws-leg{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;font-size:.85em;color:var(--lw-ink2);margin-top:6px}
.ws-leg i{display:inline-block;width:22px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.ws pre{overflow-x:auto;max-width:100%}
.ws mjx-container:not([display]),.ws-need mjx-container:not([display]),.ws-edge mjx-container:not([display]){display:inline-block;max-width:100%;overflow-x:auto;overflow-y:hidden;vertical-align:middle}
.ws mjx-container[display]{max-width:100%;overflow-x:auto;overflow-y:hidden}
@media (max-width:760px){.ws-edge{grid-template-columns:minmax(0,1fr)}.ws{padding:14px 12px}}
