/* ── Finance (finance.js): the chart, the bar lists, the aging strip, the CSV mapper ── */
.fin-asof{display:block;margin:-.6rem 0 .6rem}
.fin-pbar{display:block;margin:.35rem 0 0;height:6px}
.stat.hl .fin-pbar{background:#ffffff33} .stat.hl .fin-pbar>span{background:#fff}
.fin-set{font-weight:600}
.fin-legend{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--slate);flex-wrap:wrap}
.fin-legend i,.fin-tip i,.aging-legend i{display:inline-block;width:.75rem;height:.75rem;border-radius:3px;vertical-align:-1px}
.fin-legend i+i,.fin-legend i:not(:first-child){margin-left:.6rem}
.fin-legend .link{margin-left:.8rem}
.fin-chartwrap{position:relative}
.fin-chart{width:100%;height:auto;display:block;font-family:var(--sans)}
.fin-grid{stroke:var(--border);stroke-width:1}
.fin-base{stroke:var(--taupe);stroke-width:1}
.fin-ax{font-size:11px;fill:var(--slate)}
.fin-dl{font-size:11px;font-weight:700;fill:var(--navy)}
.fin-col rect{transition:fill .15s}
.fin-col:hover rect,.fin-col.on rect{fill:#5e2d5e12}
.fin-tip{position:absolute;top:.2rem;background:#fff;border:1px solid var(--border);border-radius:8px;padding:.45rem .65rem;font-size:.8rem;box-shadow:0 4px 14px #1e2a4422;pointer-events:none;display:flex;flex-direction:column;gap:.15rem;min-width:11rem;color:var(--navy)}
.fin-tip b{font-family:var(--serif);font-weight:400;font-size:.95rem;margin-bottom:.1rem}
.fin-tip span{display:flex;align-items:center;gap:.35rem} .fin-tip em{margin-left:auto;font-style:normal;font-variant-numeric:tabular-nums;font-weight:600}
.fbars{display:flex;flex-direction:column;gap:.35rem}
.fbar{display:grid;grid-template-columns:minmax(6rem,10rem) 1fr auto;align-items:center;gap:.6rem;font-size:.88rem}
.fbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fbt{background:var(--haze);border-radius:999px;height:12px;overflow:hidden}
.fbf{display:block;height:100%;border-radius:999px;min-width:3px}
.fbv{font-variant-numeric:tabular-nums;font-weight:600;color:var(--navy);white-space:nowrap} .fbv small{font-weight:400}
.aging{display:flex;height:18px;border-radius:999px;overflow:hidden;gap:2px;background:var(--haze)}
.aging span{display:block;min-width:4px}
.aging-legend{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;margin-top:.55rem;font-size:.82rem;color:var(--navy)}
.aging-legend span{display:inline-flex;align-items:center;gap:.35rem} .aging-legend b{font-variant-numeric:tabular-nums}
.fin-filters{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.9rem}
.fin-filters select{width:auto;padding:.4rem .6rem;font-size:.9rem}
.fin-tbl td.nowrap,.fin-tbl .nowrap{white-space:nowrap}
.fin-tbl tr.late td{background:#9e3b3b0d}
.tag.late{color:var(--red);border-color:var(--red)}
.num.neg{color:var(--red)}
.inv-st{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:.1rem .55rem;background:var(--haze);color:var(--slate)}
.inv-st.sent{background:#c7a65a33;color:#6b5420} .inv-st.paid{background:#71817233;color:#3f5a42} .inv-st.void{text-decoration:line-through}
.csv-map{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem .7rem;margin:.3rem 0 .6rem}
.csv-map select{padding:.4rem .5rem;font-size:.88rem}
@media(max-width:760px){.fbar{grid-template-columns:minmax(5rem,7rem) 1fr auto;font-size:.8rem}.fin-tbl{font-size:.8rem}}
