/* ============================================================
   梵净问抹 · 企业端（供需协同）样式
   复用 index.html 的 :root 设计令牌，仅补充企业端组件
   ============================================================ */
.fjm-page{padding:14px 14px calc(88px + var(--safe-b))}

/* ---------- 工作台头部 ---------- */
.fjm-hero{background:var(--primary-deep);color:#fff;padding:calc(16px + env(safe-area-inset-top)) 18px 18px;margin:-14px -14px 14px;border-radius:0 0 22px 22px;position:relative;overflow:hidden}
.fjm-hero::after{content:"";position:absolute;right:-40px;top:-60px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.05)}
.fh-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.fh-brand{font-family:var(--font-d);font-size:19px;font-weight:800;letter-spacing:.3px}
.fh-sub{font-size:11px;opacity:.8;margin-top:3px}
.fh-logout{background:rgba(255,255,255,.14);border:none;color:#fff;border-radius:20px;padding:6px 13px;font-size:12px;cursor:pointer;flex-shrink:0}
.fh-role{margin-top:14px;background:rgba(255,255,255,.1);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:10px;position:relative;z-index:1;cursor:pointer}
.fr-ava{width:34px;height:34px;border-radius:50%;background:rgba(217,164,65,.85);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:#3A2A0C;flex-shrink:0}
.fr-body{flex:1;min-width:0}
.fr-body b{display:block;font-size:14px}
.fr-body em{display:block;font-style:normal;font-size:10px;opacity:.78;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fr-switch{font-size:11px;opacity:.85;flex-shrink:0}
.fh-kpi{margin-top:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;position:relative;z-index:1}
.fh-kpi .fk{background:rgba(255,255,255,.09);border-radius:10px;padding:8px 4px;text-align:center}
.fh-kpi .fk b{display:block;font-size:18px;font-weight:800;line-height:1.2}
.fh-kpi .fk span{font-size:9px;opacity:.8;display:block;margin-top:2px;white-space:nowrap}

.fjm-body{padding:0}

/* ---------- 卡片与分节 ---------- */
.fjm-sec{background:var(--card);border-radius:14px;padding:14px;margin:0 0 12px}
.fjm-sec-plain{background:none;padding:0;margin-bottom:0}
.fjm-sec-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.fjm-sec-h h3{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:6px}
.fjm-sec-h h3::before{content:"";width:3px;height:13px;border-radius:2px;background:var(--primary)}
.fjm-pill{margin-left:auto;background:var(--primary-soft);color:var(--primary);border-radius:20px;font-size:11px;padding:1px 9px;font-weight:700}
.fjm-card{display:block;width:100%;text-align:left;background:var(--card);border:none;border-radius:14px;padding:14px;margin:0 0 12px;cursor:pointer;font:inherit;color:inherit}
.fjm-card:active{transform:scale(.995)}
.fjm-empty{text-align:center;color:var(--muted);font-size:13px;padding:26px 10px}
.fjm-note{font-size:12px;color:var(--muted);line-height:1.75;background:#F7FAF8;border-radius:10px;padding:9px 11px;margin-top:10px}
.fjm-note.ok{background:#EFF7F1;color:#2C6B4C}
.fjm-note.warn{background:#FFF8EC;color:#8A6A35}
.fjm-note.danger{background:#FDECEA;color:#A33327}
.fjm-alert{background:var(--gold-soft);border:1px solid #F0DFBE;color:#8A6A35;border-radius:12px;padding:11px 13px;font-size:11.5px;line-height:1.7;margin:0 0 12px}
.fjm-foot{text-align:center;font-size:10px;color:#96A19A;line-height:1.7;padding:8px 12px 20px}

/* ---------- 待办 ---------- */
.fjm-todo{display:flex;align-items:center;gap:10px;width:100%;background:#FBFCFA;border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;cursor:pointer;text-align:left;font:inherit}
.fjm-todo:last-child{margin-bottom:0}
.td-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#B8860B}
.fjm-todo.danger .td-dot{background:var(--danger)}
.fjm-todo.ok .td-dot{background:var(--primary)}
.td-body{flex:1;min-width:0}
.td-body b{display:block;font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-body em{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}
.td-act{font-size:11px;color:var(--primary);font-weight:600;flex-shrink:0}

/* ---------- 流程图 ---------- */
.fjm-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ff-item{display:flex;align-items:center;gap:5px;background:#F4F8F5;border-radius:9px;padding:7px 8px}
.ff-n{width:14px;height:14px;border-radius:50%;background:var(--primary);color:#fff;font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.ff-t{font-size:11px;color:var(--ink)}
.ff-arrow{display:none}

/* ---------- 标签页 ---------- */
.fjm-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 0 10px;margin:-14px -14px 12px;padding-left:14px;padding-right:14px;-webkit-overflow-scrolling:touch}
.fjm-tabs::-webkit-scrollbar{display:none}
.fjm-tab{flex-shrink:0;padding:6px 13px;border-radius:20px;font-size:12px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;font-family:inherit}
.fjm-tab.on{border-color:var(--primary);background:#F2FAF6;color:var(--primary);font-weight:600}

/* ---------- 需求单卡 ---------- */
.fjm-demand{margin:0 0 10px}
.fd-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.fd-id{font-size:11px;font-family:Consolas,Menlo,monospace;color:var(--muted);letter-spacing:.2px}
.fjm-chip{display:inline-block;border-radius:6px;font-size:10px;padding:2px 7px;font-weight:600;line-height:1.5;white-space:nowrap}
.fd-mid{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.fd-mid b{font-size:15px;font-weight:700;color:var(--ink)}
.fd-mid .text-muted{font-size:11px}
.fd-line{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.6}
.fd-bottom{display:flex;justify-content:space-between;font-size:11px;color:#96A19A;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.fjm-fab{position:fixed;bottom:calc(70px + var(--safe-b));left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;border:none;border-radius:24px;padding:11px 22px;font-size:13px;font-weight:700;box-shadow:0 8px 20px rgba(20,64,46,.28);cursor:pointer;z-index:25;max-width:480px;width:calc(100% - 60px)}

/* ---------- 表单 ---------- */
.fjm-ta{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:13.5px;line-height:1.7;font-family:inherit;color:var(--ink);background:#FBFCFA;resize:vertical;outline:none}
.fjm-ta:focus{border-color:var(--primary);background:#fff}
.fjm-row2{display:flex;align-items:center;gap:10px;margin-top:9px}
.fjm-lb{font-size:12px;color:var(--muted);min-width:66px;flex-shrink:0}
.fjm-sel,.fjm-inp{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;color:var(--ink);background:#fff;outline:none;font-family:inherit}
.fjm-inp:focus,.fjm-sel:focus{border-color:var(--primary)}
.cfg-range{font-size:10px;color:#96A19A;width:82px;text-align:right;flex-shrink:0}

/* ---------- 槽位 ---------- */
.fjm-sg{font-size:11px;color:var(--muted);font-weight:700;margin:10px 0 6px;letter-spacing:.4px}
.fjm-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.fjm-slot{background:#F7FAF8;border-radius:9px;padding:7px 9px;border:1px solid transparent}
.fjm-slot.on{background:#F1F8F3;border-color:#DDEBE1}
.fjm-slot.miss{background:#FDF6F0;border-color:#F3E2D3}
.fjm-slot .sl{display:block;font-size:10px;color:var(--muted);line-height:1.4}
.fjm-slot .sl i{color:var(--danger);font-style:normal;margin-left:2px}
.fjm-slot .sv{display:block;font-size:12.5px;color:var(--ink);font-weight:600;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fjm-slot.miss .sv{color:#B8860B;font-weight:500}
.fjm-ask{background:#FFF8EC;border:1px solid #F5E4C4;border-radius:10px;padding:10px 12px;margin-top:10px}
.fjm-ask b{font-size:11px;color:#8A6A35;display:block;margin-bottom:4px}
.fa-q{font-size:12px;color:#8A6A35;line-height:1.7}
.fjm-quote-raw{font-size:12px;color:#6B786F;background:#F7FAF8;border-left:3px solid #D7E5DB;border-radius:0 8px 8px 0;padding:9px 11px;margin-top:10px;line-height:1.7}

/* ---------- 单据头 ---------- */
.fjm-dhead{background:var(--card);border-radius:0 0 18px 18px;padding:14px 16px 16px;margin:-14px -14px 12px}
.dh-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dh-id{font-size:12px;font-family:Consolas,Menlo,monospace;color:var(--muted)}
.dh-cust{font-size:16px;font-weight:800;color:var(--ink);margin-top:8px}
.dh-cust .text-muted{font-size:11px;font-weight:400}
.dh-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.dh-meta div{background:#F6F9F6;border-radius:10px;padding:8px 6px;text-align:center}
.dh-meta b{display:block;font-size:14px;font-weight:800;color:var(--primary-deep);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dh-meta span{display:block;font-size:9px;color:var(--muted);margin-top:2px;white-space:nowrap}

/* ---------- 步骤条 ---------- */
.fjm-steps{display:flex;gap:2px;overflow-x:auto;background:var(--card);padding:10px 12px;border-radius:12px;margin:0 0 12px;-webkit-overflow-scrolling:touch}
.fjm-steps::-webkit-scrollbar{display:none}
.fjm-steps .fs{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:52px}
.fsn{width:19px;height:19px;border-radius:50%;background:#EEF2EE;color:#96A19A;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700}
.fjm-steps .fs.done .fsn{background:var(--primary);color:#fff}
.fst{font-size:9.5px;color:var(--muted);white-space:nowrap}
.fjm-steps .fs.done .fst{color:var(--primary);font-weight:600}

/* ---------- 环节卡 ---------- */
.fjm-stage{margin:0 0 12px;background:var(--card);border-radius:14px;overflow:hidden;border:1px solid transparent}
.fjm-stage.done{border-color:#E6EFE8}
.fsh{display:flex;align-items:center;gap:8px;padding:12px 14px 0}
.fs-num{width:20px;height:20px;border-radius:6px;background:#EEF2EE;color:#96A19A;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fjm-stage.done .fs-num{background:var(--primary-soft);color:var(--primary)}
.fs-title{font-size:14px;font-weight:700;color:var(--ink)}
.fs-sla{margin-left:auto;font-size:10px;color:#96A19A;flex-shrink:0}
.fsb{padding:10px 14px 14px}
.fjm-skill{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:10px;color:#8A968F;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line)}
.fjm-skill .sid{font-family:Consolas,Menlo,monospace;color:#5E6A63}
.fjm-skill .sep{opacity:.5}
.fjm-skill .na{color:#2F7D5A}

/* ---------- 候选 ---------- */
.fjm-cand{border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px;cursor:pointer;background:#fff}
.fjm-cand.sel{border-color:var(--primary);background:#F5FBF7;box-shadow:0 2px 10px rgba(31,107,77,.08)}
.fc-top{display:flex;align-items:center;gap:7px}
.fc-rank{width:17px;height:17px;border-radius:5px;background:#EEF2EE;color:#6B7A70;font-size:10px;display:flex;align-items:center;justify-content:center;font-weight:700}
.fjm-cand.sel .fc-rank{background:var(--primary);color:#fff}
.fc-top b{font-size:13px;font-family:Consolas,Menlo,monospace;color:var(--ink)}
.fc-score{margin-left:auto;font-size:15px;font-weight:800;color:var(--primary)}
.fc-meta{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.6}
.fc-why{margin-top:6px}
.fc-why .fw{font-size:11.5px;color:#44554B;line-height:1.65}
.fc-risk{font-size:11px;color:#A33327;background:#FDF3F1;border-radius:7px;padding:5px 8px;margin-top:7px;line-height:1.6}
.fc-parts{font-size:10px;color:#96A19A;margin-top:6px}
.fjm-drop{background:#F9FAF9;border-radius:10px;padding:9px 11px;margin-top:4px}
.fjm-drop b{font-size:11px;color:#6B7A70;display:block;margin-bottom:3px}
.fd-x{font-size:11px;color:var(--muted);line-height:1.7}

/* ---------- 雷达与等级 ---------- */
.fjm-gradebox{display:flex;gap:10px;align-items:center}
.gb-radar{width:132px;flex-shrink:0}
.fjm-radar{width:100%;height:auto;display:block}
.gb-main{flex:1;min-width:0}
.gb-big{font-size:30px;font-weight:800;color:var(--primary-deep);line-height:1.1}
.gb-big em{font-size:11px;font-style:normal;color:var(--muted);font-weight:400}
.gb-band{display:inline-block;margin-top:5px;background:var(--primary);color:#fff;border-radius:7px;padding:2px 9px;font-size:12px;font-weight:700}
.gb-sub{font-size:10px;color:var(--muted);margin-top:6px;line-height:1.5}
.gb-w{font-size:11px;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.gb-w b{color:var(--ink)}
.fjm-bar{display:flex;align-items:center;gap:7px;margin-top:7px}
.fjm-bar .bl{width:74px;flex-shrink:0;font-size:11px;color:var(--muted)}
.fjm-bar .bt{flex:1;height:9px;background:#EEF2EE;border-radius:5px;overflow:hidden}
.fjm-bar .bt i{display:block;height:100%;border-radius:5px}
.fjm-bar .bv{width:38px;text-align:right;font-size:11px;color:var(--ink);font-weight:600;flex-shrink:0}
.fjm-blind{background:#F7FAF8;border-radius:12px;padding:14px;text-align:center;margin-top:10px}
.bc-code{font-family:Consolas,Menlo,monospace;font-size:17px;letter-spacing:1.5px;color:var(--primary);font-weight:700}
.bc-sub{font-size:10px;color:var(--muted);margin-top:5px}

/* ---------- 价格锚 ---------- */
.fjm-anchor{background:#F6F9F6;border-radius:12px;padding:12px}
.fjm-anchor.big{padding:14px}
.fa-range{display:flex;align-items:center;gap:8px}
.fa-p10,.fa-p90{font-size:13px;font-weight:700;color:var(--primary)}
.fa-bar{flex:1;height:6px;border-radius:3px;background:#E3EDE6;position:relative}
.fa-bar i{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,#BFDCC8,#1F6B4D);border-radius:3px}
.fa-bar b{position:absolute;top:-3px;width:2px;height:12px;background:#14402E}
.fa-mid{text-align:center;font-size:12px;color:var(--muted);margin-top:10px}
.fa-mid b{font-size:19px;color:var(--primary-deep);font-weight:800;margin-right:2px}
.fjm-anchor.big .fa-mid b{font-size:26px}
.fa-range2{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;color:var(--primary);font-weight:600}
.ar-bar{flex:1;height:6px;border-radius:3px;background:#E3EDE6;overflow:hidden}
.ar-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#D6E9DC,#1F6B4D)}
.fa-conf{text-align:center;font-size:11px;color:var(--muted);margin-top:8px}
.fjm-kv{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:12px}
.fjm-kv:last-child{border-bottom:none}
.fjm-kv .k{color:var(--muted);flex-shrink:0}
.fjm-kv .v{font-weight:600;color:var(--ink);text-align:right}
.fjm-kv.hi .v{color:var(--primary);font-size:14px;font-weight:800}
.fjm-kv.ok .v{color:var(--primary)}
.fjm-kv.warn .v{color:#B8860B}
.fjm-lib{margin-top:4px}
.fl-row{display:flex;align-items:center;gap:8px;padding:7px 0}
.fl-k{width:52px;flex-shrink:0;font-size:12px;font-weight:700;color:var(--ink)}
.fl-k em{display:block;font-style:normal;font-size:9px;color:var(--muted);font-weight:400}
.fl-bar{flex:1;height:9px;background:#EEF2EE;border-radius:5px;overflow:hidden}
.fl-bar i{display:block;height:100%;background:linear-gradient(90deg,#BFDCC8,#1F6B4D);border-radius:5px}
.fl-v{width:74px;text-align:right;font-size:12px;font-weight:700;color:var(--primary)}
.fl-v em{display:block;font-style:normal;font-size:9px;color:var(--muted);font-weight:400}

/* ---------- 合规矩阵 ---------- */
.fjm-matrix{margin-top:8px}
.fm-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}
.fm-row:last-child{border-bottom:none}
.fm-name{flex:1;min-width:0;font-size:12px;color:var(--ink)}
.fm-name em{display:block;font-style:normal;font-size:10px;color:var(--muted);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-res{font-size:10.5px;color:var(--muted);max-width:34%;text-align:right;line-height:1.5}
.fm-lv{flex-shrink:0}
.fjm-ops2{display:flex;gap:9px;margin-top:10px}
.fjm-ops2 .btn{flex:1;font-size:13px;min-height:42px}

/* ---------- 时间线 ---------- */
.fjm-timeline{position:relative;padding-left:4px}
.fjm-timeline .ft-item{display:flex;gap:9px;padding-bottom:12px;position:relative}
.fjm-timeline .ft-item:last-child{padding-bottom:0}
.ft-dot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex-shrink:0;position:relative}
.fjm-timeline .ft-item::before{content:"";position:absolute;left:3px;top:12px;bottom:0;width:1px;background:#E4EAE3}
.fjm-timeline .ft-item:last-child::before{display:none}
.ft-body{flex:1;min-width:0}
.ft-body b{display:block;font-size:12px;color:var(--ink);font-weight:700}
.ft-body em{display:block;font-style:normal;font-size:11.5px;color:#5E6A63;line-height:1.65;margin-top:2px}
.ft-meta{display:block;font-size:10px;color:#96A19A;margin-top:3px}

/* ---------- 盲评台 ---------- */
.fjm-task{cursor:default}
.fjm-task .ft-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fjm-task .ft-code{font-family:Consolas,Menlo,monospace;font-size:14px;letter-spacing:1px;color:var(--primary);font-weight:700}
.fjm-task .ft-sub{font-size:11px;color:var(--muted);margin-top:5px}
.fjm-task .ft-res{font-size:12px;color:var(--ink);margin-top:8px;background:#F6F9F6;border-radius:9px;padding:8px 10px}
.fjm-sheet{margin-top:12px;border-top:1px dashed var(--line);padding-top:12px}
.gs-row{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.gs-k{width:32px;font-size:12px;color:var(--muted);flex-shrink:0}
.gs-row input[type=range]{flex:1;accent-color:var(--primary);height:20px}
.gs-v{width:26px;text-align:right;font-size:13px;font-weight:700;color:var(--primary);flex-shrink:0}
.gs-sum{background:#F1F8F3;border-radius:9px;padding:9px 11px;font-size:12px;color:var(--primary-deep);font-weight:700;margin-top:4px}

/* ---------- 表格 ---------- */
.fjm-table{background:var(--card);border-radius:12px;overflow:hidden;margin-bottom:12px}
.ftr{display:grid;grid-template-columns:1.5fr .7fr .7fr .7fr .8fr .9fr;font-size:10.5px;padding:7px 10px;border-bottom:1px solid #F0F4F1;color:var(--ink)}
.ftr:last-child{border-bottom:none}
.ftr.fth{background:#F4F8F5;color:var(--muted);font-weight:700}
.ftr span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bc-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}
.bc-metrics div{background:#F6F9F6;border-radius:9px;padding:7px 5px;text-align:center}
.bc-metrics b{display:block;font-size:14px;font-weight:800;color:var(--primary-deep)}
.bc-metrics span{display:block;font-size:9px;color:var(--muted);margin-top:1px}
.bc-flags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}

/* ---------- 看板 ---------- */
.fjm-kpi3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.fjm-kpi3 div{background:var(--card);border-radius:12px;padding:12px 8px;text-align:center}
.fjm-kpi3 b{display:block;font-size:20px;font-weight:800;color:var(--primary-deep)}
.fjm-kpi3 span{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.fkpi{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12px}
.fkpi:last-child{border-bottom:none}
.fk-n{flex:1;color:var(--ink)}
.fk-v{font-weight:800;color:var(--primary-deep);font-size:13px}
.fk-t{font-size:10px;color:var(--muted);width:62px;text-align:right}
.fk-t.ok{color:#2C6B4C}
.fk-t.warn{color:#B8860B}

/* ---------- 权重表 ---------- */
.fjm-wtable{background:#F9FBF9;border-radius:10px;overflow:hidden}
.wtr{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;font-size:11px;padding:7px 10px;border-bottom:1px solid #EEF3EF}
.wtr:last-child{border-bottom:none}
.wtr.wth{background:#F1F6F2;color:var(--muted);font-weight:700}

/* ---------- 角色切换面板 ---------- */
.fjm-sheet-mask{position:fixed;inset:0;background:rgba(20,36,28,.42);z-index:70;animation:fadeIn .15s ease}
.fjm-sheet-panel{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:520px;background:#fff;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + var(--safe-b));z-index:71;animation:sheetUp .22s ease;max-height:80vh;overflow-y:auto}
@keyframes sheetUp{from{transform:translate(-50%,30px);opacity:.6}to{transform:translate(-50%,0);opacity:1}}
.sp-title{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:10px}
.sp-row{display:flex;align-items:center;gap:10px;width:100%;background:#FBFCFA;border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;cursor:pointer;font:inherit;text-align:left}
.sp-row.on{border-color:var(--primary);background:#F3FAF6}
.sp-r{width:24px;height:24px;border-radius:7px;background:#EEF2EE;color:#6B7A70;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sp-row.on .sp-r{background:var(--primary);color:#fff}
.sp-b{flex:1;min-width:0}
.sp-b b{display:block;font-size:13px;color:var(--ink)}
.sp-b em{display:block;font-style:normal;font-size:10.5px;color:var(--muted);margin-top:2px}
.sp-ok{font-size:10px;color:var(--primary);font-weight:700;flex-shrink:0}

/* ---------- 溢出保护与菜单两行文本 ---------- */
body{overflow-x:hidden}
.fjm-page{overflow-x:hidden}
.b2b-menu .mi-body .n{display:block}
.b2b-menu .mi-body .d{display:block;white-space:normal;line-height:1.5}
.b2b-menu .menu-item{min-width:0}
.fh-kpi .fk{min-width:0}
.fh-kpi .fk span{white-space:normal;line-height:1.2}
.fjm-todo{min-width:0}
.td-body b,.td-body em{white-space:normal}

/* ---------- 拦截态环节卡 ---------- */
.fjm-stage.hold{border-color:#F3D9D4;background:#FFFCFB}
.fjm-stage.hold .fs-num{background:#FDECEA;color:#C0392B}
.fjm-stage.hold .fs-title{color:#A33327}

/* ---------- 表单宽度修正 ---------- */
.fjm-sel,.fjm-inp{width:100%;flex:1 1 auto}

/* ---------- 九环节步骤条压缩至一屏 ---------- */
.fjm-steps .fs{min-width:37px}
.fjm-steps .fst{font-size:8.5px;letter-spacing:-.2px}
.fjm-steps .fsn{width:17px;height:17px;font-size:9px}

/* ---------- 下一步主按钮 ---------- */
.fjm-next{margin:0 0 12px}
.fjm-next .btn{box-shadow:0 6px 16px rgba(20,64,46,.18)}
