/* ===========================================================================
   Cascarón visual ISONA LegalTech (FASE 1B).
   Este archivo SOLO agrega la estructura de navegación (sidebar + vistas) y
   una identidad visual propia. No modifica ni elimina las reglas de
   src/styles.css (siguen gobernando tarjetas, listas, estados de carga,
   etc.) — se carga después para poder reacomodar el layout alrededor de
   ellas sin tocarlas.
   =========================================================================== */

:root{
  /* ---- Color: navy sidebar, ISONA blue accent ---- */
  --isona-azul-oscuro: #101f38;
  --isona-azul-oscuro-2: #16294a;
  --isona-azul-oscuro-3: #1c3054;
  --isona-azul-borde: #24365a;
  --isona-azul-acento: #3b6fd8;
  --isona-azul-acento-hover: #2f5cc2;
  --isona-azul-acento-suave: #eaf0fd;
  --isona-texto-claro: #e8ecf5;
  --isona-texto-claro-tenue: #93a1c2;
  --isona-fondo: #f6f7fb;
  --isona-fondo-tarjeta: #ffffff;
  --isona-fondo-hover: #eef1f8;
  --isona-borde: #e3e6ee;
  --isona-borde-fuerte: #cdd3e2;
  --isona-texto: #1b2333;
  --isona-texto-tenue: #5b6479;
  --isona-texto-tenue-2: #838ba3;

  /* ---- Estado ---- */
  --isona-exito: #2f7d5c;
  --isona-alerta: #b8863f;
  --isona-peligro: #a1453b;
  --isona-info: #3b6fd8;
  --isona-disabled-fondo: #f1f2f6;
  --isona-disabled-texto: #a7adbd;

  /* ---- Prioridad (compartida con tareas/audiencias) ---- */
  --isona-prio-urgente: var(--alta, #a1453b);
  --isona-prio-normal: var(--media, #b8863f);
  --isona-prio-baja: var(--baja, #5b7a8c);

  /* ---- Tipografía ---- */
  --isona-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* ---- Espaciado ---- */
  --isona-space-1: 4px;
  --isona-space-2: 8px;
  --isona-space-3: 12px;
  --isona-space-4: 16px;
  --isona-space-5: 20px;
  --isona-space-6: 24px;
  --isona-space-7: 32px;
  --isona-space-8: 40px;

  /* ---- Radios y bordes ---- */
  --isona-radio-sm: 6px;
  --isona-radio-md: 10px;
  --isona-radio-lg: 14px;
  --isona-radio-pill: 999px;
  --isona-borde-ancho: 1px;

  /* ---- Sombras ---- */
  --isona-sombra-sm: 0 1px 2px rgba(16, 31, 56, .06);
  --isona-sombra-md: 0 6px 20px rgba(16, 31, 56, .10);
  --isona-sombra-modal: 0 20px 60px rgba(16, 31, 56, .28);

  --isona-sidebar-ancho: 252px;

  /* Reemplaza el acento verde original por el azul de ISONA en todos los
     componentes reutilizados de src/styles.css (botones, tabs, tags,
     estados activos) — un solo punto de cambio, sin tocar ese archivo. */
  --accent: var(--isona-azul-acento);
}

body{
  background: var(--isona-fondo);
  font-family: var(--isona-sans);
}

/* ---------------------------------------------------------------------
   Tipografía funcional: títulos de vista, datos y componentes usan SIEMPRE
   sans (Inter). El serif ('--serif', heredado de src/styles.css) queda
   reservado únicamente para el wordmark de marca en el sidebar. Estas
   reglas pisan las de src/styles.css (mismo peso de especificidad, cargan
   después) sin tocar ese archivo.
   --------------------------------------------------------------------- */
.isona-view-titulo,
.isona-home-titulo,
.isona-view[data-view="inicio"] .saludo,
.seccion-header h2,
.tira-col h2,
.section-title{
  font-family: var(--isona-sans);
}

/* ---------------------------------------------------------------------
   Foco visible consistente para navegación por teclado.
   --------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline: 2px solid var(--isona-azul-acento);
  outline-offset: 2px;
  border-radius: var(--isona-radio-sm);
}
.isona-sidebar a:focus-visible,
.isona-sidebar button:focus-visible{
  outline-color: #fff;
}

/* ---------------------------------------------------------------------
   Controles "Próximamente" / no operativos: mismo lenguaje visual en toda
   la app (aria-disabled="true" + apariencia atenuada + cursor not-allowed).
   Nunca quedan silenciosamente rotos: un click muestra el aviso flotante
   (#isona-toast, ver isona-shell.js).
   --------------------------------------------------------------------- */
[aria-disabled="true"]{
  cursor: not-allowed;
  opacity: .62;
}
.isona-proximamente-tag{
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--isona-texto-tenue-2);
  background: var(--isona-disabled-fondo);
  border-radius: var(--isona-radio-sm);
  padding: 2px 7px;
  margin-left: 8px;
  vertical-align: middle;
}

.login-marca{
  font-family: var(--isona-sans);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--isona-texto-tenue);
  text-align: center;
  margin: 0 0 10px;
}
.login-marca span{ color: var(--isona-azul-acento); }

/* ---------------------------------------------------------------------
   Layout general: sidebar fija + contenido principal
   --------------------------------------------------------------------- */
#app{
  display: flex;
  min-height: 100vh;
  align-items: stretch;
}
#app[hidden]{ display: none; }

.isona-sidebar{
  width: var(--isona-sidebar-ancho);
  flex: 0 0 var(--isona-sidebar-ancho);
  background: var(--isona-azul-oscuro);
  color: var(--isona-texto-claro);
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 40;
}

.isona-marca{
  display: flex;
  flex-direction: column;
  padding: 6px 10px 22px;
  border-bottom: 1px solid var(--isona-azul-borde);
  margin-bottom: 14px;
}
.isona-marca-nombre{
  font-family: var(--serif, serif);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: .03em;
  color: #fff;
}
.isona-marca-sub{
  font-size: 11.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--isona-texto-claro-tenue);
}

