/* Financeiro Fase 03. Escopo próprio; preserva o layout dos demais módulos. */
@media screen {
 .cf-finance-dashboard .ff-patient-actions {display:flex;gap:10px;flex-wrap:wrap;}
 .cf-finance-dashboard .ff-patient-kpis {grid-template-columns:repeat(4,minmax(0,1fr));}
 .cf-finance-dashboard .ff-charge {margin-top:14px;}
 .cf-finance-dashboard .ff-charge-title {display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
 .cf-finance-dashboard .ff-charge h3 {margin:0 0 6px;font-size:16px;}
 .cf-finance-dashboard .ff-charge small {color:var(--cf-muted);}
 .cf-finance-dashboard .ff-charge dl {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0;}
 .cf-finance-dashboard .ff-charge dt {font-size:11px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-charge dd {margin:5px 0;font-size:14px;overflow-wrap:anywhere;}
 .cf-finance-dashboard [data-charge-details]>summary {cursor:pointer;min-height:44px;padding:12px 0;color:var(--cf-primary);}
 .cf-finance-dashboard [data-charge-body] {margin-top:12px;}
 .cf-finance-dashboard .ff-switch {max-width:440px;margin:20px 0;}
 .cf-finance-dashboard [data-patient-list] {margin-top:16px;}
 .cf-finance-dashboard [data-patient-statement] {display:block;font-size:11px!important;margin-top:8px;}
 @media(max-width:1100px){.cf-finance-dashboard .ff-patient-kpis,.cf-finance-dashboard .ff-charge dl {grid-template-columns:repeat(2,minmax(0,1fr));}}
 @media(max-width:420px){.cf-finance-dashboard .ff-patient-kpis,.cf-finance-dashboard .ff-charge dl {grid-template-columns:minmax(0,1fr);}}
}
@media screen {
 .cf-finance-dashboard {min-width:0;color:var(--cf-text);}
 .cf-finance-dashboard *, .cf-finance-dashboard *::before {box-sizing:border-box;}
 .cf-finance-dashboard [hidden] {display:none!important;}
 .cf-finance-dashboard .ff-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;}
 .cf-finance-dashboard .ff-heading h2 {font-size:28px;margin:4px 0 6px;}
 .cf-finance-dashboard p {line-height:1.55;}
 .cf-finance-dashboard .ff-heading p {margin:0;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-filter-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end;}
 .cf-finance-dashboard label {display:grid;gap:6px;font-size:12px;font-weight:650;min-width:0;}
 .cf-finance-dashboard input,.cf-finance-dashboard select {width:100%;min-width:0;max-width:100%;font:inherit;min-height:44px;}
 .cf-finance-dashboard .btn {min-height:44px;white-space:normal;}
 .cf-finance-dashboard .ff-period {margin:16px 0 0;font-size:12px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-update {min-height:28px;margin:14px 0 6px;font-size:12px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-kpis {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
 .cf-finance-dashboard .ff-kpi {position:relative;min-width:0;min-height:166px;display:flex;flex-direction:column;gap:10px;padding:22px!important;}
 .cf-finance-dashboard .ff-kpi h3 {font-size:13px;margin:0;padding-right:26px;font-weight:650;}
 .cf-finance-dashboard .ff-kpi>strong {font-size:clamp(22px,2vw,30px);line-height:1.2;letter-spacing:-.7px;overflow-wrap:anywhere;}
 .cf-finance-dashboard .ff-kpi small {color:var(--cf-muted);font-size:11px;line-height:1.5;margin-top:auto;}
 .cf-finance-dashboard .ff-kpi-icon {position:absolute;right:20px;top:20px;color:var(--cf-primary);}
 .cf-finance-dashboard .ff-caption {font-size:12px;color:var(--cf-muted);margin:16px 0;}
 .cf-finance-dashboard .ff-sections {display:grid;gap:14px;margin-top:20px;}
 .cf-finance-dashboard .ff-section {padding:0!important;min-width:0;overflow:clip;}
 .cf-finance-dashboard .ff-section>summary {display:flex;gap:14px;align-items:center;padding:22px;list-style:none;cursor:pointer;min-height:80px;}
 .cf-finance-dashboard .ff-section>summary::-webkit-details-marker {display:none;}
 .cf-finance-dashboard .ff-section>summary>.cf-icon {color:var(--cf-primary);}
 .cf-finance-dashboard .ff-section summary strong {display:block;font-size:15px;}
 .cf-finance-dashboard .ff-section summary small {display:block;font-size:12px;color:var(--cf-muted);margin-top:4px;}
 .cf-finance-dashboard .ff-chevron {margin-left:auto;font-size:22px;transition:transform 160ms ease;}
 .cf-finance-dashboard details[open] .ff-chevron {transform:rotate(180deg);}
 .cf-finance-dashboard details[open]>summary {border-bottom:1px solid var(--cf-border);}
 .cf-finance-dashboard .ff-section-content {padding:20px;min-width:0;}
 .cf-finance-dashboard .ff-list-filters {display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:20px;}
 .cf-finance-dashboard .ff-list-filters label {flex:1 1 140px;}
 .cf-finance-dashboard .ff-table-wrap {width:100%;overflow-x:auto;min-width:0;border:1px solid var(--cf-border);border-radius:10px;}
 .cf-finance-dashboard .ff-table {width:100%;background:var(--cf-surface);color:var(--cf-text);border-radius:0;}
 .cf-finance-dashboard .ff-table tbody tr,.cf-finance-dashboard .ff-table td {background:var(--cf-surface);color:var(--cf-text);}
 .cf-finance-dashboard .ff-table th {background:var(--cf-raised);color:var(--cf-muted);font-size:11px;}
 .cf-finance-dashboard .ff-table th,.cf-finance-dashboard .ff-table td {padding:13px 12px;border-color:var(--cf-border);text-align:left;vertical-align:top;overflow-wrap:anywhere;}
 .cf-finance-dashboard .ff-table tr:hover td {background:var(--cf-raised);}
 .cf-finance-dashboard .ff-table td>strong,.cf-finance-dashboard .ff-table td>small {display:block;margin-top:5px;}
 .cf-finance-dashboard .ff-table td>small {color:var(--cf-muted);font-size:11px;}
 .cf-finance-dashboard .ff-badge {display:inline-block;font-size:11px;padding:5px 9px;border-radius:20px;background:var(--cf-primary-soft);color:var(--cf-primary);}
 .cf-finance-dashboard :is(.ff-status-overdue,.ff-status-partial_overdue,.ff-status-cancelled) {background:var(--cf-danger-soft);color:var(--cf-danger);}
 .cf-finance-dashboard .ff-status-paid {background:var(--cf-raised);color:var(--cf-success);border:1px solid var(--cf-border);}
 .cf-finance-dashboard :is(.ff-status-partial,.ff-status-partial_to_be_arranged) {border:1px solid var(--cf-primary);}
 .cf-finance-dashboard .ff-methods {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
 .cf-finance-dashboard .ff-method {display:flex;flex-direction:column;gap:9px;text-align:left;padding:18px;min-width:0;border:1px solid var(--cf-border);border-radius:12px;background:var(--cf-surface);color:var(--cf-text);cursor:pointer;font:inherit;}
 .cf-finance-dashboard .ff-method b {font-size:23px;overflow-wrap:anywhere;}
 .cf-finance-dashboard .ff-method small {color:var(--cf-muted);font-size:12px;}
 .cf-finance-dashboard .ff-method span {font-size:12px;color:var(--cf-primary);margin-top:auto;}
 .cf-finance-dashboard .ff-method:hover {background:var(--cf-raised);border-color:var(--cf-primary);}
 .cf-finance-dashboard .ff-pagination {display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-top:16px;font-size:12px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-pagination>div {display:flex;gap:8px;}
 .cf-finance-dashboard .ff-totals {font-size:13px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-totals strong {color:var(--cf-text);}
 .cf-finance-dashboard :is(.ff-error,.ff-review) {padding:14px 16px;border:1px solid var(--cf-danger);border-radius:10px;background:var(--cf-danger-soft);color:var(--cf-danger);margin:12px 0;}
 .cf-finance-dashboard .ff-error p {margin:0 0 10px;}
 .cf-finance-dashboard .ff-date-warning {color:var(--cf-danger)!important;display:block;font-size:11px;margin-top:4px;}
 .cf-finance-dashboard :is(.ff-empty,.ff-loading) {padding:20px;color:var(--cf-muted);background:var(--cf-raised);border-radius:10px;font-size:13px;}
 .cf-finance-dashboard :is(button,input,select,summary,.ff-table-wrap):focus-visible {outline:3px solid var(--cf-primary);outline-offset:3px;}
 @media(max-width:1100px) {.cf-finance-dashboard .ff-kpis {grid-template-columns:repeat(2,minmax(0,1fr));}.cf-finance-dashboard .ff-filter-grid {grid-template-columns:repeat(2,minmax(0,1fr));}.cf-finance-dashboard .ff-methods {grid-template-columns:repeat(2,minmax(0,1fr));}}
 @media(max-width:767px) {
  .cf-finance-dashboard .ff-heading {flex-direction:column;gap:14px;}
  .cf-finance-dashboard .ff-heading h2 {font-size:25px;}
  .cf-finance-dashboard .ff-filter-grid {grid-template-columns:minmax(0,1fr);}
  .cf-finance-dashboard .ff-section>summary {padding:18px 14px;gap:10px;}
  .cf-finance-dashboard .ff-section-content {padding:14px;}
  .cf-finance-dashboard .ff-section summary small {font-size:11px;}
  .cf-finance-dashboard .ff-list-filters label {flex-basis:100%;}
  .cf-finance-dashboard .ff-list-filters .btn {width:100%;}
  .cf-finance-dashboard .ff-table-wrap {border:0;overflow:visible;}
  .cf-finance-dashboard .ff-table,.cf-finance-dashboard .ff-table tbody,.cf-finance-dashboard .ff-table tr,.cf-finance-dashboard .ff-table td {display:block;width:100%;min-width:0!important;}
  .cf-finance-dashboard .ff-table thead {display:none;}
  .cf-finance-dashboard .ff-table tbody {display:grid;gap:12px;}
  .cf-finance-dashboard .ff-table tr {padding:12px;border:1px solid var(--cf-border);border-radius:10px;background:var(--cf-surface);}
  .cf-finance-dashboard .ff-table td {padding:9px 0!important;border-bottom:1px solid var(--cf-border);}
  .cf-finance-dashboard .ff-table td::before {display:block;content:attr(data-label);color:var(--cf-muted);font-size:11px;font-weight:650;margin-bottom:5px;}
  .cf-finance-dashboard .ff-table td:last-child {border:0;}
  .cf-finance-dashboard .ff-table td>strong,.cf-finance-dashboard .ff-table td>small {margin-top:5px;}
 }
 @media(max-width:420px) {.cf-finance-dashboard .ff-kpis,.cf-finance-dashboard .ff-methods {grid-template-columns:minmax(0,1fr);}.cf-finance-dashboard .ff-kpi {min-height:142px;}}
 @media(prefers-reduced-motion:reduce) {.cf-finance-dashboard .ff-chevron {transition:none;}}
}

/* Fase 05: somente a seção de análise financeira. */
@layer components {
 .cf-finance-dashboard .ff-analysis {min-width:0;}
 .cf-finance-dashboard .ff-analysis-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
 .cf-finance-dashboard .ff-analysis-chart {padding:18px;min-width:0;overflow:hidden;}
 .cf-finance-dashboard .ff-analysis h3 {font-size:16px;color:var(--cf-text);margin:0 0 12px;}
 .cf-finance-dashboard .ff-chart-legend {display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--cf-text);}
 .cf-finance-dashboard .ff-chart-legend i {display:inline-block;width:12px;height:12px;background:var(--cf-primary);margin-right:6px;border-radius:3px;}
 .cf-finance-dashboard .ff-chart-legend i.ff-series-1 {background:#13a18e;}
 .cf-finance-dashboard .ff-bar-list {max-height:460px;overflow-y:auto;overscroll-behavior:contain;padding:4px;}
 .cf-finance-dashboard .ff-bar-row {display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:10px;margin:12px 0;}
 .cf-finance-dashboard .ff-bar-row>strong {font-size:12px;overflow-wrap:anywhere;color:var(--cf-text);}
 .cf-finance-dashboard .ff-chart-bar {display:block;position:relative;width:100%;min-height:36px;border:1px solid var(--cf-border);border-radius:5px;background:var(--cf-raised);padding:6px;margin:4px 0;text-align:right;cursor:pointer;color:var(--cf-text);}
 .cf-finance-dashboard .ff-chart-bar>span {position:absolute;inset:0 auto 0 0;background:var(--cf-primary);opacity:.25;border-radius:4px;pointer-events:none;}
 .cf-finance-dashboard .ff-chart-bar.ff-series-1>span {background:#13a18e;}
 .cf-finance-dashboard .ff-chart-bar>b {position:relative;font-size:12px;overflow-wrap:anywhere;}
 .cf-finance-dashboard .ff-analysis-note {padding:18px;margin-top:18px;min-width:0;}
 .cf-finance-dashboard .ff-analysis-note .ff-table-wrap {max-height:550px;overflow:auto;}
 .cf-finance-dashboard .ff-comparison {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
 .cf-finance-dashboard .ff-comparison dt {font-size:12px;color:var(--cf-muted);}
 .cf-finance-dashboard .ff-comparison dd {margin:5px 0;font-size:17px;font-weight:700;color:var(--cf-text);overflow-wrap:anywhere;}
 @media(max-width:1100px){.cf-finance-dashboard .ff-analysis-grid {grid-template-columns:minmax(0,1fr);}}
 @media(max-width:420px){.cf-finance-dashboard .ff-analysis-chart,.cf-finance-dashboard .ff-analysis-note {padding:12px;}.cf-finance-dashboard .ff-bar-row {grid-template-columns:68px minmax(0,1fr);gap:6px;}.cf-finance-dashboard .ff-comparison {grid-template-columns:minmax(0,1fr);}}
}
/* Fase 06: diálogo compartilhado de recebimento. */
.cf-receipt-dialog {box-sizing:border-box;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--cf-border);border-radius:16px;padding:24px;background:var(--cf-surface);color:var(--cf-text);box-shadow:0 20px 80px #0005;}
.cf-receipt-dialog::backdrop {background:#061528b3;}
.cf-receipt-dialog h2 {margin:0 0 12px;font-size:23px;color:var(--cf-text);}
.cf-receipt-dialog p {font-size:13px;line-height:1.5;overflow-wrap:anywhere;}
.cf-receipt-dialog label {display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;min-width:0;}
.cf-receipt-dialog :is(input,select,textarea) {box-sizing:border-box;width:100%;min-height:44px;padding:10px;border:1px solid var(--cf-border);border-radius:8px;background:var(--cf-raised);color:var(--cf-text);}
.cf-receipt-dialog :is(button,input,select,textarea):focus-visible {outline:3px solid var(--cf-primary);outline-offset:2px;}
.cf-receipt-dialog .fr-summary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.cf-receipt-dialog .fr-summary dt {font-size:12px;color:var(--cf-muted);}
.cf-receipt-dialog .fr-summary dd {margin:6px 0;font-size:17px;font-weight:700;overflow-wrap:anywhere;}
.cf-receipt-dialog .fr-line {display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;padding:14px 0;border-bottom:1px solid var(--cf-border);}
.cf-receipt-dialog .fr-confirm {display:flex;flex-direction:row;align-items:flex-start;margin:20px 0;line-height:1.5;}
.cf-receipt-dialog .fr-confirm input {width:22px;min-width:22px;min-height:22px;}
.cf-receipt-dialog .fr-actions {display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;}
.cf-receipt-dialog [role=alert] {color:var(--cf-text);font-weight:600;line-height:1.5;}
@media(max-width:600px){.cf-receipt-dialog {padding:16px;}.cf-receipt-dialog .fr-line {grid-template-columns:minmax(0,1fr);}.cf-receipt-dialog .fr-summary {grid-template-columns:minmax(0,1fr);}.cf-receipt-dialog .fr-actions>* {width:100%;}}.cf-receipt-dialog label {color:var(--cf-text);}
.cf-receipt-dialog .btn.secondary {background:var(--cf-raised);color:var(--cf-text);border:1px solid var(--cf-border);min-height:44px;}
.cf-finance-dashboard .ff-charge-actions {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;}
.cf-finance-dashboard .ff-charge-actions > .btn {flex:0 0 auto;width:auto;margin:0;}
