/* ══════════════════════════════════════════════════════════════
   KORNETH — la casa que despacha partidas
   ══════════════════════════════════════════════════════════════
   El sitio se compone como un documento: papel de registro, tinta
   casi negra con sesgo verde y un azul de tampón para el sello.
   Esquina viva en todo: una ficha no tiene esquinas redondeadas.

   El papel va TEÑIDO a propósito. Los otros tres claros del grupo
   son blanco cálido, gris frío y blanco puro; y koorveth, que se
   llama casi igual que esta casa, es justo el gris frío. Sin el
   sesgo verde los dos sitios se confundirían.
   ══════════════════════════════════════════════════════════════ */

:root{
  /* — papel — */
  --papel:#E9EFE3;       /* el registro */
  --papel-2:#F3F7EF;     /* la hoja levantada */
  --papel-3:#FFFFFF;     /* la ficha */
  --filete:#D2DBC8;      /* separación visual */
  --filete-2:#818A78;    /* borde de control: llega a 3:1, que es lo que pide */

  /* — tinta — */
  --tinta:#121A13;       /* texto principal — 15.15:1 */
  --tinta-2:#3D4B3E;     /* secundario — 7.88:1 */
  --apoyo:#616F62;       /* apoyo — 4.53:1, el más claro que aún cumple AA */

  /* — sello — */
  --sello:#12467E;       /* el azul de tampón; ninguna hermana usa azul */
  --sello-2:#E0E9F3;     /* lavado para fondos */
  --sello-ink:#FFFFFF;

  /* — estados — */
  --ok:#1C6B3F;  --ok-2:#E2F0E7;
  --pausa:#8A5A00; --pausa-2:#F7EEDC;
  --alto:#A32020; --alto-2:#F7E6E6;

  /* — tipografía — */
  --fd:"Familjen Grotesk","Figtree",system-ui,sans-serif;
  --fs:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;

  /* — medidas — */
  --ancho:1120px;
  --gut:clamp(1.25rem,4vw,2.5rem);
  --ctrl:0px;            /* esquina viva: es un documento */
  --t:.16s;              /* respuesta al puntero */
  --paso:.32s;           /* entrada de un bloque */
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);
  font-family:var(--fs);font-size:1rem;line-height:1.6;
  font-synthesis-weight:none}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--fd);font-weight:700;line-height:1.08;
  letter-spacing:-.02em;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
h1{font-size:clamp(2rem,1.1rem + 3.2vw,3.6rem)}
h2{font-size:clamp(1.5rem,1.05rem + 1.7vw,2.25rem)}
h3{font-size:clamp(1.125rem,1rem + .5vw,1.375rem)}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--sello);outline-offset:2px}
::selection{background:var(--sello);color:var(--sello-ink)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.kn-ancho{width:min(var(--ancho),100% - var(--gut)*2);margin-inline:auto}

/* ── el sello: el filete azul que abre el documento ────────────── */
.kn-sello{height:3px;background:var(--sello)}

/* ── barra ─────────────────────────────────────────────────────── */
.kn-barra{background:var(--papel);border-bottom:1px solid var(--filete);
  position:sticky;top:0;z-index:40}
.kn-barra__in{display:flex;align-items:center;gap:1.5rem;min-height:66px}
.kn-logo{display:inline-flex;align-items:center;gap:.34em;
  font-family:var(--fd);font-weight:700;letter-spacing:-.025em;
  font-size:1.125rem;color:var(--tinta);text-decoration:none}
.kn-nav{display:flex;gap:1.4rem;margin-left:auto;font-size:.9375rem}
.kn-nav a{color:var(--tinta-2);text-decoration:none;padding-block:.35rem;
  border-bottom:2px solid transparent;transition:color var(--t),border-color var(--t)}
.kn-nav a:hover{color:var(--tinta);border-bottom-color:var(--sello)}
/* El apartado que se está leyendo. Lo marca el guion por posición de
   desplazamiento; aquí sólo se pinta. */
.kn-nav a.is-aqui{color:var(--tinta);border-bottom-color:var(--sello)}
.kn-barra__acc{display:flex;align-items:center;gap:1rem;margin-left:auto}
.kn-nav + .kn-barra__acc{margin-left:0}
.kn-idioma{display:flex;gap:.4rem;font-size:.8125rem;color:var(--apoyo)}
.kn-idioma a{text-decoration:none}
.kn-idioma a[aria-current]{color:var(--sello);font-weight:600}
.kn-enlace{font-size:.9375rem;color:var(--tinta);text-decoration:underline;
  text-underline-offset:3px}

/* ── botones ───────────────────────────────────────────────────── */
.kn-b{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--fd);font-weight:600;font-size:.9375rem;line-height:1;
  padding:.72rem 1.1rem;border-radius:var(--ctrl);text-decoration:none;
  border:1px solid transparent;cursor:pointer;transition:background var(--t),border-color var(--t),color var(--t)}
