.expense-ledger{margin-top:18px}.expense-process{margin:14px 0;padding:10px 14px;border-radius:8px;background:#edf5ff;color:#31536c;text-align:center}.expense-process i{padding:0 14px;color:#1d6fbe}.expense-claim-card{margin-top:16px;border:1px solid #dce5ea;border-radius:12px;overflow:hidden;background:#fff}.expense-claim-card>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#f4f8fb;border-bottom:1px solid #dce5ea}.expense-claim-card h3{margin:0 0 4px;color:#173c58}.expense-claim-card header span{color:#71808a}.expense-claim-status{text-align:right}.expense-claim-status b{display:block;color:#147c8c;font-size:20px}.expense-claim-status span{display:inline-block;margin-top:4px;padding:3px 9px;border-radius:13px;background:#e7f1f7;color:#31566e}.expense-claim-meta{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;padding:12px 16px}.expense-claim-meta span{padding:8px 10px;border-radius:7px;background:#f8fafb}.expense-claim-meta small,.expense-claim-meta b{display:block}.expense-claim-meta small{margin-bottom:4px;color:#86959e}.expense-sheet-scroll{overflow-x:auto}.expense-sheet-view,.expense-sheet-entry{min-width:1350px}.expense-sheet-view th,.expense-sheet-view td,.expense-sheet-entry th,.expense-sheet-entry td{padding:8px;border:1px solid #dfe6ea;vertical-align:top}.expense-sheet-view thead,.expense-sheet-entry thead{background:#eaf3fa}.expense-sheet-view tbody td:first-child span{display:block;max-width:260px;white-space:pre-line}.expense-sheet-view tfoot,.expense-sheet-entry tfoot{background:#f1f7fb;color:#174d73}.expense-invoice-summary{display:flex;gap:24px;padding:12px 16px;background:#fbfcfd}.expense-no-invoice{margin:0;padding:12px 16px;color:#9a6b25;background:#fff9e9}.expense-claim-card>footer{padding:12px 16px;border-top:1px solid #e5eaed}.expense-sheet-dialog{width:min(1500px,96vw);max-width:none}.expense-form-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.expense-form-title h2{margin:0}.expense-form-title p{margin:4px 0 0;color:#71808a}.expense-form-title>b{font-size:26px;color:#147c8c}.expense-form-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px;border:1px solid #dce5ea;border-radius:10px;background:#f7fafc}.expense-description{grid-column:span 2}.expense-entry-toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.expense-entry-toolbar h3{margin:0}.expense-sheet-entry textarea{min-width:260px;resize:vertical}.expense-sheet-entry input[type=date]{min-width:135px}.expense-sheet-entry input[type=number]{width:105px}.expense-sheet-entry select{min-width:100px}.expense-sheet-entry .row-total{font-weight:700;color:#147c8c;white-space:nowrap}.expense-remove-row{padding:6px 9px;background:#fff0f0;color:#b22}.expense-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@media(max-width:1000px){.expense-claim-meta{grid-template-columns:repeat(2,1fr)}.expense-form-meta{grid-template-columns:repeat(2,1fr)}}
.expense-workbench{display:grid;gap:14px}.expense-workbench-head{display:flex;align-items:center;gap:28px;padding:16px 18px;border-radius:12px;background:linear-gradient(135deg,#1a3a6b,#1d5fb4);color:#fff}.expense-workbench-head h2{margin:0 auto 0 0;white-space:nowrap}.expense-workbench-metrics{display:flex;gap:34px}.expense-workbench-metrics span{font-size:14px;white-space:nowrap}.expense-workbench-metrics b{display:block;margin-top:3px;text-align:center;font-size:18px}.expense-workbench-account{display:flex;align-items:center;gap:10px;padding-left:14px;border-left:1px solid #ffffff45;white-space:nowrap}.expense-workbench-account small{padding:5px 10px;border:1px solid #ffffff45;border-radius:16px}.expense-workbench-account button{padding:6px 10px;background:#ffffff24;border:1px solid #ffffff40}.expense-workbench-tabs{display:flex;gap:2px;padding:0 16px;background:#fff;border-radius:10px;box-shadow:0 2px 8px #19394d12}.expense-workbench-tabs button{padding:13px 24px;border-radius:0;background:transparent;color:#30495a;font-size:16px;border-bottom:3px solid transparent}.expense-workbench-tabs button.active{color:#1d5fb4;border-bottom-color:#1d5fb4}.expense-workbench-tabs .history{margin-left:auto}.expense-workbench-body>.panel{margin-top:0}.expense-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.expense-summary-cards span{padding:14px;border-radius:9px;background:#f0f6fa;color:#607681}.expense-summary-cards b{display:block;margin-top:7px;color:#147c8c;font-size:22px}.expense-summary-page tfoot{background:#eef5fb}.expense-calendar-week,.expense-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.expense-calendar-week{margin-top:16px;background:#edf4f9}.expense-calendar-week b{padding:9px;text-align:center;color:#4c6473}.expense-calendar-day{min-height:108px;padding:8px;border:1px solid #e2e9ed;background:#fff}.expense-calendar-day.muted{background:#f7f9fa}.expense-calendar-day>span{display:block;margin-top:6px;padding:5px;border-radius:5px;background:#e8f4ff;color:#175f99;font-size:12px}.expense-calendar-day span small{display:block;margin-top:2px}.expense-calendar-day.has-expense{border-top:3px solid #1d75bd}.expense-history-page input{width:320px}@media(max-width:1200px){.expense-workbench-head{align-items:flex-start;flex-wrap:wrap}.expense-workbench-metrics{order:3;width:100%;justify-content:space-around}.expense-summary-cards{grid-template-columns:repeat(2,1fr)}}
.expense-header-submit{padding:9px 18px;border:1px solid #ffffff70;background:#ffffff20;color:#fff;font-weight:700;white-space:nowrap}.expense-header-submit:hover{background:#fff;color:#1d5fb4}.expense-process strong{padding:4px 10px;border-radius:14px;background:#1d5fb4;color:#fff}.expense-inline-form{margin-top:16px;padding:18px;border:1px solid #cbdde8;border-radius:12px;background:#fff;box-shadow:0 5px 18px #173c5812}.expense-inline-form .expense-form-title{padding-bottom:12px;border-bottom:1px solid #e3eaee}

/* v2.15.1 reimbursement summary layout */
.expense-summary-page{position:relative;padding-top:18px}.expense-summary-page>.toolbar{min-height:76px}.expense-summary-page>.expense-process{position:absolute;top:20px;left:310px;right:150px;margin:0;white-space:nowrap}.expense-summary-page>.expense-process i{padding:0 10px}.expense-summary-page>.expense-summary-cards{margin-top:8px}@media(max-width:1450px){.expense-summary-page>.expense-process{position:static;margin:10px 0}.expense-summary-page>.toolbar{min-height:auto}.expense-summary-page>.expense-summary-cards{margin-top:16px}}

/* v2.15.2 align workflow with summary title and remove its background */
.expense-summary-page>.expense-process{top:18px;left:300px;right:145px;padding:3px 0;background:transparent;border-radius:0;line-height:28px}.expense-summary-page>.expense-process strong{padding:3px 9px}.expense-summary-page>.toolbar>div:first-child{min-width:270px}@media(max-width:1450px){.expense-summary-page>.expense-process{padding:3px 0;background:transparent}.expense-summary-page>.toolbar>div:first-child{min-width:0}}

/* v2.36.2 persistent invoice amount feedback */
.invoice-check{margin-top:16px;padding:14px;border-radius:9px;border:1px solid}.invoice-check h3{margin:0 0 8px}.invoice-check p{margin:6px 0}.invoice-check.matched{border-color:#65a978;background:#eef9f1;color:#27673a}.invoice-check.mismatch{border-color:#dc7a70;background:#fff2f0;color:#a13127}.invoice-check-actions{display:flex;gap:10px;margin-top:12px}.invoice-amount-ok{color:#287a43;font-weight:700}.invoice-amount-warning{padding:4px 9px;border-radius:5px;background:#fff0ed;color:#b22;font-weight:700}
.expense-service-record{margin:14px 0;padding:14px;border:1px solid #cfdbe4;border-left:4px solid #14869a;border-radius:8px;background:#f7fbfc}.expense-service-record.missing,.expense-service-record.invalid{border-left-color:#d68b16;background:#fff9e9}.expense-service-record>div{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.expense-service-record a{font-weight:700}.expense-service-record span{padding:4px 10px;border-radius:12px;background:#e1f2ea;color:#14764a}.expense-service-record.invalid span{background:#fde7e7;color:#b42318}.service-record-upload,.service-record-review{margin-top:10px}.service-record-upload label{display:flex;align-items:center;gap:6px}.service-record-upload input[type=checkbox]{width:auto}

/* v2.40.3 compact monthly claim header and bounded workspace */
.expense-workbench{width:100%;max-width:none;margin:0}
.expense-inline-form{padding:14px}
.expense-inline-form .expense-form-title{margin-bottom:10px;padding-bottom:9px}
.expense-form-meta{grid-template-columns:repeat(7,minmax(118px,1fr));gap:8px;padding:10px}
.expense-form-meta label{min-width:0;margin:0;font-size:13px}
.expense-form-meta input,.expense-form-meta select{min-width:0;width:100%;padding:8px}
.expense-form-meta .expense-description{grid-column:1/-1}
.expense-form-meta .expense-description textarea{min-height:58px}
.expense-entry-toolbar{margin-top:10px}
@media(max-width:1300px){.expense-form-meta{grid-template-columns:repeat(4,minmax(130px,1fr))}.expense-form-meta .expense-description{grid-column:1/-1}}
@media(max-width:760px){.expense-form-meta{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* v2.40.4 left-aligned 1080px reimbursement form and proportional header fields */
.expense-form-meta{grid-template-columns:1.05fr 1fr 1.12fr 1.12fr 1.12fr .92fr .92fr}
.expense-template-entry .lodging-date[disabled]{background:#f2f4f5;color:#a7b0b6}
.expense-template-entry .lodging-nights{width:72px}
@media(max-width:1080px){.expense-form-meta{grid-template-columns:repeat(4,minmax(130px,1fr))}}

/* v2.40.5 full-width expense pages with a bounded data-entry form only */
.expense-inline-form{width:100%;max-width:844px;margin-left:0;margin-right:auto}
.expense-calendar-page,.expense-summary-page,.expense-history-page{width:100%;max-width:none}

/* v2.40.6: 180px navigation + 56px page padding + 844px claim form = 1080px */
.expense-inline-form .expense-form-meta{gap:6px;padding:9px}
.expense-inline-form .expense-form-meta label{font-size:12px}
.expense-inline-form .expense-form-meta input,.expense-inline-form .expense-form-meta select{padding:7px 6px;font-size:12px}

/* v2.40.7 accommodation end date is nested under the expense date */
.lodging-end-wrap{margin-top:7px;padding-top:7px;border-top:1px dashed #cbd8df}
.lodging-end-wrap[hidden]{display:none}
.lodging-end-wrap small,.lodging-end-display{display:block;margin-bottom:4px;color:#7b8c96;white-space:nowrap}
.lodging-end-display{margin-top:5px;color:#216d87}

/* v2.40.8: bound the complete claim page, not only its inner form */
.expense-workbench-body>.expense-ledger{width:100%;max-width:844px;margin-left:0;margin-right:auto}
.expense-ledger .expense-inline-form{width:100%;max-width:none}

/* v2.40.9: 1080P means a 1920x1080 screen; fill all space right of navigation */
.expense-workbench-body>.expense-ledger{width:100%;max-width:none;margin-left:0;margin-right:0}
.expense-inline-form,.expense-ledger .expense-inline-form{width:100%;max-width:none;margin-left:0;margin-right:0}

/* v2.41.0 required engineering service record step */
.expense-submit-blocked{background:#9baab2!important;color:#fff!important;cursor:not-allowed;opacity:.8}
.expense-service-record.missing b{font-size:17px;color:#8a5700}

/* v2.44.1 service record is collected inside the claim form */
.expense-form-service-record{grid-column:1/-1;display:grid;grid-template-columns:minmax(300px,1.4fr) minmax(230px,1fr) minmax(260px,1fr);align-items:center;gap:12px;padding:12px;border:1px solid #e5c36f;border-left:4px solid #e59719;border-radius:8px;background:#fff9e9}
.expense-form-service-record.ready{border-color:#8fc8aa;border-left-color:#198754;background:#f1faf5}
.expense-form-service-record h3{margin:0 0 4px;font-size:16px;color:#805000}
.expense-form-service-record.ready h3{color:#17663e}
.expense-form-service-record p{margin:0 0 5px;color:#65747d}
.expense-form-service-record a{display:inline-block;margin-right:9px;font-weight:700}
.expense-form-service-record span{padding:3px 8px;border-radius:12px;background:#dff1e6;color:#17663e}
.expense-form-service-record .expense-service-sign{display:flex;align-items:center;gap:7px}
.expense-form-service-record .expense-service-sign input{width:auto}
@media(max-width:1080px){.expense-form-service-record{grid-template-columns:1fr 1fr}.expense-form-service-record>div{grid-column:1/-1}}
@media(max-width:760px){.expense-form-service-record{grid-template-columns:1fr}}

/* v2.41.1 fit all claim-entry fields without a horizontal scrollbar */
.expense-template-entry{width:100%;min-width:0;table-layout:fixed}
.expense-template-entry th,.expense-template-entry td{padding:5px 4px;font-size:12px;overflow-wrap:anywhere}
.expense-template-entry th:nth-child(1),.expense-template-entry td:nth-child(1){width:15%}
.expense-template-entry th:nth-child(2),.expense-template-entry td:nth-child(2){width:7%}
.expense-template-entry th:nth-child(3),.expense-template-entry td:nth-child(3){width:12%}
.expense-template-entry th:nth-child(4),.expense-template-entry td:nth-child(4){width:6%}
.expense-template-entry th:nth-child(5),.expense-template-entry td:nth-child(5){width:14%}
.expense-template-entry th:nth-child(6),.expense-template-entry td:nth-child(6){width:8%}
.expense-template-entry th:nth-child(7),.expense-template-entry td:nth-child(7){width:9%}
.expense-template-entry th:nth-child(8),.expense-template-entry td:nth-child(8){width:9%}
.expense-template-entry th:nth-child(9),.expense-template-entry td:nth-child(9){width:11%}
.expense-template-entry th:nth-child(10),.expense-template-entry td:nth-child(10){width:6%}
.expense-template-entry th:nth-child(11),.expense-template-entry td:nth-child(11){width:3%}
.expense-template-entry input,.expense-template-entry select,.expense-template-entry textarea{box-sizing:border-box;width:100%;min-width:0!important;max-width:100%;padding:6px 5px;font-size:12px}
.expense-template-entry input[type=file]{padding:4px 2px;font-size:11px}
.expense-template-entry textarea{min-height:54px;resize:vertical}
.expense-template-entry .lodging-nights{width:100%}
.expense-template-entry .expense-remove-row{width:100%;padding:5px 2px}

/* v2.42.0: retained attachment hints while editing a saved draft */
.expense-existing-files{margin-top:4px;font-size:11px;line-height:1.35;color:#5d7184;overflow-wrap:anywhere}
.expense-existing-files a{color:#1769aa;text-decoration:none}
.expense-existing-files a:hover{text-decoration:underline}

/* v2.45.4 compact form and project-grouped expense entry */
.expense-workbench-body>.expense-ledger{width:100%;max-width:1280px;margin-left:0;margin-right:auto}
.expense-inline-form{box-sizing:border-box;max-width:1280px;padding:14px}
.expense-inline-form .expense-form-meta{grid-template-columns:repeat(7,minmax(110px,1fr));padding:8px;gap:5px}
.expense-entry-toolbar{margin-top:10px}
.expense-project-group{margin-top:10px;border:1px solid #c9dce8;border-radius:9px;overflow:hidden;background:#fff}
.expense-project-group>header{display:flex;align-items:end;gap:8px;padding:8px 10px;background:#eef6fb}
.expense-project-group>header label{display:grid;gap:3px;min-width:320px;font-weight:700;color:#284d66}
.expense-project-group>header select{width:100%;padding:7px}
.expense-project-group>header button{padding:7px 10px}
.expense-project-table{width:100%;min-width:0;table-layout:fixed}
.expense-project-table th,.expense-project-table td{padding:4px 3px;font-size:11px;overflow-wrap:anywhere}
.expense-project-table th:nth-child(1){width:7%}.expense-project-table th:nth-child(2){width:11%}.expense-project-table th:nth-child(3){width:5%}.expense-project-table th:nth-child(4){width:13%}.expense-project-table th:nth-child(5){width:7%}.expense-project-table th:nth-child(6){width:9%}.expense-project-table th:nth-child(7){width:9%}.expense-project-table th:nth-child(8){width:10%}.expense-project-table th:nth-child(9){width:15%}.expense-project-table th:nth-child(10){width:6%}.expense-project-table th:nth-child(11){width:3%}
.expense-project-table input,.expense-project-table select,.expense-project-table textarea{box-sizing:border-box;width:100%;min-width:0;padding:5px 4px;font-size:11px}
.expense-project-table input[type=file]{padding:3px 1px}.expense-project-table textarea{min-height:48px;resize:vertical}
.expense-service-master{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.expense-service-current{margin:8px 0;padding:7px 10px;border-radius:6px;background:#fff8e6;color:#76551c;font-size:12px}
.expense-service-column>label[for]{display:block;padding:6px;border-radius:5px;background:#e88a16;color:#fff;text-align:center;cursor:pointer;font-weight:700}
.expense-service-column small{display:block;margin:4px 0;color:#6b7b84;word-break:break-all}
.expense-service-column .expense-service-sign{display:flex;align-items:center;gap:3px;font-size:10px}.expense-service-column .expense-service-sign input{width:auto}
.expense-total-bar{display:flex;justify-content:flex-end;align-items:center;gap:16px;padding:10px;background:#edf5fa;color:#214e69}.expense-total-bar b{font-size:18px;color:#087d8e}
@media(max-width:1350px){.expense-workbench-body>.expense-ledger,.expense-inline-form{max-width:100%}.expense-project-table{min-width:1120px}.expense-inline-form .expense-form-meta{grid-template-columns:repeat(4,minmax(120px,1fr))}}

/* v2.45.5 keep the page full width; compact only the marked input controls. */
.expense-workbench-body>.expense-ledger,.expense-inline-form{width:100%;max-width:none;margin-left:0;margin-right:0}
.expense-project-table{width:100%;min-width:0}
.expense-project-group>header label{min-width:0;width:360px;max-width:100%}
.expense-project-group>header select{width:300px;max-width:100%}
.expense-project-table td:nth-child(1) select{width:92px;max-width:100%}
.expense-project-table td:nth-child(2)>input[type=date]{width:126px;max-width:100%}
.expense-project-table td:nth-child(2) .lodging-date{width:126px;max-width:100%}
.expense-project-table td:nth-child(3) input{width:58px;max-width:100%}
.expense-project-table td:nth-child(4) textarea{width:165px;max-width:100%}
.expense-project-table td:nth-child(5) input{width:88px;max-width:100%}
.expense-project-table td:nth-child(6) input[type=file],.expense-project-table td:nth-child(7) input[type=file]{width:145px;max-width:100%}
.expense-project-table td:nth-child(8) input[type=file],.expense-project-table td:nth-child(8) textarea{width:145px;max-width:100%}
.expense-project-table td:nth-child(9){max-width:170px}.expense-project-table td:nth-child(9)>label[for]{width:145px;max-width:100%;box-sizing:border-box}
@media(max-width:1350px){.expense-workbench-body>.expense-ledger,.expense-inline-form{max-width:none}.expense-project-table{min-width:1120px}}

/* v2.45.6 project header owns service record, subtotal and project actions. */
.expense-project-group>header{display:grid;grid-template-columns:minmax(250px,1.35fr) minmax(270px,1.25fr) minmax(130px,.55fr) auto auto;align-items:end;gap:10px}
.expense-project-group>header>label{width:100%;min-width:0}.expense-project-group>header select{width:100%}
.expense-project-service{display:grid;grid-template-columns:1fr auto;gap:3px 8px}.expense-project-service>input[type=file]{grid-column:1/-1;width:100%}.expense-project-service>span{font-weight:400;color:#5f7280}.expense-project-service>label{display:flex;align-items:center;gap:4px;font-weight:400;white-space:nowrap}.expense-project-service>label input{width:auto}
.expense-project-subtotal{padding:7px 10px;border-radius:6px;background:#fff;color:#436071}.expense-project-subtotal b{display:block;margin-top:4px;color:#087d8e;font-size:17px}
.expense-project-table th:nth-child(1){width:7%}.expense-project-table th:nth-child(2){width:11%}.expense-project-table th:nth-child(3){width:5%}.expense-project-table th:nth-child(4){width:13%}.expense-project-table th:nth-child(5){width:7%}.expense-project-table th:nth-child(6){width:15%}.expense-project-table th:nth-child(7){width:15%}.expense-project-table th:nth-child(8){width:18%}.expense-project-table th:nth-child(9){width:6%}.expense-project-table th:nth-child(10){width:3%}
.expense-project-table td:nth-child(6) input[type=file],.expense-project-table td:nth-child(7) input[type=file]{width:100%;max-width:none}.expense-project-table td:nth-child(8) input[type=file],.expense-project-table td:nth-child(8) textarea{width:100%;max-width:none}
@media(max-width:1200px){.expense-project-group>header{grid-template-columns:1fr 1fr auto auto}.expense-project-subtotal{grid-column:1/-1;grid-row:2}}

/* v2.45.7 keep all project controls on one line and remove the duplicate row subtotal column. */
.expense-project-group{overflow-x:auto}
.expense-project-group>header{display:grid;grid-template-columns:minmax(300px,2fr) minmax(300px,1.8fr) minmax(150px,.65fr) auto auto;min-width:1120px;align-items:end;gap:10px;white-space:normal}
.expense-project-subtotal{grid-column:auto;grid-row:auto}
.expense-project-table{min-width:1120px}
.expense-project-table th:nth-child(1){width:7%}.expense-project-table th:nth-child(2){width:11%}.expense-project-table th:nth-child(3){width:5%}.expense-project-table th:nth-child(4){width:14%}.expense-project-table th:nth-child(5){width:8%}.expense-project-table th:nth-child(6){width:17%}.expense-project-table th:nth-child(7){width:17%}.expense-project-table th:nth-child(8){width:18%}.expense-project-table th:nth-child(9){width:3%}
@media(max-width:1200px){.expense-project-group>header{grid-template-columns:minmax(300px,2fr) minmax(300px,1.8fr) minmax(150px,.65fr) auto auto}.expense-project-subtotal{grid-column:auto;grid-row:auto}}

/* v2.45.8 valid five-column project toolbar; nested labels previously broke the grid. */
.expense-project-group>header,.expense-project-group>header>.expense-project-picker,.expense-project-group>header>.expense-project-service,.expense-project-group>header>.expense-project-subtotal,.expense-project-group>header>.expense-project-add-row,.expense-project-group>header>.expense-project-delete{box-sizing:border-box}
.expense-project-group>header{display:grid!important;grid-template-columns:minmax(280px,1fr) minmax(360px,1.3fr) 160px 140px 100px!important;grid-template-rows:auto!important;min-width:1120px;align-items:end!important;gap:10px}
.expense-project-picker{display:grid;grid-template-rows:auto 36px;gap:4px;margin:0}.expense-project-picker b{font-size:14px}.expense-project-picker select{height:36px;width:100%!important}
.expense-project-service{display:grid;grid-template-columns:minmax(220px,1fr) auto;grid-template-rows:auto 36px auto;gap:3px 8px;margin:0;min-width:0}.expense-project-service>b{grid-column:1/-1;font-size:14px}.expense-project-service>input[type=file]{grid-column:1;height:36px;width:100%;min-width:0}.expense-project-service>label{grid-column:2;grid-row:2;align-self:center;margin:0}.expense-project-service>span{grid-column:1/-1;grid-row:3;min-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.expense-project-subtotal{display:grid;grid-template-rows:auto 36px;gap:4px;grid-column:auto!important;grid-row:auto!important;margin:0;padding:0;background:transparent}.expense-project-subtotal span{font-size:14px;color:#436071}.expense-project-subtotal b{display:flex;align-items:center;height:36px;margin:0;padding:0 10px;border-radius:5px;background:#fff;color:#087d8e}
.expense-project-add-row,.expense-project-delete{height:36px;align-self:end;white-space:nowrap;margin:0}
@media(max-width:1200px){.expense-project-group>header{grid-template-columns:minmax(280px,1fr) minmax(360px,1.3fr) 160px 140px 100px!important;grid-template-rows:auto!important}}

/* v2.45.9 one flat row: project, service record, subtotal, add, delete. */
.expense-project-group>header{grid-template-columns:minmax(300px,1.4fr) minmax(300px,1.2fr) 180px 120px 100px!important;align-items:center!important;padding:10px;font-size:14px}
.expense-project-group>header *{font-size:14px}
.expense-project-group>header>.expense-group-project{width:100%;height:38px;margin:0;padding:0 10px}
.expense-project-service{display:grid;grid-template-columns:140px minmax(120px,1fr);grid-template-rows:38px;align-items:center;gap:8px;height:38px;margin:0}
.expense-project-service>input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.expense-project-service>label{display:flex;grid-column:1;grid-row:1;align-items:center;justify-content:center;height:38px;margin:0;padding:0 12px;border-radius:5px;background:#e88a16;color:#fff;font-weight:700;cursor:pointer;white-space:nowrap}
.expense-project-service>span{display:block;grid-column:2;grid-row:1;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#405b6d}
.expense-project-service>span:empty{display:block}
.expense-project-subtotal{display:flex;align-items:center;justify-content:space-between;height:38px;margin:0;padding:0 10px;border-radius:5px;background:#fff;white-space:nowrap;color:#436071}.expense-project-subtotal b{display:inline;height:auto;margin:0;padding:0;background:transparent;font-size:14px;color:#087d8e}
.expense-project-add-row,.expense-project-delete{height:38px;align-self:center;margin:0;padding:0 10px;font-size:14px!important}
@media(max-width:1200px){.expense-project-group>header{grid-template-columns:minmax(300px,1.4fr) minmax(300px,1.2fr) 180px 120px 100px!important;align-items:center!important}}

/* v2.46.0 non-engineering reimbursement has no service-record field. */
.expense-project-group.no-service-record>header{grid-template-columns:minmax(420px,1fr) 180px 120px 100px!important}

/* v2.46.2 project-level trip days participate in the period total. */
.expense-project-group>header{grid-template-columns:minmax(260px,1.25fr) 145px minmax(280px,1.15fr) 160px 120px 100px!important}
.expense-project-group.no-service-record>header{grid-template-columns:minmax(360px,1fr) 145px 180px 120px 100px!important}
.expense-project-days{display:grid;grid-template-rows:auto 38px;gap:3px;margin:0;color:#405b6d;font-size:14px!important;white-space:nowrap}
.expense-project-days-input{width:100%;height:38px;margin:0;padding:0 10px}

/* v2.46.5 executable reimbursement workflow */
.expense-process-legend{position:static!important;display:flex;align-items:center;justify-content:center;gap:9px;margin:12px 0!important;padding:6px 0!important;background:transparent!important;color:#607787;white-space:nowrap;overflow-x:auto}
.expense-process-legend span{font-size:13px;font-weight:700}.expense-process-legend i{font-style:normal;color:#9eacb6}
.expense-summary-list{display:grid;gap:12px;margin-top:14px}
.expense-summary-item{overflow:hidden;border:1px solid #cddce6;border-left:4px solid #087d8e;border-radius:9px;background:#fff}
.expense-summary-item>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 15px;background:#f4f8fb;border-bottom:1px solid #d7e3eb}
.expense-summary-item>header h3,.expense-summary-item>header p{margin:0}.expense-summary-item>header p{margin-top:3px;color:#6a7d8a}
.expense-summary-item>header>div:last-child{text-align:right}.expense-summary-item>header>div:last-child b{display:block;font-size:19px;color:#087d8e}.expense-summary-item>header em{display:inline-block;margin-top:4px;padding:2px 9px;border-radius:12px;background:#e4eff5;color:#345d73;font-style:normal}
.expense-summary-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 15px}
.expense-summary-meta span{min-width:0;padding:8px 10px;border-radius:6px;background:#f7fafc;color:#6a7d8a}.expense-summary-meta b{display:block;margin-top:3px;overflow:hidden;color:#17364b;text-overflow:ellipsis;white-space:nowrap}
.expense-flow-track{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 15px;padding:12px 6px;border-top:1px solid #e2eaf0;overflow-x:auto;white-space:nowrap}
.expense-flow-track span{display:flex;align-items:center;gap:5px;color:#80919c;font-size:12px;font-weight:700}.expense-flow-track span i{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:2px solid #bfccd4;border-radius:50%;font-style:normal;background:#fff;color:#738792}
.expense-flow-track span.done{color:#16814a}.expense-flow-track span.done i{border-color:#16814a;background:#16814a;color:#fff}.expense-flow-track span.current{color:#175da9}.expense-flow-track span.current i{border-color:#175da9;background:#175da9;color:#fff}.expense-flow-track>b{color:#aebac2}
.expense-summary-item>footer{display:flex;justify-content:flex-end;gap:7px;padding:10px 15px;border-top:1px solid #e2eaf0;background:#fbfdfe}
.expense-workflow-detail>.expense-flow-track{margin:12px 0;border:1px solid #dce7ee;border-radius:8px;background:#f8fbfd}
.expense-workflow-detail>.expense-claim-card{margin-top:12px}
.expense-workflow-compliance,.expense-workflow-form{margin-top:14px;padding:16px;border:1px solid #d4e1e9;border-radius:9px;background:#fff}
.expense-workflow-compliance h3,.expense-workflow-form h3{margin:0 0 12px}.expense-workflow-compliance{overflow-x:auto}.expense-workflow-compliance table{min-width:760px}
.expense-project-record-list{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:12px;padding:10px;border-radius:6px;background:#f3f8fb}
.expense-workflow-form{border-left:4px solid #e88a16;background:#fffaf0}.expense-workflow-form form>label{display:grid;gap:5px;margin-top:10px;font-weight:700}.expense-workflow-form textarea{min-height:92px}
.expense-workflow-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.expense-workflow-form-grid label{display:grid;gap:5px;font-weight:700}.expense-workflow-form-grid .wide{grid-column:1/-1}
.expense-workflow-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:1100px){.expense-summary-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-workflow-form-grid{grid-template-columns:1fr 1fr}}

/* v2.64.0 总经理报销总览 */
.expense-manager-summary{display:grid;gap:18px}.expense-manager-toolbar,.expense-manager-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.expense-manager-toolbar h2,.expense-manager-section-head h3{margin:0 0 5px}.expense-manager-toolbar p,.expense-manager-section-head p{margin:0;color:#637985}.expense-manager-period{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.expense-manager-period label{display:grid;gap:4px;color:#607582;font-size:12px}.expense-manager-period input{min-width:135px}.expense-manager-period>.expense-manager-month-step{font-size:24px;line-height:1;padding:9px 14px}.expense-manager-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.expense-manager-cards article{padding:16px;border:1px solid #d6e4eb;border-radius:10px;background:linear-gradient(145deg,#fff,#f6fafb)}.expense-manager-cards span,.expense-manager-cards small{display:block;color:#667b87}.expense-manager-cards b{display:block;margin:8px 0 4px;color:#087d8e;font-size:23px}.expense-manager-warning{padding:10px 14px;border:1px solid #edce7f;border-radius:8px;background:#fff8e5;color:#795b17}.expense-manager-warning summary{cursor:pointer;font-weight:700}.expense-manager-panel{padding:16px;border:1px solid #d9e5eb;border-radius:10px;background:#fff}.expense-manager-calendar-scroll,.expense-manager-table-scroll{overflow-x:auto;margin-top:12px}.expense-manager-calendar{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));min-width:920px;border-top:1px solid #d8e4ea;border-left:1px solid #d8e4ea}.expense-manager-calendar>b{padding:8px;text-align:center;background:#f3f7f9;border-right:1px solid #d8e4ea;border-bottom:1px solid #d8e4ea}.expense-manager-calendar-day{min-height:145px;padding:8px;border-right:1px solid #d8e4ea;border-bottom:1px solid #d8e4ea}.expense-manager-calendar-day.muted{background:#f6f8f9}.expense-manager-calendar-day>div{display:flex;justify-content:space-between;margin-bottom:6px}.expense-manager-calendar-day>div span{color:#84939c;font-size:11px}.expense-manager-calendar-day>section{display:grid;gap:5px;max-height:210px;overflow-y:auto}.expense-manager-calendar-day article{display:grid;gap:2px;padding:6px;border-left:4px solid #1686a0;border-radius:5px;background:#edf8fa}.expense-manager-calendar-day article header{display:flex;justify-content:space-between;gap:4px}.expense-manager-calendar-day article em{font-size:10px;font-style:normal;color:#5b727e}.expense-manager-calendar-day article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-manager-bars{display:grid;grid-template-columns:repeat(12,minmax(64px,1fr));gap:7px;height:200px;margin-top:12px;align-items:end}.expense-manager-bars button{display:grid;grid-template-rows:120px auto auto;gap:3px;height:100%;min-width:0;padding:4px;border:1px solid transparent;background:transparent;color:#536c78}.expense-manager-bars button:hover,.expense-manager-bars button.active{border-color:#a8d5df;background:#f0fafb}.expense-manager-bars span{display:flex;align-items:end;justify-content:center;height:120px}.expense-manager-bars i{display:block;width:23px;min-height:4px;border-radius:5px 5px 0 0;background:#1686a0}.expense-manager-bars b{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.expense-manager-bars small{text-align:center}.expense-manager-two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.expense-manager-table-scroll table{min-width:680px}.expense-manager-table-scroll td small{display:block;margin-top:3px;color:#82919a}.expense-manager-table-scroll strong{color:#087d8e}.expense-manager-refreshed{text-align:right;color:#82919a;font-size:12px}
@media(max-width:1200px){.expense-manager-two-columns{grid-template-columns:1fr}.expense-manager-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.expense-manager-toolbar,.expense-manager-section-head{display:grid}.expense-manager-cards{grid-template-columns:1fr 1fr}.expense-manager-bars{overflow-x:auto;grid-template-columns:repeat(12,68px)}}@media(max-width:520px){.expense-manager-cards{grid-template-columns:1fr}}
