/**
 * DLS Expenses module — unified tables, DataTables, modals, inline grids
 * Scoped to body.dls-expenses-page
 */

.dls-expenses-page,
.dls-expenses-page .modal {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
}

/* ─── Standard expense data tables ─── */
.dls-expenses-page .dls-expense-table,
.dls-expenses-page #cashLoanTable,
.dls-expenses-page #cashLoanHistoryTable,
.dls-expenses-page #cashLoanStaffSummaryTable,
.dls-expenses-page #cashLoanOperatorSummaryTable,
.dls-expenses-page #cdSummaryTable,
.dls-expenses-page #dataTable,
.dls-expenses-page #sssTable,
.dls-expenses-page #sssLoanTable,
.dls-expenses-page #pagibigTable,
.dls-expenses-page #pagibigLoanTable,
.dls-expenses-page #philhealthTable,
.dls-expenses-page #govtRemittanceTable,
.dls-expenses-page #memoTable,
.dls-expenses-page #midsTable,
.dls-expenses-page table.table-bordered {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
  font-size: 14px !important;
  width: 100% !important;
}

.dls-expenses-page .dls-expense-table thead th,
.dls-expenses-page #cashLoanTable thead th,
.dls-expenses-page #cashLoanHistoryTable thead th,
.dls-expenses-page #cdSummaryTable thead th,
.dls-expenses-page #dataTable thead th,
.dls-expenses-page #sssTable thead th,
.dls-expenses-page #sssLoanTable thead th,
.dls-expenses-page #pagibigTable thead th,
.dls-expenses-page #pagibigLoanTable thead th,
.dls-expenses-page #philhealthTable thead th,
.dls-expenses-page #govtRemittanceTable thead th,
.dls-expenses-page #memoTable thead th,
.dls-expenses-page #midsTable thead th,
.dls-expenses-page table.table-bordered thead th {
  background: var(--dls-bg-subtle, #f5f6fa) !important;
  color: var(--dls-secondary, #526068) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 10px 12px !important;
  vertical-align: middle !important;
  white-space: nowrap;
  border-color: var(--dls-border, #e3e8ea) !important;
}

.dls-expenses-page .dls-expense-table tbody td,
.dls-expenses-page #cashLoanTable tbody td,
.dls-expenses-page #cashLoanHistoryTable tbody td,
.dls-expenses-page #cdSummaryTable tbody td,
.dls-expenses-page #dataTable tbody td,
.dls-expenses-page #sssTable tbody td,
.dls-expenses-page #sssLoanTable tbody td,
.dls-expenses-page #pagibigTable tbody td,
.dls-expenses-page #pagibigLoanTable tbody td,
.dls-expenses-page #philhealthTable tbody td,
.dls-expenses-page #govtRemittanceTable tbody td,
.dls-expenses-page #memoTable tbody td,
.dls-expenses-page #midsTable tbody td,
.dls-expenses-page table.table-bordered tbody td {
  font-size: 14px !important;
  padding: 10px 12px !important;
  vertical-align: middle !important;
  color: var(--dls-text, #272c30);
  border-color: var(--dls-border, #e3e8ea) !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.dls-expenses-page .dls-expense-table tbody tr:hover td,
.dls-expenses-page #cashLoanTable tbody tr:hover td,
.dls-expenses-page #cashLoanHistoryTable tbody tr:hover td,
.dls-expenses-page #cdSummaryTable tbody tr:hover td,
.dls-expenses-page #dataTable tbody tr:hover td,
.dls-expenses-page table.table-bordered tbody tr:hover td {
  background-color: #fafbfc !important;
}

/* Override inline font-size on tables */
.dls-expenses-page table[style*="font-size"] {
  font-size: 14px !important;
}

/* Inline edit cells (CD summary, contract order, petty cash) */
.dls-expenses-page #dataTable .cell-input,
.dls-expenses-page #dataTable #newRowForm input.form-control-sm,
.dls-expenses-page #dataTable #newRowForm textarea.form-control-sm,
.dls-expenses-page .cell-input,
.dls-expenses-page .amount-input {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
  font-size: 14px !important;
}

.dls-expenses-page #dataTable .amount-input,
.dls-expenses-page .amount-input {
  min-width: 110px;
  text-align: right;
}

.dls-expenses-page #dataTable .auto-resize-textarea {
  min-height: 36px;
  resize: vertical;
}

/* Amount highlight cells (mandatory tables) */
.dls-expenses-page .amount-cell {
  background-color: var(--dls-warning-subtle, #fdf3e3) !important;
}

/* Card headers in expenses */
.dls-expenses-page .card-title {
  font-size: 16px;
  font-weight: 600;
}

.dls-expenses-page .basic-data-table .card-body {
  padding: 20px !important;
}

/* ─── DataTables layout (expenses module) ─── */
.dls-expenses-page .dataTables_wrapper {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
  font-size: 14px !important;
  padding-top: 12px;
}

.dls-expenses-page .dls-dt-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.dls-expenses-page .dls-dt-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--dls-border, #e3e8ea);
}

.dls-expenses-page .dataTables_wrapper .dataTables_length,
.dls-expenses-page .dataTables_wrapper .dataTables_filter,
.dls-expenses-page .dataTables_wrapper .dataTables_info,
.dls-expenses-page .dataTables_wrapper .dataTables_paginate {
  margin: 0;
  color: var(--dls-secondary, #526068);
  font-size: 13px;
  font-weight: 500;
}

.dls-expenses-page .dataTables_wrapper .dataTables_length label,
.dls-expenses-page .dataTables_wrapper .dataTables_filter label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 500;
  color: var(--dls-secondary);
}

.dls-expenses-page .dataTables_wrapper .dataTables_filter input {
  border: 1px solid var(--dls-border);
  border-radius: 6px;
  padding: 6px 12px;
  min-height: 36px;
  min-width: 200px;
  font-size: 14px;
  font-family: var(--dls-font);
  background: var(--dls-bg);
}

.dls-expenses-page .dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--dls-border);
  border-radius: 6px;
  padding: 4px 8px;
  min-height: 36px;
  font-size: 14px;
  font-family: var(--dls-font);
  margin: 0 8px;
}

.dls-expenses-page .dataTables_wrapper .dataTables_paginate .paginate_button {
  border-radius: 6px !important;
  border: 1px solid var(--dls-border) !important;
  padding: 4px 12px !important;
  margin: 0 2px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  font-family: var(--dls-font) !important;
  color: var(--dls-secondary) !important;
  background: var(--dls-bg) !important;
}

.dls-expenses-page .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dls-expenses-page .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--dls-primary, #3e79ea) !important;
  border-color: var(--dls-primary) !important;
  color: #fff !important;
}

.dls-expenses-page .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--dls-bg-subtle) !important;
  border-color: var(--dls-secondary) !important;
  color: var(--dls-text) !important;
}