.isona-nav{
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.isona-nav-item{
  display: flex;
  align-items: center;
  gap: 11px;
  text-align: left;
  border: none;
  background: transparent;
  color: var(--isona-texto-claro-tenue);
  font: inherit;
  font-size: 13.5px;
  padding: 9px 12px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
}
.isona-nav-icono{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.isona-nav-icono svg{ width: 17px; height: 17px; display: block; }
.isona-nav-item:hover{ background: var(--isona-azul-oscuro-2); color: #fff; }
.isona-nav-item.is-activa{
  background: var(--isona-azul-oscuro-3);
  color: #fff;
  font-weight: 600;
  box-shadow: inset 3px 0 0 var(--isona-azul-acento);
}

.isona-sidebar-pie{
  border-top: 1px solid var(--isona-azul-borde);
  padding-top: 14px;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.isona-ayuda-btn{
  display: flex;
  align-items: center;
  gap: 9px;
  border: none;
  background: transparent;
  color: var(--isona-texto-claro-tenue);
  font: inherit;
  font-size: 12.5px;
  padding: 8px 12px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
  margin-bottom: 8px;
  text-align: left;
}
.isona-ayuda-btn:hover{ background: var(--isona-azul-oscuro-2); color: #fff; }
.isona-ayuda-btn .isona-nav-icono{ width: 16px; height: 16px; }
.isona-ayuda-btn .isona-nav-icono svg{ width: 15px; height: 15px; }
.isona-usuario{
  font-size: 13px;
  color: var(--isona-texto-claro);
  margin: 6px 0 4px;
  padding: 0 12px;
}
.isona-sidebar-pie .btn-logout{
  color: var(--isona-texto-claro-tenue);
  padding: 0 12px;
}
.isona-sidebar-pie .btn-logout:hover{ color: #fff; }

.isona-main{
  flex: 1;
  margin-left: var(--isona-sidebar-ancho);
  padding: 32px 40px 0;
  max-width: 1180px;
}

.isona-view{ display: none; }
.isona-view.is-activa{ display: block; padding-bottom: 40px; }

.isona-view-titulo{
  font-family: var(--isona-sans);
  font-weight: 700;
  font-size: 26px;
  color: var(--isona-texto);
  margin: 4px 0 26px;
}

/* Menú móvil: oculto en escritorio */
.isona-menu-toggle{
  display: none;
  position: fixed;
  top: 16px; left: 16px;
  z-index: 60;
  width: 40px; height: 40px;
  border-radius: 10px;
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
}
.isona-menu-toggle span{
  display: block;
  width: 18px; height: 2px;
  background: var(--isona-texto);
  border-radius: 2px;
}
.isona-overlay{
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(16, 31, 56, .45);
  z-index: 35;
}
.isona-overlay:not([hidden]){ display: block; }

/* ---------------------------------------------------------------------
   Inicio / Asistente
   --------------------------------------------------------------------- */
.isona-home-header{ padding: 0; }
.isona-home-titulo{
  font-family: var(--isona-sans);
  font-weight: 700;
  font-size: 22px;
  color: var(--isona-texto);
  margin: 2px 0 14px;
}
.isona-view[data-view="inicio"] .saludo{ color: var(--isona-texto); }
.isona-view[data-view="inicio"] .secretaria-texto{
  background: var(--isona-fondo-tarjeta);
  border: 1px solid var(--isona-borde);
  border-radius: 12px;
  padding: 16px 18px;
  max-width: none;
}
.isona-acciones-sugeridas{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 22px 0 8px;
}
.isona-chip{
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-texto);
  font: inherit;
  font-size: 13.5px;
  padding: 9px 15px;
  border-radius: 999px;
  cursor: pointer;
}
.isona-chip:hover{ border-color: var(--isona-azul-acento); color: var(--isona-azul-acento); }

/* El bloque conversacional único (contenedor + área de mensajes + selector
   + composer) vive en un solo lugar más abajo — ver "Inicio — bloque
   conversacional único (Fase 1E)" — para no repetir reglas en dos puntos
   del archivo. */

/* ---------------------------------------------------------------------
   Estados vacíos profesionales (Documentos, Biblioteca, etc.)
   --------------------------------------------------------------------- */
.isona-empty{
  border: 1px dashed var(--isona-borde);
  border-radius: 14px;
  padding: 48px 24px;
  text-align: center;
  background: var(--isona-fondo-tarjeta);
}
.isona-empty-titulo{
  font-weight: 600;
  font-size: 15.5px;
  color: var(--isona-texto);
  margin: 0 0 6px;
}
.isona-empty-texto{
  font-size: 13.5px;
  color: var(--isona-texto-tenue);
  margin: 0;
}

/* ---------------------------------------------------------------------
   Configuración
   --------------------------------------------------------------------- */
.isona-config-tarjeta{
  background: var(--isona-fondo-tarjeta);
  border: 1px solid var(--isona-borde);
  border-radius: 12px;
  padding: 20px 22px;
  margin-bottom: 18px;
  max-width: 460px;
}
.isona-config-tarjeta h2{
  font-size: 15px;
  margin: 0 0 8px;
  color: var(--isona-texto);
}
.isona-config-nota{
  font-size: 12.5px;
  color: var(--isona-texto-tenue);
  margin: 0 0 14px;
}
.isona-config-form{
  display: flex;
  gap: 8px;
}
.isona-config-form input{
  flex: 1;
  font-size: 14px;
  padding: 9px 12px;
  border: 1px solid var(--isona-borde);
  border-radius: 8px;
  font-family: inherit;
}

/* Tarjetas y secciones reutilizadas: bordes más suaves, acordes a la
   nueva identidad, sin tocar su comportamiento. */
.card, .audiencia-fila, .cartera-fila, .personal-fila, .archivo-card{
  border-radius: 12px !important;
}

/* ---------------------------------------------------------------------
   Junior — corrección de seguridad: "Revisar" colapsado por defecto,
   botón de Drive (nunca URL en texto), sin nombres de campos técnicos.
   --------------------------------------------------------------------- */
.junior-revisar{
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-texto-tenue);
  font: inherit;
  font-size: 12.5px;
  padding: 5px 12px;
  border-radius: 7px;
  cursor: pointer;
  margin-right: 8px;
}
.junior-revisar:hover{ border-color: var(--isona-azul-acento); color: var(--isona-azul-acento); }
.junior-detalle{ margin-top: 8px; }
.junior-detalle[hidden]{ display: none; }
.junior-drive-btn{
  display: inline-block;
  border: 1px solid var(--isona-azul-acento);
  background: transparent;
  color: var(--isona-azul-acento);
  font-size: 12.5px;
  font-weight: 600;
  padding: 6px 13px;
  border-radius: 7px;
  text-decoration: none;
  margin-top: 4px;
}
.junior-drive-btn:hover{ background: var(--isona-azul-acento); color: #fff; }

/* ---------------------------------------------------------------------
   Modo privacidad — enmascara nombres, carátulas y números de expediente
   en las vistas existentes. Solo visual (filter: blur), reversible al
   instante, guardado únicamente en localStorage (ver isona-shell.js).
   --------------------------------------------------------------------- */
.isona-privacidad-toggle{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  border: 1px solid var(--isona-azul-borde);
  background: var(--isona-azul-oscuro-2);
  color: var(--isona-texto-claro);
  font: inherit;
  font-size: 12.5px;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  margin-bottom: 10px;
}
.isona-privacidad-toggle:hover{ border-color: var(--isona-azul-acento); }
.isona-privacidad-toggle[aria-pressed="true"]{
  background: var(--isona-azul-acento);
  border-color: var(--isona-azul-acento);
  color: #fff;
  font-weight: 600;
}

/* El enmascarado en sí NO usa CSS (a propósito): src/isona-shell.js
   reemplaza el texto real directamente en el DOM (textContent) por
   "••••••••" / "EXPTE. ••••••" / etc. — no hay blur que revertir con
   zoom, DevTools o una captura de pantalla nítida. */

/* ---------------------------------------------------------------------
   Inicio — resumen secundario (clima) y tarjetas de sugerencia
   --------------------------------------------------------------------- */
.isona-home-header{ max-width: 940px; }

/* Tira de clima: discreta, una sola línea, sin competir con el bloque
   conversacional. Se desplaza SIEMPRE, lento y continuo (cintillo/marquee),
   entre o no el texto en el ancho disponible — src/weather.js no se toca,
   esto es puro presentación. El bucle sin salto se logra duplicando el
   contenido dentro del track (#clima + #isona-clima-tira-dup, mismo texto
   calculado una sola vez en cargarClima()) y animando translateX(0) →
   translateX(-50%): cada copia (texto + su separador) ocupa exactamente la
   mitad del ancho del track, así que al desplazar el 50% la segunda copia
   queda pixel a pixel donde estaba la primera al iniciar. */
.isona-clima-tira{
  max-width: 940px;
  margin: 10px 0 0;
  padding: 7px 14px;
  background: var(--isona-azul-acento-suave);
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-pill);
  cursor: default;
}
.isona-clima-tira:focus-visible{
  outline: 2px solid var(--isona-azul-acento);
  outline-offset: 2px;
}
.isona-clima-tira--sin-datos{
  background: var(--isona-fondo-tarjeta);
}
.isona-clima-tira-viewport{
  overflow: hidden;
  width: 100%;
}
.isona-clima-tira-item{
  display: inline-block;
  flex-shrink: 0;
  color: var(--isona-texto-tenue-2);
  font-size: 12.5px;
  line-height: 1.3;
  white-space: nowrap;
  /* El padding derecho actúa como separador entre copias y forma parte del
     "ancho de la copia": así item1 (texto + padding) e item2 (texto +
     padding) son idénticos en ancho, el track mide exactamente 2× ese
     ancho, y translateX(-50%) desplaza precisamente una copia completa —
     de ahí que el bucle no tenga salto visible. */
  padding-right: 56px;
}
/* El track siempre es una fila flexible de ancho intrínseco (las dos copias
   una al lado de la otra) y se desplaza en bucle continuo, exista o no
   overflow real del texto dentro del viewport — este es el cambio central
   de la Fase 1F: antes solo animaba si track.scrollWidth > viewport width
   (ver historial), por lo que un texto corto quedaba estático. */
.isona-clima-tira-track{
  display: flex;
  align-items: center;
  width: max-content;
  animation: isona-clima-desplazamiento 20s linear infinite;
}

@keyframes isona-clima-desplazamiento{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.isona-clima-tira:hover .isona-clima-tira-track,
.isona-clima-tira:focus-within .isona-clima-tira-track,
.isona-clima-tira:focus .isona-clima-tira-track{
  animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce){
  /* Texto totalmente estático: nunca se anima. Se muestra una sola copia
     visible (la segunda, redundante para el ojo, se oculta) recortada con
     puntos suspensivos si no entra en el ancho disponible. */
  .isona-clima-tira-track{
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    animation: none !important;
    transform: none !important;
    width: 100% !important;
  }
  .isona-clima-tira-item{
    padding-right: 0;
  }
  .isona-clima-tira-item + .isona-clima-tira-item{
    display: none !important;
  }
}

.isona-acciones-sugeridas{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--isona-space-3);
  max-width: 940px;
  margin: var(--isona-space-6) 0 var(--isona-space-2);
}
.isona-sugerencia-card{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  text-align: left;
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  border-radius: var(--isona-radio-md);
  padding: var(--isona-space-4);
  cursor: pointer;
  font: inherit;
  transition: border-color .12s ease, box-shadow .12s ease;
}
.isona-sugerencia-card:hover{ border-color: var(--isona-azul-acento); box-shadow: var(--isona-sombra-sm); }
.isona-sugerencia-icono{
  width: 30px; height: 30px;
  border-radius: var(--isona-radio-sm);
  background: var(--isona-azul-acento-suave);
  color: var(--isona-azul-acento);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 2px;
}
.isona-sugerencia-icono svg{ width: 16px; height: 16px; }
.isona-sugerencia-titulo{ font-weight: 600; font-size: 13.5px; color: var(--isona-texto); margin: 0; }
.isona-sugerencia-texto{ font-size: 12px; color: var(--isona-texto-tenue); margin: 0; line-height: 1.4; }

/* ---------------------------------------------------------------------
   Inicio — bloque conversacional único (Fase 1E)
   Un solo contenedor visual agrupa: área de mensajes futuros/estado vacío,
   selector de asistente, etiqueta del composer, textarea y la franja de
   controles secundarios + Enviar. Nunca dos bloques grandes separados.
   Altura total objetivo en escritorio: ~360-430px.
   --------------------------------------------------------------------- */
.isona-chat-modulo{
  max-width: 940px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-lg);
  background: var(--isona-fondo-tarjeta);
  box-shadow: var(--isona-sombra-sm);
  padding: 16px 16px 14px;
  margin: var(--isona-space-6) 0 var(--isona-space-4);
}

.isona-chat-espacio{
  min-height: 182px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
}
.isona-chat-vacio{
  color: var(--isona-texto-tenue);
  font-size: 13.5px;
  line-height: 1.5;
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
}

/* Con mensajes: la caja pasa de "centrada vacía" a lista desplazable
   alineada arriba — mismo contenedor, sin saltos de layout raros. */
.isona-chat-espacio.tiene-mensajes{
  align-items: stretch;
  justify-content: flex-start;
  max-height: 360px;
  overflow-y: auto;
  padding: 4px 4px 8px;
}
.isona-chat-lista{
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}
.isona-chat-burbuja{
  max-width: 82%;
  display: flex;
}
.isona-chat-burbuja-texto{
  margin: 0;
  padding: 9px 12px;
  border-radius: 12px;
  font-size: 13.5px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}
.isona-chat-burbuja-usuario{
  align-self: flex-end;
  justify-content: flex-end;
}
.isona-chat-burbuja-usuario .isona-chat-burbuja-texto{
  background: var(--isona-azul-acento);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.isona-chat-burbuja-asistente{
  align-self: flex-start;
}
.isona-chat-burbuja-asistente .isona-chat-burbuja-texto{
  background: var(--isona-fondo-hover);
  color: var(--isona-texto);
  border-bottom-left-radius: 4px;
}

/* Markdown seguro dentro de una respuesta de asistente (Fase 1I): párrafos,
   encabezados simples y listas, todos construidos como nodos DOM reales
   (ver isonaRenderizarMarkdownSeguro en isona-shell.js) — nunca HTML crudo. */
.isona-chat-burbuja-texto .isona-chat-parrafo,
.isona-chat-burbuja-texto .isona-md-heading{
  margin: 0;
}
.isona-chat-burbuja-texto .isona-chat-parrafo + .isona-chat-parrafo,
.isona-chat-burbuja-texto .isona-md-heading + *,
.isona-chat-burbuja-texto * + .isona-md-heading,
.isona-chat-burbuja-texto ul + *,
.isona-chat-burbuja-texto ol + *,
.isona-chat-burbuja-texto * + ul,
.isona-chat-burbuja-texto * + ol{
  margin-top: 8px;
}
.isona-chat-burbuja-texto .isona-md-heading{
  font-weight: 700;
}
.isona-chat-burbuja-texto ul,
.isona-chat-burbuja-texto ol{
  margin: 0;
  padding-left: 20px;
}
.isona-chat-burbuja-texto li + li{
  margin-top: 2px;
}
.isona-chat-escribiendo{
  align-self: flex-start;
  color: var(--isona-texto-tenue-2);
  font-size: 12.5px;
  font-style: italic;
  padding: 2px 4px;
}
.isona-chat-error{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--isona-peligro-fondo, #fdecec);
  color: var(--isona-peligro);
  font-size: 12.5px;
}
.isona-chat-error-retry{
  flex-shrink: 0;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 6px;
  cursor: pointer;
}

.isona-chat-aviso-privacidad{
  margin: 0;
  font-size: 11px;
  line-height: 1.4;
  color: var(--isona-texto-tenue-2);
}

/* Selector de asistente: UN SOLO color de estado activo para los tres
   asistentes (no hay acento distinto por asistente en esta fase). */
.isona-asistente-selector{
  display: flex;
  gap: 8px;
}
.isona-asistente-tab{
  flex: 1;
  min-width: 0;
  border: 1px solid var(--isona-borde-fuerte);
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-azul-oscuro);
  font: inherit;
  font-size: 13px;
  font-weight: 500;
  padding: 9px 10px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: background .12s ease, color .12s ease, border-color .12s ease;
}
.isona-asistente-tab.is-activa{
  background: var(--isona-azul-oscuro);
  border-color: var(--isona-azul-oscuro);
  color: #fff;
  font-weight: 600;
}

.isona-chat-form{
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.isona-chat-label{
  margin: 0;
  font-size: 11.5px;
  color: var(--isona-texto-tenue-2);
}
.isona-chat-label strong{ color: var(--isona-texto-tenue); font-weight: 600; }

.isona-chat-textarea{
  width: 100%;
  min-height: 96px;
  max-height: 180px;
  resize: none;
  overflow-y: auto;
  border: 1px solid var(--isona-borde);
  border-radius: 10px;
  padding: 12px 14px;
  font: inherit;
  font-size: 14.5px;
  line-height: 1.45;
  background: var(--isona-fondo);
  color: var(--isona-texto);
  box-sizing: border-box;
}
.isona-chat-textarea:focus-visible{
  outline: 2px solid var(--isona-azul-acento);
  outline-offset: 1px;
}

.isona-chat-pie{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.isona-chat-accesorios{
  display: flex;
  gap: 2px;
}
.isona-chat-icono-btn{
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border: none;
  background: transparent;
  color: var(--isona-texto-tenue-2);
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
}
.isona-chat-icono-btn:hover:not([aria-disabled="true"]){ background: var(--isona-fondo-hover); color: var(--isona-azul-acento); }
.isona-chat-icono-btn svg{ width: 17px; height: 17px; }

/* Dictado por voz — estados GRABANDO / TRANSCRIBIENDO del botón de mic.
   Mismo lenguaje visual que el resto de .isona-chat-icono-btn: solo cambia
   color/opacidad, nunca tamaño ni posición. */
.isona-mic-btn.is-grabando{
  color: #fff;
  background: var(--isona-peligro);
}
.isona-mic-btn.is-grabando:hover{ background: var(--isona-peligro); color: #fff; }
.isona-mic-btn.is-transcribiendo{
  color: var(--isona-disabled-texto);
  cursor: default;
}
.isona-mic-btn:disabled{ cursor: default; }

.isona-mic-estado{
  font-size: 12px;
  font-weight: 600;
  color: var(--isona-texto-tenue);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.isona-mic-estado.is-grabando{ color: var(--isona-peligro); }
.isona-mic-estado.is-grabando::before{
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--isona-peligro);
  animation: isona-mic-pulso 1.1s ease-in-out infinite;
}
.isona-mic-estado.is-transcribiendo{ color: var(--isona-texto-tenue-2); }

@keyframes isona-mic-pulso{
  0%, 100%{ opacity: 1; }
  50%{ opacity: .3; }
}

@media (prefers-reduced-motion: reduce){
  .isona-mic-estado.is-grabando::before{ animation: none; }
}

.isona-chat-enviar{
  border: none;
  background: var(--isona-azul-acento);
  color: #fff;
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
}
.isona-chat-enviar:hover{ background: var(--isona-azul-acento-hover); }

/* ---------------------------------------------------------------------
   Pestañas genéricas reutilizables: Causas/Pericias, Biblioteca,
   Configuración. Un solo patrón visual para toda la app.
   --------------------------------------------------------------------- */
.isona-tabs{
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--isona-borde);
  margin-bottom: var(--isona-space-5);
}
.isona-tab{
  border: none;
  background: transparent;
  color: var(--isona-texto-tenue);
  font: inherit;
  font-size: 13.5px;
  font-weight: 500;
  padding: 10px 4px;
  margin-right: var(--isona-space-5);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.isona-tab:hover{ color: var(--isona-texto); }
.isona-tab.is-activa{
  color: var(--isona-azul-oscuro);
  font-weight: 700;
  border-bottom-color: var(--isona-azul-acento);
}
.isona-tab-panel[hidden]{ display: none; }

/* Sub-navegación secundaria (Biblioteca, Configuración): lista vertical de
   secciones dentro de una misma vista. */
.isona-subnav-layout{
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: var(--isona-space-7);
  align-items: start;
}
.isona-subnav{
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: sticky;
  top: var(--isona-space-6);
}
.isona-subnav-item{
  text-align: left;
  border: none;
  background: transparent;
  color: var(--isona-texto-tenue);
  font: inherit;
  font-size: 13px;
  padding: 8px 10px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
}
.isona-subnav-item:hover{ background: var(--isona-fondo-hover); color: var(--isona-texto); }
.isona-subnav-item.is-activa{
  background: var(--isona-azul-acento-suave);
  color: var(--isona-azul-oscuro);
  font-weight: 600;
}
.isona-subnav-panel[hidden]{ display: none; }

/* ---------------------------------------------------------------------
   Causas — búsqueda/filtros visuales, empty state honesto
   --------------------------------------------------------------------- */
.isona-causas-toolbar{
  display: flex;
  flex-wrap: wrap;
  gap: var(--isona-space-2);
  margin-bottom: var(--isona-space-5);
}
.isona-input-buscar{
  flex: 1;
  min-width: 200px;
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-sm);
  padding: 9px 13px;
  font: inherit;
  font-size: 13.5px;
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-texto);
}
.isona-btn-filtro{
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-texto-tenue);
  font: inherit;
  font-size: 13px;
  padding: 9px 14px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
}
.isona-btn-primario{
  border: none;
  background: var(--isona-azul-acento);
  color: #fff;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
}
.isona-btn-primario:hover:not([aria-disabled="true"]){ background: var(--isona-azul-acento-hover); }
.isona-btn-secundario{
  border: 1px solid var(--isona-borde);
  background: transparent;
  color: var(--isona-texto);
  font: inherit;
  font-size: 13px;
  padding: 9px 16px;
  border-radius: var(--isona-radio-sm);
  cursor: pointer;
}
.isona-caratula-clamp,
.cartera-caso,
.audiencia-caso,
.semana-caso,
.junior-caso,
.expediente{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------------------------------------------------------------------
   Novedades — chips de filtro
   --------------------------------------------------------------------- */
.isona-filtros-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: -6px 0 var(--isona-space-5);
}
.isona-filtro-chip{
  border: 1px solid var(--isona-borde);
  background: var(--isona-fondo-tarjeta);
  color: var(--isona-texto-tenue);
  font: inherit;
  font-size: 12.5px;
  padding: 6px 13px;
  border-radius: var(--isona-radio-pill);
  cursor: pointer;
}
.isona-filtro-chip:hover{ border-color: var(--isona-azul-acento); }
.isona-filtro-chip.is-activa{
  background: var(--isona-azul-oscuro);
  border-color: var(--isona-azul-oscuro);
  color: #fff;
  font-weight: 600;
}
.isona-oculto-filtro{ display: none !important; }

/* ---------------------------------------------------------------------
   Documentos — zona de carga (visual, no operativa esta fase)
   --------------------------------------------------------------------- */
.isona-dropzone{
  border: 1.5px dashed var(--isona-borde-fuerte);
  border-radius: var(--isona-radio-lg);
  background: var(--isona-fondo-tarjeta);
  padding: var(--isona-space-8) var(--isona-space-6);
  text-align: center;
  margin-bottom: var(--isona-space-5);
}
.isona-dropzone-icono{
  width: 44px; height: 44px;
  margin: 0 auto var(--isona-space-3);
  border-radius: 50%;
  background: var(--isona-azul-acento-suave);
  color: var(--isona-azul-acento);
  display: flex; align-items: center; justify-content: center;
}
.isona-dropzone-icono svg{ width: 22px; height: 22px; }
.isona-dropzone-titulo{ font-weight: 600; font-size: 14.5px; color: var(--isona-texto); margin: 0 0 4px; }
.isona-dropzone-texto{ font-size: 12.5px; color: var(--isona-texto-tenue); margin: 0 0 18px; }
.isona-dropzone-acciones{ display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.isona-info-formatos{ font-size: 12px; color: var(--isona-texto-tenue-2); margin: 0; }

/* ---------------------------------------------------------------------
   Integraciones — lista honesta de futuras conexiones
   --------------------------------------------------------------------- */
.isona-integracion-fila{
  display: flex;
  align-items: center;
  gap: var(--isona-space-3);
  padding: var(--isona-space-3) 0;
  border-bottom: 1px solid var(--isona-borde);
}
.isona-integracion-fila:last-child{ border-bottom: none; }
.isona-integracion-icono{
  width: 32px; height: 32px;
  flex-shrink: 0;
  border-radius: var(--isona-radio-sm);
  background: var(--isona-fondo-hover);
  color: var(--isona-texto-tenue);
  display: flex; align-items: center; justify-content: center;
}
.isona-integracion-icono svg{ width: 17px; height: 17px; }
.isona-integracion-nombre{ font-weight: 600; font-size: 13.5px; color: var(--isona-texto); margin: 0; flex: 1; }
.isona-badge-estado{
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: var(--isona-radio-pill);
  background: var(--isona-disabled-fondo);
  color: var(--isona-texto-tenue-2);
}

/* ---------------------------------------------------------------------
   Historial — timeline simple
   --------------------------------------------------------------------- */
.isona-timeline-intro{ font-size: 13px; color: var(--isona-texto-tenue); margin: -8px 0 var(--isona-space-5); }

/* ---------------------------------------------------------------------
   Ayuda contextual — modal simple
   --------------------------------------------------------------------- */
.isona-modal-overlay{
  position: fixed; inset: 0;
  background: rgba(16, 31, 56, .5);
  display: flex; align-items: center; justify-content: center;
  padding: var(--isona-space-5);
  z-index: 80;
}
.isona-modal-overlay[hidden]{ display: none; }
.isona-modal{
  background: var(--isona-fondo-tarjeta);
  border-radius: var(--isona-radio-lg);
  box-shadow: var(--isona-sombra-modal);
  padding: var(--isona-space-6);
  max-width: 460px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
}
.isona-modal-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--isona-space-2);
}
.isona-modal-titulo{ font-size: 17px; font-weight: 700; color: var(--isona-texto); margin: 0; }
.isona-modal-cerrar{
  border: none; background: transparent; color: var(--isona-texto-tenue);
  width: 30px; height: 30px; border-radius: var(--isona-radio-sm); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.isona-modal-cerrar:hover{ background: var(--isona-fondo-hover); }
.isona-modal-texto{ font-size: 13px; color: var(--isona-texto-tenue); margin: 0 0 16px; line-height: 1.5; }
.isona-modal-ejemplos{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.isona-modal-ejemplos li{
  font-size: 13px;
  color: var(--isona-texto);
  background: var(--isona-fondo);
  border-radius: var(--isona-radio-sm);
  padding: 10px 12px;
  border: 1px solid var(--isona-borde);
}

/* ---------------------------------------------------------------------
   Aviso flotante para controles "Próximamente" / no operativos
   --------------------------------------------------------------------- */
.isona-toast{
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%) translateY(12px);
  background: var(--isona-azul-oscuro);
  color: #fff;
  font-size: 13px;
  padding: 10px 18px;
  border-radius: var(--isona-radio-md);
  box-shadow: var(--isona-sombra-md);
  z-index: 90;
  opacity: 0;
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease;
}
.isona-toast.is-visible{
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ---------------------------------------------------------------------
   Responsive: tablet y celular
   --------------------------------------------------------------------- */
@media (max-width: 1024px){
  .isona-main{ padding: 28px 24px 0; }
}

@media (max-width: 880px){
  .isona-menu-toggle{ display: flex; }

  .isona-sidebar{
    transform: translateX(-100%);
    transition: transform .2s ease;
    width: min(80vw, 280px);
    flex-basis: min(80vw, 280px);
  }
  .isona-sidebar.is-abierta{ transform: translateX(0); }

  .isona-main{
    margin-left: 0;
    padding: 76px 18px 0;
  }

  .isona-acciones-sugeridas{ gap: 8px; grid-template-columns: 1fr 1fr; }
  .isona-chip{ font-size: 13px; padding: 8px 13px; }
  .isona-subnav-layout{ grid-template-columns: 1fr; }
  .isona-subnav{ position: static; flex-direction: row; flex-wrap: wrap; }

  /* Tablet: sigue siendo UN solo bloque conversacional; los tres botones
     del selector achican tipografía/padding en vez de recortarse. */
  .isona-chat-modulo{ padding: 16px 16px 14px; }
  .isona-chat-espacio{ min-height: 170px; }
  .isona-asistente-tab{ font-size: 12.5px; padding: 9px 6px; }
}

@media (max-width: 560px){
  .isona-main{ padding: 72px 14px 0; }
  .isona-view-titulo{ font-size: 22px; }
  .isona-config-form{ flex-direction: column; }
  .isona-acciones-sugeridas{ grid-template-columns: 1fr; }
  .isona-causas-toolbar{ flex-direction: column; }
  .isona-input-buscar{ min-width: 0; }
  .isona-dropzone{ padding: var(--isona-space-6) var(--isona-space-4); }
  .isona-modal{ padding: var(--isona-space-4); }

  /* Mobile: bloque conversacional compacto, selector en fila legible (sin
     scroll horizontal salvo que sea inevitable), Enviar siempre visible. */
  .isona-chat-modulo{ padding: 14px 14px 12px; gap: 10px; }
  .isona-chat-espacio{ min-height: 140px; }
  .isona-chat-vacio{ font-size: 13px; }
  .isona-asistente-selector{ gap: 6px; }
  .isona-asistente-tab{ font-size: 12px; padding: 8px 4px; }
  .isona-chat-textarea{ min-height: 80px; max-height: 160px; font-size: 14px; padding: 10px 12px; }
  .isona-chat-pie{ gap: 6px; }
  .isona-chat-enviar{ padding: 9px 14px; font-size: 13px; }
}

/* ---------------------------------------------------------------------
   Causas v1 (Fase C1)
   --------------------------------------------------------------------- */
.isona-btn-filtro[aria-pressed="true"]{
  background: var(--isona-azul-acento-suave);
  border-color: var(--isona-azul-acento);
  color: var(--isona-azul-acento);
}
.isona-causa-card{
  display: flex;
  align-items: center;
  gap: var(--isona-space-4);
  padding: var(--isona-space-4);
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-md);
  background: var(--isona-fondo-tarjeta);
  margin-bottom: var(--isona-space-3);
  cursor: pointer;
}
.isona-causa-card:hover{ border-color: var(--isona-borde-fuerte); }
.isona-causa-card-datos{ flex: 1; min-width: 0; }
.isona-causa-card-caratula{ font-weight: 600; font-size: 14.5px; color: var(--isona-texto); margin: 0 0 2px; }
.isona-causa-card-meta{ font-size: 12.5px; color: var(--isona-texto-tenue); margin: 0; }
.isona-causa-card-proximo{ font-size: 12px; color: var(--isona-alerta); margin: 4px 0 0; font-weight: 600; }
.isona-causa-fav-btn{
  background: none; border: none; cursor: pointer;
  font-size: 20px; line-height: 1; color: var(--isona-disabled-texto);
  padding: var(--isona-space-1);
}
.isona-causa-fav-btn.is-favorita{ color: #d6a92c; }

.isona-form-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: var(--isona-space-3) var(--isona-space-4);
  margin-bottom: var(--isona-space-3);
}
.isona-form-campo{ display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--isona-texto-tenue); }
.isona-form-campo input, .isona-form-campo select, .isona-form-campo textarea{
  font-size: 13.5px; padding: 7px 8px; border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-sm); font-family: inherit; color: var(--isona-texto); background: var(--isona-fondo-tarjeta);
}
.isona-form-campo-ancho{ grid-column: 1 / -1; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--isona-texto-tenue); margin-bottom: var(--isona-space-3); }
.isona-form-campo-ancho input, .isona-form-campo-ancho textarea{
  font-size: 13.5px; padding: 7px 8px; border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-sm); font-family: inherit; color: var(--isona-texto);
}
.isona-subform{
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-md);
  padding: var(--isona-space-4);
  margin: var(--isona-space-3) 0;
  background: var(--isona-fondo-hover);
}

