.bank-page, .bank-panel, .bank-dialog {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #263445;
    text-align: left;
}
.bank-page *, .bank-page *::before, .bank-page *::after,
.bank-panel *, .bank-panel *::before, .bank-panel *::after,
.bank-dialog *, .bank-dialog *::before, .bank-dialog *::after { box-sizing: border-box; }
.bank-page { padding: 18px 0 28px; }
.bank-menu-count { display: inline-block; min-width: 21px; margin-left: 5px; padding: 1px 6px; border-radius: 10px; background: #fff2db; color: #885a08; font: 600 12px/18px -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; text-align: center; }
.bank-page h3, .bank-panel h3 { font: 600 26px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; margin: 0 0 6px; }
.bank-page h4, .bank-panel h4 { font: 600 18px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; margin: 0 0 12px; }
.bank-page h3, .bank-page h4, .bank-panel h3, .bank-panel h4, .bank-dialog-header h4 { color: #263445; text-align: left; }
.bank-page p, .bank-panel p { margin: 0 0 12px; }
.bank-page small, .bank-panel small { font-size: 12px; }
.bank-page .btn, .bank-panel .btn, .bank-dialog .btn { font: 500 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; white-space: normal; }
.bank-page a:not(.btn), .bank-panel a:not(.btn) { color: #176dc1; }
.bank-page-header, .bank-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.bank-page-header { margin-bottom: 22px; }
.bank-toolbar { justify-content: flex-start; }
.bank-muted { color: #68788b; }
.bank-card { border: 1px solid #dfe5ec; border-radius: 8px; background: #fff; padding: 22px; margin-bottom: 20px; box-shadow: 0 2px 5px #20344d06; }
.bank-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.bank-field { grid-column: span 3; min-width: 0; }
.bank-field-wide { grid-column: span 6; }
.bank-field-full { grid-column: 1 / -1; }
.bank-page label, .bank-panel label { display: block; margin-bottom: 6px; text-align: left; font: 600 13px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #435269; }
.bank-page .form-control, .bank-panel .form-control { width: 100%; max-width: 100%; min-height: 40px; font: 400 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; border-color: #cdd6e0; border-radius: 5px; }
.bank-page textarea.form-control, .bank-panel textarea.form-control { min-height: 90px; }
.bank-page .form-control::placeholder, .bank-panel .form-control::placeholder { font-family: inherit; color: #8a98a8; font-weight: 400; }
.bank-page .form-control:focus, .bank-panel .form-control:focus { border-color: #297bca; box-shadow: 0 0 0 3px #297bca1c; }
.bank-page:not(.requisite-payment-card) > .bank-page-header:has(h3) > div:first-child,
.requisite-page-header > div:first-child { flex: 1 0 100%; min-width: 0; text-align: center; }
.bank-page:not(.requisite-payment-card) > .bank-page-header > div > h3,
.requisite-page-header > div > h3 {
    margin: 0 0 12px !important;
    padding: 16px 0;
    border-top: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
    color: #949494;
    text-align: center;
    font: 300 14px/20px "Open Sans", sans-serif;
}
.bank-page:not(.requisite-payment-card) > .bank-page-header:has(h3) > :not(:first-child),
.requisite-page-header > a { margin-left: auto; }
.bank-check { display: flex !important; align-items: flex-start; gap: 9px; margin: 0 !important; font-weight: 400 !important; }
.bank-check input { margin-top: 4px; flex-shrink: 0; }
.bank-check + .bank-check { margin-top: 12px !important; }
.bank-filter-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; border-top: 1px solid #edf0f4; margin-top: 20px; padding-top: 16px; }
.bank-table { margin: 0; font-size: 13px; }
.bank-table th { color: #5b6b80; background: #f6f8fa; font-weight: 600; white-space: nowrap; border-top: 0; }
.bank-table th, .bank-table td { padding: 14px 16px; vertical-align: top; }
.bank-table td { border-color: #edf0f4; }
.bank-table .bank-actions { min-width: 175px; }
.bank-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.bank-account { font: 12px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; color: #68788b; }
.bank-amount { font-size: 20px; font-weight: 600; white-space: nowrap; }
.bank-badge { display: inline-block; padding: 4px 9px; border-radius: 5px; background: #edf2f7; color: #4e6176; font-size: 12px; line-height: 1.5; }
.bank-badge-success { background: #e6f5ed; color: #247547; }
.bank-linked-badge { margin-left: 10px; vertical-align: middle; font-weight: 500; }
a.bank-linked-badge { color: #247547; text-decoration: none; }
a.bank-linked-badge:hover { color: #195b35; background: #d6eddf; }
a.bank-linked-badge:focus-visible { outline: 2px solid #247547; outline-offset: 2px; }
.bank-badge-info { background: #e8f1fc; color: #245d9b; }
.bank-badge-danger { background: #fdebed; color: #b42332; }
.activity-context { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 20px; margin-bottom: 16px; }
.activity-context { padding-bottom: 12px; border-bottom: 1px solid #e6ebf0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #263445; }
.activity-context .q-avatar { background: #e8f1fc !important; color: #245d9b !important; }
.activity-context .activity-chips .bank-badge { padding: 7px 12px; gap: 6px; font-size: 14px; font-weight: 500; border-radius: 7px; }
.activity-context .activity-chips .mdi { font-size: 17px; }
.activity-context > .q-chip { margin: 0; max-width: 100%; }
.activity-context > .q-chip .q-chip__content { white-space: normal; }
.activity-chips { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.activity-chips .bank-linked-badge { margin-left: 0; }
.activity-chips .bank-badge { display: inline-flex; align-items: center; gap: 4px; }
.activity-chips .bank-badge:has(.mdi-web) { background: #e4f1ff; color: #15569b; }
.activity-chips .bank-badge:has(.mdi-instagram) { background: #f4eafa; color: #773393; }
.activity-chips .bank-badge:has(.mdi-pencil) { background: #fff2db; color: #885a08; }
.activity-chips .bank-badge:has(.mdi-package-variant) { background: #ddf5f2; color: #14675e; }
.bank-picker-confirm .bank-form > * { min-width: 0; }
.bank-picker-confirm .bank-form > label:first-of-type { grid-column: 1 / -1; }
.bank-picker-confirm select { text-overflow: ellipsis; }
.bank-badge-warning { background: #fff4d9; color: #84600a; }
.bank-empty { text-align: center; padding: 44px 20px; }
.bank-empty .mdi { display: block; color: #98a8ba; font-size: 34px; margin-bottom: 10px; }
.bank-empty strong { display: block; font-size: 17px; margin-bottom: 6px; }
.bank-empty p { color: #68788b; max-width: 520px; margin: 0 auto 12px; }
.bank-footer { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.bank-note { padding: 12px 16px; border-radius: 6px; background: #f4f7fa; color: #5c6e82; font-size: 13px; }
.bank-page .bank-form, .bank-panel .bank-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.bank-form label { margin: 0; min-width: 0; }
.bank-form label .form-control { margin-top: 6px; }
.bank-form > button, .bank-form > .bank-toolbar, .bank-form > .bank-note { grid-column: 1 / -1; justify-self: start; }
.bank-page dl { margin-bottom: 0; }
.bank-page dt, .bank-page dd { margin-bottom: 14px; overflow-wrap: anywhere; }
.bank-page dt { color: #68788b; font-size: 13px; font-weight: 500; }
.bank-panel { border-radius: 8px; }
.bank-panel summary { cursor: pointer; font-weight: 500; padding: 8px 0; }
.bank-rules ol { margin: 0 0 20px; padding-left: 24px; }
.bank-rules li { padding-left: 4px; margin-bottom: 14px; }
.bank-rules h4:not(:first-child) { margin-top: 22px; }
.bank-panel .card-body { padding: 22px; }
.bank-payment-item { padding: 16px; margin: 14px 0; border: 1px solid #e0e7ef; border-radius: 6px; background: #fafcfe; }
.bank-panel-compact .card-body { padding: 16px 20px; }
.container:has(> .bank-panel-compact) { padding-bottom: 24px; }
.bank-panel .bank-payment-title { font-size: 15px; margin: 0 0 14px; }
.bank-payment-awaiting { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; }
.bank-linked-payment { display: grid; grid-template-columns: minmax(170px, 1fr) minmax(0, 2fr) auto auto; align-items: center; gap: 14px 24px; }
.bank-payment-total { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.bank-payment-total strong { font-size: 20px; font-weight: 600; line-height: 1.3; }
.bank-payment-total .bank-badge { font-size: 11px; padding: 2px 7px; }
.bank-payment-payer { min-width: 0; overflow-wrap: anywhere; }
.bank-payment-caption { display: block; color: #68788b; font-size: 12px; margin-bottom: 3px; }
.bank-linked-payment > .btn { justify-self: end; white-space: nowrap; }
.bank-linked-payment + .bank-linked-payment { margin-top: 14px; padding-top: 14px; border-top: 1px solid #edf0f4; }
.bank-dialog { width: min(1100px, 95vw); max-height: 90vh; max-height: 90dvh; overflow: hidden; padding: 0; border: 0; border-radius: 10px; box-shadow: 0 20px 80px #152b4640; }
.bank-dialog[open] { display: flex; flex-direction: column; }
.bank-dialog::backdrop { background: #172c4870; }
html:has(.bank-dialog[open]) { overflow: hidden; }
.bank-dialog-header { flex-shrink: 0; position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 16px; background: white; padding: 16px 24px; border-bottom: 1px solid #e1e7ef; }
.bank-dialog-header h4 { margin: 0; font: 600 18px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.bank-dialog-body { min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; padding: 0 24px 24px; }
.bank-dialog .bank-page { padding-bottom: 0; }
.bank-dialog .bank-page h3 { font-size: 22px; }
.bank-dialog:has(.bank-document-details) { width: min(760px, 95vw); }
.bank-document-details > .bank-panel { border: 0; box-shadow: none; margin: 0 !important; }
.bank-document-details > .bank-panel > .card-body { padding: 0; }
.bank-document-heading, .bank-payment-item-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.bank-document-heading { margin-bottom: 18px; }
.bank-document-heading h4 { margin: 4px 0 0; font-size: 20px; }
.bank-document-expected { display: flex; flex-direction: column; gap: 3px; }
.bank-document-expected strong { font-size: 18px; }
.bank-document-expected > span { font-size: 12px; }
.bank-document-expectation { padding: 0 0 12px; border-bottom: 1px solid #e6ebf0; }
.bank-document-details .bank-payment-item { padding: 18px; background: #fff; margin: 16px 0; }
.bank-document-data { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
.bank-document-data > div { min-width: 0; }
.bank-document-data .bank-data-wide { grid-column: 1 / -1; }
.bank-document-data dt { font-size: 12px; color: #738196; font-weight: 400; margin: 0 0 4px; }
.bank-document-data dd { margin: 0; overflow-wrap: anywhere; }
.bank-document-details .bank-unlink-controls { border-top: 1px solid #edf0f4; margin-top: 16px; padding-top: 8px; }
.bank-unlink-controls > summary { color: #b42332; font-size: 13px; }
.bank-unlink-controls .bank-form { grid-template-columns: 1fr; }
.bank-document-rule { font-size: 12px; color: #738196; padding: 8px 0; }
.bank-document-audit { border-top: 1px solid #e6ebf0; }
.bank-audit-list { list-style: none; margin: 0; padding: 0; }
.bank-audit-list li { padding: 12px 0; border-bottom: 1px solid #edf0f4; }
.bank-audit-list time { display: block; font-size: 12px; color: #738196; margin-bottom: 4px; }
.bank-audit-list p { margin: 6px 0; }
.bank-document-return { margin: 12px 0 0 !important; font-size: 13px; }
@media (max-width: 540px) { .bank-document-data { grid-template-columns: 1fr; } }
.bank-dialog [data-bank-dialog-status]:empty { display: none; }
.bank-dialog [data-bank-dialog-status]:not(:empty) { padding: 12px 16px; margin-top: 16px; background: #f0f5fa; border-radius: 5px; }
.bank-dialog [aria-busy="true"] { opacity: .6; pointer-events: none; }
@media (max-width: 767px) {
    .bank-linked-payment { grid-template-columns: minmax(0, 1fr) auto; gap: 14px; }
    .bank-payment-payer { grid-column: 1; grid-row: 2; }
    .bank-payment-date { grid-column: 2; grid-row: 2; }
    .bank-linked-payment > .btn { grid-column: 2; grid-row: 1; }
    .bank-page h3 { font-size: 23px; }
    .bank-card, .bank-panel .card-body { padding: 16px; }
    .bank-field, .bank-field-wide { grid-column: span 6; }
    .bank-field-full { grid-column: 1 / -1; }
    .bank-page .bank-form, .bank-panel .bank-form { grid-template-columns: 1fr; }
    .bank-dialog-header { padding: 14px 16px; }
    .bank-dialog-body { padding: 0 16px 16px; }
    .bank-dialog { width: 96vw; max-height: 94vh; max-height: 94dvh; }
}
@media (max-width: 479px) {
    .bank-field, .bank-field-wide { grid-column: 1 / -1; }
    .bank-page-header { align-items: flex-start; }
    .bank-filter-actions { align-items: flex-start; }
}

.bank-payment-item-heading h5 { margin: 0; font-size: 16px; font-weight: 600; }
.bank-comparison { width: 100%; table-layout: fixed; border-collapse: collapse; margin: 16px 0; }
.bank-comparison th, .bank-comparison td { text-align: left; padding: 12px 10px; border-bottom: 1px solid #e6ebf0; vertical-align: top; overflow-wrap: anywhere; font-size: 14px; }
.bank-comparison thead th { background: #f6f8fa; color: #68788b; font-weight: 500; font-size: 12px; }
.bank-comparison th:first-child { width: 26%; }
.bank-comparison tbody th { font-weight: 500; }
.bank-comparison-status, .bank-comparison small { display: block; margin-top: 5px; font-size: 11px; font-weight: 400; }
.bank-comparison small { color: #738196; }
.bank-comparison-status.is-match { color: #18704a; }
.bank-comparison-status.is-different { color: #946200; }
.bank-comparison-purpose { overflow-wrap: anywhere; }
.bank-comparison-purpose > span { display: block; font-size: 12px; margin-bottom: 4px; }
.bank-document-actions { position: relative; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; }
.bank-document-details .bank-document-actions .bank-unlink-controls { display: block; flex: 0 0 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
.bank-document-actions .bank-unlink-controls > summary { position: absolute; top: 12px; right: 0; margin-left: auto; list-style: none; }
.bank-dialog .bank-document-actions > .btn,
.bank-dialog .bank-document-actions summary.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 8px 14px; border-radius: 7px; font-weight: 600; line-height: 22px; text-decoration: none; cursor: pointer; }
.bank-document-actions .btn .mdi { font-size: 18px; line-height: 1; }
.bank-document-actions > .btn-outline-primary,
.bank-document-actions > .btn-outline-secondary { color: #245d9b; background: #f1f6fc; border-color: #bfd2e8; }
.bank-document-actions > .btn:hover { color: #184c83; background: #e5effa; border-color: #8aafd4; }
.bank-document-actions .bank-unlink-controls > summary { color: #b42332; background: #fff7f7; border-color: #e8b9bf; }
.bank-document-actions .bank-unlink-controls > summary:hover { color: #941d29; background: #fdebed; border-color: #d78d98; }
.bank-unlink-controls > summary::-webkit-details-marker { display: none; }
.bank-unlink-body { width: 100%; min-width: 0; padding: 14px; border: 1px solid #efd4d8; border-radius: 8px; background: #fff8f8; }
.bank-unlink-body h5 { margin: 0 0 6px; color: #8f2834; font-size: 14px; font-weight: 600; }
.bank-document-actions .bank-unlink-body .bank-form { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 10px; }
.bank-unlink-body textarea.form-control { min-height: 72px; resize: vertical; }
.bank-unlink-body .bank-form > button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; justify-self: end; min-height: 38px; padding: 7px 12px; border-radius: 6px; font-weight: 600; }
.bank-unlink-controls:not([open]) > .bank-unlink-body { display: none; }
.bank-candidate-table { overflow-x: auto; margin-bottom: 20px; }
.bank-candidate-table .bank-table { min-width: 720px; }
.bank-candidate-selected { background: #e8f1fc; }
.bank-review-filter { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; padding: 14px; }
.bank-review-filter > label { flex: 1; min-width: 220px; margin: 0; }
.bank-review-filter .form-control { margin-top: 5px; }
.bank-review-filter > button { min-height: 40px; border-radius: 6px; }
.bank-linking .bank-page-header { margin-bottom: 12px; }
.bank-payment-brief { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; padding: 12px 14px; background: #f6f8fb; border: 1px solid #e1e7ef; border-radius: 7px; margin-bottom: 8px; overflow-wrap: anywhere; }
.bank-payment-brief > strong { flex: 1; min-width: 0; }
.bank-payment-brief > time { color: #68788b; font-size: 12px; }
.bank-payment-brief > p { flex-basis: 100%; margin: 0; }
.bank-linking .bank-payment-technical { margin-bottom: 12px; }
.bank-payment-technical > summary { cursor: pointer; color: #176dc1; font-size: 13px; }
.bank-linking .bank-payment-technical .bank-card { padding: 14px; margin: 8px 0 0; }
.bank-linking .bank-picker-hint { margin-bottom: 8px; font-size: 12px; }
.bank-page .bank-candidate-search { grid-template-columns: minmax(0, 1fr) max-content; align-items: end; gap: 8px; margin: 0 0 16px; }
.bank-candidate-search > button { grid-column: auto; min-height: 40px; }
.bank-linking .bank-candidate-table { margin-bottom: 12px; }
.bank-linking .bank-candidate-table th, .bank-linking .bank-candidate-table td { padding: 10px 12px; }
.bank-linking .bank-candidate-table .bank-empty { padding: 18px 12px; }
.bank-page .bank-filters { padding: 16px; }
.bank-filters .bank-grid { gap: 10px 12px; }
.bank-filters label { margin-bottom: 4px; }
.bank-filters .form-control { min-height: 38px; }
.bank-filters .bank-filter-actions { margin-top: 12px; padding-top: 12px; gap: 10px; }
.bank-page.requisite-payment-card { padding: 0; border-radius: .25rem; overflow: hidden; }
.requisite-payment-card > .bank-page-header { padding: 16px 20px; margin: 0; background: rgba(0,0,0,.03); border-bottom: 1px solid rgba(0,0,0,.125); }
.requisite-payment-card .bank-page-header h3 { font-size: 16px; margin-bottom: 4px; }
.requisite-payment-card > .bank-filters { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.requisite-payment-card > .bank-card.p-0 { margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.requisite-payment-card .table td { vertical-align: middle; }
.requisite-payment-card .table .bank-actions { min-width: 160px; }
.requisite-payment-card > .bank-footer { margin: 0; padding: 12px 20px; background: rgba(0,0,0,.03); border-top: 1px solid rgba(0,0,0,.125); }
.requisite-payment-card > .bank-note { margin: 0 !important; border-radius: 0; padding: 10px 20px; }
.requisite-payment-card[aria-busy="true"] .bank-filters, .requisite-payment-card[aria-busy="true"] .bank-footer { opacity: .6; pointer-events: none; }
@media (min-width: 1100px) {
    .requisite-payment-card .bank-filters { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 10px 12px; }
    .requisite-payment-card .bank-filters .bank-grid { display: contents; }
    .requisite-payment-card .bank-filters .bank-filter-actions { grid-column: 7 / -1; align-self: end; margin: 0; padding: 0; border: 0; }
    .requisite-payment-card .bank-filter-actions .bank-toolbar { gap: 8px; }
}
.bank-page .bank-unmatched-toggle { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 38px; margin: 0; padding: 8px 10px; border: 1px solid #cdd6e0; border-radius: 5px; cursor: pointer; }
.bank-switch { appearance: none; flex-shrink: 0; position: relative; width: 34px; height: 20px; margin: 0; border: 0; border-radius: 20px; background: #b8c5d4; cursor: pointer; }
.bank-switch::before { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
.bank-switch:checked { background: #1976d2; }
.bank-switch:checked::before { transform: translateX(14px); }
.bank-switch:focus-visible { outline: 2px solid #297bca; outline-offset: 3px; }
.bank-page :is(.bank-filters, .bank-picker-confirm, .bank-actions) .btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px; padding: 7px 12px; border-radius: 6px; font-weight: 600; }
.bank-page :is(.bank-filters, .bank-picker-confirm, .bank-actions) .btn .mdi { font-size: 17px; line-height: 1; }
.bank-filters .btn-outline-secondary { color: #526174; background: #f6f8fb; border-color: #cdd6e0; }
.bank-filters .btn-primary, .bank-actions .btn-primary { box-shadow: 0 2px 4px #176dc126; }
.bank-page .bank-picker-confirm { padding: 12px 14px; margin-bottom: 14px; }
.bank-picker-confirm > summary { cursor: pointer; color: #526174; font-size: 13px; font-weight: 500; }
.bank-picker-confirm .bank-form { gap: 10px; margin-top: 12px; }
@media (min-width: 768px) {
    .bank-picker-confirm .bank-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
    .bank-picker-confirm .bank-form > label:first-of-type,
    .bank-picker-confirm .bank-form > label:last-of-type { grid-column: span 2; }
    .bank-picker-confirm .bank-form > button { grid-column: auto; min-height: 40px; justify-self: stretch; }
}
@media (min-width: 768px) {
    .bank-filters .bank-field:has([name="amount"]), .bank-filters .bank-field:has([name="status"]) { grid-column: span 3; }
    .bank-picker-filters .bank-field { grid-column: span 3; }
}
@media (max-width: 540px) {
    .bank-document-actions .bank-unlink-controls > summary { position: static; width: max-content; max-width: 100%; }
    .bank-unlink-controls[open] .bank-unlink-body { margin-top: 12px; }
    .bank-comparison thead { display: none; }
    .bank-comparison, .bank-comparison tbody { display: block; }
    .bank-comparison tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid #e6ebf0; padding: 10px 0; }
    .bank-comparison th:first-child { grid-column: 1 / -1; width: auto; }
    .bank-comparison th, .bank-comparison td { display: block; padding: 5px; border: 0; }
    .bank-comparison td::before { content: attr(data-label); display: block; color: #738196; font-size: 11px; margin-bottom: 4px; }
    .bank-comparison-status { display: inline; margin-left: 8px; }
}

.reconciliation-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 16px; }
.reconciliation-filters .bank-field { grid-column: auto; }
.reconciliation-table { font-size: 14px; text-align: left; }
.reconciliation-table th { font-size: 12px; color: #68788b; white-space: normal; }
.reconciliation-table th, .reconciliation-table td { padding: 16px; vertical-align: middle; }
.reconciliation-table td { min-width: 145px; max-width: 250px; overflow-wrap: anywhere; }
.reconciliation-table .form-control { min-width: 170px; }
.reconciliation-number { font-weight: 600; }
.reconciliation-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.reconciliation-actions .btn { display: inline-flex; align-items: center; gap: 5px; border-radius: 6px; white-space: nowrap; }
.reconciliation-pagination { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
@media (max-width: 767px) {
    .reconciliation-filters { grid-template-columns: 1fr; }
    .reconciliation-filters .bank-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
    .reconciliation-table th, .reconciliation-table td { padding: 12px; }
}
.requisite-payment-card table { table-layout: fixed; min-width: 850px; }
.requisite-payment-card tbody tr { height: 112px; }
.requisite-payment-card td { overflow-wrap: anywhere; }
.requisite-payment-card .bank-payer, .requisite-payment-card .bank-purpose { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.requisite-payment-card td .bank-badge { max-width: 100%; display: -webkit-box; width: fit-content; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.requisite-payment-card tbody tr:has(.bank-empty) { height: 336px; }

.bank-page > .bank-page-header:has(> .bank-rules-trigger) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.bank-page > .bank-page-header:has(> .bank-rules-trigger) > div:first-child { display: contents; }
.bank-page > .bank-page-header:has(> .bank-rules-trigger) h3 { grid-column: 1 / -1; }
.bank-page .bank-rules-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 5px 10px; min-height: 32px; border-color: #dfe5ec; border-radius: 6px; background: #f6f8fa; color: #526174; white-space: nowrap; }
.bank-page .bank-rules-trigger:hover { background: #e9eff5; border-color: #b9c8d8; color: #263445; }
.requisite-bulk-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.requisite-bulk-actions form { display: flex; align-items: center; gap: 16px; margin: 0; }
.requisite-bulk-actions form > div { flex: 1; min-width: 0; }
.requisite-bulk-actions form + form { border-left: 1px solid #e6ebf0; padding-left: 20px; }
.requisite-bulk-actions .btn { white-space: nowrap; border-radius: 6px; }
.requisite-bulk-actions small { margin-top: 4px; }
.requisite-list-table { min-width: 780px; }
.requisite-list-table th { font-size: 12px; }
.requisite-list-table th, .requisite-list-table td { padding: 14px 16px; vertical-align: middle; }
.requisite-iban { font: 12px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
@media (max-width: 767px) {
    .requisite-bulk-actions { grid-template-columns: 1fr; }
    .requisite-bulk-actions form { flex-wrap: wrap; }
    .requisite-bulk-actions form + form { border-left: 0; border-top: 1px solid #e6ebf0; padding: 16px 0 0; }
    .requisite-bulk-actions form > div, .requisite-bulk-actions .btn { flex-basis: 100%; }
    .bank-page > .bank-page-header:has(> .bank-rules-trigger) { grid-template-columns: minmax(0, 1fr); }
    .bank-page > .bank-page-header > .bank-rules-trigger { justify-self: end; }
}

.crm-navigation .navbar-header { display: flex; align-items: center; flex-wrap: wrap; }
.crm-navigation .navbar-collapse { flex-wrap: wrap; }
.crm-menu-toggle { align-items: center; gap: 6px; font-size: 14px; padding: 6px 10px; }
@media (max-width: 991px) {
    .crm-navigation { padding: 6px 0; }
    .crm-navigation .navbar-header { justify-content: space-between; }
    .crm-navigation .navbar-header > .navbar-brand { margin: 0; padding: 0; }
    .crm-navigation h1 { margin: 0; font-size: 26px; line-height: 36px; }
    .crm-navigation .crm-menu-toggle { display: inline-flex; }
    .crm-navigation .navbar-collapse { flex-basis: 100%; max-height: 70vh; overflow-y: auto; margin-top: 8px; border-top: 1px solid #e6ebf0; }
    .crm-navigation .navbar-collapse > .navbar-brand { display: block; width: 100%; margin: 0; padding: 5px 0; border-bottom: 1px solid #f0f2f5; }
    .crm-navigation .dropdown-toggle, .crm-navigation .crm-nav-link { width: 100%; text-align: left; padding: 8px 10px; }
    .crm-navigation .dropdown-menu { position: static !important; transform: none !important; float: none; width: 100%; margin: 0; box-shadow: none; border: 0; background: #f6f8fa; }
    .crm-navigation .dropdown-item { white-space: normal; padding: 9px 16px; }
    .crm-navigation .dropdown-item h4 { margin: 0; text-align: left; }
    .crm-navigation .navbar-header > .alert { flex-basis: 100%; margin-bottom: 6px; padding: 4px 8px; }
}

.bank-review-controls { display: grid; grid-template-columns: minmax(280px, 1fr) auto; gap: 10px 20px; padding: 14px 16px; align-items: end; }
.bank-review-controls .bank-review-filter { margin: 0; padding: 0; flex-wrap: nowrap; }
.bank-review-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.bank-review-tabs .btn { border-radius: 6px; }
.bank-review-help { grid-column: 1 / -1; margin: 0; color: #68788b; font-size: 13px; }
.bank-review-help summary { cursor: pointer; width: fit-content; }
.bank-review-help p { max-width: 900px; margin: 10px 0 0; }
.bank-review-payment-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.bank-review-payment-header .bank-muted { font-size: 12px; margin-top: 3px; }
.bank-review-purpose { padding: 12px 16px; border-bottom: 1px solid #e6ebf0; font-size: 13px; overflow-wrap: anywhere; }
.bank-review-comparison { font-size: 13px; table-layout: fixed; min-width: 1000px; }
.bank-review-comparison th, .bank-review-comparison td { padding: 14px 12px; vertical-align: top; overflow-wrap: anywhere; }
.bank-review-comparison thead th { color: #68788b; font-size: 12px; font-weight: 500; }
.bank-review-comparison th:first-child { width: 17%; }
.bank-review-comparison th:nth-child(2) { width: 12%; }
.bank-review-comparison th:nth-child(3) { width: 14%; }
.bank-review-comparison th:nth-child(4) { width: 20%; }
.bank-review-comparison th:nth-child(5) { width: 16%; }
.bank-review-comparison th:nth-child(6) { width: 8%; }
.bank-review-comparison th:nth-child(7) { width: 13%; }
.bank-review-comparison tbody th { font-weight: 500; }
.bank-review-source { background: #f5f8fc; }
.bank-review-comparison small { margin-top: 5px; line-height: 1.4; }
.bank-review-match { color: #247547; }
.bank-review-difference { color: #92620c; }
.bank-review-comparison .btn { white-space: nowrap; border-radius: 6px; }
@media (max-width: 767px) {
    .bank-review-comparison { min-width: 0; }
    .bank-review-comparison thead { display: none; }
    .bank-review-comparison, .bank-review-comparison tbody { display: block; width: 100%; }
    .bank-review-comparison tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px; border-top: 1px solid #dfe5ec; }
    .bank-review-comparison tbody th, .bank-review-comparison td { display: block; width: auto; border: 0; padding: 8px; }
    .bank-review-comparison tbody th, .bank-review-comparison td:last-child { grid-column: 1 / -1; }
    .bank-review-comparison tbody th:first-child { width: auto; min-width: 0; }
    .bank-review-comparison td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; color: #68788b; margin-bottom: 4px; }
    .bank-review-comparison td:last-child .btn { display: block; width: 100%; }
    .bank-review-source td:nth-last-child(-n+2) { display: none; }
    .bank-review-controls { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .bank-review-controls .bank-review-filter > label { min-width: 0; }
    .bank-review-tabs { display: grid; grid-template-columns: 1fr 1fr auto; gap: 5px; }
    .bank-review-tabs .btn { padding: 6px; font-size: 12px; }
}
.bank-payment-technical { margin-bottom: 16px; }
.bank-payment-technical > summary { cursor: pointer; color: #68788b; font-size: 13px; }
.bank-payment-technical .bank-card { margin: 8px 0 0; padding: 14px; }

.bank-review-controls { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 14px 16px 0; }
.bank-review-controls-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.bank-review-controls-heading p { font-size: 13px; }
.bank-review-controls .bank-review-filter { max-width: 650px; }
.bank-review-controls .bank-review-filter > label { min-width: 0; }
.bank-review-help { grid-row: 3; padding-bottom: 2px; }
.bank-review-tabs { display: flex; flex-wrap: nowrap; gap: 0; margin: 0 -16px; padding: 0 12px; border-top: 1px solid #edf0f4; }
.bank-review-tabs .btn { border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent; color: #68788b; box-shadow: none; padding: 12px; font-weight: 500; }
.bank-review-tabs .btn:hover { background: #f6f8fa; color: #176dc1; }
.bank-review-tabs .btn[aria-current="page"] { background: #f1f6fc; border-bottom-color: #176dc1; color: #176dc1; font-weight: 600; }
.bank-review-tabs .btn:focus-visible { outline: 2px solid #176dc1; outline-offset: -3px; }
@media (min-width: 1000px) {
    .bank-review-controls { grid-template-columns: minmax(0, 1fr) auto; }
    .bank-review-controls-heading { grid-column: 1 / -1; }
    .bank-review-controls .bank-review-filter { grid-column: 1; }
    .bank-review-help { grid-row: 2; grid-column: 2; align-self: end; padding-bottom: 10px; }
    .bank-review-tabs { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .bank-review-controls-heading { align-items: flex-start; }
    .bank-review-tabs { padding: 0 4px; }
    .bank-review-tabs .btn { flex: 1; padding: 10px 5px; font-size: 12px; }
}
.crm-navigation .crm-signout { flex-shrink: 0; margin-left: 10px; font: 300 14px/20px "Open Sans", sans-serif; }
@media (max-width: 991px) {
    .crm-navigation .crm-menu-toggle { margin-left: auto; order: 1; }
    .crm-navigation .crm-signout { order: 2; padding: 6px 10px; min-height: 34px; }
    .crm-navigation .navbar-collapse { order: 3; }
}

.crm-page-search { margin-top: 8px; margin-bottom: 12px; }
.crm-page-search form { margin: 0; }
.crm-page-search .input-group { margin-bottom: 0 !important; }
.crm-page-search .form-control { min-width: 0; height: 38px; }
.crm-page-search .btn { min-height: 38px; }

.bank-ledger-filters > .bank-review-controls-heading { margin-bottom: 14px; }
@media (min-width: 1100px) {
    .bank-ledger-filters { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
    .bank-ledger-filters > .bank-review-controls-heading { grid-column: 1 / -1; margin: 0; }
    .bank-ledger-filters > .bank-grid { display: contents; }
    .bank-ledger-filters .bank-field:has([name="requisiteId"]) { grid-column: span 4; grid-row: 2; }
    .bank-ledger-filters .bank-field:has([name="from"]), .bank-ledger-filters .bank-field:has([name="to"]),
    .bank-ledger-filters .bank-field:has([name="amount"]), .bank-ledger-filters .bank-field:has([name="status"]) { grid-column: span 2; grid-row: 2; }
    .bank-ledger-filters .bank-field:has([name="search"]) { grid-column: span 6; grid-row: 3; }
    .bank-ledger-filters .bank-filter-actions { grid-column: span 6; grid-row: 3; align-self: end; border: 0; margin: 0; padding: 0; }
}
@media (max-width: 767px) {
    .bank-ledger-filters .bank-filter-actions .bank-toolbar { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .bank-ledger-filters .bank-unmatched-toggle { width: 100%; }
}
