/* ========================================================================
   Finanzas — sub-páginas Créditos / Amortización inteligente / CFO
   Colores semánticos por crédito. Hereda tema de la app (var(--primary)…).
   ======================================================================== */
:root {
  --fc-veh:#E67E22; --fc-veh-bg:#fbeedd; --fc-con:#C0392B; --fc-con-bg:#f9e4e1;
  --fc-hip:#2E5984; --fc-hip-bg:#e6edf4; --fc-agr:#1e874b; --fc-agr-bg:#e2f2e9;
  --fc-casc:#8E44AD; --fc-cfo:#0f766e; --fc-good:#1e874b; --fc-warn:#b7791f; --fc-bad:#c0392b;
  --fc-on:#ffffff;   /* texto sobre un fondo solido de la paleta fc-* */
}

/* Sub-navegación de Finanzas (pills) */
.fc-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px;padding:0 4px}
.fc-subnav a{display:flex;align-items:center;gap:7px;text-decoration:none;font-weight:600;font-size:13.5px;
  padding:8px 15px;border-radius:22px;background:var(--cute-card,#fff);border:2px solid var(--cute-borde,#eee);color:var(--cute-texto,#5d4e6d)}
.fc-subnav a:hover{border-color:var(--fc-cfo)}
.fc-subnav a.on{background:var(--primary);color:var(--on-primary, #fff);border-color:var(--primary)}
.fc-subnav a[aria-disabled="true"]{opacity:.45;pointer-events:none}
.fc-subnav .pd{width:9px;height:9px;border-radius:50%}

/* Grid de tarjetas de crédito */
.fc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.fc-card{background:var(--cute-card,#fff);border:2px solid var(--cute-borde,#eee);border-radius:16px;
  border-top:6px solid var(--c,#999);padding:18px 20px;box-shadow:0 4px 14px rgba(0,0,0,.05);transition:transform .15s,box-shadow .15s}
.fc-card--click{cursor:pointer}
.fc-card--click:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.12)}
.fc-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}
.fc-card__name{font-weight:700;font-size:15.5px;color:var(--c)}
.fc-card__saldo{font-size:22px;font-weight:800;color:var(--c);margin:2px 0 12px}
.fc-card__row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--cute-texto,#5d4e6d)}
.fc-card__row b{font-weight:700}
.fc-card__actions{display:flex;gap:8px;margin-top:12px}
.fc-badge{padding:3px 11px;border-radius:20px;font-size:11px;font-weight:700}
.fc-badge--venc{background:var(--fc-bad);color:var(--fc-on, #fff)}
.fc-badge--ok{background:var(--fc-agr-bg);color:var(--fc-agr)}

/* Chip de validación de saldo a la fecha */
.fc-valida{margin-top:10px;padding:8px 11px;border-radius:10px;font-size:12px;line-height:1.4}
.fc-valida--ok{background:var(--fc-agr-bg);color:var(--fc-agr)}
.fc-valida--warn{background:var(--warning-bg);color:var(--fc-warn)}
.fc-valida--info{background:var(--cute-bg,#fff5f8)}

/* Botones */
.fc-btn{background:var(--fc-cfo);color:var(--fc-on, #fff);border:none;border-radius:11px;padding:8px 15px;font-weight:700;cursor:pointer;font-size:13px}
.fc-btn:hover{filter:brightness(1.06)}
.fc-btn--ghost{background:transparent;color:var(--fc-cfo);border:2px solid var(--fc-cfo)}
.fc-btn--sm{padding:5px 11px;font-size:12px}
.fc-btn--danger{background:transparent;color:var(--fc-bad);border:2px solid var(--fc-bad)}

/* Formulario editable en modal */
.fc-modal-ov{position:fixed;inset:0;background:rgba(20,20,30,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}
.fc-modal{background:var(--cute-card,#fff);border-radius:18px;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.fc-modal__head{padding:16px 20px;border-bottom:1px solid var(--cute-borde,#eee);display:flex;justify-content:space-between;align-items:center}
.fc-modal__head h3{margin:0;font-size:17px;color:var(--cute-texto,#5d4e6d)}
.fc-modal__x{background:none;border:none;font-size:24px;cursor:pointer;color:var(--cute-texto,#5d4e6d)}
.fc-modal__body{padding:18px 20px;overflow-y:auto}
.fc-modal__foot{padding:14px 20px;border-top:1px solid var(--cute-borde,#eee);display:flex;justify-content:space-between;gap:10px;align-items:center}
.fc-field{margin-bottom:13px}
.fc-field label{display:block;font-size:12.5px;font-weight:600;margin-bottom:4px;color:var(--cute-texto,#5d4e6d)}
.fc-field input,.fc-field select{width:100%;padding:9px 11px;border:1.5px solid var(--cute-borde,#eee);border-radius:10px;font-size:14px}
.fc-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fc-hint{font-size:11.5px;color:var(--cute-texto,#5d4e6d);opacity:.75;margin-top:3px}
.fc-preview{background:var(--cute-bg,#fff5f8);border-radius:12px;padding:12px 14px;margin-top:8px}
.fc-preview .pv{display:flex;justify-content:space-between;font-size:13px;padding:2px 0}
.fc-preview .pv b{font-weight:800}
.fc-sub-toggle{display:flex;align-items:center;gap:8px;font-size:13px}
.fc-empty{text-align:center;padding:30px;color:var(--cute-texto,#5d4e6d);opacity:.65}

/* ---- KPIs, tabla amortización, tips (detalle + amortización + CFO) ---- */
.fc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:6px}
.kpi{background:var(--cute-card,#fff);border:1px solid var(--cute-borde,#eee);border-radius:13px;padding:12px 14px}
.kpi .l{font-size:11px;text-transform:uppercase;letter-spacing:.04em;opacity:.7;margin:0 0 4px;font-weight:600;color:var(--cute-texto,#5d4e6d)}
.kpi .v{font-size:19px;font-weight:800;margin:0;color:var(--cute-texto,#3a3550)}
.kpi .h{font-size:11px;opacity:.75;margin:3px 0 0;color:var(--cute-texto,#5d4e6d)}
.fc-slider-box{background:var(--cute-card,#fff);border:2px solid var(--cute-borde,#eee);border-radius:16px;padding:18px 20px}
.fc-slider-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fc-slider-row input[type=range]{flex:1;min-width:180px;accent-color:var(--fc-hip)}
.fc-big{font-size:26px;font-weight:800;color:var(--fc-hip)}
.fc-scenario{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
@media(max-width:640px){.fc-scenario{grid-template-columns:1fr}}
.fc-tbl-wrap{max-height:280px;overflow:auto;border:1px solid var(--cute-borde,#eee);border-radius:12px;margin-top:8px}
table.amort{width:100%;border-collapse:collapse;font-size:12.5px}
table.amort th,table.amort td{padding:7px 10px;text-align:right;border-bottom:1px solid var(--cute-borde,#eee);color:var(--cute-texto,#3a3550)}
table.amort th:first-child,table.amort td:first-child{text-align:left}
table.amort thead th{position:sticky;top:0;background:var(--fc-hip);color:#fff;font-size:11.5px}
.cred-chart-box{position:relative;height:220px;margin-top:14px}
canvas{max-width:100%;display:block}
.fc-tips{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
@media(max-width:640px){.fc-tips{grid-template-columns:1fr}}
.tip{background:var(--cute-bg,#fff5f8);border:1px solid var(--cute-borde,#eee);border-radius:11px;padding:11px 13px;font-size:12.5px;display:flex;gap:9px;color:var(--cute-texto,#3a3550)}
.tip .tn{font-family:inherit;font-weight:800;color:var(--fc-cfo);flex:none}
.fc-sec-title{font-size:16px;font-weight:700;margin:24px 0 12px;display:flex;align-items:center;gap:8px;color:var(--cute-texto,#3a3550)}
.fc-sec-title .bar{width:5px;height:19px;border-radius:3px;background:var(--c,var(--fc-cfo))}
.fc-note{font-size:12px;color:var(--cute-texto,#5d4e6d);opacity:.8;margin-top:12px;line-height:1.55}
.fc-back{display:inline-flex;gap:6px;align-items:center;color:var(--cute-texto,#5d4e6d);font-weight:600;font-size:13px;text-decoration:none;margin-bottom:12px}

/* ---- Fases cascada ---- */
.fc-fase{display:flex;gap:14px}
.fc-fase .rail{display:flex;flex-direction:column;align-items:center}
.fc-fase .knob{width:32px;height:32px;border-radius:50%;color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.fc-fase .line{width:3px;flex:1;background:var(--cute-borde,#eee);min-height:14px}
.fc-fase:last-child .line{display:none}
.fc-fase .body{padding-bottom:16px}
.fc-fase .body h4{font-size:14px;margin:4px 0 3px}
.fc-fase .body p{margin:0;font-size:12.5px;color:var(--cute-texto,#5d4e6d)}
.fc-result{background:linear-gradient(120deg,var(--fc-agr),#12a05a);color:#fff;border-radius:16px;padding:18px 22px;text-align:center;margin-top:6px}
.fc-result .big{font-size:20px;font-weight:800}

/* ---- Tabla plan cascada / abonos ---- */
.fc-plan{width:100%;border-collapse:collapse;font-size:12.5px}
.fc-plan th,.fc-plan td{padding:7px 9px;border-bottom:1px solid var(--cute-borde,#eee);text-align:right;color:var(--cute-texto,#3a3550)}
.fc-plan th:first-child,.fc-plan td:first-child,.fc-plan th:nth-child(2),.fc-plan td:nth-child(2){text-align:left}
.fc-plan thead th{position:sticky;top:0;background:#efe7f5;font-size:11px}
.fc-plan tr.marcado{background:var(--fc-agr-bg)}
.fc-check{width:18px;height:18px;accent-color:var(--fc-agr);cursor:pointer}
.fc-inp-real{width:110px;padding:4px 7px;border:1.5px solid var(--cute-borde,#eee);border-radius:8px;font-size:12px;text-align:right}

/* ---- Fondos ---- */
.fc-fondo{background:var(--cute-card,#fff);border:2px solid var(--cute-borde,#eee);border-radius:14px;padding:14px 16px}
.fc-fondo__bar{height:10px;background:var(--cute-bg,#f4f4f4);border-radius:6px;overflow:hidden;margin-top:8px}
.fc-fondo__fill{height:100%;background:var(--fc-agr);border-radius:6px}

/* ---- Barras 50/30/20 y findings CFO ---- */
.fc-bar-row{margin-bottom:11px}
.fc-bar-head{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:4px;color:var(--cute-texto,#3a3550)}
.fc-bar-track{height:11px;background:var(--cute-bg,#f4f4f4);border-radius:7px;overflow:hidden}
.fc-bar-fill{height:100%;border-radius:7px}
.fc-find{display:flex;gap:11px;padding:11px 14px;border-radius:12px;border-left:4px solid var(--cute-borde,#eee);background:var(--cute-bg,#fff5f8);margin-bottom:9px}
.fc-find h4{font-size:13.5px;margin:0 0 2px;color:var(--cute-texto,#3a3550)}
.fc-find p{margin:0;font-size:12.5px;color:var(--cute-texto,#5d4e6d)}
.fc-find .ft{margin-left:auto;font-weight:800;font-size:12.5px;white-space:nowrap}
.fc-find--bad{border-left-color:var(--fc-bad);background:var(--fc-con-bg)}
.fc-find--warn{border-left-color:var(--fc-warn);background:var(--fc-veh-bg)}
.fc-find--good{border-left-color:var(--fc-agr);background:var(--fc-agr-bg)}
.fc-find--info{border-left-color:var(--fc-cfo)}

/* ---- Impresión (exportar a PDF con el diálogo del navegador) ---- */
@media print {
  .sidebar, .sidebar-overlay, .header__menu-btn, .fc-subnav, .fc-btn, #btn-logout, .header__right, .fc-back, .chat-widget, .ayuda-fab { display: none !important; }
  .main-content { margin: 0 !important; }
  .fc-slider-box, .fc-card, .fc-fondo, table.amort, .fc-tbl-wrap, .kpi { break-inside: avoid; box-shadow: none !important; }
  body { background: #fff !important; }
  a[href]:after { content: ''; }
}

/* ==========================================================================
   MODO OSCURO — la paleta por tipo de credito se ACLARA, igual que hicieron
   --danger / --success / --warning el 2026-08-26. Estos hex son semanticos
   (cada tipo de credito tiene su color) asi que conservan el TONO, pero como
   TEXTO sobre el carbon el #0f766e daba 3.17:1 y el #2E5984 2.38:1.
   --fc-on acompana: sobre el tono aclarado el texto va NEGRO, no blanco --
   la misma consecuencia que --on-primary. Ver politicas/temas-globales.
   ========================================================================== */
[data-theme="dark"] {
  --fc-veh:#f59e0b;  --fc-veh-bg:rgba(245, 158, 11, 0.15);
  --fc-con:#f87171;  --fc-con-bg:rgba(248, 113, 113, 0.15);
  --fc-hip:#7dd3fc;  --fc-hip-bg:rgba(125, 211, 252, 0.15);
  --fc-agr:#34d399;  --fc-agr-bg:rgba(52, 211, 153, 0.15);
  --fc-casc:#c4b5fd;
  --fc-cfo:#2dd4bf;
  --fc-good:#34d399; --fc-warn:#fbbf24; --fc-bad:#f87171;
  --fc-on:#0a0a0a;
}
