:root{
  --rojo:#e02434; --rojo-osc:#b3121f;
  --azul:#1246c8; --azul-osc:#0a1f5c; --azul-medio:#0e2f8f;
  --verde:#25d366; --blanco:#fff; --crema:#f6f8ff; --texto:#1c2540;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Figtree',system-ui,sans-serif;color:var(--texto);background:var(--crema);font-size:17px}
a{text-decoration:none}

.barra{background:var(--azul-osc);padding:14px 18px;display:flex;justify-content:space-between;align-items:center}
.logo{font-family:'Titan One','Baloo 2',sans-serif;font-size:1.35rem;color:#e8232f;transform:skewX(-6deg);
      text-shadow:-2px 2px 0 #9cc3ea,-1px 1px 0 #fff,1px -1px 0 #fff;letter-spacing:.5px}
/* Salir: bien visible (rojo de la marca) */
.salir{background:var(--rojo);color:#fff;padding:11px 22px;border-radius:999px;font-weight:800;font-size:1rem;
       border-bottom:4px solid var(--rojo-osc);box-shadow:0 4px 14px rgba(224,36,52,.45);white-space:nowrap}
.salir:active{transform:translateY(2px);border-bottom-width:2px}
.ir-inicio{background:rgba(255,255,255,.16);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;font-size:.95rem;white-space:nowrap}

.contenido{max-width:860px;margin:0 auto;padding:22px 16px 40px}

/* Login */
.tarjeta-login{background:#fff;border-radius:20px;padding:30px 24px;max-width:440px;margin:20px auto;
               box-shadow:0 12px 34px rgba(10,31,92,.15);text-align:center}
.titulo-portal{font-family:'Baloo 2',sans-serif;font-size:1.7rem;font-weight:800;color:var(--azul-osc)}
.titulo-portal span{color:var(--rojo)}
.ayuda-portal{color:#5a6584;margin:6px 0 20px}
label{display:block;text-align:left;font-weight:700;color:var(--azul-osc);margin:16px 0 6px;font-size:1.02rem}
input,select{width:100%;padding:14px;border:1.5px solid #cdd6e2;border-radius:12px;font-size:1.05rem;background:#fff}
input:focus,select:focus{outline:none;border-color:var(--azul)}
.fila-fecha{display:grid;grid-template-columns:1fr 1.4fr 1.1fr;gap:8px}
.boton-grande{display:block;width:100%;margin-top:22px;padding:16px;border:none;border-radius:999px;
              background:var(--rojo);color:#fff;font-size:1.15rem;font-weight:800;cursor:pointer;
              font-family:'Figtree',sans-serif;box-shadow:0 8px 20px rgba(224,36,52,.35);text-align:center}
.boton-grande:hover{background:var(--rojo-osc)}
.pista{text-align:left;color:#5a6584;font-size:.88rem;margin:8px 2px 0;line-height:1.4}
.recordar-linea{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:.95rem;
                font-weight:400;color:#4a5470;cursor:pointer;text-align:left}
.recordar-linea input{width:auto;transform:scale(1.4);margin:0}
.olvidar-link{display:inline-block;margin-top:12px;color:#8a94a8;font-size:.88rem;text-decoration:underline}
.ayuda-wa{display:inline-block;margin-top:18px;color:#0a7a33;font-weight:700}
.error{background:#fdecec;color:#a11220;border:1px solid #f5b8bd;border-radius:12px;padding:12px;margin-bottom:8px;text-align:left}
.aviso{background:#eef3ff;color:var(--azul-osc);border:1px solid #c8d6f5;border-radius:12px;padding:14px;margin:12px 0;text-align:left}

/* Creditos */
.saludo{font-family:'Baloo 2',sans-serif;font-size:1.6rem;color:var(--azul-osc);margin-bottom:6px}
.disponible-hoy{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:linear-gradient(135deg,#0a7a33,#1aa34a);
                color:#fff;border-radius:14px;padding:14px 18px;margin-bottom:18px;font-size:1.05rem}
.disponible-hoy b{font-family:'Baloo 2',sans-serif;font-size:1.7rem}
.disponible-hoy .pidelo{margin-left:auto;background:#fff;color:#0a7a33;font-weight:800;padding:8px 18px;border-radius:999px;font-size:.95rem}

/* Cupo aprobado pero BLOQUEADO porque todavia tiene credito vigente.
   Es a proposito que no diga "disponible": el cliente entiende que primero cancela. */
.cupo-bloqueado{background:linear-gradient(135deg,#0a1f5c,#1246c8);color:#fff;border-radius:16px;
                padding:16px 18px;margin-bottom:18px}
.cb-fila1{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.cb-fila1 b{font-family:'Baloo 2',sans-serif;font-size:1.75rem;margin-left:auto}
.cb-nota{margin-top:6px;font-size:.95rem;color:#d7e2ff}
.cb-barra{height:12px;border-radius:999px;background:rgba(255,255,255,.22);margin:12px 0 8px;overflow:hidden}
.cb-barra i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ffd60a,#00e08a);
            transition:width .8s ease}
.cb-pie{display:flex;justify-content:space-between;gap:10px;font-size:.92rem;color:#d7e2ff;flex-wrap:wrap}
.cb-pie b{color:#fff}
.cb-boton{display:block;text-align:center;margin-top:14px;background:var(--verde);color:#06331a;font-weight:800;
          padding:13px;border-radius:999px;font-size:1.02rem;box-shadow:0 6px 18px rgba(37,211,102,.35)}
.cb-boton:active{transform:translateY(2px)}

.banner-correo{display:block;background:linear-gradient(135deg,var(--azul-osc),var(--azul-medio));color:#fff;
               border-radius:14px;padding:14px 16px;margin-bottom:18px;line-height:1.4}

/* Felicitacion + confeti (solo cuando el cliente esta al dia) */
.felicitacion{background:linear-gradient(135deg,#0a7a33,#1aa34a);color:#fff;border-radius:16px;
              padding:18px;margin-bottom:18px;text-align:center;box-shadow:0 10px 26px rgba(10,122,51,.3)}
.fel-emoji{font-size:2.4rem;line-height:1}
.fel-texto{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:1.35rem;letter-spacing:.5px;margin-top:4px}
.fel-texto span{display:block;font-size:1.02rem;font-weight:700;letter-spacing:0;margin-top:2px}
.fel-anima{animation:fel-entra .7s cubic-bezier(.2,1.5,.4,1) both}
@keyframes fel-entra{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.confeti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9999}
@media (prefers-reduced-motion: reduce){.fel-anima{animation:none}}

/* Grafico de dona: como esta repartido el credito */
.dona-bloque{display:flex;align-items:center;gap:16px;background:var(--crema);border-radius:14px;
             padding:14px;margin-bottom:14px}
.dona{width:118px;height:118px;flex:0 0 118px}
.dona circle{fill:none;stroke-width:5.4}
.dona-fondo{stroke:#e3e9f7}
.dona-pagado{stroke:#0b63ff}   /* azul brillante: lo que ya abonó */
.dona-saldo{stroke:#ff2d55}    /* rojo brillante: lo que falta por pagar */
.dona-mora{stroke:#ff8a00}     /* naranja brillante: la mora */
.dona text{text-anchor:middle;font-family:'Baloo 2',sans-serif;fill:var(--azul-osc)}
.dona-num{font-size:7px;font-weight:800}
.dona-sub{font-size:3px;fill:#5a6584}
.dona-leyenda{list-style:none;flex:1;min-width:0}
.dona-leyenda li{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:.93rem}
.dona-leyenda i{width:12px;height:12px;border-radius:3px;flex:0 0 12px}
.dona-leyenda span{color:#5a6584}
.dona-leyenda b{margin-left:auto;white-space:nowrap}
.lg-pagado{background:#0b63ff}
.lg-saldo{background:#ff2d55}
.lg-mora{background:#ff8a00}

/* Atraso y refinanciacion */
.at-bien{color:#0a7a33;font-weight:700}
.at-poco{color:#b06d00;font-weight:700}
.at-mucho{color:var(--rojo);font-weight:700}
.at-nd{color:#8a94a8}
.tag-refi{display:inline-block;background:#5b23c0;color:#fff;font-size:.68rem;font-weight:800;
          letter-spacing:.6px;padding:3px 10px;border-radius:999px;margin-left:6px;vertical-align:middle}
.tag-refi-mini{display:inline-block;background:#eae2ff;color:#5b23c0;font-size:.62rem;font-weight:800;
               letter-spacing:.4px;padding:1px 7px;border-radius:999px;margin-top:3px;cursor:help}
.nota-tabla{color:#5a6584;font-size:.86rem;margin:8px 4px 0;line-height:1.5}
.nota-mora{background:#fff6e5;border:1.5px solid #ffd79a;border-radius:14px;padding:13px 16px;
           margin-top:14px;color:#7a4a00;line-height:1.5}
.total-abonos{background:#fff;border-radius:12px;padding:12px 16px;margin-bottom:16px;
              box-shadow:0 4px 14px rgba(10,31,92,.08);font-size:1.05rem}
.total-abonos b{font-family:'Baloo 2',sans-serif;font-size:1.25rem;color:var(--azul-osc)}
.seccion{font-family:'Baloo 2',sans-serif;font-size:1.25rem;color:var(--azul-osc);margin:22px 0 12px}
.credito-activo{background:#fff;border-radius:18px;padding:20px;margin-bottom:14px;
                box-shadow:0 10px 28px rgba(10,31,92,.12);border-top:6px solid var(--azul)}
.credito-activo.esta-vencido{border-top-color:var(--rojo)}
.ca-fila1{display:flex;justify-content:space-between;margin-bottom:10px}
.ca-numero{font-weight:800;color:var(--azul-osc)}
.ca-zona{background:var(--crema);color:var(--azul);padding:3px 12px;border-radius:999px;font-weight:700;font-size:.9rem}
.ca-saldo{text-align:center;margin:10px 0 14px}
.ca-etiqueta{color:#5a6584;font-size:.95rem}
/* Saldo: AZUL cuando está al día · ROJO cuando está vencido */
.ca-valor{font-family:'Baloo 2',sans-serif;font-size:2.3rem;font-weight:800;color:var(--azul)}
.esta-vencido .ca-valor{color:var(--rojo)}
.ca-badge{display:inline-block;background:var(--rojo);color:#fff;font-weight:800;font-size:.85rem;
          letter-spacing:.8px;padding:5px 14px;border-radius:999px;margin-bottom:8px;
          box-shadow:0 3px 10px rgba(224,36,52,.4)}
.ca-mas-mora{color:var(--rojo);font-size:1.05rem;margin-top:2px}
.ca-mas-mora b{font-family:'Baloo 2',sans-serif;font-size:1.25rem}
/* Aviso ambar: va al dia pero lleva mas de 15 dias sin abonar.
   Ni premio ni regano: un recordatorio antes de que empiece a correr la mora. */
.aviso-quieto{display:flex;gap:12px;align-items:center;background:#fff6e5;
              border:2px solid #ffc861;border-radius:16px;padding:14px 16px;margin:14px 0;
              box-shadow:0 4px 14px rgba(255,168,0,.16)}
.aq-emoji{font-size:1.9rem;line-height:1}
.aq-texto b{display:block;color:#8a5200;font-size:1.02rem;line-height:1.3}
.aq-texto span{display:block;color:#a06a1c;font-size:.9rem;margin-top:3px}
@media(max-width:420px){ .aq-texto b{font-size:.96rem} }

/* Cuando esta VENCIDO manda la DEUDA TOTAL, no el saldo: muchos clientes se quedaban
   mirando el saldo (que era el numero grande) y no veian lo que de verdad deben. */
.esta-vencido .ca-etiqueta{font-size:.85rem}
.esta-vencido .ca-valor{font-size:1.5rem}
.ca-deuda-total{margin-top:12px;background:#fdecec;border:2px solid var(--rojo);border-radius:14px;
                padding:14px 16px;color:#a11220;font-weight:800;font-size:1.05rem;
                box-shadow:0 4px 14px rgba(224,36,52,.18)}
.ca-deuda-total b{font-family:'Baloo 2',sans-serif;font-size:2.5rem;line-height:1.05;
                  display:block;margin-top:4px;color:var(--rojo)}
@media(max-width:420px){ .ca-deuda-total b{font-size:2.1rem} }
.ca-nota-oficina{margin-top:10px;background:var(--crema);border-radius:12px;padding:10px 14px;
                 color:var(--azul-osc);font-size:.95rem;line-height:1.4}

.ca-detalles{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin-bottom:14px}
.ca-detalles div{display:flex;justify-content:space-between;background:var(--crema);border-radius:10px;padding:9px 12px}
.ca-detalles span{color:#5a6584;font-size:.92rem}
/* En pantalla grande "Último abono" ocupa el ancho completo de la última fila */
@media(min-width:481px){
  .ca-detalles > div:nth-child(5){grid-column:1 / -1}
}
.boton-abonos{background:var(--azul);box-shadow:0 8px 20px rgba(18,70,200,.3)}
.boton-abonos:hover{background:var(--azul-medio)}

/* Tablas */
.tabla-marco{overflow-x:auto;background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(10,31,92,.10)}
.tabla{width:100%;border-collapse:collapse;font-size:.95rem;min-width:720px}
.tabla th{background:var(--azul-osc);color:#fff;padding:11px 10px;text-align:left;white-space:nowrap}
.tabla td{padding:10px;border-bottom:1px solid #eef1f8;white-space:nowrap}
.tabla tr:last-child td{border-bottom:none}
.fila-activa{background:#fff7e8}
.pagado{color:#0a7a33;font-weight:700}
.abono{color:#0a7a33}
.enlace{color:var(--azul);font-weight:700}

/* Abonos */
.volver{display:inline-block;color:var(--azul);font-weight:700;margin-bottom:10px}
.titulo-abonos{font-family:'Baloo 2',sans-serif;font-size:1.4rem;color:var(--azul-osc);margin-bottom:12px}
.resumen-abonos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.resumen-abonos div{background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 4px 14px rgba(10,31,92,.08)}
.resumen-abonos span{display:block;color:#5a6584;font-size:.85rem}
.alterna{text-align:center;margin-top:16px}

.volver-inicio{display:inline-block;background:#fff;color:var(--azul);font-weight:800;padding:12px 24px;
               border-radius:999px;border:2px solid var(--azul);margin-bottom:14px;font-size:1rem;
               box-shadow:0 4px 14px rgba(18,70,200,.15)}
.pie{text-align:center;color:#5a6584;font-size:.9rem;padding:20px;line-height:1.8}
.pie a{color:var(--azul);font-weight:700}
.fecha-datos{background:#fff;display:inline-block;border-radius:999px;padding:6px 16px;box-shadow:0 4px 12px rgba(10,31,92,.08)}

@media (max-width:480px){
  .ca-detalles{grid-template-columns:1fr}
  .contenido{padding:16px 12px 30px}
  .dona-bloque{flex-direction:column;gap:10px}
  .dona{width:132px;height:132px;flex:0 0 auto}
  .dona-leyenda{width:100%}
  .cb-fila1 b{margin-left:0}
}
