/* Billing and Collection */
.receipt-sheet { position: relative; overflow: hidden; }
.receipt-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.receipt-top .doc-title { text-align: left; margin: 0; }
.receipt-no { font-size: .95rem; color: var(--muted); }
.receipt-no strong { color: var(--redpen); font-size: 1.15rem; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.receipt-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem 1.5rem; }
.receipt-grid > div { display: flex; flex-direction: column; border-bottom: 1px solid #d9e0de; padding-bottom: .3rem; min-width: 0; }
.receipt-grid .rg-wide { grid-column: 1 / -1; }
.receipt-grid .rg-label { font-size: .72rem; color: var(--muted); }
.receipt-grid .rg-value { font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.receipt-grid .rg-amount { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.receipt-stamp { position: absolute; top: 38%; left: 50%; transform: translate(-50%, -50%) rotate(-18deg); font-family: var(--font-title); font-size: 4.5rem; font-weight: 800;
  color: rgba(179, 38, 30, .16); border: 6px solid rgba(179, 38, 30, .16); padding: 0 1.2rem; border-radius: 8px; pointer-events: none; letter-spacing: .08em; }
.receipt-stamp.is-reprint { color: rgba(31, 81, 145, .13); border-color: rgba(31, 81, 145, .13); font-size: 3.6rem; }
@media (max-width: 575.98px) { .receipt-grid { grid-template-columns: 1fr; } .receipt-stamp { font-size: 3rem; } }
.dues-table td, .dues-table th { white-space: nowrap; }
.dues-table td:first-child { white-space: normal; min-width: 130px; }
.dues-table .alloc-row td { background: #f7f9f8; white-space: normal; }
.alloc-box { display: flex; align-items: center; justify-content: flex-end; gap: .6rem; flex-wrap: wrap; }
.alloc-box label { font-weight: 600; font-size: .85rem; margin: 0; }
.alloc-box .form-control { width: 150px; }
.cashier-form .form-control[data-amount] { font-size: 1.15rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.den-table td { padding-top: .2rem; padding-bottom: .2rem; }
.lines-table td { min-width: 0; }
.soa-pay { border: 1px solid var(--line); border-radius: 6px; padding: .6rem .8rem; background: #f7f9f8; font-size: .85rem; }
.total-row td { font-weight: 700; border-top: 2px solid var(--line); }
.print-only { display: none; }
@media print { .print-only { display: flex; } .receipt-sheet { page-break-inside: avoid; } }
.gateway-card .card-header { background: #f4f7fb; }
.doc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.doc-scroll > .doc-table { min-width: 520px; }
@media print { .doc-scroll { overflow: visible; } .doc-scroll > .doc-table { min-width: 0; } }
