/* NexoraPay — portal de cobro en cuotas
   Usa la misma paleta e identidad que nexorasaas.com:
   violeta #5046E5, turquesa #30D3C2 (estado "activo/pagado"), tinta #16133F. */

@font-face{font-family:"Archivo Wide";src:url(/fonts/archivo-display.woff2) format("woff2");font-weight:600 800;font-display:swap}
@font-face{font-family:"Archivo";src:url(/fonts/archivo-text.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --paper:#F7F7FC;--white:#FFFFFF;--tint:#EFEEFB;
  --ink:#16133F;--ink-2:#4B4975;
  --line:#E2E1F2;--line-2:#CBC8EA;
  --indigo:#5046E5;--indigo-d:#3D33CC;--teal:#30D3C2;
  --rojo:#D9465B;--rojo-tint:#FBEAED;
  --ambar:#C98A1E;--ambar-tint:#FBF2E3;
  --display:"Archivo Wide","Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --text:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --r:18px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;min-height:100vh;background:var(--paper);color:var(--ink);
  font:400 1.0625rem/1.6 var(--text);-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;
}
h1,h2,h3{margin:0 0 6px;font-family:var(--display);font-weight:800;letter-spacing:-.02em;line-height:1.1}
p{margin:0}
a{color:var(--indigo)}
:focus-visible{outline:3px solid var(--indigo);outline-offset:2px;border-radius:6px}

.marca{display:flex;align-items:center;gap:8px;font:800 1.05rem/1 var(--display);margin-bottom:28px;color:var(--ink)}
.marca .punto{width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(48,211,194,.18)}

.card{
  background:var(--white);border:1px solid var(--line);border-radius:24px;
  padding:40px 32px;max-width:420px;width:100%;
  box-shadow:0 24px 60px -24px rgba(22,19,63,.22);
}
.card--ancha{max-width:720px}

.subtitle{color:var(--ink-2);font-size:.98rem;margin-bottom:24px}

label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px;color:var(--ink)}
input[type="email"],input[type="text"],input[type="number"],input[type="password"]{
  width:100%;padding:13px 16px;border:1.5px solid var(--line-2);border-radius:12px;
  font:400 1rem var(--text);color:var(--ink);background:var(--white);margin-bottom:16px;
  transition:border-color .15s;
}
input:focus{border-color:var(--indigo);outline:none}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;min-height:50px;padding:0 24px;border-radius:999px;border:none;
  font:600 1rem/1.2 var(--text);cursor:pointer;background:var(--indigo);color:#fff;
  transition:background-color .2s,transform .15s;
}
.btn:hover{background:var(--indigo-d)}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.6;cursor:default}
.btn--linea{background:transparent;color:var(--ink);border:1.5px solid var(--line-2)}
.btn--linea:hover{background:var(--tint);color:var(--ink)}
.btn--chico{min-height:40px;width:auto;padding:0 18px;font-size:.92rem}

.msg{font-size:.9rem;margin-top:-4px;margin-bottom:14px;display:none}
.msg--error{color:var(--rojo)}
.msg--ok{color:#1a9c7a}
.msg.visible{display:block}

.spinner{
  width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);
  border-top-color:#fff;animation:girar .7s linear infinite;display:none;
}
.btn.cargando .spinner{display:inline-block}
.btn.cargando .btn-texto{opacity:.85}
@keyframes girar{to{transform:rotate(360deg)}}

footer.pie{margin-top:24px;font-size:.82rem;color:var(--ink-2);text-align:center}

/* --- Panel / dashboard --- */
.encabezado-panel{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  max-width:720px;margin-bottom:18px;
}
.encabezado-panel .saludo{font-family:var(--display);font-weight:800;font-size:1.3rem}
.enlace-salir{font-size:.88rem;color:var(--ink-2);text-decoration:none;cursor:pointer;background:none;border:none;font-family:var(--text)}
.enlace-salir:hover{color:var(--ink)}

.plan{border:1px solid var(--line);border-radius:18px;padding:22px;margin-bottom:16px}
.plan + .plan{margin-top:16px}
.plan__cabecera{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.plan__titulo{font-family:var(--display);font-weight:800;font-size:1.05rem}
.plan__monto{color:var(--ink-2);font-size:.9rem;margin-top:2px}

.chip{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;
  font-size:.78rem;font-weight:700;white-space:nowrap;
}
.chip--activo{background:#E6FAF6;color:#0F8F79}
.chip--pendiente{background:var(--ambar-tint);color:var(--ambar)}
.chip--cancelado{background:var(--rojo-tint);color:var(--rojo)}
.chip .punto{width:6px;height:6px;border-radius:50%;background:currentColor}

.cuota-fila{
  display:flex;align-items:center;justify-content:space-between;padding:12px 0;
  border-top:1px solid var(--line);font-size:.94rem;
}
.cuota-fila:first-of-type{border-top:none}
.cuota-fila__izq{display:flex;flex-direction:column;gap:2px}
.cuota-fila__num{font-weight:600}
.cuota-fila__fecha{color:var(--ink-2);font-size:.85rem}
.cuota-fila__estado{font-weight:700;font-size:.85rem}
.cuota-fila__estado--pagada{color:#0F8F79}
.cuota-fila__estado--pendiente{color:var(--ambar)}
.cuota-fila__estado--rechazada{color:var(--rojo)}

.aviso-autorizar{
  background:var(--tint);border-radius:14px;padding:16px 18px;margin-top:4px;
  font-size:.92rem;color:var(--ink-2);
}
.aviso-autorizar a.btn{margin-top:12px}

.vacio{color:var(--ink-2);text-align:center;padding:30px 0}

/* --- Confirmación de pago --- */
.check-wrap{width:88px;height:88px;margin:0 auto 20px}
.check-circle{width:100%;height:100%;transform:rotate(-90deg)}
.check-circle-bg{fill:none;stroke:var(--line);stroke-width:6}
.check-circle-progress{
  fill:none;stroke:var(--teal);stroke-width:6;stroke-linecap:round;
  stroke-dasharray:289;stroke-dashoffset:289;animation:dibujarCirculo .7s ease-out .15s forwards;
}
@keyframes dibujarCirculo{to{stroke-dashoffset:0}}
.check-mark{
  fill:none;stroke:#0F8F79;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:60;stroke-dashoffset:60;transform:rotate(90deg);transform-origin:50px 50px;
  animation:dibujarCheck .4s ease-out .75s forwards;
}
@keyframes dibujarCheck{to{stroke-dashoffset:0}}
.detalle{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin:20px 0}
.detalle-fila{display:flex;justify-content:space-between;font-size:.9rem;padding:5px 0}
.detalle-fila span{color:var(--ink-2)}
.detalle-fila strong{font-weight:700}

/* --- Tabla admin --- */
table.tabla-admin{width:100%;border-collapse:collapse;font-size:.92rem}
table.tabla-admin th{text-align:left;color:var(--ink-2);font-weight:600;font-size:.82rem;padding:8px 10px;border-bottom:1px solid var(--line)}
table.tabla-admin td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media (max-width:520px){.grid-2{grid-template-columns:1fr}}

@media (max-width:480px){
  .card{padding:28px 22px;border-radius:18px}
}
