.year-control{display:flex;align-items:center;gap:6px}.year-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.year-label select{min-width:94px;color:var(--ink);font-weight:600}.cash-attention{margin-bottom:26px}.cash-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:28px 0 32px;border-block:1px solid var(--line)}.cash-totals>div{padding:22px 20px;border-right:1px solid var(--line);min-width:0}.cash-totals>div:first-child{padding-left:0}.cash-totals>div:last-child{border:0}.cash-totals span,.cash-totals small{display:block;color:var(--muted);font-size:12px}.cash-totals strong{display:block;font-size:25px;letter-spacing:-.025em;margin:7px 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.text-action{border:0;background:transparent;text-align:left;text-decoration:underline;text-underline-offset:4px;color:var(--accent);padding:8px 0;min-height:48px;cursor:pointer}.workspace-heading{display:flex;align-items:center;justify-content:space-between;padding:24px;gap:20px}.workspace-heading h2{font-size:20px}.workspace-heading p{color:var(--muted);margin-top:6px;font-size:13px}.workspace-filters{padding:0 24px 20px;display:flex;align-items:end;gap:18px;flex-wrap:wrap}.workspace-filters label{display:grid;gap:6px;font-size:12px;min-width:180px}.workspace-filters input{width:240px}.workspace-help{font-size:12px;color:var(--muted);margin-left:auto;max-width:32ch}.month-table-scroll{overflow:auto;max-width:100%;border-block:1px solid var(--line)}.month-table{border-collapse:separate;border-spacing:0;min-width:1940px;width:100%;font-size:12px;table-layout:fixed}.month-table th,.month-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px;text-align:right;vertical-align:middle}.month-table thead th{background:var(--soft);font-weight:600;padding:5px 8px}.month-table th:first-child{position:sticky;left:0;z-index:2;width:230px;background:var(--paper);text-align:left;white-space:normal;box-shadow:1px 0 var(--line)}.month-table thead th:first-child{background:var(--soft);z-index:3}.month-table tbody th strong{display:block;font-size:13px;overflow-wrap:anywhere}.month-table small{display:block;color:var(--muted);font-size:11px;margin-top:4px;font-weight:400}.month-table thead th:not(:first-child){width:142px}.month-table .group-heading th{background:var(--soft);padding:12px 20px;font-weight:600;text-align:left;position:static}.month-add{margin-left:8px;border:0;background:transparent;border-radius:8px;min-width:48px;min-height:48px;color:var(--accent);cursor:pointer;font-size:20px}.amount-cell{background:transparent;border:1px solid transparent;padding:8px 4px;min-height:58px;width:100%;text-align:right;color:var(--ink);border-radius:8px;cursor:pointer;font-size:12px}.amount-cell strong{font-weight:500;font-variant-numeric:tabular-nums}.amount-cell:hover,.empty-cell:hover,.month-add:hover{background:var(--accent-soft);border-color:var(--accent)}.amount-cell.is-paid small{color:var(--green)}.empty-cell{width:100%;min-height:52px;border:1px solid transparent;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer;font-size:17px}.month-table tfoot td{font-weight:600;font-variant-numeric:tabular-nums}.month-table tfoot th{font-size:12px}.month-table .balance-row td,.month-table .balance-row th{background:var(--soft);padding-block:18px}.negative{color:var(--red)!important}.workspace-footer{padding:16px 24px;color:var(--muted);font-size:12px}.cash-other-attention{margin-top:24px;padding:16px 24px}.cash-other-attention summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600}.attention-row{padding:14px 4px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);width:100%;text-align:left;cursor:pointer;min-height:64px}.attention-row small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.attention-row>span:first-child{flex:1;min-width:0;overflow-wrap:anywhere}.attention-row>strong{white-space:nowrap;font-size:13px}.attention-row>span:last-child{font-size:12px;color:var(--accent)}.attention-row:hover{background:var(--soft)}.dialog-intro{color:var(--muted);font-size:14px;line-height:1.6;margin-bottom:20px;max-width:65ch}.empty-row{padding:28px!important;text-align:left!important;color:var(--muted)}.recurrence-list{margin-top:18px}.recurrence-list .attention-row{flex-wrap:wrap}.cash-workspace{margin-bottom:24px}
@media(max-width:1000px){.cash-totals{grid-template-columns:1fr 1fr}.cash-totals>div:nth-child(2){border-right:0}.cash-totals>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.cash-totals>div:nth-child(3){padding-left:0}.workspace-help{margin:0;max-width:none}.workspace-heading{align-items:flex-start}.month-table{min-width:1840px}.month-table th:first-child{width:190px}}
@media(max-width:760px){.heading-actions{flex-wrap:wrap}.cash-totals{margin-block:24px}.cash-totals>div{padding:18px 12px}.cash-totals strong{font-size:22px}.cash-totals span,.cash-totals small{font-size:11px}.cash-totals .text-action{font-size:11px}.workspace-heading{padding:20px 16px;flex-wrap:wrap}.workspace-filters{padding:0 16px 18px;gap:12px}.workspace-filters label{min-width:130px;flex:1}.workspace-filters input{width:100%}.month-table th:first-child{width:155px}.month-table{min-width:1760px}.workspace-footer{padding:16px}.attention-row{flex-wrap:wrap}.attention-row>span:last-child{width:100%}.cash-other-attention{padding:12px 16px}.year-label{font-size:12px}.year-control{gap:4px}.cash-totals small{line-height:1.6}}
/* Cash view approved: nearby months by default, full year on demand. */
.cash-month-totals{margin:16px 0 24px}.cash-month-totals>div{padding:16px}.cash-month-totals strong{font-size:24px}.cash-month-totals small{font-size:12px}.cash-month-totals .text-action{font-size:12px}
.cash-attention-inline{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 18px;margin-bottom:20px;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:13px}.cash-attention-inline svg{width:18px;height:18px;vertical-align:middle}.cash-attention-inline small{display:block;margin-top:4px;color:var(--muted)}
.cash-layout{display:flex;gap:4px;flex-wrap:wrap}.cash-layout .btn[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.cash-period{display:flex;gap:8px;align-items:end;flex-wrap:wrap;padding:0 24px 20px}.cash-month-picker{display:grid;gap:5px;font-size:12px}.cash-month-picker select{width:150px}.cash-rec-button{margin-left:auto}
.cash-refined .workspace-filters{gap:12px}.cash-refined .workspace-filters .cash-search{flex:1}.cash-search input{width:100%;min-width:180px}.cash-extra-filters{position:relative}.cash-extra-filters summary{cursor:pointer;min-height:48px;display:flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:9px;font-size:13px}.cash-extra-filters summary::after{content:'+'}.cash-extra-filters[open] summary::after{content:'−'}.cash-extra-filters>div{display:flex;flex-wrap:wrap;gap:12px;padding-top:12px}.cash-extra-filters[open]{flex-basis:100%}
.cash-scroll-hint{padding:0 24px 12px;font-size:12px;color:var(--muted)}
.cash-refined .month-table{--identity:250px;--column:150px;min-width:calc(var(--identity) + 12 * var(--column))}.cash-refined .cash-near{min-width:calc(var(--identity) + 3 * var(--column))}
.cash-refined .month-table th:first-child{width:var(--identity);min-width:var(--identity);overflow-wrap:anywhere}.cash-refined .month-table thead th:not(:first-child){width:auto;min-width:var(--column)}
.cash-refined .month-table small{font-size:12px}.cash-refined .amount-cell{font-size:14px;min-height:90px;line-height:1.4;padding:10px 4px;overflow-wrap:anywhere}.cash-refined .amount-cell small{line-height:1.5}.cash-refined .month-table .cash-focus{background:var(--accent-soft)}.cash-refined .month-table thead .cash-focus{box-shadow:inset 0 3px var(--accent);color:var(--accent)}.cash-refined .month-table .group-heading th{width:auto;min-width:0}.cash-refined .month-table thead th{padding:10px 8px;vertical-align:top}.cash-refined .month-add{display:block;margin:2px 0 0 auto}.cash-refined .month-table tbody th{padding:14px}.cash-refined .month-table tfoot td{overflow-wrap:anywhere}.cash-refined .month-table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:760px){.cash-month-totals strong{font-size:20px}.cash-month-totals>div{padding:12px}.cash-attention-inline{align-items:start;flex-wrap:wrap}.cash-period{padding:0 16px 16px;gap:6px}.cash-month-picker select{width:125px}.cash-rec-button{margin-left:0}.cash-layout{width:100%}.cash-layout .btn{flex:1;padding-inline:10px}.cash-refined .month-table{--identity:138px;--column:128px}.cash-refined .month-table th,.cash-refined .month-table td{padding:8px 5px}.cash-refined .month-table tbody th{padding:10px 8px}.cash-refined .amount-cell{font-size:12px;padding:8px 2px}.cash-refined .month-table thead th{font-size:12px;padding:8px 4px}.cash-refined .month-table tbody th strong{font-size:12px}.cash-refined .month-table small{font-size:12px}.cash-refined .workspace-filters label{min-width:0}.cash-refined .workspace-filters>label{flex-basis:100%}.cash-refined .workspace-filters input{min-width:0}.cash-extra-filters{width:100%}.cash-extra-filters>div{display:grid;grid-template-columns:1fr}.cash-extra-filters select{max-width:100%}.cash-scroll-hint{padding:0 16px 12px}.cash-period>.btn[data-current-month]{padding-inline:10px}.cash-month-totals .text-action{font-size:12px;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:no-preference){.cash-layout .btn{transition:box-shadow .15s}.cash-layout .btn:active,.cash-refined .amount-cell:active{transform:scale(.99)}}

.cash-refined .group-heading span{position:sticky;left:14px;display:inline-block}
/* Client/contract allocations explain an original entry without duplicating its cash value. */
.cash-service-month{color:var(--ink)!important}.cash-shared-part{color:var(--accent)!important}.entry-links-dialog{max-width:760px}.entry-links{margin:24px 0;padding-top:20px;border-top:1px solid var(--line)}.entry-links-heading h3{font-size:17px;margin:0}.entry-links-heading p{margin:8px 0 18px;color:var(--muted);font-size:13px;line-height:1.6}.entry-shared-note{border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--ink);font-size:13px;line-height:1.6;padding:14px 16px;margin:16px 0}.entry-shared-note strong{display:block}.entry-link-part{border:1px solid var(--line);border-radius:12px;margin:16px 0;padding:16px;min-width:0}.entry-link-part legend{padding:0 7px;font-size:13px;font-weight:600;color:var(--ink)}.entry-link-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.entry-link-grid label{display:grid;gap:7px;font-size:13px;min-width:0}.entry-link-grid input,.entry-link-grid select{width:100%;min-width:0;min-height:48px}.entry-link-grid .field-note{font-size:12px;line-height:1.5}.entry-contract-field{min-width:0}.entry-contract-create{background:var(--soft);padding:12px;border-radius:9px;margin:8px 0}.entry-contract-create p{font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0}.entry-contract-create .btn{margin:4px 0;max-width:100%}.entry-links-total{padding:13px 15px;background:var(--green-soft);color:var(--green);border-radius:9px;font-size:13px;line-height:1.5;margin:16px 0}.entry-links-total.is-error{background:var(--red-soft);color:var(--red)}.entry-links-review{display:flex;align-items:center;gap:10px;min-height:48px;font-size:13px;line-height:1.5}.entry-links-review input{min-width:48px;width:48px;min-height:48px;height:48px;accent-color:var(--accent);flex:none}.entry-links-review[hidden],.entry-contract-create[hidden]{display:none}.entry-links-empty{padding:16px;background:var(--soft);border-radius:10px;color:var(--muted);font-size:13px;line-height:1.6}.entry-links-feedback{font-size:13px;color:var(--muted);line-height:1.6}.entry-links-feedback .btn{display:block;margin-top:8px}.entry-link-part .text-action{font-size:13px}.entry-link-part [data-remove-part]{margin-top:8px}.entry-links-actions{display:flex;gap:10px;flex-wrap:wrap}.entry-links-dialog .form-grid{align-items:start}
@media(max-width:760px){.entry-links-dialog{width:calc(100% - 20px);max-width:none}.entry-link-grid{grid-template-columns:minmax(0,1fr)}.entry-link-part{padding:12px}.entry-links-review{align-items:flex-start}.entry-links-review input{margin:0}.entry-links-heading h3{font-size:16px}.entry-shared-note{padding:12px}.entry-links-dialog .dialog-actions{flex-wrap:wrap}.entry-links-dialog .dialog-actions .btn{flex:1}}
.cash-month-totals span{font-size:12px}