.dls-expenses-page table.dataTable thead th,
.dls-expenses-page table.dataTable thead td {
  border-bottom: 1px solid var(--dls-border) !important;
}

.dls-expenses-page table.dataTable.no-footer {
  border-bottom: 1px solid var(--dls-border);
}

/* Ledger detail monospace column — keep mono but DLS size */
.dls-expenses-page .dls-mono-cell {
  font-family: ui-monospace, "Geist Mono", Menlo, monospace !important;
  font-size: 13px !important;
}

/* Filter rows */
.dls-expenses-page .card-body > form.row {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--dls-border);
}

.dls-expenses-page .form-control-sm,
.dls-expenses-page .form-select-sm {
  font-size: 14px;
  font-family: var(--dls-font);
  min-height: 36px;
  border-radius: 6px;
}

/* Modals in expenses */
.dls-expenses-page .modal-content {
  font-family: var(--dls-font);
}

.dls-expenses-page .modal-body .table {
  font-size: 14px !important;
}

/* Print controls on screen pages (not PDF templates) */
.dls-expenses-page .d-print-none {
  font-family: var(--dls-font);
}

/* Additional table IDs */
.dls-expenses-page #ledgerTable,
.dls-expenses-page #coItemsTable,
.dls-expenses-page #poTable {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
  font-size: 14px !important;
}

