.approval-node-commit[data-v-30c3a023]{width:100%}.node-list[data-v-30c3a023]{position:relative}.node-list[data-v-30c3a023]:before{content:"";position:absolute;left:24px;top:40px;bottom:40px;width:2px;background-color:#e8e8e8;z-index:1}.node-item[data-v-30c3a023]{position:relative;padding:16px;margin-bottom:24px;margin-left:12px;background-color:#fff;border-radius:8px;border-left:4px solid #e8e8e8;z-index:2;-webkit-transition:all .3s ease;transition:all .3s ease;-webkit-box-shadow:0 2px 8px rgba(0,0,0,.08);box-shadow:0 2px 8px rgba(0,0,0,.08);border:1px solid #e8e8e8;opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px);-webkit-animation:slideIn-30c3a023 .5s ease forwards;animation:slideIn-30c3a023 .5s ease forwards}@-webkit-keyframes slideIn-30c3a023{to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideIn-30c3a023{to{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}.node-item[data-v-30c3a023]:first-child{-webkit-animation-delay:.1s;animation-delay:.1s}.node-item[data-v-30c3a023]:nth-child(2){-webkit-animation-delay:.2s;animation-delay:.2s}.node-item[data-v-30c3a023]:nth-child(3){-webkit-animation-delay:.3s;animation-delay:.3s}.node-item[data-v-30c3a023]:nth-child(4){-webkit-animation-delay:.4s;animation-delay:.4s}.node-item[data-v-30c3a023]:nth-child(5){-webkit-animation-delay:.5s;animation-delay:.5s}.node-item[data-v-30c3a023]:nth-child(6){-webkit-animation-delay:.6s;animation-delay:.6s}.node-item[data-v-30c3a023]:nth-child(7){-webkit-animation-delay:.7s;animation-delay:.7s}.node-item[data-v-30c3a023]:nth-child(8){-webkit-animation-delay:.8s;animation-delay:.8s}.node-item[data-v-30c3a023]:nth-child(9){-webkit-animation-delay:.9s;animation-delay:.9s}.node-item[data-v-30c3a023]:nth-child(10){-webkit-animation-delay:1s;animation-delay:1s}.node-pending[data-v-30c3a023]{border-left-color:#faad14;background-color:#fff7e6;border-color:#ffe7ba}.node-processing[data-v-30c3a023]{border-left-color:#1890ff;background-color:#e6f7ff;border-color:#91d5ff}.node-approved[data-v-30c3a023]{border-left-color:#52c41a;background-color:#f6ffed;border-color:#b7eb8f}.node-rejected[data-v-30c3a023]{border-left-color:#ff4d4f;background-color:#fff2f0;border-color:#ffccc7}.node-item[data-v-30c3a023]:before{content:"";position:absolute;left:-24px;top:20px;width:16px;height:16px;border-radius:50%;background-color:#fff;border:2px solid #e8e8e8;z-index:3}.node-pending[data-v-30c3a023]:before{border-color:#faad14}.node-processing[data-v-30c3a023]:before{border-color:#1890ff;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2);-webkit-animation:pulse-30c3a023 2s infinite;animation:pulse-30c3a023 2s infinite}.node-approved[data-v-30c3a023]:before{border-color:#52c41a}.node-rejected[data-v-30c3a023]:before{border-color:#ff4d4f}@-webkit-keyframes pulse-30c3a023{0%{-webkit-box-shadow:0 0 0 0 rgba(24,144,255,.4);box-shadow:0 0 0 0 rgba(24,144,255,.4)}70%{-webkit-box-shadow:0 0 0 5px rgba(24,144,255,0);box-shadow:0 0 0 5px rgba(24,144,255,0)}to{-webkit-box-shadow:0 0 0 0 rgba(24,144,255,0);box-shadow:0 0 0 0 rgba(24,144,255,0)}}@keyframes pulse-30c3a023{0%{-webkit-box-shadow:0 0 0 0 rgba(24,144,255,.4);box-shadow:0 0 0 0 rgba(24,144,255,.4)}70%{-webkit-box-shadow:0 0 0 5px rgba(24,144,255,0);box-shadow:0 0 0 5px rgba(24,144,255,0)}to{-webkit-box-shadow:0 0 0 0 rgba(24,144,255,0);box-shadow:0 0 0 0 rgba(24,144,255,0)}}.node-header[data-v-30c3a023]{margin-bottom:8px}.node-name[data-v-30c3a023]{font-weight:700;font-size:14px;color:#333}.node-actions[data-v-30c3a023]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.approver-item[data-v-30c3a023]{padding:10px 16px;margin-bottom:10px;background-color:#fff;border-radius:6px;border-left:3px solid #e8e8e8;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.05);box-shadow:0 1px 4px rgba(0,0,0,.05);-webkit-transition:all .2s ease;transition:all .2s ease;opacity:0;-webkit-animation:fadeIn-30c3a023 .3s ease forwards;animation:fadeIn-30c3a023 .3s ease forwards}@-webkit-keyframes fadeIn-30c3a023{to{opacity:1}}@keyframes fadeIn-30c3a023{to{opacity:1}}.approver-item[data-v-30c3a023]:hover{-webkit-box-shadow:0 2px 8px rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.1);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.approver-clickable[data-v-30c3a023]{cursor:pointer}.approver-clickable[data-v-30c3a023]:hover{-webkit-box-shadow:0 4px 12px rgba(0,0,0,.15);box-shadow:0 4px 12px rgba(0,0,0,.15);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.approver-pending[data-v-30c3a023]{border-left-color:#faad14}.approver-approved[data-v-30c3a023]{border-left-color:#52c41a}.approver-rejected[data-v-30c3a023]{border-left-color:#ff4d4f}.approver-name[data-v-30c3a023]{font-weight:700;margin-bottom:4px}.approver-status[data-v-30c3a023]{font-size:12px;color:#666;margin-bottom:4px}.approver-comment[data-v-30c3a023]{margin-top:8px;padding-top:8px;border-top:1px dashed #f0f0f0;font-size:12px}.comment-label[data-v-30c3a023]{font-weight:700;color:#333}.comment-content[data-v-30c3a023]{color:#666}.approver-time[data-v-30c3a023]{font-size:12px;color:#999;margin-top:4px}.approver-signature[data-v-30c3a023]{margin-top:8px;padding-top:8px;border-top:1px dashed #f0f0f0;font-size:12px}.signature-label[data-v-30c3a023]{font-weight:700;color:#333;display:block;margin-bottom:4px}.signature-image[data-v-30c3a023]{max-width:40px;max-height:80px;border:1px solid #e8e8e8;border-radius:4px;margin-top:4px}.no-approvers-tip[data-v-30c3a023]{padding:12px 16px;background-color:#f5f5f5;border-radius:6px;border-left:3px solid #d9d9d9;font-size:12px;color:#999;text-align:center;margin-bottom:10px}.approve-modal-approved .ant-modal-header[data-v-30c3a023]{background-color:#f6ffed;border-bottom-color:#b7eb8f}.approve-modal-approved .ant-modal-title[data-v-30c3a023]{color:#52c41a}.approve-modal-rejected .ant-modal-header[data-v-30c3a023]{background-color:#fff2f0;border-bottom-color:#ffccc7}.approve-modal-rejected .ant-modal-title[data-v-30c3a023]{color:#ff4d4f}.approve-modal-approved .ant-form-item-label>label[data-v-30c3a023]{color:#52c41a}.approve-modal-rejected .ant-form-item-label>label[data-v-30c3a023]{color:#ff4d4f}