:root{--brand-blue:#365f84;--sidebar-blue:#223d58;--sidebar-active:#365470;--page-background:#f4f6f8;--surface-blue:#eef3f7;--text-primary:#273c51;--text-muted:#718497;--border-color:#dde6ee;font-family:Inter,"Microsoft YaHei",sans-serif;color:var(--text-primary);background:var(--page-background);font-size:14px}*{box-sizing:border-box}body{margin:0}.sidebar{position:fixed;inset:0 auto 0 0;width:228px;background:var(--sidebar-blue);color:#f6f8fa;padding:32px 22px}.brand{font-size:28px;font-weight:700;text-decoration:none;color:white}.brand small{display:block;font-size:10px;letter-spacing:3px;margin:8px 0 25px;color:#9db1c4}.workspace{color:#f6f8fa;font-size:12px;padding:15px 0;border-top:1px solid #7095ba}.sidebar nav{margin-top:20px;display:grid;gap:7px}.sidebar nav button{background:none;text-align:left;border:0;color:#f6f8fa;padding:13px;border-radius:7px}.sidebar nav button.active{background:var(--sidebar-active);color:#fff}.sidebar-foot{position:absolute;bottom:28px;display:grid;gap:16px;font-size:12px}.sidebar-foot a{color:#ecf0f3}.sidebar-foot small{color:#f6f8fa}main{margin-left:228px;padding:35px 40px;max-width:1850px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{letter-spacing:2px;font-size:10px;color:#788490}h1{font-size:28px;margin:9px 0}h2{font-size:17px;margin:0 0 20px}header p,.muted{font-size:12px;color:var(--text-muted);line-height:1.8}.head-right{display:grid;gap:12px;justify-items:end;font-size:11px;color:#637281}button,.button,input,select,textarea{font:inherit;padding:10px 13px;border:1px solid var(--border-color);border-radius:6px;background:white;color:#263545}button,.button{background:var(--brand-blue);color:white;cursor:pointer;border-color:var(--brand-blue);text-decoration:none;display:inline-block}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}.secondary{background:white;color:#394e63;border-color:var(--border-color)}input,select,textarea{max-width:100%}label{display:grid;gap:8px;margin:14px 0;font-size:12px;color:#63707d}input:focus,select:focus,textarea:focus{outline:2px solid #a5bdd4}textarea{min-height:80px;resize:vertical}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric,.panel{background:white;border:1px solid var(--border-color);border-radius:10px;padding:23px}.metric label{margin:0}.metric strong{display:block;font-size:35px;font-weight:500;margin:14px 0}.metric small{color:#858e96;font-size:11px}.pipeline{display:flex;justify-content:space-between;align-items:center;padding:24px;background:var(--surface-blue);border-radius:10px;margin:22px 0}.pipeline p{font-size:12px;color:#6f7a85}.pipeline span{color:#9aa4ae}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{margin-bottom:20px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap}.toolbar p{color:#6d7781;font-size:12px}.toolbar input{flex:1;min-width:180px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:white;border:1px solid var(--border-color);border-radius:10px;padding:22px}.card h3{font-size:16px;margin:0 0 14px}.card p{color:#707b85;font-size:12px;line-height:1.8}.buttons{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:16px 0}.pill{display:inline-block;font-size:11px;padding:4px 8px;border-radius:4px;background:#edf0f3;color:#4b6074}.pill.manual,.pill.blocked,.pill.interrupted{background:#fff2da;color:#936724}.pill.approved,.pill.completed{background:#e3f2e6;color:#337349}.pill.rejected{background:#fbe8e6;color:#a15141}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tag{font-size:11px;background:#eff2f5;border:1px solid #dce2e8;color:#526374;padding:5px 8px;border-radius:5px}.tag.active{background:var(--brand-blue);color:white}.tabs{display:flex;gap:12px;margin-bottom:20px}.tabs button{background:none;color:#717c86;border:0;border-radius:0}.tabs button.active{color:var(--brand-blue);border-bottom:3px solid var(--brand-blue)}.table-wrap{overflow-x:auto}table{width:100%;min-width:740px;border-collapse:collapse;font-size:12px}th{text-align:left;font-weight:500;color:#717b85;background:#f4f6f8}td,th{padding:14px 10px;border-bottom:1px solid #eaedf0;line-height:1.8}td small{display:block;color:#8a9299}.link{border:0;background:none;color:#3f6183;text-align:left;padding:0;line-height:1.8;font-weight:600}.empty{padding:38px;text-align:center;color:#838c95}.entry{border-bottom:1px solid #e4e8ec;padding:14px 0;font-size:12px;line-height:1.8}.entry small{color:#818b94}.entry pre,pre.evidence{white-space:pre-wrap;word-break:break-word;background:#f2f4f7;padding:15px;border-radius:6px;font-size:12px;line-height:1.8;max-height:380px;overflow:auto}.stat-line{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f2}#message{position:sticky;top:8px;z-index:20;padding:13px 18px;border:1px solid #d3dce5;background:#ebeff3;border-radius:8px;margin-bottom:18px}.error{background:#fff0e9!important;color:#935135}dialog{width:min(960px,95vw);max-height:90vh;border:0;border-radius:12px;padding:25px;color:inherit}dialog::backdrop{background:#19273477}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.review-evidence{border-left:3px solid #94a6b8;padding-left:14px}a{color:var(--brand-blue)}footer{text-align:center;font-size:11px;color:#8c96a0;padding:25px}[hidden]{display:none!important}@media(max-width:1150px){main{padding:25px}.sidebar{width:190px}main{margin-left:190px}.two,.cards{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.pipeline{gap:15px;flex-wrap:wrap}}@media(max-width:700px){.sidebar{position:static;width:100%;padding:15px}.sidebar .brand,.workspace,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;margin:0}.sidebar nav button{white-space:nowrap}main{margin:0;padding:18px}header{align-items:flex-start}.head-right{max-width:120px}.pipeline{display:none}.metrics{gap:10px}.metric{padding:16px}.form-grid{grid-template-columns:1fr}.tabs{gap:0}h1{font-size:23px}}

/* 挂帅状态与业务字段：三处列表（归集结果 / 审核中心 / 已审核商机）共用同一套口径，
   已确认、建议、待确认三种状态必须一眼可分，避免把「建议」看成「已定」。 */
.pill.command-ok{background:#e3f2e8;color:#1d6b45;border-color:#a9d4bb}
.pill.command-suggest{background:#fdf3e3;color:#8a5a12;border-color:#e8cf9e}
.pill.command-none{background:#f2f3f3;color:#777d83;border-color:#dfe1e3}
.command-box{border:1px solid var(--border-color);border-left:4px solid #c99b4e;border-radius:8px;padding:16px 18px;margin:16px 0;background:#fffdf8}
.command-box.confirmed{border-left-color:#29925f;background:#f6fbf7}
.command-box > b{font-size:15px;color:#263545}
.command-box p{margin:8px 0}
.command-box .form-grid{margin-top:12px}
.command-hint{border-left:3px solid #94a6b8;padding:8px 0 8px 12px;font-size:12px;color:#4a5b6b;margin:14px 0}
.rule-line{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #eef1f3;font-size:12px;color:#424e59;align-items:start}
.rule-line b{color:#263545}
td .mono{font-family:ui-monospace,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}
td small{display:block;font-size:11px;color:#7b858e;overflow-wrap:anywhere}
.command-box textarea{min-height:64px}
@media(max-width:700px){.command-box{padding:13px}.rule-line{grid-template-columns:1fr;gap:4px}}

/* 商机详情：待办优先，正常信息分组，历史进展持续追加。 */
.opportunity-table{min-width:1120px}
.opportunity-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.opportunity-heading h2{font-size:21px;margin:5px 0 7px}
.opportunity-heading p{margin:0;color:var(--text-muted);font-size:12px}
.section-kicker{display:block;color:#708090;font-size:10px;letter-spacing:1.5px;margin-bottom:4px}
.detail-section{border:1px solid #e2e6ea;border-radius:10px;padding:18px 20px;margin:16px 0;background:#fff}
.detail-fields{border:0;padding:0;margin:0;min-width:0}.detail-fields:disabled{opacity:.88}.detail-fields:disabled input,.detail-fields:disabled select{background:#f7f8f9;color:#434e58}
.detail-section h3{margin:0 0 12px;font-size:15px}
.pending-section{background:#fffaf0;border-color:#ead8ae;border-left:4px solid #c99b4e}
.section-title{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.section-title h3{margin:0}
.pending-count{display:inline-block;background:#f5e7c7;color:#805c1d;border-radius:12px;padding:4px 9px;font-size:11px}
.complete-banner{padding:13px 16px;margin:16px 0;border:1px solid #cfe5d6;background:#f2faf4;color:#277049;border-radius:8px}
/* 待填写清单只列字段名并跳转定位，不再复制一份输入控件。 */
.pending-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pending-chip{border:1px solid #e2cf9f;background:#fff;color:#7a5b1c;border-radius:14px;padding:5px 12px;font-size:12px;line-height:1.6}
button.pending-chip{cursor:pointer}button.pending-chip:hover{background:#fdf3dd}
.readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 4px}
.readonly-grid>div{padding:12px 14px;background:#f6f7f8;border-radius:7px;display:grid;gap:5px;overflow-wrap:anywhere}
.readonly-grid span,.readonly-grid small{font-size:11px;color:#7c868f}
.readonly-grid b{font-size:13px;font-weight:600;color:#2d3b49}
/* 基本信息内联标识块：占满整行，避免与两列字段挤在一起。 */
.form-grid>.span-2{grid-column:1/-1}
.readonly-inline{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 14px;background:#f6f7f8;border-radius:7px;margin:14px 0 4px}
.readonly-inline span,.readonly-inline small{font-size:11px;color:#7c868f}
.readonly-inline b{font-size:13px;font-weight:600;color:#2d3b49;letter-spacing:.4px}
.field-flash{animation:field-flash 1.2s ease-out}
@keyframes field-flash{0%{box-shadow:0 0 0 3px #c99b4e55}100%{box-shadow:0 0 0 0 transparent}}
.basic-section .group-head:first-of-type{margin-top:14px}
.detail-section label small{font-size:11px;color:#808991;line-height:1.6}
.revision-reason,.system-details{border:1px solid #e2e5e9;border-radius:8px;padding:13px 16px;margin:14px 0;background:#fafbfc}
.revision-reason>summary,.system-details>summary{cursor:pointer;color:#525f6c;font-size:12px;font-weight:600}
.detail-actions{justify-content:flex-end}
.tag-editor-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tag-editor-row,.tag-editor-add{display:flex;align-items:center;gap:8px;min-width:0}
.tag-editor-row input,.tag-editor-add input{flex:1;min-width:0;width:100%}
.tag-editor-row button,.tag-editor-add button{flex-shrink:0}
.tag-editor-add{margin-top:14px;max-width:480px}
.tag-editor-error{color:#a15141;font-size:12px;margin:8px 0 0}
@media(max-width:700px){.tag-editor-list{grid-template-columns:1fr}}
.progress-section form{display:grid;grid-template-columns:2fr 1fr;gap:0 16px;align-items:end}
.progress-section form .buttons{margin:0 0 14px;align-self:end}
.progress-section form label:first-child{grid-row:span 2}
.progress-list{margin-top:8px;border-top:1px solid #edeff1}
.progress-item{position:relative;padding:15px 0 15px 20px;border-bottom:1px solid #edeff1}
.progress-item:before{content:"";position:absolute;left:2px;top:20px;width:7px;height:7px;border-radius:50%;background:#4c6b8b}
.progress-item>div{display:flex;gap:10px;align-items:center}
.progress-item time{font-size:11px;color:#899199}
.progress-item p{margin:7px 0;line-height:1.8;white-space:pre-wrap}
.progress-item small{color:#616e7b}
.sidebar .brand{display:flex;align-items:center;min-height:50px;padding:0;margin:0 -6px 25px}
.sidebar .brand img{display:block;width:100%;height:auto}
@media(max-width:700px){.sidebar .brand{display:none}}
.system-details{padding:16px 18px;margin-top:18px}
.system-details[open]>summary{margin-bottom:18px}
@media(max-width:700px){.opportunity-heading{display:block}.readonly-grid,.progress-section form{grid-template-columns:1fr}.progress-section form label:first-child{grid-row:auto}.detail-section{padding:15px}.detail-actions{justify-content:stretch}.detail-actions button{width:100%}}

.section-row{display:flex;justify-content:space-between;align-items:center;gap:16px}
#modal{overflow-y:auto}

/* 商机详情和审核表单中的长名称换行，避免撑出弹窗。 */
#modalBody .opportunity-heading h2,#modalBody .opportunity-heading p,#modalBody .readonly-inline b,#modalBody .group-head{overflow-wrap:anywhere;min-width:0}
#modalBody .business-field-group input,#modalBody .business-field-group textarea{max-width:100%;min-width:0}
#modalBody .progress-item p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}
