: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}}
#course-view{max-width:1440px;margin:auto;padding:0 28px 40px}.course-sticky{position:sticky;top:0;background:#f5f8f7ed;backdrop-filter:blur(12px);z-index:10;padding:20px 0 0;border-bottom:1px solid #d9e6df}.course-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.course-sticky h1{font-size:clamp(26px,3vw,38px);margin:18px 0}.course-tabs{display:flex;gap:10px;overflow-x:auto;padding:0 0 12px}.course-tabs button{white-space:nowrap;flex:1}.course-tabs button.active,.exercise-nav button.active{background:#087f70;color:#fff;border-color:#087f70}.learning-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;margin-top:26px;align-items:start}.course-paper{min-width:0;background:#fff;border:1px solid #d9e6df;border-radius:20px;padding:34px;scroll-margin-top:200px}.course-paper p,.course-paper li{font-size:16px;line-height:1.95}.course-paper h2{font-size:23px;line-height:1.6;margin:16px 0}.course-paper h3{font-size:19px;line-height:1.6;margin:12px 0}.course-lead{color:#496b60;font-size:18px!important}.course-paper>label,.course-paper>.primary{margin-top:22px}.theory-section{margin:30px 0;padding-top:20px;border-top:1px solid #e5eee8}.section-index{font-size:12px;letter-spacing:2px;color:#087f70;font-weight:750}.mistake-card{padding:18px 22px;border-left:3px solid #d6a554;background:#fffaf0;border-radius:12px;margin:16px 0}.mistake-card p{margin-bottom:0}.course-aside{min-width:0;display:grid;gap:18px}.course-aside h2{font-size:17px}.course-aside li{font-size:14px;line-height:1.8}.course-aside ul{padding-left:20px}.course-sources summary{cursor:pointer;color:#087f70;font-weight:650}.course-sources .resource-list{margin-top:18px}.course-footer{margin:26px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.course-footer p{width:100%;text-align:center}.exercise-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.exercise-nav button{flex:1;white-space:nowrap}.exercise-card h2{font-size:20px}.evidence{font-family:ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;background:#152c29;color:#d6eee5;padding:18px;border-radius:12px;font-size:14px;line-height:1.8}.answer-form{display:grid;gap:18px;margin-top:24px}.answer-form label{font-size:15px;font-weight:600;line-height:1.7}.answer-form input,.answer-form select{width:100%;font-weight:400;font-size:16px}.answer-form [aria-invalid=true]{border-color:#b94e4e}.field-feedback{font-size:13px;font-weight:400;color:#8c3d3d}.exercise-result.success{color:#087f70}.exercise-result.error{color:#b43d3d}.exercise-result{border-top:1px solid #dce8df;padding-top:14px}.order-pool{display:grid;gap:10px}.order-pool button{justify-content:flex-start;text-align:left;line-height:1.6}.order-list{padding-left:24px}.order-list li{padding:12px 0;border-bottom:1px solid #e5eee8}.order-list li span{display:block;margin-bottom:8px}.order-list button{font-size:12px;padding:6px 10px;min-height:32px;margin-right:6px}.evidence-buttons button{margin-top:12px}.simulation-box{padding:22px;background:#f2f8f4;border-radius:14px;margin:26px 0}.simulation-box label{margin:16px 0}.worked-steps li{padding:10px 0}.pass-list{list-style:none;padding:0}.pass-list li{padding:12px 16px;border:1px solid #d9e6df;border-radius:10px;margin:10px 0}.course-paper textarea{width:100%;font-size:16px}.course-paper .example{padding:18px;background:#f5faf7;border-radius:10px}.course-paper .notice{font-size:14px}.course-top .eyebrow{letter-spacing:1px}.course-paper input[type=checkbox]{width:auto}#course-content:focus{outline:none}@media(max-width:1000px){.learning-body{grid-template-columns:minmax(0,1fr)}.course-aside{grid-template-columns:1fr 1fr}}@media(max-width:650px){#course-view{padding:0 14px 28px}.course-sticky{padding-top:12px}.course-top{align-items:flex-start;gap:10px;flex-direction:column}.course-top .eyebrow{font-size:10px}.course-sticky h1{font-size:26px;margin:12px 0}.course-tabs{gap:6px}.course-tabs button{padding:9px 12px;font-size:13px;min-width:70px}.course-paper{padding:20px;border-radius:14px;scroll-margin-top:215px}.course-paper p,.course-paper li{font-size:15px;line-height:1.9}.course-paper h2{font-size:20px}.course-lead{font-size:16px!important}.course-aside{grid-template-columns:1fr}.learning-body{gap:18px;margin-top:18px}.exercise-nav{gap:6px}.exercise-nav button{font-size:13px;padding:10px 8px}.simulation-box{padding:16px}.evidence{font-size:12px;padding:14px}.mistake-card{padding:16px}.course-paper .row{align-items:stretch}.answer-form .row button{flex:1}.course-footer button{flex:1}}
@media(max-width:650px){.answer-form .row{display:grid;grid-template-columns:1fr 1fr}.answer-form .row button[type=submit]{grid-column:1 / -1}.exercise-card h2{font-size:17px;line-height:1.85;font-weight:650}.answer-form .row button{min-width:0}}