.dls-expenses-page #ledgerTable thead th,
.dls-expenses-page #coItemsTable thead th,
.dls-expenses-page #coItemsTable tbody td,
.dls-expenses-page #ledgerTable tbody td {
  font-size: 14px !important;
  padding: 10px 12px !important;
}

/* Force Inter on all form controls in expenses */
.dls-expenses-page input,
.dls-expenses-page select,
.dls-expenses-page textarea,
.dls-expenses-page .form-control,
.dls-expenses-page .form-select,
.dls-expenses-page .btn,
.dls-expenses-page label,
.dls-expenses-page .select2-container {
  font-family: var(--dls-font, "Inter", system-ui, sans-serif) !important;
}

.dls-expenses-page .form-control,
.dls-expenses-page .form-select,
.dls-expenses-page input.form-control-sm,
.dls-expenses-page select.form-select-sm {
  font-size: 14px !important;
}

/* Override legacy 0.85rem / 0.9rem rules in page-local <style> blocks */
.dls-expenses-page #dataTable .cell-input,
.dls-expenses-page #dataTable #newRowForm input.form-control-sm,
.dls-expenses-page #dataTable #newRowForm textarea.form-control-sm,
.dls-expenses-page #coItemsTable input.form-control-sm,
.dls-expenses-page #coItemsTable textarea.form-control-sm,
.dls-expenses-page .select2-container--bootstrap-5 .select2-selection__choice {
  font-size: 14px !important;
  font-family: var(--dls-font) !important;
}

.dls-expenses-page #dataTable .auto-resize-textarea {
  min-height: 96px;
}

.dls-expenses-page thead.table-light,
.dls-expenses-page thead[style*="background"] {
  background: var(--dls-bg-subtle, #f5f6fa) !important;
}

.dls-expenses-page .table-light th {
  background: var(--dls-bg-subtle) !important;
  color: var(--dls-secondary) !important;
}

/* Select2 dropdown */
.dls-expenses-page .select2-container--bootstrap-5 .select2-selection {
  font-family: var(--dls-font) !important;
  font-size: 14px !important;
  min-height: 40px;
  border-color: var(--dls-border) !important;
  border-radius: 6px !important;
}

/* ─── Diesel module: wide grids without inner table scroll ─── */
.dls-expenses-page .dls-table-fit {
  width: 100%;
  overflow-x: visible;
  overflow-y: visible;
}

.dls-expenses-page .dls-table-fit .table {
  margin-bottom: 0;
}

.dls-expenses-page #dieselReportTable,
.dls-expenses-page #summaryReportTable {
  table-layout: fixed;
  width: 100%;
}

/* P.O. lists: many columns — scroll inside card, keep actions column in table */
.dls-expenses-page .dls-po-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.dls-expenses-page #purchaseOrderTable {
  table-layout: auto;
  width: 100%;
  min-width: 1080px;
  margin-bottom: 0;
}

.dls-expenses-page #dieselReportTable thead th,
.dls-expenses-page #dieselReportTable tbody td {
  font-size: 12px !important;
  padding: 6px 4px !important;
}

.dls-expenses-page #dieselReportTable thead th:nth-child(n+3):not(:last-child),
.dls-expenses-page #dieselReportTable tbody td:nth-child(n+3):not(:last-child) {
  font-size: 11px !important;
  padding: 4px 2px !important;
}

