.lesson-shell{max-width:1340px;margin:0 auto;padding:24px}.lesson-top{align-items:center;gap:16px;margin-bottom:6px;display:flex}.lesson-top h1{flex:1;margin:0;font-size:1.2rem}.lesson-points{font-family:var(--mono);color:var(--amber);font-size:12px}.lesson-rail{gap:6px;padding:8px 0 18px;display:flex;overflow:auto}.lesson-rail button{min-width:36px;font-family:var(--mono);color:var(--muted);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:7px 0;font-size:12px}.lesson-rail button:hover{border-color:var(--faint);color:var(--text)}.lesson-rail button.done{color:var(--green);background:#0d2a2044;border-color:#1f6f4f}.lesson-rail button[aria-current=step]{color:var(--text);border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb, var(--blue) 22%, transparent)}.lesson-slide-head{margin:4px 0 20px}.lesson-slide-head h2{margin:0;font-size:1.45rem}.lesson-columns{grid-template-columns:repeat(var(--lesson-columns,1), minmax(0, 1fr));gap:28px;display:grid}.lesson-column{min-width:0}.lesson-column p{color:#cfd8e6;margin:0 0 14px;font-size:15px;line-height:1.65}.lesson-column strong{color:#fff;font-weight:600}.lesson-column em{color:#dbe3ef}.lesson-column h2,.lesson-column h3{margin:22px 0 10px;font-size:15px}.lesson-column ul,.lesson-column ol{color:#cfd8e6;margin:0 0 14px;padding-left:22px;font-size:15px}.lesson-column li{margin:5px 0}.lesson-column li>p{margin:0}.lesson-column p>code,.lesson-column li>code,.lesson-column strong>code{background:var(--panel);border:1px solid var(--line-soft);border-radius:4px;padding:1px 5px;font-size:.92em}.lesson-column .gate-question{margin:0 0 12px;font-weight:600}.lesson-column .options{margin:0;padding:0}.lesson-column .feedback p{margin:0}.lesson-block{margin:18px 0}.lesson-check,.lesson-column .gate{border-left:2px solid #0000;padding-left:12px}.lesson-check.is-passed,.lesson-column .gate.is-passed{border-left-color:var(--green)}.lesson-check.is-failed,.lesson-column .gate.is-failed{border-left-color:var(--red)}.lesson-check.is-waiting,.lesson-column .gate.is-waiting{border-left-color:var(--faint)}.lesson-nudged .lesson-check.is-missed,.lesson-nudged .gate.is-missed{border-left-color:var(--amber)}.lesson-check .feedback,.lesson-column .gate .feedback{border-left:none;padding-left:0}.lesson-note{color:var(--faint);font-size:12px;font-style:normal}.lesson-note .spinner{vertical-align:-2px;margin-right:6px}.code-inline-edit .code-line-edit{align-items:stretch}.code-inline-edit .line-no-stack{line-height:inherit;flex-direction:column;display:flex}.slot{position:relative}.slot-mirror{display:block}.slot-line{white-space:pre;display:block}.slot[data-aligned=false] .slot-mirror{visibility:hidden}.slot-input-shown{color:var(--text)}.slot-input{resize:none;white-space:pre;padding:0;overflow:hidden}.slot{box-shadow:inset 0 0 0 1px var(--line-soft);background:#0a1a2e66;border-radius:3px}.slot:focus-within{box-shadow:inset 0 0 0 1px var(--blue)}.code-line-edit.is-passed .slot{box-shadow:inset 0 0 0 1px var(--green);background:#0d2a2066}.code-line-edit.is-failed .slot{box-shadow:inset 0 0 0 1px var(--red);background:#2a131566}.slot-inline{vertical-align:baseline;background:#0a1a2e;border-radius:3px;display:inline-block;position:relative}.slot-inline:focus-within{background:#0d2440}.slot-inline-mirror{font-family:var(--mono);font-size:var(--code-size);line-height:inherit;white-space:pre;pointer-events:none;padding:0 4px;position:absolute;inset:0;overflow:hidden}.slot-inline-input{font-family:var(--mono);font-size:var(--code-size);line-height:inherit;color:#0000;caret-color:var(--text);box-shadow:inset 0 0 0 1px var(--blue);box-sizing:content-box;background:0 0;border:0;border-radius:3px;outline:none;min-width:5ch;margin:0;padding:0 4px;position:relative}.slot-inline-input::placeholder{color:var(--faint)}.slot-inline-input::selection{color:#0000;background:#3b82f666}.slot-inline.is-passed{background:#0d2a2066}.slot-inline.is-passed .slot-inline-input{box-shadow:inset 0 0 0 1px var(--green)}.slot-inline.is-failed{background:#2a131566}.slot-inline.is-failed .slot-inline-input{box-shadow:inset 0 0 0 1px var(--red)}.written{gap:10px;margin:12px 0 0;display:grid}.written-input{box-sizing:border-box;width:100%;min-height:96px;font-family:var(--sans);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);resize:vertical;background:#0c121b;padding:12px 14px;font-size:15px;line-height:1.6;display:block}.written-input::placeholder{color:var(--faint)}.written-input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.written-foot{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.code-edit{box-sizing:border-box;width:100%;padding:14px var(--code-pad);resize:vertical;color:var(--text);border-color:var(--line);white-space:pre;overflow-wrap:normal;background:#0c121b;display:block}.code-edit:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.sh-echo{color:var(--blue)}.option-picked{border-color:var(--faint)}.option-chosen{border-color:var(--blue);background:#0a1a2e}.option-chosen .option-marker{color:var(--blue)}.option-body{flex:1}.option-body p{margin:0}.option-body p+p{margin-top:6px}.callout{border-left:2px solid var(--line);margin:18px 0;padding-left:14px}.callout-warning{border-left-color:var(--amber)}.callout-note{border-left-color:var(--blue)}.lesson-next{border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;margin-top:30px;padding:16px;display:flex}.lesson-next span{font-family:var(--mono);color:var(--muted);font-size:12px}.lesson-next-ready{border-color:#1f6f4f}.lesson-next-ready span{color:var(--green)}.lesson-definition{z-index:30;background:var(--panel);border-left:1px solid var(--line);width:min(420px,90vw);padding:24px;position:fixed;inset:0 0 0 auto;overflow:auto;box-shadow:-10px 0 40px #0008}.lesson-definition-close{float:right}.lesson-preview-banner{color:var(--amber);border:1px solid var(--amber);border-radius:var(--radius);background:#2a1f0b;margin:0 0 16px;padding:10px 14px;font-size:14px}@media (max-width:900px){.lesson-columns{grid-template-columns:1fr;gap:18px}.lesson-shell{padding:14px}}@media (max-width:720px){.lesson-shell{--code-size:16px;padding:12px}.lesson-top{flex-wrap:wrap;gap:8px 12px}.lesson-top h1{flex:100%;order:3;font-size:1.05rem}.lesson-rail{gap:8px;padding:6px 0 14px}.lesson-rail button{min-width:44px;padding:11px 0;font-size:13px}.lesson-slide-head h2{font-size:1.25rem}.lesson-column p,.lesson-column ul,.lesson-column ol,.written-input{font-size:16px}.lesson-next{padding:14px}.lesson-next button{padding:12px 18px}.lesson-definition{width:100vw;padding:18px}}.attend{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);border-left-width:3px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 14px;padding:10px 14px;font-size:14px;display:flex}.attend strong{color:var(--text)}.attend-said{color:var(--muted)}.attend-glyph{font-family:var(--mono)}.attend-in{border-left-color:var(--green)}.attend-in .attend-glyph,.attend-in strong{color:var(--green)}.attend-out{border-left-color:var(--red)}.attend-out .attend-glyph,.attend-out strong{color:var(--red)}.attend-soon{border-left-color:var(--amber)}.attend-soon strong{color:var(--amber)}.attend-open{border-left-color:var(--blue)}.attend-field{font-family:var(--mono);font-size:var(--label-size);color:var(--faint);align-items:center;gap:8px;display:flex}.attend-field input{width:16ch;font-family:var(--mono);font-size:var(--code-size);letter-spacing:.08em;text-transform:uppercase;color:var(--text);border:1px solid var(--line);background:#0c121b;border-radius:4px;padding:7px 9px}.attend-field input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.attend-problem{color:var(--red);font-style:normal}
