:root{--accent:#087f70}body{background:#f5f8f7}.hero{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:34px 38px 42px;background:linear-gradient(115deg,#eef7f3,#fff);border:1px solid #d9e9e2;border-radius:24px;margin-bottom:24px}.hero h1{font-size:clamp(32px,4vw,52px);line-height:1.22}.hero p{color:#537469;font-size:16px;line-height:1.8}.hero-stat{min-width:220px;display:grid;gap:12px}.hero-stat strong{font-size:42px;letter-spacing:-1px;color:#087f70}.hero-stat span,.hero-stat small{color:#627e73;font-size:13px}.meter{height:7px;background:#deece6;border-radius:20px;overflow:hidden}.meter>div{height:100%;background:#0c9480;transition:width .2s}.toolbar{padding:18px 24px;margin-bottom:32px}.toolbar .status:empty{display:none}.section-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.section-head h2{margin:8px 0}.route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}.route-card{display:flex;align-items:stretch;flex-direction:column;text-align:left;padding:22px;gap:12px;border-radius:16px;min-width:0}.route-card.selected{border-color:#079580;background:#edf8f4;box-shadow:0 0 0 1px #079580}.route-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#ecf5f1;color:#087f70;font-size:22px;font-weight:700}.route-card strong{font-size:17px}.route-card small{color:var(--muted);line-height:1.7}.route-card .card-footer{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:6px;margin-top:auto}.path{padding:30px;margin-bottom:24px}.path h2{font-size:26px}.prerequisite{font-size:13px;padding:12px 16px;background:#f2f7f4;border-radius:10px;line-height:1.7}.filter{margin:20px 0}.filter input{width:280px}.filter select{min-width:150px}.filter strong{margin-left:auto}.steps{padding:0;margin:28px 0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.step-card{height:100%;width:100%;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:13px;padding:23px;position:relative;min-width:0;border-radius:16px}.step-top{display:flex;justify-content:space-between;align-items:center}.step-number{width:36px;height:36px;border:1px solid #d7e9df;background:#f4faf6;color:#087f70;font-size:14px;font-weight:750;border-radius:50%;display:grid;place-items:center}.step-card.done{background:#f0faf5;border-color:#aadcc6}.step-card.doing{border-color:#91b7ea}.step-card h3{font-size:19px;line-height:1.4;margin:0}.step-card p{color:var(--muted);font-size:13px;line-height:1.7;margin:0}.step-card .step-footer{font-size:12px;color:#087f70;margin-top:auto}.sources p{font-size:14px}.sources a{margin-top:10px}#node-dialog{width:min(780px,calc(100vw - 32px));max-height:90dvh;overflow:auto;padding:30px}#node-dialog h2{font-size:28px;margin:20px 0}#node-dialog h3{margin-top:24px}#node-dialog li{line-height:1.8;font-size:15px}#node-dialog p{line-height:1.8;font-size:14px}#node-dialog textarea{width:100%}.notice{padding:12px 16px;background:#fff7e8;color:#775323;border-radius:10px;line-height:1.8;font-size:13px}.resource-list{display:grid;gap:9px}.resource-link{display:block;border:1px solid var(--line);border-radius:10px;padding:12px 15px;color:#087f70;text-decoration:none;line-height:1.6}.resource-link small{display:block;color:var(--muted);font-size:12px}.resource-link:hover{background:#f3faf7}#self-check{padding:16px;background:#f0f5fb;border-radius:12px;margin-top:20px}#self-check summary{cursor:pointer;line-height:1.7;font-size:14px;font-weight:650}.checklist{display:grid;gap:12px;margin-bottom:20px}.checklist label{line-height:1.6}.resource-link,.step-card p{overflow-wrap:anywhere}@media(max-width:1000px){.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.hero{padding:25px;align-items:flex-start;flex-direction:column;gap:16px}.hero h1{font-size:34px}.hero p{font-size:14px}.hero-stat{width:100%;min-width:0}.hero-stat strong{font-size:30px}.route-grid{gap:10px}.route-card{padding:16px}.route-card strong{font-size:15px}.route-card small{font-size:12px}.steps{grid-template-columns:1fr;gap:14px}.path{padding:18px}.section-head{align-items:flex-start;flex-wrap:wrap}.filter label,.filter input,.filter select{width:100%}.filter strong{margin-left:0}#node-dialog{padding:20px}.toolbar{padding:18px}.topbar nav{gap:16px}.prerequisite{padding:12px}}
.built-in-lesson{margin:24px 0;padding:20px;background:#f5faf7;border:1px solid #dbe9e2;border-radius:14px}.built-in-lesson h3{margin-top:0!important}.built-in-lesson h4{font-size:15px;margin:20px 0 8px}.lesson-concept{font-size:16px!important;line-height:1.95!important}.lesson-example{background:#fff;border-left:3px solid #0c9480;border-radius:6px;padding:12px 15px;overflow-wrap:anywhere}.lesson-pitfall{color:#775323}.extended-reading{margin-top:24px;border:1px solid var(--line);padding:16px;border-radius:12px}.extended-reading summary{cursor:pointer;color:#087f70;font-weight:650}.extended-reading .resource-list{margin-top:14px}@media(max-width:650px){.built-in-lesson{padding:16px}.lesson-concept{font-size:15px!important}.lesson-example{padding:12px}}
