body{background:#0a0b10;color:#e8eaf2;min-height:100vh;overflow-x:hidden}
/* ── :root accent overrides ── */
/* ── Reset & base ── */
/* ── Page-specific hero gradient ── */
.hero{background:linear-gradient(180deg,#060f03 0%,#0a0b10 100%)}
/* ── Hardcoded accent overrides (not handled by --accent) ── */
.hero-badge{background:rgba(125,184,74,.12);border-color:rgba(125,184,74,.3)}
.pill.p-tool{border-color:rgba(125,184,74,.3);background:rgba(125,184,74,.08)}
.btn-start{background:linear-gradient(135deg,#4a7c2f,#2d5a1b);box-shadow:0 4px 0 #1a3a0d}
.progress-fill{background:linear-gradient(90deg,#2d5a1b,#7db84a)}
.step-dot.active{background:rgba(125,184,74,.1)}
.step-card.active-step{border-color:rgba(125,184,74,.4);box-shadow:0 0 32px rgba(125,184,74,.06)}
.sn-green{background:rgba(125,184,74,.18);color:var(--accent);border:2px solid rgba(125,184,74,.3)}
.sn-blue{background:rgba(96,165,250,.15);color:var(--blue);border:2px solid rgba(96,165,250,.25)}
.ss-active{background:rgba(125,184,74,.15);color:var(--accent)}
.big-goal{background:rgba(125,184,74,.07);border:1px solid rgba(125,184,74,.2)}
.finish-banner{background:linear-gradient(135deg,rgba(125,184,74,.12),rgba(74,124,47,.08));border-color:rgba(125,184,74,.3)}
.next-ep-btn{background:linear-gradient(135deg,#4a7c2f,#2d5a1b);box-shadow:0 4px 0 #1a3a0d}
/* ── Code display ── */
.code-wrap{background:#0c0e16;border:1px solid rgba(255,255,255,.1);border-radius:12px;margin:12px 0;overflow:hidden}
.code-label{background:var(--asphalt);padding:6px 14px;font-size:.7rem;font-weight:800;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}
.code-label .dot{width:8px;height:8px;border-radius:50%}
.dot-r{background:#f87171}.dot-y{background:#ffd166}.dot-g{background:#06d6a0}
.code-body{padding:14px 16px;font-family:'JetBrains Mono','Courier New',monospace;font-size:.82rem;line-height:1.7;overflow-x:auto;white-space:pre;color:#c9d1e0}
.kw{color:#a78bfa}.fn{color:#60a5fa}.str{color:#ffd166}.num{color:#f87171}.cmt{color:#4a5568;font-style:italic}.var{color:#06d6a0}.prop{color:#f08050}.cls{color:#4dd9e0}
/* ── Check tasks ── */
.check-task{display:flex;align-items:center;gap:10px;font-size:.87rem;color:var(--muted);padding:8px 0;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);transition:color .15s;user-select:none}
.check-task:last-child{border-bottom:none}
.check-task:hover{color:var(--text)}
.check-box{width:20px;height:20px;border-radius:6px;border:2px solid var(--border);background:var(--asphalt);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .18s;font-size:.75rem}
.check-task.checked .check-box{background:var(--green);border-color:var(--green);color:#000}
.check-task.checked{color:#fff}
/* ── Step complete button ── */
.step-complete-btn{width:100%;margin-top:20px;background:linear-gradient(135deg,var(--green),#04a07a);color:#000;font-family:'Fredoka',cursive;font-size:1rem;padding:13px;border-radius:12px;border:none;cursor:pointer;transition:filter .15s,transform .12s;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 3px 0 #027a5a}
.step-complete-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.step-complete-btn:disabled{opacity:.45;pointer-events:none}
/* ── Footer ── */
/* ── Folder tree (page-specific) ── */
.folder-tree{font-family:'JetBrains Mono','Courier New',monospace;font-size:.82rem;background:#0c0e16;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px 16px;color:#c9d1e0;line-height:1.9;white-space:pre}
.folder-tree .folder{color:#ffd166}
.folder-tree .file{color:#7db84a}
.folder-tree .dim{color:#4a5568}
.reveal{opacity:1!important;transform:none!important}