/* ============================================================
   redisenio2026.css — Sistema de diseño Interfast 2026 (scoped)
   Uso: Bootstrap 5 + este archivo. No rompe Bootstrap 3 global
   porque solo define tokens :root y clases prefijadas okp-.
   Las páginas legacy (pagar.css, validacion-debito-directo.css)
   se siguen cargando como fallback.
   ============================================================ */

:root {
  --bs-body-font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
  --bs-body-color: #0a2a5e;
  /* Blanco: Bootstrap 5.3 deriva cards, inputs y tablas de este token.
     El gris de pantalla sale de la regla body{} de abajo, no de acá. */
  --bs-body-bg: #fff;
  --bs-primary: #0a2a5e;
  --bs-link-color: #0a3d78;
  --bs-link-hover-color: #082e5a;
  --okp-navy: #0a2a5e;
  --okp-navy-hover: #082e5a;
  --okp-blue: #0d6fd1;
  --okp-blue-hover: #0a5bb5;
  --okp-text: #5a6b82;
  --okp-muted: #8393a8;
  --okp-table-head: #eef4fb;
  --okp-border: #c4d9f2;
  --okp-line: #e3e9f2;
  --okp-green: #1a7f4e;
  --okp-green-dark: #14603c;
  --okp-red: #a33a3a;
  --okp-amber: #f4b942;
  --okp-radius: 14px;
  --okp-btn-radius: 10px;
}

html,
body {
  height: 100%;
  margin: 0;
}

body {
  background: #f2f5f9;
  color: #0a2a5e;
  font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
}

a {
  color: #0a3d78;
}

a:hover {
  color: #082e5a;
}

/* ---------- Títulos ---------- */
.okp-titulo-pagina {
  color: var(--okp-navy);
  font-weight: 800;
  letter-spacing: -0.5px;
}

.okp-subtitulo-pagina {
  color: var(--okp-text);
}

.okp-texto-ayuda {
  font-size: 13px;
  color: var(--okp-text);
}

/* ---------- Cards ---------- */
.okp-card {
  border: 0;
  border-radius: var(--okp-radius);
  background: #fff;
  box-shadow: 0 0.125rem 0.25rem rgba(10, 42, 94, 0.075);
}

.okp-card-titulo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--okp-navy);
  font-weight: 800;
}

/* Cabecera navy reutilizable (reemplaza vd-header / listado-header) */
.okp-header-navy {
  background: var(--okp-navy);
  color: #fff;
  border-radius: var(--okp-radius);
  padding: 18px 22px;
}

.okp-header-navy h1 {
  color: #fff;
  font-weight: 800;
  letter-spacing: -0.5px;
  margin: 0;
}

.okp-header-navy .okp-sub {
  color: #c4d9f2;
  font-size: 14px;
  margin-top: 2px;
}

.okp-etiqueta {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  opacity: 0.7;
}

.okp-valor {
  font-weight: 700;
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}

/* ---------- Botones (mapeo BS5 sobre clases legacy) ---------- */
.btn-primario,
.okp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--okp-navy);
  color: #fff;
  border: 0;
  border-radius: var(--okp-btn-radius);
  font-size: 16px;
  font-weight: 700;
  padding: 12px 20px;
  line-height: 1.2;
  text-decoration: none;
}

.btn-primario:hover,
.okp-btn-primary:hover {
  background: var(--okp-navy-hover);
  color: #fff;
}

.okp-btn-success {
  background: var(--okp-green-dark);
  color: #fff;
  border: 0;
  border-radius: var(--okp-btn-radius);
  font-weight: 700;
}

.okp-btn-success:hover {
  background: var(--okp-green);
  color: #fff;
}

.okp-btn-warning {
  background: var(--okp-amber);
  color: #5c4700;
  border: 0;
  border-radius: var(--okp-btn-radius);
  font-weight: 700;
}

.okp-btn-warning:hover {
  background: #ffc95c;
  color: #5c4700;
}

.okp-btn-danger {
  background: var(--okp-red);
  color: #fff;
  border: 0;
  border-radius: var(--okp-btn-radius);
  font-weight: 700;
}

.okp-btn-danger:hover {
  background: #c24444;
  color: #fff;
}

.okp-btn-info {
  background: var(--okp-blue);
  color: #fff;
  border: 0;
  border-radius: var(--okp-btn-radius);
  font-weight: 700;
}

.okp-btn-info:hover {
  background: var(--okp-blue-hover);
  color: #fff;
}

/* Botones de pago (FrmPagar): se mantienen clases pay-btn-* como alias */
.pay-btn {
  border-radius: var(--okp-btn-radius);
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 12px 20px;
  border: 0;
  text-decoration: none;
  cursor: pointer;
}

