pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{color:#213547;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--panel:#fff;--panel-soft:#f7f8fb;--text:#182033;--muted:#667085;--line:#d9dee8;--brand:#646cff;--brand-strong:#4f46e5;--accent:#41d1ff;--success:#168a54;--code:#161b22;background:#eef1f6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}.app-shell{grid-template-columns:minmax(280px,360px) minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fbfcff;flex-direction:column;align-self:start;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:24px;display:flex}.brand img{width:36px;height:36px}.eyebrow{color:var(--brand-strong);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:760}.brand h1,.lesson-hero h2,.section-heading h3{color:var(--text);margin:0}.brand h1{font-size:20px;line-height:1.2}.progress-panel{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:16px;padding:16px}.progress-copy{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;font-size:13px;display:flex}.progress-copy span{color:var(--text);font-size:24px;font-weight:800}.progress-track{background:#e8ebf3;border-radius:999px;height:8px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--brand), var(--accent));height:100%;display:block}.lesson-list{flex-direction:column;flex:1;gap:8px;padding:0 12px 18px;display:flex;overflow-y:auto}.lesson-select-field{display:none}.lesson-button{width:100%;min-height:72px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.lesson-button:hover,.lesson-button.is-active{background:#f0f3ff;border-color:#c6cdfd}.lesson-index{width:34px;height:34px;color:var(--brand-strong);background:#eef0ff;border:1px solid #d8dcff;border-radius:8px;place-items:center;font-size:14px;font-weight:820;line-height:1;display:grid}.lesson-button.is-active .lesson-index{border-color:var(--brand-strong);color:#fff;background:var(--brand-strong)}.lesson-meta{min-width:0}.lesson-meta strong,.lesson-meta small{display:block}.lesson-meta strong{text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:14px;overflow:hidden}.lesson-meta small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.45;overflow:hidden}.lesson-state{min-width:52px;min-height:24px;color:var(--success);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:800;display:inline-flex}.lesson-state.lesson-done{background-color:#168a5429}.workspace{width:100%;min-width:0;padding:clamp(32px,4vw,56px)}.lesson-hero{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;padding-bottom:28px;display:flex}.lesson-hero h2{margin-bottom:10px;font-size:clamp(28px,4vw,46px);line-height:1.08}.lesson-hero p:not(.eyebrow){max-width:720px;color:var(--muted);margin:0;font-size:17px;line-height:1.7}.complete-button{color:#fff;background:var(--brand-strong);cursor:pointer;border:1px solid #c6cdfd;border-radius:8px;min-height:44px;padding:0 16px;font-weight:760}.complete-button:disabled{color:#667085;cursor:not-allowed;background:#eaecf0;border-color:#d0d5dd}.tag-row{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.tag{border:1px solid var(--line);color:#475467;background:var(--panel);border-radius:999px;padding:6px 9px;font-size:12px;font-weight:720}.lesson-tabs{border:1px solid var(--line);background:#e8ebf3;border-radius:8px;grid-template-columns:repeat(2,minmax(112px,1fr));gap:4px;margin-bottom:18px;padding:4px;display:inline-grid}.tab-button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 18px;font-weight:780}.tab-button.is-active{color:var(--brand-strong);background:var(--panel);box-shadow:0 1px 2px #10182814}.content-section{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:24px}.section-heading{align-items:center;gap:10px;margin-bottom:18px;display:flex}.section-heading h3{font-size:22px}.content-section ul{gap:12px;margin:0;padding-left:22px;display:grid}.content-section li{color:#344054;line-height:1.75}pre{background:var(--code);border-radius:8px;margin:22px 0 0;padding:18px;overflow-x:auto}code{white-space:pre-wrap;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,ui-monospace,monospace;font-size:13px;line-height:1.65}.review-list{gap:12px;display:grid}.review-item{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px}.review-item summary{color:var(--text);cursor:pointer;align-items:flex-start;gap:12px;padding:16px;font-weight:760;line-height:1.55;list-style:none;display:flex}.review-item summary::-webkit-details-marker{display:none}.review-item summary:after{content:"+";color:var(--brand-strong);margin-left:auto;font-weight:820}.review-item[open] summary:after{content:"-"}.review-item summary span{color:var(--brand-strong);flex:none;font-size:12px;font-weight:820;line-height:2}.review-item p{color:#475467;margin:0;padding:0 16px 16px 44px;line-height:1.75}.review-actions{justify-content:flex-start;margin-top:20px;display:flex}@media (width<=920px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:relative}.brand{border-bottom:0;padding:16px 18px 12px}.progress-panel{margin:0 18px 12px;padding:12px 14px}.progress-copy{margin-bottom:8px}.progress-copy span{font-size:20px}.lesson-select-field{gap:7px;margin:0 18px 16px;display:grid}.lesson-select-field span{color:var(--muted);font-size:12px;font-weight:780}.lesson-select{border:1px solid var(--line);width:100%;min-height:44px;color:var(--text);background:linear-gradient(45deg, transparent 50%, var(--brand-strong) 50%) right 17px center / 7px 7px no-repeat, linear-gradient(135deg, var(--brand-strong) 50%, transparent 50%) right 12px center / 7px 7px no-repeat, var(--panel);font:inherit;appearance:none;border-radius:8px;padding:0 40px 0 12px;font-size:14px;font-weight:720}.lesson-select:focus{border-color:var(--brand-strong);outline:3px solid #646cff2e}.lesson-list{display:none}.workspace{padding:20px 16px 36px}.lesson-hero{flex-direction:column;gap:14px;margin-bottom:18px;padding-bottom:18px}.lesson-tabs{width:100%;display:grid}.tab-panels{max-width:none}.review-actions,.complete-button{width:100%}}@media (width<=520px){.brand h1{font-size:18px}.brand img{width:32px;height:32px}.lesson-hero h2{font-size:28px}.lesson-hero p:not(.eyebrow){font-size:15px}.content-section{padding:18px}}
