.banking{max-width:1480px}.bank-account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:18px 0 28px}.bank-account-card{appearance:none;border:1px solid #dce3e5;background:#fff;border-radius:14px;padding:20px;text-align:left;display:grid;gap:10px;color:#162d38;cursor:pointer;font:inherit}.bank-account-card.selected{border-color:#245c68;box-shadow:0 0 0 1px #245c68;background:#f5fafb}.bank-account-card>span{display:flex;justify-content:space-between;gap:12px}.bank-account-card>strong{font-size:18px}.bank-account-card small,.banking p,.banking small{color:#586b73}.bank-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:20px 0}.bank-toolbar h3,.bank-toolbar p{margin:4px 0}.bank-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.bank-metrics>div{padding:20px;border:1px solid #e1e7e8;border-radius:12px;background:#fff;display:grid;gap:10px}.bank-metrics span{font-size:13px;color:#556870}.bank-metrics strong{font-size:28px;font-weight:600;color:#172d39}.bank-balance-note{background:#f5f7f8;padding:14px 18px;border-radius:10px;font-size:13px;line-height:1.7;margin:16px 0}.bank-filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:24px 0 18px}.bank-filters label{display:grid;gap:6px;font-size:13px;color:#455b65}.bank-filters input,.bank-filters select,.bank-field input,.bank-field select,.bank-field textarea{border:1px solid #cad5d9;border-radius:8px;padding:10px 12px;background:#fff;color:#172d39;font:inherit;min-height:42px;width:100%;min-width:0}.bank-field{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px;min-width:0;font-size:14px}.bank-field small{font-size:12px;line-height:1.6;color:#586b73}.bank-flow-totals{display:flex;gap:24px;flex-wrap:wrap;font-size:13px;margin:12px 0 20px;line-height:1.6}.bank-flow-totals small{flex-basis:100%}.bank-table td>strong,.bank-table td>small{display:block;margin:3px 0}.bank-table td:nth-child(2){white-space:nowrap}.bank-debit{color:#884834}.bank-credit{color:#20664f}.bank-status{display:inline-block;background:#edf2f4;color:#385561;border-radius:6px;padding:4px 8px;font-size:12px}.bank-status.pending{background:#fff4df;color:#79510c}.bank-status.reconciled{background:#eaf6ee;color:#26583c}.bank-history,.bank-automation{margin-top:22px;padding:20px;border:1px solid #e1e7e8;border-radius:12px;line-height:1.65}.bank-history summary,.bank-automation summary{cursor:pointer;font-weight:600;color:#183946}.bank-import-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #edf0f2}.bank-import-row>span{display:grid;gap:4px}.bank-preview-table{max-height:46vh;overflow:auto}.bank-preview-table thead{position:sticky;top:0;background:#f3f6f7;z-index:1}.bank-confirm{margin:20px 0;line-height:1.6}.bank-review-actions,.bank-alternatives{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.bank-match-summary{display:grid;gap:10px;padding:20px;background:#f5f8f9;border-radius:12px;margin-bottom:18px}.bank-match-summary strong:last-child{font-size:24px}#bank-form-error{color:#a03832;white-space:pre-wrap;line-height:1.6}.banking button:focus-visible,.banking a:focus-visible,.bank-field input:focus-visible,.bank-field select:focus-visible{outline:3px solid #b8722e;outline-offset:3px}@media(max-width:760px){.bank-metrics{grid-template-columns:repeat(2,1fr)}.bank-toolbar{align-items:flex-start;flex-direction:column}.bank-import-row{align-items:flex-start;flex-wrap:wrap}.bank-table{min-width:620px}.bank-account-grid{grid-template-columns:1fr}.bank-filters label{flex:1 1 130px}.bank-flow-totals{gap:10px}.bank-toolbar .view-actions{width:100%;flex-wrap:wrap}}

/* Statement intake stays next to the selected bank account. */
.bank-upload-area{border:1px solid var(--line,#d9e4e7);border-radius:16px;background:var(--surface,#fff);color:var(--text,#405463);padding:24px;margin:24px 0 32px}
.bank-upload-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.bank-upload-heading h3{margin:0 0 6px;font-size:21px;color:var(--ink,#162d38)}.bank-upload-heading p{margin:0;line-height:1.6}.bank-upload-steps{list-style:none;display:flex;gap:18px;padding:0;margin:0;color:var(--muted,#4b636d);font-size:13px}.bank-upload-steps li{display:flex;align-items:center;gap:7px;white-space:nowrap}.bank-upload-steps span{display:grid;place-items:center;width:25px;height:25px;background:var(--surface-raised,#edf4f5);border-radius:50%;color:var(--accent,#245c68);font-weight:600}
.bank-upload-form{background:var(--surface-raised,#f7fafb);color:var(--text,#405463);border:1px solid var(--line,#e1e9eb);border-radius:12px;padding:20px}.bank-upload-context{margin:0 0 18px;line-height:1.7}.bank-upload-form input[type=file]{background:var(--input-bg,#fff);color:var(--ink,#172d39);padding:16px;border:1px dashed var(--control-border,#8ba7af);cursor:pointer}.bank-upload-form input[type=file]::file-selector-button{border:0;border-radius:6px;padding:10px 14px;margin-right:14px;background:var(--surface-hover,#eaf1f3);color:var(--ink,#214a57);font:inherit;cursor:pointer}.bank-upload-help{padding:12px 0;line-height:1.65}.bank-upload-help summary{cursor:pointer;color:var(--accent,#284f5c)}.bank-upload-help[open] summary{margin-bottom:14px}.bank-upload-submit{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px}.bank-upload-submit small{font-size:12px;line-height:1.6}.bank-pending-imports{margin-top:22px}.bank-pending-imports h4{font-size:15px;margin:0 0 10px}.bank-pending-imports h4 span{display:inline-block;min-width:24px;text-align:center;margin-left:7px;border-radius:6px;background:var(--surface-raised,#edf2f4);color:var(--ink,#183946);padding:3px 6px;font-size:12px}.bank-pending-imports>p{font-size:13px}.bank-upload-area .bank-history{padding:14px 0 0;border:0;border-top:1px solid var(--line,#e1e7e8);border-radius:0;margin-top:20px}.bank-upload-area .bank-import-row{border-bottom-color:var(--line,#edf0f2)}.bank-import-row>span{min-width:0;overflow-wrap:anywhere}.bank-movements-heading{font-size:20px;margin:28px 0 8px}
@media(max-width:760px){.bank-upload-area{padding:18px}.bank-upload-heading{flex-direction:column;gap:16px}.bank-upload-steps{gap:12px;flex-wrap:wrap}.bank-upload-form{padding:15px}.bank-upload-submit{align-items:stretch;flex-direction:column;gap:8px}.bank-upload-form input[type=file]{padding:10px;font-size:13px}}

/* Keep every review action reachable when the dialog narrows. */
.modal:has(#bank-review-form) .modal-footer{flex-wrap:wrap}
.modal .bank-confirm{color:var(--text,#405463)}
