:root{--ink:#202b25;--muted:#627068;--green:#244d3c;--green-soft:#e9f0e9;--paper:#fff;--canvas:#f6f6f1;--line:#dde2da;--amber:#885b24;--amber-soft:#faf4e9;--radius:12px;--shadow:0 8px 30px rgba(30,49,37,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--canvas);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.65}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #3c7556;outline-offset:3px}::selection{background:#d5e5d3;color:#163722}input,textarea{caret-color:var(--green)}button:disabled{cursor:default;opacity:.5}button{color:inherit}h1,h2,h3,h4,p{margin:0}h1{font-size:34px;font-weight:650;line-height:1.4;letter-spacing:-.025em;text-wrap:balance}h2{font-size:23px;line-height:1.45;font-weight:650;letter-spacing:-.02em}h3{font-size:17px;font-weight:650}h4{font-size:15px}p+p{margin-top:12px}svg{flex-shrink:0}ul,ol{margin:12px 0;padding-left:23px}li+li{margin-top:9px}blockquote{margin:14px 0;font-size:16px;line-height:1.9}small,.small{font-size:12px}button{border:0}a{text-decoration-thickness:1px}.skip-link{position:fixed;top:-70px;left:15px;background:var(--green);color:white;padding:10px 16px;z-index:50}.skip-link:focus{top:10px}.sidebar{position:fixed;inset:0 auto 0 0;width:246px;padding:30px 20px 22px;background:#eeefe7;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;text-decoration:none}.brand svg{height:36px;width:36px}.brand strong{font-size:20px;letter-spacing:.02em}.brand small{display:block;font-size:11px;letter-spacing:.04em;color:var(--muted);margin-top:0}.nav-label{font-size:12px;color:var(--muted);margin:35px 12px 12px}.chapter-link{color:var(--ink);text-decoration:none;display:flex;gap:10px;align-items:flex-start;padding:11px 12px;font-weight:600}.chapter-number{font-size:11px;line-height:24px;border:1px solid #bccbbd;border-radius:4px;min-width:24px;text-align:center}.step-nav{margin:10px 0 0;padding:0;list-style:none}.step-nav li+li{margin-top:3px}.step-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:7px;color:#526157;text-decoration:none;font-size:13px;line-height:1.55}.step-nav a:hover{background:#e3e8de}.step-nav a.active{background:var(--green);color:#fff}.step-num{font-size:11px;font-variant-numeric:tabular-nums;opacity:.8;width:17px}.read-dot{margin-left:auto;width:7px;height:7px;border-radius:50%;background:#769b6a}.active .read-dot{background:#d1e5aa}.sidebar-bottom{margin-top:auto;padding:28px 12px 0}.sidebar-bottom a{display:block;text-decoration:none;font-size:13px;margin-bottom:13px}.progress-track{height:3px;background:#d5ddd1;overflow:hidden;margin-top:10px}.progress-fill{height:100%;width:0;background:var(--green);transition:width .2s}.reading-count{display:flex;justify-content:space-between;font-size:11px;color:#536450}.storage-note{font-size:11px;color:var(--muted);margin-top:9px}.workspace{margin-left:246px;min-height:100vh}.topbar{height:79px;border-bottom:1px solid var(--line);padding:0 44px;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#fcfcf9}.breadcrumb{font-size:12px;color:#536158;white-space:nowrap}.breadcrumb span{margin:0 12px;color:#98a197}.search-wrap{max-width:340px;width:40%;display:flex;align-items:center;border:1px solid var(--line);background:white;border-radius:7px;padding:8px 11px;gap:9px}.search-wrap svg{height:16px;width:16px;color:#68796c}.search-wrap input{width:100%;min-width:0;border:0;background:none;font-size:12px;outline:none}.search-wrap input::placeholder{color:#6c796f}.search-wrap:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #e2eadd}.search-wrap kbd{color:var(--muted);font-size:11px;border:1px solid var(--line);padding:0 5px;border-radius:3px}.view-tabs{padding:0 44px;display:flex;gap:30px;border-bottom:1px solid var(--line);background:#fcfcf9;overflow-x:auto;white-space:nowrap}.view-tabs a{display:block;padding:17px 0 15px;text-decoration:none;color:var(--muted);font-size:13px;border-bottom:2px solid transparent}.view-tabs a.active{color:var(--green);border-color:var(--green);font-weight:650}main{max-width:1370px;margin:auto;padding:38px 44px 50px;min-height:calc(100vh - 220px)}.chapter-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:30px}.chapter-head h1{max-width:770px}.chapter-head p{max-width:700px;color:var(--muted);font-size:14px;margin-top:13px;line-height:1.85}.edition{white-space:nowrap;border:1px solid #bccbbd;border-radius:5px;color:#426147;font-size:11px;padding:4px 8px;margin-top:8px}.head-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin-top:16px}.head-meta a{font-size:12px}.lesson-grid{display:grid;grid-template-columns:minmax(0,1fr) 242px;align-items:start;gap:24px}.article{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 32px;min-width:0}.step-heading{display:flex;align-items:flex-start;gap:18px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}.step-index{font-size:40px;line-height:1;font-weight:450;color:#a6b5a6;font-variant-numeric:tabular-nums;letter-spacing:-.04em;padding-top:4px}.step-heading p{color:var(--muted);font-size:14px;margin-top:8px}.article .intro{font-size:17px;line-height:1.9;max-width:72ch}.article-section{margin-top:29px}.article-section>h3{margin-bottom:10px}.article-section p,.article-section li{font-size:15px;line-height:1.9}.section-label{display:flex;align-items:center;gap:8px}.badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;line-height:1.7;font-weight:500;vertical-align:middle;background:#edf1ea;color:#486341;white-space:nowrap}.badge.suggestion{background:var(--amber-soft);color:var(--amber)}.branch-list{border-top:1px solid var(--line);margin-top:15px}.branch{padding:15px 0;border-bottom:1px solid var(--line)}.branch b{display:block;font-size:14px;font-weight:650;color:var(--green);margin-bottom:4px}.branch p{font-size:14px;color:#4b5d50}.example{background:#f2f5ee;padding:18px 20px;margin-top:25px;border-radius:8px}.example h3{font-size:13px;color:#436344;margin-bottom:8px}.example p{font-size:14px;line-height:1.9}.output-line{display:flex;gap:12px;align-items:flex-start;margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-size:14px}.output-line svg{height:20px;width:20px;color:var(--green);margin-top:2px}.output-line b{display:block;margin-bottom:4px}.aside-panel{border-top:2px solid #8c9d81;padding-top:18px;margin-bottom:30px}.aside-panel h3{font-size:14px;margin-bottom:12px}.aside-panel p,.aside-panel li{font-size:12px;line-height:1.85;color:#5c6b5e}.aside-panel ul,.aside-panel ol{padding-left:18px}.aside-panel .source-time{font-variant-numeric:tabular-nums;color:var(--green);font-size:12px}.aside-panel blockquote{font-size:13px;color:#445648;line-height:1.9}.aside-panel a{font-size:12px}.aside-panel .aside-note{background:#edeee7;padding:10px 12px;margin-top:12px;border-radius:5px;font-size:11px}.operation summary{font-size:13px;cursor:pointer;color:var(--green);padding:8px 0}.operation details p{font-size:12px}.operation-title{font-size:13px;font-weight:600;color:var(--ink)!important}.article-actions{margin-top:28px;display:flex;gap:12px;justify-content:space-between;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:10px 15px;background:var(--green);color:white;text-decoration:none;font-size:13px;font-weight:550;line-height:1.5;min-height:40px}.button:hover{background:#173c2c}.button.secondary{background:#fff;border:1px solid #c9d2c5;color:#344e3b}.button.secondary:hover{background:#f0f3eb}.button.ghost{background:transparent;color:var(--green);padding-left:0}.button svg{width:16px;height:16px}.lesson-end{margin-top:22px;border-top:1px solid var(--line);padding-top:18px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.lesson-end a{font-size:12px}.page-footer{margin:0 44px;padding:24px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted)}.footer-dot{padding:0 5px}.menu-toggle{display:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:none;width:40px;height:40px;border-radius:5px}.icon-button:hover{background:#e6ecdf}.icon-button svg{height:21px;width:21px}.menu-toggle{display:none}.notice{padding:13px 17px;border-radius:7px;background:#ebece4;font-size:13px;line-height:1.85;color:#536249;margin-bottom:22px}.notice.warning{background:var(--amber-soft);color:#78531f}.checklist-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;font-size:13px;color:var(--muted)}.checklist{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:white}.check-row{padding:22px 26px;border-bottom:1px solid var(--line)}.check-row:last-child{border:0}.check-label{display:flex;align-items:flex-start;gap:14px;cursor:pointer}.check-label input{height:19px;width:19px;accent-color:var(--green);flex-shrink:0;margin-top:5px}.check-label strong{font-size:16px;font-weight:600}.check-row.checked{background:#f4f7f0}.check-detail{margin:8px 0 0 33px;font-size:13px;color:var(--muted)}.check-detail a{display:inline-block;margin-top:7px;font-size:12px}.check-row details{margin-top:12px}.check-row details summary{cursor:pointer;color:#49634d;font-size:12px}.check-row details p{margin-top:8px}.section-title{margin:30px 0 15px}.practice-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(270px,.9fr);gap:25px;align-items:start}.form-sheet,.results-sheet{border:1px solid var(--line);border-radius:var(--radius);background:white;padding:26px}.form-sheet h2,.results-sheet h2{font-size:20px;margin-bottom:20px}.field{display:block;margin-bottom:18px}.field>span{display:block;font-size:13px;font-weight:550;margin-bottom:7px}.field input,.field textarea,.stage-input{width:100%;border:1px solid #c7d0c3;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink);font-size:14px;min-height:42px}.field textarea{resize:vertical;min-height:85px;line-height:1.8}.field input::placeholder,.field textarea::placeholder{color:#6a776e}.field-hint{font-size:12px;color:var(--muted);margin:8px 0 17px}.stage-grid{display:grid;grid-template-columns:56px 1fr 1fr;gap:10px;align-items:center;margin:10px 0}.stage-grid span{font-size:12px;color:var(--muted)}.stage-grid .stage-name{color:var(--ink);font-weight:550}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-divider{border:0;border-top:1px solid var(--line);margin:23px 0}.result-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.result-row strong{font-size:24px;line-height:1.1;font-weight:550;font-variant-numeric:tabular-nums}.result-row strong small{font-size:12px;color:var(--muted);margin-left:3px;font-weight:400}.results-sheet .result-row:first-of-type{padding-top:0}.result-formula{font-size:12px;line-height:1.9;color:var(--muted);margin-top:17px}.comparison{margin-top:22px;padding:17px;background:var(--green-soft);border-radius:7px;font-size:13px;line-height:1.9}.comparison b{font-weight:600;color:var(--green)}.bar-chart{margin-top:23px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end;height:150px}.bar-group{height:150px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.bar-amount{font-size:12px;color:#426045}.bar{width:100%;max-width:75px;background:#8faa7c;min-height:2px;border-radius:4px 4px 0 0}.bar-group:last-child .bar{background:var(--green)}.bar-label{font-size:11px;color:var(--muted);white-space:nowrap}.save-status{font-size:12px;color:var(--muted);margin-top:12px}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.source-list{display:grid;gap:0;border-top:1px solid var(--line)}.source-entry{display:grid;grid-template-columns:130px 1fr;gap:25px;padding:27px 0;border-bottom:1px solid var(--line);scroll-margin-top:30px}.source-entry:target{background:#eaf0e4}.source-entry time{font-size:13px;color:var(--green);font-variant-numeric:tabular-nums}.source-entry h2{font-size:18px}.source-entry blockquote{font-size:15px;line-height:1.9;background:white;padding:18px 20px;border:1px solid var(--line);border-radius:8px}.source-entry p{font-size:13px;color:var(--muted)}.source-meta{display:flex;gap:22px;flex-wrap:wrap;margin:20px 0;color:var(--muted);font-size:12px}.term-list{border-top:1px solid var(--line)}.term-row{display:grid;grid-template-columns:155px 1fr;gap:24px;padding:23px 0;border-bottom:1px solid var(--line)}.term-row h2{font-size:17px}.term-row p{font-size:15px;line-height:1.9}.term-row .term-example{font-size:13px;color:var(--muted);margin-top:8px}.search-results{border-top:1px solid var(--line);margin-top:25px}.search-result{display:block;padding:22px 0;text-decoration:none;border-bottom:1px solid var(--line)}.search-result:hover h2{text-decoration:underline;text-underline-offset:5px}.search-result h2{font-size:18px;color:var(--ink);margin:6px 0}.search-result p{font-size:13px;color:var(--muted);line-height:1.85}.search-type{font-size:11px;color:#557250}.empty{padding:50px 0;max-width:600px}.empty p{color:var(--muted);margin:14px 0 20px}.toast{position:fixed;bottom:24px;left:calc(50% + 100px);transform:translateX(-50%);background:#244d3c;color:white;border-radius:8px;padding:12px 20px;font-size:13px;max-width:90vw;z-index:60;box-shadow:var(--shadow)}[hidden]{display:none!important}.noscript{position:fixed;inset:100px 20px auto;padding:20px;background:white;z-index:60}.storage-warning{background:var(--amber-soft);color:var(--amber);padding:12px 16px;font-size:13px}.muted{color:var(--muted)}.print-title{display:none}
@media(min-width:1650px){main{padding-top:50px}.article{padding:36px 42px}.lesson-grid{grid-template-columns:minmax(0,1fr) 265px;gap:35px}}
@media(max-width:1200px){.sidebar{width:222px;padding:28px 14px}.workspace{margin-left:222px}.topbar{padding:0 28px}.view-tabs{padding:0 28px;gap:25px}main{padding:30px 28px 40px}.lesson-grid{grid-template-columns:minmax(0,1fr) 210px;gap:20px}.article{padding:25px}.page-footer{margin:0 28px}h1{font-size:29px}.practice-grid{grid-template-columns:1fr}.results-sheet{max-width:none}.practice-results{display:grid;grid-template-columns:1fr 1fr;gap:28px}.search-wrap{width:45%}}
@media(max-width:1000px){.lesson-grid{grid-template-columns:1fr}.lesson-aside{display:grid;grid-template-columns:1fr 1fr;gap:25px}.aside-panel{margin-bottom:8px}.aside-panel p,.aside-panel li{font-size:13px}.aside-panel .aside-note{font-size:12px}.search-wrap{width:50%}.breadcrumb{font-size:11px}.topbar{gap:15px}.edition{display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;width:264px;background:#eeefe7}.sidebar.open{transform:translateX(0)}.menu-scrim{position:fixed;inset:0;background:rgba(20,35,24,.3);z-index:25}.workspace{margin-left:0}.topbar{height:66px;padding:0 16px;gap:10px}.menu-toggle{display:flex;flex-shrink:0}.breadcrumb{display:none}.search-wrap{width:100%;max-width:none;padding:8px 10px}.search-wrap input{font-size:13px}.search-wrap kbd{display:none}.view-tabs{padding:0 20px;gap:25px}.view-tabs a{font-size:12px;padding-top:14px;padding-bottom:13px}main{padding:27px 20px 35px}.chapter-head{margin-bottom:24px}.chapter-head h1{font-size:26px;line-height:1.5}.chapter-head p{font-size:13px;margin-top:10px}.head-meta{font-size:11px;gap:10px;margin-top:12px}.article{padding:22px 20px;border-radius:10px}.step-heading{gap:13px;padding-bottom:20px;margin-bottom:20px}.step-index{font-size:33px}h2{font-size:20px}.step-heading p{font-size:13px}.article .intro{font-size:16px}.article-section p,.article-section li{font-size:14px;line-height:1.9}.article-section{margin-top:25px}.article-section h3{font-size:16px}.example{padding:16px}.lesson-aside{grid-template-columns:1fr;gap:20px;margin-top:6px}.aside-panel{padding-top:16px}.article-actions{gap:8px}.button{font-size:12px;padding:10px 12px}.lesson-end{gap:15px;align-items:flex-start}.page-footer{margin:0 20px;display:block;padding:20px 0;font-size:10px}.page-footer>span{display:block}.page-footer>span+span{margin-top:4px}.check-row{padding:20px 17px}.check-label{gap:11px}.check-label strong{font-size:15px}.check-detail{margin-left:30px;font-size:12px}.checklist-head{font-size:12px;gap:10px}.practice-grid{gap:20px}.form-sheet,.results-sheet{padding:22px 18px}.practice-results{display:block}.stage-grid{grid-template-columns:45px 1fr 1fr;gap:8px}.stage-input{padding:9px 8px}.two-fields{gap:10px}.result-row strong{font-size:23px}.source-entry{grid-template-columns:1fr;gap:8px;padding:23px 0}.source-entry h2{font-size:17px}.source-entry blockquote{font-size:14px;padding:16px}.term-row{grid-template-columns:1fr;gap:10px}.term-row p{font-size:14px}.toast{left:50%;bottom:20px;width:max-content;max-width:90vw}.notice{font-size:12px;padding:12px 14px}.source-meta{gap:9px;display:grid}.storage-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.sidebar,.topbar,.view-tabs,.page-footer,.article-actions,.lesson-end,.form-actions,.toast,.search-wrap,.menu-toggle{display:none!important}.workspace{margin:0}main{max-width:none;padding:0}.lesson-grid,.practice-grid{display:block}.article,.form-sheet,.results-sheet{border:0;padding:0}.lesson-aside{margin-top:25px;display:block}.chapter-head h1{font-size:24px}.article-section,.branch,.check-row,.source-entry,.term-row{break-inside:avoid}.print-title{display:block}body{background:white}.badge{border:1px solid #ccc}.checklist{border:0}.check-detail details{display:block}.notice{background:none;border:1px solid #ccc}.lesson-aside .aside-panel{margin-top:20px}}
