:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #f3f6f7;
    color: #1c292e;
}

* { box-sizing: border-box; }

body { margin: 0; min-width: 320px; }

.topbar {
    align-items: center;
    background: #123d4a;
    display: flex;
    height: 64px;
    justify-content: space-between;
    padding: 0 1.5rem;
}

.brand { color: #fff; font-size: 1.1rem; font-weight: 750; letter-spacing: -.02em; text-decoration: none; }

.menu-toggle {
    background: transparent;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: .45rem;
    color: #fff;
    cursor: pointer;
    display: none;
    font-size: 1.25rem;
    line-height: 1;
    padding: .42rem .65rem;
}

.app-shell { display: grid; grid-template-columns: 238px minmax(0, 1fr); min-height: calc(100vh - 64px); }

.sidebar { background: #fff; border-right: 1px solid #dbe4e7; padding: 1.1rem .75rem; }
.navigation-list { list-style: none; margin: 0; padding: 0; }
.navigation-link { border-radius: .5rem; color: #486168; display: block; font-size: .94rem; margin-bottom: .2rem; padding: .7rem .8rem; text-decoration: none; }
.navigation-link:hover, .navigation-link:focus-visible { background: #e8f1f1; color: #123d4a; outline: none; }
.navigation-link.is-active { background: #d7ebe8; color: #0d514b; font-weight: 700; }
.navigation-link.is-disabled { color: #96a8ad; cursor: not-allowed; }
.navigation-link small { display: block; font-size: .7rem; font-weight: 500; margin-top: .1rem; }
.navigation-divider { border-top: 1px solid #e1e8ea; margin: .7rem .35rem; }

.main-content { margin: 0 auto; max-width: 1180px; padding: 3.2rem clamp(1.25rem, 4vw, 4rem); width: 100%; }
.main-content--wide { max-width: 1320px; padding-left: clamp(1.25rem, 2.5vw, 2rem); padding-right: clamp(1.25rem, 2.5vw, 2rem); }
.main-content--credit-card-review { max-width: 1400px; padding-left: clamp(1.25rem, 2.5vw, 2rem); padding-right: clamp(1.25rem, 2.5vw, 2rem); }
.page-header { max-width: 760px; }
.page-header h1, .error-page h1 { color: #123d4a; font-size: clamp(2rem, 4vw, 2.8rem); letter-spacing: -.045em; line-height: 1.08; margin: .2rem 0 .75rem; }
.page-header p { color: #597078; font-size: 1.06rem; line-height: 1.65; margin: 0; }
.eyebrow { color: #17736a; font-size: .77rem; font-weight: 800; letter-spacing: .12em; margin: 0; text-transform: uppercase; }

.shortcut-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 2.25rem; }
.shortcut-card { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; color: inherit; display: flex; flex-direction: column; min-height: 180px; padding: 1.3rem; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.shortcut-card:hover, .shortcut-card:focus-visible { border-color: #54a298; box-shadow: 0 10px 26px rgba(18,61,74,.1); outline: none; transform: translateY(-2px); }
.shortcut-card h2 { color: #123d4a; font-size: 1.08rem; margin: 0 0 .55rem; }
.shortcut-card p { color: #60777e; font-size: .9rem; line-height: 1.5; margin: 0; }
.shortcut-card span { color: #17736a; font-size: .85rem; font-weight: 700; margin-top: auto; padding-top: 1rem; }

.construction-notice { background: #fff; border: 1px solid #dce7e9; border-left: 4px solid #54a298; border-radius: .6rem; margin-top: 2.25rem; max-width: 760px; padding: 1.35rem 1.5rem; }
.construction-notice h2 { color: #123d4a; font-size: 1.06rem; margin: 0 0 .45rem; }
.cash-availability-field { border: 1px solid #dce7e9; border-radius: .65rem; display: grid; gap: .65rem; margin: 0; padding: .9rem 1rem 1rem; }.cash-availability-field legend { color: #294950; font-size: .92rem; font-weight: 750; padding: 0 .25rem; }.cash-availability-field label { color: #486168; font-size: .9rem; }.cash-availability-field input { accent-color: #17736a; margin-right: .35rem; }.account-availability { border-radius: 999px; display: inline-block; font-size: .74rem; font-weight: 750; padding: .28rem .6rem; }.account-availability.is-available { background: #e4f4ed; color: #14523d; }.account-availability.is-reserved { background: #edf4f7; color: #285761; }
.financial-overview { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 2rem; max-width: 960px; padding: 1.2rem 1.3rem; }.financial-overview h2 { color: #123d4a; font-size: 1.08rem; margin: .25rem 0 .45rem; }.financial-overview > div > p:not(.eyebrow) { color: #597078; margin: 0; }.financial-overview__totals { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0 0; }.financial-overview__totals div { background: #f6fafa; border: 1px solid #e1ebed; border-radius: .55rem; padding: .75rem .85rem; }.financial-overview__totals dt { color: #73868c; font-size: .71rem; font-weight: 750; text-transform: uppercase; }.financial-overview__totals dd { color: #173b43; font-size: 1rem; font-weight: 750; margin: .22rem 0 0; white-space: nowrap; }.financial-overview__notice { color: #825914; font-size: .85rem; margin: .9rem 0 0; }.financial-overview__details { border-top: 1px solid #e1ebed; margin-top: 1rem; padding-top: .85rem; }.financial-overview__details summary { color: #285761; cursor: pointer; font-size: .88rem; font-weight: 750; }.financial-overview__details ul { display: grid; gap: .55rem; list-style: none; margin: .8rem 0 0; padding: 0; }.financial-overview__details li { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }.financial-overview__details strong, .financial-overview__details small { display: block; }.financial-overview__details strong { color: #294950; font-size: .88rem; }.financial-overview__details small { color: #60777e; font-size: .8rem; margin-top: .15rem; }.financial-overview__details b { color: #173b43; font-size: .9rem; white-space: nowrap; }
.construction-notice p { color: #60777e; line-height: 1.55; margin: 0; }

.page-header-with-action { align-items: end; display: flex; gap: 1.5rem; justify-content: space-between; }
.import-source-priority { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.45fr) minmax(260px, 1fr); margin-top: 2rem; max-width: 960px; }.import-source-primary, .import-source-secondary { border: 1px solid #dce7e9; border-radius: .8rem; padding: 1.25rem 1.35rem; }.import-source-primary { background: #eef8f6; border-color: #b9dfd8; }.import-source-secondary { background: #fff; }.import-source-priority h2 { color: #123d4a; font-size: 1.1rem; margin: .3rem 0 .55rem; }.import-source-priority p:not(.eyebrow) { color: #597078; line-height: 1.5; margin: 0; }.import-source-priority small { color: #60777e; display: block; font-size: .82rem; margin-top: .7rem; }.import-source-priority .button-link, .import-source-priority .button-secondary { margin-top: 1rem; }
.page-header-with-action .button-link { flex: 0 0 auto; margin: 0; }
.import-actions { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: end; }
.import-actions .button-link { margin: 0; }
.compact-header { margin-bottom: 2rem; }
.alert { border-radius: .6rem; margin: 1.5rem 0; padding: .9rem 1rem; }
.alert-success { background: #e4f4ed; border: 1px solid #a9d7c5; color: #14523d; }
.alert-error { background: #fbeaec; border: 1px solid #e6b8bd; color: #8c2731; }
.empty-state, .account-form { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 2.25rem; max-width: 760px; padding: clamp(1.3rem, 3vw, 2rem); }
.empty-state h1, .empty-state h2 { color: #123d4a; margin: .2rem 0 .6rem; }
.empty-state p { color: #597078; line-height: 1.6; margin: 0; }
.empty-state .button-secondary, .empty-state .button-link { margin-top: 1.15rem; }
.account-list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-top: 2.25rem; }
.account-card { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; display: flex; flex-direction: column; min-height: 235px; padding: 1.3rem; }
.account-card.is-inactive { background: #f8fafb; }
.account-card-header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }
.account-card h2 { color: #123d4a; font-size: 1.18rem; line-height: 1.2; margin: .2rem 0 0; }
.account-institution { color: #60777e; font-size: .86rem; font-weight: 700; margin: 0; }
.status-badge { border-radius: 999px; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; white-space: nowrap; }
.status-badge.is-active { background: #dcf2e8; color: #146046; }
.status-badge.is-inactive { background: #edf0f1; color: #5d7076; }
.account-details { display: flex; flex-wrap: wrap; gap: .9rem 1.5rem; margin: 1.35rem 0; }
.account-details div { min-width: 78px; }
.account-details dt { color: #73868c; font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.account-details dd { color: #2e484f; font-size: .9rem; margin: .18rem 0 0; }
.account-actions { align-items: center; display: flex; gap: .7rem; margin-top: auto; }
.account-actions form { margin: 0; }
.button-secondary, .button-text { background: #fff; border: 1px solid #b7c8cc; border-radius: .5rem; color: #285761; cursor: pointer; display: inline-block; font: inherit; font-size: .9rem; font-weight: 700; padding: .62rem .85rem; text-decoration: none; }
.button-secondary:hover, .button-secondary:focus-visible, .button-text:hover, .button-text:focus-visible { background: #edf5f4; border-color: #54a298; outline: none; }
.button-text { border-color: transparent; }
.account-form { display: grid; gap: 1.15rem; }
.form-grid { display: grid; gap: 1.15rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-field { display: grid; gap: .42rem; }
.form-field label { color: #294950; font-size: .92rem; font-weight: 750; }
.form-field label span { color: #73868c; font-size: .78rem; font-weight: 500; }
.form-field input, .form-field select, .form-field textarea { background: #fff; border: 1px solid #adbdc1; border-radius: .45rem; color: #1c292e; font: inherit; min-height: 2.65rem; padding: .55rem .65rem; width: 100%; }
.form-field textarea { resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: #17736a; box-shadow: 0 0 0 3px rgba(23,115,106,.15); outline: none; }
.form-field.has-error input, .form-field.has-error select, .form-field.has-error textarea { border-color: #b33d45; }
.field-error { color: #a22f39; font-size: .83rem; line-height: 1.4; margin: 0; }
.checkbox-field { align-items: center; color: #294950; display: flex; font-size: .92rem; font-weight: 700; gap: .55rem; }
.checkbox-field input { accent-color: #17736a; height: 1rem; width: 1rem; }
.form-actions { align-items: center; display: flex; gap: .75rem; margin-top: .35rem; }
.form-actions .button-link { border: 0; cursor: pointer; font: inherit; margin: 0; }
.spreadsheet-preview-responsive, .ofx-preview-responsive, .transactions-table-responsive { -webkit-overflow-scrolling: touch; margin-top: 2.25rem; overflow-x: auto; }
.spreadsheet-preview-table, .ofx-preview-table { background: #fff; border: 1px solid #dce7e9; border-collapse: separate; border-radius: .8rem; border-spacing: 0; overflow: hidden; width: 100%; }.spreadsheet-preview-table { min-width: 1080px; }.ofx-preview-table { min-width: 0; table-layout: fixed; }
.spreadsheet-preview-table th, .spreadsheet-preview-table td, .ofx-preview-table th, .ofx-preview-table td { border-bottom: 1px solid #e6edef; padding: .8rem 1rem; text-align: left; vertical-align: top; }.spreadsheet-preview-table th, .ofx-preview-table th { background: #f6fafa; color: #486168; font-size: .73rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }.spreadsheet-preview-table td, .ofx-preview-table td { color: #2e484f; font-size: .88rem; line-height: 1.4; }.spreadsheet-preview-table tbody tr:last-child td, .ofx-preview-table tbody tr:last-child td { border-bottom: 0; }.spreadsheet-preview-table tbody tr.is-error, .ofx-preview-table tbody tr.is-error { background: #fff8f8; }
.spreadsheet-preview-amount, .ofx-amount { text-align: right !important; white-space: nowrap; }.spreadsheet-preview-notes { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.spreadsheet-preview-status { color: #146046 !important; font-weight: 700; min-width: 150px; }.spreadsheet-preview-status.is-error { color: #a22f39 !important; }
.ofx-import-summary { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.5rem; max-width: 960px; padding: 1.2rem 1.3rem; }.ofx-import-summary dl { display: grid; gap: 1rem 1.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }.ofx-import-summary dt { color: #73868c; font-size: .73rem; font-weight: 750; text-transform: uppercase; }.ofx-import-summary dd { color: #2e484f; margin: .18rem 0 0; }.ofx-preview-table th:nth-child(1), .ofx-preview-table td:nth-child(1) { width: 5.4rem; }.ofx-preview-table th:nth-child(2), .ofx-preview-table td:nth-child(2) { width: 25%; }.ofx-preview-table th:nth-child(3), .ofx-preview-table td:nth-child(3) { width: 6.2rem; }.ofx-preview-table th:nth-child(4), .ofx-preview-table td:nth-child(4) { width: 27%; }.ofx-preview-table th:nth-child(5), .ofx-preview-table td:nth-child(5) { width: 8.8rem; }.ofx-preview-table th:nth-child(6), .ofx-preview-table td:nth-child(6) { width: 5.8rem; }.ofx-description { min-width: 0; overflow-wrap: anywhere; }.ofx-preview-table .ofx-analysis-status { max-width: 100%; white-space: normal; }.ofx-preview-table .ofx-candidate-hint { overflow-wrap: anywhere; }.ofx-preview-table td:last-child, .ofx-preview-table .bank-review-modal__open { white-space: nowrap; }.ofx-fitid { font-family: ui-monospace, monospace; font-size: .8rem !important; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.ofx-status, .ofx-analysis-status { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; white-space: nowrap; }.ofx-status { background: #dcf2e8; color: #146046; }.ofx-status.is-error, .ofx-analysis-status.is-error { background: #fbeaec; color: #a22f39; }.ofx-analysis-status.is-strong { background: #dcf2e8; color: #146046; }.ofx-analysis-status.is-possible { background: #edf4f7; color: #285761; }.ofx-analysis-status.is-ambiguous { background: #fff3d7; color: #825914; }.ofx-analysis-status.is-possible_internal_transfer { background: #edf0f1; color: #4c5d63; }.ofx-analysis-status.is-unmatched { background: #f3f5f5; color: #60777e; }.ofx-suggested-transaction { min-width: 240px; }.ofx-suggested-transaction div + div { border-top: 1px solid #e6edef; margin-top: .45rem; padding-top: .45rem; }.ofx-suggested-transaction small { color: #60777e; }
.ofx-bulk-actions { align-items: flex-start; display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin-top: 1.5rem; }.ofx-bulk-actions form { display: grid; gap: .35rem; max-width: 380px; }.ofx-bulk-actions p { color: #60777e; font-size: .86rem; margin: 0; }.ofx-candidate-hint { color: #60777e; display: block; margin-top: .35rem; }.ofx-decision-status { background: #e4f4ed; border-radius: 999px; color: #14523d; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; white-space: nowrap; }.ofx-decision-status.is-pending { background: #f3f5f5; color: #60777e; }.ofx-review-details { min-width: 108px; }.ofx-review-details summary { color: #285761; cursor: pointer; font-size: .86rem; font-weight: 750; white-space: nowrap; }.ofx-review-details form { background: #f8fbfb; border: 1px solid #dce7e9; border-radius: .6rem; display: grid; gap: .8rem; margin-top: .7rem; min-width: 330px; padding: .9rem; }.ofx-review-help { color: #60777e; font-size: .82rem; line-height: 1.45; margin: 0; }
.account-availability.is-third-party { background: #eee9f8; color: #5a3f84; }.account-owner { color: #60777e; font-size: .86rem; margin: .2rem 0 0; }
.ofx-consolidation-panel, .ofx-reconciliation-summary { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.5rem; max-width: 960px; padding: 1.15rem 1.3rem; }.ofx-consolidation-panel h2, .ofx-reconciliation-summary h2 { color: #123d4a; font-size: 1.05rem; margin: 0 0 .55rem; }.ofx-consolidation-panel p, .ofx-reconciliation-summary p { color: #597078; line-height: 1.5; margin: 0; }.ofx-consolidation-panel small { color: #825914; display: block; margin-top: .75rem; }.ofx-consolidation-panel .button-link { border: 0; cursor: pointer; font: inherit; margin-top: .9rem; }.ofx-reconciliation-metrics { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1rem 0 0; }.ofx-reconciliation-metrics div { background: #f6fafa; border: 1px solid #e1ebed; border-radius: .55rem; min-width: 0; padding: .75rem .85rem; }.ofx-reconciliation-metrics dt { color: #73868c; font-size: .71rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }.ofx-reconciliation-metrics dd { color: #173b43; font-size: 1rem; font-weight: 750; margin: .22rem 0 0; white-space: nowrap; }.ofx-reconciliation-difference.is-balanced { background: #edf7f1; border-color: #b9decb; }.ofx-reconciliation-difference.is-balanced dd, .ofx-reconciliation-difference.is-balanced small { color: #146046; }.ofx-reconciliation-difference small { display: block; font-size: .76rem; font-weight: 700; margin-top: .28rem; }.ofx-reconciliation-item-count { font-size: .88rem; margin-top: 1rem !important; }
.ofx-transfer-review { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.5rem; max-width: 960px; padding: 1.15rem 1.3rem; }.ofx-transfer-review h2 { color: #123d4a; font-size: 1.05rem; margin: .2rem 0 .45rem; }.ofx-transfer-review > p { color: #597078; margin: 0; }.ofx-transfer-list { display: grid; gap: .75rem; margin-top: 1rem; }.ofx-transfer-list article { background: #f8fbfb; border: 1px solid #e1ebed; border-radius: .6rem; display: grid; gap: .65rem; padding: .8rem .9rem; }.ofx-transfer-list article p { color: #597078; font-size: .88rem; margin: .3rem 0; }.ofx-transfer-list small { color: #60777e; }.ofx-transfer-state { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; }.ofx-transfer-state.is-paired { background: #dcf2e8; color: #146046; }.ofx-transfer-state.is-probable { background: #edf4f7; color: #285761; }.ofx-transfer-state.is-ambiguous { background: #fff3d7; color: #825914; }.ofx-transfer-state.is-none { background: #f3f5f5; color: #60777e; }.ofx-transfer-actions { border-top: 1px solid #e1ebed; padding-top: .55rem; }.ofx-transfer-actions form { display: inline-block; margin-right: .4rem; }
.ofx-analysis-status.is-counterpart_probable { background: #e8f1f1; color: #0d514b; }.ofx-analysis-status.is-counterpart_ambiguous { background: #fff3d7; color: #825914; }.ofx-analysis-status.is-duplicate { background: #edf0f1; color: #4c5d63; }.ofx-analysis-status.is-unavailable_link, .ofx-analysis-status.is-unavailable_similarity { background: #fff3d7; color: #825914; }.ofx-analysis-status.is-consolidated { background: #e6f3ec; color: #1e6848; }.ofx-decision-status.is-duplicate { background: #edf0f1; color: #4c5d63; }.ofx-review-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }.ofx-review-filters a { border: 1px solid #d7dce2; border-radius: 999px; color: inherit; padding: .35rem .7rem; text-decoration: none; }.ofx-review-filters a[aria-current="page"] { background: #1f5f4a; border-color: #1f5f4a; color: #fff; }
body.bank-review-modal-open { overflow: hidden; }
.bank-review-modal { align-items: center; background: rgba(18, 43, 51, .54); display: flex; inset: 0; justify-content: center; padding: 1.25rem; position: fixed; z-index: 50; }.bank-review-modal[hidden] { display: none; }.bank-review-modal__dialog { background: #fff; border: 1px solid #cbdadd; border-radius: .8rem; box-shadow: 0 1.25rem 3rem rgba(15, 45, 53, .24); max-height: calc(100vh - 2.5rem); max-width: 620px; overflow-y: auto; width: 100%; }.bank-review-modal__dialog form { display: grid; gap: 1rem; padding: 1.15rem 1.25rem 1.2rem; }.bank-review-modal__header { align-items: flex-start; border-bottom: 1px solid #e1ebed; display: flex; gap: 1rem; justify-content: space-between; padding-bottom: .8rem; }.bank-review-modal__header .eyebrow { margin: 0 0 .25rem; }.bank-review-modal__header h2 { color: #123d4a; font-size: 1.1rem; margin: 0; }.bank-review-modal__close { background: transparent; border: 0; border-radius: .4rem; color: #486168; cursor: pointer; font-size: 1.6rem; line-height: 1; padding: .1rem .35rem; }.bank-review-modal__close:hover, .bank-review-modal__close:focus-visible { background: #edf5f4; color: #123d4a; outline: none; }.bank-review-modal__movement { border-left: 4px solid #b33d45; display: grid; gap: .2rem; padding: .1rem 0 .1rem .8rem; }.bank-review-modal__movement.is-income { border-left-color: #17736a; }.bank-review-modal__movement span { color: #60777e; font-size: .84rem; }.bank-review-modal__movement strong { color: #173b43; font-size: .98rem; }.bank-review-modal__movement b { color: #a22f39; font-size: 1rem; }.bank-review-modal__movement.is-income b { color: #146046; }.bank-review-modal__analysis { background: #f6fafa; border: 1px solid #dce7e9; border-radius: .6rem; display: grid; gap: .25rem; padding: .8rem .9rem; }.bank-review-modal__analysis p { color: #73868c; font-size: .71rem; font-weight: 750; letter-spacing: .03em; margin: 0; text-transform: uppercase; }.bank-review-modal__analysis strong { color: #173b43; font-size: .92rem; }.bank-review-modal__analysis span { color: #597078; font-size: .84rem; line-height: 1.4; }.bank-review-modal__fields { display: grid; gap: .9rem; }.bank-review-modal__actions { align-items: center; border-top: 1px solid #e1ebed; display: flex; gap: .75rem; justify-content: flex-end; padding-top: .9rem; }.bank-review-modal__actions .button-link { border: 0; cursor: pointer; font: inherit; margin: 0; }.bank-review-modal__open { font-size: .86rem; margin: 0; white-space: nowrap; }
.transaction-filters { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 2.25rem; max-width: 960px; padding: 1.3rem; }
.transaction-summary { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.25rem; max-width: 960px; }
.transaction-summary article { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; padding: 1.15rem 1.3rem; }
.transaction-summary h2 { color: #123d4a; font-size: 1rem; margin: 0 0 .9rem; }
.transaction-summary dl { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; margin: 0; }
.transaction-summary dt { color: #73868c; font-size: .73rem; font-weight: 750; text-transform: uppercase; }
.transaction-summary dd { color: #2e484f; font-weight: 700; margin: .18rem 0 0; }
.transaction-result-context { align-items: center; background: #f8fbfb; border: 1px solid #dce7e9; border-left: 4px solid #71858b; border-radius: .7rem; color: #294950; display: flex; gap: .8rem; margin: 1rem 0 0; max-width: 960px; padding: .85rem 1rem; }.transaction-result-context p { font-size: .94rem; font-weight: 700; line-height: 1.45; margin: 0; }.transaction-result-context__icon, .resource-movement__net-icon { align-items: center; border-radius: 999px; display: inline-flex; flex: 0 0 auto; height: 1.75rem; justify-content: center; width: 1.75rem; }.transaction-result-context__icon::before, .resource-movement__net-icon::before { font-size: 1.15rem; font-weight: 800; line-height: 1; }.transaction-result-context.is-negative { background: #fff8f8; border-left-color: #b33d45; color: #7d2830; }.transaction-result-context.is-negative .transaction-result-context__icon, .resource-movement__net.is-negative .resource-movement__net-icon { background: #fbeaec; color: #a22f39; }.transaction-result-context.is-negative .transaction-result-context__icon::before, .resource-movement__net.is-negative .resource-movement__net-icon::before { content: '↓'; }.transaction-result-context.is-positive { background: #f4fbf7; border-left-color: #17736a; color: #14523d; }.transaction-result-context.is-positive .transaction-result-context__icon, .resource-movement__net.is-positive .resource-movement__net-icon { background: #dcf2e8; color: #146046; }.transaction-result-context.is-positive .transaction-result-context__icon::before, .resource-movement__net.is-positive .resource-movement__net-icon::before { content: '↑'; }.transaction-result-context.is-zero .transaction-result-context__icon, .resource-movement__net.is-zero .resource-movement__net-icon { background: #edf0f1; color: #5d7076; }.transaction-result-context.is-zero .transaction-result-context__icon::before, .resource-movement__net.is-zero .resource-movement__net-icon::before { content: '→'; }
.resource-movement { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1rem; max-width: 960px; padding: 0; }.resource-movement > summary { cursor: pointer; display: grid; gap: .15rem; list-style: none; padding: 1rem 1.15rem; }.resource-movement > summary::-webkit-details-marker { display: none; }.resource-movement > summary::after { color: #60777e; content: '›'; font-size: 1.35rem; font-weight: 700; position: absolute; right: 1.15rem; top: 50%; transform: translateY(-50%); }.resource-movement > summary { position: relative; }.resource-movement[open] > summary { border-bottom: 1px solid #e1ebed; }.resource-movement[open] > summary::after { transform: translateY(-50%) rotate(90deg); }.resource-movement > summary span { color: #285761; font-size: .92rem; font-weight: 750; }.resource-movement > summary small { color: #60777e; font-size: .8rem; }.resource-movement__content { padding: 1.05rem 1.15rem 1.15rem; }.resource-movement__totals { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 0; }.resource-movement__totals div, .resource-movement__pocket-list article { background: #f8fbfb; border: 1px solid #e1ebed; border-radius: .6rem; padding: .75rem .85rem; }.resource-movement dt { color: #73868c; font-size: .71rem; font-weight: 750; text-transform: uppercase; }.resource-movement dd { color: #173b43; font-size: .95rem; font-weight: 750; margin: .22rem 0 0; white-space: nowrap; }.resource-movement__rdb, .resource-movement__pockets { border-top: 1px solid #e1ebed; margin-top: 1rem; padding-top: .9rem; }.resource-movement__rdb summary, .resource-movement__pockets summary { color: #285761; cursor: pointer; font-size: .88rem; font-weight: 750; }.resource-movement__rdb ul { display: grid; gap: .45rem; list-style: none; margin: .7rem 0 0; padding: 0; }.resource-movement__rdb li { align-items: baseline; display: flex; flex-wrap: wrap; gap: .25rem .8rem; justify-content: space-between; }.resource-movement__rdb strong { color: #294950; font-size: .86rem; }.resource-movement__rdb span, .resource-movement__pockets > p { color: #60777e; font-size: .82rem; }.resource-movement__pockets > p { line-height: 1.45; margin: .7rem 0; }.resource-movement__pocket-list { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }.resource-movement__pocket-list h3 { color: #294950; font-size: .9rem; margin: 0 0 .7rem; }.resource-movement__pocket-list dl { display: grid; gap: .55rem; margin: 0; }.resource-movement__pocket-list dl div { align-items: baseline; display: flex; gap: .65rem; justify-content: space-between; }.resource-movement__pocket-list dd { font-size: .88rem; text-align: right; }.resource-movement__net { border-top: 1px solid #e1ebed; flex-wrap: wrap; padding-top: .55rem; }.resource-movement__net dd { align-items: center; display: flex; gap: .35rem; }.resource-movement__net-icon { height: 1.25rem; width: 1.25rem; }.resource-movement__net-icon::before { font-size: .92rem; }.resource-movement__net small { color: #60777e; flex-basis: 100%; font-size: .78rem; text-align: right; }
.transactions-table { background: #fff; border: 1px solid #dce7e9; border-collapse: separate; border-radius: .8rem; border-spacing: 0; min-width: 940px; overflow: hidden; table-layout: fixed; width: 100%; }
.transactions-table th, .transactions-table td { border-bottom: 1px solid #e6edef; padding: .78rem 1rem; text-align: left; vertical-align: top; }
.transactions-table th { background: #f6fafa; color: #486168; font-size: .73rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.transactions-table td { color: #2e484f; font-size: .88rem; line-height: 1.4; }
.transactions-table tbody tr:last-child td { border-bottom: 0; }
.transactions-table .transaction-date, .transactions-table .transaction-kind, .transactions-table .transaction-state, .transactions-table .transaction-amount, .transactions-table .transaction-source { white-space: nowrap; }.transactions-table .transaction-date { width: 5rem; }.transactions-table .transaction-description { width: 18%; }.transactions-table .transaction-category { width: 12%; }.transactions-table .transaction-account { width: 14%; }.transactions-table .transaction-kind { width: 5.6rem; }.transactions-table .transaction-state { width: 6.8rem; }.transactions-table .transaction-amount { width: 7.2rem; }.transactions-table .transaction-source { width: 5rem; }.transactions-table .transaction-description, .transactions-table .transaction-category, .transactions-table .transaction-account { overflow-wrap: anywhere; white-space: normal; }
.transaction-amount { text-align: right !important; white-space: nowrap; }
.transaction-status { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; white-space: nowrap; }
.transaction-status.is-realized { background: #dcf2e8; color: #146046; }
.transaction-status.is-planned { background: #edf4f7; color: #285761; }
.transaction-status.is-canceled { background: #edf0f1; color: #5d7076; }

.error-page main { margin: 16vh auto; max-width: 640px; padding: 2rem; }
.error-page p:not(.eyebrow) { color: #597078; line-height: 1.6; }
.button-link { background: #17736a; border-radius: .5rem; color: #fff; display: inline-block; font-weight: 700; margin-top: 1rem; padding: .7rem 1rem; text-decoration: none; }
.sr-only { clip: rect(0, 0, 0, 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }

@media (max-width: 760px) {
    .topbar { padding: 0 1rem; }
    .menu-toggle { display: inline-flex; }
    .app-shell { display: block; }
    .sidebar { border-bottom: 1px solid #dbe4e7; border-right: 0; display: none; padding: .65rem .75rem; }
    .sidebar.is-open { display: block; }
    .navigation-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem; }
    .navigation-link { margin: 0; }
    .navigation-divider { display: none; }
    .main-content { padding-top: 2rem; }
    .import-source-priority { grid-template-columns: 1fr; }
    .ofx-reconciliation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .financial-overview__totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bank-review-modal { align-items: flex-end; padding: .75rem; }.bank-review-modal__dialog { max-height: calc(100vh - 1.5rem); }.bank-review-modal__dialog form { padding: 1rem; }
}

@media (max-width: 440px) {
    .navigation-list { grid-template-columns: 1fr; }
    .shortcut-grid { grid-template-columns: 1fr; }
    .page-header-with-action, .form-actions { align-items: stretch; flex-direction: column; }
    .page-header-with-action .button-link, .form-actions .button-link, .form-actions .button-secondary { text-align: center; width: 100%; }
    .import-actions { justify-content: stretch; }.import-actions a { text-align: center; width: 100%; }
    .form-grid { grid-template-columns: 1fr; }
    .transaction-summary { grid-template-columns: 1fr; }
    .ofx-import-summary dl { grid-template-columns: 1fr; }
    .ofx-reconciliation-metrics { grid-template-columns: 1fr; }
    .financial-overview__totals { grid-template-columns: 1fr; }.financial-overview__details li { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .bank-review-modal__actions { align-items: stretch; flex-direction: column-reverse; }.bank-review-modal__actions .button-link, .bank-review-modal__actions .button-secondary { margin: 0; text-align: center; width: 100%; }
}

/* Credit-card statement review: kept component-scoped to avoid table regressions. */
.credit-card-review-table { min-width: 1080px; }
.credit-card-review-table th:nth-child(1), .credit-card-review-table td:nth-child(1) { width: 6.2rem; white-space: nowrap; }
.credit-card-review-table th:nth-child(2), .credit-card-review-table td:nth-child(2) { width: 21%; }
.credit-card-review-table__description { overflow-wrap: anywhere; white-space: normal; }
.credit-card-review-table th:nth-child(3), .credit-card-review-table td:nth-child(3) { width: 7.5rem; }
.credit-card-review-table__scope { background: #edf4f7; border-radius: 999px; color: #285761; display: inline-block; font-size: .76rem; font-weight: 750; line-height: 1.25; padding: .28rem .6rem; white-space: normal; }
.credit-card-review-table__scope.is-future { background: #f3f1fb; color: #5c4b86; }
.credit-card-review-table__scope.is-informational { background: #f3f5f5; color: #60777e; }
.credit-card-review-table th:nth-child(7), .credit-card-review-table td:nth-child(7), .credit-card-review-table th:nth-child(10), .credit-card-review-table td:nth-child(10) { white-space: nowrap; }

/* Financial obligations: scoped components; events are responsibilities, never cash movements. */
.obligation-list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin-top: 2.25rem; }
.obligation-card, .obligation-detail, .obligation-event-actions, .obligation-history { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; padding: 1.25rem 1.3rem; }
.obligation-card { display: flex; flex-direction: column; min-height: 210px; }.obligation-card.is-canceled { background: #f8fafb; }
.obligation-card__header { align-items: start; display: flex; gap: .8rem; justify-content: space-between; }.obligation-card h2 { color: #123d4a; font-size: 1.15rem; margin: .2rem 0 0; }
.obligation-status { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; white-space: nowrap; }.obligation-status.is-active { background: #edf4f7; color: #285761; }.obligation-status.is-settled { background: #dcf2e8; color: #146046; }.obligation-status.is-canceled { background: #edf0f1; color: #5d7076; }
.obligation-card__details, .obligation-detail dl { display: flex; flex-wrap: wrap; gap: .9rem 1.5rem; margin: 1.2rem 0; }.obligation-card__details div { min-width: 110px; }.obligation-card__details dt, .obligation-detail dt { color: #73868c; font-size: .75rem; font-weight: 750; text-transform: uppercase; }.obligation-card__details dd, .obligation-detail dd { color: #2e484f; font-size: .9rem; margin: .18rem 0 0; }.obligation-balance { color: #123d4a !important; font-size: 1rem !important; font-weight: 800; }.obligation-card .account-actions { margin-top: auto; }
.obligation-initial-event { border: 1px solid #dce7e9; border-radius: .65rem; margin: 0; padding: .9rem 1rem 1rem; }.obligation-initial-event legend { color: #294950; font-size: .92rem; font-weight: 750; padding: 0 .25rem; }
.obligation-detail { align-items: start; display: flex; gap: 2rem; justify-content: space-between; margin-top: 2rem; max-width: 960px; }.obligation-detail strong { color: #123d4a; display: block; font-size: 1.6rem; margin: .2rem 0 .55rem; }.obligation-detail dl { margin: 0; max-width: 580px; }.obligation-detail dd { max-width: 420px; white-space: pre-line; }
.obligation-event-actions, .obligation-history { margin-top: 1.25rem; max-width: 960px; }.obligation-event-actions { display: grid; gap: .8rem; }.obligation-event-actions details { background: #f8fbfb; border: 1px solid #e1ebed; border-radius: .6rem; padding: .8rem .9rem; }.obligation-event-actions summary { color: #285761; cursor: pointer; font-size: .9rem; font-weight: 750; }.obligation-event-actions form { display: grid; gap: .8rem; margin-top: .9rem; }.obligation-event-actions form .button-link { border: 0; cursor: pointer; font: inherit; margin: 0; justify-self: start; }.obligation-event-actions__footer { align-items: center; display: flex; gap: .6rem; }.obligation-event-actions__footer form { display: block; margin: 0; }
.obligation-history h2 { color: #123d4a; font-size: 1.05rem; margin: 0; }.obligation-history > p { color: #597078; margin: .7rem 0 0; }.obligation-history .transactions-table-responsive { margin-top: 1rem; }.obligation-history__table { background: #fff; border: 1px solid #dce7e9; border-collapse: separate; border-radius: .65rem; border-spacing: 0; min-width: 700px; overflow: hidden; width: 100%; }.obligation-history__table th, .obligation-history__table td { border-bottom: 1px solid #e6edef; padding: .75rem .9rem; text-align: left; vertical-align: top; }.obligation-history__table th { background: #f6fafa; color: #486168; font-size: .73rem; letter-spacing: .04em; text-transform: uppercase; }.obligation-history__table td { color: #2e484f; font-size: .88rem; }.obligation-history__table tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 760px) { .obligation-detail { align-items: stretch; flex-direction: column; gap: 1rem; }.obligation-detail dl { margin: 0; }.obligation-event-actions__footer { align-items: stretch; flex-direction: column; }.obligation-event-actions__footer .button-secondary, .obligation-event-actions__footer .button-text { text-align: center; width: 100%; } }

/* Obligation detail: component-scoped to keep the rest of the financial UI unchanged. */
.obligation-page-header { max-width: 960px; }.obligation-page-header__title { align-items: flex-start; display: flex; gap: 1rem; justify-content: space-between; }.obligation-page-header__title h1 { margin-bottom: .4rem; }.obligation-page-header__title .button-secondary { flex: 0 0 auto; margin-top: .55rem; }
.obligation-summary-card, .obligation-details-card, .obligation-actions-card, .obligation-history-card { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.25rem; max-width: 960px; padding: 1.2rem 1.3rem; }
.obligation-summary-card { align-items: center; background: #f8fbfb; border-color: #cfe2e1; display: flex; gap: 1rem; justify-content: space-between; }.obligation-summary-card__balance .eyebrow { margin: 0; }.obligation-summary-card__balance strong { color: #123d4a; display: block; font-size: clamp(1.65rem, 4vw, 2.15rem); letter-spacing: -.035em; line-height: 1.1; margin-top: .3rem; }
.obligation-details-card h2, .obligation-actions-card h2, .obligation-history-card h2 { color: #123d4a; font-size: 1.08rem; margin: 0; }.obligation-details-grid { display: grid; gap: .9rem 1.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1rem 0 0; }.obligation-details-grid div { background: #f8fbfb; border: 1px solid #e1ebed; border-radius: .55rem; padding: .75rem .85rem; }.obligation-details-grid dt { color: #73868c; font-size: .71rem; font-weight: 750; text-transform: uppercase; }.obligation-details-grid dd { color: #2e484f; line-height: 1.45; margin: .25rem 0 0; white-space: pre-line; }
.obligation-action-options { display: grid; gap: .75rem; margin-top: 1rem; }.obligation-action-option { background: #f8fbfb; border: 1px solid #dce7e9; border-radius: .65rem; }.obligation-action-option[open] { background: #fff; border-color: #b9dfd8; }.obligation-action-option summary { align-items: center; color: #285761; cursor: pointer; display: flex; gap: .75rem; list-style: none; padding: .8rem .9rem; }.obligation-action-option summary::-webkit-details-marker { display: none; }.obligation-action-option summary b { color: #173b43; display: block; font-size: .92rem; }.obligation-action-option summary small { color: #60777e; display: block; font-size: .8rem; margin-top: .15rem; }.obligation-action-option__icon { align-items: center; background: #d7ebe8; border-radius: 999px; color: #0d514b; display: inline-flex; flex: 0 0 1.8rem; font-size: 1.2rem; font-weight: 800; height: 1.8rem; justify-content: center; }.obligation-action-option__icon.is-decrease { background: #edf4f7; color: #285761; }.obligation-action-option form { border-top: 1px solid #e1ebed; display: grid; gap: .85rem; padding: .95rem; }.obligation-action-option form .button-link { border: 0; cursor: pointer; font: inherit; justify-self: start; margin: 0; }.obligation-actions-card__secondary { align-items: center; border-top: 1px solid #e1ebed; display: flex; gap: .65rem; margin-top: 1rem; padding-top: 1rem; }.obligation-actions-card__secondary form { margin: 0; }.button-danger-text { background: transparent; border: 1px solid transparent; border-radius: .5rem; color: #a22f39; cursor: pointer; font: inherit; font-size: .88rem; font-weight: 700; padding: .62rem .7rem; }.button-danger-text:hover, .button-danger-text:focus-visible { background: #fbeaec; border-color: #e6b8bd; outline: none; }
.obligation-history-card__header { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }.obligation-history-card__header .eyebrow { margin: 0 0 .2rem; }.obligation-history-card__header > span { color: #60777e; font-size: .84rem; }.obligation-history-card__empty { color: #597078; margin: .85rem 0 0; }.obligation-history-card .transactions-table-responsive { margin-top: 1rem; }.obligation-history__table { min-width: 720px; }.obligation-history__table th:nth-child(1), .obligation-history__table td:nth-child(1), .obligation-history__table th:nth-child(2), .obligation-history__table td:nth-child(2), .obligation-history__table th:nth-child(3), .obligation-history__table td:nth-child(3) { white-space: nowrap; }.obligation-history__amount { color: #173b43 !important; font-weight: 750; text-align: right !important; }.obligation-event-label { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; }.obligation-event-label.is-increase { background: #dcf2e8; color: #146046; }.obligation-event-label.is-decrease { background: #edf4f7; color: #285761; }

@media (max-width: 760px) { .obligation-page-header__title { align-items: stretch; flex-direction: column; }.obligation-page-header__title .button-secondary { align-self: flex-start; margin-top: 0; }.obligation-details-grid { grid-template-columns: 1fr; }.obligation-actions-card__secondary { align-items: stretch; flex-direction: column; }.obligation-actions-card__secondary .button-secondary, .obligation-actions-card__secondary .button-danger-text { text-align: center; width: 100%; } }

.obligation-link-action { color: #285761; font-size: .85rem; font-weight: 750; text-decoration: none; white-space: nowrap; }.obligation-link-action:hover, .obligation-link-action:focus-visible { color: #0d514b; text-decoration: underline; outline: none; }.obligation-linked-transaction { display: grid; gap: .18rem; min-width: 180px; }.obligation-linked-transaction b { color: #2e484f; font-size: .85rem; font-weight: 700; }.obligation-linked-transaction small { color: #60777e; }.obligation-linked-transaction form { margin: .2rem 0 0; }.obligation-linked-transaction .button-danger-text { font-size: .78rem; padding: .25rem 0; }
.obligation-link-event, .obligation-link-form { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.25rem; max-width: 760px; padding: 1.15rem 1.3rem; }.obligation-link-event { display: grid; gap: .25rem; }.obligation-link-event .eyebrow { margin: 0; }.obligation-link-event strong { color: #123d4a; font-size: 1.05rem; }.obligation-link-event span { color: #60777e; font-size: .9rem; }.obligation-link-form { padding: 0; }.obligation-link-form .form-actions { padding: 1rem 1.3rem 1.2rem; }.obligation-candidates { border: 0; display: grid; gap: .65rem; margin: 0; padding: 1.2rem 1.3rem 0; }.obligation-candidates legend { color: #123d4a; font-size: 1.05rem; font-weight: 750; padding: 0; }.obligation-candidates > p { color: #597078; font-size: .88rem; line-height: 1.45; margin: -.25rem 0 .25rem; }.obligation-candidate { align-items: center; background: #f8fbfb; border: 1px solid #e1ebed; border-radius: .6rem; cursor: pointer; display: grid; gap: .25rem .8rem; grid-template-columns: auto minmax(0, 1fr) auto; padding: .75rem .85rem; }.obligation-candidate:has(input:checked) { background: #eef8f6; border-color: #8fc6bd; }.obligation-candidate input { accent-color: #17736a; }.obligation-candidate span { display: grid; gap: .16rem; min-width: 0; }.obligation-candidate b { color: #294950; font-size: .9rem; overflow-wrap: anywhere; }.obligation-candidate small { color: #60777e; font-size: .79rem; }.obligation-candidate > strong { color: #173b43; font-size: .9rem; white-space: nowrap; }.obligation-candidate em { color: #825914; font-size: .75rem; font-style: normal; grid-column: 2 / -1; }

/* Pocket snapshots: deliberately scoped so they do not affect account cards or statement tables. */
.page-header-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem; }.pocket-snapshot-form { max-width: 900px; }.pocket-snapshot-date { max-width: 240px; }.pocket-snapshot-inputs { display: grid; gap: 1rem 1.15rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-top: 1.2rem; }.pocket-snapshot-inputs label { align-items: baseline; display: flex; justify-content: space-between; gap: .65rem; }.pocket-snapshot-inputs label small { color: #60777e; font-size: .73rem; font-weight: 600; }.pocket-snapshot-panel { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.5rem; max-width: 1180px; padding: 1.2rem 1.3rem; }.pocket-snapshot-panel__header { align-items: start; display: flex; gap: 1rem; justify-content: space-between; }.pocket-snapshot-panel__header h2 { color: #123d4a; font-size: 1.1rem; margin: 0; }.pocket-snapshot-panel__header p, .pocket-snapshot-help { color: #597078; font-size: .88rem; line-height: 1.45; margin: .45rem 0 0; }.pocket-snapshot-status, .pocket-snapshot-decision { background: #edf4f7; border-radius: 999px; color: #285761; display: inline-block; font-size: .76rem; font-weight: 750; padding: .3rem .62rem; white-space: nowrap; }.pocket-snapshot-status.is-confirmed { background: #dcf2e8; color: #146046; }.pocket-snapshot-table-responsive { margin-top: 1.1rem; overflow-x: auto; }.pocket-snapshot-table { border: 1px solid #dce7e9; border-collapse: separate; border-radius: .65rem; border-spacing: 0; min-width: 860px; overflow: hidden; width: 100%; }.pocket-snapshot-table th, .pocket-snapshot-table td { border-bottom: 1px solid #e6edef; padding: .72rem .82rem; text-align: left; vertical-align: middle; }.pocket-snapshot-table th { background: #f6fafa; color: #486168; font-size: .73rem; letter-spacing: .04em; text-transform: uppercase; }.pocket-snapshot-table td { color: #2e484f; font-size: .88rem; }.pocket-snapshot-table tbody tr:last-child td { border-bottom: 0; }.pocket-snapshot-table td:nth-child(2), .pocket-snapshot-table td:nth-child(3), .pocket-snapshot-table td:nth-child(4) { text-align: right; white-space: nowrap; }.pocket-snapshot-table td:first-child small { color: #60777e; display: block; font-size: .75rem; margin-top: .15rem; }.pocket-snapshot-table select, .pocket-snapshot-table input { min-width: 142px; width: 100%; }.pocket-snapshot-difference { font-weight: 750; }.pocket-snapshot-difference.is-positive { color: #146046; }.pocket-snapshot-difference.is-negative { color: #a22f39; }.pocket-snapshot-difference.is-zero { color: #60777e; }

@media (max-width: 760px) { .page-header-actions { align-items: stretch; flex-direction: column; width: 100%; }.page-header-actions a { text-align: center; }.pocket-snapshot-panel { padding: 1rem; }.pocket-snapshot-panel__header { align-items: stretch; flex-direction: column; }.pocket-snapshot-status { align-self: flex-start; } }

/* Card-statement payments: intentionally scoped to the card commitment flow. */
.card-payment-panel,.card-payment-candidates{background:#fff;border:1px solid #dce7e9;border-radius:.8rem;margin-top:1.5rem;max-width:920px;padding:1.2rem 1.3rem}.card-payment-panel__header{align-items:start;display:flex;gap:1rem;justify-content:space-between}.card-payment-panel__header h2{color:#123d4a;font-size:1.08rem;margin:.15rem 0 0}.card-payment-status{background:#edf4f7;border-radius:999px;color:#285761;font-size:.76rem;font-weight:750;padding:.3rem .62rem;white-space:nowrap}.card-payment-status.is-settled{background:#dcf2e8;color:#146046}.card-payment-status.is-partial{background:#fff3d6;color:#825914}.card-payment-summary{display:grid;gap:.8rem 1.2rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:1rem 0}.card-payment-summary div{border-left:2px solid #dce7e9;padding-left:.7rem}.card-payment-summary dt{color:#60777e;font-size:.78rem}.card-payment-summary dd{color:#173b43;font-size:1rem;font-weight:750;margin:.2rem 0 0}.card-payment-panel__notice,.card-payment-candidates__help{color:#597078;font-size:.86rem;line-height:1.45;margin:1rem 0}.card-payment-list{border-top:1px solid #e6edef;margin-top:1.15rem}.card-payment-list article{align-items:center;border-bottom:1px solid #e6edef;display:grid;gap:.7rem 1rem;grid-template-columns:minmax(0,1fr) auto auto;padding:.85rem 0}.card-payment-list strong{color:#294950;display:block;font-size:.9rem}.card-payment-list small{color:#60777e;display:block;font-size:.78rem;margin-top:.18rem}.card-payment-list dl{display:grid;gap:.35rem;margin:0}.card-payment-list dl div{display:grid;gap:.05rem}.card-payment-list dt{color:#60777e;font-size:.71rem}.card-payment-list dd{color:#2e484f;font-size:.84rem;font-weight:750;margin:0;text-align:right;white-space:nowrap}.card-payment-candidates{display:grid;gap:.75rem}.card-payment-candidates__help{margin:0 0 .1rem}.card-payment-candidate{align-items:end;background:#f8fbfb;border:1px solid #e1ebed;border-radius:.65rem;display:grid;gap:.75rem 1rem;grid-template-columns:minmax(0,1fr) auto; padding:.9rem}.card-payment-candidate strong{color:#294950;display:block;font-size:.9rem}.card-payment-candidate small{color:#60777e;display:block;font-size:.78rem;margin-top:.2rem}.card-payment-candidate__amounts{display:grid;gap:.2rem}.card-payment-candidate__amounts span{color:#60777e;font-size:.76rem;text-align:right}.card-payment-candidate__amounts b{color:#2e484f;font-size:.84rem;white-space:nowrap}.card-payment-candidate label{color:#486168;font-size:.78rem;font-weight:700;grid-column:1;max-width:220px}.card-payment-candidate input{margin-top:.3rem;width:100%}.card-payment-candidate button{grid-column:2;grid-row:2}@media(max-width:650px){.card-payment-panel,.card-payment-candidates{padding:1rem}.card-payment-panel__header,.card-payment-list article{align-items:stretch;grid-template-columns:1fr}.card-payment-panel__header{flex-direction:column}.card-payment-list dl{grid-template-columns:repeat(2,minmax(0,1fr))}.card-payment-list dd{text-align:left}.card-payment-candidate{align-items:stretch;grid-template-columns:1fr}.card-payment-candidate__amounts span{text-align:left}.card-payment-candidate label,.card-payment-candidate button{grid-column:auto;grid-row:auto;max-width:none}.card-payment-candidate button{text-align:center}}

/* Financial calendar and cycles: scoped independently from projections and account tables. */
.cycle-generator, .calendar-exception-form { background: #fff; border: 1px solid #dce7e9; border-radius: .8rem; margin-top: 1.5rem; max-width: 920px; padding: 1.2rem 1.3rem; }.cycle-generator h2, .calendar-exception-form h2 { color: #123d4a; font-size: 1.08rem; margin: 0; }.cycle-generator > p { color: #597078; font-size: .88rem; line-height: 1.45; margin: .45rem 0 1rem; }.cycle-generator form { align-items: end; display: flex; flex-wrap: wrap; gap: .7rem; }.cycle-generator label { color: #486168; font-size: .82rem; font-weight: 700; }.cycle-generator select { min-width: 140px; }.cycles-table-responsive { margin-top: 1.5rem; overflow-x: auto; }.cycles-table { background: #fff; border: 1px solid #dce7e9; border-collapse: separate; border-radius: .65rem; border-spacing: 0; min-width: 700px; overflow: hidden; width: 100%; }.cycles-table th, .cycles-table td { border-bottom: 1px solid #e6edef; padding: .75rem .9rem; text-align: left; vertical-align: middle; }.cycles-table th { background: #f6fafa; color: #486168; font-size: .73rem; letter-spacing: .04em; text-transform: uppercase; }.cycles-table td { color: #2e484f; font-size: .89rem; }.cycles-table tbody tr:last-child td { border-bottom: 0; }.cycle-status { border-radius: 999px; display: inline-block; font-size: .76rem; font-weight: 750; padding: .28rem .6rem; }.cycle-status.is-open { background: #dcf2e8; color: #146046; }.cycle-status.is-planned { background: #edf4f7; color: #285761; }.cycle-status.is-closed { background: #edf0f1; color: #5d7076; }
@media (max-width: 560px) { .cycle-generator form { align-items: stretch; flex-direction: column; }.cycle-generator form select, .cycle-generator form .button-link { width: 100%; } }

.projection-position{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:1.5rem 0}.projection-position div,.projection-cycle-card{background:#fff;border:1px solid #dce7e9;border-radius:.75rem}.projection-position div{padding:1rem}.projection-position span{color:#60777e;display:block;font-size:.8rem}.projection-position strong{color:#123d4a;display:block;font-size:1.25rem;margin-top:.35rem}.projection-horizon{align-items:center;display:flex;gap:.65rem;margin:1rem 0}.projection-warnings{background:#fff8e7;border:1px solid #edd69b;border-radius:.7rem;color:#70520d;margin:1rem 0;padding:.75rem 1rem}.projection-warnings summary{cursor:pointer;font-size:.88rem;font-weight:750}.projection-warnings ul{line-height:1.45;margin:.7rem 0 0;padding-left:1.2rem}.projection-cycles{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));margin-top:1.25rem}.projection-cycle-card{padding:1.1rem}.projection-cycle-card.is-current{border-color:#9acdb9;box-shadow:0 0 0 2px rgba(20,96,70,.08)}.projection-cycle-card__header{align-items:flex-start;display:flex;gap:.7rem;justify-content:space-between}.projection-cycle-card__header h2{color:#123d4a;font-size:1rem;letter-spacing:.04em;margin:0;text-transform:uppercase}.projection-cycle-card__header p{color:#60777e;font-size:.76rem;margin:.3rem 0 0}.projection-cycle-card__current{background:#dcf2e8;border-radius:999px;color:#146046;font-size:.72rem;font-weight:750;padding:.28rem .55rem}.projection-cycle-card__label{color:#60777e;font-size:.82rem;font-weight:700;margin:1.25rem 0 .3rem}.projection-cycle-card__margin{display:block;font-size:1.7rem;letter-spacing:-.025em;line-height:1.15}.projection-cycle-card__margin.is-positive{color:#146046}.projection-cycle-card__margin.is-negative{color:#a22f39}.projection-cycle-card__margin.is-zero{color:#60777e}.projection-cycle-card__details{border-top:1px solid #e6edef;margin-top:1.15rem;padding-top:.8rem}.projection-cycle-card__details summary{color:#285761;cursor:pointer;font-size:.85rem;font-weight:700}.projection-cycle-card__figures{display:grid;gap:.45rem;margin:1rem 0}.projection-cycle-card__figures div{display:flex;gap:1rem;justify-content:space-between}.projection-cycle-card__figures dt{color:#60777e}.projection-cycle-card__figures dd{color:#2e484f;font-weight:700;margin:0;text-align:right}.projection-cycle-card__breakdown{border-top:1px solid #e6edef;margin-top:1rem;padding-top:.9rem}.projection-cycle-card__breakdown section+section{margin-top:1rem}.projection-cycle-card__breakdown h3{color:#486168;font-size:.73rem;letter-spacing:.04em;margin:0 0 .45rem;text-transform:uppercase}.projection-cycle-card__breakdown p{color:#60777e;font-size:.82rem;margin:0}.projection-cycle-card__breakdown ul{list-style:none;margin:0;padding:0}.projection-cycle-card__breakdown li{align-items:baseline;border-top:1px solid #eef2f3;display:flex;font-size:.82rem;gap:.75rem;justify-content:space-between;padding:.4rem 0}.projection-cycle-card__breakdown li span{min-width:0}.projection-cycle-card__breakdown li strong{color:#2e484f;white-space:nowrap}@media(max-width:700px){.projection-position{grid-template-columns:1fr}.projection-horizon{align-items:stretch;flex-direction:column}.projection-horizon select,.projection-horizon button{width:100%}.projection-cycles{grid-template-columns:1fr}}
@media (max-width: 560px) { .obligation-candidate { grid-template-columns: auto minmax(0, 1fr); }.obligation-candidate > strong { grid-column: 2; }.obligation-candidate em { grid-column: 2; }.obligation-link-form .form-actions { align-items: stretch; flex-direction: column; }.obligation-link-form .form-actions .button-link, .obligation-link-form .form-actions .button-secondary { text-align: center; width: 100%; } }

/* Bank-statement review: context is kept in-place without changing shared alerts or tables. */
.review-toast, [data-review-toast] { align-items: center; box-shadow: 0 12px 30px rgba(19, 61, 74, .2); display: flex; gap: .8rem; left: 50%; margin: 0; max-width: min(34rem, calc(100vw - 2rem)); position: fixed; right: auto; top: 1rem; transform: translateX(-50%); width: max-content; z-index: 80; }
.review-toast button, [data-review-toast] button { background: transparent; border: 0; color: inherit; cursor: pointer; font-size: 1.2rem; line-height: 1; margin-left: auto; padding: .1rem .2rem; }
.ofx-transfer-review--compact { margin: 1.25rem 0 0; max-width: none; padding: 0; }
.ofx-transfer-review--compact > summary { align-items: center; cursor: pointer; display: flex; gap: 1rem; justify-content: space-between; list-style: none; padding: .9rem 1rem; }
.ofx-transfer-review--compact > summary::-webkit-details-marker { display: none; }
.ofx-transfer-review--compact > summary::before { color: #285761; content: '›'; font-size: 1.3rem; font-weight: 800; margin-right: .35rem; transition: transform .15s ease; }
.ofx-transfer-review--compact[open] > summary::before { transform: rotate(90deg); }
.ofx-transfer-review--compact > summary > span:first-child { display: flex; flex: 1; flex-direction: column; gap: .1rem; }
.ofx-transfer-review--compact summary small, .ofx-transfer-counts { color: #60777e; font-size: .82rem; font-weight: 600; }
.ofx-transfer-counts { white-space: nowrap; }
.ofx-transfer-hint { border-top: 1px solid #e1ebed; font-size: .86rem; padding: .75rem 1rem 0; }
.ofx-transfer-review--compact .ofx-transfer-list { gap: 0; margin: .7rem 1rem 1rem; }
.ofx-transfer-review--compact .ofx-transfer-list article { border-radius: 0; gap: .35rem; grid-template-columns: minmax(0, 1fr) minmax(14rem, .75fr); padding: .65rem .75rem; }
.ofx-transfer-review--compact .ofx-transfer-list article + article { border-top: 0; }
.ofx-transfer-review--compact .ofx-transfer-list article p { margin: .15rem 0; }
.ofx-transfer-review--compact .ofx-transfer-actions { border-top: 0; padding-top: 0; }
@media (max-width: 640px) { .review-toast { top: .75rem; }.ofx-transfer-review--compact > summary { align-items: flex-start; flex-wrap: wrap; }.ofx-transfer-counts { width: 100%; }.ofx-transfer-review--compact .ofx-transfer-list { margin-left: .65rem; margin-right: .65rem; }.ofx-transfer-review--compact .ofx-transfer-list article { grid-template-columns: 1fr; } }

.ofx-recurring-settlement { background: #fff8e7; border: 1px solid #edd69b; border-radius: .65rem; color: #70520d; margin: .8rem 0; padding: .8rem .9rem; }.ofx-recurring-settlement p { font-size: .86rem; margin: .35rem 0 .7rem; }.ofx-recurring-settlement > label { display: block; font-size: .88rem; font-weight: 700; margin-bottom: .7rem; }
