@font-face {
  font-family: "MarketCore MICR";
  src: url("/assets/fonts/Nimra-Regular.ttf") format("truetype");
  font-display: block;
}

.modal-body {
  padding: 16px;
  overflow: auto;
}

.accounting-setup-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.accounting-setup-summary > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #cfdae6;
  border-radius: 6px;
  background: #f8fafc;
}

.accounting-setup-summary span { color: #546b86; font-size: 12px; }
.accounting-setup-summary strong { color: #092b55; font-size: 18px; font-variant-numeric: tabular-nums; }

.accounting-setup-grid {
  display: grid;
  grid-template-columns: minmax(230px, .8fr) minmax(0, 1.5fr);
  gap: 12px;
  margin-bottom: 12px;
}

.accounting-account-list { max-height: 330px; overflow: auto; border-top: 1px solid #d9e2ec; }

.accounting-account-row {
  display: grid;
  width: 100%;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 2px 8px;
  min-height: 52px;
  padding: 9px 10px;
  color: #17395f;
  text-align: left;
  background: #fff;
  border: 0;
  border-bottom: 1px solid #d9e2ec;
  border-radius: 0;
}

.accounting-account-row:hover { background: #f4f8fd; }
.accounting-account-row.active { box-shadow: inset 3px 0 0 #1769c2; background: #eaf3ff; }
.accounting-account-row strong { font-size: 12px; }
.accounting-account-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.accounting-account-row small { grid-column: 2; color: #607792; }

.accounting-mapping-section { margin-top: 12px; }
.accounting-mapping-section table { width: 100%; min-width: 760px; }
.accounting-mapping-section th { color: #526a85; background: #edf3f8; }
.accounting-mapping-section td { vertical-align: middle; }
.accounting-mapping-section select { min-width: 230px; }
.accounting-mapping-section td small { display: block; color: #607792; }
.accounting-legacy-table { max-height: 350px; overflow: auto; }

/* General Ledger is a dedicated review workspace, separate from setup and mapping work. */
.general-ledger-view {
  width: min(100%, 1440px);
}

.general-ledger-body {
  display: grid;
  gap: var(--space-3);
}

.general-ledger-filter {
  display: grid;
  grid-template-columns: minmax(260px, 1.8fr) minmax(145px, .7fr) minmax(145px, .7fr) auto;
  gap: var(--space-2);
  align-items: end;
  padding: var(--space-3);
}

.general-ledger-filter label {
  display: grid;
  gap: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.general-ledger-filter select,
.general-ledger-filter input {
  width: 100%;
}

.general-ledger-filter .inline-actions {
  min-height: var(--control-height);
  align-items: end;
}

.general-ledger-summary {
  margin: 0;
}

.general-ledger-summary > div {
  display: grid;
  align-content: start;
  gap: 4px;
}

.general-ledger-summary small,
.general-ledger-register td small {
  color: var(--muted);
  font-size: 11px;
}

.general-ledger-register {
  margin-top: 0;
}

.general-ledger-register .section-title-row {
  align-items: center;
}

.general-ledger-register table {
  min-width: 900px;
}

.general-ledger-register td:nth-child(3),
.general-ledger-register td:nth-child(4) {
  display: grid;
  gap: 2px;
}

@media (max-width: 900px) {
  .accounting-setup-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .accounting-setup-grid { grid-template-columns: 1fr; }
  .general-ledger-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .accounting-setup-summary { grid-template-columns: 1fr; }
  .general-ledger-filter { grid-template-columns: 1fr; }
}

.transaction-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
  margin-bottom: 12px;
}

.transaction-meta .kv-wide {
  grid-column: 1 / -1;
}

.transaction-meta .kv-wide strong {
  white-space: normal;
}

.modal-lines {
  max-height: 42vh;
}

.purchase-invoice-lines {
  max-height: 48vh;
}

.purchase-invoice-table {
  min-width: 980px;
}

.purchase-invoice-table th,
.purchase-invoice-table td {
  white-space: nowrap;
}

.purchase-invoice-table td:nth-child(3) {
  min-width: 220px;
  white-space: normal;
}

.purchase-invoice-table .numeric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.purchase-invoice-table tr.purchase-selected-line td {
  background: #edf4fd;
  box-shadow: inset 0 1px #9fc2e7, inset 0 -1px #9fc2e7;
}

.purchase-invoice-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 210px));
  justify-content: end;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.vendor-bill-document {
  display: grid;
  gap: 18px;
  color: #18242b;
}

.vendor-bill-print-document {
  display: none;
}

.vendor-bill-screen-document .purchase-invoice-lines {
  max-height: min(54vh, 720px);
}

.vendor-bill-screen-document .vendor-bill-footer {
  margin-top: 0;
}

.vendor-bill-page {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--line);
  background: #ffffff;
}

.vendor-bill-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 14px;
  border-bottom: 3px solid var(--accent);
}

.vendor-bill-heading {
  display: grid;
  gap: 3px;
}

.vendor-bill-heading > span,
.vendor-bill-parties section > span,
.vendor-bill-number > span {
  color: #60717c;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.vendor-bill-heading h3 {
  margin: 0;
  font-size: 24px;
}

.vendor-bill-heading p,
.vendor-bill-parties p {
  margin: 0;
  color: #586a74;
}

.vendor-bill-number {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #8ea2ac;
  text-align: right;
}

.vendor-bill-identifiers {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 10px;
  min-width: 390px;
}

.internal-transaction-number {
  background: #f5f7f8;
}

.vendor-bill-number strong {
  font-size: 22px;
  font-variant-numeric: tabular-nums;
}

.vendor-bill-parties {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.vendor-bill-parties section {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 112px;
  padding: 12px 14px;
  border-left: 4px solid #a8bbb8;
  background: #f5f8f8;
}

.vendor-bill-parties strong {
  font-size: 18px;
}

.vendor-bill-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px 18px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.vendor-bill-meta .kv {
  min-width: 0;
  grid-template-columns: minmax(105px, auto) minmax(0, 1fr);
  gap: 6px;
}

.vendor-bill-meta .kv strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.vendor-bill-footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  margin-top: auto;
}

.vendor-bill-footer strong {
  color: #18242b;
  font-size: 12px;
}

.vendor-bill-item-link {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.vendor-bill-document .purchase-invoice-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.vendor-bill-document .bill-col-line { width: 5%; }
.vendor-bill-document .bill-col-upc { width: 14%; }
.vendor-bill-document .bill-col-description { width: 30%; }
.vendor-bill-document .bill-col-vendor-item { width: 12%; }
.vendor-bill-document .bill-col-qty { width: 7%; }
.vendor-bill-document .bill-col-unit { width: 8%; }
.vendor-bill-document .bill-col-unit-cost { width: 11%; }
.vendor-bill-document .bill-col-extended { width: 13%; }

.vendor-bill-document .purchase-invoice-table th,
.vendor-bill-document .purchase-invoice-table td {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vendor-payment-document {
  display: grid;
  gap: 16px;
}

.vendor-check-paper {
  position: relative;
  display: grid;
  grid-template-columns: 90px minmax(280px, 1fr) 190px 120px;
  grid-template-areas:
    "payer payer date number"
    "paylabel payee payee amount"
    "words words words dollars"
    "memo memo signature signature"
    "micr micr micr micr";
  gap: 16px 12px;
  min-width: 780px;
  padding: 22px 26px 18px;
  border: 1px solid #93afcf;
  border-radius: 2px;
  background: #f7faff;
  color: #172b46;
  box-shadow: inset 0 0 0 3px #e2edf8;
}

.vendor-check-fractional {
  position: absolute;
  top: 64px;
  right: 28px;
  color: #415650;
  font-size: 11px;
  font-weight: 800;
}

.vendor-check-payer small {
  color: #334943;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
}

.vendor-check-payer {
  grid-area: payer;
  display: grid;
  gap: 3px;
}

.vendor-check-payer strong {
  font-size: 18px;
}

.vendor-check-bank {
  position: absolute;
  top: 22px;
  right: 274px;
  width: 170px;
  display: grid;
  gap: 2px;
  text-align: right;
}

.vendor-check-bank strong {
  font-size: 14px;
}

.vendor-check-bank span,
.vendor-check-number span,
.vendor-check-date span,
.vendor-check-memo span,
.vendor-check-signature span {
  color: #5f716b;
  font-size: 11px;
  font-weight: 700;
}

.vendor-check-number {
  grid-area: number;
}

.vendor-check-date {
  grid-area: date;
}

.vendor-check-number,
.vendor-check-date {
  display: grid;
  align-content: start;
  gap: 4px;
  text-align: right;
}

.vendor-check-number strong,
.vendor-check-date strong {
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.vendor-check-payee-label {
  grid-area: paylabel;
  align-self: end;
  color: #5f716b;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
}

.vendor-check-payee {
  grid-area: payee;
  align-self: end;
  min-width: 0;
  padding: 0 6px 5px;
  border-bottom: 1px solid #526963;
  font-size: 18px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.vendor-check-amount {
  grid-area: amount;
  align-self: end;
  padding: 8px 10px;
  border: 1px solid #526963;
  background: #ffffff;
  font-size: 18px;
  font-weight: 900;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.vendor-check-words {
  grid-area: words;
  min-width: 0;
  padding: 0 6px 5px;
  border-bottom: 1px solid #526963;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  font-weight: 700;
  text-transform: capitalize;
  overflow-wrap: anywhere;
}

.vendor-check-dollars {
  grid-area: dollars;
  align-self: end;
  padding-bottom: 5px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
}

.vendor-check-memo {
  grid-area: memo;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: 8px;
}

.vendor-check-memo strong {
  min-width: 0;
  padding: 0 4px 4px;
  border-bottom: 1px solid #526963;
  overflow-wrap: anywhere;
}

.vendor-check-signature {
  grid-area: signature;
  display: grid;
  align-items: end;
  min-height: 38px;
  border-bottom: 1px solid #526963;
  text-align: center;
}

.vendor-check-signature span {
  transform: translateY(17px);
}

.vendor-check-signature img {
  display: block;
  max-width: 100%;
  max-height: 34px;
  margin: 0 auto 2px;
  object-fit: contain;
}

.vendor-check-micr {
  grid-area: micr;
  padding-top: 6px;
  font-family: "MarketCore MICR", monospace;
  font-size: 15px;
  font-weight: 400;
  font-style: normal;
  font-variant-ligatures: none;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.vendor-check-micr.invalid {
  font-family: Arial, sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
}

.vendor-payment-face {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  background: var(--panel-soft);
}

.vendor-payment-face strong,
.vendor-payment-face span {
  font-size: 22px;
  font-weight: 900;
}

.vendor-payment-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 14px;
}

.vendor-payment-applications {
  display: grid;
  gap: 10px;
}

.vendor-payment-applications .table-wrap {
  max-height: 260px;
}

.vendor-payment-entry-open .transaction-modal {
  width: min(1500px, 98vw);
}

.vendor-invoice-readonly-modal {
  width: min(1280px, 96vw);
}

.vendor-invoice-payments-modal {
  width: min(860px, calc(100vw - 36px));
  max-height: min(760px, calc(100vh - 40px));
}

.vendor-invoice-payments-view {
  display: grid;
  gap: 14px;
}

.invoice-payment-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.invoice-payment-summary-card {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line);
  background: var(--panel-soft);
}

.invoice-payment-summary-card span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.invoice-payment-summary-card strong {
  font-size: 18px;
}

.invoice-payment-table-wrap {
  max-height: 420px;
  overflow: auto;
  border: 1px solid var(--line);
}

.invoice-payment-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.invoice-payment-table th,
.invoice-payment-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.invoice-payment-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--panel-soft);
}

.invoice-payment-table td:nth-child(2) {
  display: grid;
  gap: 2px;
}

.invoice-payment-table td:nth-child(2) span {
  color: var(--muted);
  font-size: 12px;
}

.invoice-payment-table .numeric {
  text-align: right;
  white-space: nowrap;
}

.invoice-payment-empty {
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 36px 20px;
  border: 1px solid var(--line);
  background: var(--panel-soft);
  text-align: center;
}

.invoice-payment-empty span {
  color: var(--muted);
}

@media (max-width: 720px) {
  .invoice-payment-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.vendor-payment-entry-open .modal-body {
  padding: 0;
  overflow: hidden;
}

.vendor-pay-invoice {
  display: grid;
  grid-template-rows: auto auto minmax(240px, 1fr) auto;
  height: min(80vh, 820px);
  min-height: 560px;
}

.vendor-pay-invoice.is-posting .vendor-pay-header-band,
.vendor-pay-invoice.is-posting .vendor-pay-list-actions,
.vendor-pay-invoice.is-posting .vendor-pay-invoice-list {
  pointer-events: none;
  opacity: 0.62;
}

.vendor-pay-header-band {
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  background: #e8eef0;
}

.vendor-payment-method-row {
  display: grid;
  grid-template-columns: 180px minmax(260px, 360px) minmax(180px, 1fr);
  gap: 10px;
  margin-bottom: 10px;
}

.vendor-payment-method-row label,
.vendor-check-entry label {
  display: grid;
  gap: 4px;
  color: #536761;
  font-size: 11px;
  font-weight: 800;
}

.vendor-payment-method-row select,
.vendor-payment-method-row input {
  width: 100%;
}

.vendor-payment-bank-position {
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid #b8cce4;
  border-left: 3px solid var(--primary);
  border-radius: 6px;
  background: #f4f8fd;
}

.vendor-payment-bank-position.is-negative {
  border-color: #dfb0b7;
  border-left-color: #bf2f45;
  background: #fff7f8;
}

.vendor-payment-bank-position-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.vendor-payment-bank-position-heading > div {
  display: grid;
  gap: 2px;
}

.vendor-payment-bank-position-heading span,
.vendor-payment-bank-metrics span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.vendor-payment-bank-position-heading strong {
  color: var(--ink);
}

.vendor-payment-bank-position-heading small {
  color: var(--muted);
}

.vendor-payment-bank-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.vendor-payment-bank-metrics > div {
  display: grid;
  gap: 3px;
  padding: 7px 8px;
  border: 1px solid #d4e0ed;
  border-radius: 4px;
  background: #fff;
}

.vendor-payment-bank-metrics strong {
  color: #0f355e;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.vendor-payment-bank-position.is-negative .vendor-payment-bank-metrics > div:last-child strong,
.vendor-payment-bank-warning {
  color: #a8273d;
}

.vendor-payment-bank-warning,
.vendor-payment-bank-note {
  margin: 8px 0 0;
  font-size: 12px;
  font-weight: 650;
}

.vendor-payment-bank-note {
  color: var(--muted);
}

.vendor-check-entry {
  min-width: 0;
  width: 100%;
  padding: 16px 22px 13px;
  gap: 10px 12px;
  background: #fffef8;
  box-shadow: 0 2px 8px rgba(31, 49, 58, 0.12), inset 0 0 0 2px #d8dfd7;
}

.vendor-check-entry input {
  min-width: 0;
  border: 0;
  border-bottom: 1px solid #526963;
  border-radius: 0;
  background: transparent;
  padding: 2px 4px 4px;
  font-weight: 800;
}

.vendor-check-entry .vendor-check-number,
.vendor-check-entry .vendor-check-date {
  text-align: left;
}

.vendor-check-entry .vendor-check-memo label {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
}

.vendor-check-entry .vendor-check-memo {
  display: block;
}

.vendor-payment-draft-invoice-link {
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}

.vendor-pay-fields {
  display: grid;
  grid-template-columns: 150px 140px 150px 160px 130px minmax(260px, 1fr);
  gap: 10px;
  align-items: end;
}

.vendor-pay-fields label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.vendor-pay-fields input,
.vendor-pay-fields select {
  width: 100%;
  min-width: 0;
}

.vendor-pay-list-actions,
.vendor-pay-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 16px;
  background: #ffffff;
}

.vendor-pay-list-actions {
  border-bottom: 1px solid var(--line);
}

.vendor-pay-list-actions > div:first-child {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.vendor-pay-list-actions span {
  color: var(--muted);
  font-size: 12px;
}

.vendor-pay-invoice-list {
  min-height: 0;
  max-height: none;
  overflow: auto;
  border: 0;
  border-radius: 0;
}

.vendor-pay-invoice-list table {
  min-width: 1260px;
}

.vendor-pay-invoice-list th,
.vendor-pay-invoice-list td {
  vertical-align: middle;
  white-space: nowrap;
}

.vendor-pay-invoice-list thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.vendor-pay-select-column {
  width: 52px;
  text-align: center;
}

.vendor-pay-select-column input {
  width: 20px;
  height: 20px;
}

.vendor-pay-invoice-list tr.vendor-pay-selected td {
  background: #e1f4ef;
}

.vendor-pay-amount {
  display: grid;
  grid-template-columns: auto 110px;
  align-items: center;
  gap: 5px;
}

.vendor-pay-amount input {
  width: 110px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.vendor-pay-full {
  min-width: 62px;
}

.vendor-pay-footer {
  border-top: 1px solid var(--line-strong);
  box-shadow: 0 -5px 14px rgba(31, 49, 58, 0.08);
}

.vendor-pay-summary {
  display: flex;
  align-items: center;
  gap: 28px;
}

.vendor-pay-summary span {
  color: var(--muted);
  font-weight: 700;
}

.vendor-pay-summary strong {
  color: var(--ink);
  font-size: 20px;
  font-variant-numeric: tabular-nums;
}

.vendor-pay-post {
  min-width: 170px;
  min-height: 46px;
  font-size: 16px;
}

.bank-reconciliation-controls {
  padding: 14px 16px;
}

.bank-reconciliation-fields {
  display: grid;
  grid-template-columns: minmax(220px, 280px) 142px 142px 150px 170px auto;
  gap: 10px;
  align-items: end;
}

.bank-reconciliation-fields label {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
}

.bank-reconciliation-fields input,
.bank-reconciliation-fields select {
  width: 100%;
  min-width: 0;
}

.bank-reconciliation-prior {
  margin: 10px 0 0;
  font-size: 12px;
}

.bank-reconciliation-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.bank-reconciliation-summary > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-top: 3px solid #2a67b7;
  border-radius: 5px;
  background: #fff;
}

.bank-reconciliation-summary span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.bank-reconciliation-summary strong {
  display: block;
  margin-top: 5px;
  color: var(--ink);
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.bank-reconciliation-summary > div.is-balanced {
  border-top-color: #1764b7;
  background: #eef6ff;
}

.bank-reconciliation-summary > div.is-balanced strong {
  color: #0754a7;
}

.bank-reconciliation-summary > div.is-unbalanced {
  border-top-color: #bb3d4f;
  background: #fff7f8;
}

.bank-reconciliation-summary > div.is-unbalanced strong {
  color: #a52a3c;
}

.bank-reconciliation-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.bank-reconciliation-section {
  min-width: 0;
  overflow: hidden;
}

.bank-reconciliation-section .table-wrap {
  max-height: 420px;
  overflow: auto;
}

.bank-reconciliation-section th {
  position: sticky;
  top: 0;
  z-index: 1;
}

.bank-reconciliation-section td {
  vertical-align: middle;
}

.bank-reconciliation-section td small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
}

.bank-reconciliation-check {
  width: 42px;
  text-align: center;
}

.bank-reconciliation-check input {
  width: 18px;
  height: 18px;
  accent-color: #1764b7;
}

.bank-reconciliation-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: #f6f9fc;
}

.bank-reconciliation-footer p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

@media (max-width: 1280px) {
  .bank-reconciliation-fields {
    grid-template-columns: minmax(220px, 1fr) repeat(2, 142px) 150px 170px;
  }

  .bank-reconciliation-fields .primary {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 900px) {
  .bank-reconciliation-fields,
  .bank-reconciliation-summary,
  .bank-reconciliation-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bank-reconciliation-fields .primary {
    grid-column: auto;
  }
}

@media (max-width: 620px) {
  .bank-reconciliation-fields,
  .bank-reconciliation-summary,
  .bank-reconciliation-columns {
    grid-template-columns: 1fr;
  }

  .bank-reconciliation-footer {
    align-items: stretch;
    flex-direction: column;
  }
}

.vendor-credit-memo-entry-open .transaction-modal {
  width: min(1440px, 98vw);
}

.vendor-credit-memo-entry-open .modal-body {
  padding: 0;
  overflow: hidden;
}

.vendor-credit-entry {
  display: grid;
  grid-template-rows: auto minmax(180px, 0.8fr) auto minmax(170px, 1fr) auto;
  height: min(84vh, 840px);
  min-height: 640px;
}

.vendor-credit-entry.is-posting > :not(.vendor-credit-footer) {
  pointer-events: none;
  opacity: 0.62;
}

.vendor-credit-header {
  display: grid;
  grid-template-columns: minmax(230px, 0.6fr) minmax(700px, 2fr);
  gap: 18px;
  padding: 15px 18px;
  border-bottom: 1px solid #bfd3e8;
  background: #edf4fd;
}

.vendor-credit-heading {
  display: grid;
  align-content: center;
  gap: 3px;
}

.vendor-credit-heading span,
.vendor-credit-document-header span,
.vendor-credit-document-vendor span {
  color: #496784;
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.vendor-credit-heading strong {
  font-size: 20px;
}

.vendor-credit-heading small {
  color: var(--muted);
  font-weight: 700;
}

.vendor-credit-fields {
  display: grid;
  grid-template-columns: 150px minmax(190px, 0.85fr) 150px minmax(260px, 1.25fr);
  gap: 9px 12px;
  align-items: end;
}

.vendor-credit-fields label {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: #536761;
  font-size: 11px;
  font-weight: 800;
}

.vendor-credit-fields input,
.vendor-credit-fields select {
  width: 100%;
  min-width: 0;
}

.vendor-credit-reason {
  grid-column: 1 / -1;
}

.vendor-credit-money {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 5px;
}

.vendor-credit-money input {
  text-align: right;
  font-weight: 850;
}

.vendor-credit-item-returns {
  display: grid;
  grid-template-columns: minmax(270px, 0.55fr) minmax(720px, 2fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px 12px;
  min-height: 0;
  padding: 10px 18px;
  border-bottom: 1px solid var(--line);
  background: #f8fbfa;
}

.vendor-credit-item-returns > .section-title-row {
  grid-column: 1 / -1;
}

.vendor-credit-item-returns .section-title-row h4 {
  margin: 0;
}

.vendor-credit-item-returns .section-title-row > div {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.vendor-credit-item-returns .section-title-row span {
  color: var(--muted);
  font-weight: 750;
}

.vendor-credit-item-search {
  position: relative;
  align-self: start;
}

.vendor-credit-item-search label {
  display: grid;
  gap: 4px;
  color: #536761;
  font-size: 11px;
  font-weight: 800;
}

.vendor-credit-item-results {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  z-index: 12;
  display: none;
  max-height: 290px;
  padding: 5px;
  overflow: auto;
  border: 1px solid var(--line-strong);
  background: #ffffff;
  box-shadow: 0 12px 30px rgba(16, 31, 38, 0.2);
}

.vendor-credit-item-results.show {
  display: grid;
  gap: 4px;
}

.vendor-credit-item-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  min-height: 48px;
  padding: 6px 7px;
  border-bottom: 1px solid var(--line);
}

.vendor-credit-item-result:last-child {
  border-bottom: 0;
}

.vendor-credit-item-result > div {
  display: grid;
  min-width: 0;
}

.vendor-credit-item-result > div span,
.vendor-credit-item-result > span {
  color: var(--muted);
  font-size: 12px;
}

.vendor-credit-return-list {
  min-height: 0;
  max-height: none;
  overflow: auto;
}

.vendor-credit-return-list table {
  min-width: 1080px;
}

.vendor-credit-return-list th,
.vendor-credit-return-list td {
  padding: 6px 7px;
  vertical-align: middle;
  white-space: nowrap;
}

.vendor-credit-return-list thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.vendor-credit-return-list input,
.vendor-credit-return-list select {
  min-height: 34px;
}

.vendor-credit-return-list .vendor-credit-return-qty {
  width: 82px;
}

.vendor-credit-return-list .vendor-credit-money {
  width: 112px;
}

.vendor-credit-invoice-list {
  min-height: 0;
  max-height: none;
  overflow: auto;
  border: 0;
  border-radius: 0;
}

.vendor-credit-invoice-list table {
  min-width: 1120px;
}

.vendor-credit-invoice-list th,
.vendor-credit-invoice-list td {
  vertical-align: middle;
  white-space: nowrap;
}

.vendor-credit-invoice-list thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.vendor-credit-memo-document {
  display: grid;
  gap: 18px;
  max-width: 1040px;
  margin: 0 auto;
  padding: 28px;
  color: var(--ink);
  background: #ffffff;
}

.vendor-credit-document-header {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid var(--accent);
}

.vendor-credit-document-header > div {
  display: grid;
  gap: 4px;
}

.vendor-credit-document-header > div:last-child {
  min-width: 210px;
  text-align: right;
}

.vendor-credit-document-header h3 {
  margin: 0;
  font-size: 24px;
}

.vendor-credit-document-header strong {
  font-size: 23px;
}

.vendor-credit-document-header small,
.vendor-credit-document-vendor small {
  color: var(--muted);
}

.vendor-credit-document-vendor {
  display: grid;
  gap: 3px;
  max-width: 480px;
  padding: 14px 16px;
  border-left: 4px solid var(--accent);
  background: var(--panel-soft);
}

.vendor-credit-document-vendor strong {
  font-size: 18px;
}

.vendor-credit-document-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 18px;
}

.vendor-credit-document-summary .kv {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--line);
}

.vendor-credit-document-summary .kv.wide {
  grid-column: 1 / -1;
}

.vendor-credit-document-applications,
.vendor-credit-document-items {
  display: grid;
  gap: 8px;
}

.vendor-credit-document-applications .table-wrap,
.vendor-credit-document-items .table-wrap {
  max-height: 310px;
}

.vendor-credit-document-totals {
  display: flex;
  justify-content: flex-end;
  gap: 28px;
  padding-top: 14px;
  border-top: 2px solid var(--line-strong);
}

.vendor-credit-document-totals span {
  display: grid;
  gap: 3px;
  color: var(--muted);
  text-align: right;
}

.vendor-credit-document-totals strong {
  color: var(--ink);
  font-size: 18px;
}

@media (max-width: 1100px) {
  .vendor-credit-header {
    grid-template-columns: 1fr;
  }

  .vendor-credit-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vendor-credit-item-returns {
    grid-template-columns: 1fr;
    overflow: auto;
  }

  .vendor-credit-item-returns > .section-title-row {
    grid-column: 1;
  }
}

.vendor-voucher-heading {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) repeat(3, minmax(100px, auto));
  gap: 18px;
  align-items: end;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line-strong);
}

.vendor-voucher-heading > div {
  display: grid;
  gap: 2px;
}

.vendor-voucher-heading span,
.vendor-voucher-footer {
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.vendor-voucher-heading strong {
  font-size: 14px;
}

.vendor-voucher-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-top: 6px;
}

.vendor-check-voucher {
  padding: 14px 6px 0;
  border-top: 1px dashed #82928d;
}

.bank-settings-body {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 16px;
  min-height: 620px;
}

.bank-account-list {
  display: grid;
  align-content: start;
  gap: 7px;
  padding-right: 12px;
  border-right: 1px solid var(--line);
}

.bank-account-list-row {
  display: grid;
  gap: 3px;
  width: 100%;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: #ffffff;
  color: var(--ink);
  text-align: left;
}

.bank-account-list-row.active {
  border-color: var(--accent);
  background: #e2f4ef;
  box-shadow: inset 4px 0 0 var(--accent);
}

.bank-account-list-row span,
.bank-account-list-row small {
  color: var(--muted);
}

.bank-account-editor {
  display: grid;
  align-content: start;
  gap: 12px;
}

.compact-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 750;
}

.compact-check input {
  width: 18px;
  height: 18px;
}

.input-with-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
}

.check-print-settings {
  background: #f3f8f7;
}

.bank-signature-preview {
  display: flex;
  align-items: center;
  min-height: 58px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  background: #ffffff;
}

.bank-signature-preview img {
  display: block;
  max-width: 260px;
  max-height: 54px;
  object-fit: contain;
}

@media (max-width: 1150px) {
  .vendor-pay-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .vendor-pay-memo {
    grid-column: span 2;
  }
}

.legacy-allocation-notice {
  margin: 0;
  padding: 12px;
  border-left: 4px solid #9b6a16;
  background: #fff4d7;
  color: #5f430f;
  font-weight: 700;
}

@page vendor-bill {
  size: letter landscape;
  margin: 0.3in;
}

@page vendor-check {
  size: 8.5in 11in;
  margin: 0;
}

body.printing-vendor-check {
  width: 8.5in !important;
  min-width: 8.5in !important;
  height: 11in !important;
  min-height: 11in !important;
  overflow: hidden !important;
}

body.printing-vendor-check .vendor-payment-document.vendor-check-print-page {
  box-sizing: border-box !important;
  width: 8.5in !important;
  min-width: 8.5in !important;
  max-width: 8.5in !important;
  height: 11in !important;
  min-height: 11in !important;
  max-height: 11in !important;
  margin: 0 !important;
  transform: none !important;
  zoom: 1 !important;
}

@page sale-invoice {
  size: letter portrait;
  margin: 0.45in;
}

.modal-tenders {
  margin-top: 12px;
}

.receipt-total {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  text-align: right;
  font-size: 20px;
  font-weight: 800;
}