.pay-btn:hover {
  color: #fff;
}

.pay-btn img {
  height: 26px;
  margin-left: 10px;
}

.pay-btn-adherir-debito { background-color: var(--okp-navy); }
.pay-btn-adherir-debito:hover { background-color: var(--okp-navy-hover); }
.pay-btn-pagar-debito { background-color: var(--okp-blue); }
.pay-btn-pagar-debito:hover { background-color: var(--okp-blue-hover); }
.pay-btn-pagar-credito { background-color: #052c65; }
.pay-btn-pagar-credito:hover { background-color: #04224d; }
.pay-btn-qr { background-color: #c5a770; }
.pay-btn-qr:hover { background-color: #b2945c; color: #fff; }

/* ---------- Tablas ---------- */
.okp-table {
  width: 100%;
  margin: 0;
  background: #fff;
}

.okp-table thead th {
  background: var(--okp-table-head);
  color: var(--okp-text);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border: 0;
  padding: 12px 16px;
  white-space: nowrap;
}

.okp-table tbody td {
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid #f0f3f7;
  vertical-align: middle;
  color: var(--okp-navy);
}

.okp-table tbody tr:last-child td {
  border-bottom: 0;
}

.okp-importe {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* ---------- Avisos (alias BS5 alert + legacy okp-aviso) ---------- */
.okp-aviso {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  border-radius: var(--okp-radius);
  padding: 16px 20px;
}

.okp-aviso-icono {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #fff;
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
}

.okp-aviso-titulo {
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 4px;
}

.okp-aviso-detalle {
  font-size: 14px;
  line-height: 1.5;
}

.okp-aviso-info { background: #eef4fb; border: 1px solid var(--okp-border); }
.okp-aviso-info .okp-aviso-icono { background: var(--okp-navy); }
.okp-aviso-info .okp-aviso-titulo { color: var(--okp-navy); }
.okp-aviso-info .okp-aviso-detalle { color: #3d5573; }

.okp-aviso-exito { background: #e7f6ee; border: 1px solid #bfe5cf; }
.okp-aviso-exito .okp-aviso-icono { background: var(--okp-green); }
.okp-aviso-exito .okp-aviso-titulo { color: var(--okp-green-dark); }
.okp-aviso-exito .okp-aviso-detalle { color: #2e6b4d; }

.okp-aviso-peligro { background: #fdf0f3; border: 1px solid #f3c2cc; }
.okp-aviso-peligro .okp-aviso-icono { background: #c8102e; }
.okp-aviso-peligro .okp-aviso-titulo,
.okp-aviso-peligro .okp-aviso-detalle { color: #8f0f2b; }

/* ---------- Chips / badges ---------- */
.okp-chip {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
}

.chip-pendiente { background: #eef4fb; color: #3d5573; border: 1px solid #c4d9f2; }
.chip-observada { background: #fff7e6; color: #8a6d1a; border: 1px solid #f0dfb6; }
.chip-aprobada { background: #e7f6ee; color: #14603c; border: 1px solid #bfe5cf; }
.chip-rechazada { background: #fdeeee; color: #a33a3a; border: 1px solid #f2c6c6; }

/* ---------- Upload slots (operador + confirmación) ---------- */
.okp-upload-slot {
  border: 2px dashed var(--okp-border);
  border-radius: 12px;
  background: #fbfcfe;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.okp-upload-slot:hover {
  border-color: var(--okp-blue);
  background: #f0f5ff;
}

.okp-upload-slot.cargado {
  border-color: #bfe5cf;
  background: #e7f6ee;
  border-style: solid;
}

.okp-upload-slot.dd-slot-invalido {
  border-color: #c8102e !important;
  background: #fdeeee;
}

/* ---------- Forms ---------- */
.okp-label {
  color: var(--okp-navy);
  font-weight: 600;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--okp-navy);
  box-shadow: 0 0 0 0.2rem rgba(10, 42, 94, 0.12);
}

input[type="checkbox"].form-check-input {
  width: 20px;
  height: 20px;
  border: 2px solid var(--okp-navy);
}

/* ---------- Footer pagar ---------- */
.okp-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  background: var(--okp-navy);
  padding: 24px 16px;
}

.okp-footer a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 50px;
  height: 50px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 200px;
}

.okp-footer a:hover {
  border-color: #fff;
}

.okp-footer i {
  color: #fff;
  font-size: 28px;
}

@media (max-width: 767px) {
  .pay-btn,
  .btn-primario {
    font-size: 15px;
    padding: 10px 16px;
  }
}

.okp-logo-box { height: 93px; }

.okp-tabular { font-variant-numeric: tabular-nums; }

.okp-detalle {
  color: var(--okp-text);
  font-size: 14px;
}