.kn-b--sello{background:var(--sello);color:var(--sello-ink);border-color:var(--sello)}
.kn-b--sello:hover{background:#0E3763;border-color:#0E3763}
.kn-b--linea{background:transparent;color:var(--tinta);border-color:var(--filete-2)}
.kn-b--linea:hover{border-color:var(--tinta);background:var(--papel-2)}
.kn-b--grande{padding:.95rem 1.5rem;font-size:1rem}

/* ── hero: el documento abierto ────────────────────────────────── */
.kn-hero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,4rem)}
.kn-hero__in{display:grid;gap:clamp(2rem,5vw,4rem);align-items:start;
  grid-template-columns:minmax(0,1fr)}
@media (min-width:920px){.kn-hero__in{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)}}
.kn-marca-agua{font-family:var(--fd);font-weight:600;font-size:.75rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--sello);
  display:flex;align-items:center;gap:.6rem}
.kn-marca-agua::before{content:"";width:26px;height:2px;background:var(--sello)}
.kn-hero h1{margin-top:.9rem}
.kn-hero__d{margin-top:1.1rem;font-size:clamp(1rem,.95rem + .35vw,1.1875rem);
  color:var(--tinta-2);max-width:44ch}
.kn-hero__acc{margin-top:1.8rem;display:flex;flex-wrap:wrap;gap:.75rem}

/* ── la ficha de muestra: el gancho del hero ───────────────────── */
.kn-ficha{background:var(--papel-3);border:1px solid var(--filete-2)}
.kn-ficha__cab{display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;padding:.85rem 1.1rem;background:var(--sello);color:var(--sello-ink)}
.kn-ficha__cab b{font-family:var(--fd);font-weight:700;font-size:.9375rem;
  letter-spacing:.02em}
.kn-ficha__cab span{font-size:.6875rem;letter-spacing:.12em;text-transform:uppercase;
  opacity:.85}
.kn-ficha dl{margin:0}
.kn-ficha__r{display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;padding:.8rem 1.1rem;border-bottom:1px solid var(--filete)}
.kn-ficha__r:last-of-type{border-bottom:0}
.kn-ficha dt{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--apoyo)}
.kn-ficha dd{margin:0;font-family:var(--fd);font-weight:600;font-size:1rem;
  font-variant-numeric:tabular-nums}
.kn-ficha__pie{padding:.7rem 1.1rem;border-top:1px solid var(--filete-2);
  background:var(--papel-2);font-size:.75rem;color:var(--apoyo)}

/* ── secciones ─────────────────────────────────────────────────── */
.kn-sec{padding:clamp(2.75rem,6vw,4.5rem) 0;border-top:1px solid var(--filete)}
.kn-sec__cab{max-width:52ch}
.kn-sec__cab p{margin-top:.7rem;color:var(--tinta-2)}

/* El recorrido va como renglones de manifiesto: rótulo a la izquierda y el
   texto a la derecha. Sin números: el orden ya lo dice el renglón. */
