:root{color-scheme:dark;--bg: #0f172a;--bg-elevated: #1e293b;--text: #e2e8f0;--text-muted: #94a3b8;--accent: #38bdf8;--border: #334155;--error: #f87171}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app-shell{max-width:960px;margin:0 auto;padding:0 1rem 3rem}.app-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border)}.app-header .brand{font-weight:700;letter-spacing:-.02em}.app-header nav{display:flex;gap:1.25rem}.app-header nav a{color:var(--text-muted);text-decoration:none}.app-header nav a.active{color:var(--accent)}.offline-banner{background:#7c2d12;color:#fed7aa;padding:.6rem 1rem;border-radius:6px;margin-top:1rem;font-size:.9rem}.muted{color:var(--text-muted)}.error{color:var(--error)}.device-list{list-style:none;padding:0}.device-list li{padding:.75rem 0;border-bottom:1px solid var(--border)}.device-list a{color:var(--text);text-decoration:none}.register-form,.command-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:1rem}input,button{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);padding:.5rem .75rem;border-radius:6px;font-size:.95rem}button{cursor:pointer;background:var(--accent);color:#0f172a;border:none;font-weight:600}button:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;padding:1.25rem;margin-top:1.25rem}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.metric-tile{display:flex;flex-direction:column;gap:.25rem;background:var(--bg);border-radius:8px;padding:.75rem}.metric-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:1.4rem;font-weight:700}.shadow-grid{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem}.shadow-grid dt{color:var(--text-muted)}.shadow-grid dd{margin:0}.telemetry-table{width:100%;border-collapse:collapse;font-size:.9rem}.telemetry-table th,.telemetry-table td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border)}.rename-form{display:flex;align-items:center;gap:.6rem;margin-top:1rem}.rename-form input{font-size:1.4rem;font-weight:700;flex:1;min-width:0}.notices{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.notice{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#422006;color:#fde68a;padding:.6rem 1rem;border-radius:6px;font-size:.9rem}.notice button{background:transparent;border:none;color:inherit;font-size:1.1rem;line-height:1;padding:0 .25rem}.back-link{color:var(--text-muted);text-decoration:none;font-size:.9rem}.lesson-list{list-style:none;padding:0}.lesson-list li{padding:.9rem 0;border-bottom:1px solid var(--border)}.lesson-list a{display:flex;align-items:center;gap:.75rem;color:var(--text);text-decoration:none;flex-wrap:wrap}.lesson-module{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.lesson-title{font-weight:600}.lesson-status{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-live{background:#14532d;color:#86efac}.status-partial{background:#713f12;color:#fde68a}.status-documented{background:#334155;color:#cbd5e1}.lesson-done{color:var(--accent);font-size:.8rem}.lesson-summary{margin:.25rem 0 0}.lesson-body{margin-top:1.5rem;line-height:1.65}.lesson-body h2{margin-top:2rem;border-top:1px solid var(--border);padding-top:1.5rem}.lesson-body code{background:var(--bg-elevated);padding:.1rem .35rem;border-radius:4px;font-size:.9em}.lesson-body pre{background:var(--bg-elevated);padding:1rem;border-radius:8px;overflow-x:auto}.lesson-body pre code{background:none;padding:0}.lesson-body table{border-collapse:collapse;width:100%;font-size:.9rem;overflow-x:auto;display:block}.lesson-body th,.lesson-body td{border:1px solid var(--border);padding:.4rem .6rem;text-align:left}.lesson-body blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.25rem 1rem;color:var(--text-muted)}.quiz{margin-top:2rem;border-top:1px solid var(--border);padding-top:1.5rem}.quiz-question{border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem}.quiz-question legend{font-weight:600;padding:0 .25rem}.quiz-option{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;cursor:pointer}.quiz-option.correct{color:#86efac}.quiz-option.incorrect{color:#fca5a5}.quiz-explanation{margin-top:.5rem;color:var(--text-muted);font-size:.9rem}.quiz-score{font-weight:600;font-size:1.1rem}
