/* Sistema Visual Web Kalend Aurora v3.2 sobre Bootstrap 5.3.8 (SPEC 005 · D-AE).
   Fuente canónica: docs/DESIGN.md.
   Restricciones de Dirección de Arte (Design Lock v3.2):
   1. Paleta vibrante (#22D3EE -> #6366F1 -> #EC4899) con foco radial superior derecho + scrim sutil.
   2. Cero efecto wireframe: cero bordes grises oscuros en tarjetas, pestañas, filtros o badges.
   3. Tipografía dual: Outfit en encabezados editoriales + Inter tabular-nums en cifras y códigos. */

/* ── Puente con Bootstrap ─────────────────────────────────────────────────── */
:root {
  --bs-body-font-family: var(--k-fuente);
  --bs-body-font-size: var(--k-txt-base);
  --bs-body-line-height: var(--k-interlinea);
  --bs-body-color: var(--k-ink);
  --bs-body-bg: var(--ka-shell);
  --bs-secondary-color: var(--k-ink-muted);
  --bs-border-color: var(--k-rule);
  --bs-border-radius: var(--k-radio-control);
  --bs-link-color: var(--k-brand);
  --bs-link-hover-color: var(--k-brand-hover);
  --bs-emphasis-color: var(--k-ink);
  --bs-tertiary-bg: var(--k-surface-alt);
}

html {
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  background: var(--ka-canvas-bg);
  background-attachment: fixed;
  color: var(--k-ink);
  font-family: var(--k-fuente);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "cv05" 1;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  overflow-x: hidden;
}

a {
  color: var(--k-brand);
  text-decoration: none;
  transition: color var(--k-dur-rapida) var(--k-salida);
}

a:hover {
  color: var(--k-brand-hover);
}

/* ── Foco accesible luminoso ──────────────────────────────────────────────── */
:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 2px var(--ka-card-solid),
    0 0 0 4px var(--ka-focus-ring);
  border-radius: var(--k-radio-control);
}

/* ── Utilidades tipográficas tabulares ────────────────────────────────────── */
.k-num,
.k-codigo {
  font-family: var(--k-fuente);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "cv05" 1;
  white-space: nowrap;
}

.k-num {
  text-align: right;
}

.k-num--fuerte,
.k-peso-fuerte {
  font-weight: var(--k-peso-fuerte);
}

.k-celda-derecha {
  text-align: right;
}

.k-texto-tenue {
  color: var(--k-ink-muted);
}

.k-enlace-destructivo {
  color: var(--ka-pastel-rose-fg);
  font-weight: var(--k-peso-fuerte);
}

.k-enlace-destructivo:hover {
  color: #9D174D;
}

/* ── Marca Kalend Aurora ──────────────────────────────────────────────────── */
.k-marca {
  align-items: center;
  color: var(--k-ink);
  display: inline-flex;
  gap: 0.6875rem;
  text-decoration: none;
}

.k-marca:hover {
  color: var(--k-ink);
}

.k-marca__logo {
  align-items: center;
  background: var(--ka-grad-aurora);
  border-radius: 13px;
  box-shadow: 0 8px 18px rgba(99, 102, 241, 0.26);
  color: #FFFFFF;
  display: inline-flex;
  flex-shrink: 0;
  font-family: var(--k-font-display);
  font-size: 1.25rem;
  font-weight: var(--k-peso-audaz);
  height: 2.5rem;
  justify-content: center;
  text-shadow: var(--ka-white-scrim);
  width: 2.5rem;
}

.k-marca__texto {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.k-marca__nombre {
  color: var(--k-ink);
  font-family: var(--k-font-display);
  font-size: 1.25rem;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.02em;
}

.k-marca__sub {
  color: var(--k-ink-muted);
  font-family: var(--k-fuente);
  font-size: 0.6875rem;
  font-weight: var(--k-peso-medio);
  margin-top: 0.125rem;
}

.k-marca--grande .k-marca__logo {
  border-radius: 16px;
  font-size: 1.5rem;
  height: 3rem;
  width: 3rem;
}

.k-marca--grande .k-marca__nombre {
  font-size: 1.75rem;
}

/* ── Estructura Responsiva en 3 Dispositivos (Desktop / Tablet 10" / Mobile) ─ */
.k-app {
  display: grid;
  gap: 1.375rem;
  grid-template-columns: 224px minmax(0, 1fr);
  margin-inline: auto;
  max-width: 1680px;
  min-height: 100vh;
  padding: 1.125rem 1.375rem;
}

.k-app__columna {
  min-width: 0;
}

.k-app__lienzo {
  margin-inline: auto;
  max-width: 1440px;
  min-width: 0;
  padding: 0.25rem 0.25rem var(--k-e12);
  width: 100%;
}

/* Sidebar flotante Desktop (>= 1280px) */
.k-lateral {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--ka-card-border);
  border-radius: 26px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  gap: var(--k-e4);
  height: calc(100vh - 2.25rem);
  justify-content: space-between;
  padding: 1.25rem 0.9375rem 1rem;
  position: sticky;
  top: 1.125rem;
  z-index: var(--k-z-barra);
}

.k-lateral__cabecera {
  border-bottom: 1px solid var(--k-rule-soft);
  margin-bottom: 0.5rem;
  padding: 0.125rem 0.375rem 1rem;
}

.k-lateral__superior {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.k-nav__grupo {
  align-items: center;
  color: var(--ka-ink-subtle);
  display: flex;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  justify-content: space-between;
  letter-spacing: 0.08em;
  margin-bottom: 0.375rem;
  padding: 0 0.6875rem;
  text-transform: uppercase;
}

.k-nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.k-nav__item {
  align-items: center;
  border-radius: 15px;
  color: var(--ka-pastel-slate-fg);
  display: flex;
  font-size: 0.8125rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.625rem;
  min-height: 2.625rem;
  padding: 0.5rem 0.75rem;
  text-decoration: none;
  transition:
    background-color var(--k-dur-rapida) var(--k-salida),
    color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-nav__item:hover {
  background: var(--ka-surface-subtle);
  color: var(--k-ink);
}

.k-nav__item .k-ico {
  color: var(--k-ink-muted);
  transition: color var(--k-dur-rapida) var(--k-salida);
}

.k-nav__item[aria-current="page"] {
  background: var(--ka-grad-rail);
  box-shadow: var(--ka-shadow-rail);
  color: #FFFFFF;
  font-weight: var(--k-peso-audaz);
  text-shadow: var(--ka-white-scrim);
}

.k-nav__item[aria-current="page"]:hover {
  color: #FFFFFF;
}

.k-nav__item[aria-current="page"] .k-ico {
  color: #FFFFFF;
}

.k-nav__item[aria-disabled="true"] {
  color: var(--k-ink-muted);
  cursor: not-allowed;
  opacity: 0.5;
  pointer-events: none;
}

/* Tarjeta pastel de sesión en el pie del sidebar */
.k-lateral__pie {
  background: linear-gradient(155deg, #F0F9FF 0%, #FAF5FF 100%);
  border: 1px solid #E0F2FE;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  gap: 0.5625rem;
  margin-top: auto;
  padding: 0.75rem 0.8125rem;
}

.k-usuario {
  align-items: center;
  display: flex;
  gap: 0.5625rem;
  min-width: 0;
}

.k-usuario__avatar {
  align-items: center;
  background: var(--ka-grad-aurora);
  border-radius: 11px;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.22);
  color: #FFFFFF;
  display: inline-flex;
  flex-shrink: 0;
  font-family: var(--k-font-display);
  font-size: 0.78125rem;
  font-weight: var(--k-peso-audaz);
  height: 2.125rem;
  justify-content: center;
  text-shadow: var(--ka-white-scrim);
  text-transform: uppercase;
  width: 2.125rem;
}

.k-usuario__info {
  min-width: 0;
}

.k-usuario__nombre {
  color: var(--k-ink);
  display: block;
  font-size: 0.75rem;
  font-weight: var(--k-peso-audaz);
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.k-usuario__rol {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.65625rem;
  font-weight: var(--k-peso-medio);
  letter-spacing: 0.03em;
  margin-top: 0.0625rem;
}

.k-lateral__pie form {
  margin: 0;
}

.k-btn-salir {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-pildora);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.03);
  color: var(--ka-pastel-slate-fg);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--k-fuente);
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.375rem;
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.375rem 0.75rem;
  transition: background-color var(--k-dur-rapida) var(--k-salida);
  width: 100%;
}

.k-btn-salir:hover {
  background: #FFFFFF;
  color: var(--k-ink);
}

.k-salir-corto,
.k-movil-top,
.k-movil-nav,
.k-superior {
  display: none;
}

/* Quiebre 2: Tablet 10" (768px – 1279.98px, RNF-3) -> Riel táctil compacto 82px */
@media (min-width: 768px) and (max-width: 1279.98px) {
  .k-app {
    gap: 1rem;
    grid-template-columns: 82px minmax(0, 1fr);
    padding: 0.875rem 1rem;
  }

  .k-lateral {
    align-items: center;
    border-radius: 24px;
    height: calc(100vh - 1.75rem);
    padding: 0.875rem 0.5rem;
    top: 0.875rem;
    width: 82px;
  }

  .k-lateral__cabecera {
    border-bottom: none;
    margin-bottom: 0.25rem;
    padding: 0 0 0.5rem;
  }

  .k-marca__texto,
  .k-nav__grupo,
  .k-usuario__info,
  .k-salir-largo {
    display: none;
  }

  .k-salir-corto {
    display: inline;
  }

  .k-nav {
    align-items: center;
    gap: 0.375rem;
    width: 100%;
  }

  .k-nav__item {
    border-radius: 15px;
    flex-direction: column;
    font-size: 0.625rem;
    gap: 0.2rem;
    justify-content: center;
    line-height: 1.1;
    min-height: 3.25rem;
    padding: 0.375rem 0.25rem;
    text-align: center;
    width: 100%;
  }

  .k-lateral__pie {
    align-items: center;
    background: transparent;
    border: none;
    gap: 0.5rem;
    padding: 0.25rem 0 0;
    width: 100%;
  }

  .k-usuario__avatar {
    height: 2.5rem;
    width: 2.5rem;
  }

  .k-btn-salir {
    border-radius: 13px;
    flex-direction: column;
    font-size: 0.625rem;
    gap: 0.125rem;
    min-height: 2.75rem;
    padding: 0.25rem;
    width: 3.375rem;
  }
}

/* Quiebre 3: Mobile (< 768px, 375px – 767.98px) -> Cabecera compacta + Nav inferior fija */
@media (max-width: 767.98px) {
  .k-app {
    display: block;
    padding: 0;
  }

  .k-lateral {
    display: none;
  }

  .k-movil-top {
    align-items: center;
    backdrop-filter: blur(12px);
    background: rgba(248, 251, 255, 0.92);
    border-bottom: 1px solid var(--k-rule-soft);
    display: flex;
    gap: 0.5rem;
    justify-content: space-between;
    padding: 0.625rem 0.875rem;
    position: sticky;
    top: 0;
    z-index: var(--k-z-barra);
  }

  .k-movil-top .k-marca__logo {
    border-radius: 11px;
    font-size: 1rem;
    height: 2.125rem;
    width: 2.125rem;
  }

  .k-movil-top .k-marca__nombre {
    font-size: 1.0625rem;
  }

  .k-movil-top .k-marca__sub {
    display: none;
  }

  .k-movil-top__acciones {
    align-items: center;
    display: flex;
    gap: 0.4375rem;
  }

  .k-movil-usuario {
    align-items: center;
    background: #FFFFFF;
    border: 1px solid var(--k-rule);
    border-radius: 12px;
    color: var(--ka-pastel-indigo-fg);
    display: inline-flex;
    font-size: 0.6875rem;
    font-weight: var(--k-peso-audaz);
    gap: 0.3125rem;
    height: 2.5rem;
    max-width: 9.5rem;
    overflow: hidden;
    padding: 0 0.625rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .k-movil-salir {
    align-items: center;
    background: #FFFFFF;
    border: 1px solid var(--k-rule);
    border-radius: 12px;
    color: var(--ka-pastel-slate-fg);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.6875rem;
    font-weight: var(--k-peso-fuerte);
    gap: 0.25rem;
    height: 2.5rem;
    justify-content: center;
    min-width: 2.75rem;
    padding: 0 0.625rem;
  }

  .k-movil-nav {
    align-items: stretch;
    backdrop-filter: blur(14px);
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--k-rule-soft);
    box-shadow: 0 -8px 28px rgba(36, 50, 92, 0.08);
    display: flex;
    gap: 0.1875rem;
    inset: auto 0 0 0;
    justify-content: space-around;
    padding: 0.35rem 0.35rem calc(0.35rem + env(safe-area-inset-bottom));
    position: fixed;
    z-index: var(--k-z-flotante);
  }

  .k-movil-nav .k-nav__item {
    border-radius: 13px;
    flex: 1 1 0;
    flex-direction: column;
    font-size: 0.625rem;
    gap: 0.15rem;
    justify-content: center;
    line-height: 1.1;
    min-height: 3rem;
    min-width: 0;
    padding: 0.25rem 0.125rem;
    text-align: center;
  }

  .k-app__lienzo {
    padding: 0.875rem 0.875rem 5.75rem;
  }
}

/* ── Cabecera editorial de pantalla ───────────────────────────────────────── */
.k-pantalla {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--k-e4);
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.k-pantalla--espaciada {
  margin-top: var(--k-e6);
}

.k-pantalla__titulo {
  color: var(--k-ink);
  font-family: var(--k-font-display);
  font-size: var(--k-txt-xl);
  font-weight: var(--k-peso-medio);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0;
}

.k-pantalla__contexto {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-sm);
  font-weight: var(--k-peso-medio);
  margin: 0.2rem 0 0;
}

.k-etiqueta {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-micro);
  font-weight: var(--k-peso-audaz);
  letter-spacing: var(--k-tracking-versal);
  margin-bottom: 0.125rem;
  text-transform: uppercase;
}

