*{box-sizing:border-box}
:root{--green:#50c878;--green-d:#2f9e5c;--ink:#1b2a21;--sub:#5a6b62;--line:#dfeae4;--bg:#f7faf8}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",-apple-system,sans-serif;line-height:1.85;font-size:16px}
a{color:var(--green-d);text-decoration:none}
a:hover{text-decoration:underline}
.layout{display:flex;max-width:1360px;margin:0 auto;align-items:flex-start}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;width:270px;flex:0 0 270px;background:#fff;border-right:1px solid var(--line);padding:18px 0 40px}
.sidebar .brand{padding:0 18px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.sidebar .brand b{display:block;font-size:15px;color:var(--ink)}
.sidebar .brand span{font-size:12px;color:var(--sub)}
.sidebar details{border-bottom:1px solid #f0f5f2}
.sidebar summary{cursor:pointer;padding:9px 18px;font-weight:700;font-size:14px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center}
.sidebar summary::-webkit-details-marker{display:none}
.sidebar summary::after{content:"▾";color:var(--sub);font-size:11px}
.sidebar details[open] summary::after{content:"▴"}
.sidebar summary:hover{background:#f2f8f5}
.ch-title{padding:6px 18px 2px;font-size:12.5px;color:var(--green-d);font-weight:700}
.sidebar a.les{display:block;padding:5px 18px 5px 28px;font-size:13.5px;color:var(--sub);border-left:3px solid transparent}
.sidebar a.les:hover{background:#f2f8f5;color:var(--green-d)}
.sidebar a.les.on{background:#eaf6ef;color:var(--green-d);font-weight:700;border-left-color:var(--green)}
.sidebar a.les.top{padding-left:18px;font-weight:700;color:var(--green-d);background:#f4faf7;border-bottom:1px solid var(--line);border-left:3px solid var(--green)}
.main{flex:1 1 auto;min-width:0;padding:34px 46px 80px}
.crumb{font-size:13px;color:var(--sub);margin-bottom:8px}
.crumb a{color:var(--sub)}
article h1{font-size:28px;margin:0 0 6px;color:var(--ink)}
.meta{font-size:13px;color:var(--sub);margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.meta em{font-style:normal;background:#eaf6ef;color:var(--green-d);padding:2px 8px;border-radius:4px;margin-right:8px}
article h2{font-size:21px;margin:32px 0 10px;color:var(--green-d);border-left:4px solid var(--green);padding-left:10px}
article h3{font-size:17px;margin:24px 0 8px;color:#2f6b4f}
article p{margin:0 0 12px;text-indent:2em;overflow-wrap:anywhere;word-break:break-word}
article h1,article h2,article h3{overflow-wrap:anywhere;word-break:break-word}
figure{margin:18px auto;text-align:center}
figure a{display:inline-block;max-width:100%;line-height:0}
figure img{max-width:100%;height:auto;border-radius:10px;background:#fff;transition:box-shadow .15s}
figure a:hover img{box-shadow:0 4px 18px rgba(27,42,33,.14)}
a.zoom{cursor:zoom-in}
.f-strip img,.f-full img{border:1px solid var(--line);box-shadow:0 2px 10px rgba(27,42,33,.05)}
.f-med img{border:1px solid var(--line)}
.f-small img{border:1px solid var(--line)}
.f-tall img{max-height:560px;width:auto;border:1px solid var(--line)}
.img-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;align-items:center;margin:18px 0;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.img-row figure{margin:0;flex:0 1 auto;min-width:0}
.img-row figure img{max-height:280px;width:auto;border:1px solid var(--line)}
.ic{height:1.9em;width:auto;vertical-align:-.45em;margin-right:.45em;border-radius:6px}
p.has-ic{text-indent:0;font-weight:700}
pre{background:#f1f6f3;border:1px solid var(--line);border-left:4px solid var(--green);
border-radius:8px;padding:12px 16px;overflow-x:auto;font-family:Consolas,"Courier New",monospace;
font-size:13.5px;line-height:1.6;color:#234;white-space:pre;margin:14px 0}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:44px;padding-top:20px;border-top:1px solid var(--line)}
.pager a{flex:1 1 0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:14px;color:var(--ink)}
.pager a:hover{border-color:var(--green);background:#f4faf7;text-decoration:none}
.pager a.next{text-align:right}
.pager span{display:block;font-size:12px;color:var(--sub);margin-bottom:3px}
.hero{background:linear-gradient(135deg,#50c878,#2f9e5c);color:#fff;border-radius:16px;padding:40px 44px;margin-bottom:30px}
.hero h1{margin:0 0 8px;font-size:32px}
.hero p{margin:0;opacity:.95;font-size:15px}
.stats{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 22px}
.stat b{display:block;font-size:24px;color:var(--green-d)}
.stat span{font-size:12px;color:var(--sub)}
.part-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:18px}
.part-card h3{margin:0 0 4px;font-size:19px;color:var(--green-d)}
.part-card h3 a{color:var(--green-d)}
.part-card .d{font-size:13px;color:var(--sub);margin-bottom:12px}
.lsn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.lsn-grid a{display:flex;gap:8px;align-items:baseline;background:#f7fbf9;border:1px solid var(--line);
border-radius:8px;padding:7px 11px;font-size:13.5px;color:var(--ink)}
.lsn-grid a:hover{border-color:var(--green);background:#eaf6ef;text-decoration:none}
.lsn-grid .n{color:var(--green-d);font-weight:700;font-size:12px;min-width:22px}
.lsn-grid .k{color:var(--sub);font-size:12px}
.sec-title{font-size:20px;color:var(--green-d);margin:34px 0 12px;padding-top:22px;border-top:2px solid var(--line)}
.kp-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 18px;margin-bottom:12px}
.kp-block h4{margin:0 0 2px;font-size:16px;color:var(--green-d)}
.kp-block .h{font-size:12px;color:var(--sub);margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{background:#f2f8f5;border:1px solid var(--line);border-radius:20px;padding:4px 13px;font-size:13px;color:var(--green-d);line-height:1.6}
.chips a:hover{background:var(--green);color:#fff;border-color:var(--green);text-decoration:none}
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.tabs a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 18px;font-size:14px;font-weight:700;color:var(--green-d)}
.tabs a:hover{background:#eaf6ef;text-decoration:none}
footer{margin-top:50px;text-align:center;color:var(--sub);font-size:12px}
@media(max-width:900px){.layout{display:block}.sidebar{position:static;width:auto;height:auto;border-right:none;border-bottom:1px solid var(--line)}.main{padding:20px 18px 60px}}
