/* ===== FICHA DE CARTERA (pop-up de la letra del grupo) =====
   Fiel al mockup "Mockup pop-up CRM" (cliente A activo / activo sin vencimientos / inactivo). */
.kletra { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #0b6b63; color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 11px; margin-right: 6px; vertical-align: 1px; cursor: pointer; flex-shrink: 0; border: 0; padding: 0; line-height: 1; }
.kletra:hover { box-shadow: 0 0 0 3px #b7ddd7; }
.pcf-overlay { position: fixed; inset: 0; background: rgba(16, 24, 40, .45); z-index: 1200; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; overflow-y: auto; }
.pcf { width: 1080px; max-width: 100%; box-sizing: border-box; background: #fff; border: 1px solid #dfe5ee; border-radius: 14px; box-shadow: 0 8px 28px rgba(16, 24, 40, .12); display: flex; flex-direction: column; font-family: 'Nunito Sans', sans-serif; color: #16202e; font-size: 14px; line-height: normal; }
.pcf * { box-sizing: border-box; }
.pcf button:focus-visible { outline: 3px solid #f59e0b; outline-offset: 2px; }
.pcf-head { display: flex; align-items: center; gap: 14px; padding: 16px 24px; border-bottom: 1px solid #dfe5ee; }
.pcf-letra { width: 46px; height: 46px; border-radius: 50%; background: #0b6b63; color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 22px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pcf-id { display: flex; flex-direction: column; gap: 2px; flex-grow: 1; min-width: 0; }
.pcf-nom { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 21px; }
.pcf-meta { font-size: 14px; color: #5b6677; overflow-wrap: anywhere; }
.pcf-meta .g { color: #0b6b63; font-weight: 700; }
.pcf-meta .ina { font-weight: 700; color: #16202e; }
.pcf-corte { font-size: 12px; color: #5b6677; white-space: nowrap; }
.pcf-x { width: 44px; height: 44px; border: 1px solid #dfe5ee; background: #fff; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.pcf-body { display: flex; flex-direction: column; gap: 16px; padding: 18px 24px; }
.pcf-cajas { display: grid; gap: 10px; }
.pcf-cajas.act { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.3fr) minmax(0, 1fr); }
.pcf-cajas.ina { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.3fr); }
.pcf-caja { border-radius: 12px; padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.pcf-caja .t { font-size: 13px; line-height: 18px; font-weight: 700; }
.pcf-caja .n { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 20px; color: #16202e; }
.pcf-caja .s { font-size: 12px; }
.pcf-caja.azul { background: #1560d4; color: #fff; }
.pcf-caja.azul .n { color: #fff; }
.pcf-caja.verde { background: #e3f4f1; border: 1px solid #b7ddd7; color: #0b6b63; }
.pcf-caja.naranja { background: #fdf0e1; border: 1px solid #f1cfa3; color: #7a3a06; gap: 8px; }
.pcf-caja.naranja.ua { gap: 4px; }
.pcf-caja.celeste { background: #e9f1fd; border: 1px solid #bfd4f6; color: #154a9c; }
.pcf-caja.gris { background: #f6f8fb; border: 1px solid #dfe5ee; color: #5b6677; }
.pcf-caja ul { margin: 0; padding: 0 0 0 16px; display: flex; flex-direction: column; gap: 7px; }
.pcf-caja li .r { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; font-size: 13px; }
.pcf-caja li .r b { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 15px; color: #16202e; white-space: nowrap; }
.pcf-filas { display: flex; flex-direction: column; gap: 3px; margin-top: 4px; padding-top: 7px; font-size: 12px; border-top: 1px solid; }
.pcf-caja.celeste .pcf-filas { border-color: #bfd4f6; }
.pcf-caja.naranja .pcf-filas { border-color: #f1cfa3; }
.pcf-filas > div { display: flex; justify-content: space-between; gap: 6px; }
.pcf-filas b { font-weight: 700; color: #16202e; }
.pcf-tit { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #5b6677; letter-spacing: .04em; text-transform: uppercase; }
.pcf-sec12 { display: flex; flex-direction: column; gap: 6px; }
.pcf-linea { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.pcf-mes { display: flex; flex-direction: column; gap: 4px; }
.pcf-mes .b { height: 34px; background: #f6f8fb; border-radius: 6px; }
.pcf-mes .b.v { background: #a8500a; color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; white-space: nowrap; overflow: hidden; }
.pcf-mes .l { font-size: 12px; color: #5b6677; text-align: center; }
.pcf-mes .l.v { color: #16202e; font-weight: 700; }
.pcf-nada { min-height: 34px; background: #f6f8fb; border: 1px solid #dfe5ee; border-radius: 6px; padding: 7px 12px; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; color: #5b6677; flex-wrap: wrap; text-align: center; }
.pcf-nada b { font-weight: 700; }
.pcf-nada span { color: #16202e; }
.pcf-mid { display: flex; gap: 22px; align-items: flex-start; }
.pcf-emps { flex-grow: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.pcf-emp { border: 1px solid #dfe5ee; border-radius: 10px; overflow: hidden; }
.pcf-emp-h { width: 100%; min-height: 46px; display: flex; align-items: center; gap: 10px; padding: 0 14px; background: #f6f8fb; border: none; cursor: pointer; font-family: 'Nunito Sans', sans-serif; text-align: left; color: #16202e; }
.pcf-emp-h.apagada { background: #fff; color: #5b6677; }
.pcf-emp-h .nm { font-weight: 700; font-size: 15px; flex-grow: 1; }
.pcf-emp-h .ct { font-size: 13px; color: #5b6677; }
.pcf-emp-h .mt { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 15px; min-width: 130px; text-align: right; white-space: nowrap; }
.pcf-emp-h .mt.sin { font-family: 'Nunito Sans', sans-serif; font-size: 14px; font-weight: 600; }
.pcf-emp-h .mt.rent { font-family: 'Nunito Sans', sans-serif; font-size: 14px; min-width: 150px; }
.pcf-flecha { flex-shrink: 0; transition: transform .15s; }
.pcf-emp.abierta > .pcf-emp-h .pcf-flecha, .pcf-venc.abierta > .pcf-vrow .pcf-flecha { transform: rotate(90deg); }
.pcf-det { display: none; flex-direction: column; padding: 6px 14px 10px; }
.pcf-emp.abierta > .pcf-det { display: flex; }
.pcf-g { display: grid; grid-template-columns: 16% 13% 8% 8% 14% 27% 14%; }
.pcf-g > * { padding: 9px 6px; }
.pcf-g .r { text-align: right; }
.pcf-g .ini { padding-left: 18px; }
.pcf-g.cab { font-size: 12px; font-weight: 600; color: #5b6677; }
.pcf-g.cab > * { padding: 6px; }
.pcf-g.cab .ini { padding-left: 18px; }
.pcf-g.op { font-size: 14px; border-top: 1px solid #dfe5ee; }
.pcf-g.op .rb { font-weight: 700; }
.pcf-falta { color: #c62828; font-size: 13px; font-weight: 600; }
.pcf-vrow { width: 100%; min-height: 44px; align-items: center; padding: 0; background: #fff; border: none; border-top: 1px solid #dfe5ee; cursor: pointer; font-family: 'Nunito Sans', sans-serif; font-size: 14px; color: #5b6677; text-align: left; }
.pcf-vrow > * { padding: 9px 6px; }
.pcf-vrow .lb { display: flex; align-items: center; gap: 6px; font-weight: 700; white-space: nowrap; }
.pcf-vrow .rb { font-weight: 700; }
.pcf-vdet { display: none; flex-direction: column; background: #f6f8fb; border-radius: 0 0 8px 8px; }
.pcf-venc.abierta > .pcf-vdet { display: flex; }
.pcf-g.vop { font-size: 13px; color: #5b6677; }
.pcf-g.vop > * { padding: 7px 6px; }
.pcf-g.vop .ini { padding-left: 18px; }
.pcf-g.vop > :first-child { padding-left: 24px; }
.pcf-g.vop + .pcf-g.vop { border-top: 1px solid #dfe5ee; }
.pcf-nota { font-size: 12px; color: #5b6677; }
.pcf-como { width: 280px; flex-shrink: 0; display: flex; flex-direction: column; gap: 7px; }
.pcf-kv { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; }
.pcf-kv span:first-child { color: #5b6677; }
.pcf-kv span:last-child { font-weight: 700; text-align: right; }
.pcf-uv { font-size: 13px; line-height: 1.4; background: #f6f8fb; border: 1px solid #dfe5ee; border-radius: 8px; padding: 8px 10px; }
.pcf-habla { background: #e3f4f1; border: 1px solid #b7ddd7; border-radius: 10px; padding: 11px 16px; display: flex; align-items: center; gap: 14px; }
.pcf-habla > div { font-size: 14px; line-height: 1.4; flex-grow: 1; }
.pcf-habla b { color: #0b6b63; }
.pcf-link { min-height: 44px; padding: 0 4px; border: none; background: transparent; font-family: 'Nunito Sans', sans-serif; font-size: 14px; font-weight: 700; color: #1560d4; text-decoration: underline; cursor: pointer; flex-shrink: 0; }
.pcf-guia { display: flex; flex-direction: column; gap: 18px; padding: 18px 24px 22px; }
.pcf-guia-top { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.pcf-volver { height: 44px; padding: 0 16px 0 12px; border: 1px solid #dfe5ee; background: #fff; border-radius: 8px; font-family: 'Nunito Sans', sans-serif; font-size: 14px; font-weight: 700; color: #16202e; cursor: pointer; display: flex; align-items: center; gap: 8px; }
.pcf-guia-tit { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 17px; color: #0b6b63; }
.pcf-guia-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: start; }
.pcf-guia-cols > div { display: flex; flex-direction: column; gap: 18px; }
.pcf-sec { display: flex; flex-direction: column; gap: 7px; }
.pcf-sec .h { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 15px; }
.pcf-sec .x { font-size: 14px; line-height: 1.45; }
.pcf-sec.pasos { gap: 9px; }
.pcf-paso { display: flex; gap: 10px; font-size: 14px; line-height: 1.45; }
.pcf-paso i { font-style: normal; width: 22px; height: 22px; border-radius: 50%; background: #0b6b63; color: #fff; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pcf-sec.tono { background: #e3f4f1; border: 1px solid #b7ddd7; border-radius: 10px; padding: 12px 16px; gap: 4px; }
.pcf-sec.tono .h { color: #0b6b63; }
.pcf-pie { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 24px; border-top: 1px solid #dfe5ee; }
.pcf-btn { height: 44px; padding: 0 18px; border: 1px solid #dfe5ee; background: #fff; border-radius: 8px; font-family: 'Nunito Sans', sans-serif; font-size: 14px; font-weight: 700; color: #16202e; cursor: pointer; }
.pcf-btn.pri { padding: 0 20px; border-color: #1560d4; background: #1560d4; color: #fff; }
.pcf-cargando { padding: 40px; text-align: center; color: #5b6677; font-family: 'Nunito Sans', sans-serif; }
@media (max-width: 900px) {
  .pcf-overlay { padding: 8px; }
  .pcf-cajas.act, .pcf-cajas.ina { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcf-mid { flex-direction: column; }
  .pcf-como { width: 100%; }
  .pcf-guia-cols { grid-template-columns: 1fr; }
  .pcf-linea { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .pcf-det { overflow-x: auto; }
  .pcf-det > * { min-width: 640px; }
  .pcf-head { flex-wrap: wrap; padding: 14px 16px; }
  .pcf-body, .pcf-guia { padding: 16px; }
}
