.engineering-shell{display:grid;gap:14px}.engineering-head{display:flex!important;align-items:center;justify-content:space-between;padding:18px 20px;border-radius:12px;background:linear-gradient(135deg,#123047,#176a78);color:white}.engineering-head h2{margin:0}.engineering-head p{margin:5px 0 0;color:#c5dce2}.engineering-head-meta{padding:7px 12px;border:1px solid #ffffff30;border-radius:18px}.engineering-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:9px;background:white;border-radius:10px}.engineering-tabs button{background:#edf3f5;color:#435b68;padding:8px 11px}.engineering-tabs button.active,.engineering-tabs button:hover{background:#147c8c;color:white}.engineering-summary,.engineering-current{display:grid;gap:14px}.engineering-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.engineering-current{grid-template-columns:repeat(3,minmax(0,1fr))}.engineering-summary article,.engineering-current>div{padding:16px;border-radius:10px;background:white;box-shadow:0 2px 9px #17384b12}.engineering-summary span,.engineering-current span{display:block;color:#71828c}.engineering-summary b,.engineering-current b{display:block;font-size:25px;color:#147c8c;margin-top:7px}.engineering-current .engineering-person-name{font-size:18px;line-height:1.4;word-break:break-word}.engineering-board{padding:18px;border-radius:12px;background:white}.engineering-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}.engineering-project-card{padding:15px;border:1px solid #dfe8ec;border-radius:10px;background:#fbfcfd}.engineering-project-top{display:flex;gap:8px;align-items:center}.engineering-project-top b{flex:1}.engineering-project-top em{font-style:normal;color:#147c8c;font-size:12px}.project-type{padding:3px 8px;border-radius:12px;background:#eaf4f5;color:#147c8c;font-size:11px}.engineering-project-card p{color:#71828c}.engineering-progress{height:5px;background:#e7edef;border-radius:3px;overflow:hidden}.engineering-progress i{display:block;height:100%;background:#147c8c}.engineering-project-foot,.engineering-detail-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.engineering-flow{display:flex;gap:3px;overflow-x:auto;padding:14px;background:white;border-radius:10px}.engineering-flow span{display:grid;place-items:center;min-width:86px;padding:8px;border-radius:7px;background:#edf1f3;color:#788891}.engineering-flow span small{display:block;text-align:center;margin-top:4px}.engineering-flow span.done{background:#dcefee;color:#147c8c}.engineering-flow span.current{background:#ef8a17;color:white}.engineering-node-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:14px}.engineering-node-content>.node-form-panel{grid-column:1;margin:0}.engineering-side-info{grid-column:2;grid-row:1;display:grid;gap:12px;align-content:start;position:static;width:auto;height:auto;background:transparent;color:inherit;padding:0}.engineering-side-info .panel{margin:0}.engineering-side-info article{padding:8px 0;border-bottom:1px solid #edf1f3}@media(max-width:1050px){.engineering-summary,.engineering-current{grid-template-columns:1fr 1fr}.engineering-node-content{grid-template-columns:1fr}.engineering-node-content>.node-form-panel,.engineering-side-info{grid-column:1;grid-row:auto}.engineering-project-grid{grid-template-columns:1fr}}
.engineering-list-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:14px}.engineering-list-toolbar h3{margin:0 0 4px}.engineering-list-toolbar p{margin:0;color:#71828c}.engineering-list-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.engineering-list-filters input{min-width:280px}.engineering-list-filters input,.engineering-list-filters select{padding:9px 11px;border:1px solid #d7e2e6;border-radius:7px;background:white}.engineering-overview-scroll{overflow-x:auto}.engineering-overview-table{width:100%;min-width:1220px;border-collapse:collapse}.engineering-overview-table th{padding:10px;text-align:left;color:#607784;font-size:12px;background:#f3f7f8;border-bottom:1px solid #dce6ea}.engineering-overview-table td{padding:12px 10px;vertical-align:middle;border-bottom:1px solid #e7edef}.engineering-overview-table td:first-child{min-width:180px}.engineering-overview-table td:nth-child(4){min-width:190px}.engineering-overview-table td small{display:block;color:#7b8d96;margin-top:4px}.engineering-overview-table tr:hover td{background:#f8fbfb}.engineering-overview-table tr.project-overdue-row td:first-child{border-left:3px solid #d64545}.node-progress{display:flex;align-items:center;gap:8px}.node-progress span{width:82px;height:6px;border-radius:4px;background:#e4ecef;overflow:hidden}.node-progress i{display:block;height:100%;background:#168596}.node-progress b{font-size:12px}.timing-badge{display:inline-block;padding:5px 9px;border-radius:14px;white-space:nowrap;font-size:12px}.timing-badge.overdue{background:#fff0f0;color:#c33232}.timing-badge.today{background:#fff5df;color:#a96800}.timing-badge.normal{background:#e8f6f0;color:#18845f}.timing-badge.done{background:#e9f2f4;color:#4b707c}.timing-badge.unset{background:#f1f3f4;color:#7b858a}.project-todo{color:#b45f00;font-size:12px}.project-clear{color:#7c9098;font-size:12px}@media(max-width:1050px){.engineering-list-toolbar{align-items:stretch;flex-direction:column}.engineering-list-filters{justify-content:flex-start}.engineering-list-filters input{min-width:220px;flex:1}}
.engineering-acceptance-panel{padding:18px;border-radius:10px;background:white}.engineering-acceptance-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.engineering-acceptance-grid>div{padding:13px;border-radius:8px;background:#f2f7f8}.engineering-acceptance-grid span{display:block;color:#71828c;font-size:12px;margin-bottom:5px}.engineering-flow-note{display:inline-block;padding:8px 12px;border-radius:7px;background:#fff5df;color:#9a6100}@media(max-width:700px){.engineering-acceptance-grid{grid-template-columns:1fr}}
.engineering-project-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.engineering-project-tabs button{flex:0 0 auto;white-space:nowrap}.engineering-project-tabs .project-overview-back{background:#e8f1f3;color:#315967}.engineering-project-tabs .project-flow-node:disabled{cursor:default;opacity:1}.engineering-project-tabs .project-flow-upcoming,.engineering-project-tabs .project-flow-upcoming:hover{background:#edf3f5;color:#435b68}.engineering-project-tabs .project-flow-current,.engineering-project-tabs .project-flow-current:hover{background:#2eaa68;color:#fff;box-shadow:0 0 0 2px #b9e4ca inset}.engineering-project-tabs .project-flow-completed,.engineering-project-tabs .project-flow-completed:hover{background:#0f5b3d;color:#fff}
.stage-governance-panel{grid-column:1/-1;margin:0;padding:18px;border:1px solid #d9e5e8;border-radius:10px;background:white}.stage-governance-panel .toolbar{align-items:flex-start}.stage-governance-panel h3,.stage-governance-panel h4{margin:0 0 5px}.stage-governance-panel p{color:#657983}.stage-review-card{margin-top:12px;padding:15px;border:1px solid #dfe8ec;border-left:4px solid #147c8c;border-radius:9px;background:#fbfcfd}.stage-review-status{padding:5px 9px;border-radius:13px;background:#edf3f5;color:#365b68;font-size:12px}.stage-review-summary{display:flex;align-items:center;gap:20px;flex-wrap:nowrap;margin:11px 0;padding:10px;border-radius:7px;background:#f1f7f8;white-space:nowrap;overflow-x:auto}.stage-review-summary span{flex:0 0 auto;color:#657983}.stage-review-summary b{color:#123047}.stage-review-table{width:100%;border-collapse:collapse}.stage-review-table th,.stage-review-table td{padding:9px;border-bottom:1px solid #e4ecef;text-align:left}.stage-review-table th{font-size:12px;color:#71828c}.stage-review-table td small{display:block;color:#7d8e96;margin-top:3px}.stage-review-actions{margin-top:12px}.stage-approval-result{padding:9px;border-radius:7px;background:#eaf6f0}.stage-reviewer-fieldset{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0;padding:12px;border:1px solid #d9e4e8;border-radius:8px}.stage-reviewer-fieldset legend{padding:0 6px;color:#415d6a}.stage-reviewer-option{display:flex!important;gap:8px;align-items:flex-start;margin:0!important;padding:9px;border:1px solid #e3eaed;border-radius:7px}.stage-reviewer-option input{width:auto!important;margin-top:3px}.stage-reviewer-option span{display:block}.stage-reviewer-option small{display:block;color:#758891;margin-top:3px}.mandatory-manager{margin-top:7px;padding:11px;border-radius:7px;background:#fff4df;color:#8c5a00}@media(max-width:700px){.stage-reviewer-fieldset{grid-template-columns:1fr}.stage-review-table{display:block;overflow-x:auto}}

/* v2.39.1：评审、整改和最终审核使用宽幅长意见输入区。 */
.engineering-approval-status h3{margin-top:0}.engineering-approval-status article{padding:9px 0;border-bottom:1px solid #e5edef}.engineering-approval-status article:last-child{border-bottom:0}.engineering-approval-status article p{margin:5px 0 0;color:#637884;font-size:13px}
#stageGovernanceHost{display:grid;gap:12px}
#stageGovernanceHost .stage-governance-panel{grid-column:auto;padding:15px;min-width:0}
.stage-governance-head,.stage-review-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.stage-governance-head h3,.stage-review-card-head h4{margin:0}.stage-governance-head p{margin:6px 0 0;line-height:1.55}
.stage-start-review{width:100%;margin:2px 0 8px}
#stageGovernanceHost .stage-review-card{padding:12px;margin-top:10px}
#stageGovernanceHost .stage-review-card>p{margin:8px 0}
.stage-review-reason{padding:8px;border-radius:6px;background:#f2f6f7}
#stageGovernanceHost .stage-review-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap;margin:9px 0;padding:8px;white-space:nowrap;overflow-x:auto}
#stageGovernanceHost .stage-review-summary span{flex:0 0 auto;font-size:12px}
#stageGovernanceHost .stage-review-summary .stage-final-approver{grid-column:auto}
.stage-reviewer-list{display:grid;gap:7px}
.engineering-side-info .stage-reviewer-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:9px;border:1px solid #e1e9ec;border-radius:7px;background:#fff}
.stage-reviewer-entry div small{display:block;margin-top:2px;color:#758891}.stage-reviewer-entry>p{grid-column:1/-1;margin:2px 0!important;color:#344e5b!important;line-height:1.45;overflow-wrap:anywhere}.stage-reviewer-entry>small{grid-column:1/-1;color:#84939a}.stage-reviewer-state{padding:3px 7px;border-radius:10px;background:#eef3f5;color:#4c6570;font-size:11px}
button.stage-reviewer-trigger{min-width:0;padding:3px 7px;border-radius:10px;font:inherit;font-size:11px;cursor:pointer;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}button.stage-reviewer-trigger:hover{filter:brightness(.96);transform:translateY(-1px);box-shadow:0 2px 7px #1d3c4b20}button.stage-reviewer-trigger:focus-visible{outline:2px solid #147c8c;outline-offset:2px}
.stage-review-status{white-space:nowrap}.stage-review-status.review-state-complete,.stage-reviewer-state.review-state-complete{border:1px solid #a8d8b8;background:#e5f6eb;color:#13743e}.stage-review-status.review-state-pending,.stage-reviewer-state.review-state-pending{border:1px solid #ebd27d;background:#fff4ce;color:#886500}.stage-review-status.review-state-overdue,.stage-reviewer-state.review-state-overdue{border:1px solid #eca6a1;background:#fde7e6;color:#b42318}.stage-review-status.review-state-neutral,.stage-reviewer-state.review-state-neutral{border:1px solid #d8e1e4;background:#eef3f5;color:#536d78}
#stageGovernanceHost .stage-review-card.review-card-complete{border-left-color:#24a65a}#stageGovernanceHost .stage-review-card.review-card-pending{border-left-color:#d6a800}#stageGovernanceHost .stage-review-card.review-card-overdue{border-left-color:#d64545;background:#fffafa}
.stage-review-actions{display:flex;gap:7px;flex-wrap:wrap}.stage-review-actions button{flex:1;min-width:110px}
.stage-rework-notice{padding:9px;border-left:3px solid #ef8a17;border-radius:6px;background:#fff5e6;color:#8b5c12!important;line-height:1.5}
.stage-config-reminder b{display:block;color:#8b4d06}.stage-config-reminder p{margin:5px 0 10px!important;color:#8b5c12!important}.stage-config-actions,.workflow-reminder-actions{display:flex;gap:8px;flex-wrap:wrap}.stage-review-form-alert:not(:empty){margin:10px 0;padding:10px 12px;border-left:4px solid #d96819;border-radius:7px;background:#fff2df;color:#984b0c;font-weight:700}.workflow-reminder{text-align:center;padding:10px 6px 4px}.workflow-reminder-icon{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 10px;border-radius:50%;background:#fff1dd;color:#d66f10;font-size:26px;font-weight:800}.workflow-reminder h2{margin:0 0 10px;color:#123047}.workflow-reminder p{max-width:580px;margin:0 auto 18px;color:#566d79;line-height:1.7}.workflow-reminder-actions{justify-content:center}.project-review-blocked{background:#fff0dc!important;color:#a24d09!important;border:1px solid #f0c28c}
.stage-retired-review{padding:9px;border-radius:6px;background:#eef3f5;color:#596f79!important;line-height:1.5}
#stageGovernanceHost .stage-approval-result{line-height:1.5}
.node-stage-lock,.node-rectification-panel{margin-top:16px;padding:16px;border-radius:9px}.node-stage-lock{border-left:4px solid #7a929d;background:#f1f5f6}.node-stage-lock b,.node-rectification-panel h4{display:block;margin:0 0 7px;color:#123047}.node-stage-lock p,.node-rectification-panel p{margin:0;color:#617782;line-height:1.6}.node-rectification-panel{border:1px solid #f0c27a;border-left:4px solid #ef8a17;background:#fffaf1}.node-rectification-panel label{display:block;margin-top:12px;color:#344e5b}.node-rectification-panel textarea{min-height:96px;margin-top:7px}.node-rectification-panel .node-actions{margin-top:12px}.stage-rectification-notice,.stage-rectification-submitted{margin-top:10px;padding:10px;border-radius:7px}.stage-rectification-notice{border-left:3px solid #ef8a17;background:#fff5e6}.stage-rectification-submitted{border-left:3px solid #168596;background:#eef7f8}.stage-rectification-notice b,.stage-rectification-submitted b{color:#123047}.stage-rectification-notice p,.stage-rectification-submitted p{margin:5px 0!important;line-height:1.5}.stage-rectification-submitted small{color:#71828c}.stage-audit-history{margin-top:10px}.stage-audit-history h5{margin:0 0 7px;color:#415d6a}.stage-audit-log{margin-top:6px;padding:9px;border:1px solid #dce6e9;border-radius:7px;background:#fff}.stage-audit-log>span{display:block;margin-top:3px;color:#788b94;font-size:11px}.stage-audit-log p{margin:5px 0 0!important}.stage-audit-log.audit-驳回{border-left:3px solid #d64545;background:#fff7f7}.stage-audit-log.audit-通过{border-left:3px solid #24a65a;background:#f4fbf6}
@media(max-width:700px){.stage-governance-head,.stage-review-card-head{display:grid}.stage-reviewer-fieldset{grid-template-columns:1fr}}
.node-rectification-panel textarea.stage-rectification-textarea{display:block;width:100%;min-height:240px;margin-top:9px;padding:13px;box-sizing:border-box;resize:vertical;line-height:1.7}
dialog:has(.stage-long-form){width:min(860px,calc(100vw - 32px));max-width:860px}.grid:has(.stage-long-form){grid-template-columns:minmax(0,1fr);gap:16px}.stage-long-form{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;width:100%}.stage-long-form label{display:grid;gap:8px;width:100%;font-weight:600}.stage-long-form select{font-weight:400}.stage-long-form textarea.stage-opinion-textarea{display:block;width:100%;min-height:260px;padding:13px;box-sizing:border-box;resize:vertical;line-height:1.7;font-weight:400}.grid:has(.stage-long-form)>div:last-child{display:flex;justify-content:flex-end}.grid:has(.stage-long-form)>div:last-child button{min-width:110px}
