:root{--bg:#0d1117;--panel:#161b22;--panel-2:#1c2330;--border:#2a3342;--text:#e6edf3;--muted:#8b98a9;--accent:#3b82f6;--accent-2:#2563eb;--ok:#3fb950;--ko:#f85149;--warn:#d29922;--video:#8b5cf6;--exercise:#f59e0b;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 1rem;font-size:1.6rem}h2{margin:.5rem 0;font-size:1.2rem}code{font-family:var(--mono);border:1px solid var(--border);background:#0b0f14;border-radius:4px;padding:0 4px;font-size:.9em}.muted{color:var(--muted)}.tiny{font-size:.82rem}.error{color:var(--ko)}.success{color:var(--ok)}.note{color:#f0c674;background:#d299221f;border:1px solid #d2992266;border-radius:6px;padding:6px 10px;font-size:.85rem}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:9px 16px;font-size:.95rem;text-decoration:none;display:inline-block}.btn:hover{background:var(--accent-2);text-decoration:none}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn.small{padding:5px 10px;font-size:.85rem}.linklike{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px}.center{place-items:center;min-height:100vh;padding:20px;display:grid}.narrow{flex-direction:column;gap:14px;width:100%;max-width:400px;display:flex}.row{gap:10px;display:flex}label{flex-direction:column;gap:4px;font-size:.9rem;display:flex}input{border:1px solid var(--border);color:var(--text);background:#0b0f14;border-radius:6px;padding:9px 10px;font-size:.95rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px}.page{max-width:1100px;margin:0 auto;padding:24px}.topnav{align-items:center;gap:16px;margin-bottom:28px;display:flex}.topnav .brand{margin-right:auto;font-weight:700}.grid3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.course{flex-direction:column;gap:8px;display:flex}.course .btn{align-self:flex-start;margin-top:auto}.code{font-family:var(--mono);color:var(--accent);letter-spacing:.05em;font-weight:700}.dash{min-height:100vh;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;width:310px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-head{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:18px 16px;display:flex}.course-name{font-weight:600}.sidebar nav{flex:1;padding:8px 0}.sidebar details{border-bottom:1px solid var(--border)}.sidebar summary{cursor:pointer;padding:10px 16px;font-size:.9rem;font-weight:600;list-style:none}.sidebar summary:before{content:"▸";width:1em;color:var(--muted);transition:transform .15s;display:inline-block}.sidebar details[open] summary:before{transform:rotate(90deg)}.sidebar ul{margin:0;padding:0 0 8px;list-style:none}.lesson-link{color:var(--text);align-items:center;gap:8px;padding:7px 16px 7px 28px;font-size:.88rem;display:flex}.lesson-link:hover{background:var(--panel-2);text-decoration:none}.lesson-link.active{background:var(--panel-2);box-shadow:inset 3px 0 0 var(--accent)}.lesson-link .check{width:1em;color:var(--muted)}.lesson-link.done,.lesson-link.done .check{color:var(--ok)}.lesson-link .lt{flex:1}.badge{white-space:nowrap;border:1px solid;border-radius:10px;padding:1px 6px;font-size:.7rem}.badge.video{color:var(--video);border-color:var(--video)}.badge.exercise{color:var(--exercise);border-color:var(--exercise)}.sidebar-foot{border-top:1px solid var(--border);padding:12px 16px;font-size:.85rem}.main{flex:1;min-width:0;margin-left:310px}.progress-bar{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);padding:12px 28px;position:sticky;top:0}.progress-label{justify-content:space-between;margin-bottom:6px;font-size:.85rem;display:flex}.progress-label .pct{font-weight:700}.track{background:var(--panel-2);border-radius:4px;height:8px;overflow:hidden}.fill{background:linear-gradient(90deg, var(--accent), var(--ok));height:100%;transition:width .3s}.content{max-width:1200px;padding:24px 28px 48px}.crumb{margin-bottom:4px}.done-pill{color:var(--ok);border:1px solid var(--ok);vertical-align:middle;border-radius:10px;padding:1px 8px;font-size:.8rem}.player{aspect-ratio:16/9;border:1px solid var(--border);background:#000;border-radius:8px;width:100%;max-width:900px;margin-bottom:18px;display:block}.md{max-width:900px;margin-bottom:18px}.md h2,.md h3,.md h4{margin:1rem 0 .4rem}.split{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;display:grid}.instructions{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px 18px}.terminal-wrap{min-width:0}.terminal{border:1px solid var(--border);height:420px;font-family:var(--mono);cursor:text;background:#05070a;border-radius:8px;padding:12px;font-size:.85rem;overflow-y:auto}.terminal pre{white-space:pre-wrap;color:#c9d1d9;margin:0 0 4px;font-family:inherit}.terminal .prompt{color:var(--ok)}.term-line{align-items:center;gap:8px;display:flex}.term-line input{color:var(--text);font-family:var(--mono);font-size:inherit;background:0 0;border:0;flex:1;padding:0}.term-line input:focus{outline:none}.checkbar{align-items:center;gap:14px;margin-top:14px;display:flex}.criteria{margin:12px 0;padding:0;list-style:none}.criteria li{background:var(--panel);border:1px solid var(--border);border-radius:6px;margin-bottom:4px;padding:6px 10px}.criteria li.ok .mark{color:var(--ok);font-weight:700}.criteria li.ko .mark{color:var(--ko);font-weight:700}.proto-note{border:1px dashed var(--warn);color:var(--warn);border-radius:6px;margin-top:16px;padding:8px 12px;font-size:.85rem}@media (width<=900px){.sidebar{width:100%;position:static}.dash{flex-direction:column}.main{margin-left:0}.split{grid-template-columns:1fr}}
