:root { font-family: Arial, Helvetica, sans-serif; color: var(--ink); background: var(--canvas); min-height: 100%; color-scheme: light; --canvas: #fff; --ink: #071a2b; --muted: #465675; --rule: #b9c7d8; --pane: #e9eef4; --selected: #dfe9f5; --button: #002031; --button-text: #fff; --accent: #ee682d; --field: #fff; --subtle: #f6f8fa; }
:root[data-theme=dark] { color-scheme: dark; --canvas: #15151d; --ink: #f1f0f6; --muted: #b6b5c9; --rule: #41414d; --pane: #22222e; --selected: #292b49; --button: #aaaaf2; --button-text: #1b1b2a; --accent: #a5a8e8; --field: #1b1b25; --subtle: #20202a; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; min-height: 100dvh; background: var(--canvas); color: var(--ink); font-size: 16px; line-height: 1.45; }
body:has(.preview-bar) { display: flex; flex-direction: column; }
body:has(.preview-bar) > #app { flex: 1; }
html.review-open,html.dialog-open { overflow: hidden; }
html.review-open body,html.dialog-open body { overflow: hidden; }
.review-pane { overflow-wrap: anywhere; }
button,input,select,textarea { font: inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
button { border: 0; border-radius: 0; color: inherit; background: none; cursor: pointer; min-height: 44px; padding: 8px 12px; }
button:disabled { opacity: .5; cursor: default; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
h1,h2,h3,p { margin: 0; }
h1,h2,h3 { letter-spacing: -.035em; line-height: 1.15; }
h2 { font-size: 28px; }
h3 { font-size: 22px; }
.brand { font-size: 29px; font-weight: 700; letter-spacing: -.06em; text-decoration: none; }
.topbar { min-height: 69px; display: flex; align-items: center; gap: 24px; padding: 0 25px 0 42px; border-bottom: 1px solid var(--rule); }
.topbar .brand { margin-right: 150px; }
.topbar nav { display: flex; align-items: stretch; align-self: stretch; gap: 43px; }
.nav-item { position: relative; padding: 12px 0; color: var(--muted); white-space: nowrap; }
.nav-item.active { color: var(--ink); }
.nav-item.active:after { content: ''; height: 3px; position: absolute; bottom: 13px; left: 0; right: 0; background: var(--accent); }
.badge { display: inline-grid; place-items: center; font-size: 12px; font-weight: 700; background: var(--accent); color: #fff; border-radius: 50%; margin-left: 9px; min-width: 23px; height: 23px; }
[data-theme=dark] .badge { background: #363748; color: #c2c3f4; }
.top-actions { display: flex; gap: 12px; align-items: center; margin-left: auto; }
.updated { font-size: 12px; color: var(--muted); white-space: nowrap; padding-right: 15px; border-right: 1px solid var(--rule); }
.month-controls { display: flex; align-items: center; gap: 8px; font-size: 13px; white-space: nowrap; }
.month-controls button { font-size: 11px; padding: 5px; }
.utility { font-size: 12px; padding: 5px; color: var(--muted); }
.primary,.secondary { border-radius: 6px; padding: 10px 20px; font-weight: 600; }
.primary { background: var(--button); color: var(--button-text); }
.primary:hover { filter: brightness(1.12); }
.secondary { border: 1px solid var(--rule); background: var(--field); }
.review-button { font-size: 14px; white-space: nowrap; }
.workspace { display: grid; grid-template-columns: minmax(0,1fr); }
.workspace.with-review { grid-template-columns: minmax(0,1fr) 31%; }
.main-content { min-width: 0; padding: 0 33px 45px 41px; container-type: inline-size; }
.month-heading { height: 115px; display: flex; align-items: center; gap: 25px; position: relative; border-bottom: 1px solid var(--rule); margin-right: -33px; padding-right: 180px; }
.month-number { font-family: 'Segoe UI Light', 'Segoe UI', sans-serif; font-size: 89px; font-weight: 300; line-height: 1; letter-spacing: -.065em; flex-shrink: 0; }
.month-heading > div:nth-child(2) { min-width: 0; }
.month-heading h1 { font-size: 37px; font-weight: 700; letter-spacing: -.045em; }
.month-heading h1 span { color: var(--muted); font-weight: 400; }
.month-heading p { font-size: 16px; color: var(--muted); margin-top: 3px; }
.color-month { position: absolute; right: 0; top: 0; height: 114px; width: 164px; background: #ef6a2d; color: #ffb080; font-family: 'Segoe UI Light', 'Segoe UI', sans-serif; font-size: 112px; font-weight: 300; line-height: 1; display: grid; place-items: center; letter-spacing: -.055em; }
.mobile-month-nav { display: none; }
[data-theme=dark] .color-month { display: none; }
.budget-groups { display: grid; grid-template-columns: 1fr 1.15fr .9fr; padding: 17px 0; margin: 0 -1px; min-height: 338px; border-bottom: 1px solid var(--rule); }
.budget-group { padding: 0 33px; border-left: 1px solid var(--rule); min-width: 0; container-type: inline-size; }
.budget-group:first-child { padding-left: 3px; border: 0; }
.budget-group:last-child { padding-right: 0; padding-left: 27px; }
.group-index { font-size: 14px; color: var(--muted); }
.budget-group h2 { font-size: 28px; margin: 2px 0 17px; }
.living { border-top: 1px solid var(--rule); padding-top: 13px; }
.living p { color: var(--muted); font-size: 18px; }
.living-amount { font-size: clamp(40px,4.1vw,64px); line-height: 1.2; font-weight: 700; letter-spacing: -.05em; white-space: nowrap; margin: 4px 0 0; }
.text-link { text-decoration: underline; text-underline-offset: 6px; padding: 3px 0; font-size: 16px; }
.allocation-link { margin-top: 25px; }
.envelope-list { margin: 0; border-top: 1px solid var(--rule); }
.envelope-list div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--rule); font-size: 17px; }
.envelope-list dt { color: var(--muted); min-width: 0; overflow-wrap: anywhere; }
.envelope-list dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; flex-shrink: 0; }
.budget-group:last-child .envelope-list div { padding: 14px 0; }
.budget-group:last-child .envelope-list div:last-child { border: 0; }
.group-total { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-top: 11px; font-size: 15px; color: var(--muted); }
.group-total strong { font-size: 23px; color: var(--ink); white-space: nowrap; margin-left: auto; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 9px 0 6px; }
.section-heading span { color: var(--muted); }
.activity-section { margin-top: 2px; }
.table-scroll { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: 16px; }
th { color: var(--muted); font-size: 14px; font-weight: 400; padding: 5px 7px; white-space: nowrap; }
td { border-bottom: 1px solid var(--rule); padding: 0 7px; height: 38px; color: var(--muted); }
td:first-child { width: 24%; }
td:nth-child(2) { width: 18%; }
td:nth-child(3) { width: 18%; }
@media (min-width: 761px) {
  .activity-section td:first-child { width: 40%; }
  .activity-section td:nth-child(2),.activity-section td:nth-child(3) { width: 10%; }
}
td.amount { color: var(--ink); }
.amount { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.row-button { text-align: left; padding: 3px 0; min-height: 37px; color: inherit; font-size: 16px; }
tr.selected { background: var(--selected); }
tr.selected td { color: var(--ink); }
tr.selected .amount { font-weight: 700; }
tbody tr:hover { background: var(--subtle); cursor: pointer; }
.pending-label { font-size: 11px; display: block; color: var(--muted); }
.mobile-label { display: none; }
.resources { border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1fr 20px 1fr 20px 1.1fr 1.4fr; gap: 12px; margin: 29px -1px 0; padding: 14px 0 0; }
.resources div { min-width: 0; }
.resources span { font-size: 14px; color: var(--muted); }
.resources strong { display: block; font-size: clamp(23px,2.5vw,38px); font-weight: 700; letter-spacing: -.035em; margin-top: 3px; white-space: nowrap; }
.resources .operator { margin-top: 29px; font-size: 26px; color: var(--ink); }
.resources .unassigned { border-left: 1px solid var(--rule); padding-left: 25px; }
.resources p { font-size: 13px; margin-top: 3px; color: var(--muted); }
.resources .rounding-note { grid-column: 1 / -1; font-size: 11px; margin-top: 2px; }
.review-pane { padding: 29px 33px 30px; background: var(--pane); border-left: 1px solid var(--rule); min-width: 0; min-height: calc(100vh - 69px); }
.pane-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.pane-heading h2 { font-size: 31px; }
.review-pane > .pane-heading { position:sticky; top:0; z-index:2; background:var(--pane); padding-bottom:12px; }
.review-pane > .pane-heading::before { content:''; position:absolute; inset:-32px 0 0; z-index:-1; background:var(--pane); }
.close { font-size: 12px; color: var(--muted); padding: 0; flex: 0 0 auto; min-width: 44px; white-space: nowrap; }
.merchant-title { font-size: 25px; margin-top: 18px; overflow-wrap: anywhere; }
.review-amount { font-size: 46px; font-weight: 700; letter-spacing: -.04em; margin: 0 0 20px; }
.source-section dl { margin: 5px 0 31px; }
.source-section dl div { display: grid; grid-template-columns: minmax(0,42fr) minmax(0,58fr); gap: 12px; border-top: 1px solid var(--rule); padding: 10px 0; font-size: 16px; }
.source-section dt { color: var(--muted); }
.source-section dd { margin: 0; overflow-wrap: anywhere; }
.review-section h3 { border-bottom: 1px solid var(--rule); padding-bottom: 6px; margin-bottom: 15px; }
label { display: grid; gap: 7px; color: var(--muted); font-size: 15px; }
input,select,textarea { border: 1px solid var(--rule); border-radius: 5px; padding: 9px 12px; width: 100%; min-width: 0; min-height: 44px; color: var(--ink); background: var(--field); }
textarea { min-height: 77px; resize: vertical; }
input::placeholder,textarea::placeholder { color: var(--muted); opacity: 1; }
.review-section form label { grid-template-columns: minmax(0,38fr) minmax(0,62fr); align-items: center; margin-bottom: 11px; }
.review-section form label:has(textarea) { align-items: start; }
.review-help { border-top: 1px solid var(--rule); padding-top: 13px; margin-top: 20px; font-size: 14px; color: var(--muted); }
.full { width: 100%; margin-top: 12px; }
.preview-caption { text-align: right; font-size: 12px; color: var(--muted); margin-top: 20px; }
.preview-bar { padding: 5px 22px; font-size: 11px; background: var(--subtle); border-top: 1px solid var(--rule); color: var(--muted); display: flex; justify-content: space-between; gap: 10px; flex-shrink: 0; }
.history { border-top: 1px solid var(--rule); margin-top: 25px; padding-top: 15px; }
.history article { border-bottom: 1px solid var(--rule); padding: 12px 0; font-size: 14px; }
.history p { overflow-wrap: anywhere; }
.small { font-size: 13px; margin-top: 6px; }
.muted { color: var(--muted); }
.filters { display: flex; align-items: end; gap: 18px; flex-wrap: wrap; margin: 15px 0 22px; }
.activity-section .filters { padding:16px; background:var(--subtle); border:1px solid var(--rule); border-radius:8px; margin-bottom:12px; }
.activity-section .filter-scope { margin-bottom:16px; }
.activity-table { border:1px solid var(--rule); border-radius:8px; background:var(--field); margin-top:16px; }
.activity-table th { padding:12px 14px; background:var(--subtle); border-bottom:1px solid var(--rule); font-size:13px; font-weight:600; }
.activity-table td { padding:12px 14px; vertical-align:middle; height:64px; }
.activity-table tbody tr:last-child td { border-bottom:0; }
.activity-table .row-button { color:var(--ink); font-size:16px; font-weight:500; min-height:32px; padding:0; line-height:1.4; }
:root { --approved-surface:#f0f1f2; --approved-ink:#5a626b; }
:root[data-theme=dark] { --approved-surface:#282830; --approved-ink:#b1b1bb; }
.activity-table tr.approved:not(.selected):not(.marked) { background:var(--approved-surface); }
.activity-table tr.approved:not(.selected):not(.marked) :is(td,.row-button,.merchant-meta,.coding-cell,.coding-status) { color:var(--approved-ink); }
.activity-table tr.approved:not(.selected):not(.marked) .note-marker { background:var(--field); color:var(--approved-ink); }
.activity-table .merchant-copy { min-width:0; flex:1; }
.merchant-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; font-size:13px; color:var(--muted); }
.merchant-meta > span { overflow-wrap:anywhere; }
.note-marker { display:inline-flex; align-items:center; gap:5px; min-height:28px; padding:2px 8px; border:1px solid var(--rule); border-radius:4px; font-size:12px; font-weight:600; background:var(--selected); color:var(--ink); }
.note-marker svg { width:15px; height:15px; }
.coding-cell { display:grid; gap:5px; color:var(--ink); }
.coding-status { font-size:13px; color:var(--muted); }
.coding-suggested { font-style:italic; }
.activity-table tr.selected td:first-child,.activity-table tr.marked td:first-child { box-shadow:inset 3px 0 var(--button); }
.transaction-note { margin-block:0 22px; padding:16px 18px; border:1px solid var(--rule); border-left:3px solid var(--button); border-radius:6px; background:var(--field); }
.transaction-note h3 { font-size:16px; letter-spacing:0; margin-bottom:10px; }
.note-text,.history-note { white-space:pre-wrap; overflow-wrap:anywhere; font-size:17px; line-height:1.55; color:var(--ink); }
.note-context { font-size:14px; color:var(--muted); margin-top:10px; }
.source-disclosure { border-block:1px solid var(--rule); margin-bottom:24px; }
.source-disclosure summary { display:list-item; padding-block:12px; font-weight:600; font-size:15px; }
.source-disclosure dl { margin-bottom:12px; }
.coding-summary { margin-bottom:20px; font-size:16px; line-height:1.5; }
.coding-saved-meta { font-size:14px; color:var(--muted); margin-top:8px; }
.review-pane .review-section label:has(textarea) { grid-template-columns:1fr; }
.review-pane textarea { min-height:100px; line-height:1.5; }
@media(min-width:1101px) {
  .workspace.with-review { align-items:start; }
  .workspace.with-review .review-pane { position:relative; height:auto; min-height:calc(100dvh - 69px); overflow:visible; scroll-margin-top:16px; }
}
.review-pane .history { scroll-margin-top:90px; }
.history-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:12px; }
.history-heading span { font-size:14px; color:var(--muted); }
.history-events { list-style:none; padding:0; margin:0; }
.history-events article { padding:18px 0; font-size:16px; }
.history-events header strong { display:block; font-size:16px; line-height:1.45; }
.history-events header p { margin-top:6px; font-size:14px; color:var(--muted); }
.history-events .history-note { margin-top:14px; padding:12px 14px; border-left:2px solid var(--rule); background:var(--field); }
.history-no-note { font-size:14px; color:var(--muted); margin-top:10px; }
@media(max-width:760px) {
  .activity-section .filters { padding:12px; }
  .activity-table { overflow:hidden; }
  .activity-table tbody tr { padding:14px 12px; }
  .activity-table td { height:auto; padding:4px 0; }
  .activity-table .row-button,.note-marker { min-height:44px; }
  .activity-table td.amount { font-size:15px; }
  .activity-table td:nth-child(4) { align-items:start; }
  .coding-cell { text-align:right; }
  .activity-table tr.selected td:first-child,.activity-table tr.marked td:first-child { box-shadow:none; }
}
.filter-scope { margin-block: 0 12px; }
.bulk-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-block:8px 12px; border-top:1px solid var(--rule); }
.bulk-actions + p { margin-bottom:14px; max-width:78ch; }
.merchant-cell { display:flex; align-items:center; gap:8px; }
.merchant-cell .row-button { min-width:0; overflow-wrap:anywhere; }
.row-select { display:flex; align-items:center; justify-content:center; flex:0 0 32px; min-height:44px; cursor:pointer; }
.row-select input { width:19px; height:19px; min-height:19px; accent-color:var(--button); }
tr.marked { background:var(--selected); }
#bulk-category-form label { display:grid; gap:8px; margin-block:18px; }
@media(max-width:760px) { .bulk-actions { gap:8px 12px; } .bulk-actions .check-label { flex-basis:100%; } .bulk-actions button { min-height:44px; } .selection-count { flex-basis:100%; } }
@media(max-width:760px) { .activity-section .bulk-actions .check-label { flex-basis:auto; margin-right:auto; } .activity-section .bulk-actions .selection-count { flex-basis:auto; } .activity-section .bulk-actions .primary,.activity-section .bulk-actions .secondary { flex:1 1 calc(50% - 12px); } }
.search-label { flex: 1; min-width: 180px; }
.check-label { display: flex; align-items: center; min-height: 44px; }
.check-label input { width: 19px; min-height: 19px; height: 19px; accent-color: var(--button); }
.empty-table { text-align: center; padding: 35px 15px; }
.page-section { padding-top: 32px; max-width: 1080px; }
.page-section > p { margin: 15px 0 25px; max-width: 640px; }
.account-list article { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid var(--rule); padding: 24px 0; }
.account-list h3 { margin-bottom: 5px; }
.account-balance { text-align: right; }
.account-balance strong { font-size: 30px; font-variant-numeric: tabular-nums; }
.account-list p { color: var(--muted); }
.rule-list { margin: 0; }
.rule-list div { display: flex; justify-content: space-between; border-top: 1px solid var(--rule); padding: 20px 0; gap: 15px; }
.rule-list dd { margin: 0; text-align: right; }
.rule-list span { display: block; color: var(--muted); font-size: 13px; }
.policy-note { border-top: 1px solid var(--rule); margin-top: 40px; padding-top: 20px; }
.policy-note h3 { margin-top: 14px; }
.policy-note p { color: var(--muted); margin: 7px 0 24px; }
.opening-state { padding: 45px 0; max-width: 560px; }
.opening-state h2 { font-size: 36px; margin: 10px 0 18px; }
.opening-state p { margin-bottom: 16px; color: var(--muted); }
.auth-shell { max-width: 500px; padding: 35px 30px 70px; margin: 0 auto; }
.auth-marker { margin: 70px 0 30px; width: 96px; height: 96px; display: grid; place-items: center; background: var(--accent); font-size: 60px; color: var(--button-text); letter-spacing: -.09em; }
.eyebrow { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.auth-shell h1 { font-size: 46px; margin: 15px 0 20px; }
.auth-intro { color: var(--muted); margin-bottom: 26px; }
.auth-shell > .primary { width: 100%; }
.setup { margin: 30px 0 22px; border-top: 1px solid var(--rule); padding-top: 20px; }
summary { cursor: pointer; min-height: 44px; }
.setup p { font-size: 14px; color: var(--muted); margin: 12px 0 18px; }
.setup form,dialog form { display: grid; gap: 18px; }
.preview-link { display: block; font-size: 14px; }
.auth-footnote { margin-top: 35px; font-size: 12px; color: var(--muted); }
dialog { border: 1px solid var(--rule); border-radius: 10px; width: min(550px,calc(100vw - 32px)); padding: 28px; color: var(--ink); background: var(--canvas); max-height: calc(100dvh - 40px); }
dialog::backdrop { background: #070b1999; }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.dialog-heading h2 { font-size: 28px; }
.dialog-heading button { font-size: 13px; }
dialog > p { color: var(--muted); margin-bottom: 23px; }
.passkey-list { margin: 25px 0; }
.passkey-list div { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid var(--rule); padding: 14px 0; }
.passkey-list span { font-size: 12px; color: var(--muted); grid-column: 1; }
.passkey-list button { grid-column: 2; grid-row: 1 / 3; }
.settings-actions { display: flex; justify-content: space-between; margin-top: 25px; gap: 16px; }
.plan-changes { margin-bottom: 20px; }
.plan-changes div { border-top: 1px solid var(--rule); padding: 12px 0; }
.plan-changes span { display: block; font-size: 13px; color: var(--muted); }
.notification { position: fixed; z-index: 10; bottom: 45px; left: 50%; transform: translateX(-50%); background: var(--button); color: var(--button-text); border-radius: 6px; padding: 16px 22px; width: max-content; max-width: calc(100vw - 32px); box-shadow: 0 8px 30px #0002; }
.skip-link { position: fixed; top: -60px; left: 20px; z-index: 20; padding: 10px; background: var(--canvas); }
.skip-link:focus { top: 10px; }
[data-theme=dark] .topbar { min-height: 63px; }
[data-theme=dark] .topbar .brand { margin-right: 240px; }
[data-theme=dark] .month-heading { height: 134px; border-bottom: 0; gap: 32px; padding-right: 0; }
[data-theme=dark] .month-number { font-size: 112px; }
[data-theme=dark] .month-heading h1 { font-size: 48px; }
[data-theme=dark] .budget-groups { min-height: 328px; }
[data-theme=dark] .budget-group h2 { font-size: 24px; }
[data-theme=dark] .section-heading { padding-top: 20px; }
[data-theme=dark] .pane-heading h2 { font-size: 28px; }
[data-theme=dark] .source-section { border-top: 1px solid var(--rule); padding-top: 21px; }
[data-theme=dark] .source-section dl div { border: 0; padding: 7px 0; }
[data-theme=dark] .source-section dl { margin-bottom: 23px; }
[data-theme=dark] .review-section { border-top: 1px solid var(--rule); padding-top: 21px; }
[data-theme=dark] .review-section h3 { border-bottom: 0; }
[data-theme=dark] .review-section label:has(textarea) { grid-template-columns: 1fr; margin-top: 17px; }
[data-theme=dark] .review-help { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
[data-theme=dark] .review-help p { flex: 1; font-size: 13px; }
[data-theme=dark] .review-help .text-link { flex: 0 0 auto; font-size: 13px; }
[data-theme=dark] .preview-caption { display: none; }
.review-section .primary { min-height: 52px; }
[data-theme=light] .source-section dl div { font-size: 18px; padding: 8px 0; }
[data-theme=light] .review-section form label { font-size: 17px; }
[data-theme=light] .review-section input,[data-theme=light] .review-section select,[data-theme=light] .review-section textarea { font-size: 17px; padding: 8px 12px; }
[data-theme=light] table,[data-theme=light] .row-button { font-size: 17px; }
[data-theme=dark] tr.selected { box-shadow: inset 3px 0 0 var(--accent); }
[data-theme=dark] .allocation-link,[data-theme=dark] .text-link { color: #c0c3fb; }
@media (max-width: 1370px) { .topbar { gap: 20px; padding-left: 30px; } .topbar .brand { margin-right: 25px; } .topbar nav { gap: 22px; } .updated { display: none; } .budget-group { padding: 0 20px; } .budget-group h2 { font-size: 23px; } .envelope-list div { font-size: 15px; } .group-total { flex-wrap: wrap; } .pane-heading h2 { font-size: 27px; } .review-pane { padding-left: 25px; padding-right: 25px; } }
@media (max-width: 1100px) { .topbar { flex-wrap: wrap; padding: 12px 25px 0; gap: 5px 24px; } .topbar .brand { margin-right: 0; } .topbar nav { gap: 22px; } .top-actions { width: 100%; justify-content: end; margin: 0; } .month-controls { margin-right: auto; } .workspace.with-review { grid-template-columns: minmax(0,1fr) 340px; } .main-content { padding-left: 25px; padding-right: 25px; } .month-heading { margin-right: -25px; padding-right: 100px; gap: 14px; } .color-month { width: 96px; font-size: 80px; } .month-number { font-size: 65px; } .month-heading h1 { font-size: 29px; } .month-heading p { font-size: 13px; } .budget-groups { grid-template-columns: 1fr; } .budget-group,.budget-group:last-child { padding: 16px 0; border-left: 0; border-bottom: 1px solid var(--rule); } .budget-group:last-child { border-bottom: 0; } .budget-group h2 { font-size: 26px; } .living-amount { font-size: 52px; } .living .allocation-link { margin-top: 10px; } .envelope-list div { font-size: 17px; padding: 7px 0; } .resources { grid-template-columns: 1fr 1fr; row-gap: 20px; } .resources .operator { display: none; } .resources .unassigned { padding-left: 0; border: 0; } table { min-width: 610px; } .review-pane { padding-top: 25px; } .review-section form label { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .topbar { padding: 15px 18px 0; gap: 12px; } .brand { font-size: 27px; } .topbar nav { order: 2; width: 100%; justify-content: space-between; gap: 14px; } .nav-item { padding: 8px 0 16px; } .nav-item.active:after { bottom: 7px; } .top-actions { width: auto; margin-left: auto; gap: 8px; } .top-actions .month-controls,.review-button { display: none; } .utility { font-size: 12px; } .workspace.with-review { display: block; } .main-content { padding: 0 18px 55px; } .month-heading { height: 110px; margin-right: -18px; gap: 13px; padding-right: 75px; } .month-number { font-size: 61px; } .month-heading h1 { font-size: 25px; } .month-heading p { font-size: 12px; } .color-month { width: 65px; height: 109px; font-size: 60px; } .budget-groups { padding: 5px 0; } .budget-group h2 { font-size: 28px; } .living-amount { font-size: 59px; } .section-heading h2 { font-size: 24px; } .section-heading .text-link { font-size: 14px; } .resources { grid-template-columns: 1fr 1fr; gap: 22px 12px; } .resources strong { font-size: 28px; } .resources span { font-size: 12px; } .review-pane { position: fixed; z-index: 5; inset: 0; overflow-y: auto; padding: 22px 22px 45px; border: 0; min-height: 100dvh; } .pane-heading h2 { font-size: 29px; } .review-section form label { grid-template-columns: minmax(0,38fr) minmax(0,62fr); } .review-amount { font-size: 48px; } .source-section dl div { font-size: 15px; } .preview-bar { font-size: 10px; padding: 5px 12px; gap: 10px; } .preview-bar a { white-space: nowrap; } .filters { gap: 10px 18px; } .search-label { flex-basis: 100%; } .page-section h2 { font-size: 29px; } .account-list article { flex-direction: column; } .account-balance { text-align: left; } .auth-marker { margin-top: 45px; } .auth-shell h1 { font-size: 40px; } }
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; } }
@media (max-width: 760px) { .mobile-month-nav { display: flex; justify-content: space-between; border-bottom: 1px solid var(--rule); color: var(--muted); font-size: 12px; } }
@media (max-width: 760px) {
  .review-pane { min-height: 0; height: 100dvh; overflow-x: hidden; overscroll-behavior: contain; padding-top: max(22px,env(safe-area-inset-top)); padding-bottom: max(45px,env(safe-area-inset-bottom)); }
  .review-pane .source-section dd { min-width: 0; }
  .review-pane select,.review-pane input,.review-pane textarea { font-size: 16px; }
  .table-scroll { overflow: visible; }
  table { min-width: 0; display: block; }
  thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  tbody { display: block; }
  tbody tr { display: grid; grid-template-columns: minmax(0,1fr) auto; padding: 10px 7px 15px; border-bottom: 1px solid var(--rule); }
  td,td:first-child,td:nth-child(2),td:nth-child(3) { border: 0; width: auto; height: auto; padding: 3px 0; }
  td:first-child { grid-column: 1; grid-row: 1; }
  td.amount { grid-column: 2; grid-row: 1; align-self: center; padding-left: 10px; }
  td:nth-child(2),td:nth-child(3),td:nth-child(4) { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
  .mobile-label { display: inline; opacity: .9; }
  .row-button { min-height: 44px; overflow-wrap: anywhere; }
  .empty-table { grid-column: 1 / -1; }
}
@media (max-width: 1370px) { [data-theme=dark] .topbar .brand { margin-right: 25px; } }
@media (max-width: 1100px) { [data-theme=dark] .topbar .brand { margin-right: 0; } [data-theme=dark] .month-number { font-size: 65px; } [data-theme=dark] .month-heading h1 { font-size: 29px; } [data-theme=dark] .month-heading { gap: 14px; padding-right: 0; } }
@media (max-width: 760px) { [data-theme=dark] .month-heading { height: 110px; } [data-theme=dark] .month-number { font-size: 61px; } [data-theme=dark] .month-heading h1 { font-size: 25px; } [data-theme=dark] .review-section label:has(textarea) { grid-template-columns: 1fr; } }
@media (max-width: 760px) { [data-theme=light] .source-section dl div { font-size: 15px; padding: 10px 0; } [data-theme=light] .review-section form label { font-size: 15px; } [data-theme=light] .review-section input,[data-theme=light] .review-section select,[data-theme=light] .review-section textarea { font-size: 16px; } }
@media (min-width: 761px) and (max-width: 1100px) {
  .workspace.with-review { display: block; }
  .review-pane { position: fixed; z-index: 5; inset: 0; height: 100dvh; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 30px max(30px,calc((100vw - 650px)/2)) 45px; border: 0; }
  .review-section form label { grid-template-columns: minmax(0,38fr) minmax(0,62fr); }
}
/* Approved opening and month-end reviews. One page owns scrolling at every size. */
.workflow-workspace.with-flow-pane { grid-template-columns: minmax(0,1fr) minmax(370px,32%); min-height: calc(100dvh - 69px); }
.workflow-pane { background: var(--pane); border-left: 1px solid var(--rule); min-width: 0; padding: 28px 32px 65px; }
.workflow-pane .pane-heading { position: relative; display: block; padding-right: 90px; }
.workflow-pane .pane-heading h2 { font-size: 30px; }
.workflow-pane .pane-heading .text-link { position: absolute; right: 0; top: 0; font-size: 12px; }
.flow-heading { padding: 26px 0 24px; }
.flow-heading h2 { font-size: clamp(30px,3vw,46px); margin: 7px 0; }
.flow-heading > p:not(.eyebrow) { color: var(--muted); font-size: 18px; }
.opening-groups { padding-top: 0; min-height: 310px; }
.opening-groups .budget-group h2 { font-size: 27px; }
.flow-section { border-top: 1px solid var(--rule); padding: 20px 0; }
.flow-section h3 { font-size: 25px; margin-bottom: 17px; }
.flow-section p { color: var(--muted); margin-top: 10px; }
.flow-totals { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 12px 0; gap: 0; }
.flow-totals > div { padding: 0 22px; border-left: 1px solid var(--rule); min-width: 0; }
.flow-totals > div:first-child { padding-left: 0; border: 0; }
.flow-totals span { color: var(--muted); font-size: 15px; }
.flow-totals strong { display: block; font-size: clamp(25px,3vw,43px); letter-spacing: -.035em; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.flow-label { margin-top: 25px; font-size: 19px; }
.effective-period { display: block; font-size: 39px; letter-spacing: -.04em; margin-bottom: 25px; }
.status-row { display: flex; align-items: center; gap: 24px; font-size: 18px; }
.evidence-status { border-radius: 16px; padding: 4px 12px; background: var(--selected); font-size: 14px; font-weight: 400; }
[data-theme=light] .evidence-status { color: #99350d; background: #fff0e4; }
.workflow-pane form { display: grid; gap: 18px; }
.workflow-pane .check-label { align-items: start; line-height: 1.5; }
.workflow-pane .check-label input { flex: 0 0 20px; margin: 2px 4px 0 0; }
.workflow-pane .full { margin-top: 0; min-height: 50px; }
.close-step { padding: 10px 0 25px; border-bottom: 1px solid var(--rule); margin-bottom: 12px; }
.step-heading { display: flex; gap: 35px; align-items: baseline; border-bottom: 1px solid var(--rule); padding-bottom: 8px; margin-bottom: 10px; }
.step-heading span { color: var(--muted); }
.step-heading h3 { font-size: 23px; letter-spacing: -.02em; }
.close-step .flow-totals,.contribution-list { margin-left: 55px; }
.contribution-list { border: 0; }
.contribution-list div { font-size: 17px; padding: 6px 0; }
.coverage-note { color: var(--muted); margin: 12px 0 0 55px; font-size: 14px; }
.remainder-amount { font-size: 56px; line-height: 1.15; font-weight: 700; letter-spacing: -.035em; margin-top: 18px; overflow-wrap: anywhere; }
.fund-inputs { display: grid; gap: 8px; margin-top: 8px; }
.fund-inputs label { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); align-items: center; font-size: 18px; color: var(--ink); }
.assignment-totals { border-block: 1px solid var(--rule); padding: 15px 0; }
.assignment-totals div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.assignment-totals strong { font-size: 24px; font-variant-numeric: tabular-nums; }
.balance-comparison { font-size: 14px; margin: 5px 0 18px; }
.balance-comparison > div { display: grid; grid-template-columns: minmax(0,1.1fr) repeat(2,minmax(0,1fr)); gap: 8px; border-bottom: 1px solid var(--rule); padding: 8px 0; align-items: baseline; }
.balance-comparison span:not(:first-child),.balance-comparison strong { text-align: right; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.balance-comparison .comparison-head { color: var(--muted); font-size: 12px; border: 0; }
.flow-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.flow-blockers { padding: 16px 0; border-block: 1px solid var(--accent); margin-bottom: 20px; }
.flow-blockers p { margin: 0 0 10px; }
.flow-error:empty { display: none; }
.flow-error { color: var(--ink); border-left: 3px solid var(--accent); padding-left: 10px; }
.close-history article { border-top: 1px solid var(--rule); padding: 22px 0; }
.close-history article > p { color: var(--muted); margin-bottom: 12px; }
.close-history { margin-bottom: 24px; }
.undo-consequences { margin-bottom: 20px; }
.month-end-actions { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; flex-wrap: wrap; }
.month-end-actions > div { display: flex; flex-wrap: wrap; gap: 20px; }
.month-end-actions p { color: var(--muted); }
.policy-note > button { margin-right: 18px; }
.month-end-flow .flow-heading { padding: 12px 0 24px; }
.month-end-flow .flow-heading h2 { font-size: 36px; }
.month-end-flow .close-step .flow-totals strong { font-size: 32px; }
.month-end-flow .close-step { padding-bottom: 17px; margin-bottom: 8px; }
.month-end-flow .flow-heading { padding-bottom: 16px; }
.month-end-flow .close-step .flow-totals { padding-block: 8px; }
.month-end-flow .contribution-list div { padding-block: 4px; }
.month-end-flow .contribution-total { padding-top: 5px; }
.month-end-flow > .main-content > .flow-section .flow-totals strong { font-size: 34px; }
.month-end-flow > .main-content > .flow-section { padding-top: 14px; }
.month-end-flow > .main-content > .flow-section .flow-totals { padding-block: 6px; }
.month-end-flow > .main-content > .flow-section .flow-totals strong { line-height: 1.2; }
.contribution-list .shortfall-row { display: grid; grid-template-columns: minmax(0,1fr) 120px minmax(0,1.5fr); }
.contribution-list .coverage-detail { white-space: normal; color: var(--muted); font-size: 14px; }
#fund-dollar-help { font-size: 12px; margin-top: 0; margin-bottom: -14px; }
.month-end-flow .workflow-pane form { gap: 14px; }
.month-end-flow .workflow-pane .pane-heading h2 { font-size: 28px; }
.month-end-flow .workflow-pane > .muted { margin-top: 7px; font-size: 18px; }
.contribution-total { margin-left: 55px; color: var(--ink); }
@media (max-width: 1100px) {
  .workflow-workspace.with-flow-pane { grid-template-columns: minmax(0,1fr); }
  .workflow-pane { border-left: 0; border-top: 1px solid var(--rule); padding: 25px max(25px,calc((100vw - 680px)/2)) 65px; }
  .workflow-workspace .main-content { padding-bottom: 24px; }
  .workflow-workspace .opening-groups { min-height: 0; }
  .workflow-workspace .month-heading { padding-right: 100px; }
  [data-theme=dark] .workflow-workspace .month-heading { padding-right: 0; }
}
@media (max-width: 760px) {
  .workflow-pane { padding: 25px 18px 65px; }
  .workflow-pane .pane-heading h2 { font-size: 27px; }
  .workflow-workspace .month-heading { padding-right: 70px; }
  .flow-heading h2 { font-size: 32px; }
  .flow-totals { gap: 14px; grid-template-columns: 1fr; }
  .flow-totals > div,.flow-totals > div:first-child { border: 0; padding: 0; display: flex; gap: 15px; justify-content: space-between; align-items: baseline; }
  .flow-totals strong { font-size: 29px; text-align: right; }
  .flow-totals span { font-size: 14px; }
  .close-step .flow-totals,.contribution-list,.coverage-note { margin-left: 0; }
  .step-heading { gap: 20px; }
  .remainder-amount { font-size: 49px; }
  .effective-period { font-size: 34px; }
  .workflow-pane .balance-comparison { font-size: 13px; }
  .workflow-pane input,.workflow-pane textarea,.workflow-pane select { font-size: 16px; }
  .opening-groups .budget-group h2 { font-size: 27px; }
  .contribution-total { margin-left: 0; }
  .month-end-flow .flow-heading h2 { font-size: 32px; }
  .contribution-list .shortfall-row { grid-template-columns: minmax(0,1fr) auto; }
  .contribution-list .coverage-detail { grid-column: 1 / -1; }
}
/* Use the content column's width: a side pane can halve a desktop page. */
@container (max-width: 1100px) {
  .resources { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 20px; }
  .resources .operator { display: none; }
  .resources .unassigned { border: 0; padding-left: 0; }
}
@container (max-width: 350px) {
  .resources { grid-template-columns: minmax(0,1fr); }
}
@container (max-width: 220px) {
  .envelope-list div { flex-wrap: wrap; }
  .envelope-list dd { margin-left: auto; }
}
.resources strong { font-size: clamp(23px,2.5vw,38px); }
.account-list article > div { min-width: 0; overflow-wrap: anywhere; }
.account-balance strong { white-space: nowrap; }
.section-heading > *, .pane-heading h2 { min-width: 0; }
.section-heading .text-link { flex-shrink: 0; }
.workflow-pane .pane-heading h2 { overflow-wrap: normal; }
@media (max-width: 760px) {
  .resources strong { font-size: 28px; }
}

/* The toolbar groups workspace, period, review and preferences by purpose. */
.topbar { padding: 12px 32px; gap: 32px; min-height: 76px; }
.topbar .brand,[data-theme=dark] .topbar .brand { margin-right: 0; }
.topbar nav { gap: 26px; align-items: center; align-self: stretch; }
.topbar .nav-item { min-height: 50px; padding: 12px 0; }
.topbar .nav-item.active:after { bottom: 1px; }
.top-actions { display: flex; width: auto; align-items: center; gap: 12px; margin-left: auto; }
.header-icon { display: block; width: 18px; height: 18px; flex-shrink: 0; }
.header-disclosure { position: relative; font-size: 13px; }
.header-disclosure summary { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none; white-space: nowrap; }
.header-disclosure summary::-webkit-details-marker { display: none; }
.header-disclosure[open] > summary { background: var(--selected); }
.header-disclosure summary:hover,.topbar .utility:hover,.month-controls > button:hover { background: var(--selected); color: var(--ink); }
.workspace-switch > summary { padding: 0 12px; border-radius: 6px; color: var(--muted); }
.workspace-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.workspace-short,.month-short { display: none; }
.header-popover { position: absolute; z-index: 9; top: calc(100% + 9px); right: 0; width: 284px; padding: 12px; background: var(--pane); border-radius: 6px; box-shadow: 0 8px 28px #0002; color: var(--ink); }
.workspace-options p { color: var(--muted); font-size: 12px; padding: 4px 10px 12px; }
.workspace-options a { display: block; padding: 10px; border-radius: 4px; text-decoration: none; font-weight: 600; }
.workspace-options a:hover { background: var(--selected); }
.workspace-options a span { display: block; color: var(--muted); font-size: 12px; font-weight: 400; margin-top: 3px; }
.month-controls { display: flex; align-items: stretch; gap: 0; border: 1px solid var(--rule); border-radius: 6px; background: var(--subtle); margin: 0; }
.month-controls > button { display: grid; place-items: center; width: 44px; min-width: 44px; padding: 0; font-size: inherit; border-radius: 5px 0 0 5px; }
.month-controls > button:last-child { border-radius: 0 5px 5px 0; }
.period-switch > summary { border-inline: 1px solid var(--rule); padding: 0 12px; font-weight: 600; min-width: 175px; }
.period-switch > summary .header-icon:last-child { width: 14px; height: 14px; color: var(--muted); }
.year-controls { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; margin-bottom: 8px; }
.year-controls strong { text-align: center; font-size: 15px; font-variant-numeric: tabular-nums; }
.year-controls button { display: grid; place-items: center; border-radius: 4px; }
.month-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; }
.month-grid button { min-height: 44px; padding: 8px 0; border-radius: 4px; font-size: 13px; }
.year-controls button:hover,.month-grid button:hover { background: var(--selected); }
.month-grid button[aria-pressed=true] { color: var(--button-text); background: var(--button); font-weight: 600; }
.current-month { width: 100%; margin-top: 8px; border-top: 1px solid var(--rule); text-align: left; font-size: 13px; }
.topbar .review-button { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 46px; padding: 0 16px; font-size: 14px; }
.review-count { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 5px; border: 1px solid currentColor; border-radius: 4px; font-size: 12px; font-variant-numeric: tabular-nums; }
.header-utilities { display: flex; align-items: center; gap: 0; padding-left: 12px; border-left: 1px solid var(--rule); }
.topbar .utility { display: flex; align-items: center; justify-content: center; gap: 7px; min-width: 44px; min-height: 44px; padding: 0 10px; border-radius: 6px; font-size: 13px; color: var(--muted); }
.example-orientation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; padding: 16px 0; border-bottom: 1px solid var(--rule); font-size: 14px; color: var(--muted); }
.example-orientation strong { color: var(--ink); font-weight: 600; }
.example-orientation > div { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.example-orientation a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.example-orientation .secondary { text-decoration: none; color: var(--ink); font-size: 14px; }
.example-tag { font-size: 11px; color: var(--muted); font-weight: 400; border-left: 1px solid var(--rule); padding-left: 10px; }
@media (max-width: 1420px) {
  .topbar { flex-wrap: wrap; gap: 6px 32px; padding: 12px 25px; }
  .topbar nav { margin-left: auto; }
  .top-actions { width: 100%; margin: 0; padding-top: 6px; }
  .workspace-switch { margin-right: auto; }
}
@media (min-width: 761px) and (max-width: 980px) {
  .topbar .utility > span { display: none; }
  .top-actions { justify-content: space-between; }
}
@media (max-width: 760px) {
  .topbar { display: grid; grid-template-columns: minmax(0,1fr) auto auto; padding: 10px 18px 12px; gap: 8px; }
  .topbar .brand { grid-row: 1; grid-column: 1; font-size: 27px; }
  .topbar nav { grid-row: 2; grid-column: 1 / -1; width: 100%; margin: 0; gap: 12px; justify-content: space-between; order: 0; }
  .topbar .nav-item { padding: 8px 0 12px; min-height: 44px; font-size: 15px; }
  .topbar .nav-item.active:after { bottom: 1px; }
  .top-actions { display: contents; }
  .workspace-switch { grid-row: 1; grid-column: 2; margin: 0; }
  .workspace-switch > summary { font-size: 12px; padding: 0 6px; gap: 6px; }
  .workspace-switch > summary .header-icon { width: 14px; height: 14px; }
  .workspace-full,.month-full { display: none; }
  .workspace-short,.month-short { display: inline; }
  .workspace-options { right: -88px; max-width: calc(100vw - 36px); }
  .header-utilities { grid-row: 1; grid-column: 3; padding: 0; border: 0; }
  .topbar .utility { padding: 0; }
  .topbar .utility > span { display: none; }
  .top-actions .month-controls { grid-row: 3; grid-column: 1 / 3; display: flex; min-width: 0; }
  .period-switch { flex: 1; min-width: 0; }
  .period-switch > summary { min-width: 0; padding: 0 6px; gap: 4px; font-size: 12px; }
  .period-switch > summary .header-icon { display: none; }
  .period-switch .header-popover { left: -45px; right: auto; max-width: calc(100vw - 36px); }
  .topbar .review-button { grid-row: 3; grid-column: 3; padding: 0 10px; gap: 7px; font-size: 13px; }
  .review-count { min-width: 21px; height: 23px; }
  .example-orientation { font-size: 13px; }
  .example-orientation .secondary { font-size: 13px; padding: 10px 12px; }
  .example-orientation > div { gap: 6px 16px; }
}
@media (max-width: 380px) {
  .topbar { padding-inline: 14px; column-gap: 5px; }
  .topbar .brand { font-size: 24px; }
  .workspace-switch > summary { font-size: 11px; gap: 4px; padding: 0 4px; }
  .topbar .review-button { padding-inline: 7px; gap: 5px; }
}
.review-period-field { display: grid; grid-template-columns: minmax(0,38fr) minmax(0,62fr); align-items: center; margin-bottom: 11px; gap: 12px; color: var(--muted); }
.review-period-switch { position: relative; min-width: 0; color: var(--ink); }
.review-period-switch summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 44px; padding: 10px 12px; border: 1px solid var(--rule); border-radius: 5px; background: var(--field); list-style: none; cursor: pointer; font-size: 14px; }
.review-period-switch summary::-webkit-details-marker { display: none; }
.review-period-switch .month-picker { width: 284px; max-width: calc(100vw - 44px); }
.review-period-label { overflow-wrap: anywhere; }
.review-period-switch[open] summary { background: var(--selected); }
.review-period-field > span { font-size: 15px; }
.review-pane .secondary.full { margin-top: 10px; }
@media (max-width: 760px) { .review-period-switch summary { font-size: 16px; } }


/* Local operations reuse the approved ruled layouts and existing control tokens. */
.operation-actions { display:flex; flex-wrap:wrap; gap:10px; }
.source-status { padding-block:12px 24px; border-bottom:1px solid var(--rule); }
.source-status p { margin-block:6px; }
@media (max-width:760px) { .operation-actions { width:100%; } .operation-actions button { flex:1; } .page-section>.section-heading { flex-wrap:wrap; } }


@media(max-width:760px) { .operation-actions button { flex:1 1 calc(50% - 5px); min-height:44px; } .operation-actions .text-link { flex-basis:100%; text-align:left; } }
/* Approved Cash review: incumbent tokens, flat sections, one page scroll owner. */
.cash-main { padding: 30px 0 40px; }
.cash-title { display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px; }
.cash-title h1 { font-size:36px;letter-spacing:-.03em; }
.cash-title p { margin-top:10px;color:var(--muted);max-width:70ch; }
.cash-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--rule);margin:0 0 30px; }
.cash-summary div { padding:15px 24px;border-left:1px solid var(--rule); }
.cash-summary div:first-child { border:0;padding-left:0; }
.cash-summary dt { font-size:14px;color:var(--muted); }
.cash-summary dd { margin:5px 0 0;font-size:29px;font-weight:700;font-variant-numeric:tabular-nums; }
.cash-columns { display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,1fr);gap:40px; }
.cash-yield { padding-bottom:28px;border-bottom:1px solid var(--rule);margin-bottom:25px; }
.cash-yield h2,.cash-timeline h2 { font-size:27px; }
.cash-yield > p,.cash-timeline > p { margin-top:12px;max-width:72ch; }
.cash-yield-controls { display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:18px;margin-top:20px; }
.cash-yield-controls [hidden] { display:none; }
.cash-yield-values { display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;margin:22px 0 0; }
.cash-yield-values dt { font-size:14px;color:var(--muted); }
.cash-yield-values dd { margin:5px 0 0;font-size:29px;font-weight:700;font-variant-numeric:tabular-nums; }
.cash-yield-values div:first-child dd { font-size:46px;letter-spacing:-.03em; }
.cash-date-controls { display:flex;align-items:end;gap:18px;margin:15px 0; }
.cash-chart { display:block;width:100%;height:auto;max-height:410px;margin-top:18px; }
.cash-chart text { fill:var(--muted);font:14px Arial; }
.cash-grid { stroke:var(--rule); }
.cash-trigger { stroke:var(--accent);stroke-dasharray:6 5; }
.cash-trace { stroke:var(--ink);stroke-width:3;fill:none; }
.cash-working { stroke:var(--muted);stroke-dasharray:2 4; }
.cash-zero { stroke:var(--muted); }
.cash-refill-point { fill:var(--accent);stroke:var(--canvas);stroke-width:2; }
.cash-deposit-point { fill:var(--ink);stroke:var(--canvas);stroke-width:2; }
.cash-deposit-heading { margin-top:25px; }
.cash-deposits td,.cash-deposits th { height:auto;padding:10px 7px; }
.cash-chart-options { display:flex;gap:10px;flex-wrap:wrap;margin-top:15px; }
.cash-chart-options [aria-pressed=true] { background:var(--ink);color:var(--canvas);border-color:var(--ink); }
.cash-chart-legend { display:flex;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin:12px 0; }
.cash-chart-legend span::before { content:'';display:inline-block;width:24px;margin-right:8px;vertical-align:middle;border-top:2px dotted var(--muted); }
.cash-chart-legend .cash-legend-trigger::before { border-top:2px dashed var(--accent); }
.cash-refill-schedule { padding-left:22px;margin:16px 0; }
.cash-refill-schedule li { padding:5px 0; }
.cash-timeline { border-bottom:1px solid var(--rule);padding-bottom:25px;margin-bottom:28px; }
.cash-comparison { margin-top:14px; }
.cash-comparison summary { cursor:pointer;min-height:44px;padding:10px 0;text-decoration:underline;text-underline-offset:4px; }
.cash-comparison p { margin:8px 0;max-width:72ch; }
.cash-plan-warning { max-width:72ch; }
.cash-calculation-details { border-top:1px solid var(--rule);padding-top:12px; }
.cash-calculation-details > summary { font-size:21px;font-weight:600; }
.cash-calculation-details table { margin-top:20px;table-layout:fixed;width:100%; }
.cash-calculation-details td { overflow-wrap:anywhere; }
.cash-calculation-details th:first-child { width:18%; }
.cash-calculation-details th:last-child { width:23%; }
.cash-dates { display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:20px; }
.cash-timeline table { margin-top:18px;table-layout:fixed;min-width:0; }
.cash-timeline td { padding:10px 7px;height:auto;overflow-wrap:anywhere; }
.cash-timeline th:first-child,.cash-timeline td:first-child { width:22%; }
.cash-timeline th:nth-child(2),.cash-timeline td:nth-child(2) { width:56%; }
.cash-timeline th:last-child,.cash-timeline td:last-child { width:22%; }
.cash-assumptions { background:var(--pane);padding:25px;align-self:start;min-width:0; }
.cash-assumptions h2 { font-size:25px;margin-bottom:15px; }
.cash-assumptions dl { margin:0; }
.cash-assumptions dl div { display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--rule);padding:12px 0; }
.cash-assumptions dt { color:var(--muted); }.cash-assumptions dd { margin:0;white-space:nowrap; }
.cash-assumptions h3 { font-size:21px;margin:27px 0 8px; }
.cash-assumptions > p { margin-top:12px; }
.cash-missing { margin:0;padding:0;list-style:none; }
.cash-missing li { padding:12px 0;border-bottom:1px solid var(--rule);font-size:15px;overflow-wrap:anywhere; }
.cash-source { margin-top:20px; }.cash-source p { margin-top:15px;overflow-wrap:anywhere; }
.cash-source summary,.cash-policy-editor summary,.cash-history summary,.cash-links summary { cursor:pointer;padding:12px 0;min-height:44px; }
.cash-actions { display:flex;gap:15px;align-items:center;border-top:1px solid var(--rule);padding-top:22px;margin-top:25px; }
.cash-actions p { max-width:55ch; }
.cash-policy-editor,.cash-history { border-top:1px solid var(--rule);margin-top:28px;padding-top:10px; }
.cash-policy-editor > summary,.cash-history > summary { font-size:21px;font-weight:600; }
.cash-policy-editor h3,.cash-history h3 { margin-top:24px;font-size:22px; }
.cash-form-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 0; }
.cash-bill { margin:20px 0;padding:20px;border:1px solid var(--rule);min-width:0; }
.cash-bill legend { font-size:17px;font-weight:600;padding:0 8px; }
.cash-links select { min-height:90px; }.cash-links option { white-space:normal; }
.cash-note { margin:22px 0;max-width:70ch; }
.cash-review { background:var(--pane);border-top:1px solid var(--rule);margin-top:25px;padding:25px; }
.cash-review h2 { font-size:26px; }.cash-review > form > p { margin:15px 0;max-width:70ch; }
.cash-review-values { margin:20px 0; }.cash-review-values div { display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--rule); }
.cash-review-values dt { color:var(--muted); }.cash-review-values dd { margin:0; }
.cash-error { margin:18px 0;max-width:70ch; }
.cash-history article { padding:15px 0;border-bottom:1px solid var(--rule); }.cash-history p { margin-top:8px;overflow-wrap:anywhere; }
.cash-scenario { border-bottom:1px solid var(--rule);padding-bottom:25px;margin-bottom:28px; }
.cash-scenario h2 { font-size:26px;margin-bottom:8px; }
.cash-scenario > p { margin-top:12px;max-width:85ch; }
.cash-scenario-controls { display:flex;align-items:end;gap:18px;flex-wrap:wrap;margin-top:18px; }
.cash-scenario-controls label { flex:1;min-width:190px; }
.cash-capacity-values { display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:25px 0 12px; }
.cash-capacity-values dt { color:var(--muted);font-size:14px; }
.cash-capacity-values dd { margin:5px 0 0;font-size:27px;font-weight:600;font-variant-numeric:tabular-nums; }
.cash-certainty { display:block;font-size:12px;color:var(--muted);margin-top:4px; }
.cash-managed { border-top:1px solid var(--rule);margin-top:22px;padding-top:18px; }
.cash-managed h3 { font-size:22px;margin-bottom:10px; }
.cash-managed > p { margin-top:12px;max-width:90ch; }
.cash-policy-returns { margin:18px 0; }.cash-policy-returns input { width:auto;min-height:0; }
@media(max-width:760px) { .cash-scenario-controls { display:grid;grid-template-columns:1fr;gap:14px; }.cash-capacity-values { grid-template-columns:1fr;gap:14px; }.cash-capacity-values dd { font-size:25px; }.cash-scenario input { font-size:16px; } }
@media(max-width:1100px) { .cash-columns { grid-template-columns:1fr;gap:25px; }.cash-summary dd { font-size:25px; }.cash-yield-values { align-items:end; } }
@media(max-width:760px) {
 .cash-title { display:block; }.cash-title h1 { font-size:31px; }.cash-title > button { margin-top:18px; }
 .cash-summary { grid-template-columns:1fr 1fr; }.cash-summary div { padding:14px 12px!important; }.cash-summary div:nth-child(3) { border-left:0;border-top:1px solid var(--rule); }.cash-summary div:nth-child(4) { border-top:1px solid var(--rule); }.cash-summary dd { font-size:24px; }.cash-summary dt { font-size:13px; }
 .cash-yield-controls { grid-template-columns:1fr 1fr;gap:15px; }.cash-yield-controls label:first-child { grid-column:1/-1; }
 .cash-yield-values { grid-template-columns:1fr 1fr;gap:15px; }.cash-yield-values div:first-child { grid-column:1/-1; }.cash-yield-values div:first-child dd { font-size:40px; }.cash-yield-values dd { font-size:24px; }
 .cash-actions { flex-direction:column;align-items:stretch; }.cash-assumptions { padding:22px; }.cash-review { padding:20px; }.cash-form-grid { grid-template-columns:1fr; }.cash-chart { height:auto; }.cash-chart text { font-size:23px; }
 .cash-timeline td,.cash-timeline td:first-child,.cash-timeline td:nth-child(2),.cash-timeline td:last-child { width:auto;padding:7px 0; }
 .cash-timeline td.amount { grid-column:2;grid-row:1;display:block;text-align:right; }.cash-timeline td:nth-child(2) { grid-column:1/-1;grid-row:2; }.cash-timeline table { font-size:14px; }
 .cash-bill { padding:15px; }.cash-date-controls { align-items:stretch;flex-direction:column; }.cash-note,.cash-review input,.cash-yield input,.cash-policy-editor input,.cash-policy-editor select { font-size:16px; }
}