.dls-expenses-page #dieselReportTable .cell-input {
  font-size: 11px !important;
  padding: 2px 4px !important;
  min-height: 28px;
}

.dls-expenses-page #summaryReportTable thead th,
.dls-expenses-page #summaryReportTable tbody td,
.dls-expenses-page #summaryReportTable tfoot td {
  font-size: 12px !important;
  padding: 8px 6px !important;
}

.dls-expenses-page #summaryReportTable thead th[rowspan="2"] {
  vertical-align: middle !important;
  line-height: 1.25;
}

.dls-expenses-page #summaryReportTable thead th .label-input,
.dls-expenses-page #summaryReportTable thead th .label-display {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.dls-expenses-page #summaryReportTable .editable-cell .cell-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.dls-expenses-page #purchaseOrderTable thead th,
.dls-expenses-page #purchaseOrderTable tbody td,
.dls-expenses-page #purchaseOrderTable tfoot td {
  font-size: 12px !important;
  padding: 8px 6px !important;
}

.dls-expenses-page #purchaseOrderTable .cell-display {
  word-break: break-word;
}

.dls-expenses-page #purchaseOrderTable .dls-po-actions-col {
  width: 76px;
  min-width: 76px;
  max-width: 76px;
  white-space: nowrap;
  vertical-align: middle !important;
  position: sticky;
  right: 0;
  z-index: 2;
  background: var(--dls-bg, #fff) !important;
  box-shadow: -4px 0 8px rgba(39, 44, 48, 0.06);
}

.dls-expenses-page #purchaseOrderTable thead .dls-po-actions-col {
  background: var(--dls-bg-subtle, #f5f6fa) !important;
  z-index: 3;
}

.dls-expenses-page #purchaseOrderTable tbody tr:hover .dls-po-actions-col {
  background: #fafbfc !important;
}

.dls-expenses-page #purchaseOrderTable .dls-po-actions-col .dls-expense-actions {
  justify-content: center;
}

.dls-expenses-page .dls-report-heading .dls-report-title {
  font-size: 16px;
  font-weight: 600;
  color: var(--dls-text);
  letter-spacing: 0.02em;
}

.dls-expenses-page .dls-report-subtitle {
  font-size: 13px;
  color: var(--dls-secondary) !important;
}

.dls-expenses-page .table-totals td,
.dls-expenses-page .table-totals th,
.dls-expenses-page #dieselReportTable .table-totals td,
.dls-expenses-page #summaryReportTable tfoot tr td,
.dls-expenses-page #purchaseOrderTable tfoot tr td {
  background: var(--dls-bg-subtle, #f5f6fa) !important;
  font-weight: 600 !important;
  color: var(--dls-text) !important;
}

