/* ============================================================
   MAPPING DOC - editor de texto por temporalidad (M4.5)
   Sensacion de documento, no de formulario: encabezado, filete y texto.
   Sin dropzone, sin tarjeta por parrafo, sin toolbar, sin caja de input.
   Enter escribe un salto de linea DENTRO del parrafo, asi que una
   temporalidad se lee como un bloque continuo de texto.
   Solo tokens existentes; se carga en las dos superficies.
   ============================================================ */
.kmd{display:flex;flex-direction:column;gap:18px}
.kmd-tf{display:flex;flex-direction:column;gap:6px;min-width:0}
.kmd-h{margin:0;padding:0 0 6px;border-bottom:1px solid var(--border);
  font-family:var(--font-ui);font-size:11px;font-weight:700;letter-spacing:.10em;
  text-transform:uppercase;color:var(--text-3)}
.kmd-body{display:flex;flex-direction:column;gap:2px;min-width:0}
/* El parrafo casi no se ve como control: es texto sobre la hoja. La altura la
   manda el contenido (autoGrow en JS), por eso no hay scroll interno nunca.
   white-space explicito para que ninguna hoja del tema pise el salto de linea.

   El selector se escribe .kmd .kmd-p -no .kmd-p a secas- a proposito: Astra
   define una sombra base y un fondo sobre el selector `textarea`, que a un
   textarea aislado le ganaria por orden de fuente. Subir a especificidad de
   dos clases (0,2,0) le gana a `textarea` (0,0,1) sin recurrir a !important, y
   deja el editor como documento y no como campo de formulario. El mismo
   contenedor .kmd envuelve al editor en el formulario y en el drawer, asi que
   la regla vale en las dos superficies. */
.kmd .kmd-p{display:block;width:100%;box-sizing:border-box;
  margin:0;padding:6px 8px 6px 10px;border:0;border-radius:6px;
  background:transparent;color:var(--text);
  font-family:var(--font-ui);font-size:13.5px;line-height:1.62;
  white-space:pre-wrap;
  resize:none;overflow:hidden;min-height:34px;outline:none;
  /* Anula explicitamente la sombra de input de Astra: box-shadow no se suma
     entre reglas, la ganadora reemplaza. En reposo, ninguna sombra. */
  box-shadow:none;
  transition:background-color .12s ease,box-shadow .12s ease}
.kmd .kmd-p::placeholder{color:var(--text-4)}
/* Hover y foco se notan pero NO dibujan una caja de ancho completo: un filete
   a la izquierda marca el parrafo activo, como la linea viva de un documento.
   El foco redeclara box-shadow entero (filete inset), reemplazando la sombra
   de Astra; no hay sombra de cuatro aristas. */
.kmd .kmd-p:hover{background:rgba(var(--primary-rgb),.03)}
.kmd .kmd-p:focus{background:rgba(var(--primary-rgb),.045);
  box-shadow:inset 2px 0 0 rgba(var(--primary-rgb),.45)}
.kmd .kmd-p[readonly]{opacity:.6;cursor:not-allowed}
.kmd .kmd-p[readonly]:hover,.kmd .kmd-p[readonly]:focus{background:transparent;box-shadow:none}
/* Aviso de bloqueo: corrupcion o imagenes previas a M5. */
.kmd-lock{margin:0 0 4px;padding:9px 12px;border-radius:9px;
  border:1px solid var(--border);background:var(--surface-2);
  font-family:var(--font-ui);font-size:12px;line-height:1.45;color:var(--text-2)}
@media(max-width:720px){
  .kmd{gap:16px}
  .kmd .kmd-p{font-size:14px;min-height:36px;padding:7px 8px 7px 10px}
}

/* M4: contenedor inerte del mapeo legacy. Sigue en el formulario porque
   JetFormBuilder lo necesita para enviar, pero no ocupa, no se ve y no se
   tabula. [hidden] ya lo oculta; esto blinda contra hojas que lo pisen. */
.k-nf-maplegacy,.k-nf-maplegacy[hidden]{display:none !important}
/* El editor ocupa todo el ancho de su superficie en ambas pantallas. */
.k-nf-tfgrid{display:block}
#k-nf-mapdoc,#klog-dw-mapdoc{display:block;width:100%;box-sizing:border-box}
#klog-dw-mapdoc{margin:2px 0 6px}
