/* Operate first: cash, filters, a compact ledger and a secondary inspector. */
.finance-suite { min-width: 0; color: var(--text); }
.finance-suite h1 { margin: 0; font-size: 22px; font-weight: 600; }
.finance-suite h2 { margin: 0 0 16px; font-size: 17px; font-weight: 600; overflow-wrap: anywhere; }
.finance-header, .finance-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.finance-header { justify-content: space-between; gap: 16px; margin-bottom: 8px; }
.finance-suite button { min-height: 44px; border: 1px solid var(--border); border-radius: 7px; padding: 9px 13px; color: var(--text); background: var(--card); font: inherit; font-size: 12px; margin: 0; }
.finance-suite button:hover { background: var(--row); border-color: var(--muted); }
.finance-suite .finance-primary { background: var(--green); color: #071b10; border-color: var(--green); font-weight: 600; }
.finance-suite .finance-primary:hover { background: var(--green); border-color: var(--green); filter: brightness(.94); }
html[data-theme="light"] .finance-suite .finance-primary { color: #fff; background: #007348; border-color: #007348; }
.finance-suite button:disabled { opacity: .5; cursor: default; }
.finance-suite :is(button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.finance-caption, .finance-count, .finance-eyebrow { color: var(--muted); font-size: 12px; line-height: 1.7; }
.finance-caption { margin: 8px 0 16px; }
.finance-feedback { font-size: 12px; color: var(--text); margin: 0; min-height: 22px; }
.finance-error { color: var(--danger); font-size: 12px; line-height: 1.8; margin: 0; }
.finance-error:empty { display: none; }
.finance-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; color: var(--muted); font-size: 12px; }
.finance-suite .finance-field :is(input,select,textarea) { width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--border); border-radius: 7px; background: var(--input); color: var(--text); font: inherit; font-size: 13px; box-sizing: border-box; }
.finance-suite .finance-field textarea { min-height: 88px; resize: vertical; }
.finance-filter-bar { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; margin: 14px 0 20px; }
.finance-filter-bar > .finance-field { flex: 1; min-width: 180px; }
.finance-suite summary { min-height: 44px; box-sizing: border-box; cursor: pointer; font-size: 12px; padding: 12px 0; }
.finance-filters summary { padding: 12px 16px; border: 1px solid var(--border); border-radius: 7px; }
.finance-filters[open] { width: 100%; order: 3; }
.finance-filter-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; padding: 18px 0; }
.finance-checkbox { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 12px; grid-column: 1 / -1; }
.finance-suite .finance-checkbox input { width: 18px; min-height: 18px; height: 18px; margin: 0; accent-color: var(--green); }
.finance-report { min-width: 0; margin: 0 0 20px; border-block: 1px solid var(--border); }
.finance-table-scroll { max-width: 100%; overflow-x: auto; }
.finance-suite .finance-cash-table { width: 100%; min-width: 0; border: 0; border-collapse: collapse; border-radius: 0; margin: 0; font-size: 12px; }
.finance-cash-table caption { text-align: start; padding: 14px 8px; color: var(--muted); font-size: 12px; }
.finance-suite .finance-cash-table th { color: var(--muted); background: transparent; font-weight: 500; text-align: start; border: 0; padding: 10px 8px; }
.finance-suite .finance-cash-table td { border: 0; padding: 12px 8px; }
.finance-suite .finance-cash-table tbody th { color: var(--text); max-width: 200px; overflow-wrap: anywhere; }
.finance-cash-table tbody { border-top: 1px solid var(--border); }
.finance-cash-table tbody tr + tr { border-top: 1px solid var(--border); }
.finance-cash-table td:last-child { font-weight: 600; }
.finance-breakdown { border-top: 1px solid var(--border); }
.finance-breakdown .finance-table-scroll { margin-bottom: 12px; }
.finance-workspace { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,310px); gap: 24px; align-items: start; }
.finance-results, .finance-detail { min-width: 0; }
.finance-count { margin: 0 0 8px; }
.finance-suite .finance-row { display: flex; justify-content: space-between; width: 100%; gap: 18px; text-align: start; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; padding: 16px 10px; min-height: 76px; background: transparent; }
.finance-suite .finance-row[aria-pressed="true"] { background: var(--elevated); }
.finance-row-copy { display: flex; flex-direction: column; min-width: 0; gap: 7px; }
.finance-row-copy strong { font-weight: 500; font-size: 13px; overflow-wrap: anywhere; }
.finance-row-copy small { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.finance-money { font-variant-numeric: tabular-nums; direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.finance-row .finance-money { align-self: center; font-size: 13px; }
.finance-empty { margin: 0; padding: 36px 10px; color: var(--muted); font-size: 13px; }
.finance-detail { border: 1px solid var(--border); border-radius: 10px; padding: 20px; }
.finance-detail-amount { font-size: 20px; font-weight: 500; direction: ltr; unicode-bidi: isolate; text-align: start; font-variant-numeric: tabular-nums; margin: 0 0 22px; }
.finance-eyebrow { margin: 0 0 8px; }
.finance-properties { display: grid; grid-template-columns: minmax(80px,auto) minmax(0,1fr); gap: 12px; font-size: 12px; margin-bottom: 24px; }
.finance-properties dt { color: var(--muted); }
.finance-properties dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; unicode-bidi: plaintext; }
.finance-history { margin-top: 18px; border-top: 1px solid var(--border); }
.finance-history ol { padding-inline-start: 20px; margin: 8px 0; }
.finance-history li { padding: 10px 0; font-size: 12px; }
.finance-history li > :is(time,strong,span) { display: block; overflow-wrap: anywhere; margin-bottom: 6px; }
.finance-history time { color: var(--muted); font-size: 11px; direction: ltr; unicode-bidi: isolate; }
.finance-suite .finance-dialog { width: min(660px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); box-sizing: border-box; padding: 24px; overflow: auto; background: var(--card); color: var(--text); border: 1px solid var(--border); border-radius: 12px; }
.finance-dialog::backdrop { background: rgb(0 0 0 / 48%); }
.finance-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.finance-form > :is(h2,p,.finance-actions), .finance-form > .finance-field:has(textarea) { grid-column: 1 / -1; }
.finance-description { grid-column: 1 / -1; }
.finance-entry-details { grid-column: 1 / -1; min-width: 0; border-block: 1px solid var(--border); }
.finance-entry-details summary { color: var(--text); }
.finance-entry-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 8px 0 18px; }
.finance-entry-fields > .finance-field:has(textarea) { grid-column: 1 / -1; }
.finance-form .finance-actions { justify-content: end; padding-top: 8px; }
.finance-category-form { display: grid; gap: 16px; border-block: 1px solid var(--border); margin: 16px 0; padding: 18px 0; }
.finance-category-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.finance-category-row strong { flex: 1; min-width: 100px; overflow-wrap: anywhere; font-weight: 500; }
.finance-category-row small { color: var(--muted); }
.finance-receipt-text { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; line-height: 1.9; user-select: text; padding: 18px; background: var(--row); border-radius: 8px; unicode-bidi: plaintext; }
@media (max-width: 1100px) { .finance-workspace { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 700px) {
  .finance-suite h1 { font-size: 20px; }
  .finance-header { align-items: start; }
  .finance-header .finance-actions { width: 100%; }
  .finance-header .finance-actions button { flex: 1; }
  .finance-filter-fields, .finance-form, .finance-entry-fields { grid-template-columns: minmax(0,1fr); }
  .finance-form > * { grid-column: 1 !important; }
  .finance-suite .finance-dialog { padding: 18px; }
  .finance-suite .finance-row { gap: 12px; padding-inline: 4px; }
  .finance-row .finance-money { font-size: 12px; }
  .finance-detail { padding: 18px; }
  .finance-workspace { gap: 18px; }
  .finance-suite .finance-cash-table { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .finance-suite * { transition: none !important; scroll-behavior: auto !important; } }
/* Stage 2 financial ledger composition. */
.finance-suite :is(.finance-filter-bar,.finance-filters) { padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--row); }
.finance-suite :is(.finance-report,.finance-results,.finance-detail,.finance-workspace) { min-width:0; border-color:var(--border); background:var(--card); }
.finance-suite .finance-empty { padding:18px; border:1px dashed var(--border); border-radius:10px; background:var(--row); }

/* Tool Bento: the same calm card rhythm as Today, using the shared theme. */
.finance-suite .finance-header {
  align-items:flex-start; gap:12px var(--tool-gap,18px);
  margin-block:0 var(--tool-gap,18px); padding-block:0 var(--tool-gap,18px);
  border-block-end:1px solid var(--border);
}
.finance-header-copy { flex:1 1 20rem; min-inline-size:0; }
.finance-suite h1 { margin-block:0 6px; font-size:var(--tool-title-size,clamp(1.5rem,2.6vw,2rem)); line-height:1.35; overflow-wrap:anywhere; }
.finance-lead { max-inline-size:58ch; margin:0; color:var(--muted); font-size:var(--tool-copy-size,.92rem); line-height:1.6; overflow-wrap:anywhere; }
.finance-suite :is(button,.finance-filters summary,.finance-field input,.finance-field select,.finance-field textarea) {
  max-inline-size:100%; border-radius:var(--tool-row-radius,10px);
}
.finance-suite :is(button:not(.finance-row),.finance-filters summary,.finance-field input,.finance-field select) { min-block-size:44px; }
.finance-suite button { font-size:13px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.finance-suite :is(.finance-caption,.finance-field,.finance-checkbox,.finance-feedback,.finance-error) { font-size:14px; line-height:1.65; }
.finance-suite .finance-filter-bar {
  gap:12px; margin-block:0 var(--tool-gap,18px); padding:var(--tool-card-pad,20px);
  border-radius:var(--tool-card-radius,18px); background:var(--row);
}
.finance-suite .finance-filters { padding:0; border:0; border-radius:0; background:transparent; min-inline-size:0; }
.finance-suite .finance-filters summary { padding:12px 16px; background:var(--card); font-size:13px; }
.finance-suite .finance-filters[open] { border-block-start:1px solid var(--border); padding-block-start:12px; }
.finance-suite .finance-filters[open] summary { inline-size:fit-content; }
.finance-filter-fields { padding-block:16px 0; }
.finance-suite :is(.finance-report,.finance-results,.finance-detail) {
  min-inline-size:0; padding:var(--tool-card-pad,20px); border:1px solid var(--border);
  border-radius:var(--tool-card-radius,18px); background:var(--card); box-shadow:0 8px 24px rgb(45 54 44 / 4%);
}
.finance-suite .finance-report { margin-block:0 var(--tool-gap,18px); }
.finance-suite .finance-report:empty { display:none; }
.finance-table-scroll { min-inline-size:0; border-radius:var(--tool-row-radius,10px); }
.finance-suite .finance-cash-table { font-size:13px; }
.finance-cash-table caption { padding-block:0 16px; font-size:15px; font-weight:600; color:var(--text); }
.finance-suite .finance-cash-table :is(th,td) { padding-block:12px; line-height:1.65; }
.finance-suite .finance-cash-table td:last-child { background:var(--row); }
.finance-breakdown { margin-block-start:12px; }
.finance-suite .finance-breakdown > summary { font-size:13px; color:var(--muted); }
.finance-breakdown .finance-table-scroll { padding-block-start:12px; }
.finance-suite .finance-workspace { gap:var(--tool-gap,18px); background:transparent; }
.finance-results-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 12px; margin-block-end:16px; }
.finance-suite .finance-results-head h2 { margin:0; font-size:16px; line-height:1.5; }
.finance-suite .finance-count { margin:0; font-size:12px; }
.finance-suite .finance-row {
  gap:16px; min-inline-size:0; margin-block:0 8px; padding:14px;
  border:1px solid var(--border); border-inline-start:3px solid var(--border);
  border-radius:var(--tool-row-radius,10px); background:var(--row);
}
.finance-suite .finance-row:last-child { margin-block-end:0; }
.finance-suite .finance-row[aria-pressed="true"] { border-inline-start-color:var(--green); background:var(--elevated); }
.finance-row-copy strong { font-size:14px; line-height:1.5; }
.finance-row-copy small { font-size:12px; line-height:1.6; }
.finance-suite .finance-detail .finance-caption:last-child { margin-block-end:0; }
.finance-suite .finance-detail-amount { font-size:clamp(1.25rem,2.6vw,1.75rem); line-height:1.5; overflow-wrap:anywhere; }
.finance-properties { font-size:13px; line-height:1.6; }
.finance-suite .finance-empty { padding:var(--tool-card-pad,20px); border-radius:var(--tool-row-radius,10px); line-height:1.65; }
.finance-suite .finance-dialog { border-radius:var(--tool-card-radius,18px); }
.finance-suite :is(.finance-header,.finance-actions) > * { min-inline-size:0; max-inline-size:100%; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .finance-suite button:not(:disabled),.finance-suite summary { transition:background-color 140ms ease,border-color 140ms ease; }
}
@media (max-width:700px) {
  .finance-suite .finance-header .finance-actions { gap:8px; }
  .finance-suite .finance-header .finance-actions button { flex:1 1 10rem; }
  .finance-suite .finance-filter-bar > .finance-field { flex-basis:100%; min-inline-size:0; }
  .finance-suite .finance-filters:not([open]),.finance-suite #finance-reset { flex:1 1 8rem; }
  .finance-suite .finance-row { flex-wrap:wrap; gap:10px; padding:12px; }
  .finance-row-copy { flex:1 1 12rem; }
  .finance-suite .finance-row .finance-money { font-size:13px; max-inline-size:100%; white-space:normal; overflow-wrap:anywhere; }
  .finance-suite .finance-detail > .finance-actions > button { flex:1 1 10rem; }
}
@media (forced-colors:active) {
  .finance-suite .finance-row[aria-pressed="true"] { outline:2px solid Highlight; outline-offset:-2px; }
  .finance-suite :is(.finance-report,.finance-results,.finance-detail) { box-shadow:none; }
}
