.purchase-mgmt-page{height:calc(100vh - 64px);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;background:#f0f2f5;padding:12px}.purchase-mgmt-page .page-header{flex-shrink:0;margin-bottom:12px}.purchase-mgmt-page .filter-card{background:#fff;border-radius:8px;padding:14px 16px 10px;box-shadow:0 1px 4px rgba(0,0,0,.06);border:1px solid #ebeef5}.purchase-mgmt-page .filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:8px}.purchase-mgmt-page .filter-row:last-child{margin-bottom:0}.purchase-mgmt-page .filter-item{display:flex;align-items:center;gap:8px;margin-bottom:4px}.purchase-mgmt-page .filter-item .filter-label{flex-shrink:0;min-width:56px;text-align:right;color:#606266;font-size:13px;white-space:nowrap}.purchase-mgmt-page .filter-item .el-input,.purchase-mgmt-page .filter-item .el-select{width:120px}.purchase-mgmt-page .filter-item .filter-date{width:220px!important}.purchase-mgmt-page .filter-item .filter-select-wide{width:200px!important}.purchase-mgmt-page .filter-item .filter-select-wide .el-input{width:200px}.purchase-mgmt-page .filter-item .filter-select-wide .el-select__tags{max-width:188px!important}.purchase-mgmt-page .filter-item .query-btn{margin-left:4px}.purchase-mgmt-page .filter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.purchase-mgmt-page .batch-toolbar,.purchase-mgmt-page .page-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;padding:8px 12px;background:#ecf5ff;border:1px solid #d9ecff;border-radius:6px}.purchase-mgmt-page .batch-toolbar .toolbar-tip,.purchase-mgmt-page .page-toolbar .toolbar-tip{color:#606266;font-size:12px}.purchase-mgmt-page .batch-toolbar .toolbar-action-btn,.purchase-mgmt-page .page-toolbar .toolbar-action-btn{height:auto!important;min-height:32px;padding:7px 15px!important;line-height:1.3!important;white-space:nowrap!important;overflow:visible!important;letter-spacing:0;vertical-align:middle;box-sizing:border-box}.purchase-mgmt-page .batch-toolbar .toolbar-action-btn>span,.purchase-mgmt-page .page-toolbar .toolbar-action-btn>span{display:inline-block;white-space:nowrap!important;line-height:1.3;overflow:visible}.purchase-mgmt-page .batch-toolbar .action-btn-long-label,.purchase-mgmt-page .page-toolbar .action-btn-long-label{min-width:110px}.purchase-mgmt-page .batch-toolbar .action-btn-create-purchase-order,.purchase-mgmt-page .batch-toolbar .action-btn-create-receipt,.purchase-mgmt-page .page-toolbar .action-btn-create-purchase-order,.purchase-mgmt-page .page-toolbar .action-btn-create-receipt{min-width:108px;padding-left:14px!important;padding-right:14px!important}.purchase-mgmt-page .table-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);border:1px solid #ebeef5}.purchase-mgmt-page .table-container{flex:1;min-height:0}.purchase-mgmt-page .status-tabs{flex-shrink:0;margin-bottom:12px}.purchase-mgmt-page .status-tabs .el-tabs__header{margin-bottom:0}.purchase-mgmt-page .status-tabs .el-tabs__item{height:40px;line-height:40px;font-size:13px}.purchase-mgmt-page .status-tabs .status-tab-label{display:inline-flex;align-items:center;gap:6px}.purchase-mgmt-page .status-tabs .status-tab-badge .el-badge__content{height:16px;line-height:16px;padding:0 5px;border:none}.purchase-mgmt-page .pagination-box{flex-shrink:0;display:flex;justify-content:center;padding-top:12px}.purchase-mgmt-page .mgmt-table{table-layout:fixed}.purchase-mgmt-page .mgmt-table .table-header-cell{padding:6px 0;font-size:12px;font-weight:600;color:#303133;background:#f5f7fa!important}.purchase-mgmt-page .el-table .merge-col{background-color:#fafcff!important;vertical-align:middle}.purchase-mgmt-page .el-table td.el-table-column--selection{vertical-align:middle}.purchase-mgmt-page .amount-col{font-variant-numeric:tabular-nums}.purchase-mgmt-page .money-text{font-weight:600;color:#303133}.purchase-mgmt-page .money-text.primary{color:#409eff}.purchase-mgmt-page .money-text.positive{color:#67c23a}.purchase-mgmt-page .money-text.negative{color:#f56c6c}.purchase-mgmt-page .money-text.zero{color:#909399}.purchase-mgmt-page .highlight-amount .money-text{color:#e6a23c}.purchase-mgmt-page .purchase-order-table tr.el-table__row--striped td.merge-col{background-color:#f3f8ff!important}.purchase-mgmt-page .purchase-order-table .el-table__footer-wrapper td{background:#fafafa!important;font-weight:600;color:#303133;font-size:12px}.purchase-mgmt-page .danger-text{color:#f56c6c}.purchase-mgmt-page .action-col .cell{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.4;padding:6px 4px}.purchase-mgmt-page .action-cell{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 4px;white-space:normal}.purchase-mgmt-page .action-btn,.purchase-mgmt-page .action-cell .el-button--text{padding:0 4px;margin:0}.purchase-mgmt-page .action-btn.success{color:#67c23a}.purchase-mgmt-page .action-btn.danger{color:#f56c6c}.purchase-mgmt-page .action-btn.warning{color:#e6a23c}.purchase-mgmt-page .text-col-20 .cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#PurchaseContractMgmt .filter-date{width:240px}#PurchaseContractMgmt .contract-file-link{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#PurchaseContractMgmt .contract-file-thumbs{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px}#PurchaseContractMgmt .contract-file-thumb{width:36px;height:36px;border-radius:4px;border:1px solid #ebeef5;overflow:hidden}#PurchaseContractMgmt .contract-file-more{font-size:12px;color:#909399}#PurchaseContractMgmt .el-table .text-col-20 .cell{max-width:220px}.purchase-contract-print-dialog .print-config-panel{margin-bottom:12px;padding:12px 14px;background:#fafafa;border:1px solid #ebeef5;border-radius:8px}.purchase-contract-print-dialog .print-config-panel.print-config-readonly{background:#f5f7fa}.purchase-contract-print-dialog .print-config-row{display:flex;flex-wrap:wrap;gap:12px 16px;margin-bottom:8px}.purchase-contract-print-dialog .print-config-row:last-child{margin-bottom:0}.purchase-contract-print-dialog .print-config-item{display:flex;align-items:center;gap:8px;min-width:240px}.purchase-contract-print-dialog .print-config-item.wide{flex:1;min-width:100%}.purchase-contract-print-dialog .print-config-label{flex-shrink:0;width:92px;color:#606266;font-size:13px;text-align:right}.purchase-contract-print-dialog .print-config-daterange{width:100%;max-width:320px}.purchase-contract-print-dialog .print-preview-wrapper{max-height:70vh;overflow:auto;background:#eef1f6;padding:16px;border-radius:8px}#purchase-contract-print,.purchase-contract-print{width:210mm;min-height:297mm;margin:0 auto;padding:18mm 20mm 20mm;box-sizing:border-box;background:#fff;color:#000;font-family:SimSun,Songti SC,STSong,serif;font-size:11pt;line-height:1.65;letter-spacing:.2px}#purchase-contract-print .contract-label,.purchase-contract-print .contract-label{font-weight:700}#purchase-contract-print .contract-value,.purchase-contract-print .contract-value{font-weight:400}#purchase-contract-print .contract-title,.purchase-contract-print .contract-title{text-align:center;font-size:20pt;font-weight:700;margin:0 0 16pt;letter-spacing:3px;line-height:1.4}#purchase-contract-print .contract-meta-line,.purchase-contract-print .contract-meta-line{margin-bottom:10pt;font-size:11pt}#purchase-contract-print .contract-party-line,.purchase-contract-print .contract-party-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12pt;margin-bottom:8pt;font-size:11pt}#purchase-contract-print .contract-party-line .party-left,.purchase-contract-print .contract-party-line .party-left{flex:1;min-width:0;word-break:break-all}#purchase-contract-print .contract-party-line .party-right,.purchase-contract-print .contract-party-line .party-right{flex-shrink:0;width:42%;text-align:left}#purchase-contract-print .contract-table,.purchase-contract-print .contract-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:12pt;font-size:10pt}#purchase-contract-print .contract-table td,#purchase-contract-print .contract-table th,.purchase-contract-print .contract-table td,.purchase-contract-print .contract-table th{border:1px solid #000;padding:4pt 3pt;word-break:break-all;vertical-align:middle;line-height:1.35}#purchase-contract-print .contract-table th,.purchase-contract-print .contract-table th{text-align:center;font-weight:700;font-size:10pt;padding:5pt 3pt}#purchase-contract-print .contract-table .col-name,.purchase-contract-print .contract-table .col-name{width:24%}#purchase-contract-print .contract-table .col-spec,.purchase-contract-print .contract-table .col-spec{width:26%}#purchase-contract-print .contract-table .col-qty,.purchase-contract-print .contract-table .col-qty{width:9%}#purchase-contract-print .contract-table .col-unit,.purchase-contract-print .contract-table .col-unit{width:7%}#purchase-contract-print .contract-table .col-price,.purchase-contract-print .contract-table .col-price{width:13%}#purchase-contract-print .contract-table .col-total,.purchase-contract-print .contract-table .col-total{width:21%}#purchase-contract-print .contract-table .col-name-cell,#purchase-contract-print .contract-table .col-spec-cell,.purchase-contract-print .contract-table .col-name-cell,.purchase-contract-print .contract-table .col-spec-cell{font-size:10pt;line-height:1.35}#purchase-contract-print .contract-table .text-right,.purchase-contract-print .contract-table .text-right{text-align:right}#purchase-contract-print .contract-table .text-center,.purchase-contract-print .contract-table .text-center{text-align:center}#purchase-contract-print .contract-total-row td,.purchase-contract-print .contract-total-row td{min-height:24pt;font-size:10pt}#purchase-contract-print .contract-terms-section,.purchase-contract-print .contract-terms-section{margin-top:4pt;margin-bottom:10pt}#purchase-contract-print .contract-term-line,.purchase-contract-print .contract-term-line{display:flex;align-items:flex-start;margin-bottom:7pt;font-size:10.5pt;line-height:1.7}#purchase-contract-print .contract-term-line .contract-label,.purchase-contract-print .contract-term-line .contract-label{flex-shrink:0}#purchase-contract-print .contract-term-line .term-value,.purchase-contract-print .contract-term-line .term-value{flex:1;min-width:0;word-break:break-all;text-decoration:underline;text-underline-offset:2px}#purchase-contract-print .contract-general-section,.purchase-contract-print .contract-general-section{margin-top:6pt}#purchase-contract-print .contract-general-title,.purchase-contract-print .contract-general-title{margin-bottom:6pt;font-size:10.5pt}#purchase-contract-print .contract-general-item,.purchase-contract-print .contract-general-item{margin-bottom:5pt;font-size:10pt;line-height:1.75;text-align:justify;text-justify:inter-ideograph}#purchase-contract-print .contract-sign-row,.purchase-contract-print .contract-sign-row{display:flex;justify-content:space-between;margin-top:36pt;padding:0 8pt;font-size:11pt}#purchase-contract-print .contract-sign-row .contract-sign-item,.purchase-contract-print .contract-sign-row .contract-sign-item{width:42%}@media print{@page{size:A4 portrait;margin:0}body,html{width:210mm;height:297mm;margin:0;padding:0}#purchase-contract-print,.purchase-contract-print{width:210mm;min-height:297mm;margin:0;padding:18mm 20mm 20mm;box-shadow:none;page-break-after:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}.purchase-contract-print .contract-general-section,.purchase-contract-print .contract-table,.purchase-contract-print .contract-terms-section{page-break-inside:avoid}}.contract-file-upload-dialog .contract-file-upload-panel,.contract-file-upload-dialog .contract-file-upload-panel:focus{outline:none}.contract-file-upload-dialog .contract-file-upload-list{display:flex;flex-wrap:wrap;gap:12px;min-height:120px}.contract-file-upload-dialog .contract-file-upload-item{position:relative;width:120px;height:120px;border-radius:6px;overflow:hidden;border:1px solid #ebeef5}.contract-file-upload-dialog .contract-file-upload-image{width:120px;height:120px}.contract-file-upload-dialog .contract-file-upload-pdf{width:120px;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;box-sizing:border-box;background:#fafafa;color:#606266;font-size:12px;text-align:center;word-break:break-all}.contract-file-upload-dialog .contract-file-upload-pdf i{font-size:28px;color:#909399}.contract-file-upload-dialog .contract-file-upload-remove{position:absolute;top:4px;right:4px;font-size:18px;color:#f56c6c;cursor:pointer;background:hsla(0,0%,100%,.92);border-radius:50%}.contract-file-upload-dialog .contract-file-upload-add .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer}.contract-file-upload-dialog .contract-file-upload-add .el-upload:hover{border-color:#409eff}.contract-file-upload-dialog .contract-file-upload-trigger{display:flex;flex-direction:column;align-items:center;justify-content:center;width:120px;height:120px;color:#909399;font-size:12px;gap:8px}.contract-file-upload-dialog .contract-file-upload-trigger i{font-size:28px;color:#8c939d}.contract-file-upload-dialog .contract-file-upload-tip{margin-top:12px;font-size:12px;color:#909399;text-align:center;line-height:1.6}.contract-file-preview-dialog .contract-file-preview-content{min-height:420px;display:flex;align-items:center;justify-content:center;background:#f5f7fa;border-radius:8px;overflow:auto}.contract-file-preview-dialog .contract-file-preview-body{width:100%;display:flex;flex-direction:column;gap:12px}.contract-file-preview-dialog .contract-file-preview-images{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;padding:12px;box-sizing:border-box}.contract-file-preview-dialog .contract-file-preview-full{max-width:100%;max-height:70vh;-o-object-fit:contain;object-fit:contain}.contract-file-preview-dialog .contract-file-preview-frame{width:100%;height:70vh;border:none;background:#fff}.contract-file-preview-dialog .contract-file-preview-empty{color:#909399;font-size:14px}.pay-order-reject-dialog .reject-dialog-tip{margin-bottom:12px;color:#606266;font-size:13px}.contract-invoice-dialog{max-width:1180px}.contract-invoice-dialog .el-dialog__body{padding:16px 20px 8px;overflow:hidden}.contract-invoice-dialog .contract-invoice-table-wrap{overflow:hidden}.contract-invoice-dialog .contract-invoice-table{width:100%}.contract-invoice-dialog .el-table .merge-col{vertical-align:middle}.contract-invoice-dialog .el-table .text-col-20 .cell{max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remark-cell{line-height:1.5;word-break:break-all}.remark-cell .reject-reason-text{margin-top:4px;color:#e6a23c;font-size:12px}