.cash-bank-reference{padding:20px 24px;margin-bottom:20px}.cash-bank-reference>strong{font-size:18px}.cash-bank-reference p{margin:8px 0;color:var(--muted);line-height:1.6}.cash-bank-reference summary{display:list-item;cursor:pointer;min-height:48px;align-content:center}.cash-bank-reference details p{max-width:76ch}@media(max-width:600px){.cash-bank-reference{padding:16px}.cash-bank-reference>strong{font-size:16px}}

/* Approved overview B: one source of totals, expandable source categories. */
.cash-reading{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line);background:var(--soft);border-radius:12px;margin:0 0 16px}.cash-reading .btn{min-width:112px;border-color:transparent;background:transparent}.cash-reading .btn[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cash-totals[hidden],.workspace-filters[hidden],.workspace-footer[hidden],.cash-summary-table tbody[hidden]{display:none}
.cash-refined .cash-summary-table{--identity:210px;--column:170px;font-variant-numeric:tabular-nums}.cash-summary-table thead th{height:68px}.cash-summary-table th,.cash-summary-table td{padding:0 18px;border-right:0}.cash-summary-table tbody th{font-size:14px;font-weight:500}.cash-summary-table small{font-size:12px}.cash-summary-table .cash-summary-value{width:100%;min-width:48px;min-height:64px;padding:10px 0;text-align:right;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:20px;font-variant-numeric:tabular-nums;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px;cursor:pointer}.cash-summary-value:hover{background:var(--soft)!important;text-decoration-color:var(--accent)!important}
.cash-group-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:64px;border:0;background:transparent;padding:8px 0;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.cash-group-toggle>span:first-child{font-size:20px;min-width:16px;color:var(--accent)}.cash-group-toggle:hover{color:var(--accent)}.cash-summary-table .cash-summary-category th{padding-left:42px;color:var(--muted);font-size:13px}.cash-summary-table .cash-summary-category .cash-summary-value{font-size:14px;min-height:52px}.cash-summary-table .cash-summary-result .cash-summary-value{font-size:16px}.cash-summary-table .cash-summary-balance th,.cash-summary-table .cash-summary-balance .cash-summary-value{font-size:20px;font-weight:600;min-height:78px}.cash-summary-table .cash-summary-balance th{font-size:16px}.cash-summary-table .cash-summary-empty{padding:16px 24px;text-align:left;color:var(--muted);font-size:13px}.cash-summary-help{padding:14px 24px;color:var(--muted);font-size:13px;line-height:1.6}.cash-summary-help p{max-width:90ch}.cash-summary-help .text-action{font-size:13px}
@media(max-width:760px){.cash-refined .cash-summary-table{--identity:132px;--column:132px}.cash-summary-table th,.cash-summary-table td{padding:0 10px}.cash-summary-table thead th{height:60px}.cash-summary-table tbody th{font-size:13px}.cash-summary-table .cash-summary-value{font-size:15px;min-height:58px}.cash-summary-table .cash-summary-category th{padding-left:20px;font-size:12px}.cash-summary-table .cash-summary-category .cash-summary-value{font-size:13px}.cash-summary-table .cash-summary-result .cash-summary-value{font-size:14px}.cash-summary-table .cash-summary-balance th{font-size:14px}.cash-summary-table .cash-summary-balance .cash-summary-value{font-size:16px;min-height:72px}.cash-summary-help{padding:12px 16px}.cash-reading{margin-bottom:12px}}

/* Override detailed-table cell padding only within the compact overview. */
.cash-refined .cash-summary-table tbody th,.cash-refined .cash-summary-table td{padding:0 18px}.cash-refined .cash-summary-table .cash-summary-category th{padding-left:34px}.cash-refined .cash-summary-table thead th{vertical-align:middle}.cash-refined:has(.cash-summary-table) .workspace-heading{padding:18px 24px}.cash-refined:has(.cash-summary-table) .cash-period{padding-bottom:12px}
@media(max-width:760px){
 body:has(.cash-summary-table) .app-header{gap:10px;padding-block:12px}body:has(.cash-summary-table) .nav{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%}body:has(.cash-summary-table) .nav button{flex:0 0 auto;width:auto;min-width:48px;padding-inline:12px}body:has(.cash-summary-table) main{padding-top:16px}
 body:has(.cash-summary-table) .cash-page-heading{margin-bottom:12px}body:has(.cash-summary-table) .cash-page-heading h1{font-size:24px}body:has(.cash-summary-table) .cash-page-heading p{display:none}body:has(.cash-summary-table) .heading-actions{margin-top:12px;gap:8px}body:has(.cash-summary-table) .year-control>[data-year]{display:none}body:has(.cash-summary-table) [data-new]{padding-inline:12px}
 .cash-refined:has(.cash-summary-table) .workspace-heading{padding:12px}.cash-refined:has(.cash-summary-table) .workspace-heading>div:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.cash-refined:has(.cash-summary-table) .cash-period{padding:0 12px 8px;gap:6px}.cash-refined:has(.cash-summary-table) .cash-scroll-hint{padding:4px 12px 10px}
 .cash-refined .cash-summary-table tbody th,.cash-refined .cash-summary-table td{padding:0 10px}.cash-refined .cash-summary-table .cash-summary-category th{padding-left:20px}.cash-refined .cash-summary-table thead th{padding:6px 8px}.cash-summary-table .cash-group-toggle{min-height:58px}.cash-summary-table .cash-summary-category .cash-summary-value{min-height:48px}
}

/* Summary drilldowns show exactly the chosen month and preserve the broader layout. */
.cash-refined .cash-single{min-width:calc(var(--identity) + var(--column))}
.cash-category-link{display:block;width:100%;min-height:52px;min-width:48px;padding:6px 0;border:0;border-radius:6px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.cash-category-link>span{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}.cash-category-link:hover{background:var(--soft);color:var(--accent)}.cash-category-link:hover>span{text-decoration-color:var(--accent)}.cash-category-link small{margin-top:3px}
.cash-month-filter-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;background:var(--accent-soft);font-size:13px;margin-bottom:16px}.cash-month-filter-note>div{display:flex;gap:8px;flex-wrap:wrap}.cash-month-filter-note[hidden]{display:none}.cash-month-filter-note .btn{font-size:13px}.cash-refined #cash-grid-title:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
@media(max-width:760px){.cash-month-filter-note{flex-wrap:wrap;padding:12px 16px}.cash-month-filter-note>div{width:100%}.cash-month-filter-note .btn{flex:1;padding-inline:10px}.cash-category-link{min-height:54px}}

.cash-totals-scope{color:var(--muted);font-size:12px;margin:0 0 8px}.cash-totals-scope[hidden]{display:none}

/* Make the monthly balance equation explicit without adding bank corrections to revenue. */
.cash-summary-static{display:block;padding:16px 0;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}.cash-summary-table .cash-summary-opening th,.cash-summary-table .cash-summary-opening td{background:var(--soft)}.cash-summary-table .cash-summary-opening .cash-focus{background:var(--accent-soft)}.cash-summary-table .cash-summary-timing th,.cash-summary-table .cash-summary-adjustment th{color:var(--muted);font-size:13px}.cash-summary-table .cash-summary-timing .cash-summary-static,.cash-summary-table .cash-summary-adjustment .cash-summary-static{font-size:14px;font-weight:400}.cash-summary-table .cash-summary-balance small{line-height:1.5;font-size:12px}
@media(max-width:760px){.cash-summary-static{font-size:14px;padding-block:14px}.cash-summary-table .cash-summary-timing .cash-summary-static,.cash-summary-table .cash-summary-adjustment .cash-summary-static{font-size:13px}.cash-summary-table .cash-summary-result small,.cash-summary-table .cash-summary-opening small,.cash-summary-table .cash-summary-timing small,.cash-summary-table .cash-summary-adjustment small,.cash-summary-table .cash-summary-balance small{line-height:1.5;padding-bottom:6px}}

.annual-opening{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:16px 20px;background:var(--soft);border:1px solid var(--line);border-radius:12px}.annual-opening>div{min-width:0}.annual-opening span{color:var(--muted);font-size:13px}.annual-opening strong{display:block;margin-top:5px;font-size:22px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.annual-opening p{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.6;max-width:90ch}.annual-opening .text-action{flex-shrink:0;font-size:13px}
@media(max-width:760px){.annual-opening{padding:12px 16px;gap:8px;align-items:flex-start;flex-wrap:wrap;margin-bottom:16px}.annual-opening strong{font-size:20px}.annual-opening .text-action{min-height:48px}.plan-opening-row th,.plan-opening-row td{font-size:12px}}