.isona-ficha-header{
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: var(--isona-space-4); flex-wrap: wrap;
  margin-bottom: var(--isona-space-4);
}
.isona-ficha-subtitulo{ font-size: 13px; color: var(--isona-texto-tenue); margin: 2px 0 0; }
.isona-ficha-acciones{ display: flex; align-items: center; gap: var(--isona-space-2); }

.isona-resumen-grid{
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr));
  gap: var(--isona-space-3);
  margin-bottom: var(--isona-space-5);
}
.isona-resumen-dato{ font-size: 12.5px; color: var(--isona-texto-tenue); }
.isona-resumen-dato strong{ display: block; font-size: 13.5px; color: var(--isona-texto); font-weight: 600; }
.isona-resumen-subtitulo{ font-size: 13.5px; font-weight: 600; color: var(--isona-texto); margin: var(--isona-space-4) 0 var(--isona-space-2); }

.isona-lista-item{
  display: flex; justify-content: space-between; align-items: flex-start; gap: var(--isona-space-3);
  padding: var(--isona-space-3);
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-sm);
  margin-bottom: var(--isona-space-2);
}
.isona-lista-item-titulo{ font-weight: 600; font-size: 13.5px; color: var(--isona-texto); margin: 0 0 2px; }
.isona-lista-item-meta{ font-size: 12px; color: var(--isona-texto-tenue); margin: 0; }
.isona-lista-item-acciones{ display: flex; gap: var(--isona-space-2); flex-shrink: 0; }
.isona-lista-item.is-vencido{ border-color: var(--isona-peligro); }
.isona-lista-item.is-completada{ opacity: .6; }

