.fin-module { min-width:0; font:14px/1.55 var(--font-body); color:var(--text); }
.fin-module [hidden] { display:none !important; }
.fin-tabs,.fin-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 0 18px; }
.fin-tabs { border-bottom:1px solid var(--line); padding-bottom:14px; }
.fin-module button,.fin-module input,.fin-module select { font:inherit; font-size:13px; border:1px solid var(--line); border-radius:8px; padding:9px 12px; background:var(--panel); color:var(--text); min-height:38px; max-width:100%; }
.fin-module button { cursor:pointer; font-weight:500; transition:background-color .18s,border-color .18s,color .18s; }
.fin-module button:hover { background:var(--panel-soft); border-color:var(--line-strong); }
.fin-module button:focus-visible,.fin-module input:focus-visible,.fin-module select:focus-visible { outline:2px solid var(--link-accent); outline-offset:2px; }
.fin-module button:disabled { opacity:.6; cursor:wait; }
.fin-module .fin-tabs button { min-height:34px; padding:8px 13px; border-color:transparent; background:transparent; color:var(--muted); font-size:12px; border-radius:7px; }
.fin-module .fin-tabs button:hover { background:var(--panel); color:var(--text); }
.fin-module .fin-tabs button[aria-current=page] { border-color:rgba(16,163,127,.16); background:var(--success-soft); color:var(--link-accent); }
.fin-module :is([data-fin-action=newIncome],[data-fin-action=newExpense],[data-fin-action=newAccount],[data-fin-action=newConfig],[data-fin-action=newTransfer],[data-fin-action=settle],[data-fin-action=importOFX]),.fin-module .fin-form>button:not([type=button]),.fin-module .fin-filters>button:not([type=button]) { background:var(--action); border-color:var(--action); color: var(--on-action); }
.fin-module :is([data-fin-action=newIncome],[data-fin-action=newExpense],[data-fin-action=newAccount],[data-fin-action=newConfig],[data-fin-action=newTransfer],[data-fin-action=settle],[data-fin-action=importOFX]):hover,.fin-module .fin-form>button:not([type=button]):hover,.fin-module .fin-filters>button:not([type=button]):hover { background:var(--action-hover); border-color:var(--action-hover); }
.fin-filters,.fin-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.fin-filters { padding:20px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); grid-template-columns:repeat(5,minmax(0,1fr)); }
.fin-module label { display:flex; min-width:0; flex-direction:column; gap:7px; font-size:12px; font-weight:500; color:var(--text-soft); }
.fin-module label:has(input[type=checkbox]) { flex-direction:row; align-items:center; }
.fin-module input,.fin-module select { width:100%; background:var(--panel-soft); }
.fin-module input::placeholder { color:var(--muted); }
.fin-module input[type=checkbox] { width:16px; height:16px; min-height:0; accent-color:#087f63; }
.fin-module input[type=file] { padding:8px; }
.fin-full { grid-column:1/-1; }
.purchase-line { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;border-bottom:1px solid var(--line);padding:16px 0; }
.purchase-line>strong { grid-column:1/-1; }
[data-purchase-results] { display:flex;flex-wrap:wrap;gap:8px;max-height:240px;overflow:auto; }
@media(max-width:600px) { .purchase-line { grid-template-columns:1fr; } }
.fin-debt-row { display:grid; grid-template-columns:repeat(4,minmax(100px,1fr)) auto; gap:8px; align-items:end; padding:12px 0; border-bottom:1px solid var(--line); }
.fin-debt-row input { font-variant-numeric:tabular-nums; }
.fin-debt-schedule { border:1px solid var(--line); padding:14px; border-radius:var(--radius); min-width:0; }
@media(max-width:600px) { .fin-debt-row { grid-template-columns:repeat(2,minmax(0,1fr)); } .fin-debt-row button { grid-column:1/-1; } }
.fin-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:18px 0 24px; }
.fin-kpi { border:1px solid var(--line); border-radius:var(--radius-lg); padding:20px; background:var(--panel); display:flex; flex-direction:column; gap:10px; }
.fin-kpi>span { color:var(--muted); font-size:13px; }
.fin-kpi strong { color:var(--text); font:600 26px/1.25 var(--font-num); font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.fin-kpi small { color:var(--muted); font-size:12px; }
.fin-table { overflow:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); margin:14px 0 26px; }
.fin-table table { border-collapse:collapse; width:100%; font-size:13px; }
.fin-module[data-fin-view=ofx] .fin-table table { min-width:760px; }
.fin-module[data-fin-view=ofx] .fin-table td { overflow-wrap:normal; min-width:100px; }
.fin-module[data-fin-view=ofx] .fin-table td:last-child { min-width:180px; }
.fin-table th,.fin-table td { text-align:left; padding:14px 12px; border-bottom:1px solid var(--line); vertical-align:top; color:var(--text-soft); }
.fin-module[data-fin-view=management] .fin-table td,.fin-module[data-fin-view=debts] .fin-table td { overflow-wrap:normal; min-width:110px; }
.fin-module[data-fin-view=management] .fin-table table,.fin-module[data-fin-view=debts] .fin-table table { min-width:650px; }
.fin-table th { background:var(--panel-soft); color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.04em; white-space:nowrap; }
.fin-table tbody tr:last-child td { border-bottom:0; }
.fin-table tbody tr:hover { background:var(--panel-soft); }
.fin-table td strong { color:var(--text); font-weight:500; }
.fin-table td small { display:block; color:var(--muted); margin-top:5px; }
.fin-table td button { padding:6px 10px; font-size:12px; min-height:32px; }
.fin-table td[colspan] { padding:28px 18px; text-align:center; color:var(--muted); }
.fin-status { display:inline-block; white-space:nowrap; background:var(--neutral-soft); color:var(--text-soft); border-radius:6px; padding:4px 8px; font-size:12px; }
.fin-panel { padding:24px; border:1px solid var(--line); background:var(--panel); border-radius:var(--radius-lg); }
.fin-module h3 { margin:12px 0 20px; color:var(--text); font-size:18px; font-weight:600; }
.fin-module p { line-height:1.65; color:var(--text-soft); }
.fin-module a { color:var(--link-accent); }
.fin-module .fin-notice { background:var(--warning-soft); padding:14px; border-radius:8px; color:var(--warning-text); }
.fin-module .fin-error { color:var(--danger-text); white-space:pre-wrap; }
.fin-error:empty { display:none; }
.fin-module [hidden] { display:none!important; }
.fin-breadcrumb { color:var(--muted);font-size:13px;margin:0 0 20px; }
.nav-button[data-nav-group-toggle^="finance-"] strong { white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35; }
.nav-sub-item[data-finance-route].is-active { color:var(--accent,#23c5a2);background:rgba(16,185,129,.13);box-shadow:inset 3px 0 #0d9b79; }
.fin-module { min-width:0;overflow-wrap:anywhere; }
.fin-module fieldset { min-width:0; border:1px solid var(--line); padding:16px; border-radius:8px; }
.fin-module legend { font-size:12px; color:var(--muted); padding:0 6px; }
.fin-allocation { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:8px; margin-bottom:10px; align-items:end; }
@media(max-width:1100px) { .fin-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } .fin-allocation { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .fin-filters,.fin-form { grid-template-columns:1fr; } .fin-panel,.fin-filters { padding:14px; } .fin-allocation { grid-template-columns:1fr; } .fin-module .fin-tabs button { flex:1 1 40%; } }
@media print {
  body:has(.fin-module) .sidebar,body:has(.fin-module) .topbar,.fin-no-print { display:none!important; }
  .fin-module { --panel:#fff; --panel-soft:#f5f5f5; --text:#111; --text-soft:#222; --muted:#555; --line:#ddd; --neutral-soft:#eee; color:#111; }
  .fin-table { overflow:visible; } .fin-table th,.fin-table td { font-size:10px; padding:5px; } .fin-panel { border:0; }
}

#reportLibraryRoot .fin-table table{min-width:680px}
.fin-table .fin-library-table { min-width: 900px; }
.fin-table .fin-library-table th, .fin-table .fin-library-table td { min-width: 120px; }
