.fin-control-view{padding:0 2px 26px}.fin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.fin-summary-card{min-height:112px;border:1px solid #e5edf8;border-top:3px solid #2f80ff;border-radius:16px;background:#fff;padding:18px 18px 14px;box-shadow:0 9px 26px rgba(43,70,119,.07)}.fin-tone-red{border-top-color:#ef4444}.fin-tone-amber{border-top-color:#f59e0b}.fin-tone-green{border-top-color:#16a34a}.fin-summary-label{font-size:11px;text-transform:uppercase;letter-spacing:.045em;font-weight:800;color:#91a3bd}.fin-summary-value{margin-top:8px;font-weight:800;font-size:25px;color:#102a54;letter-spacing:-.02em}.fin-summary-sub{margin-top:8px;font-size:12px;color:#96a5ba}.fin-guide{margin:0 0 16px;padding:12px 15px;border:1px solid #dce8fa;border-radius:12px;background:#f8fbff;color:#506783;font-size:13px;line-height:1.45}.fin-guide strong{color:#1c4d9e}.fin-flash{margin:14px 0}.fin-table-card{border:1px solid #e7edf6;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(31,55,91,.055);overflow:hidden}.fin-filters{padding:14px;display:grid;grid-template-columns:minmax(260px,1fr) 190px 190px;gap:10px;border-bottom:1px solid #edf1f6}.fin-table-wrap{overflow-x:auto}.fin-table{min-width:1080px}.fin-table th{font-size:10px!important;letter-spacing:.045em;color:#6e809b;background:#f8fafc!important;text-transform:uppercase;white-space:nowrap}.fin-table td{vertical-align:middle}.fin-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.fin-actions .btn{white-space:nowrap}.fin-btn-pay{border-color:#c6ddff!important;color:#1769df!important;background:#f6faff!important}.fin-btn-collect{border-color:#a8edcf!important;color:#107b52!important;background:#f4fff9!important}.fin-empty{text-align:center!important;padding:35px!important;color:#9aabc0!important}.fin-status{display:inline-flex;align-items:center;justify-content:center;min-height:26px;border-radius:999px;padding:0 9px;font-size:11px;font-weight:800;white-space:nowrap;border:1px solid #dbe3ee;background:#f8fafc;color:#617086}.fin-status-pendiente{background:#fff8e8;border-color:#fde1a1;color:#a66a00}.fin-status-parcial{background:#eaf2ff;border-color:#c5d9ff;color:#1e65cc}.fin-status-vencida{background:#fff0f0;border-color:#ffc5c5;color:#c73f3f}.fin-status-pagada,.fin-status-cobrada{background:#ecfdf4;border-color:#afeacb;color:#14824f}.fin-status-cancelada{background:#f2f4f7;border-color:#dfe4eb;color:#667085}.fin-modal{width:min(760px,calc(100vw - 28px));max-height:min(880px,calc(100vh - 36px));display:flex;flex-direction:column}.fin-create-modal{width:min(860px,calc(100vw - 28px))}.fin-detail-modal{width:min(900px,calc(100vw - 28px))}.fin-modal .modal-body{overflow:auto;padding:20px 22px}.fin-section-label{margin:1px 0 12px;font-size:12px;font-weight:900;letter-spacing:.04em;color:#1d4e94;text-transform:uppercase}.fin-span-2{grid-column:1/-1}.fin-help{margin-top:5px;font-size:11px;color:#8493a7;line-height:1.35}.fin-textarea{min-height:74px;resize:vertical}.fin-payment-summary{margin:0 0 16px;padding:14px 15px;border:1px solid #cbdcff;border-radius:12px;background:#f6f9ff;display:flex;align-items:center;justify-content:space-between;gap:14px;color:#1d4e94}.fin-payment-summary strong{font-size:20px;color:#102a54}.fin-payment-summary small{display:block;max-width:360px;font-size:11px;color:#64748b;line-height:1.4}.fin-collect-summary{align-items:flex-start}.fin-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:17px}.fin-detail-card{border:1px solid #e6edf7;border-radius:12px;background:#fbfdff;padding:12px}.fin-detail-card span,.fin-detail-grid span{display:block;font-size:11px;font-weight:800;color:#8a9ab1;text-transform:uppercase;letter-spacing:.04em}.fin-detail-card strong{display:block;margin-top:6px;font-size:15px;color:#142d54;overflow-wrap:anywhere}.fin-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:16px}.fin-detail-grid>div{border-bottom:1px solid #edf1f6;padding:8px 0}.fin-detail-grid strong{display:block;margin-top:4px;font-size:13px;color:#263a58;overflow-wrap:anywhere}.fin-modal-heading{margin:18px 0 9px;font-size:14px;color:#1b345c}.fin-history{border:1px solid #e6edf7;border-radius:12px;overflow:hidden}.fin-history-row{display:grid;grid-template-columns:130px 1fr 1fr;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid #edf1f6;font-size:12px;color:#5f7086}.fin-history-row:last-child{border-bottom:0}.fin-history-row strong{color:#183764;text-transform:capitalize}.fin-explain{margin:0 0 14px;padding:12px;border:1px solid #f4dbab;background:#fffaf0;border-radius:10px;color:#8d6413;font-size:13px;line-height:1.45}.fin-status-modal{width:min(560px,calc(100vw - 28px))}.fin-loading{padding:45px;text-align:center;border:1px solid #e5edf7;background:#fff;border-radius:16px;color:#8392a7}.btn-danger{border-color:#fecaca!important;background:#fffafa!important;color:#d13232!important}@media(max-width:1100px){.fin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fin-filters{grid-template-columns:1fr 180px}.fin-filters select:last-child{grid-column:span 2}}@media(max-width:720px){.fin-summary{grid-template-columns:1fr}.fin-filters{grid-template-columns:1fr}.fin-filters select:last-child{grid-column:auto}.fin-detail-summary{grid-template-columns:1fr 1fr}.fin-detail-grid{grid-template-columns:1fr}.fin-history-row{grid-template-columns:1fr;gap:3px}.fin-modal .modal-body{padding:16px}.fin-create-modal{width:calc(100vw - 16px)}}

/* PDV360 V208 — CxP: pagos parciales y gestión en modal */
.fin-btn-manage{border-color:#d7e2ee!important;color:#244b7d!important;background:#fff!important}.fin-btn-manage:hover{background:#f7fbff!important}.fin-payment-summary-rich{align-items:flex-start}.fin-payment-summary-rich>div{display:grid;gap:4px}.fin-btn-full{margin-left:auto;white-space:nowrap;border-color:#c6ddff!important;color:#1769df!important;background:#f6faff!important}.fin-manage-actions{display:grid;gap:9px}.fin-manage-option{width:100%;justify-content:flex-start!important;min-height:42px!important;padding:10px 12px!important;font-weight:800!important}.fin-actions{min-width:220px}.fin-actions .btn{font-weight:750!important}@media(max-width:720px){.fin-payment-summary-rich{flex-direction:column}.fin-btn-full{margin-left:0;width:100%;justify-content:center}.fin-actions{min-width:190px}}

/* V209: componente CxP reconstruido; el modal de abonos parciales es el flujo oficial. */


/* V210 — controles CxP siempre visibles. No depende de wrappers ni de filtros de render previos. */
.fin-table-v210 { min-width: 1280px !important; }
.fin-table-v210 th:last-child,
.fin-table-v210 td.fin-action-cell-v210 {
  min-width: 330px !important;
  width: 330px !important;
  text-align: left !important;
}
.fin-table-v210 td.fin-action-cell-v210 {
  display: table-cell !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  background: #fff !important;
}
.fin-actions-v210 {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  min-height: 36px !important;
}
.fin-actions-v210 > button,
.fin-action-cell-v210 .btn {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 34px !important;
  padding: 7px 11px !important;
  border-radius: 9px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  pointer-events: auto !important;
  box-shadow: none !important;
}
.fin-actions-v210 > button:disabled {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: .48 !important;
  pointer-events: none !important;
}
.fin-action-pay-v210 { background: #173b73 !important; border-color: #173b73 !important; color: #fff !important; }
.fin-action-pay-v210:hover:not(:disabled) { background: #244f95 !important; border-color: #244f95 !important; }
.fin-action-detail-v210 { background: #fff !important; border-color: #cbd8e8 !important; color: #173b73 !important; }
.fin-action-detail-v210:hover:not(:disabled) { background: #f7faff !important; }
.fin-action-manage-v210 { background: #f6f9fd !important; border-color: #d4e0ee !important; color: #234c7d !important; }
.fin-action-manage-v210:hover:not(:disabled) { background: #edf4ff !important; }
@media (max-width: 900px) {
  .fin-table-v210 { min-width: 1120px !important; }
  .fin-table-v210 th:last-child,
  .fin-table-v210 td.fin-action-cell-v210 { min-width: 300px !important; width: 300px !important; }
}

.fin-picker{width:100%;min-height:44px;border:1px solid #dbe5ef;border-radius:11px;background:#fff;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left;color:#16345e}.fin-picker:hover{background:#f8fbff;border-color:#b9cfe8}.fin-picker-copy strong{display:block;color:#17305a;font-size:13px;font-weight:800;line-height:1.25}.fin-picker-copy small{display:block;margin-top:4px;color:#8ea0b7;font-size:11px;font-weight:700;line-height:1.35}.fin-picker-icon{color:#95a6bd;font-size:18px;font-weight:800}.fin-picker-modal{width:min(700px,calc(100vw - 28px))}.fin-picker-search{margin-bottom:12px}.fin-picker-list{display:grid;gap:10px;max-height:60vh;overflow:auto;padding-right:2px}.fin-picker-item{appearance:none;border:1px solid #dbe5ef;background:#fff;border-radius:14px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;text-align:left;color:#17305a}.fin-picker-item:hover{background:#f8fbff;border-color:#b9cfe8}.fin-picker-item .fin-picker-icon{color:#94a7be}

/* V224 — estados de CxP siempre visibles y derivados del saldo real */
.fin-status-cell{min-width:165px}.fin-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.fin-status-note{font-size:10px;line-height:1.3;color:#8b9bb0;font-weight:700;white-space:nowrap}.fin-due-overdue{color:#d23c3c!important;font-weight:800}.fin-build-marker{margin-top:9px;text-align:right;font-size:10px;color:#9aabc0;font-weight:700}.fin-table-v210 td:nth-child(8){min-width:165px}.fin-table-v210 td:nth-child(9){min-width:270px}@media(max-width:720px){.fin-status-note{white-space:normal}.fin-status-cell{min-width:145px}}


/* V225 — el estado es un elemento visible y no depende de reglas heredadas. */
.fin-table-v210 th:nth-child(8),.fin-table-v210 td:nth-child(8){min-width:190px!important;width:190px!important;visibility:visible!important;opacity:1!important}.fin-status-explicit{display:flex!important;visibility:visible!important;opacity:1!important;min-height:42px!important}.fin-status-explicit span,.fin-status-explicit small{visibility:visible!important;opacity:1!important}


/* V226 — Semáforo de estados dentro de la columna literal “Estado del registro”.
   Las reglas son deliberadamente específicas para vencer estilos heredados de builds anteriores. */
.fin-table-v210 td.fin-status-cell-v226{
  display:table-cell!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:200px!important;
  width:200px!important;
  color:#17305a!important;
  vertical-align:middle!important;
}
.fin-table-v210 td.fin-status-cell-v226 > .fin-state-v226,
.fin-table-v210 td.fin-status-cell-v226 .fin-state-chip-v226,
.fin-table-v210 td.fin-status-cell-v226 .fin-state-note-v226{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
}
.fin-table-v210 td.fin-status-cell-v226 .fin-state-note-v226{display:block!important}
.fin-table-v210 td.fin-status-cell-v226 *{text-indent:0!important;filter:none!important}
.fin-table-v210 td.fin-status-cell-v226.fin-status-pendiente .fin-state-chip-v226{background:#FFF6DB!important;border-color:#F8D777!important;color:#956400!important}
.fin-table-v210 td.fin-status-cell-v226.fin-status-parcial .fin-state-chip-v226{background:#FFF1D6!important;border-color:#F8C86A!important;color:#A85B00!important}
.fin-table-v210 td.fin-status-cell-v226.fin-status-vencida .fin-state-chip-v226{background:#FEE9E8!important;border-color:#F8B8B6!important;color:#B42318!important}
.fin-table-v210 td.fin-status-cell-v226.fin-status-pagada .fin-state-chip-v226{background:#E8F8EF!important;border-color:#A7E8C4!important;color:#087443!important}
.fin-table-v210 td.fin-status-cell-v226.fin-status-cancelada .fin-state-chip-v226{background:#EEF1F5!important;border-color:#D5DCE6!important;color:#667085!important}