.dls-expenses-page .editable-cell {
  cursor: pointer;
  position: relative;
  background-color: var(--dls-warning-subtle, #fdf3e3) !important;
  transition: background-color 0.15s ease;
}

.dls-expenses-page .editable-cell:hover {
  background-color: #fff5cc !important;
}

.dls-expenses-page .editable-cell.editing,
.dls-expenses-page .editable-label.editing {
  background-color: var(--dls-primary-subtle, #eaf1fd) !important;
}

.dls-expenses-page .editable-label {
  cursor: pointer;
}

.dls-expenses-page .cell-input {
  border: 2px solid var(--dls-primary, #3e79ea) !important;
  background-color: var(--dls-bg) !important;
  font-weight: 600;
  border-radius: var(--dls-radius-sm, 6px);
}

.dls-expenses-page .cell-input:focus {
  border-color: var(--dls-primary-hover, #3161df) !important;
  box-shadow: var(--dls-shadow-focus, 0 0 0 2px #fff, 0 0 0 4px rgba(62, 121, 234, 0.5));
}

.dls-expenses-page .calculated-cell {
  background-color: var(--dls-bg-subtle, #f5f6fa) !important;
  font-weight: 500;
}

.dls-expenses-page .row-total {
  color: var(--dls-primary, #3e79ea) !important;
}

.dls-expenses-page #grand-total {
  color: var(--dls-success, #22a06b) !important;
}

.dls-expenses-page .dls-expense-actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: nowrap;
}

.dls-expenses-page .dls-expense-actions .dls-action-btn {
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: none;
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.dls-expenses-page .dls-expense-actions .dls-action-btn--edit {
  background: var(--dls-primary-subtle, #eaf1fd);
  color: var(--dls-primary, #3e79ea);
}

.dls-expenses-page .dls-expense-actions .dls-action-btn--edit:hover {
  background: var(--dls-primary, #3e79ea);
  color: #fff;
}

.dls-expenses-page .dls-expense-actions .dls-action-btn--delete {
  background: var(--dls-danger-subtle, #fdeaea);
  color: var(--dls-danger, #d93b3b);
}

.dls-expenses-page .dls-expense-actions .dls-action-btn--delete:hover {
  background: var(--dls-danger, #d93b3b);
  color: #fff;
}

.dls-expenses-page .cell-input::-webkit-outer-spin-button,
.dls-expenses-page .cell-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.dls-expenses-page .cell-input[type="number"] {
  -moz-appearance: textfield;
}

.dls-expenses-page input[type="number"]::-webkit-outer-spin-button,
.dls-expenses-page input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.dls-expenses-page input[type="number"] {
  -moz-appearance: textfield;
}

/* ─── Mandatory module ─── */
.dls-expenses-page .dls-mandatory-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ─── Petty cash: many columns — scroll inside card, not the whole page ─── */
.dls-expenses-page .dls-pettycash-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.dls-expenses-page .dls-pettycash-table-wrap.dls-table-fit,
.dls-expenses-page .dls-mandatory-table-wrap.dls-table-fit {
  overflow-x: auto;
}

.dls-expenses-page .dls-pettycash-table-wrap #dataTable {
  width: 100%;
  table-layout: fixed;
  min-width: 1280px;
  margin-bottom: 0;
}

.dls-expenses-page .dls-pettycash-table-wrap #dataTable thead th,
.dls-expenses-page .dls-pettycash-table-wrap #dataTable tbody td,
.dls-expenses-page .dls-pettycash-table-wrap #dataTable tfoot th {
  font-size: 12px !important;
  padding: 4px 6px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.dls-expenses-page .dls-pettycash-table-wrap #dataTable .amount-input {
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

/* ─── CD Summary: fit viewport (no horizontal scroll bar) ─── */
.dls-expenses-page .dls-cd-summary-table-fit,
.dls-expenses-page .dls-table-fit:has(#cdSummaryTable) {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #cdSummaryTable,
.dls-expenses-page .dls-table-fit .dls-cd-summary-table {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

/* Column widths via colgroup only — must sum to 100% (no extra px column) */
.dls-expenses-page #cdSummaryTable .dls-cd-col-sn { width: 3%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-date { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-name { width: 8%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-address { width: 8%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-bank { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-check-date { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-debit { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-credit { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-receipt { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-voucher { width: 6%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-cheque { width: 5%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-particulars { width: 11%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-account { width: 10%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-amount { width: 6%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-total { width: 6%; }
.dls-expenses-page #cdSummaryTable .dls-cd-col-actions { width: 7%; }

.dls-expenses-page #cdSummaryTable thead th,
.dls-expenses-page #cdSummaryTable tbody td,
.dls-expenses-page #cdSummaryTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: top;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page #cdSummaryTable .dls-cd-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page #cdSummaryTable .dls-cd-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3px;
  width: 100%;
  margin: 0;
  flex-wrap: nowrap;
}

.dls-expenses-page #cdSummaryTable .dls-cd-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #cdSummaryTable .dls-cd-actions-col .dls-action-btn i {
  font-size: 13px;
}

.dls-expenses-page #cdSummaryTable .small {
  font-size: 11px !important;
}

/* ─── Cash loan: entry list + history ─── */
.dls-expenses-page .dls-cashloan-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #cashLoanTable {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.dls-expenses-page #cashLoanTable .dls-cashloan-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  overflow: hidden;
}

.dls-expenses-page #cashLoanTable .dls-cashloan-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #cashLoanTable .dls-cashloan-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #cashLoanTable .dls-cashloan-actions-col .dls-action-btn i {
  font-size: 13px;
}

/* ─── Billing collection: cash receipts + ledger ─── */
.dls-expenses-page .dls-billing-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #billingReceiptsTable,
.dls-expenses-page .dls-table-fit #billingLedgerTable {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.dls-expenses-page #billingReceiptsTable .dls-billing-actions-col,
.dls-expenses-page #billingLedgerTable .dls-billing-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  overflow: hidden;
}

.dls-expenses-page #billingReceiptsTable .dls-billing-actions-col .dls-expense-actions,
.dls-expenses-page #billingLedgerTable .dls-billing-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #billingReceiptsTable .dls-billing-actions-col .dls-action-btn,
.dls-expenses-page #billingLedgerTable .dls-billing-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #billingReceiptsTable .dls-billing-actions-col .dls-action-btn i,
.dls-expenses-page #billingLedgerTable .dls-billing-actions-col .dls-action-btn i {
  font-size: 13px;
}

.dls-expenses-page .bc-amount-input {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* ─── Accounts payable purchased orders: fit viewport (no horizontal scroll) ─── */
.dls-expenses-page .dls-po-ap-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #purchasedOrderTable {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.dls-expenses-page #purchasedOrderTable thead th,
.dls-expenses-page #purchasedOrderTable tbody td,
.dls-expenses-page #purchasedOrderTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: middle;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page #purchasedOrderTable .text-truncate {
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dls-expenses-page #purchasedOrderTable .dls-po-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page #purchasedOrderTable .dls-po-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #purchasedOrderTable .dls-po-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #purchasedOrderTable .dls-po-actions-col .dls-action-btn i {
  font-size: 13px;
}

/* ─── Contract order: fit viewport ─── */
.dls-expenses-page .dls-co-ap-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #contractOrderTable {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.dls-expenses-page #contractOrderTable thead th,
.dls-expenses-page #contractOrderTable tbody td,
.dls-expenses-page #contractOrderTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: middle;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page #contractOrderTable .text-truncate {
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dls-expenses-page #contractOrderTable .dls-co-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page #contractOrderTable .dls-co-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #contractOrderTable .dls-co-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #contractOrderTable .dls-co-actions-col .dls-action-btn i {
  font-size: 13px;
}

/* ─── MID: fit viewport ─── */
.dls-expenses-page .dls-mid-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #midsTable {
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.dls-expenses-page #midsTable thead th,
.dls-expenses-page #midsTable tbody td,
.dls-expenses-page #midsTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: middle;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page #midsTable .text-truncate {
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dls-expenses-page #midsTable .dls-mid-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page #midsTable .dls-mid-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #midsTable .dls-mid-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #midsTable .dls-mid-actions-col .dls-action-btn i {
  font-size: 13px;
}

.dls-expenses-page .dls-am-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #memoTable,
.dls-expenses-page .dls-am-table-fit table.dataTable#memoTable {
  table-layout: fixed;
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.dls-expenses-page .dls-am-table-fit .dataTables_wrapper,
.dls-expenses-page .dls-am-table-fit .dt-container {
  width: 100% !important;
  max-width: 100%;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable thead th,
.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable tbody td,
.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: middle;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable .text-truncate {
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable .dls-am-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable .dls-am-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable .dls-am-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page .dls-table-fit.dls-am-table-fit #memoTable .dls-am-actions-col .dls-action-btn i {
  font-size: 13px;
}

/* ─── Payment schedule: list + summary ─── */
.dls-expenses-page .dls-ps-table-fit {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

.dls-expenses-page .dls-table-fit #paymentScheduleTable,
.dls-expenses-page .dls-table-fit #paymentScheduleSummaryTable,
.dls-expenses-page .dls-ps-table-fit table.dataTable#paymentScheduleTable,
.dls-expenses-page .dls-ps-table-fit table.dataTable#paymentScheduleSummaryTable {
  table-layout: fixed;
  width: 100% !important;
  max-width: 100%;
  min-width: 0;
  margin-bottom: 0;
}

.dls-expenses-page .dls-ps-table-fit .dataTables_wrapper,
.dls-expenses-page .dls-ps-table-fit .dt-container {
  width: 100% !important;
  max-width: 100%;
}

.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleTable thead th,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleTable tbody td,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleTable tfoot th,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleSummaryTable thead th,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleSummaryTable tbody td,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleSummaryTable tfoot th {
  font-size: 11px !important;
  padding: 3px 4px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  vertical-align: middle;
  line-height: 1.3;
  box-sizing: border-box;
}

.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleTable .text-truncate,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleSummaryTable .text-truncate {
  max-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleTable .amount-cell,
.dls-expenses-page .dls-table-fit.dls-ps-table-fit #paymentScheduleSummaryTable .amount-cell {
  background-color: #fff8e1;
}

.dls-expenses-page #paymentScheduleTable .dls-ps-actions-col {
  white-space: nowrap;
  vertical-align: middle !important;
  text-align: center;
  overflow: hidden;
  padding: 2px !important;
}

.dls-expenses-page #paymentScheduleTable .dls-ps-actions-col .dls-expense-actions {
  display: flex;
  justify-content: center;
  gap: 3px;
  flex-wrap: nowrap;
}

.dls-expenses-page #paymentScheduleTable .dls-ps-actions-col .dls-action-btn {
  width: 26px;
  height: 26px;
  min-width: 26px;
  min-height: 26px;
  flex-shrink: 0;
}

.dls-expenses-page #paymentScheduleTable .dls-ps-actions-col .dls-action-btn i {
  font-size: 13px;
}

.dls-expenses-page #govtRemittanceTable thead.dls-govt-summary-head th {
  background: var(--dls-secondary, #272c30) !important;
  color: #fff !important;
  border-color: var(--dls-secondary, #272c30) !important;
}

.dls-expenses-page #govtRemittanceTable tfoot.table-totals td,
.dls-expenses-page #govtRemittanceTable tfoot.table-totals th {
  background: var(--dls-warning-subtle, #fdf3e3) !important;
  font-weight: 600 !important;
}

.dls-expenses-page #pagibigTable tfoot th,
.dls-expenses-page #philhealthTable tfoot th,
.dls-expenses-page #sssTable tfoot th,
.dls-expenses-page #sssLoanTable tfoot th,
.dls-expenses-page #pagibigLoanTable tfoot th {
  background: var(--dls-bg-subtle, #f5f6fa) !important;
  font-weight: 600 !important;
}

@media print {
  .dls-expenses-page .card-header,
  .dls-expenses-page .btn,
  .dls-expenses-page .modal,
  .dls-expenses-page .breadcrumb,
  .dls-expenses-page .navbar,
  .dls-expenses-page .sidebar,
  .dls-expenses-page .footer,
  .dls-expenses-page .d-print-none {
    display: none !important;
  }

  .dls-expenses-page .dls-expense-table {
    font-size: 10px;
    table-layout: fixed;
  }

  .dls-expenses-page .dls-expense-table th,
  .dls-expenses-page .dls-expense-table td {
    padding: 2px 1px;
    border: 1px solid #000;
  }

  .dls-expenses-page body {
    font-size: 10px;
  }

  @page {
    size: A4 landscape;
    margin: 10mm;
  }
}
