/* ============================================================
   FINANCEIRO — camada visual. Herda tokens de styles.css/crm.css/clinica.css
   ============================================================ */

/* menu de ações de linha (⋮) */
.cell-actions{display:flex;align-items:center;gap:6px;justify-content:space-between}
.row-dots{border:0;background:none;color:#9aa9b6;font-size:16px;padding:2px 6px;border-radius:5px;line-height:1;flex:none}
.row-dots:hover{background:#eef3f6;color:#5d7084}
.row-menu{position:absolute;z-index:60;min-width:150px;background:#fff;border:1px solid #cbd9e3;border-radius:9px;box-shadow:0 10px 26px #30465d24;padding:5px;display:none}
.row-menu.open{display:block}
.row-menu button{display:block;width:100%;border:0;background:none;text-align:left;padding:8px 10px;border-radius:6px;font:12px 'DM Sans';color:#3d617e}
.row-menu button:hover{background:#eef6fa}
.row-menu button.danger{color:#a8505f}
.row-menu button.danger:hover{background:#fbe3e6}
:root[data-theme="dark"] .row-menu{background:var(--surface-3);border-color:var(--border-2)}
:root[data-theme="dark"] .row-menu button{color:#b9c8d8}
:root[data-theme="dark"] .row-menu button:hover{background:#22354a}
:root[data-theme="dark"] .row-dots:hover{background:var(--surface-2)}

/* filtro fixo (clínica) */
.fixed-filter{font-size:11px;font-weight:700;padding:7px 12px;border-radius:20px;background:#dcecf6;color:#2f6c98;border:1px solid #8fb6d1}
.fixed-note{font-size:10.5px;color:#74879a;line-height:1.4}
.clifin-tabs,.crmfin-tabs{margin:14px 0 18px}
.clifin-view,.crmfin-view{display:none}
.clifin-view.active,.crmfin-view.active{display:block}

/* cards do painel financeiro (estilo PsicoManager) */
.fin-cards{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-bottom:16px}
.fin-cards.three{grid-template-columns:repeat(3,1fr)}
.fin-cards article{background:#fff;border:1px solid #d5e0e7;border-radius:10px;padding:16px 18px;box-shadow:0 2px 7px #24384a0c}
.fin-cards .fin-big{background:#f1f5f8;border-color:#cbd9e3}
.fin-cards p{font-size:11px;color:#62778b;margin:0 0 8px}
.fin-cards h2{font:700 24px Manrope;margin:0;letter-spacing:-.7px;color:#182a3d}
.fin-cards h2.pos{color:#2c6b4c}.fin-cards h2.neg{color:#9d5a37}.fin-cards h2.warn{color:#a6683b}
.fin-cards em{display:block;font-style:normal;font-size:10px;color:#74879a;margin-top:7px}
.fin-cards article.alert{border-color:#e7c3a8;background:#fffaf6}
.fin-split{display:flex;gap:18px;margin-top:11px;padding-top:11px;border-top:1px solid #eef3f6}
.fin-split span{font-size:10px;color:#74879a}
.fin-split b{display:block;font-size:12.5px;color:#20364a;margin-top:3px}
.fin-split b.pos{color:#2c6b4c}.fin-split b.warn{color:#a6683b}

/* gráfico anual */
.fin-chart{height:180px;display:flex;align-items:flex-end;gap:8px;padding:14px 4px 0}
.fc-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%;justify-content:flex-end}
.fc-bar i{width:60%;max-width:26px;background:#79b18f;border-radius:4px 4px 0 0;min-height:2px;transition:height .3s}
.fc-bar.cur i{background:#3f8ba6}
.fc-bar b{font-size:9px;color:#9aa6b4;font-weight:500}

.fin-atras-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.fin-empty{font-size:11px;color:#8aa; color:#89a0b0;text-align:center;padding:22px 0;margin:0}

/* fluxo de caixa — tabela */
.fluxo-scroll{overflow-x:auto;background:#fff;border:1px solid #d5e0e7;border-radius:10px;box-shadow:0 2px 7px #24384a0c}
.fluxo-table{width:100%;border-collapse:collapse;font-size:10.5px;min-width:920px}
.fluxo-table th,.fluxo-table td{padding:10px 12px;text-align:right;white-space:nowrap}
.fluxo-table thead th{background:#edf3f6;color:#6c8194;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;text-align:right}
.fluxo-table thead th:first-child,.fluxo-table tbody th{text-align:left}
.fluxo-table tbody th{color:#5d7084;font-weight:600;background:#fafcfd;position:sticky;left:0}
.fluxo-table tbody td{color:#5d7084;border-top:1px solid #eef3f6}
.fluxo-table tr.rec td{color:#2c6b4c}
.fluxo-table tr.arec td{color:#a6683b}
.fluxo-table tr.tot-rec th,.fluxo-table tr.tot-rec td{background:#f1f7f4;color:#20364a;font-weight:700;border-top:1px solid #d7e6dd}
.fluxo-table tr.tot-desp th,.fluxo-table tr.tot-desp td{background:#faf1f1;color:#9d5a37;font-weight:700}
.fluxo-table tr.result th,.fluxo-table tr.result td{background:#eef3f6;color:#182a3d;font-weight:700;border-top:2px solid #cbd9e3}

/* pagamento de sessões */
.ps-head,.ps-row{display:grid;grid-template-columns:1fr 1.1fr .9fr .9fr 1.6fr .9fr .8fr 1fr;gap:12px;align-items:center;padding:11px 16px}
.ps-acao{text-align:right}
.ps-done{color:#b9c6d0}
.ps-head{background:#edf3f6;color:#6c8194;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.ps-row{border-top:1px solid #e0e8ed;font-size:11px;color:#5d7084}
.ps-row b{color:#20364a;font-size:11.5px;display:block}
.ps-row em{font-style:normal;font-size:9.5px;color:#9aa6b2;display:block;margin-top:2px}

/* despesas */
.desp-head,.desp-row{display:grid;grid-template-columns:.9fr 1fr 1.8fr 1fr .9fr .9fr;gap:12px;align-items:center;padding:11px 16px}
.desp-head{background:#edf3f6;color:#6c8194;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.desp-row{border-top:1px solid #e0e8ed;font-size:11px;color:#5d7084}
.desp-row b{color:#20364a;font-size:11.5px}
.mod-badge{font-style:normal;font-size:9px;font-weight:600;padding:3px 8px;border-radius:5px;background:#e1eff8;color:#336c94}

/* repasses */
.rep-head,.rep-row{display:grid;grid-template-columns:2fr 1.1fr .6fr 1fr 1fr 1.2fr;gap:12px;align-items:center;padding:11px 16px}
.rep-head{background:#edf3f6;color:#6c8194;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.rep-row{border-top:1px solid #e0e8ed;font-size:11px;color:#5d7084}
.rep-row .who{display:flex;align-items:center;gap:10px;min-width:0}
.rep-row .who p{margin:0}
.rep-row .who b{display:block;font-size:11.5px;color:#20364a}
.rep-row .who em{display:block;font-style:normal;font-size:9.5px;color:#74879a;margin-top:3px}

/* irpf */
.irpf-head,.irpf-row{display:grid;grid-template-columns:2fr 1.2fr .7fr 1fr 1fr;gap:12px;align-items:center;padding:11px 16px}
.irpf-head{background:#edf3f6;color:#6c8194;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.irpf-row{border-top:1px solid #e0e8ed;font-size:11px;color:#5d7084}
.irpf-row b{color:#20364a;font-size:11.5px;display:block}
.irpf-row em{font-style:normal;font-size:9.5px;color:#9aa6b2}

@media(max-width:1100px){
  .fin-cards,.fin-cards.three{grid-template-columns:1fr}
  .fin-atras-grid{grid-template-columns:1fr}
}
@media(max-width:1000px){
  .ps-head,.ps-row{grid-template-columns:1fr 1.4fr .9fr 1fr}
  .ps-head span:nth-child(2),.ps-head span:nth-child(3),.ps-head span:nth-child(4),.ps-head span:nth-child(7){display:none}
  .desp-head,.desp-row{grid-template-columns:1.6fr .9fr .9fr}
  .desp-head span:nth-child(1),.desp-head span:nth-child(2),.desp-head span:nth-child(4){display:none}
  .rep-head,.rep-row{grid-template-columns:2fr 1fr 1.2fr}
  .rep-head span:nth-child(2),.rep-head span:nth-child(3),.rep-head span:nth-child(5){display:none}
  .irpf-head,.irpf-row{grid-template-columns:2fr 1fr 1fr}
  .irpf-head span:nth-child(2),.irpf-head span:nth-child(3){display:none}
}
@media(max-width:700px){
  .ps-head,.ps-row,.desp-head,.desp-row,.rep-head,.rep-row,.irpf-head,.irpf-row{min-width:0}
  .fin-chart{height:140px}
}

/* dark mode financeiro */
:root[data-theme="dark"] .fin-cards article,
:root[data-theme="dark"] .fluxo-scroll,
:root[data-theme="dark"] .ps-row,:root[data-theme="dark"] .desp-row,
:root[data-theme="dark"] .rep-row,:root[data-theme="dark"] .irpf-row{background:var(--surface);border-color:var(--border-2)}
:root[data-theme="dark"] .fin-cards .fin-big{background:var(--surface-3)}
:root[data-theme="dark"] .ps-head,:root[data-theme="dark"] .desp-head,
:root[data-theme="dark"] .rep-head,:root[data-theme="dark"] .irpf-head,
:root[data-theme="dark"] .fluxo-table thead th{background:var(--surface-2);color:var(--muted)}
:root[data-theme="dark"] .fin-cards h2,:root[data-theme="dark"] .ps-row b,
:root[data-theme="dark"] .desp-row b,:root[data-theme="dark"] .rep-row .who b,
:root[data-theme="dark"] .irpf-row b{color:var(--ink)}
:root[data-theme="dark"] .fluxo-table tbody th{background:var(--surface-2);color:var(--muted)}
:root[data-theme="dark"] .fluxo-table tbody td{color:var(--muted);border-color:var(--border-2)}
:root[data-theme="dark"] .fluxo-table tr.tot-rec th,:root[data-theme="dark"] .fluxo-table tr.tot-rec td{background:#152420;color:#8fd0ac}
:root[data-theme="dark"] .fluxo-table tr.result th,:root[data-theme="dark"] .fluxo-table tr.result td{background:var(--surface-3);color:var(--ink)}
:root[data-theme="dark"] .fixed-filter{background:#22354a;border-color:#39597a;color:#93c1e6}
:root[data-theme="dark"] .fc-bar.cur i{background:#5fa9c4}
