/* OctanePOS 1.28.9B Table Alignment Pass
   Presentation only. Created by Iris Trading Limited, Trinidad.
   Keeps table header/data columns aligned while preserving native table layout. */

/* Several original tables are direct card children. Give them horizontal
   scroll rather than hiding rightmost columns behind the card edge. */
.card:has(> table.tbl) {
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.table-scroll,
.dashboard-table-wrap,
.portal-admin-scroll {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.tbl {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  table-layout: auto;
}
.tbl thead th,
.tbl tbody td {
  box-sizing: border-box;
  vertical-align: middle;
}
.tbl thead th { white-space: nowrap; text-align: left; }
.tbl tbody td { text-align: left; white-space: nowrap; }
.tbl th.op-table-num-col,
.tbl td.op-table-num-col {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.tbl th.op-table-actions-col,
.tbl td.op-table-actions-col {
  text-align: right;
  white-space: nowrap;
}
.tbl td.op-table-actions-col .row-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}
.tbl td:has(.cell-name) {
  min-width: 175px;
  max-width: 310px;
  white-space: normal;
  overflow-wrap: anywhere;
}
.tbl td:has(.cell-sub) { max-width: 310px; white-space: normal; overflow-wrap: anywhere; }
.tbl td.tbl-empty { text-align: center; }
/* The shift recovery screen is a separate table implementation. Keep
   its left/right positions stable in the scrollable viewport. */
.sr-page .sr-table { width: 100%; min-width: 710px; border-collapse: collapse; }
.sr-page .sr-table th, .sr-page .sr-table td { vertical-align: middle; }
.sr-page .sr-table-wrap, .sr-page .sr-transaction-list { overflow-x: auto; }
@media(max-width: 780px) {
  .tbl { min-width: 680px; }
}