.kn-manifiesto{margin-top:2rem;border-top:1px solid var(--filete-2)}
.kn-manifiesto__r{display:grid;gap:.35rem 2rem;padding:1.3rem 0;
  border-bottom:1px solid var(--filete);grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.kn-manifiesto__r{grid-template-columns:11rem minmax(0,1fr)}}
.kn-manifiesto__k{font-family:var(--fd);font-weight:600;font-size:.8125rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--sello);padding-top:.2rem}
.kn-manifiesto__v h3{margin-bottom:.4rem}
.kn-manifiesto__v p{color:var(--tinta-2);max-width:56ch}

/* ── el renglón del cambio ─────────────────────────────────────── */
.kn-cambio{margin-top:1.8rem;background:var(--papel-3);
  border:1px solid var(--filete-2);display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){.kn-cambio{grid-template-columns:repeat(3,minmax(0,1fr))}}
.kn-cambio__c{padding:1.4rem 1.5rem;border-bottom:1px solid var(--filete)}
@media (min-width:720px){
  .kn-cambio__c{border-bottom:0;border-right:1px solid var(--filete)}
  .kn-cambio__c:last-child{border-right:0}
}
.kn-cambio__c:last-child{border-bottom:0}
.kn-cambio dt{font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--apoyo)}
.kn-cambio dd{margin:.45rem 0 0;font-family:var(--fd);font-weight:700;
  font-size:clamp(1.375rem,1.1rem + 1vw,1.75rem);font-variant-numeric:tabular-nums}

/* ── respaldo ──────────────────────────────────────────────────── */
.kn-respaldo{margin-top:1.8rem;display:grid;gap:1.5rem;
  grid-template-columns:minmax(0,1fr)}