.k-acciones-cabecera {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* ── Tarjetas flotantes de porcelana y Bento Aurora v3.2 ──────────────────── */
.k-tarjeta {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  padding: 1.25rem 1.375rem;
}

.k-tarjeta__cabecera {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-pildora-info {
  background: #F0F9FF;
  border-radius: var(--k-radio-pildora);
  color: #0284C7;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.25rem 0.6875rem;
  white-space: nowrap;
}

.k-pildora-info--menta {
  background: #E0F7FA;
  color: #0E7490;
}

.k-bento-superior {
  display: grid;
  gap: 1.125rem;
  grid-template-columns: minmax(19rem, 1.05fr) minmax(22rem, 1.45fr) minmax(16.5rem, 0.95fr);
  margin-bottom: 1.25rem;
}

@media (max-width: 1279.98px) {
  .k-bento-superior {
    grid-template-columns: 1fr 1fr;
  }

  .k-bento-superior > .k-sankey-card {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  .k-bento-superior {
    grid-template-columns: 1fr;
  }
}

/* Tarjeta Hero Bóveda (Design Lock #1: gradiente luminoso sin cajas oscuras) */
.k-boveda {
  background: var(--ka-grad-boveda);
  border-radius: 26px;
  box-shadow: var(--ka-shadow-boveda);
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: 1.3125rem 1.5rem;
  position: relative;
}

.k-boveda::before {
  background: rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  bottom: -52px;
  content: "";
  height: 188px;
  pointer-events: none;
  position: absolute;
  right: -42px;
  width: 188px;
}

.k-boveda::after {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  content: "";
  height: 118px;
  pointer-events: none;
  position: absolute;
  right: 24px;
  top: -38px;
  width: 118px;
}

.k-boveda__cabecera,
.k-boveda__cuerpo,
.k-boveda__pie {
  position: relative;
  text-shadow: var(--ka-white-scrim);
  z-index: 2;
}

.k-boveda__cabecera {
  align-items: center;
  display: flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  justify-content: space-between;
  letter-spacing: 0.03em;
}

.k-boveda__cuerpo {
  margin: 0.75rem 0 0.875rem;
}

.k-boveda__cifra {
  display: block;
  font-family: var(--k-fuente);
  font-size: var(--k-txt-cifra-lg);
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.025em;
  line-height: 1.08;
}

.k-boveda__flujos {
  align-items: flex-start;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  display: flex;
  flex-direction: column;
  font-size: 0.75rem;
  font-weight: var(--k-peso-medio);
  gap: 0.25rem;
  margin-top: 0.625rem;
  padding-top: 0.5rem;
}

.k-boveda__pie {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.71875rem;
  gap: 0.5rem;
  justify-content: space-between;
}

.k-boveda__pildora {
  backdrop-filter: blur(6px);
  background: rgba(255, 255, 255, 0.24);
  border-radius: var(--k-radio-pildora);
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-fuerte);
  padding: 0.25rem 0.6875rem;
  text-decoration: none;
}

.k-boveda__pildora:hover {
  background: rgba(255, 255, 255, 0.32);
  color: #FFFFFF;
}

/* Sankey SVG RC-8 y versión compacta móvil sin atributos style= */
.k-sankey-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.k-sankey-escritorio {
  display: block;
  height: auto;
  width: 100%;
}

.k-sankey-movil {
  display: none;
}

@media (max-width: 767.98px) {
  .k-sankey-escritorio {
    display: none;
  }

  .k-sankey-movil {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
  }
}

.k-sankey-barra-svg {
  border-radius: var(--k-radio-pildora);
  display: block;
  height: 0.625rem;
  overflow: hidden;
  width: 100%;
}

.k-sankey-leyenda {
  display: grid;
  gap: 0.4375rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.k-sankey-item {
  border-radius: 12px;
  padding: 0.45rem 0.5rem;
}

.k-sankey-item--rgo {
  background: #E0F7FA;
  color: #0E7490;
}

.k-sankey-item--interes {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-sankey-item--capital {
  background: var(--ka-pastel-rose-bg);
  color: #9D174D;
}

.k-sankey-item__titulo {
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  text-transform: uppercase;
}

.k-sankey-item__valor {
  display: block;
  font-size: 0.75rem;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.125rem;
}

/* Tarjeta resumen Cartera y mini-KPIs pastel sin bordes */
.k-cartera-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.k-cartera-hero {
  color: #0EA5E9;
  display: block;
  font-size: 1.875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin-top: 0.25rem;
}

.k-cartera-sub {
  color: var(--k-ink-muted);
  display: flex;
  font-size: 0.75rem;
  justify-content: space-between;
  margin: 0.25rem 0 0.75rem;
}

.k-mini-kpis {
  display: grid;
  gap: 0.5625rem;
  grid-template-columns: 1fr 1fr;
}

.k-mini-kpi {
  border-radius: 15px;
  display: block;
  padding: 0.625rem 0.75rem;
  text-decoration: none;
}

.k-mini-kpi--cielo {
  background: #F0F9FF;
  color: var(--k-ink);
}

.k-mini-kpi--rosa {
  background: #FDF2F8;
  color: var(--k-ink);
}

.k-mini-kpi__etiqueta {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-mini-kpi__valor {
  display: block;
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.125rem;
}

.k-mini-kpi--rosa .k-mini-kpi__valor {
  color: var(--ka-pastel-rose-fg);
}

/* ── Indicadores generales (ficha cliente, crédito, simulador y caja) ──────── */
.k-indicadores {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  margin-bottom: 1.5rem;
}

.k-indicadores--compacto {
  margin-bottom: 1.25rem;
  max-width: 52rem;
}

.k-indicador {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.0625rem 1.25rem;
}

.k-indicador .k-etiqueta {
  display: block;
}

.k-indicador__cifra {
  color: var(--k-ink);
  display: block;
  font-family: var(--k-fuente);
  font-size: var(--k-txt-cifra);
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.02em;
  line-height: var(--k-interlinea-densa);
  margin-top: 0.375rem;
}

.k-indicador__cifra--compacta {
  font-size: var(--k-txt-lg);
}

.k-indicador__unidad {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-base);
  font-weight: var(--k-peso-medio);
  margin-left: 0.25rem;
}

.k-indicador__nota {
  color: var(--k-ink-muted);
  display: block;
  font-size: var(--k-txt-xs);
  margin-top: 0.35rem;
}

.k-indicador__nota--alerta {
  color: var(--ka-pastel-rose-fg);
  font-weight: var(--k-peso-fuerte);
}

/* El indicador principal adopta la tarjeta Hero Bóveda Aurora v3.2 */
.k-indicador--principal {
  background: var(--ka-grad-boveda);
  border: none;
  box-shadow: var(--ka-shadow-boveda);
  color: #FFFFFF;
  overflow: hidden;
  position: relative;
}

.k-indicador--principal .k-etiqueta,
.k-indicador--principal .k-indicador__cifra,
.k-indicador--principal .k-indicador__unidad,
.k-indicador--principal .k-indicador__nota {
  color: #FFFFFF;
  position: relative;
  text-shadow: var(--ka-white-scrim);
  z-index: 2;
}

.k-indicador--principal .k-etiqueta,
.k-indicador--principal .k-indicador__unidad,
.k-indicador--principal .k-indicador__nota {
  opacity: 0.94;
}

/* ── Pestañas operativas y Píldoras de filtro suaves (cero wireframe) ──────── */
.k-barra-pestanas {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: space-between;
  margin-bottom: 0.875rem;
}

.k-tabs {
  background: var(--ka-surface-subtle);
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.2rem;
  padding: 0.25rem;
}

.k-tab {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: var(--k-radio-pildora);
  color: var(--k-ink-muted);
  display: inline-flex;
  font-size: 0.78125rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.4375rem;
  min-height: 2.25rem;
  padding: 0.375rem 0.875rem;
  text-decoration: none;
  transition: background-color var(--k-dur-rapida) var(--k-salida);
}

.k-tab:hover {
  color: var(--k-ink);
}

.k-tab--activa {
  background: #FFFFFF;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  color: var(--k-ink);
  font-weight: var(--k-peso-audaz);
}

.k-tab__conteo {
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.0625rem 0.4375rem;
}

.k-tab--activa .k-tab__conteo {
  background: #EFF6FF;
  color: #0284C7;
}

.k-pildoras {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.k-pildora {
  align-items: center;
  background: #F8FAFC;
  border: none;
  border-radius: var(--k-radio-pildora);
  color: var(--k-ink-muted);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.35rem;
  min-height: 2.125rem;
  padding: 0.3125rem 0.8125rem;
  text-decoration: none;
}

.k-pildora:hover {
  background: var(--ka-surface-subtle);
  color: var(--k-ink);
}

.k-pildora--activa {
  background: #EFF6FF;
  color: #0284C7;
  font-weight: var(--k-peso-audaz);
}

/* Navegador suave de secciones en formularios largos */
.k-secciones-nav {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-pildora);
  box-shadow: var(--ka-shadow-card-sm);
  display: flex;
  gap: 0.375rem;
  margin-bottom: 1.25rem;
  overflow-x: auto;
  padding: 0.3125rem;
  scrollbar-width: none;
}

.k-secciones-nav::-webkit-scrollbar {
  display: none;
}

.k-secciones-nav__enlace {
  align-items: center;
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-slate-fg);
  display: inline-flex;
  flex: 1 0 auto;
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  justify-content: center;
  min-height: 2.25rem;
  padding: 0.3125rem 0.875rem;
  text-decoration: none;
  white-space: nowrap;
}

.k-secciones-nav__enlace:hover {
  background: #EFF6FF;
  color: #0284C7;
}

/* ── Tablas de datos en contenedor táctil (.k-tabla-scroll obligatorio) ──── */
.k-tabla-scroll {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0.375rem 0.625rem;
  position: relative;
}

.k-tarjeta .k-tabla-scroll {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.k-tabla {
  border-collapse: collapse;
  font-size: var(--k-txt-sm);
  min-width: 40rem;
  width: 100%;
}

.k-tabla--compacta {
  min-width: 0;
}

@media (max-width: 767.98px) {
  .k-tabla {
    min-width: 28rem;
  }

  .k-tabla--compacta {
    min-width: 0;
  }

  .k-tabla .k-col-opcional {
    display: none;
  }
}

.k-tabla thead th {
  background: transparent;
  border-bottom: 1px solid var(--k-rule-strong);
  color: var(--k-ink-muted);
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.05em;
  padding: 0.625rem 0.75rem;
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
}

.k-tabla thead th.k-num {
  text-align: right;
}

.k-tabla tbody td {
  border-bottom: 1px solid var(--k-rule-soft);
  height: var(--k-fila-alto);
  padding: 0.5625rem 0.75rem;
  vertical-align: middle;
}

.k-tabla tbody tr:last-child td {
  border-bottom: none;
}

.k-tabla tbody tr {
  transition: background-color var(--k-dur-rapida) var(--k-salida);
}

.k-tabla tbody tr:hover {
  background: #F8FBFF;
}

.k-tabla tbody tr[aria-selected="true"],
.k-tabla tbody tr.k-plan__hoy {
  background: linear-gradient(90deg, #F0F9FF 0%, #F8F7FF 100%);
}

.k-tabla tfoot td {
  background: var(--k-surface-sunken);
  border-top: 1px solid var(--k-rule-strong);
  color: var(--k-ink-2);
  font-weight: var(--k-peso-audaz);
  padding: 0.6875rem 0.75rem;
}

.k-tabla tfoot td:first-child {
  border-bottom-left-radius: 13px;
  border-top-left-radius: 13px;
}

.k-tabla tfoot td:last-child {
  border-bottom-right-radius: 13px;
  border-top-right-radius: 13px;
}

.k-tabla__vacia {
  color: var(--k-ink-muted);
  padding: var(--k-e8) var(--k-e4);
  text-align: center;
}

.k-seccion-tabla__cabecera {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--k-e3);
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-seccion-tabla--espaciada {
  margin-top: var(--k-e8);
}

.k-seccion-tabla__resumen {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
}

/* ── Insignias pastel sin borde (Design Lock #2: cero bordes wireframe) ───── */
.k-estado {
  align-items: center;
  background: var(--ka-pastel-slate-bg);
  border: none;
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-slate-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  white-space: nowrap;
}

.k-estado::before {
  background: currentColor;
  border-radius: 50%;
  content: "";
  flex: none;
  height: 0.4rem;
  width: 0.4rem;
}

.k-estado--pagada,
.k-estado--vigente {
  background: var(--ka-pastel-cyan-bg);
  color: var(--ka-pastel-cyan-fg);
}

.k-estado--solicitado,
.k-estado--pendiente {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-estado--parcial {
  background: var(--ka-pastel-violet-bg);
  color: var(--ka-pastel-violet-fg);
}

.k-estado--parcial::before {
  background: linear-gradient(90deg, currentColor 50%, transparent 50%);
  box-shadow: inset 0 0 0 1px currentColor;
}

.k-estado--vencida {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-estado--rechazado,
.k-estado--anulada,
.k-estado--cancelado {
  background: var(--ka-pastel-slate-bg);
  color: var(--ka-pastel-slate-fg);
}

.k-estado--rechazado,
.k-estado--anulada {
  text-decoration: line-through;
}

.k-insignia-domingo {
  background: var(--ka-pastel-amber-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-amber-fg);
  display: inline-block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  margin-left: 0.25rem;
  padding: 0.125rem 0.5rem;
  text-transform: uppercase;
  vertical-align: middle;
}

/* Dirección de flujo de Caja */
.k-flujo {
  align-items: center;
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.35rem;
  padding: 0.2rem 0.5625rem;
  white-space: nowrap;
}

.k-flujo--entrada {
  background: var(--ka-pastel-cyan-bg);
  color: var(--ka-pastel-cyan-fg);
}

.k-flujo--entrada::before {
  content: "+";
  font-weight: var(--k-peso-audaz);
}

.k-flujo--salida {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-flujo--salida::before {
  content: "\2212";
  font-weight: var(--k-peso-audaz);
}

.k-flujo__nota {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-micro);
  font-weight: var(--k-peso-medio);
  letter-spacing: var(--k-tracking-versal);
  text-transform: uppercase;
}

/* ── Controles de formulario e importes BOB ───────────────────────────────── */
.k-campo {
  display: block;
  margin-bottom: var(--k-e4);
}

.k-campo--margen-superior {
  margin-top: var(--k-e4);
}

.k-campo__label {
  color: var(--k-ink-2);
  display: block;
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-fuerte);
  margin-bottom: 0.3125rem;
}

.k-campo__label[data-requerido]::after {
  color: var(--ka-pastel-rose-fg);
  content: " *";
}

.k-campo__control {
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  color: var(--k-ink);
  font-family: var(--k-fuente);
  font-size: 0.9375rem;
  min-height: var(--k-control-alto);
  padding: 0.5rem 0.8125rem;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
  width: 100%;
}

.k-campo__control:hover:not(:disabled) {
  border-color: var(--ka-ice-border);
}

.k-campo__control:focus {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
  outline: none;
}

.k-campo__control:disabled,
.k-campo__control[readonly] {
  background: var(--ka-surface-subtle);
  color: var(--k-ink-muted);
}

.k-campo__ayuda {
  color: var(--k-ink-muted);
  display: block;
  font-size: var(--k-txt-xs);
  margin-top: 0.25rem;
}

.k-campo__error {
  color: var(--ka-pastel-rose-fg);
  display: block;
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-fuerte);
  margin-top: 0.25rem;
}

.k-select-multiple {
  min-height: 7.5rem;
}

/* Control compuesto de importe Bs */
.k-monto {
  align-items: stretch;
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  display: flex;
  overflow: hidden;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-monto:hover {
  border-color: var(--ka-ice-border);
}

.k-monto:focus-within {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
}

.k-monto__prefijo {
  align-items: center;
  background: #F8FBFF;
  border-right: 1px solid var(--k-rule-soft);
  color: #0284C7;
  display: flex;
  font-size: var(--k-txt-sm);
  font-weight: var(--k-peso-audaz);
  padding-inline: 0.75rem;
}

.k-monto__control {
  border: none;
  border-radius: 0;
  font-variant-numeric: tabular-nums;
  min-height: var(--k-control-alto);
  padding: 0.5rem 0.8125rem;
  text-align: right;
  width: 100%;
}

.k-monto__control:focus,
.k-monto__control:focus-visible {
  box-shadow: none;
}

/* Especificidad garantizada en estado inválido sobre controles simples y .k-monto */
.k-campo[data-invalido] .k-campo__control,
.k-campo[data-invalido] .k-monto {
  background: #FFFBFD;
  border-color: var(--ka-error-border);
  border-width: 1.5px;
  box-shadow: 0 0 0 3px rgba(244, 114, 182, 0.14);
}

.k-campo[data-invalido] .k-monto .k-monto__control {
  background: transparent;
  border: none;
  box-shadow: none;
}

/* EC-005.3: 16px y 44px en Tablet/Mobile para evitar auto-zoom en Safari iOS */
@media (max-width: 1279.98px) {
  .k-campo__control,
  .k-monto__control {
    font-size: 1rem;
    min-height: 2.75rem;
  }
}

.k-casilla {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: var(--k-txt-base);
  font-weight: var(--k-peso-medio);
  gap: var(--k-e3);
  min-height: var(--k-toque-min);
}

.k-casilla input[type="checkbox"] {
  accent-color: #6366F1;
  height: 1.25rem;
  margin: 0;
  width: 1.25rem;
}

/* ── Barra de filtros flotante ────────────────────────────────────────────── */
.k-filtros {
  align-items: flex-end;
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.125rem;
  padding: 1rem 1.25rem;
}

.k-filtros .k-campo {
  margin-bottom: 0;
  min-width: 9rem;
}

.k-filtros__buscar {
  flex: 1 1 16rem;
}

.k-filtros__acciones {
  display: flex;
  gap: 0.5rem;
  margin-left: auto;
}

.k-filtros__resumen {
  border-top: 1px solid var(--k-rule-soft);
  color: var(--k-ink-muted);
  flex-basis: 100%;
  font-size: var(--k-txt-xs);
  margin: 0.25rem 0 0;
  padding-top: 0.625rem;
}

.k-filtros__resumen-barra {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: space-between;
}

.k-filtros__exportar {
  align-items: center;
  background: #F8FBFF;
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  padding: 0.25rem 0.75rem;
}

/* ── Bloques de formulario (<fieldset>), CIIU HTMX y DeudaCliente ─────────── */
.k-form-ancho {
  max-width: 68rem;
  width: 100%;
}

.k-form-ancho .k-campo__control {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.k-bloque-form {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  margin: 0 0 1.25rem;
  min-width: 0;
  padding: 1.375rem 1.5rem;
}

@media (max-width: 767.98px) {
  .k-bloque-form {
    padding: 1.125rem 1rem;
  }
}

.k-bloque-form__leyenda {
  color: var(--k-ink);
  float: left;
  font-family: var(--k-font-display);
  font-size: var(--k-txt-lg);
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.015em;
  line-height: var(--k-interlinea-densa);
  margin: 0 0 0.375rem;
  padding: 0;
  width: 100%;
}

.k-bloque-form__leyenda + * {
  clear: left;
}

.k-bloque-form__subtitulo {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
  margin: 0 0 1rem;
}

.k-bloque-form .k-campo {
  margin-bottom: 0.25rem;
}

.k-subgrupo-condicional {
  border-top: 1px solid var(--k-rule-soft);
  margin-top: 0.875rem;
  padding-top: 0.875rem;
  transition: opacity var(--k-dur-normal) var(--k-salida);
}

.k-subgrupo-condicional--atenuado {
  opacity: 0.55;
}

.k-ciiu-buscador {
  background: linear-gradient(155deg, #F0F9FF 0%, #FAF5FF 100%);
  border: 1px solid #E0F2FE;
  border-radius: 18px;
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
}

.k-ciiu-buscador__cabecera {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.375rem;
}

.k-ciiu-buscador__estado {
  color: #0284C7;
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-fuerte);
}

.k-ciiu-resultados {
  margin-top: 0.5rem;
  max-height: 13rem;
  overflow-y: auto;
}

/* Estilizado Aurora sobre _opciones_ciiu.html preservando sus clases literales */
[data-ciiu-lista] {
  border-radius: 14px;
  gap: 0.25rem;
}

[data-ciiu-lista] .list-group-item {
  background: #FFFFFF;
  border: 1px solid var(--k-rule-soft);
  border-radius: 11px;
  color: var(--k-ink);
  font-size: var(--k-txt-xs);
  padding: 0.5rem 0.75rem;
}

[data-ciiu-lista] .list-group-item-action:hover,
[data-ciiu-lista] .list-group-item-action:focus {
  background: #EFF6FF;
  border-color: var(--ka-ice-border);
  color: #0284C7;
}

.k-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.k-chip {
  align-items: center;
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  display: inline-flex;
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-fuerte);
  gap: 0.375rem;
  padding: 0.25rem 0.6875rem;
}

.k-chip__quitar {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font-size: 0.9375rem;
  line-height: 1;
  padding: 0 0.125rem;
}

.k-chip__quitar:hover {
  color: var(--ka-pastel-rose-fg);
}

.k-deudas-cabecera {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: space-between;
  margin-bottom: 0.875rem;
}

.k-deuda-fila {
  background: #F8FBFF;
  border: 1px solid var(--k-rule);
  border-radius: 16px;
  margin-bottom: 0.75rem;
  padding: 0.875rem 1rem;
}

.k-deuda-fila .k-campo {
  margin-bottom: 0;
}

.k-deuda-fila__acciones {
  align-items: flex-end;
  display: flex;
}

.k-deudas-vacio {
  background: #F8FBFF;
  border: 1px dashed var(--ka-ice-border);
  border-radius: 16px;
  color: var(--k-ink-muted);
  font-size: var(--k-txt-sm);
  margin-bottom: 0.75rem;
  padding: 1.125rem;
  text-align: center;
}

.k-seccion-campos__titulo {
  border-bottom: 1px solid var(--k-rule-soft);
  margin: 1.5rem 0 0.875rem;
  padding-bottom: 0.375rem;
}

.k-seccion-campos__titulo:first-child {
  margin-top: 0;
}

.k-form-acciones {
  align-items: center;
  border-top: 1px solid var(--k-rule-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
  padding-top: 1rem;
}

.k-form-acciones--separadas {
  justify-content: space-between;
  max-width: 52rem;
}

.k-nota-pie-form {
  background: #F8FBFF;
  border: 1px dashed var(--ka-ice-border);
  border-radius: 14px;
  color: var(--k-ink-2);
  font-size: var(--k-txt-xs);
  line-height: 1.5;
  margin: 0.875rem 0 0;
  max-width: 52rem;
  padding: 0.625rem 0.875rem;
}

/* ── Botones cápsula Aurora v3.2 (con alias compatibles) ──────────────────── */
.k-btn {
  align-items: center;
  border: 1px solid transparent;
  border-radius: var(--k-radio-pildora);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--k-fuente);
  font-size: var(--k-txt-sm);
  font-weight: var(--k-peso-audaz);
  gap: 0.4375rem;
  justify-content: center;
  min-height: var(--k-control-alto);
  padding-inline: 1.125rem;
  text-decoration: none;
  transition:
    transform var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida),
    background-color var(--k-dur-rapida) var(--k-salida);
  white-space: nowrap;
}

.k-btn--principal,
.k-btn--primario {
  background: var(--ka-grad-aurora);
  border: none;
  box-shadow: var(--ka-shadow-aurora);
  color: #FFFFFF;
  text-shadow: var(--ka-white-scrim);
}

.k-btn--principal:hover,
.k-btn--primario:hover {
  box-shadow: 0 12px 28px rgba(99, 102, 241, 0.34);
  color: #FFFFFF;
}

.k-btn--secundario {
  background: #FFFFFF;
  border-color: var(--ka-ice-border);
  box-shadow: 0 4px 12px rgba(14, 165, 233, 0.06);
  color: #0284C7;
}

.k-btn--secundario:hover {
  background: #F0F9FF;
  border-color: #7DD3FC;
  color: #0369A1;
}

.k-btn--destructivo,
.k-btn--peligro {
  background: var(--ka-pastel-rose-bg);
  border-color: #F9A8D4;
  color: var(--ka-pastel-rose-fg);
}

.k-btn--destructivo:hover,
.k-btn--peligro:hover {
  background: #DB2777;
  border-color: #DB2777;
  color: #FFFFFF;
  text-shadow: var(--ka-white-scrim);
}

.k-btn--discreto,
.k-btn--fantasma {
  background: transparent;
  color: var(--ka-pastel-slate-fg);
  padding-inline: 0.875rem;
}

.k-btn--discreto:hover,
.k-btn--fantasma:hover {
  background: var(--ka-surface-subtle);
  color: var(--k-ink);
}

.k-btn:disabled,
.k-btn[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.48;
  box-shadow: none;
}

.k-btn:active:not(:disabled) {
  transform: translateY(1px);
}

/* ── Fichas de datos de solo lectura y legajo PDF ─────────────────────────── */
.k-seccion-ficha {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  margin-bottom: 1.25rem;
  padding: 1.25rem 1.5rem;
}

.k-seccion-ficha .k-tabla-scroll {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.k-datos {
  display: grid;
  gap: 0.875rem 1.75rem;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  margin: 0;
  max-width: 52rem;
}

.k-datos--amplio {
  max-width: none;
}

.k-datos > div {
  border-bottom: 1px solid var(--k-rule-soft);
  padding-bottom: 0.5rem;
}

.k-datos dt {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-micro);
  font-weight: var(--k-peso-audaz);
  letter-spacing: var(--k-tracking-versal);
  text-transform: uppercase;
}

.k-datos dd {
  color: var(--k-ink);
  font-size: var(--k-txt-base);
  font-weight: var(--k-peso-medio);
  margin: 0.2rem 0 0;
}

.k-datos--modal {
  background: #F8FBFF;
  border: 1px solid #E0F2FE;
  border-radius: 16px;
  gap: 0.625rem 1rem;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  margin-bottom: 1.125rem;
  max-width: none;
  padding: 0.75rem 1rem;
}

.k-datos--modal > div {
  border-bottom: none;
  padding-bottom: 0;
}

.k-datos--modal .k-datos__destacado {
  color: #0284C7;
  font-size: var(--k-txt-md);
  font-weight: var(--k-peso-audaz);
}

/* Avance de cuotas en ficha de crédito */
.k-ficha-avance {
  align-items: center;
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2.5rem;
  margin-bottom: 1.25rem;
  padding: 1.25rem 1.5rem;
}

.k-ficha-avance__barra {
  flex: 1 1 18rem;
  min-width: 0;
}

.k-ficha-avance__proxima {
  border-left: 1px solid var(--k-rule);
  flex: 0 1 22rem;
  min-width: 0;
  padding-left: 1.5rem;
}

@media (max-width: 767.98px) {
  .k-ficha-avance__proxima {
    border-left: none;
    border-top: 1px solid var(--k-rule-soft);
    flex-basis: 100%;
    padding-left: 0;
    padding-top: 1rem;
  }
}

.k-ficha-avance__etiqueta {
  display: block;
  margin-bottom: 0.5rem;
}

.k-ficha-proxima__fila {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.k-ficha-proxima__cifra {
  color: var(--k-ink);
  font-size: var(--k-txt-cifra);
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  letter-spacing: -0.02em;
  line-height: var(--k-interlinea-densa);
}

.k-ficha-proxima__meta {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
}

.k-ficha-proxima__acciones {
  margin-top: 0.625rem;
}

.k-progreso {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.k-progreso__pista {
  display: flex;
  gap: 3px;
}

.k-progreso__cuota {
  background: #EEF4FA;
  border-radius: var(--k-radio-pildora);
  flex: 1;
  height: 0.5625rem;
}

.k-progreso__cuota--pagada {
  background: linear-gradient(90deg, #22D3EE 0%, #6366F1 100%);
}

.k-progreso__cuota--parcial {
  background: #A855F7;
}

.k-progreso__cuota--vencida {
  background: #EC4899;
}

.k-progreso__texto {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
}

/* Contenedores acotados de lectura y formularios cortos */
.k-bloque-lectura {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  max-width: 52rem;
  padding: 1.375rem 1.5rem;
}

.k-seccion-compacta {
  margin-top: 1.25rem;
  max-width: 52rem;
}

.k-ancho-34 {
  max-width: 36rem;
}

.k-ancho-26 {
  max-width: 28rem;
}

form.k-ancho-34,
form.k-ancho-26 {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  padding: 1.375rem 1.5rem;
}

.k-fila-campos-caja {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: var(--k-e4);
}

.k-fila-campos-caja__item {
  flex: 1 1 12rem;
  margin-bottom: 0;
}

/* ── Pantalla de ingreso (/ingresar/) ─────────────────────────────────────── */
.k-ingreso {
  background: var(--ka-canvas-bg);
  display: grid;
  min-height: 100vh;
  padding: var(--k-e8) var(--k-e4);
  place-items: center;
}

.k-ingreso__caja {
  display: flex;
  flex-direction: column;
  gap: 1.375rem;
  max-width: 25rem;
  width: 100%;
}

.k-ingreso__marca {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  text-align: center;
}

.k-ingreso__lema {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-sm);
  margin: 0;
}

.k-ingreso__tarjeta {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 26px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
  padding: 1.75rem;
}

.k-ingreso__campos .k-campo:last-child {
  margin-bottom: 0;
}

.k-ingreso__nota {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
  line-height: 1.5;
  margin: 0;
  text-align: center;
}

/* ── Avisos en línea pastel suaves ────────────────────────────────────────── */
.k-aviso {
  align-items: flex-start;
  background: #F0F9FF;
  border: 1px solid #BAE6FD;
  border-radius: 16px;
  color: var(--k-ink);
  display: flex;
  font-size: var(--k-txt-base);
  gap: 0.625rem;
  line-height: 1.45;
  margin: 0;
  padding: 0.875rem 1rem;
}

.k-aviso .k-ico {
  color: #0284C7;
  margin-top: 0.125rem;
}

.k-aviso--error {
  background: #FFF1F7;
  border-color: #F9A8D4;
}

.k-aviso--error .k-ico {
  color: var(--ka-pastel-rose-fg);
}

.k-aviso--alerta {
  background: #FEFCE8;
  border-color: #FDE68A;
}

.k-aviso--alerta .k-ico {
  color: var(--ka-pastel-amber-fg);
}

.k-aviso--neutro {
  background: #F0F9FF;
  border-color: #E0F2FE;
}

.k-aviso-form {
  margin-bottom: 1.25rem;
}

.k-aviso--bloque {
  margin-bottom: 1.25rem;
  max-width: 52rem;
}

.k-aviso--compacto {
  margin-bottom: 0.875rem;
}

.k-aviso-form__cuerpo {
  min-width: 0;
}

.k-aviso-form__titulo {
  display: block;
  font-weight: var(--k-peso-audaz);
}

.k-aviso-form__lista {
  font-size: var(--k-txt-sm);
  margin: 0.25rem 0 0;
  padding-left: 1.125rem;
}

/* ── Pasos de aprobación ──────────────────────────────────────────────────── */
.k-pasos {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 20px;
  box-shadow: var(--ka-shadow-card-sm);
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0.5rem;
}

.k-paso {
  border-radius: 14px;
  color: var(--k-ink-muted);
  flex: 1 1 11rem;
  padding: 0.625rem 0.875rem;
}

.k-paso__orden {
  display: block;
  font-size: var(--k-txt-micro);
  font-weight: var(--k-peso-audaz);
  letter-spacing: var(--k-tracking-versal);
  text-transform: uppercase;
}

.k-paso__nombre {
  display: block;
  font-size: var(--k-txt-sm);
  margin-top: 0.125rem;
}

.k-paso[aria-current="step"] {
  background: #EFF6FF;
  color: var(--k-ink);
}

.k-paso[aria-current="step"] .k-paso__orden {
  color: #0284C7;
}

.k-paso[aria-current="step"] .k-paso__nombre {
  font-weight: var(--k-peso-audaz);
}

.k-paso[data-hecho] .k-paso__orden {
  color: var(--ka-pastel-indigo-fg);
}

/* ── Paginación y Estados vacíos ──────────────────────────────────────────── */
.k-paginacion {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.875rem;
  padding: 0.25rem 0.25rem 0;
}

.k-paginacion__rango {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-medio);
}

.k-paginacion__controles {
  display: flex;
  gap: 0.375rem;
  margin-left: auto;
}

.k-vacio {
  align-items: center;
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-tarjeta);
  box-shadow: var(--ka-shadow-card);
  color: var(--k-ink-muted);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: var(--k-e12) var(--k-e6);
  text-align: center;
}

.k-vacio__titulo {
  color: var(--k-ink);
  font-family: var(--k-font-display);
  font-size: var(--k-txt-lg);
  font-weight: var(--k-peso-fuerte);
  margin: 0;
}

.k-vacio__nota {
  font-size: var(--k-txt-sm);
  margin: 0;
  max-width: 34rem;
}

.k-vacio .k-ico {
  color: #6366F1;
}

/* ── Modales HTMX flotantes ───────────────────────────────────────────────── */
.k-modal-fondo {
  align-items: center;
  backdrop-filter: blur(4px);
  background: var(--k-velo);
  display: flex;
  inset: 0;
  justify-content: center;
  overflow-y: auto;
  padding: var(--k-e6) var(--k-e4);
  position: fixed;
  z-index: var(--k-z-modal);
}

.k-modal {
  background: #FFFFFF;
  border: 1px solid var(--ka-card-border);
  border-radius: 26px;
  box-shadow: var(--ka-shadow-modal);
  max-width: 34rem;
  overflow: visible;
  width: 100%;
}

.k-modal--medio {
  max-width: 40rem;
}

.k-modal--ancho {
  max-width: 46.25rem;
}

.k-modal__cabecera {
  align-items: center;
  border-bottom: 1px solid var(--k-rule-soft);
  border-radius: 25px 25px 0 0;
  display: flex;
  gap: var(--k-e3);
  padding: 1.125rem 1.5rem;
}

.k-modal__titulo {
  font-family: var(--k-font-display);
  font-size: var(--k-txt-lg);
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.015em;
  margin: 0;
}

.k-modal__cerrar {
  margin-left: auto;
}

.k-modal__cuerpo {
  padding: 1.25rem 1.5rem;
}

.k-modal__pie {
  align-items: center;
  background: #F8FBFF;
  border-radius: 0 0 25px 25px;
  border-top: 1px solid var(--k-rule-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  padding: 0.875rem 1.5rem;
}

.k-modal__pie--separado {
  justify-content: space-between;
}

/* ── Iconos y estados HTMX ────────────────────────────────────────────────── */
.k-ico {
  fill: none;
  flex: none;
  height: var(--k-ico-base);
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: var(--k-ico-trazo);
  width: var(--k-ico-base);
}

.k-ico--sm {
  height: var(--k-ico-sm);
  width: var(--k-ico-sm);
}

.k-ico--lg {
  height: var(--k-ico-lg);
  width: var(--k-ico-lg);
}

.k-ico--linea {
  vertical-align: -0.15em;
}

.htmx-request .k-ico--girando,
.k-ico--girando {
  animation: k-girar 700ms linear infinite;
}

@keyframes k-girar {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .k-ico--girando {
    animation: none;
  }
}

.k-cargando {
  display: none;
}

.htmx-request .k-cargando,
.htmx-request.k-cargando {
  display: inline-flex;
}

.htmx-request .k-tabla tbody {
  opacity: 0.55;
  transition: opacity var(--k-dur-normal) var(--k-salida);
}

/* ═══════════════════════════════════════════════════════════════════════════
   SPEC 006 — Controles Interactivos Nativos Aurora (UX-G1 .. UX-G5) y Vistas
   ═══════════════════════════════════════════════════════════════════════════ */

.k-aviso--exito {
  background: #ECFDF5;
  border-color: #A7F3D0;
}

.k-aviso--exito .k-ico {
  color: #047857;
}

/* ── UX-G1: Stepper en formularios largos y Pestañas Segmentadas ──────────── */
button.k-secciones-nav__enlace {
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: var(--k-fuente);
}

.k-secciones-nav__enlace {
  gap: 0.375rem;
  transition:
    background-color var(--k-dur-rapida) var(--k-salida),
    color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-secciones-nav__enlace--activo,
.k-secciones-nav__enlace--activa {
  background: #FFFFFF;
  box-shadow:
    0 4px 14px rgba(36, 59, 107, 0.08),
    0 1px 2px rgba(15, 23, 42, 0.04);
  color: var(--k-ink);
  font-weight: var(--k-peso-audaz);
}

.k-secciones-nav__enlace--activo::before,
.k-secciones-nav__enlace--activa::before {
  background: var(--ka-grad-aurora);
  border-radius: var(--k-radio-pildora);
  content: "";
  flex-shrink: 0;
  height: 0.4375rem;
  width: 0.4375rem;
}

.k-secciones-nav__enlace--error {
  background: #FFF1F7;
  color: var(--ka-pastel-rose-fg);
}

.k-paso-error-badge {
  align-items: center;
  background: var(--ka-pastel-rose-fg);
  border-radius: var(--k-radio-pildora);
  color: #FFFFFF;
  display: inline-flex;
  font-size: 0.65625rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  height: 1.125rem;
  justify-content: center;
  min-width: 1.125rem;
  padding-inline: 0.3125rem;
}

.k-stepper-pie {
  align-items: center;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--ka-card-border);
  border-radius: 18px;
  box-shadow: var(--ka-shadow-card-sm);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: 0.625rem 0.875rem;
}

.k-stepper-pie__estado {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.02em;
}

.k-secciones-nav--tabs {
  background: rgba(238, 243, 249, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.96);
  border-radius: 18px;
  box-shadow:
    inset 0 1px 2px rgba(15, 23, 42, 0.03),
    var(--ka-shadow-card-sm);
  gap: 0.25rem;
  margin-bottom: 1rem;
  padding: 0.3125rem;
}

.k-secciones-nav--tabs .k-secciones-nav__enlace {
  border-radius: 14px;
  flex: 1 1 auto;
  font-size: 0.78125rem;
  min-height: 2.5rem;
  padding: 0.375rem 0.75rem;
}

.k-tab__badge {
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  padding: 0.0625rem 0.4375rem;
}

.k-tab__badge--alerta {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

/* ── UX-G4: Datepicker Aurora (.k-datepicker + .k-calendario) ─────────────── */
.k-datepicker {
  position: relative;
  width: 100%;
}

.k-datepicker--abierto {
  z-index: 35;
}

.k-datepicker__control {
  align-items: stretch;
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  display: flex;
  min-height: var(--k-control-alto);
  overflow: hidden;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-datepicker__control:hover {
  border-color: var(--ka-ice-border);
}

.k-datepicker__control:focus-within,
.k-datepicker--abierto .k-datepicker__control {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
}

.k-datepicker__visual {
  background: transparent;
  border: none;
  border-radius: 0;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.45rem 0.75rem;
}

.k-datepicker__visual:focus,
.k-datepicker__visual:focus-visible {
  box-shadow: none;
  outline: none;
}

.k-datepicker__boton {
  align-items: center;
  background: linear-gradient(180deg, #F0F9FF 0%, #E0F2FE 100%);
  border: none;
  border-left: 1px solid #DBEAFE;
  color: #0284C7;
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
  justify-content: center;
  min-width: 2.75rem;
  padding-inline: 0.75rem;
  transition: background-color var(--k-dur-rapida) var(--k-salida);
}

.k-datepicker__boton:hover:not(:disabled) {
  background: #E0F2FE;
  color: #0369A1;
}

.k-datepicker__boton:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.k-datepicker__domingo {
  background: var(--ka-pastel-amber-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-amber-fg);
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.3125rem;
  padding: 0.125rem 0.5625rem;
}

.k-calendario {
  background: #FFFFFF;
  border: 1px solid #E0F2FE;
  border-radius: 20px;
  box-shadow:
    0 20px 44px rgba(15, 23, 42, 0.14),
    0 4px 12px rgba(14, 165, 233, 0.08);
  left: 0;
  margin-top: 0.4rem;
  padding: 0.8125rem;
  position: absolute;
  top: 100%;
  width: 18.25rem;
  z-index: 60;
}

.k-calendario--derecha {
  left: auto;
  right: 0;
}

.k-calendario__cabecera {
  align-items: center;
  display: flex;
  gap: 0.375rem;
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-calendario__nav {
  align-items: center;
  background: #F8FBFF;
  border: 1px solid var(--k-rule-soft);
  border-radius: 10px;
  color: var(--k-ink-2);
  cursor: pointer;
  display: inline-flex;
  height: 2.125rem;
  justify-content: center;
  padding: 0;
  width: 2.125rem;
}

.k-calendario__nav:hover {
  background: #EFF6FF;
  color: #0284C7;
}

.k-calendario__selectores {
  display: flex;
  flex: 1 1 auto;
  gap: 0.3125rem;
}

.k-calendario__select {
  background: #F8FBFF;
  border: 1px solid var(--k-rule);
  border-radius: 10px;
  color: var(--k-ink);
  flex: 1 1 auto;
  font-family: var(--k-fuente);
  font-size: 0.78125rem;
  font-weight: var(--k-peso-fuerte);
  height: 2.125rem;
  min-width: 0;
  padding: 0 0.375rem;
}

.k-calendario__semana {
  color: var(--k-ink-muted);
  display: grid;
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 0.25rem;
  text-align: center;
}

.k-calendario__sem-domingo {
  color: var(--ka-pastel-amber-fg);
}

.k-calendario__dias {
  display: grid;
  gap: 2px;
  grid-template-columns: repeat(7, 1fr);
}

.k-calendario__vacio {
  height: 2.125rem;
}

.k-calendario__dia {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: 10px;
  color: var(--k-ink);
  cursor: pointer;
  display: inline-flex;
  font-size: 0.8125rem;
  font-weight: var(--k-peso-medio);
  height: 2.125rem;
  justify-content: center;
  padding: 0;
  width: 100%;
}

.k-calendario__dia:hover:not(:disabled) {
  background: #EFF6FF;
  color: #0284C7;
}

.k-calendario__dia--domingo {
  background: #FFFBEB;
  color: var(--ka-pastel-amber-fg);
  font-weight: var(--k-peso-fuerte);
}

.k-calendario__dia--hoy {
  box-shadow: inset 0 0 0 1.5px #38BDF8;
  font-weight: var(--k-peso-audaz);
}

.k-calendario__dia--activo,
.k-calendario__dia--activo:hover:not(:disabled) {
  background: var(--ka-grad-aurora);
  box-shadow: 0 4px 10px rgba(99, 102, 241, 0.28);
  color: #FFFFFF;
  font-weight: var(--k-peso-audaz);
}

.k-calendario__dia:disabled {
  color: #CBD5E1;
  cursor: not-allowed;
  opacity: 0.55;
}

.k-calendario__pie {
  border-top: 1px solid var(--k-rule-soft);
  display: flex;
  justify-content: space-between;
  margin-top: 0.5rem;
  padding-top: 0.4375rem;
}

.k-calendario__atajo {
  background: transparent;
  border: none;
  border-radius: 8px;
  color: #0284C7;
  cursor: pointer;
  font-family: var(--k-fuente);
  font-size: 0.75rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.25rem 0.5rem;
}

.k-calendario__atajo:hover {
  background: #F0F9FF;
}

.k-calendario__atajo--tenue {
  color: var(--k-ink-muted);
}

/* ── UX-G5: Selector desplegable nativo Aurora (.k-select) ────────────────── */
.k-select {
  position: relative;
  width: 100%;
}

.k-select--abierto {
  z-index: 35;
}

.k-select__trigger {
  align-items: center;
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  color: var(--k-ink);
  cursor: pointer;
  display: flex;
  font-family: var(--k-fuente);
  font-size: 0.9375rem;
  font-weight: var(--k-peso-medio);
  gap: 0.5rem;
  justify-content: space-between;
  min-height: var(--k-control-alto);
  padding: 0.45rem 0.8125rem;
  text-align: left;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
  width: 100%;
}

.k-select__trigger:hover:not(:disabled) {
  border-color: var(--ka-ice-border);
}

.k-select--abierto .k-select__trigger,
.k-select__trigger:focus {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
  outline: none;
}

.k-select__trigger:disabled {
  background: var(--ka-surface-subtle);
  color: var(--k-ink-muted);
  cursor: not-allowed;
}

.k-select__texto {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.k-select__texto--vacio {
  color: var(--k-ink-muted);
}

.k-select__flecha {
  color: var(--k-ink-muted);
  transition: transform var(--k-dur-rapida) var(--k-salida);
}

.k-select--abierto .k-select__flecha {
  color: #0284C7;
  transform: rotate(180deg);
}

.k-select__menu,
.k-combobox__menu {
  background: #FFFFFF;
  border: 1px solid #E0F2FE;
  border-radius: 16px;
  box-shadow:
    0 18px 40px rgba(15, 23, 42, 0.14),
    0 3px 10px rgba(14, 165, 233, 0.08);
  left: 0;
  margin-top: 0.35rem;
  min-width: 100%;
  overflow: hidden;
  padding: 0.35rem;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 60;
}

.k-select__buscador {
  border-bottom: 1px solid var(--k-rule-soft);
  margin-bottom: 0.25rem;
  padding: 0.25rem 0.25rem 0.4rem;
}

.k-select__filtro {
  background: #F8FBFF;
  border: 1px solid var(--k-rule);
  border-radius: 10px;
  color: var(--k-ink);
  font-family: var(--k-fuente);
  font-size: 0.84375rem;
  min-height: 2.25rem;
  padding: 0.35rem 0.625rem;
  width: 100%;
}

.k-select__filtro:focus {
  border-color: var(--ka-focus-ring);
  outline: none;
}

.k-select__lista,
.k-combobox__menu {
  max-height: 15.5rem;
  overflow-y: auto;
}

.k-select__grupo {
  color: var(--k-ink-muted);
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: var(--k-tracking-versal);
  padding: 0.45rem 0.625rem 0.2rem;
  text-transform: uppercase;
}

.k-select__opcion,
.k-combobox__opcion {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: 11px;
  color: var(--k-ink);
  cursor: pointer;
  display: flex;
  font-family: var(--k-fuente);
  font-size: 0.84375rem;
  font-weight: var(--k-peso-medio);
  gap: 0.5rem;
  justify-content: space-between;
  min-height: 2.375rem;
  padding: 0.4rem 0.6875rem;
  text-align: left;
  width: 100%;
}

.k-select__opcion:hover:not(:disabled),
.k-select__opcion:focus-visible,
.k-combobox__opcion:hover:not(:disabled),
.k-combobox__opcion:focus-visible {
  background: #F0F9FF;
  color: #0284C7;
  outline: none;
}

.k-select__opcion--activa,
.k-combobox__opcion--activa {
  background: #EFF6FF;
  color: #0369A1;
  font-weight: var(--k-peso-audaz);
}

.k-select__opcion:disabled,
.k-combobox__opcion:disabled {
  color: var(--k-ink-muted);
  cursor: not-allowed;
  opacity: 0.52;
}

.k-select__check {
  color: #0284C7;
}

.k-select__vacio {
  color: var(--k-ink-muted);
  font-size: var(--k-txt-xs);
  padding: 0.75rem;
  text-align: center;
}

/* ── UX-G2: Combobox buscable local y CIIU (.k-combobox) ──────────────────── */
.k-combobox {
  position: relative;
  width: 100%;
}

.k-combobox--abierto {
  z-index: 35;
}

.k-combobox__barra {
  align-items: center;
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  display: flex;
  min-height: var(--k-control-alto);
  padding-inline: 0.75rem 0.375rem;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-combobox__barra:hover {
  border-color: var(--ka-ice-border);
}

.k-combobox--abierto .k-combobox__barra,
.k-combobox__barra:focus-within {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
}

.k-combobox__icono {
  color: var(--k-ink-muted);
  margin-right: 0.5rem;
}

.k-combobox__input {
  background: transparent;
  border: none;
  border-radius: 0;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  padding: 0.45rem 0.25rem;
}

.k-combobox__input:focus,
.k-combobox__input:focus-visible {
  box-shadow: none;
  outline: none;
}

.k-combobox__limpiar {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: 8px;
  color: var(--k-ink-muted);
  cursor: pointer;
  display: inline-flex;
  height: 2rem;
  justify-content: center;
  padding: 0;
  width: 2rem;
}

.k-combobox__limpiar:hover {
  background: var(--ka-surface-subtle);
  color: var(--ka-pastel-rose-fg);
}

.k-chip--unico {
  background: #E0F2FE;
  color: #0369A1;
}

/* Estados inválidos sobre controles enriquecidos */
.k-campo[data-invalido] .k-datepicker__control,
.k-campo[data-invalido] .k-select__trigger,
.k-campo[data-invalido] .k-combobox__barra {
  background: #FFFBFD;
  border-color: var(--ka-error-border);
  border-width: 1.5px;
  box-shadow: 0 0 0 3px rgba(244, 114, 182, 0.14);
}

.k-campo[data-invalido] .k-datepicker__visual,
.k-campo[data-invalido] .k-combobox__input {
  background: transparent;
  border: none;
  box-shadow: none;
}

@media (max-width: 1279.98px) {
  .k-select__trigger,
  .k-datepicker__visual,
  .k-combobox__input,
  .k-select__filtro {
    font-size: 1rem;
    min-height: 2.75rem;
  }
}

/* ── Atajos rápidos de monto en cobro y visor de contraseña ───────────────── */
.k-atajos-monto {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-top: 0.4375rem;
}

.k-atajo-monto {
  align-items: center;
  background: #F0F9FF;
  border: 1px solid #BAE6FD;
  border-radius: var(--k-radio-pildora);
  color: #0369A1;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--k-fuente);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  gap: 0.25rem;
  min-height: 2rem;
  padding: 0.2rem 0.6875rem;
  transition: background-color var(--k-dur-rapida) var(--k-salida);
}

.k-atajo-monto:hover {
  background: #E0F2FE;
}

.k-control-icono {
  align-items: center;
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: var(--k-radio-control);
  display: flex;
  min-height: 2.875rem;
  padding-inline: 0.8125rem 0.25rem;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-control-icono:hover {
  border-color: var(--ka-ice-border);
}

.k-control-icono:focus-within {
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
}

.k-control-icono__izq {
  color: var(--k-ink-muted);
  flex-shrink: 0;
  height: 1.0625rem;
  margin-right: 0.625rem;
  width: 1.0625rem;
}

.k-control-icono:focus-within .k-control-icono__izq {
  color: #0284C7;
}

.k-control-icono__input {
  background: transparent;
  border: none;
  color: var(--k-ink);
  flex: 1 1 auto;
  font-family: var(--k-fuente);
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
  min-height: 2.75rem;
  min-width: 0;
  outline: none;
  padding: 0 0.5rem 0 0;
}

.k-control-icono__input:disabled {
  color: var(--k-ink-muted);
  cursor: not-allowed;
}

.k-control-icono__input:focus-visible {
  box-shadow: none;
}

.k-visor-clave {
  align-items: center;
  background: transparent;
  border: none;
  border-radius: 10px;
  color: var(--k-ink-muted);
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
  height: 2.75rem;
  justify-content: center;
  padding: 0;
  width: 2.75rem;
}

.k-visor-clave:hover:not(:disabled) {
  background: var(--ka-surface-subtle);
  color: var(--k-ink);
}

.k-visor-clave:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.k-aviso-mayus {
  background: var(--ka-pastel-amber-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-amber-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.3125rem;
  padding: 0.15rem 0.625rem;
}

@media (max-width: 1279.98px) {
  .k-control-icono__input {
    font-size: 1rem;
  }
}

/* ── Pantalla #1: Ingreso Pórtico Dividido Bóveda + Formulario (Opción B) ── */
.k-login-lienzo {
  background:
    radial-gradient(46% 42% at 14% 16%, rgba(186, 230, 253, 0.30) 0%, rgba(255, 255, 255, 0) 74%),
    var(--ka-canvas-bg);
  display: grid;
  min-height: 100vh;
  padding: 2.25rem 1.5rem;
  place-items: center;
  width: 100%;
}

@media (max-width: 767.98px) {
  .k-login-lienzo {
    padding: 1.25rem 0.875rem;
  }
}

.k-login-b {
  align-items: stretch;
  background: var(--ka-card-solid);
  border: 1px solid var(--ka-card-border);
  border-radius: 28px;
  box-shadow:
    0 24px 56px rgba(79, 108, 166, 0.12),
    0 4px 14px rgba(79, 108, 166, 0.04);
  display: grid;
  grid-template-columns: minmax(21rem, 0.96fr) minmax(23rem, 1.04fr);
  max-width: 56rem;
  overflow: hidden;
  padding: 0.5625rem;
  width: 100%;
}

.k-login-b__boveda {
  background: var(--ka-grad-boveda);
  border-radius: 23px;
  box-shadow: var(--ka-shadow-boveda);
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: 1.875rem 1.875rem 1.5rem;
  position: relative;
}

.k-login-b__boveda::before {
  background: rgba(255, 255, 255, 0.13);
  border-radius: 50%;
  bottom: -76px;
  content: "";
  height: 220px;
  pointer-events: none;
  position: absolute;
  right: -58px;
  width: 220px;
}

.k-login-b__boveda::after {
  background: rgba(255, 255, 255, 0.10);
  border-radius: 50%;
  content: "";
  height: 132px;
  pointer-events: none;
  position: absolute;
  right: 22px;
  top: -46px;
  width: 132px;
}

.k-login-b__boveda-sup,
.k-login-b__boveda-med,
.k-login-b__boveda-pie {
  position: relative;
  z-index: 2;
}

.k-login-b__boveda-sup {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: space-between;
}

.k-marca-boveda {
  align-items: center;
  color: #FFFFFF;
  display: inline-flex;
  gap: 0.6875rem;
  text-decoration: none;
}

.k-marca-boveda__logo {
  align-items: center;
  background: #FFFFFF;
  border-radius: 13px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);
  color: #4338CA;
  display: inline-flex;
  flex-shrink: 0;
  font-family: var(--k-font-display);
  font-size: 1.3125rem;
  font-weight: var(--k-peso-audaz);
  height: 2.5rem;
  justify-content: center;
  width: 2.5rem;
}

.k-marca-boveda__nombre {
  color: #FFFFFF;
  font-family: var(--k-font-display);
  font-size: 1.4375rem;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.02em;
  line-height: 1.05;
  text-shadow: var(--ka-white-scrim);
}

.k-pildora-boveda {
  align-items: center;
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--k-radio-pildora);
  color: #FFFFFF;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.35rem;
  padding: 0.28rem 0.72rem;
  text-shadow: var(--ka-white-scrim);
  white-space: nowrap;
}

.k-login-b__boveda-med {
  margin: 1.625rem 0 1.5rem;
}

.k-login-b__titular {
  color: #FFFFFF;
  font-family: var(--k-font-display);
  font-size: 1.6875rem;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.022em;
  line-height: 1.18;
  margin: 0 0 1.25rem;
  max-width: 22rem;
  text-shadow: var(--ka-white-scrim);
}

.k-login-b__hitos {
  display: flex;
  flex-direction: column;
  gap: 0.5625rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.k-login-hito {
  align-items: center;
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, 0.19);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 15px;
  color: #FFFFFF;
  display: flex;
  font-size: 0.78125rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.625rem;
  line-height: 1.3;
  padding: 0.5625rem 0.8125rem;
  text-shadow: var(--ka-white-scrim);
}

.k-login-hito__ico {
  align-items: center;
  background: rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  color: #FFFFFF;
  display: inline-flex;
  flex-shrink: 0;
  height: 1.75rem;
  justify-content: center;
  width: 1.75rem;
}

.k-login-b__boveda-pie {
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  color: #FFFFFF;
  display: flex;
  font-size: 0.71875rem;
  font-weight: var(--k-peso-medio);
  gap: 0.4375rem;
  opacity: 0.94;
  padding-top: 0.875rem;
  text-shadow: var(--ka-white-scrim);
}

.k-login-b__panel-form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem 2.125rem;
}

.k-login-b__cabecera-form {
  align-items: flex-start;
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  margin-bottom: 1.375rem;
}

.k-login-b__titulo-form {
  color: var(--k-ink);
  font-family: var(--k-font-display);
  font-size: 1.5rem;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0;
}

.k-login-b__subtitulo-form {
  color: var(--k-ink-muted);
  font-size: 0.84375rem;
  font-weight: var(--k-peso-medio);
  margin: 0.2rem 0 0;
}

.k-login-b__form {
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
  margin: 0;
}

.k-login-campo {
  margin-bottom: 1rem;
}

.k-login-campo:last-child {
  margin-bottom: 0;
}

.k-login-campo__cabecera {
  align-items: baseline;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.375rem;
}

.k-login-campo__cabecera .k-campo__label {
  margin-bottom: 0;
}

.k-login-campo__meta {
  color: var(--ka-ink-subtle);
  font-size: 0.6875rem;
  font-weight: var(--k-peso-medio);
}

.k-login-campo[data-invalido] .k-control-icono {
  background: #FFFBFD;
  border-color: var(--ka-error-border);
  border-width: 1.5px;
  box-shadow: 0 0 0 3px rgba(244, 114, 182, 0.14);
}

.k-login-b__ayuda {
  align-items: center;
  color: var(--k-ink-muted);
  display: flex;
  font-size: 0.71875rem;
  gap: 0.35rem;
  margin-top: 0.375rem;
}

.k-login-b__ayuda .k-ico {
  color: #0284C7;
  height: 0.8125rem;
  width: 0.8125rem;
}

.k-btn-login {
  font-size: 0.9375rem;
  gap: 0.5rem;
  min-height: 2.9375rem;
  justify-content: center;
  width: 100%;
}

.k-nota-seguridad {
  align-items: center;
  background: #F0F9FF;
  border-radius: 16px;
  color: var(--k-ink-2);
  display: flex;
  font-size: 0.75rem;
  gap: 0.625rem;
  line-height: 1.45;
  margin-top: 1.1875rem;
  padding: 0.6875rem 0.875rem;
}

.k-nota-seguridad__ico {
  align-items: center;
  background: #E0F2FE;
  border-radius: 10px;
  color: #0284C7;
  display: inline-flex;
  flex-shrink: 0;
  height: 1.75rem;
  justify-content: center;
  width: 1.75rem;
}

.k-nota-seguridad__fuerte {
  color: #0369A1;
  font-weight: var(--k-peso-audaz);
}

@media (min-width: 768px) and (max-width: 1279.98px) {
  .k-login-b {
    grid-template-columns: 1fr;
    max-width: 41.5rem;
    padding: 0.5rem;
  }

  .k-login-b__boveda {
    padding: 1.375rem 1.625rem 1.25rem;
  }

  .k-login-b__boveda-med {
    margin: 1rem 0;
  }

  .k-login-b__titular {
    font-size: 1.4375rem;
    margin-bottom: 0.9375rem;
    max-width: none;
  }

  .k-login-b__hitos {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .k-login-hito {
    align-items: flex-start;
    flex-direction: column;
    font-size: 0.71875rem;
    gap: 0.4375rem;
    padding: 0.625rem 0.6875rem;
  }

  .k-login-b__panel-form {
    padding: 1.625rem 1.875rem 1.5rem;
  }
}

@media (max-width: 767.98px) {
  .k-login-b {
    border-radius: 24px;
    grid-template-columns: 1fr;
    max-width: 100%;
    padding: 0.375rem;
  }

  .k-login-b__boveda {
    border-radius: 20px;
    padding: 1.1875rem 1.125rem 1rem;
  }

  .k-login-b__boveda-med {
    margin: 0.875rem 0;
  }

  .k-login-b__titular {
    font-size: 1.1875rem;
    margin-bottom: 0.75rem;
  }

  .k-login-b__panel-form {
    padding: 1.25rem 1.0625rem 1.125rem;
  }
}

/* ── Pantalla #2: Centro de Mando Ejecutivo Dashboard (Opción B) ──────────── */
@media (min-width: 1280px) {
  .k-bento-superior--dashboard {
    grid-template-columns: minmax(18rem, 0.98fr) minmax(23.5rem, 1.48fr) minmax(18.25rem, 1.04fr);
  }
}

@media (min-width: 768px) and (max-width: 1279.98px) {
  .k-bento-superior > .k-sankey-card {
    order: 3;
  }

  .k-sankey-escritorio {
    max-height: 11rem;
  }
}

.k-sankey-escritorio text {
  font-family: var(--k-fuente);
  font-feature-settings: "tnum" 1, "cv05" 1;
  font-variant-numeric: tabular-nums;
}

.k-sankey-movil__resumen {
  align-items: center;
  background: #F0F9FF;
  border-radius: 11px;
  color: #0369A1;
  display: flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  justify-content: space-between;
  padding: 0.375rem 0.625rem;
}

.k-contexto-pulso {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem 0.625rem;
  margin-top: 0.25rem;
}

.k-contexto-pulso .k-pantalla__contexto {
  margin: 0;
}

.k-pildora-pulso {
  align-items: center;
  background: var(--ka-pastel-rose-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-rose-fg);
  display: inline-flex;
  font-size: 0.71875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.35rem;
  padding: 0.2rem 0.6875rem;
  white-space: nowrap;
}

.k-pildora-pulso--positivo {
  background: var(--ka-pastel-cyan-bg);
  color: var(--ka-pastel-cyan-fg);
}

.k-pildora-pulso::before {
  background: currentColor;
  border-radius: 50%;
  content: "";
  height: 0.375rem;
  width: 0.375rem;
}

.k-btn--atajo {
  background: rgba(255, 255, 255, 0.88);
  border-color: var(--ka-soft-border);
  color: var(--ka-pastel-slate-fg);
}

.k-btn--atajo:hover {
  background: #FFFFFF;
  border-color: var(--ka-ice-border);
  color: var(--k-ink);
}

.k-cartera-card--ejecutiva {
  gap: 0.5625rem;
}

.k-cartera-doble {
  align-items: flex-end;
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
}

.k-cartera-doble__ops {
  color: #0EA5E9;
  display: block;
  font-size: 1.75rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: -0.025em;
  line-height: 1;
}

.k-cartera-doble__ops-lbl {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  font-weight: var(--k-peso-medio);
  margin-top: 0.2rem;
  white-space: nowrap;
}

.k-cartera-doble__der {
  border-left: 1px solid var(--k-rule-soft);
  padding-left: 0.75rem;
  text-align: right;
}

.k-cartera-doble__cap-lbl {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.k-cartera-doble__cap-val {
  color: var(--k-ink);
  display: block;
  font-size: 1.15625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: -0.02em;
  line-height: 1.18;
  margin-top: 0.125rem;
}

.k-salud-cartera {
  background: #F8FBFF;
  border-radius: 13px;
  padding: 0.45rem 0.625rem;
}

.k-salud-cartera__svg {
  border-radius: var(--k-radio-pildora);
  display: block;
  height: 0.4375rem;
  overflow: hidden;
  width: 100%;
}

.k-salud-cartera__leyenda {
  align-items: center;
  display: flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  justify-content: space-between;
  margin-top: 0.35rem;
}

.k-salud-tag {
  align-items: center;
  display: inline-flex;
  gap: 0.3rem;
}

.k-salud-tag::before {
  border-radius: 50%;
  content: "";
  height: 0.4rem;
  width: 0.4rem;
}

.k-salud-tag--dia {
  color: #0E7490;
}

.k-salud-tag--dia::before {
  background: #06B6D4;
}

.k-salud-tag--mora {
  color: var(--ka-pastel-rose-fg);
}

.k-salud-tag--mora::before {
  background: #F472B6;
}

.k-barra-triage {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: space-between;
  margin-bottom: 0.875rem;
}

.k-barra-triage__filtros {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.k-filtro-rapido {
  align-items: center;
  background: #F8FBFF;
  border: 1px solid var(--ka-soft-border);
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  flex: 0 1 16.5rem;
  gap: 0.4375rem;
  margin: 0;
  min-height: 2.25rem;
  padding: 0.25rem 0.8125rem;
  transition:
    border-color var(--k-dur-rapida) var(--k-salida),
    box-shadow var(--k-dur-rapida) var(--k-salida);
}

.k-filtro-rapido:focus-within {
  background: #FFFFFF;
  border-color: var(--ka-focus-ring);
  box-shadow: 0 0 0 3px var(--ka-focus-halo);
}

.k-filtro-rapido .k-ico {
  color: var(--k-ink-muted);
  height: 0.875rem;
  width: 0.875rem;
}

.k-filtro-rapido__input {
  background: transparent;
  border: none;
  color: var(--k-ink);
  font-family: var(--k-fuente);
  font-size: 0.78125rem;
  min-width: 0;
  outline: none;
  padding: 0;
  width: 100%;
}

.k-vence-celda {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.k-mora-edad {
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  line-height: 1.2;
  padding: 0.15rem 0.5rem;
  white-space: nowrap;
}

.k-mora-edad--atraso {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-mora-edad--hoy {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-btn--cobrar {
  font-size: 0.78125rem;
  gap: 0.35rem;
  min-height: 2.25rem;
  padding-inline: 0.8125rem;
}

.k-acciones-fila {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  justify-content: flex-end;
}

.k-meta-movil,
.k-solo-movil-estado {
  display: none;
}

@media (max-width: 767.98px) {
  .k-filtro-rapido {
    flex: 1 1 100%;
    min-height: 2.75rem;
  }

  .k-filtro-rapido__input {
    font-size: 1rem;
  }

  .k-meta-movil {
    color: var(--k-ink-2);
    display: block;
    font-size: 0.65625rem;
    font-weight: var(--k-peso-fuerte);
    margin-top: 0.125rem;
  }

  .k-solo-movil-estado {
    display: inline-flex;
  }

  .k-tabla--dashboard {
    min-width: 0;
  }
}

/* ── #5 Ficha de Cliente (Opción A: Cabecera rápida + 4 KPIs + 4 Pestañas) ─ */
.k-badges-fila {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.k-pildora-credito {
  align-items: center;
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3125rem;
  padding: 0.25rem 0.625rem;
  white-space: nowrap;
}

.k-pildora-alerta {
  align-items: center;
  background: var(--ka-pastel-amber-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-amber-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3125rem;
  padding: 0.25rem 0.625rem;
  white-space: nowrap;
}

.k-pildora-alerta--critica {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-pildora-alerta .k-ico {
  height: 0.8125rem;
  width: 0.8125rem;
}

.k-rol-badge {
  align-items: center;
  border-radius: var(--k-radio-pildora);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.2rem 0.6rem;
  white-space: nowrap;
}

.k-rol-badge--titular {
  background: #E0F2FE;
  color: #0369A1;
}

.k-rol-badge--codeudor {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-rol-badge--garante {
  background: var(--ka-pastel-violet-bg);
  color: var(--ka-pastel-violet-fg);
}

.k-op-top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.k-rol-inline-movil,
.k-sub-movil {
  display: none;
}

.k-cabecera-ficha-a {
  margin-bottom: 0.875rem;
}

.k-cabecera-ficha-a__top {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: space-between;
}

.k-cabecera-ficha-a__identidad {
  flex: 1 1 28rem;
  min-width: 0;
}

.k-eyebrow-fila {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.25rem;
}

.k-eyebrow-fila .k-etiqueta {
  margin-bottom: 0;
}

.k-meta-franja {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem;
  margin-top: 0.625rem;
}

.k-meta-chip {
  align-items: center;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-pildora);
  box-shadow: var(--ka-shadow-card-sm);
  color: var(--k-ink-2);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-medio);
  gap: 0.375rem;
  padding: 0.3125rem 0.75rem;
}

.k-meta-chip .k-ico {
  color: #0284C7;
  height: 0.875rem;
  width: 0.875rem;
}

.k-meta-chip strong {
  color: var(--k-ink);
  font-weight: var(--k-peso-fuerte);
}

.k-indicadores--ficha-a {
  gap: 0.875rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0.875rem;
}

.k-indicadores--ficha-a .k-indicador {
  border-radius: 20px;
  padding: 0.875rem 1.125rem;
}

.k-indicadores--ficha-a .k-indicador__cifra {
  font-size: 1.5625rem;
  margin-top: 0.25rem;
}

.k-indicadores--ficha-a .k-indicador__nota {
  margin-top: 0.25rem;
}

.k-tab__conteo {
  background: rgba(99, 102, 241, 0.11);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  padding: 0.0625rem 0.4375rem;
}

.k-secciones-nav__enlace--activo .k-tab__conteo,
.k-secciones-nav__enlace--activa .k-tab__conteo {
  background: #E0F2FE;
  color: #0369A1;
}

.k-pildora-info {
  align-items: center;
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  padding: 0.2rem 0.625rem;
  white-space: nowrap;
}

.k-pildora-info--menta {
  background: var(--ka-pastel-mint-bg);
  color: var(--ka-pastel-mint-fg);
}

.k-pildora-info--alerta {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-seccion-ficha--compacta {
  margin-bottom: 0.875rem;
  padding: 0.9375rem 1.25rem;
}

.k-seccion-ficha--compacta .k-seccion-tabla__cabecera {
  margin-bottom: 0.375rem;
}

.k-seccion-ficha--compacta .k-tabla thead th {
  padding: 0.4375rem 0.625rem;
}

.k-seccion-ficha--compacta .k-tabla tbody td {
  height: 2.375rem;
  padding: 0.4375rem 0.625rem;
}

.k-sintesis-grid {
  display: grid;
  gap: 0.875rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.k-tarjeta-sintesis {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  padding: 1rem 1.25rem;
}

.k-tarjeta__cabecera {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.k-tarjeta__cabecera .k-etiqueta {
  margin-bottom: 0;
}

.k-enlace-pestana {
  align-items: center;
  color: #0284C7;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.2rem;
  text-decoration: none;
  white-space: nowrap;
}

.k-enlace-pestana:hover {
  text-decoration: underline;
}

.k-datos-sintesis {
  display: grid;
  gap: 0.625rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0.25rem 0 0;
}

.k-datos-sintesis > div {
  border-bottom: 1px solid var(--k-rule-soft);
  min-width: 0;
  padding-bottom: 0.4375rem;
}

.k-datos-sintesis > div:nth-last-child(-n+2) {
  border-bottom: none;
  padding-bottom: 0;
}

.k-datos-sintesis dt {
  color: var(--k-ink-muted);
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.k-datos-sintesis dd {
  color: var(--k-ink);
  font-size: 0.8125rem;
  font-weight: var(--k-peso-medio);
  line-height: 1.35;
  margin: 0.15rem 0 0;
  overflow-wrap: break-word;
}

.k-datos-sintesis__sub {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  font-weight: var(--k-peso-normal);
  white-space: normal;
}

.k-flujo-bloque {
  background: #F8FBFF;
  border-radius: 16px;
  padding: 0.75rem 0.875rem;
}

.k-flujo-bloque__top {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: 0.25rem 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.4375rem;
}

.k-flujo-barra-svg {
  border-radius: var(--k-radio-pildora);
  display: block;
  height: 0.625rem;
  overflow: hidden;
  width: 100%;
}

.k-flujo-leyenda {
  display: grid;
  gap: 0.375rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.5rem;
}

.k-flujo-pill {
  border-radius: 11px;
  padding: 0.35rem 0.5rem;
}

.k-flujo-pill--disp {
  background: #E0F7FA;
  color: #0E7490;
}

.k-flujo-pill--gasto {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-flujo-pill--cuota {
  background: var(--ka-pastel-rose-bg);
  color: #9D174D;
}

.k-flujo-pill__lbl {
  display: block;
  font-size: 0.59375rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.k-flujo-pill__val {
  display: block;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.0625rem;
}

.k-pasivos-mini {
  margin-top: 0.6875rem;
}

.k-pasivos-mini__cab {
  align-items: center;
  display: flex;
  gap: 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.35rem;
}

.k-pasivos-mini__cab .k-etiqueta {
  margin-bottom: 0;
}

.k-pasivos-mini__lista {
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
}

.k-pasivos-mini__fila {
  align-items: center;
  background: var(--ka-surface-subtle);
  border-radius: 11px;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.78125rem;
  gap: 0.15rem 0.5rem;
  justify-content: space-between;
  padding: 0.375rem 0.6875rem;
}

.k-pasivos-mini__entidad {
  color: var(--k-ink);
  font-weight: var(--k-peso-fuerte);
}

.k-pasivos-mini__montos {
  color: var(--k-ink-2);
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1279.98px) {
  .k-indicadores--ficha-a {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .k-secciones-nav--tabs .k-secciones-nav__enlace {
    font-size: 0.71875rem;
    gap: 0.3rem;
    padding: 0.375rem 0.5rem;
  }
}

@media (max-width: 767.98px) {
  .k-indicadores--ficha-a {
    gap: 0.6875rem;
    grid-template-columns: 1fr;
  }

  .k-secciones-nav--tabs {
    display: grid;
    gap: 0.3125rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .k-secciones-nav--tabs .k-secciones-nav__enlace {
    font-size: 0.6875rem;
    gap: 0.3rem;
    justify-content: flex-start;
    line-height: 1.2;
    min-height: 2.625rem;
    min-width: 0;
    padding: 0.375rem 0.5625rem;
    white-space: normal;
  }

  .k-rol-inline-movil {
    display: inline-flex;
  }

  .k-sub-movil {
    color: var(--k-ink-muted);
    display: block;
    font-size: 0.6875rem;
    font-weight: var(--k-peso-normal);
    margin-top: 0.125rem;
    white-space: normal;
  }

  .k-sintesis-grid,
  .k-datos-sintesis {
    grid-template-columns: 1fr;
  }

  .k-datos-sintesis > div:nth-last-child(2) {
    border-bottom: 1px solid var(--k-rule-soft);
    padding-bottom: 0.4375rem;
  }

  .k-seccion-ficha--compacta,
  .k-tarjeta-sintesis {
    padding: 1rem 0.9375rem;
  }

  .k-seccion-ficha--compacta .k-tabla thead th,
  .k-seccion-ficha--compacta .k-tabla tbody td {
    padding-inline: 0.375rem;
  }
}

/* ── #8 Aprobar y Desembolsar Solicitud (Opción B: Comité y Cronograma) ──── */
.k-pildora-esmeralda {
  align-items: center;
  background: #DCFCE7;
  border-radius: var(--k-radio-pildora);
  color: #047857;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.28rem;
  padding: 0.22rem 0.625rem;
  white-space: nowrap;
}

.k-pildora-esmeralda .k-ico {
  height: 0.8125rem;
  width: 0.8125rem;
}

.k-pildora-contrato {
  align-items: center;
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-pildora-condicion {
  align-items: center;
  background: #E0F2FE;
  border-radius: var(--k-radio-pildora);
  color: #0369A1;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-riel-pasos {
  align-items: center;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-pildora);
  box-shadow: var(--ka-shadow-card-sm);
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0.3125rem 0.4375rem;
}

.k-riel-paso {
  align-items: center;
  border-radius: var(--k-radio-pildora);
  color: var(--k-ink-muted);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-fuerte);
  gap: 0.375rem;
  padding: 0.28rem 0.6875rem;
  white-space: nowrap;
}

.k-riel-paso__ind {
  align-items: center;
  background: var(--ka-surface-subtle);
  border-radius: 50%;
  color: var(--k-ink-muted);
  display: inline-flex;
  flex-shrink: 0;
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  height: 1.25rem;
  justify-content: center;
  width: 1.25rem;
}

.k-riel-paso[data-hecho] {
  color: var(--ka-pastel-indigo-fg);
}

.k-riel-paso[data-hecho] .k-riel-paso__ind {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-riel-paso[data-hecho] .k-riel-paso__ind .k-ico {
  height: 0.75rem;
  stroke-width: 2.4;
  width: 0.75rem;
}

.k-riel-paso[aria-current="step"] {
  background: #EFF6FF;
  color: var(--k-ink);
  font-weight: var(--k-peso-audaz);
}

.k-riel-paso[aria-current="step"] .k-riel-paso__ind {
  background: var(--ka-grad-aurora);
  box-shadow: 0 3px 8px rgba(99, 102, 241, 0.28);
  color: #FFFFFF;
}

.k-riel-sep {
  color: #CBD5E1;
  display: inline-flex;
  height: 0.875rem;
  width: 0.875rem;
}

.k-eyebrow-aprobar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.2rem;
}

.k-eyebrow-aprobar .k-etiqueta {
  margin-bottom: 0;
}

.k-cabecera-b {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.k-cabecera-b__izq {
  flex: 1 1 26rem;
  min-width: 0;
}

.k-cabecera-b .k-pantalla__titulo {
  font-size: 1.5rem;
}

.k-indicadores--aprobar-b {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0.75rem;
}

.k-indicadores--aprobar-b .k-indicador {
  border-radius: 20px;
  padding: 0.8125rem 1.0625rem;
}

.k-indicadores--aprobar-b .k-indicador__cifra {
  font-size: 1.5rem;
  margin-top: 0.2rem;
}

.k-indicadores--aprobar-b .k-indicador__nota {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.4rem;
  margin-top: 0.25rem;
}

.k-barra-fechas-b {
  align-items: center;
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: grid;
  gap: 0.875rem 1rem;
  grid-template-columns: minmax(24rem, 1.38fr) minmax(14rem, 1fr) auto;
  margin-bottom: 0.75rem;
  padding: 0.8125rem 1.125rem;
}

.k-barra-fechas-b__inputs {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.k-barra-fechas-b__inputs .k-campo {
  margin-bottom: 0;
}

.k-barra-fechas-b__inputs .k-campo__label {
  margin-bottom: 0.2rem;
}

.k-campo__nota-fecha {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
  margin-top: 0.2rem;
}

.k-campo__nota-fecha strong {
  color: var(--k-ink-2);
  font-weight: var(--k-peso-fuerte);
}

.k-aviso-barra-b {
  font-size: 0.75rem;
  line-height: 1.38;
  margin: 0;
  padding: 0.625rem 0.75rem;
}

.k-barra-fechas-b__acciones {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
}

.k-secciones-nav--aprobar-b {
  margin-bottom: 0.75rem;
}

.k-comite-grid {
  display: grid;
  gap: 0.875rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.k-tarjeta-comite {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  padding: 0.9375rem 1.1875rem;
}

.k-tarjeta-comite__cab {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-tarjeta-comite__cab .k-etiqueta {
  margin-bottom: 0;
}

.k-datos-comite {
  display: grid;
  gap: 0.5625rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.k-datos-comite > div {
  border-bottom: 1px solid var(--k-rule-soft);
  min-width: 0;
  padding-bottom: 0.4rem;
}

.k-datos-comite > div:nth-last-child(-n+2) {
  border-bottom: none;
  padding-bottom: 0;
}

.k-datos-comite dt {
  color: var(--k-ink-muted);
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.k-datos-comite dd {
  color: var(--k-ink);
  font-size: 0.8125rem;
  font-weight: var(--k-peso-fuerte);
  line-height: 1.32;
  margin: 0.12rem 0 0;
}

.k-datos-comite__sub {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-normal);
}

.k-pie-condicion-b {
  align-items: center;
  background: #F8FBFF;
  border-radius: 13px;
  color: var(--k-ink-2);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: 0.25rem 0.75rem;
  justify-content: space-between;
  margin-top: 0.6875rem;
  padding: 0.5rem 0.75rem;
}

.k-puente-horizontal-b {
  background: #F8FBFF;
  border-radius: 14px;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0.5625rem 0.75rem;
}

.k-puente-celda-b__lbl {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-puente-celda-b__val {
  color: var(--k-ink);
  display: block;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.1rem;
}

.k-puente-celda-b__val--egreso {
  color: var(--ka-pastel-rose-fg);
}

.k-puente-celda-b__val--final {
  color: #047857;
}

.k-puente-celda-b__val--alerta {
  color: var(--ka-pastel-amber-fg);
}

.k-hitos-vencimiento-b {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 0.5625rem;
}

.k-hito-cuota {
  background: var(--ka-surface-subtle);
  border-radius: 13px;
  padding: 0.45rem 0.6875rem;
}

.k-hito-cuota__lbl {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-hito-cuota__val {
  align-items: center;
  color: var(--k-ink);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  gap: 0.25rem;
  margin-top: 0.12rem;
}

.k-composicion-plan {
  margin-top: 0.625rem;
}

.k-composicion-plan__top {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.71875rem;
  gap: 0.25rem 0.5rem;
  justify-content: space-between;
  margin-bottom: 0.35rem;
}

.k-composicion-barra-svg {
  border-radius: var(--k-radio-pildora);
  display: block;
  height: 0.5625rem;
  overflow: hidden;
  width: 100%;
}

.k-composicion-leyenda {
  display: grid;
  gap: 0.375rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.45rem;
}

.k-comp-pill {
  border-radius: 11px;
  padding: 0.32rem 0.5rem;
}

.k-comp-pill--cap {
  background: #E0F2FE;
  color: #0369A1;
}

.k-comp-pill--int {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-comp-pill--rgo {
  background: var(--ka-pastel-violet-bg);
  color: var(--ka-pastel-violet-fg);
}

.k-comp-pill__lbl {
  display: block;
  font-size: 0.59375rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.k-comp-pill__val {
  display: block;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.05rem;
}

@media (max-width: 1279.98px) {
  .k-indicadores--aprobar-b {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .k-comite-grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 768px) and (max-width: 1279.98px) {
  .k-barra-fechas-b {
    grid-template-columns: 1fr auto;
    padding: 0.9375rem 1.125rem;
  }

  .k-barra-fechas-b__inputs {
    grid-column: 1 / -1;
  }
}

@media (max-width: 767.98px) {
  .k-riel-pasos {
    border-radius: 16px;
    display: flex;
    gap: 0.2rem;
    padding: 0.35rem 0.5rem;
    width: 100%;
  }

  .k-riel-paso {
    font-size: 0.6875rem;
    padding: 0.22rem 0.45rem;
  }

  .k-riel-sep {
    display: none;
  }

  .k-indicadores--aprobar-b,
  .k-barra-fechas-b,
  .k-barra-fechas-b__inputs,
  .k-datos-comite,
  .k-puente-horizontal-b,
  .k-hitos-vencimiento-b,
  .k-composicion-leyenda {
    grid-template-columns: 1fr;
  }

  .k-barra-fechas-b {
    padding: 0.9375rem;
  }

  .k-barra-fechas-b__acciones {
    flex-direction: column-reverse;
    width: 100%;
  }

  .k-barra-fechas-b__acciones .k-btn {
    width: 100%;
  }

  .k-datos-comite > div:nth-last-child(2) {
    border-bottom: 1px solid var(--k-rule-soft);
    padding-bottom: 0.4rem;
  }
}

/* ── Pantallas #11 Ficha de Crédito Opción A, #12 Cobro, #13 Anular Pago Opción A, #14 Anular Crédito Opción A y #16/#17 Modales Caja (SPEC 006) ── */
.k-badges-fila {
  align-items: center;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.k-pildora-congelado {
  align-items: center;
  background: #E0F7FA;
  border-radius: var(--k-radio-pildora);
  color: #0E7490;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3rem;
  padding: 0.22rem 0.625rem;
  white-space: nowrap;
}

.k-pildora-congelado .k-ico {
  height: 0.78125rem;
  width: 0.78125rem;
}

.k-eyebrow-fila {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 0.5rem;
  margin-bottom: 0.25rem;
}

.k-eyebrow-fila .k-etiqueta {
  color: var(--k-ink-2);
  margin-bottom: 0;
}

.k-btn--anular-discreto {
  background: #FFF1F7;
  border-color: #FBCFE8;
  color: var(--ka-pastel-rose-fg);
  padding-inline: 0.875rem;
}

.k-btn--anular-discreto:hover {
  background: #FCE7F3;
  border-color: #F9A8D4;
  color: #9D174D;
}

.k-btn--acceso-pdf {
  padding-inline: 0.875rem;
}

.k-cabecera-credito-a {
  margin-bottom: 0.875rem;
}

.k-cabecera-credito-a__top {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6875rem 1rem;
  justify-content: space-between;
}

.k-cabecera-credito-a__identidad {
  flex: 1 1 24rem;
  min-width: 0;
}

.k-acciones-credito-a {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem;
  justify-content: flex-end;
}

.k-meta-franja {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}

.k-meta-chip {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--ka-card-border);
  border-radius: var(--k-radio-pildora);
  box-shadow: var(--ka-shadow-card-sm);
  color: var(--k-ink-2);
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-medio);
  gap: 0.35rem;
  max-width: 100%;
  padding: 0.28rem 0.7rem;
}

.k-meta-chip .k-ico {
  color: #0284C7;
  flex-shrink: 0;
  height: 0.85rem;
  width: 0.85rem;
}

.k-meta-chip strong {
  color: var(--k-ink);
  font-weight: var(--k-peso-fuerte);
}

.k-meta-chip__enlace {
  color: #0284C7;
  font-weight: var(--k-peso-audaz);
  text-decoration: none;
}

.k-meta-chip__enlace:hover {
  color: var(--k-brand-hover);
  text-decoration: underline;
}

.k-indicadores--credito-a {
  gap: 0.8125rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0.875rem;
}

.k-indicadores--credito-a .k-indicador {
  border-radius: 20px;
  padding: 0.8125rem 1.0625rem;
}

.k-indicadores--credito-a .k-indicador__cifra {
  font-size: 1.5rem;
  margin-top: 0.2rem;
}

.k-indicadores--credito-a .k-indicador__nota {
  font-size: 0.71875rem;
  line-height: 1.3;
  margin-top: 0.25rem;
}

.k-kpi-cab {
  align-items: center;
  display: flex;
  gap: 0.375rem;
  justify-content: space-between;
}

.k-kpi-cab .k-etiqueta {
  margin-bottom: 0;
}

.k-kpi-pildora-boveda {
  background: rgba(255, 255, 255, 0.22);
  border-radius: var(--k-radio-pildora);
  color: #FFFFFF;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.125rem 0.5rem;
  position: relative;
  text-shadow: var(--ka-white-scrim);
  white-space: nowrap;
  z-index: 2;
}

.k-kpi-pildora {
  background: #EFF6FF;
  border-radius: var(--k-radio-pildora);
  color: #0284C7;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  padding: 0.125rem 0.5rem;
  white-space: nowrap;
}

.k-kpi-pildora--menta {
  background: #E0F7FA;
  color: #0E7490;
}

.k-kpi-pildora--rosa {
  background: var(--ka-pastel-rose-bg);
  color: var(--ka-pastel-rose-fg);
}

.k-progreso--kpi {
  gap: 0.3125rem;
  margin-top: 0.35rem;
}

.k-progreso--kpi .k-progreso__pista {
  gap: 4px;
}

.k-progreso--kpi .k-progreso__cuota {
  background: #E2ECF7;
  height: 0.4375rem;
}

.k-progreso__cuota--proxima {
  background: linear-gradient(90deg, #BAE6FD 0%, #C7D2FE 100%);
  box-shadow: inset 0 0 0 1px #7DD3FC;
}

.k-progreso--kpi .k-progreso__texto {
  font-size: 0.71875rem;
}

.k-seccion-ficha--plan-a {
  margin-bottom: 0;
  padding: 0.9375rem 1.25rem;
}

.k-cabecera-plan-izq {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4375rem;
}

.k-cabecera-plan-izq .k-etiqueta {
  color: var(--k-ink);
  margin-bottom: 0;
}

.k-resumen-condiciones-pills {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.k-pill-condicion {
  background: #F8FAFC;
  border-radius: var(--k-radio-pildora);
  color: var(--k-ink-2);
  font-size: 0.71875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-medio);
  padding: 0.2rem 0.625rem;
  white-space: nowrap;
}

.k-pill-condicion strong {
  color: var(--k-ink);
  font-weight: var(--k-peso-audaz);
}

.k-tabla--plan {
  min-width: 0;
  width: 100%;
}

.k-tabla--plan thead th {
  padding: 0.5rem 0.5625rem;
}

.k-tabla--plan tbody td {
  height: 2.375rem;
  padding: 0.4375rem 0.5625rem;
}

.k-tabla--plan tfoot td {
  padding: 0.5625rem 0.5625rem;
}

.k-tabla--plan tbody tr.k-plan__hoy td:first-child {
  box-shadow: inset 3px 0 0 #0284C7;
  font-weight: var(--k-peso-audaz);
}

.k-tag-proxima {
  background: #E0F2FE;
  border-radius: var(--k-radio-pildora);
  color: #0369A1;
  display: inline-block;
  font-size: 0.59375rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.03em;
  margin-left: 0.25rem;
  padding: 0.08rem 0.4rem;
  text-transform: uppercase;
  vertical-align: middle;
}

.k-accion-cobrar {
  align-items: center;
  background: #F0F9FF;
  border-radius: var(--k-radio-pildora);
  color: #0284C7;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.25rem;
  padding: 0.2rem 0.625rem;
  text-decoration: none;
  white-space: nowrap;
}

.k-accion-cobrar:hover {
  background: #E0F2FE;
  color: #0369A1;
}

.k-plan__hoy .k-accion-cobrar {
  background: #0284C7;
  color: #FFFFFF;
}

.k-plan__hoy .k-accion-cobrar:hover {
  background: #0369A1;
  color: #FFFFFF;
}

.k-pie-plan-a {
  align-items: center;
  border-top: 1px solid var(--k-rule-soft);
  color: var(--k-ink-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.71875rem;
  gap: 0.375rem 1rem;
  justify-content: space-between;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}

.k-pie-plan-a__item {
  align-items: center;
  display: inline-flex;
  gap: 0.35rem;
}

.k-pie-plan-a__item .k-ico {
  color: #0284C7;
  height: 0.85rem;
  width: 0.85rem;
}

.k-legajo-grid-a {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.k-legajo-card-a {
  align-items: center;
  background: #F8FBFF;
  border: 1px solid var(--ka-card-border);
  border-radius: 16px;
  box-shadow: var(--ka-shadow-card-sm);
  color: var(--k-ink);
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  padding: 0.8125rem 1rem;
  text-decoration: none;
  transition:
    background-color var(--k-dur-rapida) var(--k-salida),
    border-color var(--k-dur-rapida) var(--k-salida),
    transform var(--k-dur-rapida) var(--k-salida);
}

.k-legajo-card-a:hover {
  background: #EFF6FF;
  border-color: var(--ka-ice-border);
  color: #0284C7;
  transform: translateY(-1px);
}

.k-legajo-card-a__izq {
  align-items: center;
  display: flex;
  gap: 0.625rem;
  min-width: 0;
}

.k-legajo-card-a__ico {
  align-items: center;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
  color: #0284C7;
  display: inline-flex;
  flex-shrink: 0;
  height: 2.375rem;
  justify-content: center;
  width: 2.375rem;
}

.k-legajo-card-a__titulo {
  color: var(--k-ink);
  display: block;
  font-size: 0.84375rem;
  font-weight: var(--k-peso-audaz);
  line-height: 1.25;
}

.k-legajo-card-a__sub {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  line-height: 1.25;
  margin-top: 0.1rem;
}

/* Atajos rápidos de monto en #12 Cobro */
.k-atajos-cobro {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-top: 0.375rem;
}

.k-atajo-chip {
  align-items: center;
  background: #EFF6FF;
  border: 1px solid #DBEAFE;
  border-radius: var(--k-radio-pildora);
  color: #0284C7;
  cursor: pointer;
  display: inline-flex;
  font-family: var(--k-fuente);
  font-size: 0.6875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  gap: 0.25rem;
  min-height: 1.875rem;
  padding: 0.1875rem 0.625rem;
  transition: background-color var(--k-dur-rapida) var(--k-salida);
}

.k-atajo-chip:hover {
  background: #E0F2FE;
  color: #0369A1;
}

/* #13 Modal Amplio de Auditoría Contable (740px) y vista fallback */
.k-pildora-destructiva {
  align-items: center;
  background: var(--ka-pastel-rose-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-rose-fg);
  display: inline-flex;
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.32rem;
  letter-spacing: 0.05em;
  padding: 0.24rem 0.6875rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.k-pildora-destructiva .k-ico {
  height: 0.8125rem;
  width: 0.8125rem;
}

.k-pildora-cuota {
  align-items: center;
  background: #E0F2FE;
  border-radius: var(--k-radio-pildora);
  color: #0369A1;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.28rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-pildora-auditoria {
  align-items: center;
  background: var(--ka-pastel-indigo-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-indigo-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.28rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-modal--auditoria {
  background: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.98);
  border-radius: 26px;
  box-shadow:
    0 28px 68px rgba(15, 23, 42, 0.24),
    0 6px 18px rgba(190, 24, 93, 0.08);
  max-width: 46.25rem;
  overflow: hidden;
  padding: 0;
  width: 100%;
}

.k-modal-auditoria__cabecera {
  align-items: flex-start;
  background: linear-gradient(180deg, #FFF5F9 0%, #FFFFFF 100%);
  border-bottom: 1px solid #FCE7F3;
  display: flex;
  gap: 0.875rem;
  justify-content: space-between;
  padding: 1.125rem 1.5rem 1rem;
}

.k-modal-auditoria__identidad {
  min-width: 0;
}

.k-modal-auditoria__sellos {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.4rem;
}

.k-modal-auditoria__titulo {
  color: var(--k-ink);
  font-family: var(--k-font-display);
  font-size: 1.375rem;
  font-weight: var(--k-peso-fuerte);
  letter-spacing: -0.02em;
  line-height: 1.18;
  margin: 0;
}

.k-modal-auditoria__subtitulo {
  color: var(--k-ink-muted);
  font-size: 0.8125rem;
  font-weight: var(--k-peso-medio);
  margin: 0.2rem 0 0;
}

.k-modal-auditoria__cerrar {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--k-rule-soft);
  border-radius: 50%;
  color: var(--ka-pastel-slate-fg);
  flex-shrink: 0;
  height: 2.5rem;
  min-height: 2.5rem;
  padding: 0;
  width: 2.5rem;
}

.k-modal-auditoria__cuerpo {
  display: flex;
  flex-direction: column;
  gap: 0.9375rem;
  padding: 1.0625rem 1.5rem 1.125rem;
}

.k-recibo-resumen {
  background: #F8FBFF;
  border: 1px solid #E0F2FE;
  border-radius: 18px;
  display: grid;
  gap: 0.625rem 0.875rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0.75rem 1rem;
}

.k-recibo-resumen__celda {
  border-right: 1px solid #E2EDF8;
  min-width: 0;
  padding-right: 0.625rem;
}

.k-recibo-resumen__celda:last-child {
  border-right: none;
  padding-right: 0;
}

.k-recibo-resumen__dt {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.k-recibo-resumen__dd {
  color: var(--k-ink);
  display: block;
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  line-height: 1.25;
  margin-top: 0.15rem;
}

.k-recibo-resumen__dd--monto {
  color: var(--ka-pastel-rose-fg);
  font-size: 1rem;
}

.k-recibo-resumen__sub {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-normal);
  margin-top: 0.1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.k-auditoria-bloques {
  display: grid;
  gap: 0.875rem;
  grid-template-columns: 1.05fr 0.95fr;
}

.k-subtarjeta-auditoria {
  background: #FFFFFF;
  border: 1px solid var(--k-rule);
  border-radius: 18px;
  box-shadow: var(--ka-shadow-card-sm);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  padding: 0.875rem 1rem;
}

.k-subtarjeta-auditoria__cab {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-subtarjeta-auditoria__cab .k-etiqueta {
  margin-bottom: 0;
}

.k-puente-caja-modal {
  background: var(--ka-surface-sunken);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  gap: 0.48rem;
  padding: 0.75rem 0.8125rem;
}

.k-puente-fila {
  align-items: center;
  display: flex;
  font-size: 0.8125rem;
  gap: 0.5rem;
  justify-content: space-between;
}

.k-puente-fila__lbl {
  color: var(--k-ink-2);
  font-weight: var(--k-peso-medio);
}

.k-puente-fila__val {
  color: var(--k-ink);
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-fuerte);
  white-space: nowrap;
}

.k-puente-fila--reversa {
  background: #FFF1F7;
  border-radius: 10px;
  margin-inline: -0.35rem;
  padding: 0.32rem 0.5rem;
}

.k-puente-fila--reversa .k-puente-fila__lbl,
.k-puente-fila--reversa .k-puente-fila__val {
  color: var(--ka-pastel-rose-fg);
  font-weight: var(--k-peso-audaz);
}

.k-puente-fila--final {
  border-top: 1px solid #E2EDF8;
  margin-top: 0.15rem;
  padding-top: 0.45rem;
}

.k-puente-fila--final .k-puente-fila__lbl {
  color: var(--k-ink);
  font-weight: var(--k-peso-audaz);
}

.k-puente-fila--final .k-puente-fila__val {
  color: #0369A1;
  font-size: 0.875rem;
  font-weight: var(--k-peso-audaz);
}

.k-cascada-bloque {
  margin-top: 0.6875rem;
}

.k-cascada-bloque__cab {
  align-items: center;
  display: flex;
  font-size: 0.6875rem;
  justify-content: space-between;
  margin-bottom: 0.35rem;
}

.k-cascada-bloque__titulo {
  color: var(--k-ink-muted);
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-cascada-barra {
  border-radius: var(--k-radio-pildora);
  display: block;
  height: 0.5rem;
  margin-bottom: 0.45rem;
  overflow: hidden;
  width: 100%;
}

.k-cascada-items {
  display: grid;
  gap: 0.35rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.k-cascada-pill {
  border-radius: 11px;
  min-width: 0;
  padding: 0.35rem 0.45rem;
}

.k-cascada-pill--rgo {
  background: #E0F7FA;
  color: #0E7490;
}

.k-cascada-pill--int {
  background: var(--ka-pastel-indigo-bg);
  color: var(--ka-pastel-indigo-fg);
}

.k-cascada-pill--cap {
  background: var(--ka-pastel-rose-bg);
  color: #9D174D;
}

.k-cascada-pill__orden {
  display: block;
  font-size: 0.59375rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.k-cascada-pill__monto {
  display: block;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.08rem;
  white-space: nowrap;
}

.k-domino-lista {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.k-domino-item {
  background: #F8FBFF;
  border: 1px solid #E8F1FA;
  border-radius: 13px;
  padding: 0.5rem 0.6875rem;
}

.k-domino-item__top {
  align-items: baseline;
  display: flex;
  gap: 0.35rem;
  justify-content: space-between;
  margin-bottom: 0.28rem;
}

.k-domino-item__lbl {
  color: var(--k-ink-muted);
  font-size: 0.65625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-domino-item__nota {
  color: var(--k-ink-muted);
  font-size: 0.65625rem;
}

.k-domino-transicion {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.k-domino-antes {
  color: var(--k-ink-muted);
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-fuerte);
}

.k-domino-flecha {
  color: var(--k-ink-muted);
  display: inline-flex;
  height: 0.875rem;
  width: 0.875rem;
}

.k-domino-despues-cifra {
  color: var(--ka-pastel-rose-fg);
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
}

.k-auditor-pie-mini {
  align-items: center;
  background: var(--ka-surface-subtle);
  border-radius: 11px;
  color: var(--k-ink-2);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.71875rem;
  gap: 0.25rem 0.5rem;
  justify-content: space-between;
  margin-top: 0.5625rem;
  padding: 0.4rem 0.625rem;
}

.k-aviso-modal-anular {
  font-size: 0.78125rem;
  line-height: 1.4;
  margin-bottom: 0;
  padding: 0.6875rem 0.875rem;
}

.k-modal-auditoria__pie {
  align-items: center;
  background: #F8FBFF;
  border-top: 1px solid var(--k-rule-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  justify-content: space-between;
  padding: 0.875rem 1.5rem;
}

/* #14 Anular Crédito Opción A */
.k-pildora-bloqueo {
  align-items: center;
  background: var(--ka-pastel-rose-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-rose-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-pildora-transicion {
  align-items: center;
  background: #FEF3C7;
  border-radius: var(--k-radio-pildora);
  color: #B45309;
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.3rem;
  padding: 0.22rem 0.65rem;
  white-space: nowrap;
}

.k-pildora-neutra {
  align-items: center;
  background: var(--ka-pastel-slate-bg);
  border-radius: var(--k-radio-pildora);
  color: var(--ka-pastel-slate-fg);
  display: inline-flex;
  font-size: 0.6875rem;
  font-weight: var(--k-peso-audaz);
  gap: 0.28rem;
  padding: 0.2rem 0.6rem;
  white-space: nowrap;
}

.k-btn--destructivo-vivo {
  background: linear-gradient(135deg, #E11D48 0%, #DB2777 100%);
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(225, 29, 72, 0.24);
  color: #FFFFFF;
  text-shadow: var(--ka-white-scrim);
}

.k-btn--destructivo-vivo:hover:not(:disabled) {
  background: linear-gradient(135deg, #BE123C 0%, #BE185D 100%);
  border-color: transparent;
  box-shadow: 0 12px 28px rgba(225, 29, 72, 0.32);
  color: #FFFFFF;
}

.k-btn--candado:disabled {
  background: #F8FAFC;
  border: 1px dashed #CBD5E1;
  box-shadow: none;
  color: var(--k-ink-muted);
  opacity: 1;
  text-shadow: none;
}

.k-cabecera-anular-a {
  align-items: center;
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
  padding: 0.875rem 1.1875rem;
}

.k-cabecera-anular-a__info {
  flex: 1 1 28rem;
  min-width: 0;
}

.k-cabecera-anular-a .k-eyebrow-fila .k-etiqueta {
  color: var(--ka-pastel-rose-fg);
}

.k-cabecera-anular-a .k-pantalla__titulo {
  font-size: 1.5rem;
}

.k-subtitulo-estado {
  color: var(--k-ink-muted);
  font-size: 0.75rem;
  line-height: 1.35;
  margin: 0.2rem 0 0;
}

.k-cabecera-anular-a__acciones {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
}

.k-kpis-anular-a {
  display: grid;
  gap: 0.6875rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 0.75rem;
}

.k-kpis-anular-a .k-indicador {
  border-radius: 20px;
  padding: 0.75rem 1rem;
}

.k-kpis-anular-a .k-indicador__cifra {
  font-size: 1.4375rem;
  margin-top: 0.22rem;
}

.k-indicador__cifra--reingreso {
  color: #0284C7;
}

.k-indicador__cifra--caja-nueva {
  color: #047857;
}

.k-aviso-irreversible-a {
  align-items: center;
  border-radius: 16px;
  font-size: 0.8125rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
  max-width: none;
  padding: 0.625rem 1rem;
}

.k-secciones-nav--anular-a .k-secciones-nav__enlace {
  flex: 1 1 50%;
}

.k-grid-anular-a {
  display: grid;
  gap: 0.8125rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.k-tarjeta-panel-a {
  background: var(--ka-card);
  border: 1px solid var(--ka-card-border);
  border-radius: 22px;
  box-shadow: var(--ka-shadow-card);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  padding: 0.9375rem 1.1875rem;
}

.k-tarjeta-panel-a__cab {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  justify-content: space-between;
  margin-bottom: 0.625rem;
}

.k-tarjeta-panel-a__cab .k-etiqueta {
  margin-bottom: 0;
}

.k-datos-expediente-a {
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.k-datos-expediente-a > div {
  border-bottom: 1px solid var(--k-rule-soft);
  min-width: 0;
  padding-bottom: 0.375rem;
}

.k-datos-expediente-a > div:nth-last-child(-n+2) {
  border-bottom: none;
  padding-bottom: 0;
}

.k-datos-expediente-a dt {
  color: var(--k-ink-muted);
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.k-datos-expediente-a dd {
  color: var(--k-ink);
  font-size: 0.8125rem;
  font-weight: var(--k-peso-fuerte);
  line-height: 1.3;
  margin: 0.1rem 0 0;
}

.k-datos-expediente-a__sub {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-normal);
}

.k-franja-de-verificado {
  align-items: center;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 13px;
  color: #065F46;
  display: flex;
  font-size: 0.73rem;
  gap: 0.45rem;
  line-height: 1.35;
  margin-top: 0.6875rem;
  padding: 0.48rem 0.75rem;
}

.k-franja-de-verificado .k-ico {
  color: #059669;
  flex-shrink: 0;
  height: 0.95rem;
  width: 0.95rem;
}

.k-puente-caja-a {
  background: linear-gradient(135deg, #F0F9FF 0%, #F5F3FF 100%);
  border: 1px solid #E0F2FE;
  border-radius: 15px;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0.5625rem 0.8125rem;
}

.k-puente-caja-a__lbl {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.625rem;
  font-weight: var(--k-peso-audaz);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.k-puente-caja-a__val {
  color: var(--k-ink);
  display: block;
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
  font-weight: var(--k-peso-audaz);
  margin-top: 0.1rem;
}

.k-puente-caja-a__val--ingreso {
  color: #0284C7;
}

.k-puente-caja-a__val--final {
  color: #047857;
}

.k-lista-efectos-a {
  display: flex;
  flex-direction: column;
  gap: 0.4375rem;
  list-style: none;
  margin: 0.625rem 0 0;
  padding: 0;
}

.k-efecto-item {
  align-items: center;
  background: #F8FBFF;
  border-radius: 13px;
  display: flex;
  gap: 0.625rem;
  justify-content: space-between;
  padding: 0.45rem 0.75rem;
}

.k-efecto-item__izq {
  min-width: 0;
}

.k-efecto-item__titulo {
  color: var(--k-ink);
  display: block;
  font-size: 0.78125rem;
  font-weight: var(--k-peso-audaz);
  line-height: 1.25;
}

.k-efecto-item__desc {
  color: var(--k-ink-muted);
  display: block;
  font-size: 0.71875rem;
  line-height: 1.3;
}

.k-modal__pie--continuo {
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
}

.k-modal__pie-derecha {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

@media (max-width: 1279.98px) {
  .k-indicadores--credito-a,
  .k-kpis-anular-a {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .k-legajo-grid-a {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .k-grid-anular-a {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 768px) and (max-width: 1279.98px) {
  .k-tabla--plan {
    font-size: 0.6875rem;
  }

  .k-tabla--plan thead th {
    font-size: 0.59375rem;
    letter-spacing: 0.03em;
    padding: 0.45rem 0.22rem;
  }

  .k-tabla--plan tbody td,
  .k-tabla--plan tfoot td {
    padding-inline: 0.22rem;
  }

  .k-tag-proxima {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .k-indicadores--credito-a,
  .k-kpis-anular-a,
  .k-legajo-grid-a,
  .k-auditoria-bloques,
  .k-cascada-items,
  .k-datos-expediente-a,
  .k-puente-caja-a {
    grid-template-columns: 1fr;
  }

  .k-acciones-credito-a {
    width: 100%;
  }

  .k-acciones-credito-a .k-btn--principal {
    order: -1;
    width: 100%;
  }

  .k-acciones-credito-a .k-btn--acceso-pdf,
  .k-acciones-credito-a .k-btn--anular-discreto {
    flex: 1 1 auto;
    font-size: 0.75rem;
    padding-inline: 0.5625rem;
  }

  .k-recibo-resumen {
    gap: 0.625rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.6875rem 0.8125rem;
  }

  .k-recibo-resumen__celda {
    border-right: none;
    padding-right: 0;
  }

  .k-recibo-resumen__celda:nth-child(1),
  .k-recibo-resumen__celda:nth-child(2) {
    border-bottom: 1px solid #E2EDF8;
    padding-bottom: 0.45rem;
  }

  .k-cascada-pill {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 0.4rem 0.625rem;
  }

  .k-cascada-pill__monto {
    margin-top: 0;
  }

  .k-modal-auditoria__pie,
  .k-cabecera-anular-a__acciones,
  .k-modal__pie-derecha {
    flex-direction: column;
    width: 100%;
  }

  .k-modal-auditoria__pie .k-btn,
  .k-cabecera-anular-a__acciones .k-btn,
  .k-modal__pie-derecha .k-btn {
    width: 100%;
  }

  .k-datos-expediente-a > div:nth-last-child(2) {
    border-bottom: 1px solid var(--k-rule-soft);
    padding-bottom: 0.375rem;
  }

  .k-efecto-item {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }

  .k-tag-proxima {
    display: none;
  }
}

/* ── Impresión de página web (los 5 PDFs oficiales usan impresos.css) ─────── */
@media print {
  .k-lateral,
  .k-movil-top,
  .k-movil-nav,
  .k-filtros,
  .k-btn,
  .k-paginacion,
  .k-modal-fondo,
  nav {
    display: none !important;
  }

  .k-app {
    display: block;
    padding: 0;
  }

  .k-app__lienzo {
    max-width: none;
    padding: 0;
  }

  body {
    background: #FFFFFF;
  }
}
