*{box-sizing:border-box}body{margin:0;background:#f4f7fa;color:#203348;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:15px;line-height:1.75}a{color:#147c73;text-decoration:none}button,input,textarea{font:inherit}button,a.primary{cursor:pointer;border:1px solid #cedddf;border-radius:10px;background:#fff;color:#254652;padding:9px 15px}button:hover{background:#eaf5f2}button:disabled{opacity:.45;cursor:default}.primary,button.primary{background:#117a70;color:#fff;border-color:#117a70;display:inline-block}.primary:hover{background:#09665d}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8ed4c4;outline-offset:3px}[hidden]{display:none!important}.topbar{background:#fff;border-bottom:1px solid #dde8e9;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;color:#203348}.brand strong{font-size:21px;display:block}.brand small{display:block;color:#748894;font-size:12px}.mark{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#117a70;color:#fff;font-size:22px}.topbar nav{display:flex;gap:24px;font-size:14px}main{max-width:1720px;margin:24px auto;padding:0 24px;display:grid;grid-template-columns:260px minmax(420px,1fr) 330px;gap:22px;align-items:start}.sidebar{background:#fff;border:1px solid #dee7eb;border-radius:16px;overflow:hidden;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow-y:auto}.sidebar-head{padding:22px 20px;border-bottom:1px solid #e9eef1}.eyebrow,.meta{font-size:12px;letter-spacing:.06em;color:#147c73}h1{font-size:20px;line-height:1.45;margin:8px 0}h2{font-size:24px;line-height:1.45;margin:9px 0 14px}h3{font-size:16px;margin:0 0 10px}p{margin:8px 0 14px}#progress-copy{font-size:12px;color:#657e87;margin:10px 0 6px}progress{width:100%;height:7px;accent-color:#117a70;display:block;margin-bottom:17px}input,textarea{width:100%;border:1px solid #cfdee4;border-radius:9px;padding:9px 11px;background:#fff;color:#203348;min-width:0}#search{font-size:12px}.group{padding:14px 10px 4px}.group-heading{display:flex;justify-content:space-between;gap:8px;margin:0 8px 8px;font-size:13px;font-weight:700}.group-heading small{font-size:10px;color:#7a8e96;font-weight:400}.lesson-button{display:flex;width:100%;align-items:flex-start;text-align:left;gap:8px;border:0;padding:9px 10px;font-size:12px;line-height:1.5;margin:2px 0}.lesson-button[aria-current=true]{background:#e6f4ef;color:#09665d;font-weight:700}.lesson-button span:first-child{color:#168b75;min-width:14px}.lesson-card,.tool-card{background:#fff;border:1px solid #dee7eb;border-radius:16px;padding:28px;margin-bottom:20px}.lesson-card section{margin-top:26px}.goal{padding-bottom:18px;border-bottom:1px solid #edf1f3;color:#657e87}.lesson-card ol,.lesson-card ul{padding-left:23px}.lesson-card li{margin:9px 0}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#eff5f6;padding:17px;border-radius:10px;font-family:Consolas,"Microsoft YaHei",monospace;font-size:14px;color:#1c5c61;line-height:1.8}.pitfall{background:#fff8e9;border-left:3px solid #d6aa5e;border-radius:7px;padding:16px 18px}.pitfall ul{margin-bottom:0}.references{border-top:1px solid #edf1f3;padding-top:16px;margin-top:24px;font-size:12px}.references a,.source-panel a{display:block;margin:8px 0}.origin,.muted{font-size:12px;color:#7c8d95}.lesson-pager{display:flex;justify-content:space-between;margin-top:22px}.tools{min-width:0}.tool-card{padding:21px}.tool-card h2{font-size:18px}.tool-card>p{font-size:12px;color:#68818b}.tool-card pre{font-size:12px;padding:12px}.calc-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:17px 0}.calc-inputs label{font-size:11px;line-height:1.5}.calc-inputs input{margin-top:5px;font-size:14px}.calc-result{border-top:1px solid #e5eeee;margin-top:18px;padding-top:12px}.calc-result p{display:flex;justify-content:space-between;gap:12px;font-size:12px}.calc-result strong{text-align:right;overflow-wrap:anywhere;color:#116e67}.notes label{font-size:12px;display:block;margin:15px 0 7px}.notes textarea{font-size:13px;min-height:110px;resize:vertical}.notes #work{min-height:170px}.save-row{display:flex;align-items:center;gap:10px;margin:14px 0}.save-row span{font-size:11px;color:#657e87}.notes>.primary{width:100%}.source-panel{padding:18px;font-size:12px;border-top:1px solid #e9eef1;margin-top:15px}.source-panel summary{cursor:pointer}.source-panel p{font-size:11px;color:#71858e}.notice{max-width:650px;background:#fff;margin:60px auto;padding:32px;border:1px solid #dce7e9;border-radius:16px}.quiz-options{display:grid;gap:10px;margin:17px 0}.quiz-options label{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #dfebed;border-radius:10px}.quiz-options input{width:auto;accent-color:#117a70;flex:none;margin-top:7px}.quiz-number{display:flex;align-items:center;gap:12px;max-width:300px;margin:18px 0}.quiz-result{padding:12px 0;color:#116e67}.answer{border-top:1px solid #e6edef;padding-top:14px;margin-top:18px}.answer summary{cursor:pointer;color:#127d70}.answer p{color:#516c78;font-size:14px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:#183c42;color:#fff;padding:12px 22px;border-radius:12px;box-shadow:0 8px 30px #16313b22;z-index:10}#save-state.error{color:#b3432f}@media(max-width:1250px){main{grid-template-columns:230px minmax(0,1fr)}.tools{grid-column:2;display:grid;grid-template-columns:1fr 1fr;gap:18px}.sidebar{grid-row:1/3}.lesson-card{padding:24px}.tools>.tool-card{margin:0}}@media(max-width:760px){.topbar{padding:16px;align-items:flex-start}.topbar nav{font-size:12px;gap:10px;flex-direction:column}.brand strong{font-size:18px}.brand small{font-size:10px}main{display:flex;flex-direction:column;padding:0 14px;margin:16px auto;gap:16px}.sidebar{position:static;max-height:320px;width:100%}.study,.tools{width:100%}.tools{display:flex;flex-direction:column}.lesson-card,.tool-card{padding:20px}.lesson-card h2{font-size:22px}.notice{margin:30px 14px}.sidebar-head{padding:16px}.sidebar #navigation{padding-bottom:10px}}