
:root{--ink:#203c36;--green:#145b49;--muted:#75837c;--line:#e3e8e2;--bg:#f5f7f2;--orange:#bd6c3b}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.65 -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}
button,select,input{font:inherit}
button,a,select{touch-action:manipulation}
button{cursor:pointer}
a{color:var(--green)}
button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #c4a45c;outline-offset:3px}
.top{height:83px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px}
.mark{background:var(--green);color:white;border-radius:10px;width:37px;height:37px;display:grid;place-items:center;font-size:26px;font-weight:bold}
.brand strong{font-size:21px;letter-spacing:2px}
.brand small{font-size:11px;letter-spacing:2px;color:var(--muted);display:block}
.nav{display:flex;gap:30px;align-items:center;transition:transform .28s ease}
.nav a{text-decoration:none;color:var(--muted);font-size:13px}
.nav .active{color:var(--green);font-weight:600}
main{max-width:1320px;margin:auto;padding:43px 44px 24px}
.eyebrow{font-size:11px;letter-spacing:2px;color:var(--green);font-weight:600}
.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:31px}
.intro h1{font-size:32px;letter-spacing:-.8px;margin:9px 0}
.intro p{color:var(--muted);margin:0}
.region{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}
.region b{font-size:36px;color:#97aaa0;font-weight:300}
.layout{display:grid;grid-template-columns:300px 1fr;gap:25px;align-items:start}
.panel{background:#fff;border:1px solid var(--line);border-radius:14px}
.config{padding:25px;position:sticky;top:20px}
.section-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:6px}
.num{font-size:11px;background:#edf2eb;color:var(--green);padding:3px 7px;border-radius:4px}
.hint{color:var(--muted);font-size:12px}
.field{margin-top:25px}
.field label{display:block;font-size:12px;font-weight:600;margin-bottom:9px}
.field label span{color:var(--muted);font-size:10px;font-weight:400;float:right}
select{width:100%;border:1px solid #dbe3dc;background:#fcfdfb;color:var(--ink);border-radius:7px;padding:11px 9px;cursor:pointer}
.channels{display:grid;gap:7px}
.channel{background:white;color:#697a70;border:1px solid var(--line);border-radius:7px;padding:10px 12px;text-align:left;display:flex;justify-content:space-between}
.channel[aria-pressed=true]{border-color:var(--green);background:#edf5ef;color:var(--green)}
.channel[aria-pressed=true]::after{content:'✓'}
.primary{border:0;color:white;background:var(--green);padding:13px 20px;border-radius:7px;font-weight:600;width:100%;margin-top:26px}
.primary:hover{background:#0d4436}
.summary{background:#193f34;border-radius:14px;padding:26px 29px;color:#fff;display:grid;grid-template-columns:1fr auto;gap:15px;position:relative;overflow:hidden}
.summary:before{content:'';position:absolute;width:220px;height:220px;border:1px solid #ffffff12;border-radius:50%;right:-30px;top:-90px;pointer-events:none}
.summary small{color:#b9cebf;font-size:11px;letter-spacing:1px}
.summary h2{font-size:23px;margin:10px 0 6px}
.summary p{font-size:12px;color:#c5d5cb;margin:0;max-width:480px}
.tags{display:flex;gap:7px;margin-top:18px}
.tags span{font-size:10px;padding:3px 9px;border:1px solid #ffffff28;border-radius:4px;color:#d7e4da}
.score{align-self:center;text-align:center;min-width:107px}
.ring{--v:0%;background:conic-gradient(#bdd6b1 var(--v),#ffffff18 0);width:102px;height:102px;border-radius:50%;display:grid;place-items:center}
.ring>div{width:86px;height:86px;border-radius:50%;background:#193f34;display:grid;place-content:center}
.ring b{font-size:29px;line-height:1.2;font-weight:500}
.ring span{font-size:10px;color:#bed0c3}
.score>small{display:block;margin-top:8px;font-size:10px;letter-spacing:0}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:17px 0 24px}
.metric{padding:15px 18px;display:flex;justify-content:space-between;align-items:center}
.metric span{font-size:11px;color:var(--muted)}
.metric b{font-weight:500;font-size:23px}
.metric b.orange{color:var(--orange)}
.listhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.listhead h2{font-size:18px;margin:0}
.actions{display:flex;gap:7px}
.ghost{border:1px solid #dbe2d9;border-radius:6px;padding:7px 11px;background:white;color:#53685c;font-size:11px}
.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:17px}
.sticky-bar{position:sticky;top:8px;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;padding:9px 0;border-bottom:1px solid var(--line)}
.sticky-bar .filters{margin-bottom:0}
.mini-score{display:flex;align-items:baseline;gap:6px;white-space:nowrap;color:var(--muted);font-size:11px}
.mini-score b{font-size:19px;color:var(--green)}
.filter{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:7px 11px;font-size:12px}
.filter.on{background:#e3ece1;color:var(--green);font-weight:600}
.group{padding:0 22px;margin-bottom:12px}
.grouphead{padding:17px 0 13px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}
.grouphead h3{font-size:14px;margin:0;flex:1}
.grouphead small{font-size:11px;color:var(--muted)}
.item{padding:16px 0;display:flex;gap:12px;border-bottom:1px solid #edf0eb}
.item:last-child{border-bottom:0}
.item input{appearance:none;flex-shrink:0;width:18px;height:18px;border:1px solid #c7d3c8;border-radius:4px;cursor:pointer;margin:3px 0 0;display:grid;place-items:center}
.item input:checked{background:var(--green);border-color:var(--green)}
.item input:checked:after{content:'✓';color:white;font-size:12px}
.item .body{flex:1}
.item label{font-size:13px;font-weight:500;cursor:pointer}
.item p{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.8}
.item.done label{color:#87958a;text-decoration:line-through}
.priority{font-size:9px;padding:2px 6px;border-radius:4px;background:#faf1e8;color:#b66b36;height:21px;white-space:nowrap}
.priority.normal{background:#f0f4ee;color:#82907f}
.empty{padding:38px;text-align:center;color:var(--muted)}
.note{background:#eef2e9;border-radius:10px;padding:17px 20px;color:#71816f;font-size:11px;margin-top:19px}
.note strong{color:#4b6651}
.sources{font-size:11px;color:var(--muted);margin-top:19px}
.sources summary{cursor:pointer}
.sources a{display:inline-block;margin:10px 15px 0 0}
.footer{display:flex;justify-content:space-between;font-size:10px;color:#8b978e;padding:27px 0 9px;border-top:1px solid var(--line);margin-top:32px}
.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#203f34;color:white;padding:10px 20px;border-radius:8px;display:none;z-index:10;font-size:12px}
.mobileonly{display:none}
@media(max-width:1050px){main{padding:30px 22px}
.layout{grid-template-columns:270px 1fr}
.summary{padding:23px}
.summary h2{font-size:19px}
.region{display:none}
.nav{gap:18px}
}
@media(max-width:760px){.top{height:70px;padding:0 20px}
.nav a{display:none}
.intro h1{font-size:25px}
.intro p{font-size:12px}
.layout{grid-template-columns:1fr}
.config{position:static}
.config .field{margin-top:17px}
.channels{grid-template-columns:repeat(3,1fr)}
.channel{font-size:11px;padding:10px 7px}
.primary{margin-top:19px}
.summary{grid-template-columns:1fr auto;padding:20px}
.summary h2{font-size:18px}
.ring{width:82px;height:82px}
.ring>div{width:68px;height:68px}
.ring b{font-size:24px}
.score{min-width:82px}
.metrics{gap:7px}
.metric{padding:12px}
.metric b{font-size:20px}
.metric span{font-size:10px}
.listhead{align-items:start;gap:10px}
.listhead h2{font-size:16px}
.ghost{padding:6px 8px}
.group{padding:0 16px}
.footer{gap:15px}
.tags{flex-wrap:wrap}
.item p{font-size:12px}
}
@media print{.top,.intro,.config,.actions,.filters,.sticky-bar,.footer,.toast{display:none}
.layout{display:block}
main{padding:0}
.summary{print-color-adjust:exact}
.group,.item{break-inside:avoid}
.note{font-size:10px}
.metric{border:1px solid #ddd}
.sources{display:block}
}

.acceptance{margin-top:8px;font-size:11px;color:#6e806e}
.acceptance summary{cursor:pointer;color:#416c51;width:fit-content}
.acceptance summary span{display:inline-block;font-size:9px;background:#f0f4ee;color:#7b8c79;padding:1px 6px;border-radius:4px;margin-left:7px}
.acceptance p{background:#f7f9f4;border-left:2px solid #c9d8c1;padding:9px 12px;margin-top:8px}
.acceptance strong{font-weight:500;color:#526d51}
@media print{.acceptance p{display:block}
.acceptance{color:#444}
}


.local-brief{margin-top:15px;padding:18px 21px;background:#edf3e8;border:1px solid #dbe6d4;border-radius:10px}
.local-head{display:flex;gap:10px;align-items:center;justify-content:space-between}
.local-head strong{font-size:14px}
.local-head span{font-size:10px;color:#7b8b72}
.local-brief p{font-size:12px;margin:9px 0;color:#50674b}
.local-brief small{font-size:10px;color:#7d8c75}
.source-legend{display:flex;flex-wrap:wrap;gap:5px 13px;font-size:10px;color:#698062;margin:10px 0}
.rule-kind{font-size:10px;color:#73856e;margin-top:7px;line-height:1.7}
.rule-kind.unverified{color:#a36d30}
.item-sources{display:flex;flex-wrap:wrap;gap:3px 10px;margin-top:7px;font-size:10px}
.item-sources a{color:#3f7858;text-underline-offset:3px}
.item-sources span{color:#8b9686}
.source-entry{padding:8px 0;border-bottom:1px solid var(--line)}
.source-entry p{font-size:11px;margin:4px 0;color:var(--muted)}
.source-entry a{margin:0}
.config{padding:22px}
.field{margin-top:19px}
@media(max-width:760px){.local-head{align-items:start;flex-direction:column}
.local-brief{padding:15px}
.item-sources{font-size:11px}
.rule-kind{font-size:11px}
}

/* 右侧边栏：参考资料 / 评估方法 */
:root{--drawer-w:520px;--nav-shift:0px}
body.drawer-open .nav{transform:translateX(calc(-1*var(--nav-shift)))}
.drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:var(--drawer-w);max-width:94vw;background:#dff0e0;border-left:1px solid #bcd8bf;box-shadow:-14px 0 34px rgba(16,54,42,.18);transform:translateX(105%);transition:transform .28s ease;z-index:60;overflow-y:auto;padding:20px 26px 30px}
body.drawer-open .drawer{transform:translateX(0)}
.drawer-backdrop{display:none}
.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.drawer-head strong{font-size:16px;color:var(--green)}
.drawer-close{border:1px solid #b9d4bd;background:#fff;color:#416c51;width:30px;height:30px;border-radius:8px;font-size:16px;line-height:1;padding:0}
.drawer h3{margin:4px 0 8px;font-size:15px;color:var(--green)}
.drawer-note{font-size:12px;color:#55705d;margin:0 0 10px}
.drawer-link{display:block;padding:9px 0;border-bottom:1px solid rgba(20,91,73,.14);text-decoration:none;font-size:13px;color:var(--green)}
.drawer-link:hover{text-decoration:underline}
.drawer-sub{margin:18px 0 4px;font-size:12px;font-weight:600;color:#3f6b52}
.drawer .sources{margin-top:0;color:#4a6354}
.drawer .sources summary{color:#3f6b52;font-weight:600}
.drawer .source-entry{border-bottom-color:rgba(20,91,73,.12)}
.drawer .note{margin-top:0}
@media print{.drawer,.drawer-backdrop{display:none}}

