/* 必要界面规则来自指定公开pm.html（2026-10-20只读核对）；不含原站脚本、内容库、私有数据。 */
:root{--t1:#1f2937;--t2:#4b5563;--t3:#6b7280;--bg:#f3f4f6;--card:#fff;--line:#e5e7eb;--line2:#d1d5db;--blue:#2563eb;--blue-bg:#eff6ff;--red:#dc2626;--red-bg:#fef2f2;--amber:#d97706;--amber-bg:#fffbeb;--green:#059669;--green-bg:#f0fdf4}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;scroll-padding-top:210px}
body{margin:0;background:var(--bg);color:var(--t1);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;font-size:16px;line-height:1.65;padding-bottom:calc(72px + env(safe-area-inset-bottom))}
button,input,textarea{font-family:inherit}
button{cursor:pointer;color:inherit}
[hidden]{display:none!important}
button:disabled{cursor:default;color:var(--t3)}
button.primary:disabled{color:#fff;opacity:.7}
button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.hdwrap{position:sticky;top:0;z-index:60;background:var(--card);padding-bottom:8px;border-bottom:1px solid var(--line)}
.top{padding:10px 14px 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.top h1{font-size:17px;font-weight:500;margin:0;flex:1;min-width:100px;letter-spacing:-.3px}
.btn{border:1px solid var(--line2);background:var(--card);color:var(--t1);border-radius:8px;padding:0 12px;height:38px;font-size:14px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.btn:active{background:var(--bg)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.pjbar{display:flex;align-items:center;gap:8px;padding:9px 14px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--blue-bg);width:100%;text-align:left;line-height:1.65}
.pjdot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.pjname{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44%}
.pjstage{flex:1;min-width:0;font-size:12px;color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.pjchev{flex:none;font-size:12px;color:var(--blue);border:1px solid #bfdbfe;border-radius:6px;padding:2px 8px;background:#fff}
.progbar{background:var(--card);border-bottom:1px solid var(--line);padding:8px 14px;font-size:13px;color:var(--t3);display:flex;align-items:center;gap:10px}
.track{flex:1;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.fill{height:100%;background:var(--green);width:0;transition:width .3s}
.tabs{display:flex;gap:6px;margin:10px 10px 0;background:#fff;padding:4px;border-radius:10px;border:1px solid var(--line)}
.tab{flex:1;min-width:0;border:0;background:transparent;padding:9px 4px;border-radius:8px;font-size:14px;color:var(--t2);font-weight:500;line-height:20px}
.tab.on{background:var(--blue);color:#fff}
main{max-width:720px;margin:0 auto;padding:14px}
.demo-note{font-size:12px;color:var(--t3);margin:0 0 10px;line-height:1.65}
.cover{background:var(--card);border-radius:12px;padding:24px 20px;margin-bottom:14px;border:1px solid var(--line)}
.eyebrow{font-size:12px;color:var(--blue);letter-spacing:1.5px;margin-bottom:6px}
.cover h2{font-size:24px;font-weight:500;margin:0 0 10px;letter-spacing:-.5px}
.cover p{margin:6px 0;color:var(--t2);font-size:14px}
.cover .btn{margin-top:10px}
.ch{background:var(--card);border-radius:12px;margin-bottom:12px;border:1px solid var(--line);overflow:hidden}
.ch-h{display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:var(--card);width:100%;text-align:left}
.ch-n{flex:none;width:38px;height:38px;border-radius:9px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
.ch-h h2{font-size:17px;font-weight:500;margin:0;flex:1}
.ch-p{flex:none;font-size:11px;color:var(--t3);background:var(--bg);border-radius:5px;padding:2px 7px}
.chevron{font-size:18px;color:var(--t3)}
.ch-b{padding:6px 16px 16px}
.stage-tools{display:flex;gap:6px;margin-top:12px}
.stage-tools button{flex:1 0 auto;font-size:12px;padding:7px 2px;border:1px solid var(--line);background:var(--bg);border-radius:8px;white-space:nowrap}
.blk{margin:14px 0 0}
.blk-t{font-size:13px;font-weight:500;color:var(--t3);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.blk-t::before{content:"";width:3px;height:13px;background:var(--line2);border-radius:2px}
ul.st{list-style:none;margin:0;padding:0}
ul.st li{display:flex;gap:11px;padding:9px 0;border-bottom:1px dashed var(--line);align-items:flex-start}
ul.st li:last-child{border-bottom:none}
ul.st input[type=checkbox]{flex:none;width:22px;height:22px;margin:3px 0 0;accent-color:var(--green)}
ul.st li>span{flex:1;min-width:0}
ul.st li.done>span{color:var(--t3);text-decoration:line-through}
.step-btn{font-size:12px;border:1px solid var(--line);background:#fff;border-radius:7px;padding:5px 8px;min-height:32px;white-space:nowrap}
.stage-tools .cost-btn{border-color:#bfdbfe;color:var(--blue);background:var(--blue-bg)}
.blk.warn{background:var(--red-bg);border-radius:9px;padding:12px 14px;margin-left:-2px}
.blk.warn .blk-t{color:var(--red)}
.blk.warn .blk-t::before{background:var(--red)}
.blk p{font-size:14px;margin:4px 0}
.muted{color:var(--t3)}
.small{font-size:12px}
.botnav{display:flex;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);z-index:40}
.botnav .btn{flex:1;height:42px;padding:0 4px;font-size:13px}
/* 新增成本视图沿用原章节与列表，不引入独立仪表盘。 */
.rows{margin:0}
.data-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.data-row:last-child{border-bottom:0}
.data-row dt{color:var(--t2)}
.data-row dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;flex:none}
.data-row.emphasis{font-size:16px;color:var(--blue);font-weight:500}
.data-row.emphasis dt{color:var(--t1)}
.data-row.gross dd{color:var(--green)}
.data-row.variance dd{color:var(--amber)}
.context{background:var(--amber-bg);border:1px solid #fde68a;border-radius:9px;padding:10px 12px;margin-bottom:12px;font-size:13px;color:var(--t2)}
.context strong{display:block;font-weight:500;color:var(--t1)}
.info{background:var(--blue-bg);border:1px solid #dbeafe;border-radius:9px;padding:10px 12px;margin:12px 0;font-size:13px;color:var(--t2)}
.record{border:1px solid var(--line);border-radius:9px;padding:10px 12px;margin-top:10px;font-size:14px;overflow-wrap:anywhere}
.record p{margin:4px 0;font-size:13px;color:var(--t2)}
.record .label{font-size:12px;color:var(--amber)}
.wide{width:100%;height:42px;margin-top:12px}
.formula{font-size:13px;color:var(--t3);margin:10px 0 0}
details{margin-top:10px;font-size:13px;color:var(--t2)}
summary{cursor:pointer;padding:6px 0}
/* 浮层采用原sheet的14px圆角、遮罩、12%顶距、滚动正文及固定操作条。 */
dialog{position:fixed;inset:0;margin:0;padding:0;border:0;width:100%;height:100%;max-width:none;max-height:none;background:transparent;color:var(--t1);overflow:hidden}
dialog::backdrop{background:rgba(0,0,0,.45)}
.sheet-panel{position:absolute;left:0;right:0;bottom:0;top:12%;background:var(--card);border-radius:14px 14px 0 0;display:flex;flex-direction:column;overflow:hidden}
.sheet-h{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);gap:8px}
.sheet-h h3{margin:0;font-size:16px;font-weight:500;flex:1}
.sheet-b{flex:1;min-height:0;overflow-y:auto;padding:12px 14px;overscroll-behavior:contain}
.sheet-content{max-width:692px;margin:0 auto}
.sheet-f{border-top:1px solid var(--line);padding:10px 14px calc(12px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;gap:8px}
.sheet-f .btn{flex:1 1 46%;height:40px}
.sheet-b label{display:block;font-size:13px;color:var(--t2);margin:12px 0 5px}
.sheet-b input,.sheet-b textarea{width:100%;border:1px solid var(--line2);border-radius:8px;padding:9px 10px;font-size:16px;background:var(--bg);color:var(--t1);line-height:1.5}
.sheet-b textarea{resize:vertical;min-height:94px}
.form-error{color:var(--red);font-size:13px;margin:6px 0}
body.modal-open{overflow:hidden}
#toast{position:fixed;left:50%;bottom:calc(78px + env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 28px);width:max-content;background:var(--t1);color:#fff;padding:10px 14px;border-radius:9px;z-index:200;font-size:13px;pointer-events:none;opacity:0;transition:opacity .15s}
#toast.show{opacity:1}
@media(max-width:420px){.top{gap:6px}.top .btn{padding:0 10px}.pjbar{gap:6px}.pjstage{font-size:11px}.pjchev{padding:2px 6px}.step-btn{min-height:36px;min-width:42px}.ch-h{gap:10px}.data-row{gap:8px}.tabs{gap:3px}.tab{font-size:13px}.sheet-f .btn{height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
