
.wrap{max-width:1080px;margin:0 auto;padding:2rem 1.25rem 4rem}
.topbar{display:flex;align-items:center;gap:1rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--border-sub,#1f2937);background:var(--bg-surface,#0b0f19);position:sticky;top:0;z-index:5}
.brand{font-weight:800;font-size:1.05rem;color:var(--text-base,#f3f4f6);text-decoration:none}.brand .tm{font-size:.6rem;vertical-align:super;color:var(--text-dim,#9ca3af)}
.topbar .tag{color:var(--text-dim,#9ca3af);font-size:.8rem}.topbar .search{margin-left:auto}
.topbar .search input{background:var(--bg-raised,#111827);border:1px solid var(--border-sub,#1f2937);color:var(--text-base,#f3f4f6);border-radius:8px;padding:.4rem .7rem;width:230px;font-size:.85rem}
h1{font-size:1.9rem;margin:.2rem 0 .6rem}h2{margin-top:2rem;font-size:1.25rem}
.lead{color:var(--text-dim,#9ca3af);max-width:70ch;line-height:1.6}.lead b{color:var(--text-base,#f3f4f6)}
.hero{padding:1.5rem 0 .5rem;border-bottom:1px solid var(--border-sub,#1f2937);margin-bottom:1rem}
.hero .eyebrow{margin:0 0 .3rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--brand-accent,#60a5fa);font-weight:700}
.hero h1{font-size:2.4rem;margin:.1rem 0 .7rem;letter-spacing:-.01em}
.cardmeta{color:var(--text-dim,#9ca3af);font-size:.8rem;margin:.15rem 0 .55rem}.cardmeta .range{color:var(--brand-accent,#93c5fd);font-variant-numeric:tabular-nums}
.startlink{display:inline-block;margin-top:.6rem;color:var(--brand-accent,#60a5fa);font-weight:700;font-size:.85rem}
.tlabel{margin:.15rem 0 0;font-size:.75rem;color:var(--brand-accent,#93c5fd)}.tmeta{margin:.15rem 0 0;color:var(--text-dim,#9ca3af);font-size:.82rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.9rem;margin:1rem 0}
.tile{display:block;padding:1.1rem;border:1px solid var(--border-sub,#1f2937);border-radius:12px;background:var(--bg-raised,#111827);text-decoration:none;color:inherit;transition:.15s}
.tile:hover{border-color:var(--brand-accent,#3b82f6);transform:translateY(-2px)}.tile h3{margin:0 0 .3rem;font-size:1rem}.tile p{margin:0;color:var(--text-dim,#9ca3af);font-size:.85rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem;margin:1rem 0}
.card{position:relative;display:block;padding:1rem;border:1px solid var(--border-sub,#1f2937);border-radius:12px;background:var(--bg-raised,#111827);text-decoration:none;color:inherit;transition:.15s}
.card:hover{border-color:var(--brand-accent,#3b82f6)}.card h4{margin:0 0 .3rem;font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.step .stepbody h4{font-size:1.1rem;font-weight:700}
.card.complete{border-color:#16a34a}.card.hasprog .progress{display:block}
.progress{display:none;height:4px;background:var(--bg-hover,#1f2937);border-radius:3px;margin-top:.7rem;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#16a34a}
.badges{display:flex;flex-wrap:wrap;gap:.35rem}.badges.big{margin:.6rem 0 1rem}
.badge{font-size:.7rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border-dim,#374151);color:var(--text-dim,#cbd5e1);white-space:nowrap}
.auth-info{border-color:#334155}.auth-ctrl{border-color:#2563eb;color:#93c5fd}.auth-auth{border-color:#7c3aed;color:#c4b5fd}.auth-frozen{border-color:#0891b2;color:#67e8f9}
.h-fresh{border-color:#16a34a;color:#86efac}.h-warn{border-color:#d97706;color:#fcd34d}.h-bad{border-color:#dc2626;color:#fca5a5}.h-old{border-color:#4b5563;color:#9ca3af}
.src{border-color:#475569;color:#cbd5e1}.count{border-color:#475569;color:#cbd5e1}
.crumb{font-size:.82rem;color:var(--text-dim,#9ca3af);margin-bottom:1rem}.crumb a{color:var(--brand-accent,#60a5fa);text-decoration:none}
.steps{display:flex;flex-direction:column;gap:.7rem;margin:1rem 0}
.step{position:relative;display:flex;gap:1rem;padding:1rem;border:1px solid var(--border-sub,#1f2937);border-radius:12px;background:var(--bg-raised,#111827);text-decoration:none;color:inherit}
.step:hover{border-color:var(--brand-accent,#3b82f6)}.step.complete{border-color:#16a34a}
.stepn{width:1.9rem;height:1.9rem;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--bg-hover,#1f2937);font-weight:700}
.step.complete .stepn{background:#16a34a;color:#04210f}.stepbody{flex:1;min-width:0}.stepbody h4{margin:0 0 .4rem}
.continue{margin:1.2rem 0;padding:1rem 1.1rem;border:1px solid var(--brand-accent,#3b82f6);border-radius:12px;background:linear-gradient(90deg,rgba(59,130,246,.12),transparent)}
.continue .clabel{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim,#9ca3af);margin-bottom:.35rem}
.continue .cbtn{color:var(--text-base,#f3f4f6);font-weight:700;text-decoration:none;font-size:1.05rem}.continue .cbtn em{color:var(--text-dim,#9ca3af);font-weight:400;font-style:normal}
.lessons{display:flex;flex-direction:column;gap:.4rem;margin:.6rem 0}
.lrow{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;border:1px solid var(--border-sub,#1f2937);border-radius:10px;background:var(--bg-raised,#111827);text-decoration:none;color:inherit}
.lrow:hover{border-color:var(--brand-accent,#3b82f6)}.lrow .num{width:1.6rem;height:1.6rem;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--bg-hover,#1f2937);font-size:.8rem}
.lrow .lt{flex:1;font-weight:600}.lrow .check{opacity:0;color:#16a34a;font-weight:800}.lrow.done .check{opacity:1}.lrow.done .num{background:#16a34a;color:#04210f}
.modprogress{display:flex;align-items:center;gap:.8rem;margin:.4rem 0 1rem}.modprogress .bar{flex:1;max-width:320px;height:7px;background:var(--bg-hover,#1f2937);border-radius:4px;overflow:hidden}.modprogress .bar span{display:block;height:100%;width:0;background:#16a34a}.modprogress .pct{color:var(--text-dim,#9ca3af);font-size:.8rem;font-style:normal}
.lessongrid{display:grid;grid-template-columns:1fr 280px;gap:1.6rem}@media(max-width:820px){.lessongrid{grid-template-columns:1fr}}
.content{min-width:0}.content h1{font-size:1.6rem}.content table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.9rem}
.content th,.content td{border:1px solid var(--border-sub,#1f2937);padding:.45rem .6rem;text-align:left}
.content blockquote{border-left:3px solid var(--brand-accent,#3b82f6);margin:1rem 0;padding:.3rem 0 .3rem 1rem;color:var(--text-dim,#cbd5e1)}
.content code{background:var(--bg-hover,#1f2937);padding:.1rem .35rem;border-radius:4px;font-size:.85em}
.content pre{background:var(--bg-surface,#0b0f19);padding:1rem;border-radius:8px;overflow:auto;border:1px solid var(--border-sub,#1f2937)}
.side{align-self:start;position:sticky;top:5rem;border:1px solid var(--border-sub,#1f2937);border-radius:12px;padding:1rem;background:var(--bg-raised,#111827)}
.side h4{margin:.2rem 0 .6rem;font-size:.9rem}.kv{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;padding:.3rem 0;border-bottom:1px solid var(--border-sub,#1f2937)}
.kv span{color:var(--text-dim,#9ca3af)}.tutor{margin-top:1rem;padding-top:.6rem;border-top:1px solid var(--border-sub,#1f2937)}.muted{color:var(--text-dim,#9ca3af);font-size:.82rem}
.donebtn{width:100%;padding:.6rem;margin-bottom:1rem;border-radius:8px;border:1px solid var(--brand-accent,#3b82f6);background:transparent;color:var(--text-base,#f3f4f6);font-weight:700;cursor:pointer}.donebtn.on{background:#16a34a;border-color:#16a34a;color:#04210f}
.ask{margin:.2rem 0 1.2rem}.askbtn{padding:.5rem .9rem;border-radius:8px;border:1px solid var(--brand-accent,#3b82f6);background:transparent;color:var(--brand-accent,#93c5fd);font-weight:700;cursor:pointer;font-size:.9rem}.askbtn.on{background:var(--brand-accent,#3b82f6);color:#04122e}
.askpanel{margin-top:.7rem;padding:.9rem;border:1px solid var(--border-sub,#1f2937);border-radius:10px;background:var(--bg-raised,#111827)}
.askinput{width:100%;margin-top:.6rem;padding:.55rem .7rem;border-radius:8px;border:1px solid var(--border-sub,#1f2937);background:var(--bg-surface,#0b0f19);color:var(--text-dim,#9ca3af)}
.pager{display:flex;justify-content:space-between;margin:2rem 0 0;padding-top:1rem;border-top:1px solid var(--border-sub,#1f2937)}.pager a{color:var(--brand-accent,#60a5fa);text-decoration:none;font-weight:600}
.mermaid{background:var(--bg-surface,#0b0f19);border:1px solid var(--border-sub,#1f2937);border-radius:8px;padding:1rem;margin:1rem 0;overflow:auto}
.searchbox{width:100%;padding:.7rem .9rem;font-size:1rem;background:var(--bg-raised,#111827);border:1px solid var(--border-sub,#1f2937);color:var(--text-base,#f3f4f6);border-radius:10px;margin:.5rem 0 1rem}
.results{display:flex;flex-direction:column;gap:.4rem}.hit{display:block;padding:.7rem .9rem;border:1px solid var(--border-sub,#1f2937);border-radius:8px;background:var(--bg-raised,#111827);text-decoration:none;color:inherit}
.hit:hover{border-color:var(--brand-accent,#3b82f6)}.hit .k{display:inline-block;font-size:.7rem;color:var(--text-dim,#9ca3af);margin-right:.6rem}
.foot{max-width:1080px;margin:0 auto;padding:1.5rem 1.25rem;color:var(--text-muted,#6b7280);font-size:.78rem;border-top:1px solid var(--border-sub,#1f2937)}
