:root{--bg:#0f1115;--panel:#171a21;--panel2:#1e232c;--text:#f5f7fa;--muted:#aab2bf;--border:#303745;--accent:#6ea8fe;--good:#4fd1a1;--warn:#f5c451}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea{font:inherit}.topbar{max-width:1180px;margin:auto;padding:28px 20px 18px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted);margin:0 0 8px}h1{margin:0;font-size:clamp(28px,4vw,44px)}.sub{color:var(--muted);max-width:780px;line-height:1.5}main{max-width:1180px;margin:auto;padding:0 20px 50px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 24px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:14px}.stat-label{font-size:12px;color:var(--muted)}.bar{height:8px;background:#262c36;border-radius:999px;overflow:hidden;margin:10px 0}.fill{height:100%;background:var(--accent)}.stat-pct{font-weight:700}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tab,.ghost{background:transparent;color:var(--text);border:1px solid var(--border);padding:10px 14px;border-radius:10px;cursor:pointer}.tab.active{background:var(--accent);color:#0a1220;border-color:transparent;font-weight:700}.hidden{display:none!important}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px}.task-card.done{opacity:.62}.task-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.task-title-wrap{display:flex;gap:10px;align-items:flex-start;font-weight:700}.task-check,.subcheck{margin-top:3px;transform:scale(1.1)}.pill{background:var(--panel2);border:1px solid var(--border);padding:4px 8px;border-radius:999px;font-size:12px;color:var(--muted);white-space:nowrap}.meta{color:var(--muted);font-size:13px;margin-top:6px}.details{line-height:1.55}details{margin-top:10px}summary{cursor:pointer;font-weight:600}.checklist{display:grid;gap:14px;margin:14px 0}.check-group{border:1px solid var(--border);border-radius:14px;background:#12161d;overflow:hidden}.check-group-head{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;padding:15px 16px}.check-group-head>.subcheck{width:16px;height:16px;margin:3px 0 0}.check-content{min-width:0}.check-title{font-weight:750;line-height:1.4;font-size:15px}.check-description{color:var(--muted);font-size:13px;line-height:1.55;margin-top:5px;max-width:850px}.step-panel{margin:0;border-top:1px solid var(--border);background:#0f141b}.step-panel summary{padding:12px 16px;color:#dbe9ff;font-size:13px}.step-count{float:right;color:var(--muted);font-weight:500}.steps{display:grid;gap:8px;padding:12px 14px 14px;border-top:1px solid #242c38}.step-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;align-items:start;padding:11px 12px;background:#151a22;border:1px solid #272f3b;border-radius:10px;line-height:1.55;font-size:14px;cursor:pointer}.step-row input{width:16px;height:16px;margin:3px 0 0}.step-row span{display:block;min-width:0}.step-row:has(input:checked){opacity:.62}.step-row:has(input:checked) span{text-decoration:line-through}.notes{width:100%;min-height:96px;resize:vertical;border-radius:10px;border:1px solid var(--border);background:#11151b;color:var(--text);padding:10px}.day-block{margin-bottom:24px}.day-label{font-weight:800;margin-bottom:8px;color:#dce5f5}.month-card h3{margin-top:4px}.month-card ul{padding-left:18px;color:var(--muted);line-height:1.7}.kicker{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.today-hero{background:linear-gradient(180deg,#171a21,#141820);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:14px}.today-hero h2{margin:4px 0 8px}.empty{color:var(--muted);padding:18px;border:1px dashed var(--border);border-radius:14px}.term{display:inline;border:0;border-bottom:1px dashed var(--accent);background:transparent;color:#9bc2ff;padding:0;cursor:pointer;font:inherit;line-height:inherit;vertical-align:baseline}.term:hover{color:#c7dcff}.term-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.term-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}.term-dialog{position:relative;width:min(720px,100%);max-height:90vh;overflow:auto;background:#171a21;border:1px solid #46536a;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.45)}.term-dialog h2{margin:5px 0 16px;font-size:28px}.term-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer}.learn-block{margin-top:12px;padding:14px 15px;border:1px solid var(--border);border-radius:12px;background:#11151b}.learn-block p{margin:6px 0 0;line-height:1.6}.learn-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#b9c9e2;font-weight:800}.simple-block{border-color:#426a91;background:#121b27}.simple-block .term-simple{font-size:19px;font-weight:700;color:#eef6ff}.confused-block{border-color:#5a566e;background:#171623}.term-visual{margin-top:14px;border:1px solid #3d4b60;border-radius:12px;padding:16px;text-align:center;font-weight:750;line-height:1.8;background:#202630}.learn-more{margin-top:14px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#10141a}.learn-more>summary{padding:13px 15px;color:#dbe9ff}.learn-more-body{padding:0 15px 14px;border-top:1px solid var(--border);color:#c9d1dc;line-height:1.6}.term-capm{margin-top:10px;padding:10px 12px;border-left:3px solid var(--accent);background:#121821;border-radius:8px}@media(max-width:800px){.stats{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.topbar{flex-direction:column}}@media(max-width:480px){.stats{grid-template-columns:1fr}.task-head{flex-direction:column}.pill{margin-left:30px}.term-dialog{padding:18px}.term-dialog h2{font-size:24px}.check-group-head{padding:13px}.steps{padding:10px}.step-row{padding:10px;font-size:13px}.simple-block .term-simple{font-size:17px}}