/* The financial workspace keeps the shared layout, palette and form styles. */
.finance-workspace{--finance-income-line:#1679d7;--finance-expense-line:var(--red)}.finance-period-form{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;padding:18px 22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface,#fff);margin-bottom:20px}.finance-period-form h2{text-transform:capitalize;margin:4px 0}.finance-period-fields{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.finance-period-fields .field{margin:0;min-width:115px}.finance-period-fields .field:nth-child(2){width:112px}.finance-period-fields .btn{min-height:44px}.finance-period-form>.form-error:empty{display:none}.finance-period-form>.form-error{flex-basis:100%;margin:0}.finance-dre{margin-bottom:28px}.finance-dre .section-title{margin-top:0}.finance-dre .section-title p{max-width:750px}.finance-dre-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}.finance-dre-stats .num{font-size:clamp(23px,2.6vw,33px);overflow-wrap:anywhere;letter-spacing:-.6px}.finance-dre-stats .finance-income .num{color:var(--finance-income-line)}.finance-dre-stats .finance-expense .num{color:var(--finance-expense-line)}.finance-dre-method{margin:0 2px 18px}.finance-dashboard-review{margin-bottom:18px}.finance-dashboard-review p{margin-bottom:5px}.finance-dashboard-review .btn{margin-top:6px}.finance-daily-chart{margin-top:18px;min-width:0}.finance-chart-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px}.finance-chart-legend span{display:inline-flex;align-items:center;gap:6px}.finance-chart-legend i{width:9px;height:9px;border-radius:50%;background:var(--finance-income-line)}.finance-chart-legend .expense{background:var(--finance-expense-line)}.finance-chart-canvas{height:264px;position:relative;margin:20px 0 8px;padding:0 0 25px 70px}.finance-chart-axis{position:absolute;left:0;top:3px;bottom:30px;width:62px;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.finance-chart-axis span{white-space:nowrap}.finance-chart-plot{height:100%;position:relative;min-width:0}.finance-chart-plot>svg{width:100%;height:100%;overflow:visible;display:block}.finance-chart-grid{stroke:var(--line);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}.finance-income-line,.finance-expense-line{fill:none;stroke:var(--finance-income-line);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.finance-expense-line{stroke:var(--finance-expense-line)}.finance-chart-marker{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 5;opacity:.5;fill:none;vector-effect:non-scaling-stroke}.finance-income-dot{fill:var(--finance-income-line)}.finance-expense-dot{fill:var(--finance-expense-line)}.finance-chart-targets{position:absolute;inset:0}.finance-chart-day{position:absolute;top:0;height:100%;background:transparent;padding:0;border-radius:3px;min-width:0}.finance-chart-day:hover{background:color-mix(in srgb,var(--blue) 8%,transparent)}.finance-chart-day:focus-visible{outline:2px solid var(--blue);outline-offset:0;background:color-mix(in srgb,var(--blue) 8%,transparent)}.finance-chart-xaxis{position:absolute;top:100%;left:0;right:0;height:23px;pointer-events:none;font-size:10px;color:var(--muted)}.finance-chart-xaxis span{position:absolute;transform:translateX(-50%);padding-top:3px}.finance-chart-inspector{padding:12px 14px;background:var(--paper);border:1px solid var(--line);border-radius:10px}.finance-chart-inspector>.row>strong{font-size:12px;font-variant-numeric:tabular-nums;text-align:center}.finance-chart-inspector .btn{min-height:40px}.finance-chart-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:11px 0 2px}.finance-chart-values>span{font-size:11px;color:var(--muted);min-width:0}.finance-chart-values strong{display:block;color:var(--ink);font-size:14px;overflow-wrap:anywhere}.finance-chart-values>span:first-child strong{color:var(--finance-income-line)}.finance-chart-values>span:nth-child(2) strong{color:var(--finance-expense-line)}.finance-chart-empty{margin:18px 0 0;padding:22px;background:var(--paper);border:1px dashed var(--line);border-radius:10px;color:var(--muted)}.finance-breakdown{margin-top:18px;min-width:0}.finance-breakdown-scroll{max-width:100%;overflow-x:auto;margin-top:16px}.finance-breakdown table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.finance-breakdown th,.finance-breakdown td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.finance-breakdown th{font-size:11px;color:var(--muted)}.finance-breakdown th:first-child,.finance-breakdown td:first-child{text-align:left;white-space:normal;min-width:130px}.finance-breakdown td:first-child span{display:block}.finance-breakdown tr:last-child td{border-bottom:0}.finance-entry-summary{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:16px;padding:12px 16px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;font-size:12px;color:var(--muted)}.finance-entry-summary strong{color:var(--ink)}
@media(max-width:700px){.finance-period-form{padding:16px}.finance-period-fields{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px}.finance-period-fields .field,.finance-period-fields .field:nth-child(2){width:auto;min-width:0}.finance-period-fields>.btn{grid-column:1/-1}.finance-dre-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-dre-stats .finance-dre-result{grid-column:1/-1}.finance-dre-stats .num{font-size:25px}.finance-dre .section-title{align-items:flex-start;flex-wrap:wrap}.finance-chart-canvas{padding-left:62px;height:230px}.finance-chart-axis{width:55px;font-size:9px}.finance-chart-inspector{padding:10px}.finance-chart-inspector>.row{gap:5px}.finance-chart-inspector .btn{padding:8px;font-size:10px;white-space:normal;min-height:44px}.finance-chart-values{gap:7px}.finance-chart-values strong{font-size:12px}.finance-chart-legend{margin-top:10px}.finance-breakdown th,.finance-breakdown td{padding:12px 8px;font-size:12px}.finance-entry-summary{display:grid;gap:5px}}
@media screen{:root[data-theme='dark'] .finance-workspace{--finance-income-line:#76b7ff;--finance-expense-line:var(--red)}:root[data-theme='dark'] .finance-period-form,:root[data-theme='dark'] .finance-entry-summary{background:var(--theme-surface)}}
.finance-workspace{min-width:0}.finance-tools{margin:-8px 0 18px}.finance-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.finance-tabs [aria-pressed="true"]{background:var(--sky);border-color:var(--blue);color:var(--blue)}.finance-filters{padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface,#fff);margin-bottom:20px}.finance-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 14px}.finance-filter-grid .field{min-width:0}.finance-filter-grid .field:first-child{grid-column:span 2}.finance-filters select,.finance-filters input{width:100%;min-width:0}.finance-stats{margin-bottom:14px}.finance-stats .num{font-size:clamp(18px,2.1vw,28px);overflow-wrap:anywhere;letter-spacing:-.4px}.finance-income .num{color:var(--green)}.finance-expense .num{color:var(--red)}.finance-result{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.finance-result strong{display:block;font-size:26px;margin:4px 0;overflow-wrap:anywhere}.finance-review-summary{margin-bottom:16px}.finance-review-summary p{margin:5px 0}.finance-review-summary .btn{margin-top:8px}.finance-period-note{margin:10px 0}.finance-table-wrap{background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.finance-table{width:100%;border-collapse:collapse;table-layout:fixed}.finance-table th,.finance-table td{padding:16px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.finance-table th{background:var(--paper);font-size:11px;color:var(--muted)}.finance-table th:first-child{width:35%}.finance-table th:nth-child(2){width:18%}.finance-table th:nth-child(3){width:16%}.finance-table th:nth-child(4){width:14%}.finance-table tr:last-child td{border-bottom:0}.finance-entry-title{display:block;font-size:14px;margin:4px 0}.finance-table td:nth-child(2)>strong,.finance-table td:nth-child(2)>.small{display:block;font-size:12px}.finance-table td:nth-child(2)>.small:not(:first-child){margin-top:8px}.finance-kind{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.4px}.finance-kind.income{color:var(--green)}.finance-kind.expense{color:var(--red)}.finance-money{font-weight:650;font-variant-numeric:tabular-nums}.finance-note{margin-top:5px;max-height:90px;overflow:auto}.finance-actions{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}.finance-actions .btn{white-space:normal}.finance-review-flags{margin:9px 0 0;padding-left:15px;font-size:11px;color:var(--amber)}.finance-pagination{margin:16px 0}.finance-loading{margin-bottom:14px}.finance-category-list{display:grid;margin-top:18px}.finance-category-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.finance-category-list article>div{min-width:0;overflow-wrap:anywhere}.finance-category-list span{display:block}.finance-settlement{padding:14px;margin:16px 0;background:var(--paper);border:1px solid var(--line);border-radius:10px}.finance-settlement .field{margin-bottom:0}.finance-settlement .check-label{margin-top:0}
@media(max-width:1100px){.finance-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-table th,.finance-table td{padding:12px 10px}.finance-actions{flex-direction:column}.finance-stats .num{font-size:22px}}
@media(max-width:700px){.finance-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-table,.finance-table tbody{display:block;width:100%}.finance-table thead{display:none}.finance-table tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.finance-table tr:last-child{border-bottom:0}.finance-table td{display:block;padding:0;border:0;min-width:0}.finance-table td:first-child,.finance-table td:last-child{grid-column:1/-1}.finance-table td[data-label]:before{content:attr(data-label);display:block;font-size:10px;font-weight:400;color:var(--muted);margin-bottom:5px}.finance-table td:nth-child(2){grid-row:2/4}.finance-actions{flex-direction:row}.finance-actions .btn{min-height:40px}.finance-tabs .btn{flex:1 0 auto;min-height:40px}.finance-tools .btn{white-space:normal}.finance-result{align-items:flex-start;flex-direction:column;gap:10px}.finance-result strong{font-size:25px}.finance-filters{padding:14px}.finance-stats .num{font-size:21px}.finance-pagination{gap:12px}}
@media(max-width:380px){.finance-filter-grid{grid-template-columns:1fr}.finance-filter-grid .field:first-child{grid-column:auto}.finance-stats{grid-template-columns:1fr}.finance-tools .btn{flex:1 0 100%}}
@media screen{:root[data-theme='dark'] .finance-settlement{background:var(--theme-subtle)}:root[data-theme='dark'] .finance-table-wrap,:root[data-theme='dark'] .finance-filters{background:var(--theme-surface)}:root[data-theme='dark'] .finance-tabs [aria-pressed="true"]{color:var(--blue);background:var(--sky);border-color:var(--blue)}}

.finance-workspace .finance-money.expense:not(.muted),.finance-breakdown td:nth-child(3){color:var(--finance-expense-line)}

/* Each kind is queried and paginated independently, including its complete total. */
.finance-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.finance-panels-single{grid-template-columns:minmax(0,1fr)}.finance-pane{min-width:0;padding:18px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:var(--radius)}.finance-pane-heading{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:16px}.finance-pane-heading h3{margin:5px 0 0;font-size:15px}.finance-pane.income .finance-pane-heading .eyebrow,.finance-pane.income .finance-pane-total strong{color:var(--finance-income-line)}.finance-pane.expense .finance-pane-heading .eyebrow,.finance-pane.expense .finance-pane-total strong{color:var(--finance-expense-line)}.finance-pane-total{min-width:0;text-align:right;margin-left:auto}.finance-pane-total span,.finance-pane-total strong{display:block}.finance-pane-total strong{font-size:20px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:3px}.finance-pane .banner{overflow-wrap:anywhere}.finance-pane .finance-review-summary{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);font-size:12px}.finance-pane .finance-review-summary summary{cursor:pointer;font-weight:600}.finance-entry-list{display:grid;gap:12px}.finance-entry-row{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}.finance-entry-row.is-overdue{border-left:3px solid var(--red)}.finance-entry-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.finance-entry-top>div{min-width:0;flex:1 1 150px}.finance-entry-top>.finance-money{flex:0 1 auto;font-size:15px;max-width:100%;margin-top:3px}.finance-pane.income .finance-money:not(.muted){color:var(--finance-income-line)}.finance-entry-row>.small{margin:6px 0}.finance-entry-dates{display:flex;gap:8px 18px;flex-wrap:wrap;color:var(--muted)}.finance-entry-dates strong{display:block;color:var(--ink);font-weight:500;margin-top:2px}.finance-pane .finance-actions{flex-direction:row;margin-top:12px;gap:7px}.finance-pane .finance-actions .btn{min-height:38px}.finance-pane .finance-pagination{margin-bottom:0;gap:12px}.finance-pane .finance-pagination>.row{flex-wrap:wrap}.finance-panel-empty .empty{padding:25px 12px}.finance-overdue{display:inline-flex;align-items:center;gap:5px;color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid color-mix(in srgb,var(--red) 30%,transparent)}.finance-overdue svg{width:14px;height:14px;flex:none}
@media(max-width:800px){.finance-panels{grid-template-columns:minmax(0,1fr);gap:16px}.finance-pane{padding:14px}.finance-pane .finance-actions .btn,.finance-pane .finance-pagination .btn{min-height:42px}.finance-pane-heading{gap:10px}.finance-entry-row{padding:12px}.finance-pane-total strong{font-size:19px}}
@media screen{:root[data-theme='dark'] .finance-pane{background:var(--theme-surface)}}
