:root{--bg:#fff;--surface:#f6f7f9;--text:#1f2328;--muted:#59636e;--border:#d8dee4;--accent:#087ea4;--accent-bg:#e6f7ff;--danger:#c62828;--success:#2e7d32;--radius:8px;--mono:ui-monospace, "SF Mono", Consolas, monospace;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}:root[data-theme=dark]{--bg:#16181d;--surface:#23272f;--text:#f6f7f9;--muted:#99a1b3;--border:#343a46;--accent:#58c4dc;--accent-bg:#1c3440}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent)}h1,h2,h3{line-height:1.2}code{font-family:var(--mono);background:var(--surface);border-radius:4px;padding:.1em .35em;font-size:.9em}pre{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;font-size:.85rem;overflow-x:auto}pre code{background:0 0;padding:0}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:.4rem .9rem}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:.4rem .6rem}.site-header{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.site-header .brand{color:var(--text);font-weight:700;text-decoration:none}.site-nav{flex-wrap:wrap;gap:.25rem;display:flex}.site-nav a{color:var(--muted);border-radius:var(--radius);padding:.35rem .75rem;text-decoration:none}.site-nav a.active{background:var(--accent-bg);color:var(--accent);font-weight:600}main{max-width:1100px;margin:0 auto;padding:1.5rem}.lessons-shell{grid-template-columns:240px 1fr;gap:2rem;display:grid}.lesson-sidebar ol{margin:0;padding:0;list-style:none;position:sticky;top:1rem}.lesson-sidebar a{border-radius:var(--radius);color:var(--muted);padding:.35rem .6rem;font-size:.95rem;text-decoration:none;display:block}.lesson-sidebar a.active{background:var(--accent-bg);color:var(--accent);font-weight:600}@media (width<=760px){.lessons-shell{grid-template-columns:1fr}.lesson-sidebar ol{flex-wrap:wrap;gap:.25rem;display:flex;position:static}}.lesson-meta{color:var(--muted);margin-bottom:.25rem;font-size:.9rem}.file-path{font-family:var(--mono);color:var(--muted);font-size:.85rem}.demo{border:2px dashed var(--accent);border-radius:var(--radius);margin:1rem 0;padding:1rem 1.25rem;position:relative}.demo:before{content:"Live demo";background:var(--bg);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;padding:0 .4rem;font-size:.75rem;font-weight:700;position:absolute;top:-.75rem;left:1rem}.exercise{background:var(--accent-bg);border-radius:var(--radius);margin-top:1.5rem;padding:.75rem 1.25rem}.lesson-pager{border-top:1px solid var(--border);justify-content:space-between;margin-top:2rem;padding-top:1rem;display:flex}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.stack{flex-direction:column;gap:.5rem;display:flex}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.success{color:var(--success)}
