/* Trang Doanh thu chi tiết (/revenue, revenue/MoneyFormView) và Doanh thu (/money, money/MoneyFormView), theo giao diện của hệ thống
   mẫu. Thanh công cụ, thanh tổng dùng chung (revenue/RevenueParts.js); bảng Doanh thu ở phần .mn-* cuối file */
.rv-page { --rv-head: #17a2b8; --rv-head-ink: #fff; --rv-line: #fff; --rv-band: #eaf1fb; --rv-ink: #344155; --rv-muted: #5c6678;
  --rv-thu: #ff2525; --rv-tra: #3524c9; --rv-win: #17a2b8; margin: 10px; color: var(--rv-ink); font-size: 13px; }
.rv-page .rv-thu { color: var(--rv-thu); }
.rv-page .rv-tra { color: var(--rv-tra); }
.rv-win { color: var(--rv-win); font-weight: 700; }
.rv-bet { color: var(--rv-thu); font-weight: 700; }

.rv-toolbar { display: grid; gap: 10px; margin-bottom: 12px; }
.rv-check { display: inline-flex; align-items: center; gap: 6px; margin: 0; cursor: pointer; white-space: nowrap; }
.rv-check input { width: 16px; height: 16px; margin: 0; }
.rv-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rv-date-fields-default { display: contents; }
.rv-date { position: relative; width: 240px; max-width: 100%; }
.rv-date .form-control { height: 38px; padding-right: 34px; border-radius: 6px; }
.rv-date i { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: var(--rv-muted); pointer-events: none; }
.rv-quick { display: flex; flex-wrap: wrap; gap: 4px; }
.rv-button { min-width: 112px; height: 38px; padding: 0 14px; border: 0; border-radius: 4px; background: var(--rv-head); color: var(--rv-head-ink); font-size: 14px; }
.rv-button:hover { filter: brightness(.95); }
.rv-button:focus-visible, .rv-icon:focus-visible { outline: 2px solid #1b6f88; outline-offset: 2px; }
.rv-options { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.rv-search-label { margin: 0; }
.rv-search { width: 230px; max-width: 100%; height: 30px; font-size: 13px; }

.rv-table-scroll { overflow-x: auto; border-radius: 4px; box-shadow: 0 1px 2px rgba(31, 52, 84, .06); }
.rv-table { width: 100%; min-width: 1240px; border-collapse: collapse; background: #fff; font-variant-numeric: tabular-nums; }
.rv-table th, .rv-table td { padding: 9px 12px; border: 1px solid var(--rv-line); text-align: left; white-space: nowrap; vertical-align: middle; }
.rv-table thead th { background: var(--rv-head); color: var(--rv-head-ink); font-weight: 700; text-align: center; border-color: rgba(255, 255, 255, .35);
  line-height: 1.35; white-space: normal; }
.rv-table thead tr:first-child th { padding-block: 12px; }
.rv-table tbody th { font-weight: 400; }
.rv-member-body + .rv-member-body { border-top: 2px solid #c9d6e6; }
.rv-member { background: var(--rv-band); color: #2a8fc0; }
/* Tên dài (kể cả liền một khối) xuống dòng trong cột, không kéo rộng bảng */
.rv-member-name { width: 100%; white-space: normal; overflow-wrap: anywhere; word-break: break-word; line-height: 1.35; }
.rv-star { color: var(--rv-thu); }
.rv-region { background: var(--rv-band); text-align: center !important; }
/* Dòng Xác / Tiền cược nền xanh nhạt, Qua cò / Trúng nền sáng như bảng mẫu; các miền cùng màu */
.rv-row-real_price > *, .rv-row-bet_price > * { background: var(--rv-band); }
.rv-row-bonus_price > *, .rv-row-win > * { background: #f7f9fc; }
.rv-row > .rv-member, .rv-row > .rv-region { background: var(--rv-band); }
.rv-row > .rv-total, .rv-row > .rv-actions { background: #f7f9fc; }
/* 3 cột trái (Khách, Miền, tên dòng) đứng yên khi cuộn ngang bảng; độ rộng cố định để tính vị trí dính */
.rv-table .rv-member, .rv-table .rv-region, .rv-table .rv-label { position: sticky; z-index: 2; box-sizing: border-box; }
.rv-table .rv-member { left: 0; width: 104px; min-width: 104px; max-width: 104px; }
.rv-table .rv-region { left: 104px; width: 64px; min-width: 64px; max-width: 64px; }
.rv-table .rv-label { left: 168px; width: 96px; min-width: 96px; max-width: 96px; box-shadow: 3px 0 4px -2px rgba(31, 52, 84, .15); }
.rv-table thead .rv-member, .rv-table thead .rv-region, .rv-table thead .rv-label { z-index: 3; }
.rv-sum > .rv-sum-lead { background: var(--rv-band); }
/* 3 cột phải (Tổng, Thu/Trả, nút xem / sao chép) cũng đứng yên ở mép phải, bảng rộng hơn màn hình vẫn thấy */
.rv-table .rv-col-total, .rv-table .rv-col-settle, .rv-table .rv-actions { position: sticky; z-index: 2; box-sizing: border-box; }
.rv-table .rv-actions { right: 0; width: 64px; min-width: 64px; max-width: 64px; }
.rv-table .rv-col-settle { right: 64px; width: 160px; min-width: 160px; max-width: 160px; }
.rv-table .rv-col-total { right: 224px; width: 170px; min-width: 170px; max-width: 170px; box-shadow: -3px 0 4px -2px rgba(31, 52, 84, .15); }
.rv-table thead .rv-col-total, .rv-table thead .rv-col-settle, .rv-table thead .rv-actions { z-index: 3; }
.rv-sum td { background: var(--rv-band); text-align: center !important; padding-block: 12px; }
.rv-total { line-height: 1.7; }
.rv-total > span, .rv-settle > span { display: block; }
.rv-settle > span:first-child { font-weight: 700; }
.rv-actions { text-align: center !important; }
.rv-icon { display: block; margin: 10px auto; padding: 4px; border: 0; background: none; color: #2a8fc0; font-size: 19px; line-height: 1; }
.rv-icon:hover { color: #1b6f88; }
.rv-empty { margin: 0; padding: 24px; color: var(--rv-muted); text-align: center; }

/* Layout chung (sb-admin-2.css) để #content-wrapper overflow-x: hidden nên nó thành khung cuộn và thanh tổng không dính theo màn hình.
   Riêng trang này dùng clip: vẫn cắt phần tràn ngang nhưng không tạo khung cuộn */
#wrapper #content-wrapper:has(.rv-page) { overflow-x: clip; }
/* Tổng cuối trang dính đáy màn hình khi danh sách khách dài, cuộn tới cuối thì về đúng chỗ */
.rv-footer { position: sticky; bottom: 0; z-index: 5; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px 16px;
  margin-top: 14px; padding: 12px 16px; border-top: 1px solid var(--rv-line); background: #fff; box-shadow: 0 -4px 12px rgba(31, 52, 84, .08);
  font-size: 14px; font-weight: 700; }
/* Điện thoại: nằm trên thanh tab đáy (navigation.css) */
.tts-has-bottombar .rv-footer { bottom: calc(var(--tts-bottombar-height, 0px) + env(safe-area-inset-bottom)); }
/* Nút cuộn lên đầu trang (.scroll-to-top) đặt cao hơn thanh tổng, kể cả khi thanh tổng có thêm dòng Hồi / Còn lại */
.tts-shell:has(.rv-page) .scroll-to-top { bottom: 112px; z-index: 6; }
.tts-shell.tts-has-bottombar:has(.rv-page) .scroll-to-top { bottom: calc(var(--tts-bottombar-height) + env(safe-area-inset-bottom) + 150px); }
.rv-footer dl { margin: 0; }
.rv-footer dl > div { display: flex; gap: 4px; }
.rv-footer dt { font-weight: 700; }
.rv-footer dd { margin: 0; }

/* Bảng Doanh thu: mỗi khách một dòng, các khối miền cách nhau một cột trống */
.mn-scroll { box-shadow: none; }
.mn-table { width: 100%; min-width: 1100px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.mn-table th, .mn-table td { padding: 9px 10px; border: 1px solid var(--rv-line); background: var(--rv-band); text-align: left; vertical-align: top;
  white-space: nowrap; }
.mn-table thead th { background: var(--rv-head); color: var(--rv-head-ink); font-weight: 700; text-align: center; text-transform: uppercase;
  vertical-align: middle; border-color: #fff; }
.mn-table .mn-gap { width: 24px; min-width: 24px; padding: 0; border: 0; background: transparent; }
.mn-table tbody th { font-weight: 400; }
/* Dòng khách xen kẽ xanh nhạt / trắng cho dễ dò theo hàng; rê chuột đậm hơn. Cột trống giữa các miền giữ trong suốt */
.mn-table tbody tr:nth-child(even) > *:not(.mn-gap) { background: #fff; }
.mn-win { padding: 0; border: 0; background: none; color: var(--rv-head); font: inherit; cursor: pointer; }
.mn-win:hover { text-decoration: underline; }
.mn-win:focus-visible { outline: 2px solid #1b6f88; outline-offset: 2px; }
/* STT, Khách đứng yên bên trái; Tổng thu/trả đứng yên bên phải, nút thao tác cuộn theo bảng */
.mn-table .mn-stt, .mn-table .mn-member, .mn-table .mn-settle { position: sticky; z-index: 2; box-sizing: border-box; }
.mn-table .mn-stt { left: 0; width: 48px; min-width: 48px; max-width: 48px; text-align: center; }
.mn-table .mn-member { left: 48px; width: 104px; min-width: 104px; max-width: 104px; color: #2a8fc0; box-shadow: 3px 0 4px -2px rgba(31, 52, 84, .15); }
.mn-table .mn-actions { position: static; width: 64px; min-width: 64px; max-width: 64px; text-align: center; vertical-align: middle; }
.mn-table .mn-actions .rv-icon { margin: 4px auto; }
.mn-table .mn-settle { right: 0; width: 150px; min-width: 150px; max-width: 150px; box-shadow: -3px 0 4px -2px rgba(31, 52, 84, .15); }
.mn-table thead .mn-stt, .mn-table thead .mn-member, .mn-table thead .mn-settle, .mn-table thead .mn-actions { z-index: 3; color: var(--rv-head-ink); }

/* Popup /money tái sử dụng .msg-modal của Tin nhắn, chỉ bổ sung kích thước và lưới riêng. */
.money-message-modal .modal-dialog { width: calc(100% - 40px); max-width: 1400px; margin: 24px auto; }
.money-message-modal.money-modal-compact .modal-dialog { max-width: 720px; }
.money-message-modal .modal-content { width: 100%; }
.money-message-modal .modal-footer .btn-secondary { order: -1; margin-right: auto; }
.money-message-modal .money-message-link { display: block; min-height: 0; padding: 0; text-align: left; white-space: normal; overflow-wrap: anywhere; font-weight: 400; }
.money-message-modal .modal-body.row { margin: 0; align-content: flex-start; }
.money-message-modal .modal-body > .col-md-12 { padding-inline: 0; }
.money-message-modal .modal-body > .table-responsive { margin-top: 12px; }
.money-message-modal .form-control[readonly] { background: #f1f5f9; color: var(--tts-muc, #23334e); }
.money-message-modal .modal-body > .row { width: 100%; margin: 0; }
.money-win-metrics { margin-bottom: 4px; font-size: 0; }
.money-win-metrics > span { display: inline-flex; align-items: center; gap: 6px; margin: 0 8px 8px 0; padding: 7px 10px; border: 1px solid var(--tts-vien, #e4e9f0); border-radius: 8px; color: #526580; background: #f4f8fd; font-size: 12px; }
.money-win-metrics b { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; min-height: 26px; margin-left: 2px; padding: 2px 6px; border-radius: 7px; color: var(--tts-navy, #22356b); background: #dfedfc; font-variant-numeric: tabular-nums; font-size: 16px; font-weight: 700; line-height: 1.2; }
.money-message-modal .money-win-body > .money-win-table-wrap { margin-top: 0; }
.money-message-modal .money-win-table { min-width: 740px; table-layout: auto; font-size: 13px; }
.money-message-modal .money-win-table :is(th, td) { padding: 10px 12px; }
.money-win-modal .money-win-body { display: flex; flex-direction: column; overflow: hidden; min-height: 0; }
.money-win-modal .money-win-metrics { flex-shrink: 0; }
.money-win-modal .money-win-table-wrap { flex: 1 1 auto; min-height: 0; max-height: 60vh; overflow: auto; overscroll-behavior: contain; }
.money-win-modal .money-win-table :is(th, td) { font-size: 13px; }
.money-win-modal .money-win-table .money-win-value { color: var(--tts-navy, #22356b); font-weight: 700; }
.money-page .mn-table .rv-tra { color: var(--rv-tra); }
#app .money-win-modal .money-win-table { clip-path: none; }
.money-win-table .money-win-index { width: 48px; text-align: center; color: #64748b; }
.money-win-table .money-win-content { min-width: 160px; max-width: 320px; overflow-wrap: anywhere; }
.money-win-table .money-win-number { width: 100px; text-align: center; }
.money-win-number-tag { display: inline-block; padding: 3px 8px; border-radius: 6px; color: var(--tts-navy, #22356b); background: #e9f1fc; font-weight: 700; font-variant-numeric: tabular-nums; }
.money-win-table .money-win-amount { width: 140px; text-align: right; white-space: nowrap; }
.money-win-coefficient { display: inline-block; margin-left: 6px; color: #64748b; font-size: 11px; }
.money-win-table .money-win-action { width: 52px; text-align: center; }
.money-win-detail { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid #d9e5f2; border-radius: 8px; color: var(--tts-xanh, #146db1); background: #fff; cursor: pointer; }
.money-win-detail:hover { color: var(--tts-navy, #22356b); background: #e9f2fd; }
.money-win-table-wrap:focus-visible { outline: 2px solid var(--tts-xanh, #146db1); outline-offset: 2px; }
.money-message-regions { display: flex; gap: 4px; margin-bottom: 14px; padding: 4px; border: 1px solid #dce6f1; border-radius: 10px; background: #f4f8fd; }
.money-message-regions button { flex: 1; min-height: 38px; padding: 6px 10px; border: 0; border-radius: 7px; background: transparent; color: #526580; font-weight: 600; cursor: pointer; }
.money-message-regions button.is-active { background: var(--tts-xanh, #146db1); color: #fff; }
.money-message-regions button span { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; margin-left: 8px; padding: 0 7px; border-radius: 99px; background: #dce7f5; color: var(--tts-navy, #22356b); font-size: 12px; font-weight: 750; font-variant-numeric: tabular-nums; }
.money-message-regions button.is-active span { background: #fff; color: var(--tts-xanh, #146db1); }
.money-messages-table { min-width: 960px; }
.money-message-list-modal .modal-body { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.money-message-list-modal .money-message-regions { flex-shrink: 0; }
.money-message-list-modal .money-message-list-scroll { flex: 1 1 auto; min-height: 0; max-height: 60vh; overflow: auto; overscroll-behavior: contain; }
#app .money-message-list-modal .money-messages-table { clip-path: none; }
.money-messages-table .money-message-index { width: 45px; text-align: center; }
.money-message-content { min-width: 180px; max-width: 300px; }
.money-message-content .money-message-link { width: 100%; }
.money-message-preview { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; max-height: 3em; line-height: 1.5; text-align: left; }
.money-message-values { min-width: 170px; line-height: 1.8; font-variant-numeric: tabular-nums; }
.money-message-values > span { display: inline-block; white-space: nowrap; }
.money-message-time { white-space: nowrap; font-variant-numeric: tabular-nums; }
.money-message-status { display: inline-block; padding: 4px 8px; border-radius: 6px; background: #e7f5ed; color: #166534; font-size: 12px; font-weight: 600; white-space: nowrap; }
.money-message-status.is-danger { background: #fcebed; color: #b91e23; }
.money-message-status.is-pending { background: #fff4d6; color: #854d0e; }
.money-message-modal.money-copy-modal .modal-dialog { width: calc(100% - 32px); max-width: 760px !important; }
.money-copy-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 24px; margin-bottom: 16px; }
.money-copy-controls .money-copy-debt { flex: 0 1 260px; margin: 0; }
.money-copy-options { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.money-copy-modal .money-copy-preview { min-height: 260px; max-height: 50vh; background: #f8fafc; font-size: 13px; line-height: 1.8; resize: vertical; }
@media (max-width: 767px) {
  .money-message-modal .modal-dialog { width: calc(100% - 16px); margin: 8px auto; }
  .money-message-modal .modal-footer { flex-wrap: wrap; }
}

/* /money: cùng hệ màu navy / xanh của Danh bạ; giữ màu nghiệp vụ thu, trả, trúng. */
.money-page { --money-accent: var(--tts-xanh, #146db1); --money-navy: var(--tts-navy, #22356b); --money-line: #e1e8f0;
  --rv-thu: #ff2525; --rv-tra: #3524c9; --rv-win: #17a2b8; --rv-ink: #344155;
  margin: 0; padding: 20px 24px 28px; background: var(--tts-nen, #f4f6fa); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.money-page { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; }
.money-page .money-data, .money-page .mn-scroll, .money-page .rv-toolbar-inline,
.money-page .rv-filter, .money-page .rv-date-fields, .money-summary-space { box-sizing: border-box; max-width: 100%; min-width: 0; }
.money-page .mn-scroll { width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.money-page .rv-toolbar { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; padding: 14px 16px; margin-bottom: 16px; border: 1px solid var(--money-line); border-radius: 12px; background: #fff; gap: 14px 18px; box-shadow: 0 2px 8px #23334e03; }
.money-page .rv-toolbar > .rv-check { font-size: 12px; color: #61738b; }
.money-page .rv-filter { gap: 8px; }
.money-page .rv-date { width: 190px; }
.money-page .form-control { border-color: #dbe3ed; border-radius: 8px; color: #23334e; font-size: 13px; background-color: #fafcfe; }
.money-page .form-control:focus { border-color: var(--money-accent); box-shadow: 0 0 0 3px #146db115; }
.money-page .rv-quick { gap: 3px; padding: 3px; border: 1px solid #e7edf4; border-radius: 9px; background: #f5f8fc; }
.money-page .rv-button { min-width: 80px; height: 32px; padding: 0 12px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #526984; font-size: 12px; font-weight: 600; transition: background .15s, border-color .15s; }
.money-page .rv-apply { background: var(--tts-do, #b91e23); border-color: var(--tts-do, #b91e23); color: #fff; height: 38px; min-width: 68px; }
.money-page .rv-button:hover { background: #eaf3fb; border-color: #adcde5; filter: none; }
.money-page .rv-apply:hover { background: var(--tts-do-dam, #a11b24); border-color: var(--tts-do-dam, #a11b24); color: #fff; }
.money-page .rv-quick .rv-button.is-active { background: #fff; color: var(--money-accent); border-color: #d4e3f1; box-shadow: 0 1px 3px #23334e0b; }
.money-page .rv-quick .rv-button { min-width: 74px; padding-inline: 10px; }
.money-page .rv-quick { margin-left: 4px; }
.money-page .rv-options .rv-check input { width: 14px; height: 14px; }
.money-page .rv-options .rv-check:has(input:checked) { box-shadow: inset 0 0 0 1px #b8d4ed; }
.money-page .rv-toolbar { gap: 10px 14px; padding: 12px 14px; }
.money-page .rv-options { padding-top: 10px; }
.money-page .rv-options { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid #edf1f6; gap: 10px; }
.money-page .rv-options .rv-check { min-height: 34px; padding: 6px 10px; border: 1px solid transparent; border-radius: 7px; background: #f6f8fb; color: #5b6e86; font-size: 12px; transition: background .15s; }
.money-page .rv-options .rv-check:hover { background: #edf3fa; }
.money-page .rv-check:has(input:checked) { color: var(--money-accent); background: #edf5fd; border-color: #bdd7ed; }
.money-page .rv-check input { accent-color: var(--money-accent); }
.money-page .rv-search-label { margin-left: auto; color: #65758b; font-size: 12px; }
.money-page .rv-search { height: 36px; }
.money-data { overflow: hidden; border: 1px solid var(--money-line); border-radius: 12px; background: #fff; }
.money-page .mn-scroll { border-radius: 0; scrollbar-color: #a4bfd2 #f1f5f9; }
.money-page .mn-scroll:focus-visible { outline: 2px solid var(--money-accent); outline-offset: -2px; }
.money-page .mn-table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0; font-size: 13px; line-height: 1.55; }
.money-page .mn-table tbody { color: var(--rv-ink); font-size: 13px; font-weight: 400; }
.money-page .mn-table .mn-bet-value { font-weight: 400; }
.money-page .mn-win { font-size: 13px; font-weight: 700; }
.money-page .mn-table th, .money-page .mn-table td { border: 0; border-right: 1px solid #dce5ef; border-bottom: 1px solid #dce5ef; padding: 9px 7px; vertical-align: middle; }
.money-page .mn-table thead th { background: var(--tts-navy, #22356b); color: #fff; font-size: 12px; font-weight: 750; letter-spacing: .3px; padding-block: 12px; border-bottom-color: var(--tts-xanh, #146db1); }
.money-page .mn-table thead tr:nth-child(2) th { background: var(--tts-navy, #22356b); color: #fff; font-size: 11px; font-weight: 700; padding-block: 9px; }
.money-page .mn-table thead .mn-member, .money-page .mn-table thead .mn-stt { color: #fff; }
.money-page .mn-table thead .mn-settle, .money-page .mn-table thead .mn-actions { background: var(--tts-navy, #22356b); color: #fff; }
.money-page .mn-win { color: var(--rv-win); }
.money-page .mn-table .mn-pair { white-space: normal; min-width: 54px; }
.money-page .mn-bet-value, .money-page .mn-commission { display: inline-block; white-space: nowrap; }
.money-page .mn-commission { color: var(--rv-ink); font-size: 13px; }
.money-page .mn-table .rv-settle { font-size: 13px; line-height: 1.7; }
.money-page .mn-table .rv-settle > span { white-space: nowrap; }
.money-page .mn-table tbody tr { --money-row-bg: #eaf1fb; }
.money-page .mn-table tbody tr:nth-child(even) { --money-row-bg: #f3f5f7; }
.money-page .mn-table tbody tr > td:not(.mn-gap),
.money-page .mn-table tbody tr > th:not(.mn-gap) { background: var(--money-row-bg); }
.money-page .mn-table .mn-gap { width: 10px; min-width: 10px; padding: 0; background: #e4eaf1; border: 0; }
.money-page .mn-table thead th:not(.mn-gap) { border-right: 1px solid var(--tts-xanh, #146db1); border-bottom: 1px solid var(--tts-xanh, #146db1); }
.money-page .mn-table tbody td:not(.mn-gap):not(.mn-stt):not(.mn-actions) { text-align: right; }
.money-page .mn-table tbody td > .rv-settle { text-align: right; }
.money-page .mn-table .mn-member { border-right: 1px solid #c8d7e8; }
.money-page .rv-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 150px; gap: 12px; color: #7a8aa0; font-size: 12px; }
.money-page .rv-empty::before { content: ""; display: block; width: 38px; height: 32px; border: 2px solid #c4d3e3; border-radius: 6px; background: repeating-linear-gradient(to bottom, transparent 0 8px, #dce6f1 8px 10px); box-shadow: 0 0 0 10px #f3f7fb; }
.money-page .mn-table .mn-member { color: var(--money-accent); font-weight: 600; }
.money-page .mn-table tbody .mn-stt { color: #475569; }
.money-page .mn-table .mn-stt, .money-page .mn-table .mn-member { position: static; left: auto; box-shadow: none; }
.money-page .mn-table .mn-stt { width: 34px; min-width: 34px; max-width: 34px; }
.money-page .mn-table .mn-member { width: 82px; min-width: 72px; max-width: 100px; }
/* /money: giữ nhận diện khách khi cuộn, lớp bo góc nằm ở khung thay vì cắt bảng sticky. */
#app .money-page:not(.secretary-page) .mn-table { clip-path: none; }
.money-page:not(.secretary-page) .mn-scroll { position: relative; isolation: isolate; }
.money-page:not(.secretary-page) .money-data .mn-scroll { max-height: 70vh; max-height: 70dvh; overflow: auto; overscroll-behavior: contain; }
.money-page:not(.secretary-page) .mn-table thead { position: sticky; top: 0; z-index: 4; }
.money-page:not(.secretary-page) .mn-table .mn-stt { position: sticky; left: 0; z-index: 2; }
.money-page:not(.secretary-page) .mn-table .mn-member { position: sticky; left: 34px; z-index: 2; width: 104px; min-width: 104px; max-width: 104px; box-shadow: 3px 0 4px -2px rgba(31, 52, 84, .15); }
.money-page:not(.secretary-page) .mn-table thead :is(.mn-stt, .mn-member) { z-index: 3; }
/* Tổng/nút không ghim chồng lên vùng dữ liệu; luôn xem được khi cuộn tới cuối bảng. */
.money-page .mn-table .mn-settle, .money-page .mn-table .mn-actions { position: static; box-shadow: none; }
.money-page .mn-table tbody .mn-settle { text-align: right; }
.money-page .mn-table .mn-settle { width: auto; min-width: 108px; max-width: none; }
.money-page .mn-table .mn-actions { min-width: 76px; width: 76px; white-space: nowrap; padding: 6px; }
.money-page .mn-actions .rv-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 0 2px; padding: 0; border: 1px solid #dce6f0; border-radius: 6px; color: var(--money-accent); background: #fff; font-size: 13px; }
@media (pointer: coarse) {
  .money-page .mn-actions .rv-icon { width: 36px; height: 36px; }
  .money-page .mn-table .mn-actions { min-width: 92px; }
}
.money-page .mn-actions .rv-icon:hover { background: #e6f1fc; border-color: #a4c9e6; }
.money-page .rv-footer { position: static; margin-top: 0; padding: 14px 16px; border: 1px solid #c7d5e7; border-top: 1px solid #adbed6; border-radius: 0; background: #dce7f5; box-shadow: none; gap: 12px 24px; font-size: 13px; }
.money-page .money-data { border-radius: 12px; overflow: hidden; }
.money-page .rv-footer dl { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.money-page .rv-footer dl > div { justify-content: flex-start; align-items: baseline; gap: 5px; line-height: 1.8; }
.money-page .rv-footer dl > div:first-child { flex-direction: row; gap: 5px; }
.money-page .rv-footer dl > div:first-child dd { font-size: 13px; font-weight: 700; line-height: 1.8; letter-spacing: 0; }
.money-page .rv-footer dt { color: var(--tts-navy, #22356b); font-size: 12px; }
.money-page .rv-footer dd { font-variant-numeric: tabular-nums; }
.money-summary-space { margin: 0 0 12px; }
.money-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 0; background: transparent; }
.money-summary-item { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #dce6f1; border-radius: 12px; background: #f9fbfe; }
.money-summary-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 34px; height: 34px; border-radius: 10px; color: var(--tts-xanh, #146db1); background: #e9f2fd; font-size: 16px; font-weight: 750; }
.money-summary-main { flex: 1 0 auto; min-width: max-content; margin: 0; }
.money-summary-main dt { margin-bottom: 5px; color: #526580; font-size: 12px; font-weight: 400; }
.money-summary-main dd { margin: 0; font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow-wrap: normal; line-height: 1.3; }
.money-summary-extra { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: baseline; gap: 3px 12px; flex: 1 0 auto; min-width: max-content; margin: 0; padding-left: 10px; border-left: 1px solid #e2e9f2; font-variant-numeric: tabular-nums; }
.money-summary-extra dt { min-width: 0; color: #526580; font-size: 12px; font-weight: 400; }
.money-summary-extra dd { min-width: 0; margin: 0; font-size: 13px; font-weight: 600; text-align: right; white-space: nowrap; overflow-wrap: normal; }
.money-summary-item.is-all { background: #fff8fa; border-color: #ecdde3; }
.money-summary-item.is-all .money-summary-icon { color: var(--tts-do, #b91e23); background: #fce9ed; font-size: 22px; }
/* Các báo cáo cùng bộ lọc, tổng phía trên và màu trang /money. */
.revenue-detail-page .rv-table-scroll { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; min-height: 100vh; min-height: 100dvh; max-height: none; overflow: visible; border: 1px solid #dce5ef; border-radius: 10px; }
.revenue-detail-page .rv-table thead { position: sticky; top: 0; z-index: 4; background: var(--tts-navy, #22356b); }
.revenue-detail-page .rv-table { width: 100%; min-width: 0; max-width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.revenue-detail-page .rv-table :is(th, td) { border-width: 0 1px 1px 0; }
.revenue-detail-page .rv-table :is(th, td) { padding-inline: 5px; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.revenue-detail-page .rv-table .rv-member { width: 80px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-region { width: 42px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-label { width: 66px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-col-total { width: 110px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-col-settle { width: 110px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-actions { width: 42px; min-width: 0; max-width: none; }
.revenue-detail-page .rv-table .rv-sum td { white-space: normal; }
@media (max-width: 1100px) {
  .revenue-detail-page .rv-table { min-width: 1100px; }
}
/* Bảng nhiều cột được bo ở khung cuộn, không cắt nội dung bằng clip-path trên bảng. */
#app .revenue-detail-page .rv-table { clip-path: none; border-radius: 0; }
.revenue-detail-page .rv-table .rv-member,
.revenue-detail-page .rv-table .rv-region,
.revenue-detail-page .rv-table .rv-label,
.revenue-detail-page .rv-table .rv-actions,
.revenue-detail-page .rv-table .rv-col-total,
.revenue-detail-page .rv-table .rv-col-settle { position: static; left: auto; right: auto; box-shadow: none; }
.revenue-detail-page .rv-actions .rv-icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: 6px auto; padding: 0; border: 1px solid #dce6f0; border-radius: 6px; color: var(--money-accent); background: #fff; font-size: 13px; }
.revenue-detail-page .rv-actions .rv-icon:hover { background: #e6f1fc; border-color: #a4c9e6; }
@media (pointer: coarse) {
  .revenue-detail-page .rv-actions .rv-icon { width: 36px; height: 36px; }
}
.rv-page.money-page.secretary-page { margin: 0; padding: 20px 24px 28px; border-radius: 0; background: var(--tts-nen, #f4f6fa); --rv-head: var(--tts-navy, #22356b); --rv-line: #dce5ef; }
.money-page.secretary-page .secretary-panel { display: flex; flex-direction: column; min-width: 0; }
.money-page.secretary-page .secretary-summary { order: -1; margin: 0 0 12px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.money-page.secretary-page .secretary-summary > dl { margin: 0; padding: 12px; border: 1px solid #dce6f1; border-radius: 12px; background: #f9fbfe; }
.money-page.secretary-page .secretary-summary > dl:last-child { border-color: #ecdde3; background: #fff8fa; }
.money-page.secretary-page .secretary-summary > dl { position: relative; padding-left: 52px; }
.money-page.secretary-page .secretary-summary > dl::before { content: "\f080"; position: absolute; top: 14px; left: 12px; display: flex; align-items: center; justify-content: center; width: 30px; height: 34px; border-radius: 9px; font-family: "Font Awesome 5 Free"; font-weight: 900; color: var(--tts-xanh, #146db1); background: #e9f2fd; }
.money-page.secretary-page .secretary-summary > dl:last-child::before { content: "Σ"; font-family: inherit; font-size: 22px; color: var(--tts-do, #b91e23); background: #fce9ed; }
.money-page.secretary-page .secretary-overview-table { font-size: 13px; }
.money-page.secretary-page .secretary-overview-table .secretary-number { font-size: 13px; }
.money-page.secretary-page .secretary-win { color: var(--rv-win, #17a2b8); }
.money-page.secretary-page .secretary-name { color: var(--tts-xanh, #146db1); }
@media (max-width: 767px) {
  .rv-page.money-page.secretary-page { padding: 12px; }
}
@media (max-width: 1100px) {
  .money-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .money-summary-item { padding: 8px; gap: 7px; }
  .money-summary-main dd { font-size: 16px; }
}
@media (max-width: 480px) {
  .money-summary-icon { display: none; }
  .money-summary-main dt { font-size: 12px; }
  .money-summary-main dd { font-size: 16px; }
  .money-summary-item { flex-wrap: wrap; }
  .money-summary-extra { flex-basis: 100%; padding-left: 0; padding-top: 7px; border-left: 0; border-top: 1px solid #e2e9f2; }
  .money-summary-extra dd { font-size: 12px; }
}
/* Thanh điều khiển cùng ngôn ngữ với trang Tin nhắn: ngày / tìm kiếm / công tắc. */
.money-page .rv-toolbar.rv-toolbar-inline { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px; }
.money-page .rv-range-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 3px; padding: 3px; border: 1px solid #e0e8f1; border-radius: 9px; background: #f5f8fc; }
.money-page .rv-range-choice { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; min-height: 32px; padding: 0 9px; border: 1px solid transparent; border-radius: 6px; color: #526984; background: transparent; font: inherit; font-size: 11px; font-weight: 600; white-space: nowrap; cursor: pointer; transition: color .15s, background .15s, border-color .15s; }
.money-page .rv-range-choice i { font-size: 12px; }
.money-page .rv-range-choice:hover { color: var(--money-accent); background: #eaf2fb; }
.money-page .rv-range-choice.is-active { color: var(--money-accent); border-color: #c8dff2; background: #e8f3fe; box-shadow: 0 1px 2px #23334e05; }
.money-page .rv-range-choice:focus-visible { outline: 2px solid var(--money-accent); outline-offset: 2px; }
.money-page .rv-range-choice:disabled { opacity: .5; cursor: not-allowed; }
.money-page .rv-date-fields { display: flex; align-items: center; gap: 6px; min-width: 0; }
.money-page .rv-date-label { position: absolute; top: 50%; left: 10px; transform: translateY(-50%); margin: 0; color: #78899f; font-size: 11px; }
.money-page .rv-date:has(.rv-date-label) .form-control { padding-left: 37px; }
.money-page .rv-toolbar-inline .rv-filter { order: 0; gap: 6px; }
.money-page .rv-toolbar-inline .rv-date { width: 155px; }
.money-page .rv-toolbar-inline .rv-date .form-control { height: 38px; font-size: 12px; }
.money-page .rv-toolbar-inline .rv-quick { margin-left: 0; border-color: #e5ecf4; }
.money-page .rv-toolbar-inline .rv-quick .rv-button { min-width: 0; padding-inline: 9px; font-size: 11px; }
.money-page .rv-inline-search { order: 1; display: flex; flex: 1 1 200px; align-items: center; gap: 8px; min-width: 160px; min-height: 40px; padding: 0 11px; border: 1px solid #e0e8f1; border-radius: 8px; background: #fff; }
.money-page .rv-inline-search > i { color: #7b8ca3; font-size: 12px; }
.money-page .rv-inline-search:focus-within { border-color: var(--money-accent); box-shadow: 0 0 0 3px #146db110; }
.money-page .rv-inline-search .rv-search { flex: 1; min-width: 0; width: 100%; height: 38px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.money-page .rv-toolbar-inline .rv-options { order: 2; padding: 3px; gap: 3px; border: 1px solid #e5ecf4; border-radius: 8px; background: #f7f9fc; }
.money-page .rv-toolbar-inline .rv-options .rv-check { gap: 5px; min-height: 32px; padding: 5px 7px; border-radius: 5px; background: transparent; font-size: 11px; font-weight: 600; }
.money-page .rv-toolbar-inline .rv-options .rv-check:has(input:checked) { color: var(--money-accent); background: #e8f3fd; box-shadow: none; }
.money-page .rv-toolbar-inline .rv-options input { appearance: none; -webkit-appearance: none; position: relative; flex: 0 0 27px; width: 27px; height: 16px; border: 0; border-radius: 20px; background: #b5c2d2; cursor: pointer; transition: background .15s; }
.money-page .rv-toolbar-inline .rv-options input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px #23334e20; }
.money-page .rv-toolbar-inline .rv-options input:checked { background: var(--money-accent); }
.money-page .rv-toolbar-inline .rv-options input:checked::after { transform: translateX(11px); }
.money-page .rv-toolbar-inline input:focus-visible { outline: 2px solid var(--money-accent); outline-offset: 3px; }
.money-page .rv-toolbar-inline .rv-inline-search input:focus,
.money-page .rv-toolbar-inline .rv-inline-search input:focus-visible { outline: none; box-shadow: none; border: 0; }
.money-page .rv-range-choice,
.money-page .rv-toolbar-inline .rv-quick .rv-button,
.money-page .rv-toolbar-inline .rv-options .rv-check { font-size: 12px; }
.money-page .rv-toolbar-inline .rv-date .form-control { font-size: 13px; }
.money-page .rv-footer dt { font-size: 13px; }
@media (prefers-reduced-motion: reduce) {
  .money-page .rv-toolbar-inline input, .money-page .rv-toolbar-inline input::after { transition: none; }
}
@media (max-width: 767px) {
  .tts-shell:has(.money-page) #wrapper { width: 100%; min-width: 0; }
  .tts-shell:has(.money-page) #content-wrapper { width: 100%; max-width: 100%; flex-basis: 100%; min-width: 0; }
  .money-page .rv-toolbar-inline .rv-options { box-sizing: border-box; min-width: 0; max-width: 100%; flex-wrap: wrap; }
  .money-page .rv-toolbar-inline .rv-quick { box-sizing: border-box; max-width: 100%; }
  .money-page .rv-toolbar-inline .rv-filter { width: 100%; }
  .money-page .rv-range-toggle { flex: 1 1 100%; }
  .money-page .rv-range-choice { flex: 1; min-height: 38px; }
  .money-page .rv-date-fields { flex: 1 1 220px; }
  .money-page .rv-toolbar-inline .rv-date { flex: 1; width: auto; }
  .money-page .rv-toolbar-inline .rv-quick { width: 100%; }
  .money-page .rv-inline-search { flex-basis: 100%; }
  .money-page .rv-toolbar-inline .rv-options { flex: 1; justify-content: space-between; }
  .money-page { padding: 14px 10px 24px; }
  .money-page .rv-toolbar { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  .money-page .rv-date { width: 100%; }
  .money-page .rv-quick { width: 100%; }
  .money-page .rv-quick { margin-left: 0; flex-wrap: nowrap; overflow-x: auto; }
  .money-page .rv-quick .rv-button { flex: 1 0 auto; white-space: nowrap; }
  .money-page .rv-button { min-height: 40px; min-width: 0; flex: 1 1 30%; }
  .money-page .rv-search-label { margin-left: 0; }
  .money-page .rv-search { width: 100%; height: 40px; }
  .money-page .mn-table .mn-stt { position: static; }
  .money-page .mn-table .mn-member { left: 0; }
  .money-page:not(.secretary-page) .mn-table .mn-stt { position: static; }
  .money-page:not(.secretary-page) .mn-table .mn-member { left: 0; }
  .money-page .rv-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; }
  .money-page .rv-footer dl { min-width: 0; padding: 0; }
  .money-page .rv-footer dl > div { flex-wrap: wrap; }
  .money-page .rv-footer dl > div:first-child dd { font-size: 13px; overflow-wrap: anywhere; }
}

@media (max-width: 767px) {
  .rv-page { margin: 8px; }
  .rv-date, .rv-search { width: 100%; }
  .rv-button { flex: 1 1 30%; min-width: 0; }
  .rv-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; padding: 8px 12px; font-size: 12px; }
  /* Màn hình hẹp: cố định cả hai bên thì phần giữa gần như không còn chỗ, nên chỉ giữ cột trái */
  .rv-table .rv-col-total, .rv-table .rv-col-settle, .rv-table .rv-actions { position: static; box-shadow: none; }
  .mn-table .mn-settle, .mn-table .mn-actions { position: static; box-shadow: none; }
}

/* /revenue scrolls with the document; totals and table heading follow together. */
.revenue-detail-page .money-summary-space {
  position: sticky;
  top: var(--tts-header-height, 76px);
  z-index: 6;
  background: var(--tts-nen, #f4f6fa);
  padding-bottom: 8px;
}
.revenue-detail-page .money-summary { margin-bottom: 0; }
.revenue-detail-page .rv-table thead {
  top: calc(var(--tts-header-height, 76px) + var(--revenue-summary-height, 100px));
  z-index: 5;
}
@media (max-width: 1100px) {
  .revenue-detail-page .rv-table { min-width: 0; }
}

