
:root{--fin-navy:#10334b;--fin-blue:#1580b8;--fin-cyan:#2ab5d6;--fin-bg:#f3f7fa;--fin-line:#dce7ee;--fin-text:#163143;--fin-muted:#708593;--fin-green:#0d9277;--fin-red:#cb4b55;--fin-amber:#b87500}
#erp-finance-launcher{display:flex!important;align-items:center;gap:12px;width:calc(100% - 24px);margin:8px 12px;padding:12px 15px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#eaf6fc;font:600 15px/1.2 inherit;cursor:pointer;text-align:left}.erp-fin-icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:rgba(42,181,214,.18);color:#80dbef}.erp-fin-badge{margin-left:auto;padding:2px 7px;border-radius:999px;background:#f4a629;color:#fff;font-size:11px}
#erp-finance-dashboard-strip{margin:14px 0 18px;padding:18px;border:1px solid var(--fin-line);border-radius:15px;background:linear-gradient(135deg,#f8fcfe,#eef8fb);box-shadow:0 7px 22px rgba(26,65,89,.05)}.erp-fin-strip-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.erp-fin-strip-head b{font-size:16px;color:var(--fin-text)}.erp-fin-link{border:0;background:transparent;color:var(--fin-blue);font-weight:700;cursor:pointer}.erp-fin-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.erp-fin-card{background:#fff;border:1px solid var(--fin-line);border-radius:12px;padding:14px}.erp-fin-card small{display:block;color:var(--fin-muted);margin-bottom:7px}.erp-fin-card strong{display:block;color:var(--fin-text);font-size:21px}.erp-fin-card em{font-style:normal;color:var(--fin-muted);font-size:12px}
#erp-finance-overlay{position:fixed;inset:0;z-index:2147483000;background:var(--fin-bg);color:var(--fin-text);overflow:auto;font-family:inherit}.erp-fin-shell{max-width:1580px;margin:0 auto;padding:22px 28px 70px}.erp-fin-top{display:flex;align-items:center;gap:16px;margin-bottom:18px}.erp-fin-top h1{font-size:25px;margin:0}.erp-fin-top p{margin:3px 0 0;color:var(--fin-muted)}.erp-fin-spacer{flex:1}.erp-fin-btn{border:1px solid #c9dbe5;background:#fff;color:var(--fin-text);border-radius:9px;padding:9px 14px;font-weight:650;cursor:pointer}.erp-fin-btn:hover{border-color:var(--fin-blue)}.erp-fin-btn.primary{background:var(--fin-blue);border-color:var(--fin-blue);color:#fff}.erp-fin-btn.danger{color:var(--fin-red)}.erp-fin-btn.small{padding:6px 9px;font-size:12px}.erp-fin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.erp-fin-summary .erp-fin-card{min-height:88px}.erp-fin-alerts{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 18px}.erp-fin-alert{background:#fff;border:1px solid var(--fin-line);border-radius:999px;padding:7px 11px;color:var(--fin-muted);font-size:13px}.erp-fin-panel{background:#fff;border:1px solid var(--fin-line);border-radius:14px;box-shadow:0 7px 20px rgba(24,62,85,.04);overflow:hidden}.erp-fin-toolbar{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid var(--fin-line);flex-wrap:wrap}.erp-fin-input,.erp-fin-select{min-height:38px;border:1px solid #cbdbe5;border-radius:8px;padding:8px 10px;background:#fff;color:var(--fin-text);font:inherit}.erp-fin-input:focus,.erp-fin-select:focus{outline:2px solid rgba(21,128,184,.15);border-color:var(--fin-blue)}.erp-fin-search{min-width:260px}.erp-fin-table-wrap{overflow:auto;max-height:calc(100vh - 330px)}.erp-fin-table{width:100%;border-collapse:collapse;min-width:1120px}.erp-fin-table th{position:sticky;top:0;z-index:1;background:#f7fafc;color:#657b89;font-size:12px;text-align:left;padding:11px;border-bottom:1px solid var(--fin-line)}.erp-fin-table td{padding:11px;border-bottom:1px solid #edf2f5;vertical-align:middle;font-size:13px}.erp-fin-table tr:hover td{background:#fbfdfe}.erp-fin-code{font-weight:750;color:#145d86}.erp-fin-muted{color:var(--fin-muted)}.erp-fin-money{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.erp-fin-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eaf5f8;color:#26718d;font-size:12px;white-space:nowrap}.erp-fin-status[data-status="settled"],.erp-fin-status[data-status="fully_paid"]{background:#e4f6ef;color:#08765e}.erp-fin-status[data-status="cancelled"],.erp-fin-status[data-status="expired"]{background:#f8e9eb;color:#ad3c48}.erp-fin-status[data-status="deposit_received"],.erp-fin-status[data-status="balance_due"]{background:#fff1d9;color:#936000}.erp-fin-actions{display:flex;gap:6px;white-space:nowrap}
.erp-fin-modal-backdrop{position:fixed;inset:0;z-index:2147483100;background:rgba(10,35,51,.54);display:grid;place-items:center;padding:20px}.erp-fin-modal{width:min(1160px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 28px 80px rgba(5,25,37,.28)}.erp-fin-modal.narrow{width:min(680px,96vw)}.erp-fin-modal-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--fin-line);background:#fff}.erp-fin-modal-head h2{margin:0;font-size:20px}.erp-fin-modal-body{padding:18px 20px 24px}.erp-fin-close{margin-left:auto;border:0;background:transparent;font-size:24px;color:var(--fin-muted);cursor:pointer}.erp-fin-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.erp-fin-kpi{border:1px solid var(--fin-line);border-radius:11px;padding:12px}.erp-fin-kpi small{display:block;color:var(--fin-muted);margin-bottom:5px}.erp-fin-kpi strong{font-size:18px}.erp-fin-section{margin-top:18px}.erp-fin-section-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.erp-fin-section-head h3{margin:0;font-size:16px}.erp-fin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.erp-fin-field label{display:block;font-size:12px;font-weight:700;color:#566f7f;margin:0 0 6px}.erp-fin-field .erp-fin-input,.erp-fin-field .erp-fin-select{width:100%;box-sizing:border-box}.erp-fin-field.wide{grid-column:span 2}.erp-fin-checks{display:flex;gap:14px;flex-wrap:wrap;padding:12px 0}.erp-fin-note{padding:10px 12px;border-radius:9px;background:#edf8fb;color:#397185;font-size:12px}.erp-fin-error{padding:10px 12px;border-radius:9px;background:#fff0f1;color:#a53642;margin-bottom:12px}.erp-fin-empty{padding:35px;text-align:center;color:var(--fin-muted)}.erp-fin-toast{position:fixed;right:24px;bottom:24px;z-index:2147483200;background:#153b52;color:#fff;border-radius:10px;padding:12px 16px;box-shadow:0 12px 30px rgba(0,0,0,.2)}.erp-fin-hidden{display:none!important}
@media(max-width:1050px){.erp-fin-card-grid,.erp-fin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.erp-fin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.erp-fin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.erp-fin-shell{padding:15px 12px 60px}.erp-fin-card-grid,.erp-fin-summary,.erp-fin-detail-grid,.erp-fin-form-grid{grid-template-columns:1fr}.erp-fin-field.wide{grid-column:auto}.erp-fin-top{align-items:flex-start;flex-wrap:wrap}.erp-fin-search{min-width:100%;width:100%}.erp-fin-modal-backdrop{padding:0}.erp-fin-modal,.erp-fin-modal.narrow{width:100vw;max-height:100vh;height:100vh;border-radius:0}.erp-fin-table-wrap{max-height:none}}

/* v1.2.20 actual PI source synchronization */
.erp-fin-section-head-wrap{flex-wrap:wrap}.erp-fin-source-badge{display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.erp-fin-source-badge.ok{background:#e3f6ef;color:#08745c}.erp-fin-source-badge.warn{background:#fff0d9;color:#936000}.erp-fin-source-badge.manual{background:#edf1ff;color:#4f5ca8}.erp-fin-source-note{margin:4px 0 14px;padding:11px 13px;border-radius:10px;font-size:12px;line-height:1.6}.erp-fin-source-note.ok{background:#eff9f5;color:#276b59;border:1px solid #d7eee5}.erp-fin-source-note.warn{background:#fff8e9;color:#885c09;border:1px solid #f3dfb0}.erp-fin-source-input[readonly]{background:#f5f8fa;color:#435f70;cursor:default}.erp-fin-input-action{display:flex;gap:7px;align-items:stretch}.erp-fin-input-action .erp-fin-input{min-width:0;flex:1}.erp-fin-wa-link{display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border:1px solid #91d8ca;border-radius:8px;background:#ecfaf6;color:#08765e;font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}.erp-fin-wa-link:hover{background:#def6ef}.erp-fin-table-link{color:#08765e;text-decoration:none;font-weight:650}.erp-fin-table-link:hover{text-decoration:underline}.erp-fin-customer-name{font-weight:700;color:var(--fin-text);margin:2px 0}.erp-fin-field-help{display:block;margin-top:5px;color:var(--fin-muted);font-size:11px;line-height:1.35}.erp-fin-btn:disabled{opacity:.58;cursor:not-allowed}.erp-fin-modal-body [data-profile-error] .erp-fin-error{margin-top:2px}.erp-fin-field input[type="date"][readonly]{pointer-events:none}
@media(max-width:680px){.erp-fin-input-action{align-items:stretch;flex-direction:column}.erp-fin-wa-link{min-height:38px}.erp-fin-section-head-wrap .erp-fin-spacer{display:none;width:100%}.erp-fin-section-head-wrap>[data-resync-profile],.erp-fin-section-head-wrap>[data-save-profile]{flex:1}}

/* v1.2.22: fast finance detail + clearer receivable/payable dashboard */
.erp-fin-strip-head>div{display:flex;flex-direction:column;gap:3px}.erp-fin-strip-head>div small{color:var(--fin-muted);font-size:12px;font-weight:500}.erp-fin-card.contract{border-color:#cfe3ef}.erp-fin-card.received,.erp-fin-kpi.received{border-color:#bfe8db;background:#f6fcfa}.erp-fin-card.due,.erp-fin-kpi.due{border-color:#f0cfb3;background:#fffaf5}.erp-fin-card.payable,.erp-fin-kpi.payable{border-color:#f0dba8;background:#fffcf3}.erp-fin-card.balance,.erp-fin-kpi.balance{border-color:#cbddeb;background:#f7fbfe}.erp-fin-card strong.due,.erp-fin-money.due{color:#bd5c2f}.erp-fin-card strong.payable,.erp-fin-money.payable{color:#9b6900}.erp-fin-card strong.received,.erp-fin-money.received{color:#078068}.erp-fin-warning-text{display:inline-flex;padding:4px 7px;border-radius:7px;background:#fff4dd;color:#956400;font-weight:650;font-size:12px}.erp-fin-alert.important{background:#fff7ed;border-color:#f2d1af;color:#a75128;font-weight:700}.erp-fin-alert.payable{background:#fffbed;border-color:#efdba7;color:#916400;font-weight:700}.erp-fin-alert.received{background:#f0faf7;border-color:#c6e9df;color:#08725e;font-weight:700}
.erp-fin-detail-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:2px 0 15px;border-bottom:1px solid #e8eff3;margin-bottom:14px}.erp-fin-detail-toolbar h3{margin:3px 0 2px;font-size:19px;color:var(--fin-text)}.erp-fin-detail-toolbar .erp-fin-code{font-size:12px;letter-spacing:.03em}.erp-fin-fast-loading{display:flex;align-items:center;gap:9px;margin:-2px 0 13px;padding:9px 11px;border:1px solid #d9eaf2;border-radius:9px;background:#f3fafd;color:#4b7488;font-size:12px}.erp-fin-fast-loading>span,.erp-fin-spinner{width:16px;height:16px;border:2px solid #c8e4ef;border-top-color:var(--fin-blue);border-radius:50%;animation:erp-fin-spin .75s linear infinite;flex:none}.erp-fin-empty .erp-fin-spinner{display:block;width:24px;height:24px;margin:0 auto 11px}@keyframes erp-fin-spin{to{transform:rotate(360deg)}}
.erp-fin-kpi{position:relative;overflow:hidden;min-height:82px}.erp-fin-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#cfe2ec}.erp-fin-kpi.contract:before{background:#4fa4cc}.erp-fin-kpi.received:before{background:#1aa184}.erp-fin-kpi.due:before{background:#dc7b46}.erp-fin-kpi.payable:before{background:#d6a429}.erp-fin-kpi strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.erp-fin-kpi em{display:block;margin-top:4px;color:var(--fin-muted);font-size:11px;font-style:normal;line-height:1.45}
.erp-fin-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 18px}.erp-fin-progress-card{border:1px solid #dce9ef;border-radius:12px;background:#fbfdfe;padding:13px 14px}.erp-fin-progress-card.payable{background:#fffdf7;border-color:#ede1bf}.erp-fin-progress-head,.erp-fin-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:14px}.erp-fin-progress-head b{font-size:14px}.erp-fin-progress-head span,.erp-fin-progress-foot span{color:var(--fin-muted);font-size:12px}.erp-fin-progress-foot strong{font-size:13px;color:#b6532c}.erp-fin-progress-card.payable .erp-fin-progress-foot strong{color:#946500}.erp-fin-progress-track{height:8px;margin:10px 0;border-radius:999px;background:#e9f1f5;overflow:hidden}.erp-fin-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#35b99d,#0b9175);transition:width .25s ease}.erp-fin-progress-card.payable .erp-fin-progress-track i{background:linear-gradient(90deg,#e5bd55,#c58b12)}.erp-fin-over-budget{margin-top:9px;padding:7px 9px;border-radius:7px;background:#fff0f0;color:#b83e49;font-size:12px;font-weight:700}
.erp-fin-transaction-section{margin-top:16px;border:1px solid var(--fin-line);border-radius:12px;overflow:hidden}.erp-fin-transaction-section .erp-fin-section-head{margin:0;padding:12px 14px;background:#f8fbfc;border-bottom:1px solid var(--fin-line);flex-wrap:wrap}.erp-fin-section-summary{color:var(--fin-muted);font-size:12px}.erp-fin-transaction-section .erp-fin-table-wrap{max-height:300px}.erp-fin-transaction-section .erp-fin-table{min-width:920px}.erp-fin-transaction-section .erp-fin-empty{padding:20px}.erp-fin-transaction-section .erp-fin-empty.compact{padding:16px}.erp-fin-tx-wrap{position:relative}.erp-fin-contract-details{margin-top:18px;border:1px solid var(--fin-line);border-radius:12px;background:#fff;overflow:hidden}.erp-fin-contract-details>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;background:#f8fafc;cursor:pointer;list-style:none;font-weight:750}.erp-fin-contract-details>summary::-webkit-details-marker{display:none}.erp-fin-contract-details>summary:after{content:"展开";font-size:12px;color:var(--fin-blue);font-weight:700}.erp-fin-contract-details[open]>summary:after{content:"收起"}.erp-fin-contract-content{padding:15px 16px 18px}.erp-fin-contract-details .erp-fin-form-grid{margin-top:12px}
@media(max-width:1050px){.erp-fin-progress-grid{grid-template-columns:1fr}.erp-fin-detail-toolbar .erp-fin-spacer{display:none;width:100%}}
@media(max-width:680px){.erp-fin-detail-toolbar{align-items:flex-start}.erp-fin-detail-toolbar .erp-fin-btn{flex:1}.erp-fin-progress-head,.erp-fin-progress-foot{align-items:flex-start;flex-direction:column;gap:4px}.erp-fin-contract-details>summary{align-items:flex-start;flex-direction:column}.erp-fin-contract-details>summary:after{position:absolute;right:16px}.erp-fin-modal-body{padding:14px 12px 24px}.erp-fin-detail-grid{gap:9px}.erp-fin-kpi{min-height:72px}}


/* v1.2.23: editable receipt and expense records */
.erp-fin-tx-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.erp-fin-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.erp-fin-edit-note{border:1px solid #cfe3ef;background:#f3fafd;color:#315f78;line-height:1.55}
@media(max-width:680px){.erp-fin-form-actions{position:sticky;bottom:-24px;margin:18px -12px -24px;padding:12px;background:#fff;border-top:1px solid var(--fin-line);z-index:2}.erp-fin-form-actions .erp-fin-btn{flex:1}}


/* v1.2.24: corrected expected cost + one-click PI completion */
.erp-fin-btn.success{background:#0d9277;border-color:#0d9277;color:#fff}.erp-fin-btn.success:hover{background:#087a64;border-color:#087a64}.erp-fin-status[data-status="completed"]{background:#ddf4ea;color:#08715c;font-weight:700}.erp-fin-row-completed td{background:#f8fbfa;color:#5e746f}.erp-fin-row-completed:hover td{background:#f1f8f5}.erp-fin-cost-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:12px 14px;border:1px solid #d8e8df;border-radius:11px;background:#f7fcf9;color:#4d6f61;font-size:12px}.erp-fin-cost-breakdown b{color:#174d3b}.erp-fin-cost-breakdown span{padding:5px 7px;border-radius:7px;background:#fff;border:1px solid #e2eee8}.erp-fin-cost-breakdown strong{grid-column:1/-1;color:#08715c}.erp-fin-main-table .erp-fin-actions{flex-wrap:wrap}.erp-fin-alert.received{font-weight:700}
@media(max-width:900px){.erp-fin-cost-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.erp-fin-cost-breakdown{grid-template-columns:1fr}.erp-fin-detail-toolbar [data-complete-pi],.erp-fin-detail-toolbar [data-reopen-pi]{flex-basis:100%}}


/* v1.2.25: dedicated completed-order archive and active order-tracking filter */
#erp-completed-orders-overlay{position:fixed;inset:0;z-index:2147483000;background:var(--fin-bg);color:var(--fin-text);overflow:auto;font-family:inherit}
#erp-completed-orders-launcher em{background:#0d9277}
#erp-completed-orders-launcher.active{background:#ffffff14;color:#fff;box-shadow:inset 3px 0 #40b8d6}
.erp-order-completed-hidden{display:none!important}
.erp-order-archive-note{margin:0 0 14px;padding:10px 13px;border:1px solid #cce7de;border-radius:10px;background:#f0faf7;color:#21705c;font-size:12px;font-weight:650}
.erp-completed-shell{max-width:1500px}
.erp-completed-summary .erp-fin-card:first-child{border-color:#bfe8db;background:#f6fcfa}
.erp-fin-archive-hint{color:var(--fin-muted);font-size:12px}
.erp-completed-table-wrap{max-height:calc(100vh - 300px)}
.erp-completed-table{min-width:1120px}
.erp-completed-table td{vertical-align:top}
@media(max-width:680px){.erp-fin-archive-hint{width:100%}.erp-completed-table-wrap{max-height:none}}

/* v1.2.26: completed PIs are removed from the active quotation/PI list */
.erp-quote-completed-hidden{display:none!important}
.quoteRecords tr[data-erp-quote-empty] td{padding:28px 16px!important;text-align:center;color:#6d8292;background:#f8fbfc}

/* v1.2.29 print isolation: finance widgets must never enter PI/quotation/factory PDFs */
@media print {
  #erp-finance-dashboard-strip,
  #erp-finance-overlay,
  .erp-fin-modal,
  .erp-fin-toast,
  .erp-finance-launcher,
  [data-erp-finance-launcher],
  .erp-completed-launcher {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }
}

/* v1.2.32 workbench compact placement */
#erp-finance-dashboard-strip.erp-fin-dashboard-compact{margin:12px 0 16px;padding:13px 14px;border-radius:12px}
#erp-finance-dashboard-strip.erp-fin-dashboard-compact .erp-fin-strip-head{margin-bottom:9px}
#erp-finance-dashboard-strip.erp-fin-dashboard-compact .erp-fin-card-grid{gap:9px}
#erp-finance-dashboard-strip.erp-fin-dashboard-compact .erp-fin-card{padding:10px 12px}

/* v1.2.42 supplier payment and commission sections */
.erp-v1242-section{margin-top:18px;border:1px solid #d9e7ef;border-radius:14px;background:#fff;overflow:hidden}
.erp-v1242-section>.erp-fin-section-head{padding:16px 18px;background:linear-gradient(135deg,#f3f9fc,#eef8f7)}
.erp-v1242-section .erp-fin-kpi{padding:14px;border:1px solid #e4edf2;border-radius:12px;background:#f9fcfd;display:flex;flex-direction:column;gap:5px}
.erp-v1242-section .erp-fin-kpi small{color:#687c89}.erp-v1242-section .erp-fin-kpi b{font-size:20px;color:#123b52}
.erp-v1242-section .erp-fin-table-wrap{padding:0 16px 16px}.erp-v1242-section .erp-fin-muted{display:block;margin-top:3px}
#erp-v1242-commission-center .erp-fin-toolbar{padding:14px 18px;display:flex;gap:12px;flex-wrap:wrap}
#erp-v1242-commission-center .erp-fin-toolbar label{display:flex;align-items:center;gap:7px;color:#526a78}
@media(max-width:760px){.erp-v1242-section .erp-fin-detail-grid{grid-template-columns:1fr 1fr}#erp-v1242-commission-center .erp-fin-toolbar label{width:100%}#erp-v1242-commission-center .erp-fin-toolbar input,#erp-v1242-commission-center .erp-fin-toolbar select{flex:1}}
