.bank-statements-view { display: grid; gap: 16px; min-width: 0; }
.bank-statements-view__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 24px; border: 1px solid #27374d; border-radius: 14px; background:#101b2d; }
.bank-statements-view__upload { display:flex; flex:0 0 auto; flex-direction:column; gap:8px; width:min(300px,100%); }
.bank-statements-view__upload-buttons { display:flex; gap:8px; }
.bank-statements-view__upload-buttons .ctrl-btn { flex:1 1 0; white-space:nowrap; }
.bank-statements-view__drop--compact { display:flex; box-sizing:border-box; min-height:82px; align-items:center; justify-content:center; padding:12px 16px; border-radius:9px; font-size:13px; line-height:1.4; }
.bank-statements-view__eyebrow { margin-bottom: 5px; color: #93c5fd; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.bank-statements-view__header h1 { margin: 0 0 5px; color: #f8fafc; font-size: 25px; font-weight:650; letter-spacing: -.02em; }
.bank-statements-view__header .ctrl-btn[disabled] { cursor: not-allowed; opacity: .65; }
.bank-statements-view__todo,
.bank-statements-view__statements,
.bank-statements-view__items { padding: 20px; border: 1px solid #27374d; border-radius: 12px; background: #101a2b; min-width:0; }
.bank-statements-view__section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.bank-statement-filters { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:10px; margin:14px 0; }
.bank-statement-filters label { display:grid; gap:5px; color:#aebbd0; font-size:12px; }
.bank-statement-filters select,.bank-statement-filters input { width:100%; min-width:0; min-height:38px; padding:7px 9px; border:1px solid #40536c; border-radius:7px; background:#101c30; color:#e2e8f0; }
.bank-statement-option { display:grid; width:100%; gap:4px; padding:9px 11px; border:1px solid #34465e; border-radius:7px; background:#142238; color:#dbeafe; text-align:left; cursor:pointer; }
.bank-statement-option:hover,.bank-statement-option.is-active { border-color:#38bdf8; background:#17314a; }
.bank-statement-option__title { overflow-wrap:anywhere; font-size:13px; font-weight:650; }
.bank-statement-option__meta { color:#aebbd0; font-size:11px; }
.bank-active-statement { display:flex; flex-wrap:wrap; align-items:center; gap:7px 18px; margin-bottom:14px; padding:11px 13px; border:1px solid #365170; border-radius:8px; background:#111e32; color:#cbd5e1; font-size:12px; }
.bank-active-statement[hidden] { display:none; }
.bank-active-statement strong { color:#f1f5f9; }
.bank-statements-view__items > h2 { margin-bottom:10px; }
.bank-statements-view h2 { margin: 0; color: #e5edf8; font-size: 16px; }
.bank-statements-view__todo ul { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 9px; margin: 12px 0 0; padding: 0; list-style: none; }
.bank-statements-view__todo li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 12px; border: 1px solid #2e4059; border-radius: 9px; background: #111d31; color: #cbd5e1; font-size: 13px; }
.bank-statements-view__todo strong { color: #f8fafc; font-size: 19px; font-variant-numeric: tabular-nums; }
.bank-statements-view__filters { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }.bank-statements-view__filters button,.bank-match-status,.bank-statements-view__status-filters button { border:1px solid #365170; border-radius:7px; background:#152238; color:#cbd5e1; padding:6px 9px; cursor:pointer; }.bank-statements-view__filters button.is-active,.bank-match-status,.bank-statements-view__status-filters button.is-active { border-color:#38bdf8; color:#e0f2fe; background:#12324a; }
.bank-statements-view__status-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; }
.bank-statements-view__status-filters label { display:inline-flex; align-items:center; gap:7px; margin-left:auto; color:#cbd5e1; font-size:13px; }
.bank-statements-view__status-filters input { accent-color:#38bdf8; }
.bank-statements-view__match-filters { margin-top:10px; color:#aebbd0; font-size:12px; }
.bank-statements-view__match-filters summary { width:max-content; cursor:pointer; }
.bank-statements-view__statements p { margin:7px 0 0; }
.bank-statements-view__drop { padding:18px;border:1px dashed #4f7cac;border-radius:12px;color:#bfdbfe;text-align:center; }.bank-statements-view__drop.is-dragover { background:#173657;border-color:#7dd3fc; }
.bank-statements-view table { width:100%;margin-top:10px;border-collapse:collapse;font-size:12px; }
.bank-statements-view th,.bank-statements-view td { padding:8px 7px;border-bottom:1px solid #263449;text-align:left; }
.bank-statements-view .credit { color:#e2e8f0; }
.bank-statements-view .credit td { transition:background-color .12s ease; }
.bank-status-badge { display:inline-flex; align-items:center; white-space:nowrap; padding:4px 8px; border:1px solid #526178; border-radius:999px; background:#1b2637; color:#e2e8f0; font-size:11px; font-weight:500; }
.bank-status-badge--to_assign { border-color:#64748b; background:#1b2738; color:#e2e8f0; }
.bank-status-badge--pending { border-color:#8b7541; background:#37311f; color:#f5e6b5; }
.bank-status-badge--assigned { border-color:#456b8b; background:#1c3448; color:#c6e4fb; }
.bank-status-badge--settled { border-color:#3f7658; background:#1c3b2a; color:#c4f0d2; }
.bank-status-badge--warning { border-color:#87545c; background:#452a31; color:#ffd2d5; }
.bank-status-badge--ignored { border-color:#596579; background:#303a49; color:#cbd5e1; }
.bank-statements-view .bank-match-status { white-space:nowrap; }
.bank-statements-view [data-bank-transactions] { overflow-x:auto; }
.bank-statements-view__scope { padding:16px 20px; border:1px solid #27374d; border-radius:12px; background:#101a2b; min-width:0; }
.bank-statements-view__scope h2,.bank-statements-view__workspace-head h2 { margin:0; color:#e5edf8; font-size:16px; }
.bank-statements-view__workspace-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.bank-statements-view__workspace-head .meta { margin:5px 0 0; }
.bank-statements-view__scope .bank-statement-filters { grid-template-columns:minmax(220px,420px) minmax(220px,420px); }
.bank-statements-view__status-filters strong { display:inline-block; min-width:1.4em; margin-left:4px; color:#f8fafc; text-align:center; font-variant-numeric:tabular-nums; }
.bank-statements-view__table-tools { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:10px; margin-top:12px; }
.bank-statements-view__table-tools label { display:grid; gap:5px; color:#aebbd0; font-size:12px; }
.bank-statements-view__table-tools select,.bank-statements-view__table-tools input { min-height:38px; padding:7px 9px; border:1px solid #40536c; border-radius:7px; background:#101c30; color:#e2e8f0; }
.bank-statements-view__table-tools form { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
.bank-upload-result { margin-top:8px; padding:11px 13px; border:1px solid #365170; border-radius:8px; color:#dbeafe; background:#14283a; }
.bank-upload-result--success { border-color:#267858; color:#a7f3d0; background:#12342c; }
.bank-upload-result--warning { border-color:#856123; color:#fde68a; background:#322817; }
.bank-upload-result--error { border-color:#994348; color:#fecaca; background:#3e2029; }
.bank-statements-view [data-bank-more],.bank-statements-view [data-bank-imports-more] { justify-self:start; }
@media (max-width: 900px) { .bank-statements-view__header { align-items: flex-start; flex-direction: column; } .bank-statements-view__todo ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bank-statement-filters,.bank-statements-view__scope .bank-statement-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .bank-statements-view__todo ul { grid-template-columns: 1fr; } .bank-statement-filters,.bank-statements-view__scope .bank-statement-filters { grid-template-columns:1fr; } .bank-statements-view__section-head,.bank-statements-view__workspace-head { align-items:flex-start; flex-direction:column; } .bank-statements-view__table-tools form { width:100%; } .bank-statements-view__table-tools form label { flex:1 1 100%; } }
@media (max-width: 700px) {
  .bank-statements-view__status-filters label { margin-left:0; width:100%; }
  .bank-statements-view [data-bank-transactions] table { min-width:760px; }
}

/* Native dialog, matching the shell's existing modal interaction pattern. */
body.bank-statements-modal-open { overflow: hidden; }
.bank-statements-view__detail {
  position: fixed; inset: 0;
  width: min(800px, calc(100vw - 32px)); max-width: none;
  max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px);
  padding: 0; margin: auto; box-sizing: border-box; overflow: hidden;
  border: 1px solid #365170; border-radius: 16px; background: #101c30; color: #e2e8f0;
  box-shadow: 0 24px 80px #0009;
}
.bank-statements-view__detail[open] { display: flex; flex-direction: column; }
.bank-statements-view__detail::backdrop { background: #020617b8; }
.bank-statements-view__detail-head,
.bank-detail-footer { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; padding: 16px 22px; background: #101c30; }
.bank-statements-view__detail-head { justify-content: space-between; border-bottom: 1px solid #334155; }
.bank-statements-view__detail-head h2 { margin: 0; font-size: 20px; }
.bank-statements-view__detail-head button { min-width: 44px; min-height: 44px; border: 0; border-radius: 8px; background: transparent; color: #cbd5e1; font-size: 28px; cursor: pointer; }
.bank-detail-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px 22px; }
.bank-detail-body section + section { margin-top: 22px; padding-top: 18px; border-top: 1px solid #334155; }
.bank-detail-body h3 { margin: 0 0 12px; font-size: 15px; color: #f1f5f9; }
.bank-detail-amount { font-size: 28px; font-weight: 750; font-variant-numeric: tabular-nums; color: #f8fafc; }
.bank-statements-view__detail dl { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 10px 16px; margin: 16px 0; font-size: 14px; }
.bank-statements-view__detail dt { color: #94a3b8; }
.bank-statements-view__detail dd { margin: 0; overflow-wrap: anywhere; }
.bank-detail-title { white-space: pre-wrap; }
.bank-statements-view__detail ul { margin: 0; padding-left: 18px; }
.bank-statements-view__detail li + li { margin-top: 5px; }
.bank-detail-choice { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; color:var(--text); font-size: 14px; }
.bank-detail-choice select { width: 100%; min-width: 0; min-height: 44px; padding: 8px 12px; border: 1px solid #526783; border-radius: 8px; background: #0f172a; color: #e2e8f0; }
.bank-detail-choice textarea { width:100%; min-width:0; padding:8px 12px; border:1px solid #526783; border-radius:8px; background:#0f172a; color:#e2e8f0; font:inherit; resize:vertical; }
.bank-manual-correction { margin-top:14px; padding:14px; border:1px solid #365170; border-radius:9px; background:#111e32; }
.bank-manual-correction__actions { margin:14px -14px -14px; padding:12px 14px; }
.bank-detail-footer { flex-wrap: wrap; border-top: 1px solid #334155; }
.bank-statements-view__detail .ctrl-btn { min-height: 44px; white-space: normal; }
.bank-statements-view__detail .bank-detail-primary { background: #075985; border: 1px solid #38bdf8; color: #f0f9ff; font-weight: 700; }
.bank-statements-view__detail button:disabled,
.bank-statements-view__detail select:disabled { opacity: .6; cursor: not-allowed; }
.bank-statements-view__detail :focus-visible { outline: 2px solid #7dd3fc; outline-offset: 3px; }
.bank-detail-message { margin: 12px 0; padding: 12px 14px; border: 1px solid #365170; border-radius: 9px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.bank-detail-message--info { background: #14283a; color: #cbd5e1; }
.bank-detail-message--success { border-color: #267858; background: #12342c; color: #a7f3d0; }
.bank-detail-message--warning { border-color: #856123; background: #322817; color: #fde68a; }
.bank-detail-message--error { border-color: #994348; background: #3e2029; color: #fecaca; }
.bank-detail-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.bank-detail-totals > div { padding: 12px; border: 1px solid #334155; border-radius: 9px; }
.bank-detail-totals span { display: block; margin-bottom: 6px; font-size: 13px; color: #cbd5e1; }
.bank-detail-totals strong { font-size: 19px; font-variant-numeric: tabular-nums; }
.bank-detail-totals__remaining strong { color: #fde68a; }
.bank-detail-waterfall { margin-top: 20px; padding-top: 14px; border-top: 1px solid #334155; font-size: 13px; color: #94a3b8; line-height: 1.6; }
.bank-detail-waterfall summary { cursor: pointer; color: #cbd5e1; }
@media (max-width: 600px) {
  .bank-statements-view__detail { width: 100%; height: 100vh; height: 100dvh; max-height: 100vh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  .bank-statements-view__detail-head, .bank-detail-footer { padding: 12px 16px; }
  .bank-detail-body { padding: 16px; }
  .bank-statements-view__detail dl { grid-template-columns: 1fr; gap: 5px; }
  .bank-statements-view__detail dd { margin-bottom: 9px; }
  .bank-detail-totals { grid-template-columns: 1fr; }
  .bank-detail-footer button { width: 100%; }
}

.bank-statements-view__scope .bank-statement-filters { margin:0; }
.bank-statements-view .bank-title-text { min-width:180px; max-width:270px; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-height:1.4; white-space:normal; overflow-wrap:anywhere; color:#aebcd0; }
.bank-statements-view .bank-counterparty { max-width:220px; overflow-wrap:anywhere; }
.bank-statements-view .bank-source-count { color:#8295ad; font-size:10px; white-space:nowrap; }
.bank-statements-view .bank-actions { text-align:right; white-space:nowrap; }
.bank-status-badge--history { border-color:#475569; background:#202938; color:#aeb8c7; }
.bank-statements-view__imports-dialog { width:min(1040px,calc(100vw - 32px)); }
.bank-statements-view__imports-dialog .bank-detail-body { overflow-x:auto; }
.bank-statements-view__imports-dialog [data-bank-imports] { overflow-x:auto; }
.bank-statements-view__imports-dialog table { min-width:760px; }
.bank-statements-view__imports-dialog [data-bank-imports-more] { margin-top:12px; }
@media (max-width: 900px) { .bank-statements-view__upload { align-self:flex-end; } }
@media (max-width: 560px) { .bank-statements-view__upload { align-self:stretch; width:100%; max-width:360px; } }

/* Worklist presentation: economic status is expressed by the badge only. */
.bank-statements-view__header .meta { max-width:550px; line-height:1.6; }
.bank-statements-view__upload-buttons [data-bank-import] { background:#2177ce; border-color:#4099ee; color:#fff; font-weight:600; }
.bank-statements-view__upload-buttons [data-bank-imports-open] { background:#142238; border-color:#334862; color:#c1ccdc; }
.bank-statements-view__upload-buttons [data-bank-import]:hover { background:#2788e7; }
.bank-statements-view__scope select { box-sizing:border-box; min-height:42px; background:#15243a; border-color:#344862; }
.bank-statements-view__drop--compact { padding:12px 16px; border-radius:9px; background:#11233a; border-color:#46688b; color:#bfd3eb; }
.bank-statements-view__workspace-head h2 { font-size:19px; }
.bank-statements-view__status-filters button { padding:8px 12px; border-color:#30435d; border-radius:8px; background:#142238; color:#b8c5d8; }
.bank-statements-view__status-filters button strong { padding:2px 5px; border-radius:5px; background:#ffffff0a; }
.bank-statements-view__status-filters button.is-active { background:#143756; border-color:#3e93c6; color:#e1f3ff; }
.bank-statements-view__status-filters button:hover { border-color:#5c7ca2; }
.bank-statements-view__status-filters button:focus-visible,.bank-statements-view__upload-buttons button:focus-visible { outline:2px solid #7dd3fc; outline-offset:3px; }
.bank-statements-view__table-tools { padding:14px 0 10px; border-bottom:1px solid #28384e; margin-top:4px; }
.bank-statements-view [data-bank-transactions] table { min-width:1120px; margin-top:8px; font-size:13px; }
.bank-statements-view [data-bank-transactions] th { padding:12px 9px; background:#111e30; color:#8eabc4; font-size:11px; font-weight:600; }
.bank-statements-view [data-bank-transactions] td { padding:10px 9px; vertical-align:middle; line-height:1.4; border-bottom-color:#22334a; background:#101a2b; }
.bank-statements-view [data-bank-transactions] tbody tr:nth-child(even) td { background:#132034; }
.bank-statements-view [data-bank-transactions] tbody tr:hover td { background:#192a41; }
.bank-statements-view [data-bank-transactions] .bank-amount { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; }
.bank-statements-view .bank-date { white-space:nowrap; color:#afc1d8; font-size:12px; }
.bank-statements-view .bank-type { max-width:90px; color:#8ea4bd; font-size:11px; }
.bank-statements-view .bank-counterparty { font-weight:500; }
.bank-statements-view .bank-contract { white-space:nowrap; color:#acd3ef; font-size:12px; }
.bank-status-note { margin-top:4px; color:#9db0c5; font-size:10px; line-height:1.4; }
.bank-statements-view [data-bank-transactions] .bank-match-status { padding:7px 10px; border-color:#36506c; border-radius:7px; background:transparent; color:#b2dbfa; font-size:12px; }
.bank-statements-view [data-bank-more] { margin-top:14px; background:#142238; border-color:#344862; }
.bank-statements-view__upload-buttons{flex-wrap:wrap}.bank-rule-option{display:flex;align-items:center;gap:.55rem;margin:.55rem 0;color:var(--text)}.bank-rule-option input{width:1rem;height:1rem}.bank-statements-view [data-bank-rules-list] table{min-width:100%;font-size:.88rem}.bank-statements-view [data-bank-rules-list] td:last-child{white-space:normal;min-width:19rem}.bank-statements-view [data-bank-rules-list] td:last-child button{margin:.15rem}
.bank-rule-preview-table-wrap{max-width:100%;max-height:320px;overflow:auto;border:1px solid var(--border-color,#34445a);border-radius:8px}.bank-rule-preview-table-wrap table{width:100%;min-width:760px;border-collapse:collapse}.bank-rule-preview-table-wrap th,.bank-rule-preview-table-wrap td{padding:8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-color,#34445a)}.bank-rule-preview-table-wrap td:nth-child(3){min-width:220px;white-space:normal;overflow-wrap:anywhere}

/* Transaction workflow: state first, assignment and settlement within one dialog. */
.bank-detail-state { margin:6px 0 0; color:var(--text); font-size:13px; line-height:1.4; }
.bank-rule-options { margin-top:18px; padding:12px 14px; border:1px solid var(--border-color,#34445a); border-radius:8px; }
.bank-detail-diagnostics { margin-top:22px; padding-top:16px; border-top:1px solid var(--border-color,#34445a); color:var(--text); font-size:13px; }
.bank-detail-diagnostics summary,.bank-settlement-correction summary { cursor:pointer; min-height:32px; color:var(--text); }
.bank-settlement-correction > button { margin-top:12px; }
.bank-correction-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.bank-detail-footer .bank-detail-secondary { border-color:transparent; background:transparent; font-size:13px; }
.bank-statements-view__detail .bank-detail-danger { border-color:#994348; background:#3e2029; color:#fecaca; }
.bank-detail-diagnostics li,.bank-detail-allocations li { overflow-wrap:anywhere; }