@media (min-width:760px){.kn-respaldo{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kn-punto{padding-left:1.1rem;border-left:2px solid var(--sello)}
.kn-punto h3{font-size:1.0625rem}
.kn-punto p{margin-top:.4rem;color:var(--tinta-2)}

/* ── formulario ────────────────────────────────────────────────── */
.kn-campo{display:block;margin-bottom:1.1rem}
.kn-campo > span{display:block;font-size:.8125rem;font-weight:500;
  color:var(--tinta-2);margin-bottom:.4rem}
.kn-campo input,.kn-campo select,.kn-campo textarea{
  width:100%;font:inherit;color:var(--tinta);background:var(--papel-3);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);
  padding:.7rem .85rem;transition:border-color var(--t),box-shadow var(--t)}
.kn-campo input:focus,.kn-campo select:focus,.kn-campo textarea:focus{
  outline:0;border-color:var(--sello);box-shadow:inset 0 0 0 1px var(--sello)}
.kn-campo textarea{min-height:8rem;resize:vertical}
.kn-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.kn-forma{margin-top:1.8rem;display:grid;gap:0 1.25rem;
  grid-template-columns:minmax(0,1fr)}
@media (min-width:720px){
  .kn-forma{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kn-forma__ancho{grid-column:1/-1}
}

/* ── avisos y distintivos ──────────────────────────────────────── */
.kn-nota{display:flex;align-items:flex-start;gap:.6rem;padding:.8rem 1rem;
  border:1px solid var(--filete-2);border-radius:var(--ctrl);margin-bottom:1.25rem;
  font-size:.9375rem}
.kn-nota .kn-i{flex:none;margin-top:.15rem}
.kn-nota--ok{background:var(--ok-2);border-color:var(--ok);color:#123}
.kn-nota--wait{background:var(--pausa-2);border-color:var(--pausa)}
.kn-nota--bad{background:var(--alto-2);border-color:var(--alto)}
.kn-chip{display:inline-flex;align-items:center;padding:.2rem .55rem;
  font-size:.75rem;font-weight:600;border:1px solid currentColor;border-radius:var(--ctrl)}
.kn-chip--ok{color:var(--ok);background:var(--ok-2)}
.kn-chip--wait{color:var(--pausa);background:var(--pausa-2)}
.kn-chip--bad{color:var(--alto);background:var(--alto-2)}

/* ── pie ───────────────────────────────────────────────────────── */
.kn-pie{margin-top:clamp(2.5rem,6vw,4.5rem);border-top:1px solid var(--filete-2);
  padding-top:clamp(2rem,4vw,3rem);font-size:.9375rem}
.kn-pie__in{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:820px){.kn-pie__in{grid-template-columns:1.6fr 1fr 1fr}}
.kn-pie__marca .kn-logo{font-size:1.25rem;margin-bottom:.6rem}
.kn-pie__d{color:var(--apoyo);max-width:34ch}
.kn-pagos{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.kn-pagos li{font-size:.75rem;color:var(--apoyo);border:1px solid var(--filete);
  padding:.25rem .5rem}
.kn-pie__col h2{font-family:var(--fd);font-size:.8125rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sello);margin-bottom:.7rem}
.kn-pie__col li{margin-bottom:.4rem}
.kn-pie__col a{color:var(--tinta-2);text-decoration:none}
.kn-pie__col a:hover{color:var(--tinta);text-decoration:underline;text-underline-offset:3px}
.kn-pie__cierre{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;
  margin-top:2rem;padding:1rem 0 1.5rem;border-top:1px solid var(--filete);
  font-size:.8125rem;color:var(--apoyo)}
.kn-pie__cierre p{margin:0}

/* ── caja de acceso ────────────────────────────────────────────── */
.kn-acceso{padding:clamp(2.5rem,6vw,4.5rem) var(--gut)}
.kn-acceso__caja{max-width:464px;margin-inline:auto;background:var(--papel-3);
  border:1px solid var(--filete-2);border-top:3px solid var(--sello);
  padding:clamp(1.5rem,4vw,2.25rem)}
.kn-acceso h1{font-size:clamp(1.5rem,1.2rem + 1vw,2rem)}
.kn-acceso__d{margin:.5rem 0 1.5rem;color:var(--apoyo);font-size:.9375rem}
.kn-acceso__pie{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--filete);
  font-size:.875rem;color:var(--apoyo)}

/* ── la barra estrecha ─────────────────────────────────────────── */
@media (max-width:900px){
  .kn-nav{display:none}
  .kn-barra__acc{margin-left:auto}
}
@media (max-width:520px){
  .kn-idioma{display:none}
  .kn-barra__in{gap:.75rem}
}

/* ── páginas editoriales ───────────────────────────────────────── */
.kn-legal__in{max-width:68ch}
.kn-legal__fecha{margin:.6rem 0 2rem;font-size:.875rem;color:var(--apoyo)}
.kn-prosa h2{margin:2.2rem 0 .6rem;font-size:1.375rem}
.kn-prosa h3{margin:1.6rem 0 .5rem;font-size:1.0625rem}
.kn-prosa p,.kn-prosa li{color:var(--tinta-2);margin-bottom:.9rem}
.kn-prosa ul,.kn-prosa ol{margin:0 0 1.2rem 1.2rem;list-style:disc}
.kn-prosa ol{list-style:decimal}
.kn-prosa a{color:var(--sello);text-underline-offset:3px}
.kn-prosa table{width:100%;border-collapse:collapse;margin-bottom:1.2rem}
.kn-prosa th,.kn-prosa td{border:1px solid var(--filete);padding:.6rem .7rem;text-align:left}

/* ── tienda ────────────────────────────────────────────────────── */
.kn-woo a{color:var(--sello)}
.kn-woo .button{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-weight:600;background:var(--sello);color:var(--sello-ink);
  border:1px solid var(--sello);border-radius:var(--ctrl);padding:.72rem 1.1rem;
  text-decoration:none}
.kn-woo input,.kn-woo select,.kn-woo textarea{font:inherit;background:var(--papel-3);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);padding:.7rem .85rem}

/* ── grupos de la ficha de alta ────────────────────────────────── */
.kn-acceso__caja--ancha{max-width:720px}
.kn-grupo{border:0;border-top:1px solid var(--filete-2);margin:0 0 1.75rem;padding:1.25rem 0 0}
.kn-grupo:first-of-type{border-top:0;padding-top:0}
.kn-grupo legend{display:flex;align-items:center;gap:.6rem;padding:0;
  font-family:var(--fd);font-weight:600;font-size:.9375rem}
.kn-grupo__n{font-variant-numeric:tabular-nums;font-size:.75rem;letter-spacing:.1em;
  color:var(--sello);border:1px solid var(--sello);padding:.15rem .4rem}
.kn-grupo__d{margin:.6rem 0 1.1rem;font-size:.875rem;color:var(--apoyo);max-width:52ch}
.kn-par{display:grid;gap:0 1.25rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.kn-par{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kn-campo--sep{margin-top:1.1rem}
.kn-acceso input[type=email],.kn-acceso input[type=password],.kn-acceso input[type=text],
.kn-acceso input[type=tel]{width:100%;font:inherit;color:var(--tinta);
  background:var(--papel-3);border:1px solid var(--filete-2);border-radius:var(--ctrl);
  padding:.7rem .85rem;transition:border-color var(--t),box-shadow var(--t)}
.kn-acceso input:focus{outline:0;border-color:var(--sello);box-shadow:inset 0 0 0 1px var(--sello)}
.kn-b--ancho{width:100%;margin-top:1.25rem}
.kn-casilla{display:flex;gap:.6rem;align-items:flex-start;margin-top:1rem;font-size:.875rem}
.kn-casilla input{margin-top:.2rem;flex:none;accent-color:var(--sello)}
.kn-casilla--legal{color:var(--tinta-2)}
.kn-casilla--legal a{color:var(--sello);text-underline-offset:3px}
.kn-acceso__pie a{color:var(--sello);text-underline-offset:3px}

/* ── las dos ranuras de la identificación ──────────────────────── */
.kn-sello-chip{margin-left:auto;font-family:var(--fd);font-weight:700;font-size:.6875rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--sello);
  border:2px solid var(--sello);padding:.2rem .45rem;transform:rotate(-2deg)}
.kn-ranura{display:grid;gap:.5rem 1.5rem;padding:1rem 0;
  border-bottom:1px solid var(--filete);grid-template-columns:minmax(0,1fr)}
@media (min-width:600px){.kn-ranura{grid-template-columns:11rem minmax(0,1fr)}}
.kn-ranura:last-of-type{border-bottom:0}
.kn-ranura__k{font-family:var(--fd);font-weight:600;font-size:.875rem;padding-top:.55rem}
.kn-ranura__k em{display:block;font-style:normal;font-weight:400;font-size:.75rem;color:var(--apoyo)}
.kn-ranura__v{border:1px dashed var(--filete-2);background:var(--papel-2);
  padding:.75rem;transition:border-color var(--t),background var(--t)}
.kn-ranura.is-puesta .kn-ranura__v{border-style:solid;border-color:var(--sello);background:var(--sello-2)}
.kn-ranura.is-mal .kn-ranura__v{border-style:solid;border-color:var(--alto);background:var(--alto-2)}
.kn-ranura input[type=file]{width:100%;font:inherit;font-size:.875rem}
.kn-ranura__img{width:100%;max-width:220px;margin-bottom:.6rem;border:1px solid var(--filete-2)}
.kn-ranura__pie{margin-top:.5rem;font-size:.8125rem;color:var(--apoyo);
  overflow-wrap:anywhere}
.kn-ranura__aviso{margin-top:1rem;padding:.7rem .9rem;font-size:.875rem;
  color:var(--alto);background:var(--alto-2);border:1px solid var(--alto)}

/* ══════════════════════════════════════════════════════════════
   PANTALLAS CON SESIÓN: escritorio, sello y autorizaciones
   ══════════════════════════════════════════════════════════════ */

.kn-angosto{max-width:36rem}
.kn-app__cab{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;
  gap:1rem;margin-bottom:1.75rem}
.kn-app__cab--centro{justify-content:center;text-align:center}
.kn-app__cab--centro .kn-marca-agua{justify-content:center}
.kn-app__cab h1{margin-top:.6rem}
.kn-app__d{margin-top:.7rem;color:var(--tinta-2);max-width:56ch}
.kn-app__estado{font-size:.9375rem;color:var(--tinta-2);display:flex;align-items:center;gap:.5rem}
.kn-app__pie{margin-top:.9rem;text-align:center;font-size:.8125rem;color:var(--apoyo)}
.kn-app__acc{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--filete)}
.kn-marca-agua--alto{color:var(--alto)}
.kn-marca-agua--alto::before{background:var(--alto)}

.kn-aviso-caja{background:var(--papel-3);border:1px solid var(--filete-2);
  border-top:3px solid var(--sello);padding:clamp(1.5rem,4vw,2.5rem);max-width:44rem}
.kn-aviso-caja h2{margin:.8rem 0 .8rem;font-size:clamp(1.25rem,1.05rem + .8vw,1.625rem)}
.kn-aviso-caja p{color:var(--tinta-2);max-width:56ch}
.kn-aviso-caja .kn-b{margin-top:1.4rem}

.kn-asiento{margin-top:0;margin-bottom:1.75rem}
.kn-asiento dd small{font-size:.6875rem;font-weight:600;color:var(--apoyo);margin-left:.2rem}

/* El escritorio: la partida nueva y el manifiesto, lado a lado. */
.kn-escritorio{display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:1000px){.kn-escritorio{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}
.kn-ficha__cuerpo{padding:1.1rem}
.kn-ficha--viva .kn-ficha__cab span{opacity:1}
.kn-ficha__r--fuerte{background:var(--sello-2)}
.kn-ficha__r--fuerte dd{color:var(--sello)}
.kn-asiento-chico{margin:1.25rem 0 0;border:1px solid var(--filete);background:var(--papel-2)}

/* El monto: la moneda va pegada al campo, no dentro como marca de agua. */
.kn-monto{display:flex;align-items:stretch;border:1px solid var(--filete-2);background:var(--papel-3)}
.kn-monto__m{display:flex;align-items:center;padding:0 .7rem;background:var(--papel-2);
  border-right:1px solid var(--filete);font-family:var(--fd);font-weight:600;
  font-size:.8125rem;color:var(--apoyo)}
.kn-monto input{flex:1;min-width:0;border:0;background:transparent;font:inherit;
  font-family:var(--fd);font-weight:700;font-size:1.375rem;padding:.6rem .8rem;
  font-variant-numeric:tabular-nums}
.kn-monto input:focus{outline:0}
.kn-monto:focus-within{border-color:var(--sello);box-shadow:inset 0 0 0 1px var(--sello)}
[data-monto-msg]{display:block;margin-top:.4rem;font-size:.8125rem;color:var(--apoyo)}
[data-monto-msg].is-mal{color:var(--alto)}
.kn-rapidos{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}
.kn-b--chico{padding:.4rem .7rem;font-size:.8125rem}

.kn-pista{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  margin-top:.45rem;font-size:.8125rem;color:var(--apoyo)}
.kn-pista b{font-variant-numeric:tabular-nums;font-weight:600;flex:none}
[data-billetera] input{width:100%;font:inherit;font-family:var(--fd);
  background:var(--papel-3);border:1px solid var(--filete-2);border-radius:var(--ctrl);
  padding:.7rem .85rem;overflow-wrap:anywhere}
[data-billetera] input:focus{outline:0;border-color:var(--sello);box-shadow:inset 0 0 0 1px var(--sello)}
[data-billetera].is-ok input{border-color:var(--ok)}
[data-billetera].is-ok .kn-pista{color:var(--ok)}
[data-billetera].is-warn input{border-color:var(--pausa)}
[data-billetera].is-warn .kn-pista{color:var(--pausa)}
[data-billetera].is-mal input{border-color:var(--alto)}
[data-billetera].is-mal .kn-pista{color:var(--alto)}

/* ── manifiesto de partidas ────────────────────────────────────── */
.kn-rueda{overflow-x:auto}
.kn-tabla{width:100%;border-collapse:collapse;font-size:.875rem}
.kn-tabla th{text-align:left;font-family:var(--fd);font-weight:600;font-size:.6875rem;
  letter-spacing:.09em;text-transform:uppercase;color:var(--apoyo);
  padding:.7rem 1.1rem;border-bottom:1px solid var(--filete-2);white-space:nowrap}
.kn-tabla td{padding:.75rem 1.1rem;border-bottom:1px solid var(--filete);vertical-align:middle}
.kn-tabla tr:last-child td{border-bottom:0}
.kn-tabla .n{font-variant-numeric:tabular-nums;white-space:nowrap}
.kn-apagado{color:var(--apoyo)}
.kn-vacio{padding:2.5rem 1.5rem;text-align:center;color:var(--tinta-2)}
.kn-vacio .kn-i{margin:0 auto .8rem;color:var(--filete-2)}
.kn-vacio__d{margin-top:.35rem;font-size:.875rem;color:var(--apoyo)}
.kn-cargando{padding:2rem;text-align:center;color:var(--apoyo);font-size:.875rem}

/* ── diálogo ───────────────────────────────────────────────────── */
/* Ojo: el layout va bajo [open]. Un display suelto ABRE un <dialog> cerrado. */
.kn-dlg{border:1px solid var(--filete-2);border-top:3px solid var(--sello);
  border-radius:var(--ctrl);background:var(--papel-3);color:var(--tinta);
  padding:clamp(1.25rem,3vw,1.75rem);max-width:30rem;width:calc(100% - 2rem)}
.kn-dlg[open]{display:block}
.kn-dlg::backdrop{background:rgba(18,26,19,.45)}
.kn-dlg h2{font-size:1.25rem}
.kn-dlg__d{margin:.7rem 0 1.2rem;color:var(--tinta-2);font-size:.9375rem}
.kn-dlg__d-l{margin:0 0 1.4rem;border-top:1px solid var(--filete)}
.kn-dlg__d-l > div{display:flex;justify-content:space-between;gap:1rem;
  padding:.65rem 0;border-bottom:1px solid var(--filete)}
.kn-dlg__d-l dt{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--apoyo)}
.kn-dlg__d-l dd{margin:0;font-family:var(--fd);font-weight:600;font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;text-align:right}
.kn-dlg__f{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}
.kn-b--alto{background:var(--alto);color:#fff;border-color:var(--alto)}
.kn-b--alto:hover{background:#8B1B1B;border-color:#8B1B1B}

/* ── el código de seis dígitos ─────────────────────────────────── */
.kn-sello-rotulo{text-align:center;font-family:var(--fd);font-weight:600;
  font-size:.8125rem;margin-bottom:.7rem}
.kn-codigo{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.25rem}
.kn-codigo input{width:2.75rem;height:3.25rem;text-align:center;font-family:var(--fd);
  font-weight:700;font-size:1.5rem;background:var(--papel-2);color:var(--tinta);
  border:1px solid var(--filete-2);border-radius:var(--ctrl);font-variant-numeric:tabular-nums}
.kn-codigo input:focus{outline:0;border-color:var(--sello);box-shadow:inset 0 0 0 1px var(--sello)}
.kn-codigo input.is-puesta{background:var(--sello-2);border-color:var(--sello)}

/* ── autorizaciones ────────────────────────────────────────────── */
.kn-pestanas{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.kn-pestana{display:inline-flex;align-items:center;gap:.45rem;font:inherit;
  font-family:var(--fd);font-weight:600;font-size:.875rem;cursor:pointer;
  background:transparent;color:var(--tinta-2);border:1px solid var(--filete-2);
  border-radius:var(--ctrl);padding:.45rem .8rem;transition:background var(--t),color var(--t),border-color var(--t)}
.kn-pestana b{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--apoyo)}
.kn-pestana:hover{border-color:var(--tinta-2)}
.kn-pestana.is-on{background:var(--sello);border-color:var(--sello);color:var(--sello-ink)}
.kn-pestana.is-on b{color:var(--sello-ink);opacity:.8}
.kn-herramientas{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1rem}
.kn-buscar{display:flex;align-items:center;gap:.5rem;flex:1;min-width:14rem;
  background:var(--papel-3);border:1px solid var(--filete-2);padding:0 .7rem}
.kn-buscar .kn-i{flex:none;color:var(--apoyo)}
.kn-buscar input{flex:1;min-width:0;border:0;background:transparent;font:inherit;padding:.6rem 0}
.kn-buscar input:focus{outline:0}
.kn-buscar:focus-within{border-color:var(--sello)}
.kn-paginador{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:.6rem;padding:.8rem 1.1rem;border-top:1px solid var(--filete);font-size:.8125rem;color:var(--apoyo)}
.kn-paginador > div{display:flex;gap:.5rem}

.kn-velo{position:fixed;inset:0;background:rgba(18,26,19,.4);opacity:0;visibility:hidden;
  transition:opacity var(--paso),visibility var(--paso);z-index:60}
.kn-velo.is-on{opacity:1;visibility:visible}
.kn-cajon{position:fixed;top:0;right:0;bottom:0;width:min(34rem,100%);z-index:61;
  background:var(--papel-2);border-left:1px solid var(--filete-2);
  display:flex;flex-direction:column;transform:translateX(100%);
  transition:transform var(--paso) ease;overflow:hidden}
.kn-cajon.is-on{transform:none}
.kn-cajon__cab{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:1.1rem 1.25rem;border-bottom:1px solid var(--filete-2);background:var(--papel-3)}
.kn-cajon__cab h2{font-size:1.125rem}
.kn-cajon__cab p{margin-top:.2rem;font-size:.875rem;color:var(--apoyo)}
.kn-cajon__cuerpo{flex:1;overflow-y:auto;padding:1.25rem}
.kn-cajon__pie{padding:1rem 1.25rem;border-top:1px solid var(--filete-2);background:var(--papel-3);
  display:flex;flex-wrap:wrap;gap:.5rem}
.kn-cerrar{flex:none;background:transparent;border:0;color:var(--tinta-2);cursor:pointer;padding:.2rem}
.kn-cerrar:hover{color:var(--tinta)}

/* Piezas que pinta el guion del panel dentro del expediente. */
.kn-block{margin-bottom:1.5rem}
.kn-block h3{font-family:var(--fd);font-size:.75rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sello);margin-bottom:.6rem}
.kn-docs{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}
.kn-doc{display:block;padding:.6rem .7rem;background:var(--papel-3);
  border:1px solid var(--filete-2);font-size:.8125rem;color:var(--sello);text-decoration:none}
.kn-doc:hover{border-color:var(--sello)}
.kn-qa{border-top:1px solid var(--filete)}
.kn-qa > div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;
  border-bottom:1px solid var(--filete);font-size:.875rem}
.kn-qa dt{color:var(--apoyo)}
.kn-qa dd{margin:0;text-align:right}
.kn-log{font-size:.8125rem;color:var(--tinta-2)}
.kn-log li{padding:.4rem 0;border-bottom:1px solid var(--filete)}
.kn-decision{padding:.6rem .8rem;font-size:.875rem;border:1px solid var(--filete-2);
  background:var(--papel-3)}
.kn-decision--wait{border-color:var(--pausa);background:var(--pausa-2)}
.kn-spin{display:inline-block;width:1rem;height:1rem;border:2px solid var(--filete-2);
  border-top-color:var(--sello);border-radius:50%;animation:kn-gira .7s linear infinite}
@keyframes kn-gira{to{transform:rotate(360deg)}}
