/* Finance (accounting) pages. Chart colours: receipts blue / payments orange (a pair that stays apart for colour-blind
   readers), cash balance in the brand green; legends + tooltips always name the series. */
:root{--fin-in:var(--info);--fin-out:var(--clay);--fin-cash:var(--accent)}
.fin-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tabs.fin-tabs{margin:-6px 0 18px}
.fin-tabs a{display:inline-flex;align-items:center;gap:6px}
.fin-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.fin-banner span{flex:1;min-width:200px}
.fin-sec{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-weight:600;margin:6px 0 10px}
.kpis.fin-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:22px}
.kpis.fin-kpis .kpi .v{font-size:24px;gap:8px}
.kpis.fin-kpis-sm .kpi .v{font-size:20px}
.num.pos,.v.pos{color:var(--good)}
.num.neg,.v.neg{color:var(--bad)}
.fin-delta{font-size:12.5px;font-weight:600;letter-spacing:0}
.fin-delta.up{color:var(--good)}.fin-delta.down{color:var(--bad)}
.fin-gap{margin-top:16px}
.grid2 + .grid2{margin-top:16px}
.fin-chart svg{display:block;overflow:visible}
.fin-chart-wide{overflow-x:auto;-webkit-overflow-scrolling:touch}
.fin-chart-wide svg{min-width:560px}
.fin-chart text{font-family:inherit}
.fin-hit:hover rect[fill^="var"],.fin-hit:hover circle[fill^="var"]{filter:brightness(1.12)}
.fin-hbars{display:flex;flex-direction:column;gap:10px}
.fin-hbar-l{display:flex;gap:8px;align-items:baseline;font-size:13.5px}
.fin-hbar-l span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-hbar-t{height:8px;border-radius:4px;background:var(--surface-2);margin-top:4px;overflow:hidden}
.fin-hbar-t i{display:block;height:100%;border-radius:4px;background:var(--fin-out)}
.fin-amt.in,.fin-inbox-amt.in,td.in{color:var(--good)}
.fin-tag{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:1px 6px;border-radius:5px;background:var(--surface-2);color:var(--ink-2);vertical-align:1px;cursor:help}
.fin-ledger tr.locked td{opacity:.75}
.fin-filters{margin:0 0 14px}
.fin-filters input[type=search]{min-width:180px}
.fin-report table{min-width:520px}
.fin-report th:first-child,.fin-report td:first-child{min-width:220px}
.fin-report td.tot,.fin-report th.tot{background:color-mix(in srgb, var(--surface-2) 60%, transparent);font-weight:600}
.fin-report tr.fin-h td{background:none;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-weight:700;padding-top:16px}
.fin-report tr.fin-line td:first-child{padding-left:22px}
.fin-report tr.fin-total td{font-weight:600;border-top:1px solid var(--line)}
.fin-report tr.fin-result td{font-weight:700;background:var(--accent-soft)}
.fin-report tr.fin-pct td{color:var(--ink-2);font-size:12.5px}
.fin-notes ul{margin:6px 0 0;padding-left:18px;color:var(--ink-2);font-size:13.5px;line-height:1.6}
.fin-form fieldset{border:0;padding:0;margin:0;min-width:0}
.fin-form-acts{margin-top:16px}
.fin-kind{margin-bottom:6px}
.fin-kind a{padding:7px 12px;text-decoration:none;color:var(--ink-2);font-weight:500}
.fin-kind a[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.fin-files{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.fin-danger{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.fin-inbox-list{display:flex;flex-direction:column}
.fin-inbox-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.fin-inbox-amt{font-weight:600;text-align:right;white-space:nowrap}
.fin-inbox-act{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.fin-inbox-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fin-inbox-form select{max-width:260px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.fin-edit{display:inline-block;text-align:left}
.fin-edit summary,.fin-add summary{list-style:none;cursor:pointer;display:inline-flex}
.fin-edit summary::-webkit-details-marker,.fin-add summary::-webkit-details-marker{display:none}
.fin-edit[open] .fin-acc-form{position:absolute;right:16px;z-index:5;width:min(360px,calc(100vw - 48px));background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:14px}
.fin-add{margin-top:14px}
.fin-acc-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px;align-items:end}
.fin-check{display:flex;gap:6px;align-items:center;font-size:14px}
.fin-cats{display:flex;flex-direction:column}
.fin-cat{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
tr.muted td,.fin-cat.muted{opacity:.55}
@media (max-width:860px){
  .kpis.fin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis.fin-kpis .kpi .v{font-size:20px}
  .tabs.fin-tabs{margin-top:0}
  .fin-acts{width:100%}
  .fin-acts .filters{width:100%}
  .fin-inbox-form select{max-width:none;flex:1 1 180px}
  .fin-edit[open] .fin-acc-form{position:fixed;left:16px;right:16px;bottom:16px;width:auto;z-index:50}
  .fin-report th:first-child,.fin-report td:first-child{min-width:170px}
  /* cash book: one compact card per line (date · details · amount, account underneath) */
  .fin-ledger thead{display:none}
  .fin-ledger table{min-width:0}
  .fin-ledger tbody tr{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:2px 10px;padding:10px 12px;border-bottom:1px solid var(--line)}
  .fin-ledger.tw > table > tbody > tr > td{padding:0;border:0;position:static;box-shadow:none;background:none}
  .fin-ledger tbody td:nth-child(3){grid-column:2/4;grid-row:2;font-size:12.5px;color:var(--ink-2)}
  .fin-ledger tbody td:nth-child(4){grid-column:3;grid-row:1}
}