.isona-timeline-item{
  display: flex; gap: var(--isona-space-3);
  padding: var(--isona-space-2) 0;
  border-bottom: 1px solid var(--isona-borde);
}
.isona-timeline-item:last-child{ border-bottom: none; }
.isona-timeline-fecha{ font-size: 12px; color: var(--isona-texto-tenue); flex-shrink: 0; width: 76px; }
.isona-timeline-tipo{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em; font-weight: 700; color: var(--isona-azul-acento); }
.isona-timeline-titulo{ font-size: 13.5px; color: var(--isona-texto); margin: 2px 0 0; }

@media (max-width: 600px){
  .isona-form-grid{ grid-template-columns: 1fr; }
}

/* ---- C3: Análisis de Secretaría (sugerencia de ISONA, no decisión del abogado) ---- */
.isona-secretaria{
  margin-top: 10px;
  border: var(--isona-borde-ancho) solid var(--isona-borde);
  border-left: 4px solid var(--isona-azul-acento);
  background: var(--isona-azul-acento-suave);
  border-radius: var(--isona-radio-md);
  padding: 12px 14px;
  display: flex; flex-direction: column; gap: 10px;
}
.isona-secretaria[data-requiere-atencion="si"]{ border-left-color: var(--isona-alerta); }
.isona-secretaria-cabecera{ display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; }
.isona-secretaria-titulo{ font-size: 13px; font-weight: 700; color: var(--isona-azul-oscuro); }
.isona-secretaria-rotulo{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: var(--isona-azul-acento); }
.isona-secretaria-seccion{ display: flex; flex-direction: column; gap: 3px; }
.isona-secretaria-propuesta{ border-top: 1px dashed var(--isona-borde-fuerte); padding-top: 8px; }
.isona-secretaria-etiqueta{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: var(--isona-texto-tenue); }
.isona-secretaria-linea{ margin: 0; font-size: 13px; line-height: 1.45; color: var(--isona-texto); }
.isona-secretaria-nota{ font-size: 12px; color: var(--isona-texto-tenue); }
.isona-secretaria-meta{ margin: 0; font-size: 11px; color: var(--isona-texto-tenue); }
.isona-secretaria-prio{ display: inline-block; font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: var(--isona-radio-pill); background: var(--isona-fondo-hover); color: var(--isona-texto); }
.isona-secretaria-prio-alta{ background: #f6e3e0; color: var(--isona-peligro); }
.isona-secretaria-prio-media{ background: #f6ecd9; color: var(--isona-alerta); }
.isona-secretaria-prio-baja{ background: #e6edf0; color: var(--isona-prio-baja); }
.isona-secretaria-pedir{ margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.isona-propuestas{ margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.isona-propuesta{ border: 1px solid var(--isona-borde); border-left: 4px solid var(--isona-alerta); border-radius: 8px; padding: 10px 12px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
.isona-propuesta-cerrada{ border-left-color: var(--isona-borde); opacity: .9; }
.isona-propuesta-acciones{ display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; }
.isona-propuesta-form{ display: flex; flex-direction: column; gap: 8px; border-top: 1px dashed var(--isona-borde); padding-top: 8px; }
.isona-propuesta-form[hidden]{ display: none; }
.isona-propuesta-campo{ display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--isona-texto-tenue); }
.isona-propuesta-campo input, .isona-propuesta-campo select{ font: inherit; padding: 6px 8px; border: 1px solid var(--isona-borde); border-radius: 6px; }
.isona-timeline-secretaria{
  display: inline-block; margin-left: 8px; font-size: 10.5px; font-weight: 700;
  color: var(--isona-azul-acento); background: var(--isona-azul-acento-suave);
  border-radius: var(--isona-radio-pill); padding: 1px 8px;
}
.isona-junior{ margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.isona-junior-bloqueado{ border-left: 4px solid var(--isona-alerta); padding: 8px 10px; background: #fff; border-radius: 8px; border: 1px solid var(--isona-borde); border-left-width: 4px; }
.isona-junior-listo{ border-left: 4px solid var(--isona-azul-acento); padding: 8px 10px; background: #fff; border-radius: 8px; border: 1px solid var(--isona-borde); border-left-width: 4px; }
.isona-junior-faltante{ display: flex; flex-direction: column; gap: 2px; }
.isona-junior-borrador{ white-space: pre-wrap; margin: 0; font-size: 13px; }
.isona-junior-nueva{ display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--isona-borde); }
.isona-junior-historial{ margin-top: 6px; font-size: 12px; color: var(--isona-texto-tenue); }
.isona-junior-historial ul{ margin: 2px 0 0; padding-left: 18px; }

/* SPRINT-002 — Senior (verificacion del borrador de Junior): registro visual propio (IA · verificacion), distinto de la fuente y de la decision humana. */
.isona-senior{ margin-top: 8px; display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; border: 1px dashed var(--isona-borde); border-radius: 8px; background: #fff; }
.isona-senior-ia{ font-size: 11px; color: var(--isona-texto-tenue); border: 1px dashed var(--isona-borde); border-radius: 6px; padding: 0 6px; }
.isona-senior-estado{ font-size: 12px; letter-spacing: .02em; }
.isona-senior-aprobable{ color: var(--isona-azul-acento); }
.isona-senior-requiere{ color: var(--isona-alerta); }
.isona-senior-bloqueado{ color: var(--isona-alerta); }
.isona-senior-hallazgo{ display: flex; flex-direction: column; gap: 2px; padding-top: 6px; border-top: 1px dashed var(--isona-borde); }
.isona-senior-sugerencia{ font-style: italic; }
.isona-senior button[disabled]{ opacity: .6; cursor: not-allowed; align-self: flex-start; }
.isona-decision{ margin-top: 8px; display: flex; flex-direction: column; gap: 6px; padding: 8px 10px; border: 1px solid var(--isona-borde); border-left: 4px solid var(--isona-azul-acento); border-radius: 8px; background: #fff; }
.isona-decision-humano{ font-size: 11px; color: var(--isona-texto-tenue); border: 1px solid var(--isona-borde); border-radius: 6px; padding: 0 6px; }
.isona-decision-estado{ font-size: 12px; letter-spacing: .02em; }
.isona-decision-aprobada{ color: var(--isona-azul-acento); letter-spacing: .02em; }
.isona-decision-requiere_correccion, .isona-decision-bloqueado{ color: var(--isona-alerta); }
.isona-decision-texto{ width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; padding: 8px; border: 1px solid var(--isona-borde); border-radius: 8px; white-space: pre-wrap; resize: vertical; }
.isona-decision-confirmar{ display: flex; flex-direction: column; gap: 6px; padding: 8px; border: 1px solid var(--isona-azul-acento); border-radius: 8px; }
.isona-decision-acciones{ display: flex; flex-wrap: wrap; gap: 8px; }

/* SPRINT-006 — EXPEDIENTE: master/detail desktop-first. Procedencia inequivoca: MEV (fuente judicial), estudio (cargado a mano) e ISONA (trabajo propio) nunca comparten estilo. */
.exp-cab{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.exp-cab-titulo h2{ margin: 0; font-size: 17px; line-height: 1.3; color: var(--isona-azul-oscuro); }
.exp-cab-etiqueta{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; color: var(--isona-texto-tenue); }
.exp-cab-datos{ display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; font-size: 13px; color: var(--isona-texto-tenue); }
.exp-cab-datos strong{ color: var(--isona-texto); font-weight: 600; }
.exp-cab-nota{ font-size: 11.5px; color: var(--isona-texto-tenue-2); }
.exp-cab-cuentas{ margin: 2px 0 0; font-size: 13.5px; color: var(--isona-texto); }
.exp-cab-sub{ font-size: 12.5px; color: var(--isona-texto-tenue); }
.exp-sync{ border: 1px solid var(--isona-borde-fuerte); border-left-width: 4px; border-radius: var(--isona-radio-md); padding: 8px 12px; background: #fff; display: flex; flex-direction: column; gap: 2px; }
.exp-sync-ok{ border-left-color: var(--isona-exito); }
.exp-sync-alerta{ border-left-color: var(--isona-alerta); background: #fffaf0; }
.exp-sync-neutro{ border-left-color: var(--isona-texto-tenue-2); }
.exp-sync-titulo{ font-size: 13.5px; font-weight: 700; color: var(--isona-azul-oscuro); }
.exp-sync-detalle{ font-size: 12.5px; color: var(--isona-texto); }
.exp-sync-pie{ font-size: 11.5px; color: var(--isona-texto-tenue); }
.exp-disp{ border: 1px solid var(--isona-borde-fuerte); border-left-width: 4px; border-radius: var(--isona-radio-md); padding: 8px 12px; background: #fff; display: flex; flex-direction: column; gap: 4px; }
.exp-disp-ok{ border-left-color: var(--isona-exito); }
.exp-disp-parcial{ border-left-color: var(--isona-alerta); background: #fffaf0; }
.exp-disp-neutro{ border-left-color: var(--isona-texto-tenue-2); }
.exp-disp-titulo{ font-size: 13.5px; font-weight: 700; color: var(--isona-azul-oscuro); }
.exp-disp-detalle{ font-size: 12.5px; color: var(--isona-texto); }
.exp-disp-lista{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.exp-disp-nivel{ font-size: 12.5px; color: var(--isona-texto); overflow-wrap: anywhere; }
.exp-disp-marca{ display: inline-block; width: 1.2em; }
.exp-disp-nombre{ font-weight: 600; }
.exp-disp-texto{ color: var(--isona-texto-tenue); }

.exp-layout{ display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 16px; align-items: start; }
.exp-col-lista{ display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.exp-herramientas{ display: flex; gap: 8px; }
.exp-herramientas input{ flex: 1; min-width: 0; font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: #fff; }
.exp-herramientas button{ white-space: nowrap; font-size: 12px; }
.exp-nota{ margin: 0; font-size: 11.5px; color: var(--isona-texto-tenue); }
.exp-lista{ max-height: 70vh; overflow-y: auto; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-md); background: #fff; }
.exp-lista:focus-visible{ outline: 2px solid var(--isona-azul-acento); outline-offset: 1px; }
.exp-dia{ position: sticky; top: 0; z-index: 1; padding: 4px 12px; font-size: 10.5px; letter-spacing: .06em; font-weight: 700; color: var(--isona-texto-tenue); background: var(--isona-fondo); border-bottom: 1px solid var(--isona-borde); }
.exp-fila{ padding: 8px 12px; border-bottom: 1px solid var(--isona-borde); border-left: 3px solid transparent; cursor: pointer; display: flex; flex-direction: column; gap: 3px; }
.exp-fila:hover{ background: var(--isona-fondo-hover); }
.exp-fila.is-seleccionada{ background: var(--isona-azul-acento-suave); border-left-color: var(--isona-azul-acento); }
.exp-fila-estudio{ border-left-color: var(--isona-alerta); background: #fffbf3; }
.exp-fila-estudio.is-seleccionada{ background: #fdf1d8; }
.exp-fila-linea{ display: flex; gap: 8px; align-items: baseline; min-width: 0; }
.exp-fila-hora{ flex: 0 0 auto; width: 44px; font-size: 11.5px; color: var(--isona-texto-tenue); font-variant-numeric: tabular-nums; }
.exp-fila-titulo{ font-size: 13px; font-weight: 600; color: var(--isona-texto); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.exp-fila-meta{ display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; padding-left: 52px; font-size: 11px; color: var(--isona-texto-tenue); }
.exp-tag{ font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 0 6px; border-radius: 4px; }
.exp-tag-mev{ background: var(--isona-azul-oscuro); color: #fff; }
.exp-tag-estudio{ background: #fff; color: #7a5a1c; border: 1px solid var(--isona-alerta); }
.exp-tag-otro{ background: #fff; color: var(--isona-texto-tenue); border: 1px solid var(--isona-borde-fuerte); }
.exp-clase{ color: var(--isona-texto-tenue); }
.exp-contenido-ok{ color: var(--isona-exito); }
.exp-contenido-pend{ color: var(--isona-texto-tenue-2); }

.exp-col-detalle{ display: flex; flex-direction: column; gap: 12px; min-width: 0; position: sticky; top: 8px; max-height: calc(100vh - 24px); overflow-y: auto; }
.exp-detalle-nav{ display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.exp-detalle-nav button{ font-size: 12px; }
.exp-fuente{ background: #fff; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-md); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.exp-fuente-mev{ border-top: 3px solid var(--isona-azul-oscuro); }
.exp-fuente-estudio{ border-top: 3px solid var(--isona-alerta); background: #fffbf3; }
.exp-rotulo{ font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.exp-rotulo-mev{ color: var(--isona-azul-oscuro); }
.exp-rotulo-estudio{ color: #7a5a1c; }
.exp-rotulo-isona{ color: var(--isona-azul-acento); }
.exp-paso-titulo{ margin: 0; font-size: 15px; line-height: 1.35; color: var(--isona-texto); }
.exp-datos{ display: grid; grid-template-columns: max-content 1fr; gap: 3px 14px; margin: 0; font-size: 12.5px; }
.exp-datos dt{ color: var(--isona-texto-tenue); }
.exp-datos dd{ margin: 0; color: var(--isona-texto); }
.exp-refs{ display: grid; grid-template-columns: max-content 1fr; gap: 3px 14px; margin: 0 0 6px; padding: 8px 10px; background: var(--isona-fondo); border-radius: var(--isona-radio-sm); font-size: 12px; }
.exp-refs dt{ color: var(--isona-texto-tenue); }
.exp-refs dd{ margin: 0; overflow-wrap: anywhere; }
.exp-texto-cab{ font-size: 11px; color: var(--isona-texto-tenue); margin-bottom: 4px; }
.exp-texto{ margin: 0; padding: 12px 14px; max-height: 46vh; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.55; color: #111; background: #fff; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); }
.exp-aviso{ margin: 0; padding: 8px 10px; border-radius: var(--isona-radio-sm); font-size: 12.5px; }
.exp-aviso-neutro{ background: var(--isona-fondo); color: var(--isona-texto); }
.exp-aviso-pend{ background: #fffaf0; border: 1px dashed var(--isona-alerta); color: var(--isona-texto); }
.exp-estudio-desc{ margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; }
.exp-tecnico{ font-size: 11.5px; color: var(--isona-texto-tenue); }
.exp-tecnico p{ margin: 4px 0 0; }
.exp-isona{ background: var(--isona-azul-acento-suave); border: 1px solid #d3def7; border-radius: var(--isona-radio-md); padding: 10px 14px; display: flex; flex-direction: column; gap: 6px; }
.exp-isona-lista{ margin: 0; padding-left: 18px; font-size: 12.5px; display: flex; flex-direction: column; gap: 3px; }
.exp-isona-tipo{ font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: var(--isona-azul-acento); }
.exp-ir{ padding: 2px 9px; font-size: 11.5px; margin-left: 4px; }
/* SPRINT-008: "Ver fuente" (vuelve al paso exacto del Expediente) y resalte del destino. */
.isona-ver-fuente{ border: 1px solid var(--isona-azul-acento); background: transparent; color: var(--isona-azul-acento); border-radius: 999px; padding: 1px 9px; font-size: 11.5px; font-weight: 600; cursor: pointer; }
.isona-ver-fuente:hover, .isona-ver-fuente:focus-visible{ background: var(--isona-azul-acento-suave); }
.isona-ver-fuente-ref{ font-size: 10.5px; font-weight: 700; color: var(--isona-texto-tenue); }
.isona-fuentes{ margin: 6px 0 0; }
.isona-fuentes-lista{ margin: 2px 0 0; padding-left: 18px; font-size: 12.5px; }
.is-destacado{ outline: 2px solid var(--isona-azul-acento); outline-offset: 3px; border-radius: var(--isona-radio-md); transition: outline-color .3s; }

@media (max-width: 960px){
  .exp-layout{ grid-template-columns: minmax(0, 1fr); }
  .exp-lista{ max-height: 45vh; }
  .exp-col-detalle{ position: static; max-height: none; overflow: visible; }
}

/* SPRINT-006 (QA visual): con la pestana Expediente la fila de pestanas de la causa supera el ancho del celular y ensanchaba toda la pagina: ahora se desplaza dentro de si misma. */
@media (max-width: 960px){
  #ficha-tabs{ overflow-x: auto; flex-wrap: nowrap; max-width: 100%; -webkit-overflow-scrolling: touch; }
  #ficha-tabs .isona-tab{ flex: 0 0 auto; }
  #ficha-contenido, .isona-main, .isona-view{ min-width: 0; max-width: 100%; }
  .exp-cab-titulo h2{ overflow-wrap: anywhere; }
  .exp-herramientas{ flex-wrap: wrap; }
}

/* SPRINT-009 — Expediente vivo: información judicial posterior a un trabajo (aviso AL LADO del registro histórico, nunca en su lugar). */
.isona-posterior{ display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; margin: 6px 0; padding: 6px 10px; border-left: 3px solid var(--isona-alerta); background: #fffaf0; border-radius: var(--isona-radio-sm); font-size: 12.5px; color: var(--isona-texto); }
.isona-posterior-titulo{ font-weight: 700; color: var(--isona-texto); }
.isona-posterior-texto{ flex: 1 1 220px; min-width: 0; }
.isona-posterior-nota{ margin: 4px 0; }
.isona-posterior-chip{ display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin: 4px 0; font-size: 12px; font-weight: 600; color: var(--isona-texto); }
.exp-posterior-banda{ margin: 6px 0; padding: 8px 10px; border: 1px solid var(--isona-borde-fuerte); border-left-width: 4px; border-left-color: var(--isona-texto-tenue-2); border-radius: var(--isona-radio-md); background: #fff; display: flex; flex-direction: column; gap: 3px; }
.exp-posterior-banda-con{ border-left-color: var(--isona-alerta); background: #fffaf0; }
.exp-posterior-titulo{ font-size: 13px; font-weight: 700; color: var(--isona-azul-oscuro); }
.exp-posterior-detalle{ font-size: 12.5px; color: var(--isona-texto); }
.exp-posterior-acciones{ display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.exp-fila-posterior{ border-left-color: var(--isona-alerta); background: #fffaf0; }
.exp-fila-posterior.is-seleccionada{ background: #fdf1d8; border-left-color: var(--isona-alerta); }
.exp-marca{ font-size: 10.5px; font-weight: 700; border-radius: 999px; padding: 0 7px; border: 1px solid currentColor; }
.exp-marca-post{ color: #9a5b00; }
.exp-marca-ctx{ color: var(--isona-azul-acento); }
/* SPRINT-010 — Decisión sobre novedades: panel sobrio (sin modal) antes de aprobar una versión con información judicial posterior. */
.isona-novedades{ display: flex; flex-direction: column; gap: 6px; margin: 4px 0; padding: 8px 10px; border-left: 3px solid var(--isona-alerta); background: #fffaf0; border-radius: var(--isona-radio-sm); font-size: 12.5px; color: var(--isona-texto); }
.isona-novedades-opciones{ display: flex; flex-wrap: wrap; gap: 6px 16px; }
.isona-novedades-opcion, .isona-novedades-casilla{ display: flex; gap: 6px; align-items: flex-start; cursor: pointer; line-height: 1.35; }
.isona-novedades-opcion input, .isona-novedades-casilla input{ margin-top: 2px; flex: 0 0 auto; }
.isona-novedades-casilla{ font-weight: 600; }
/* SPRINT-011 — Historial de versiones: V1 -> novedades -> decisión humana -> V2 (sobrio, sin alarmas; V1 nunca se oculta). */
.isona-versiones{ display: flex; flex-direction: column; gap: 6px; margin: 8px 0; padding: 8px 10px; border: 1px solid var(--isona-borde); border-radius: 8px; background: #fff; }
.isona-versiones-lista{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.isona-versiones-version{ padding: 6px 8px; border-left: 3px solid var(--isona-borde); border-radius: var(--isona-radio-sm); background: #fafbfc; }
.isona-versiones-version.is-vigente{ border-left-color: var(--isona-azul-acento); }
.isona-versiones-version.is-destacada{ background: #eef3ff; }
.isona-versiones-paso{ padding: 2px 8px; font-size: 12px; color: var(--isona-texto-tenue); }
.isona-versiones-texto summary{ cursor: pointer; font-size: 12px; color: var(--isona-azul-acento); }
.isona-novedades-lista{ margin: 4px 0 8px 18px; padding: 0; font-size: 12.5px; }

/* ---------------------------------------------------------------------
   SPRINT-012 / Fase C — Favoritas MEV: incorporar e importación
   --------------------------------------------------------------------- */
.inc-seccion{
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-md);
  background: var(--isona-fondo-tarjeta);
  padding: var(--isona-space-4);
  margin-bottom: var(--isona-space-5);
}
.inc-seccion[hidden]{ display: none; }
.inc-titulo{ font-size: 16px; font-weight: 700; color: var(--isona-texto); margin: 0 0 var(--isona-space-3); }
.inc-subtitulo{ font-size: 13px; font-weight: 700; color: var(--isona-texto); margin: var(--isona-space-4) 0 var(--isona-space-2); }
.inc-ayuda{ font-size: 12.5px; color: var(--isona-texto-tenue); margin: 0 0 var(--isona-space-3); line-height: 1.5; }
.inc-aviso, .inc-ultimo{
  font-size: 13px; line-height: 1.5; margin: 0 0 var(--isona-space-3);
  padding: var(--isona-space-3); border-radius: var(--isona-radio-sm);
  background: var(--isona-azul-acento-suave); color: var(--isona-texto);
}
.inc-aviso[hidden], .inc-ultimo[hidden]{ display: none; }
.inc-ultimo.inc-resultado-ok{ background: #e6f3ec; }
.inc-ultimo.inc-resultado-error{ background: #f7e7e4; }
.inc-card{
  display: flex; align-items: flex-start; gap: var(--isona-space-4);
  padding: var(--isona-space-3) var(--isona-space-4);
  border: 1px solid var(--isona-borde); border-left-width: 4px;
  border-radius: var(--isona-radio-md);
  background: var(--isona-fondo-tarjeta);
  margin-bottom: var(--isona-space-3);
}
.inc-tono-ok{ border-left-color: var(--isona-exito); }
.inc-tono-proceso{ border-left-color: var(--isona-info); }
.inc-tono-aviso, .inc-tono-alerta{ border-left-color: var(--isona-alerta); }
.inc-tono-error{ border-left-color: var(--isona-peligro); }
.inc-card-datos{ flex: 1; min-width: 0; }
.inc-cabecera{ display: flex; align-items: flex-start; justify-content: space-between; gap: var(--isona-space-3); flex-wrap: wrap; }
.inc-caratula{ font-weight: 600; font-size: 14.5px; color: var(--isona-texto); margin: 0 0 2px; overflow-wrap: anywhere; }
.inc-meta{ font-size: 12.5px; color: var(--isona-texto-tenue); margin: 0; }
.inc-detalle, .inc-historial, .inc-bloqueo, .inc-progreso, .inc-ayuda-checkpoint{ font-size: 12.5px; line-height: 1.5; margin: var(--isona-space-2) 0 0; color: var(--isona-texto-tenue); }
.inc-progreso{ color: var(--isona-exito); font-weight: 700; }
.inc-bloqueo{ color: var(--isona-alerta); font-weight: 600; }
.inc-ayuda-checkpoint{ color: var(--isona-texto); background: #fbf3e4; padding: var(--isona-space-2) var(--isona-space-3); border-radius: var(--isona-radio-sm); }
.inc-estado{
  font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  padding: 3px 10px; border-radius: var(--isona-radio-pill);
  background: var(--isona-disabled-fondo); color: var(--isona-texto-tenue);
}
.inc-estado-ok{ background: #e6f3ec; color: var(--isona-exito); }
.inc-estado-proceso{ background: var(--isona-azul-acento-suave); color: var(--isona-info); }
.inc-estado-aviso, .inc-estado-alerta{ background: #fbf3e4; color: var(--isona-alerta); }
.inc-estado-error{ background: #f7e7e4; color: var(--isona-peligro); }
.inc-acciones{ display: flex; flex-direction: column; gap: var(--isona-space-2); align-items: stretch; flex-shrink: 0; }
.inc-btn{ white-space: normal; text-align: center; }
.inc-btn:disabled{ background: var(--isona-disabled-fondo); color: var(--isona-disabled-texto); cursor: not-allowed; }
.inc-resultado{ font-size: 12.5px; margin: var(--isona-space-2) 0 0; }
.inc-resultado[hidden]{ display: none; }
.inc-resultado-ok{ color: var(--isona-exito); }
.inc-resultado-error{ color: var(--isona-peligro); }
.inc-resultado-info{ color: var(--isona-texto-tenue); }
@media (max-width: 560px){
  .inc-card{ flex-direction: column; }
  .inc-acciones{ width: 100%; }
  .inc-btn{ width: 100%; min-height: 44px; }
}

/* SPRINT-015 — documentos adjuntos del Expediente */
.exp-adjuntos{ margin-top: 12px; display: grid; gap: 6px; }
.exp-adj-lista{ list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.exp-adj{ border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); padding: 8px 10px; display: grid; gap: 6px; background: var(--isona-fondo-tarjeta); }
.exp-adj-linea{ display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; justify-content: space-between; }
.exp-adj-nombre{ font-weight: 600; overflow-wrap: anywhere; }
.exp-adj-meta{ font-size: 12px; color: var(--isona-texto-tenue); }
.exp-adj-acciones{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.exp-adj-btn{ min-height: 36px; padding: 6px 12px; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); color: var(--isona-texto); cursor: pointer; font: inherit; }
.exp-adj-btn:hover:not(:disabled){ border-color: var(--isona-azul-acento); }
.exp-adj-btn:disabled{ opacity: .6; cursor: progress; }
.exp-adj-msg{ font-size: 12px; color: var(--isona-texto-tenue); }

.exp-adj-conservados{ list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.exp-adj-conservados li{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* SPRINT-020 — resumen: identidad por metodo y limitaciones */
.exp-disp-bloque{ margin-top: 8px; }
.exp-disp-subtitulo{ font-weight: 600; font-size: 12.5px; }
.exp-disp-metodos, .exp-disp-limites{ margin: 4px 0 0; padding-left: 18px; }

/* SPRINT-025 — lector: filtros, ir al paso, navegación cronológica, tamaño del texto y cita */
.exp-filtros{ display: flex; flex-direction: column; gap: 6px; }
.exp-chips{ display: flex; flex-wrap: wrap; gap: 4px; }
.exp-chip{ font: inherit; font-size: 11.5px; padding: 3px 9px; border: 1px solid var(--isona-borde-fuerte); border-radius: 999px; background: #fff; color: var(--isona-texto); cursor: pointer; }
.exp-chip:hover{ background: var(--isona-fondo); }
.exp-chip.is-activo{ background: var(--isona-azul-acento); border-color: var(--isona-azul-acento); color: #fff; }
.exp-chip:focus-visible{ outline: 2px solid var(--isona-azul-acento); outline-offset: 1px; }
.exp-chip-n{ opacity: .75; font-variant-numeric: tabular-nums; }
.exp-filtro-tipo{ display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--isona-texto-tenue); }
.exp-filtro-tipo select{ font: inherit; font-size: 12px; padding: 3px 6px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: #fff; }
.exp-ir{ display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; }
.exp-ir input{ width: 76px; font: inherit; font-size: 13px; padding: 5px 8px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: #fff; }
.exp-ir button{ font-size: 12px; }
.exp-paso-n{ font-weight: 700; color: var(--isona-texto); }
.exp-detalle-nav-crono{ padding-bottom: 6px; border-bottom: 1px solid var(--isona-borde); margin-bottom: 6px; }
.exp-nav-paso{ max-width: 46%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.exp-texto-tools{ float: right; display: inline-flex; gap: 4px; }
.exp-texto-normal{ font-size: 14px; }
.exp-texto-grande{ font-size: 17px; line-height: 1.65; }
.exp-texto-muy-grande{ font-size: 20px; line-height: 1.7; }
.exp-cita-grupo{ margin-top: 6px; }
.exp-cita-rotulo{ font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--isona-texto-tenue); text-transform: uppercase; }

/* SPRINT-026 — búsqueda en los textos originales y versiones del texto */
.exp-bt{ display: grid; gap: 4px; margin: 8px 0; padding: 8px 10px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); }
.exp-bt label{ font-size: 12px; font-weight: 600; }
.exp-bt-fila{ display: flex; gap: 6px; }
.exp-bt-fila input{ flex: 1; min-width: 0; min-height: 40px; }
.exp-bt-res{ list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; }
.exp-bt-item{ margin: 0; }
.exp-bt-ir{ display: grid; gap: 4px; width: 100%; min-height: 44px; text-align: left; padding: 8px 10px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); color: inherit; font: inherit; cursor: pointer; }
.exp-bt-ir:hover, .exp-bt-ir:focus-visible{ border-color: var(--isona-azul-acento); outline: 2px solid transparent; box-shadow: 0 0 0 2px var(--isona-azul-acento); }
.exp-bt-cab{ font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.exp-bt-tags{ display: flex; flex-wrap: wrap; gap: 4px; }
.exp-bt-tag{ font-size: 11px; padding: 1px 6px; border-radius: 999px; border: 1px solid var(--isona-borde-fuerte); }
.exp-bt-tag-texto{ font-weight: 600; }
.exp-bt-frag{ font-size: 12px; color: var(--isona-texto-tenue); overflow-wrap: anywhere; }
.exp-bt-marca{ background: #ffe58a; color: #111; padding: 0 1px; border-radius: 2px; }
.exp-versiones{ margin-top: 8px; }
.exp-versiones-acciones{ display: flex; flex-wrap: wrap; gap: 6px; }
.exp-ver-lista{ margin: 8px 0; padding-left: 0; list-style: none; display: grid; gap: 6px; }
.exp-ver-item{ padding: 8px 10px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); display: grid; gap: 4px; }
.exp-ver-item.is-vigente{ border-color: var(--isona-azul-acento); }
@media (max-width: 640px){ .exp-bt-fila{ flex-direction: column; } .exp-bt-fila button{ min-height: 44px; } }

/* SPRINT-029 — Centro de revisión de versiones */
.rev-intro{ margin-bottom: 10px; }
.rev-h2{ margin: 0 0 4px; font-size: 18px; }
.rev-leyenda{ list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; font-size: 12px; color: var(--isona-texto-tenue); }
.rev-conteo{ margin: 6px 0; }
.rev-layout{ display: grid; grid-template-columns: minmax(180px, 260px) 1fr; gap: 14px; align-items: start; }
.rev-lista{ list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.rev-item{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; width: 100%; min-height: 44px; text-align: left; padding: 8px 10px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); color: inherit; font: inherit; cursor: pointer; }
.rev-item:hover, .rev-item:focus-visible{ border-color: var(--isona-azul-acento); box-shadow: 0 0 0 2px var(--isona-azul-acento); outline: 2px solid transparent; }
.rev-item.is-seleccionada{ border-color: var(--isona-azul-acento); background: var(--isona-azul-acento-suave); }
.rev-item-cab{ font-weight: 600; }
.rev-badge{ display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; border: 1px solid currentColor; white-space: nowrap; }
.rev-badge-ok{ color: var(--isona-exito); }
.rev-badge-pend{ color: var(--isona-alerta); }
.rev-badge-mal{ color: var(--isona-peligro); }
.rev-badge-neutro{ color: var(--isona-texto-tenue); }
.rev-cab{ margin-bottom: 8px; }
.rev-titulo{ margin: 0 0 4px; font-size: 17px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rev-sec{ margin: 0 0 14px; padding: 10px 12px; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); }
.rev-dos{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rev-dos h4, .rev-form h4{ margin: 0 0 4px; font-size: 14px; }
.rev-porque{ margin: 4px 0 8px; padding-left: 18px; }
.rev-hist{ margin: 4px 0; padding-left: 20px; display: grid; gap: 6px; font-size: 13px; }
.rev-diff{ max-height: 60vh; overflow: auto; border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); background: #fff; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.5; color: #111; }
.rev-linea{ display: flex; gap: 6px; padding: 1px 8px; overflow-wrap: anywhere; white-space: pre-wrap; }
.rev-marca{ flex: 0 0 1.2em; font-weight: 700; text-align: center; user-select: none; }
.rev-txt{ flex: 1; min-width: 0; }
.rev-linea-quitado{ background: #fde8e6; border-left: 4px solid #a1453b; }
.rev-linea-agregado{ background: #e5f4ec; border-left: 4px solid #2f7d5c; }
.rev-linea-igual{ border-left: 4px solid transparent; }
.rev-linea-omitida{ color: #5b6479; font-style: italic; font-family: inherit; background: #f6f7fb; }
.rev-mark{ background: #ffe58a; color: #111; text-decoration: underline; text-underline-offset: 2px; }
.rev-sr{ position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rev-form{ display: grid; gap: 8px; margin-top: 8px; }
.rev-opciones, .rev-lims{ border: 1px solid var(--isona-borde-fuerte); border-radius: var(--isona-radio-sm); padding: 8px 10px; margin: 0; }
.rev-check{ display: flex; align-items: flex-start; gap: 8px; min-height: 36px; padding: 4px 0; }
.rev-check input{ margin-top: 4px; width: 18px; height: 18px; }
.rev-form textarea{ width: 100%; box-sizing: border-box; font: inherit; padding: 8px; }
.rev-acciones{ display: flex; flex-wrap: wrap; gap: 8px; }
.rev-acciones button{ min-height: 44px; }
.rev-conf-nota{ margin: 4px 0; overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 760px){ .rev-layout{ grid-template-columns: 1fr; } .rev-dos{ grid-template-columns: 1fr; } .rev-lista{ grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } }
.rev-docs p{ margin: 8px 0 2px; font-size: 13px; }
.rev-docs ul{ margin: 0 0 6px; padding-left: 18px; }
.rev-sec .isona-btn-secundario, .rev-sec .isona-btn-primario{ min-height: 44px; }
.rev-check{ min-height: 44px; align-items: center; }

/* SPRINT-033 — Verificación visual de la capa OCR (texto de menor confianza). Mismo lenguaje visual que el Centro de revisión; el estado nunca depende solo del color (siempre hay texto). */
.ocr-marca{ margin-top: 8px; padding: 8px 10px; border: 1px dashed var(--isona-alerta); border-radius: var(--isona-radio-sm); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; }
.ocr-marca-rotulo{ font-weight: 600; }
.ocr-modal{ position: fixed; inset: 0; z-index: 1000; background: rgba(20, 24, 22, .55); display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 16px; }
.ocr-modal[hidden]{ display: none; }
.ocr-caja{ background: var(--isona-fondo-tarjeta); color: var(--isona-texto); border-radius: var(--isona-radio-sm); border: 1px solid var(--isona-borde); width: min(1180px, 100%); padding: 16px 20px 20px; box-shadow: 0 10px 40px rgba(0, 0, 0, .25); }
.ocr-cab{ display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ocr-cab h2{ margin: 0; font-size: 18px; }
.ocr-paginas{ display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; align-items: center; }
.ocr-pag-actual{ outline: 2px solid var(--isona-azul-acento); }
.ocr-pag-no{ font-size: 12px; color: var(--isona-texto-tenue); border: 1px solid var(--isona-borde); border-radius: 999px; padding: 3px 10px; }
.ocr-cols{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ocr-col{ min-width: 0; }
.ocr-orig{ min-height: 360px; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); padding: 8px; background: rgba(0, 0, 0, .03); }
.ocr-iframe{ width: 100%; height: 520px; border: 0; background: #fff; }
.ocr-texto{ margin: 6px 0; padding: 10px; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); max-height: 520px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font: 14px/1.5 ui-monospace, Menlo, Consolas, monospace; user-select: text; }
.ocr-decision, .ocr-historial{ margin-top: 14px; border-top: 1px solid var(--isona-borde); padding-top: 10px; }
.ocr-fila{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.ocr-fila textarea, .ocr-fila input[type=text], .ocr-fila select{ font: inherit; padding: 6px 8px; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta); color: var(--isona-texto); }
.ocr-fila textarea{ width: 100%; }
.ocr-lista{ margin: 4px 0 8px; padding-left: 18px; font-size: 13px; }
.ocr-h4{ margin: 8px 0 2px; font-size: 14px; }
.ocr-confirmo{ display: block; margin: 8px 0; font-size: 13px; }
.ocr-botones{ display: flex; flex-wrap: wrap; gap: 8px; }
.ocr-ok{ border-color: var(--isona-exito); }
.ocr-mal{ border-color: var(--isona-peligro); }
.ocr-resumen-linea{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0; }
.ocr-mapa{ margin-top: 14px; border-top: 1px solid var(--isona-borde); padding-top: 10px; }
.ocr-mapa-barra{ display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.ocr-mapa-hoja{ max-width: 420px; width: 100%; }
.ocr-mapa-svg{ display: block; width: 100%; height: auto; border: 1px solid var(--isona-borde); background: #fff; }
.ocr-mapa-fondo{ fill: #fff; stroke: none; }
.ocr-frag{ fill: rgba(120, 130, 125, .35); stroke: rgba(60, 70, 65, .55); stroke-width: .4; vector-effect: non-scaling-stroke; cursor: pointer; }
.ocr-frag:hover{ fill: rgba(40, 90, 200, .25); }
.ocr-frag-sel{ fill: rgba(30, 90, 220, .55); stroke: var(--isona-azul-acento); stroke-width: 1.2; }
.ocr-frag-err{ fill: rgba(200, 40, 40, .5); stroke: var(--isona-peligro); stroke-width: 1.2; }
.ocr-frag-sel.ocr-frag-err{ fill: rgba(150, 40, 150, .55); }
@media (max-width: 760px){ .ocr-cols{ grid-template-columns: 1fr; } .ocr-iframe{ height: 380px; } .ocr-botones .exp-adj-btn{ flex: 1 1 100%; } .ocr-caja{ padding: 12px; } }

.fuentes-lista{ display: grid; gap: 12px; margin-top: 10px; }
.fuente-card{ border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); padding: 12px 14px; background: var(--isona-fondo-tarjeta); min-width: 0; }
.fuente-titulo{ margin: 0 0 4px; font-size: 16px; overflow-wrap: anywhere; }
.fuente-atribucion{ margin: 6px 0; overflow-wrap: anywhere; }
.fuente-estados{ display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0; }
.fuente-version{ margin-top: 8px; border-top: 1px dashed var(--isona-borde); padding-top: 6px; }
.fuente-version summary{ cursor: pointer; font-weight: 600; }
.fuente-capas{ margin-top: 8px; }
@media (max-width: 760px){ .fuente-card{ padding: 10px; } }

/* SPRINT-042 PR-A — ficha de causa de 5 segundos y secciones plegables */
.isona-ficha-tarjeta{
  background: var(--isona-fondo-tarjeta);
  border: 1px solid var(--isona-borde);
  border-radius: var(--isona-radio-sm);
  padding: var(--isona-space-2) var(--isona-space-4);
  margin-bottom: var(--isona-space-4);
}
.isona-ficha-fila{
  display: grid; grid-template-columns: 150px 1fr auto; gap: var(--isona-space-3);
  align-items: center; padding: var(--isona-space-3) 0;
  border-bottom: 1px solid var(--isona-borde);
  font-size: 14px; color: var(--isona-texto);
}
.isona-ficha-fila:last-child{ border-bottom: 0; }
.isona-ficha-rotulo{ font-size: 12.5px; color: var(--isona-texto-tenue); }
.isona-ficha-vacio{ color: var(--isona-texto-tenue); }
.isona-ficha-nota{ font-size: 12px; color: var(--isona-texto-tenue); }
.isona-ficha-vencido{ color: var(--isona-peligro); }
.isona-ficha-fila.is-vencido{ box-shadow: inset 3px 0 0 var(--isona-peligro); padding-left: var(--isona-space-3); }
.isona-plegable{ border-bottom: 1px solid var(--isona-borde); padding: var(--isona-space-2) 0; }
.isona-plegable > summary{ cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--isona-texto); padding: var(--isona-space-2) 0; }
.isona-plegable > summary.is-urgente{ color: var(--isona-peligro); }
.isona-plegable[open] > summary{ margin-bottom: var(--isona-space-2); }
@media (max-width: 640px){
  .isona-ficha-fila{ grid-template-columns: 1fr; gap: var(--isona-space-1, 4px); }
}

/* SPRINT-042 PR-B — chat con causa */
.isona-chat-causa{
  display: flex; align-items: center; justify-content: space-between; gap: var(--isona-space-2);
  background: var(--isona-fondo-hover); border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm);
  padding: 6px 10px; font-size: 12.5px; color: var(--isona-texto);
}
.isona-chat-causa-texto{ font-weight: 600; overflow-wrap: anywhere; }
.isona-chat-causa-quitar{
  border: 0; background: transparent; cursor: pointer; font-size: 14px; line-height: 1;
  color: var(--isona-texto-tenue); padding: 4px 6px; border-radius: var(--isona-radio-sm);
}
.isona-chat-causa-quitar:hover{ background: var(--isona-borde); color: var(--isona-texto); }
.isona-chat-causa-panel{
  background: var(--isona-fondo-tarjeta); border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm);
  padding: var(--isona-space-3); margin-bottom: var(--isona-space-2); display: flex; flex-direction: column; gap: var(--isona-space-2);
}
.isona-chat-causa-titulo, .isona-chat-causa-aviso{ margin: 0; font-size: 13px; color: var(--isona-texto); }
.isona-chat-causa-aviso{ color: var(--isona-texto-tenue); }
.isona-chat-causa-opciones{ display: flex; flex-direction: column; gap: 6px; }
.isona-chat-causa-opcion{ text-align: left; white-space: normal; }
.isona-chat-causa-enlace{ align-self: flex-start; font-size: 12px; color: var(--isona-texto-tenue); text-decoration: underline; }
.isona-chat-causa-enlace:hover{ color: var(--isona-texto); }
.isona-chat-causa[hidden], .isona-chat-causa-panel[hidden]{ display: none; }
.isona-chat-nota-causa{ margin: 2px 0 var(--isona-space-2) 4px; font-size: 11.5px; color: var(--isona-texto-tenue); }

/* ---------------------------------------------------------------------
   SPRINT-043 PR 2 — La causa en una sola pantalla: frase de estado, chat en el centro y carpeta al costado.
   La carpeta es el mismo #ficha-tabs (mismas pestañas, agrupadas); el chat es el mismo #isona-chat-modulo movido.
   --------------------------------------------------------------------- */
.isona-causa-estado{
  display: flex; align-items: center; gap: var(--isona-space-3);
  background: var(--isona-fondo-tarjeta); border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-md);
  padding: 12px 16px; margin: var(--isona-space-3) 0 var(--isona-space-4);
}
.isona-causa-estado-punto{ flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; background: var(--isona-texto-tenue); }
.isona-causa-estado[data-tono="rojo"] .isona-causa-estado-punto{ background: var(--isona-peligro); }
.isona-causa-estado[data-tono="ambar"] .isona-causa-estado-punto{ background: var(--isona-alerta); }
.isona-causa-estado[data-tono="verde"] .isona-causa-estado-punto{ background: var(--isona-exito); }
.isona-causa-estado[data-tono="rojo"]{ border-color: var(--isona-peligro); }
.isona-causa-estado-textos{ flex: 1 1 auto; min-width: 0; }
.isona-causa-estado-principal{ margin: 0; font-size: 15.5px; font-weight: 700; color: var(--isona-texto); overflow-wrap: anywhere; }
.isona-causa-estado-secundaria{ margin: 2px 0 0; font-size: 13px; color: var(--isona-texto-tenue); }
.isona-causa-estado-secundaria[hidden], #ficha-estado-reintentar[hidden]{ display: none; }
.isona-causa-estado-detalle{
  flex: 0 0 auto; border: 0; background: transparent; cursor: pointer; font: inherit; font-size: 13px;
  color: var(--isona-azul-acento); padding: 6px 4px; text-decoration: underline;
}
.isona-causa-pantalla{ display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--isona-space-5); align-items: start; }
.isona-causa-centro{ min-width: 0; }
#ficha-tabs.isona-causa-carpeta{
  flex-direction: column; align-items: stretch; gap: 2px; margin: 0; border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-md);
  background: var(--isona-fondo-tarjeta); padding: 10px 12px; position: sticky; top: 12px;
}
#ficha-tabs.isona-causa-carpeta .isona-tab{
  text-align: left; margin: 0; padding: 7px 8px; border-bottom: 0; border-left: 3px solid transparent; border-radius: var(--isona-radio-sm);
}
#ficha-tabs.isona-causa-carpeta .isona-tab:hover{ background: var(--isona-fondo-hover); }
#ficha-tabs.isona-causa-carpeta .isona-tab.is-activa{ border-left-color: var(--isona-azul-acento); background: var(--isona-azul-acento-suave); }
#ficha-tabs.isona-causa-carpeta .isona-tab[hidden]{ display: none; }
.isona-carpeta-titulo{ margin: 12px 0 2px; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--isona-texto-tenue); }
.isona-carpeta-cuenta{ font-weight: 600; }
.isona-carpeta-nota{ margin: 0 0 4px 8px; font-size: 12px; color: var(--isona-texto-tenue); }
.isona-carpeta-nota[hidden]{ display: none; }
.isona-causa-preguntas{ display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--isona-space-2); }
.isona-causa-junior{
  border: 1px solid var(--isona-borde); border-radius: var(--isona-radio-sm); background: var(--isona-fondo-tarjeta);
  padding: 10px 12px; margin-bottom: var(--isona-space-2); font-size: 13px;
}
.isona-causa-junior p{ margin: 0 0 8px; }
.isona-causa-junior[hidden]{ display: none; }
/* Dentro de la causa el chat es solo de Secretaría y la causa no se quita (se cambia abriendo otra causa). */
.isona-chat-modulo.is-en-causa{ max-width: none; }
.isona-chat-modulo.is-en-causa .isona-asistente-selector,
.isona-chat-modulo.is-en-causa .isona-chat-causa-quitar{ display: none; }
@media (max-width: 960px){
  .isona-causa-pantalla{ grid-template-columns: minmax(0, 1fr); gap: var(--isona-space-3); }
  #ficha-tabs.isona-causa-carpeta{ order: -1; position: static; flex-direction: row; padding: 4px; }
  #ficha-tabs.isona-causa-carpeta .isona-carpeta-titulo, #ficha-tabs.isona-causa-carpeta .isona-carpeta-nota{ display: none; }
  #ficha-tabs.isona-causa-carpeta .isona-tab{ border-left: 0; border-bottom: 2px solid transparent; }
  #ficha-tabs.isona-causa-carpeta .isona-tab.is-activa{ border-bottom-color: var(--isona-azul-acento); }
  .isona-causa-estado{ flex-wrap: wrap; padding: 10px 12px; }
  .isona-causa-estado-textos{ flex-basis: calc(100% - 30px); }
}
