:root {
  --radio-tarjeta: 12px;
  --padding-tarjeta: 16px;
  --sombra-tarjeta: 0 2px 10px rgba(18, 61, 104, 0.08);
  --titulo-tarjeta: 16.5px;
  --descripcion-tarjeta: 14px;
  --azul_encabezado: #123d68;
  --azul_lateral: #0d2c4e;
  --azul_boton: #1f7fe3;
  --azul_boton_hover: #1868bd;
  --fondo_clinico: #f3f6fa;
  --blanco: #ffffff;
  --texto: #1e2e44;
  --texto_suave: #5b6b82;
  --borde: #dde5ef;
  --sombra: 0 2px 10px rgba(18, 61, 104, 0.08);
  --radio: 14px;
  --fuente: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --alto-encabezado: 66px;
  --alto-barra-historia: 60px;
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

body {
  margin: 0;
  font-family: var(--fuente);
  font-size: 0.96875rem;
  line-height: 1.5;
  color: var(--texto);
  background: var(--fondo_clinico);
}

h1 { font-size: 1.75rem; margin: 0; color: #16365e; }
h2 { font-size: 1.5rem; margin: 0; color: #16365e; }
h3 { font-size: 1.0625rem; margin: 0 0 10px 0; color: #16365e; }
.subtitulo { margin: 4px 0 0 0; color: var(--texto_suave); font-size: 1.0rem; }

.encabezado_superior {
  height: 66px;
  background: var(--azul_encabezado);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px;
  position: sticky;
  top: 0;
  z-index: 20;
}

.identidad_sistema { display: flex; align-items: center; gap: 12px; }
.texto_identidad { display: flex; flex-direction: column; line-height: 1.2; }
.texto_identidad strong { font-size: 1.1875rem; }
.texto_identidad small { font-size: 0.84375rem; color: #c9d8ea; }

.acciones_encabezado { display: flex; align-items: center; gap: 12px; }
.boton_icono {
  background: rgba(255,255,255,0.12);
  border: 0;
  color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.boton_icono:hover { background: rgba(255,255,255,0.22); }
.con_insignia .insignia {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #e86a6a;
  color: #fff;
  font-size: 0.75rem;
  min-width: 19px;
  height: 19px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
}

.boton_luna_discreto {
  background: rgba(255,255,255,0.10);
  border: 1px solid rgba(255,255,255,0.18);
  color: #e7eef7;
  border-radius: 20px;
  padding: 7px 12px;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}
.boton_luna_discreto:hover { background: rgba(255,255,255,0.2); }
.etiqueta_demo {
  font-style: normal;
  font-size: 0.6875rem;
  background: rgba(255,255,255,0.2);
  border-radius: 8px;
  padding: 1px 6px;
}

.usuario_actual { display: flex; align-items: center; gap: 8px; font-size: 0.9375rem; }
.avatar_usuario {
  background: #dbe6f3;
  color: #123d68;
  font-weight: 700;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.contenedor_principal {
  display: grid;
  grid-template-columns: 268px 1fr;
  min-height: calc(100vh - 66px);
}

.barra_lateral {
  background: var(--azul_lateral);
  color: #d6e2f1;
  padding: 14px 12px 20px 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.menu_principal { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.opcion_menu {
  width: 100%;
  background: transparent;
  border: 0;
  color: inherit;
  text-align: left;
  font-size: 0.96875rem;
  padding: 11px 12px;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
}
.opcion_menu:hover { background: rgba(255,255,255,0.08); }
.opcion_menu.activa { background: var(--azul_boton); color: #fff; }
.opcion_menu.secundaria { color: #b9c9dd; font-size: 0.90625rem; }
.icono_menu { display: inline-flex; opacity: 0.9; }
.flecha_menu { margin-left: auto; font-size: 1.125rem; }
.separador_menu { height: 1px; background: rgba(255,255,255,0.15); margin: 12px 6px; }

.area_clinica {
  padding: 22px 30px 34px 30px;
  width: 100%;
  max-width: 1760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: calc(100vh - var(--alto-encabezado));
}

.tarjeta_paciente {
  background: var(--blanco);
  border-radius: var(--radio-tarjeta);
  box-shadow: var(--sombra-tarjeta);
  padding: 20px 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 20px 28px;
  align-items: center;
  position: relative;
  border: 1px solid var(--borde);
}
.cinta_demo {
  position: absolute;
  top: -11px;
  left: 24px;
  background: #5b6b82;
  color: #fff;
  font-size: 0.78125rem;
  padding: 2px 10px;
  border-radius: 10px;
  letter-spacing: 0.2px;
}
.bloque_identidad { display: flex; gap: 18px; align-items: center; min-width: 0; }
.avatar_paciente { flex-shrink: 0; }
.info_paciente { min-width: 0; }
.nombre_paciente { line-height: 1.2; overflow-wrap: break-word; }

.ficha_teclas {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 22px;
}
.tecla { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.tecla small { font-size: 0.78125rem; color: var(--texto_suave); text-transform: uppercase; letter-spacing: 0.4px; }
.tecla strong { font-size: 0.96875rem; font-weight: 600; color: var(--texto); overflow-wrap: break-word; }

.bloque_estados {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
  padding-left: 28px;
  border-left: 1px solid var(--borde);
  align-self: stretch;
  justify-content: center;
}
.insignias_paciente { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; max-width: 300px; }
.insignia_clinica { font-size: 0.875rem; padding: 5px 12px; border-radius: 14px; }
.insignia_clinica.verde { background: #dcf3e4; color: #187544; }
.insignia_clinica.azul { background: #ddeafe; color: #2456c6; }
.insignia_clinica.amarilla { background: #fdf0c9; color: #8a6410; }

.acciones_paciente {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
  width: 210px;
}
.acciones_paciente .boton_primario, .acciones_paciente .boton_secundario { width: 100%; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.ultima_consulta {
  background: #e9f1fc;
  border-radius: 12px;
  padding: 10px 14px;
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 0.90625rem;
}
.ultima_consulta small { display: block; color: var(--texto_suave); }
.ultima_consulta strong { display: block; font-size: 0.96875rem; }
.icono_calendario { font-size: 1.375rem; }

.boton_primario {
  background: var(--azul_boton);
  color: #fff;
  border: 0;
  border-radius: 10px;
  padding: 12px 18px;
  font-size: 0.96875rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.boton_primario:hover { background: var(--azul_boton_hover); }
.boton_secundario {
  background: #eef3f9;
  color: #123d68;
  border: 1px solid #cbd9ec;
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 0.9375rem;
  cursor: pointer;
  white-space: nowrap;
}
.boton_secundario:hover { background: #e0eaf6; }

.seccion_expediente { margin-top: 26px; }
.rejilla_modulos {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.tarjeta_modulo {
  border: 0;
  border-radius: var(--radio-tarjeta);
  padding: var(--padding-tarjeta);
  text-align: left;
  cursor: pointer;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  min-height: 104px;
  color: var(--texto);
}
.tarjeta_modulo:hover { filter: brightness(0.97); box-shadow: var(--sombra-tarjeta); }
.icono_tarjeta { font-size: 1.875rem; line-height: 1; flex-shrink: 0; }
.texto_tarjeta { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.texto_tarjeta strong { font-size: var(--titulo-tarjeta); color: #16365e; }
.texto_tarjeta small { font-size: var(--descripcion-tarjeta); color: #4c5e76; line-height: 1.5; }
.tarjeta_modulo .flecha { align-self: flex-end; color: #5b6b82; font-size: 1.25rem; }
div.tarjeta_modulo { cursor: default; flex-wrap: wrap; }
div.tarjeta_modulo > .boton_primario, div.tarjeta_modulo > .boton_secundario { align-self: flex-end; }
div.tarjeta_modulo.accion { cursor: pointer; border: 1px solid transparent; flex-wrap: nowrap; transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease; }
div.tarjeta_modulo.accion:hover, div.tarjeta_modulo.accion:focus-visible { border-color: var(--azul_boton); box-shadow: 0 4px 14px rgba(31, 127, 227, 0.18); transform: translateY(-2px); outline: none; }
.contenido_modulo.alineado_izquierda { text-align: left; }
.rejilla_metodos { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-top: 14px; align-items: stretch; }
.ilustracion_evaluacion { max-width: 420px; margin: 6px 0 2px; opacity: 0.95; }
.ilustracion_evaluacion svg { width: 100%; height: auto; display: block; }
.texto_tarjeta small { line-height: 1.55; }
.boton_primario:disabled, .boton_secundario:disabled { opacity: 0.55; cursor: not-allowed; }
.miga_navegacion { color: var(--texto_suave); font-size: 0.875rem; margin: 0 0 4px 0; }
.titulo_grupo_formatos { font-size: 1.0rem; color: #16365e; margin: 20px 0 0 0; }
.tarjeta_modulo.inactiva { cursor: default; opacity: 0.75; }

.tono_azul { background: #e8f1fe; }
.tono_verde { background: #e4f5ea; }
.tono_lila { background: #f1e8fb; }
.tono_melocoton { background: #fdeee1; }
.tono_menta { background: #e2f4ec; }
.tono_amarillo { background: #fdf4d9; }
.tono_rosa { background: #fde9e9; }
.tono_cian { background: #e3f4fa; }
.tono_gris { background: #edf1f6; }

.seccion_evaluaciones { margin-top: 22px; }
.cabecera_evaluaciones { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.boton_enlace {
  background: #fff;
  border: 1px solid #bcd3f2;
  color: #1f7fe3;
  border-radius: 10px;
  padding: 9px 14px;
  font-size: 0.90625rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.boton_enlace:hover { background: #e9f1fd; }
.rejilla_evaluaciones {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}
.tarjeta_evaluacion {
  background: #fff;
  border: 1px solid var(--borde);
  border-radius: var(--radio-tarjeta);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.tarjeta_evaluacion header { flex: 0 0 auto; min-height: 84px; }
.tarjeta_evaluacion header strong { font-size: var(--titulo-tarjeta); }
.tarjeta_evaluacion header small { font-size: var(--descripcion-tarjeta); line-height: 1.5; }
.tarjeta_evaluacion.inactiva { cursor: default; }
.tarjeta_evaluacion.inactiva header { opacity: 0.85; }
.pie_tarjeta_evaluacion { margin-top: auto; display: flex; align-items: center; justify-content: space-between; }
.tarjeta_evaluacion.clickeable { cursor: pointer; transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.15s ease; }
.tarjeta_evaluacion.clickeable:hover, .tarjeta_evaluacion.clickeable:focus-visible { border-color: var(--azul_boton); box-shadow: 0 4px 14px rgba(31, 127, 227, 0.18); transform: translateY(-2px); outline: none; }
.flecha_tarjeta { margin-left: auto; color: #5b6b82; font-size: 1.25rem; align-self: center; }
.etiqueta_estado.disponible { color: #187544; background: #dcf3e4; border-color: #bfe6cf; }
.tarjeta_evaluacion.destacada { border: 2px solid var(--azul_boton); }
.tarjeta_evaluacion header { display: flex; gap: 10px; padding: 12px; align-items: flex-start; font-size: 1.375rem; }
.tarjeta_evaluacion header strong { display: block; font-size: 0.96875rem; }
.tarjeta_evaluacion header small { display: block; font-size: 0.8125rem; color: #4c5e76; }
.tarjeta_evaluacion ul { margin: 0; padding: 10px 12px 14px 30px; font-size: 0.90625rem; color: #33475f; }
.tarjeta_evaluacion li { margin: 3px 0; }
.tarjeta_evaluacion li.disponible { color: #1f7fe3; font-weight: 700; }
.pie_tarjeta_evaluacion { padding: 10px 12px 14px 12px; margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.etiqueta_estado { font-size: 0.8125rem; color: var(--texto_suave); background: #eef1f5; border: 1px solid var(--borde); border-radius: 12px; padding: 4px 10px; }
.nota_evaluaciones { color: var(--texto_suave); font-size: 0.84375rem; margin: 10px 2px 0 2px; }

.rejilla_inferior {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 18px;
  align-items: stretch;
}
.actividad_reciente, .notas_importantes {
  background: #fff;
  border: 1px solid var(--borde);
  border-radius: 12px;
  padding: 18px 20px;
}
.notas_importantes { background: #fdf6df; border-color: #f0dfae; }
.actividad_reciente ul, .notas_importantes ul { margin: 0; padding-left: 4px; list-style: none; }
.actividad_reciente li { display: flex; gap: 10px; align-items: baseline; padding: 5px 0; font-size: 0.9375rem; }
.actividad_reciente time { color: var(--texto_suave); min-width: 88px; }
.punto { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; align-self: center; }
.punto.azul { background: #1f7fe3; }
.punto.verde { background: #22a06b; }
.punto.gris { background: #9aa7ba; }
.notas_importantes li { padding: 4px 0 4px 16px; position: relative; font-size: 0.9375rem; }
.notas_importantes li::before { content: "•"; position: absolute; left: 2px; color: #8a6410; }

.pie_demo { margin-top: auto; padding-top: 26px; text-align: center; color: var(--texto_suave); font-size: 0.84375rem; }

.panel_luna {
  position: fixed;
  top: 66px;
  right: 0;
  width: 380px;
  max-width: 92vw;
  height: calc(100vh - 66px);
  background: #fff;
  border-left: 1px solid var(--borde);
  box-shadow: -6px 0 18px rgba(13, 44, 78, 0.15);
  display: flex;
  flex-direction: column;
  z-index: 30;
  transition: transform 0.2s ease;
}
.panel_luna.oculto { transform: translateX(105%); }
.panel_luna.minimizado { height: 64px; overflow: hidden; }
.cabecera_luna {
  background: #eef3f9;
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--borde);
}
.cabecera_luna strong { font-size: 1.0rem; }
.cabecera_luna small { display: block; color: var(--texto_suave); font-size: 0.8125rem; }
.contexto_luna { color: #123d68; font-weight: 600; }
.botones_luna button {
  border: 1px solid #cbd9ec;
  background: #fff;
  border-radius: 8px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  font-size: 1.0rem;
}
.conversacion_luna { flex: 1; overflow-y: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.mensaje_luna, .mensaje_usuario {
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 0.90625rem;
  margin: 0;
}
.mensaje_luna { background: #eef3f9; border: 1px solid #d7e3f3; }
.mensaje_usuario { background: #e0eefe; border: 1px solid #bcd7f7; align-self: flex-end; }
.acciones_rapidas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--borde); }
.acciones_rapidas button {
  background: #f3f6fa;
  border: 1px solid #cbd9ec;
  border-radius: 9px;
  padding: 8px;
  font-size: 0.84375rem;
  cursor: pointer;
  color: #123d68;
}
.acciones_rapidas button:hover { background: #e4edf7; }
.entrada_luna { display: flex; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--borde); }
.entrada_luna input {
  flex: 1;
  border: 1px solid #cbd9ec;
  border-radius: 9px;
  padding: 10px;
  font-size: 0.90625rem;
}
.entrada_luna button {
  background: var(--azul_boton);
  color: #fff;
  border: 0;
  border-radius: 9px;
  padding: 0 16px;
  cursor: pointer;
  font-size: 0.90625rem;
}
.costos_luna { margin: 0; padding: 8px 14px 12px 14px; font-size: 0.78125rem; color: var(--texto_suave); }

.aviso_flotante {
  position: fixed;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: #0d2c4e;
  color: #fff;
  padding: 11px 18px;
  border-radius: 10px;
  font-size: 0.9375rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 50;
  max-width: 90vw;
  text-align: center;
}
.aviso_flotante.visible { opacity: 1; transform: translateX(-50%) translateY(0); }

.solo_lectura {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

/* Pantallas anchas: se aprovecha todo el ancho disponible. */
@media (max-width: 1500px) {
  .area_clinica { padding: 20px 24px 30px 24px; }
  .tarjeta_paciente { grid-template-columns: minmax(0, 1fr) auto; }
  .acciones_paciente {
    grid-column: 1 / -1;
    flex-direction: row;
    width: auto;
    justify-content: flex-end;
  }
  .acciones_paciente .boton_primario, .acciones_paciente .boton_secundario { width: auto; min-width: 170px; }
}

/* Con la barra lateral (~268px) cinco columnas solo caben en pantallas
   muy anchas. Por debajo se baja a tres para no partir los textos. */
@media (max-width: 1559px) {
  .rejilla_modulos, .rejilla_evaluaciones { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* El encabezado en tres bloques necesita ~1180px contando la barra lateral. */
@media (max-width: 1179px) {
  .tarjeta_paciente { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .bloque_estados {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--borde);
    padding-top: 14px;
  }
  .acciones_paciente { flex-direction: column; width: 100%; justify-content: stretch; }
  .acciones_paciente .boton_primario, .acciones_paciente .boton_secundario { width: 100%; min-width: 0; }
  .ficha_teclas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
}

@media (max-width: 1099px) {
  .rejilla_modulos, .rejilla_evaluaciones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rejilla_inferior { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .contenedor_principal { grid-template-columns: 1fr; }
  .barra_lateral { flex-direction: column; }
  .menu_principal { display: grid; grid-template-columns: 1fr 1fr; }
  .area_clinica { padding: 16px; }
  .rejilla_inferior { grid-template-columns: 1fr; }
}

@media (max-width: 699px) {
  .rejilla_modulos, .rejilla_evaluaciones { grid-template-columns: 1fr; }
  .bloque_identidad { flex-direction: column; align-items: flex-start; gap: 12px; }
}

html, body { overflow-x: clip; }
@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}

.vista_inicio { padding: 24px 26px 40px 26px; max-width: 1100px; margin: 0 auto; }
.contenedor_inicio { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); padding: 24px; position: relative; }
.contenedor_inicio.centrado { text-align: left; max-width: 900px; margin: 24px auto; }
.contenedor_inicio.centrado h1 { text-align: center; }
.contenedor_inicio.centrado > .subtitulo { text-align: center; }
#vista_buscar .contenedor_inicio > .boton_secundario, #vista_nuevo .contenedor_inicio > .boton_secundario { margin-bottom: 14px; }
.cinta_demo_en_linea { display: inline-block; background: #5b6b82; color: #fff; font-size: 0.78125rem; padding: 3px 12px; border-radius: 10px; margin: 0 0 8px 0; }
.rejilla_acciones_inicio { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tarjeta_accion { border: 1px solid var(--borde); border-radius: 12px; padding: 16px; background: #f8fafd; text-align: left; cursor: pointer; display: flex; gap: 12px; align-items: flex-start; color: var(--texto); min-height: 96px; }
.tarjeta_accion:hover { box-shadow: var(--sombra); background: #eef4fb; }
.tarjeta_accion.destacada { border: 2px solid var(--azul_boton); background: #e9f1fd; }

.bloque_busqueda { margin-top: 20px; border-top: 1px solid var(--borde); padding-top: 18px; }
.bloque_busqueda label { font-weight: 600; display: block; margin-bottom: 8px; font-size: 0.96875rem; }
.fila_busqueda { display: flex; gap: 10px; }
.fila_busqueda input { flex: 1; border: 1px solid #cbd9ec; border-radius: 10px; padding: 12px; font-size: 1.0rem; min-width: 0; }
.ayuda { color: var(--texto_suave); font-size: 0.875rem; }

.bloque_lista { margin-top: 20px; border-top: 1px solid var(--borde); padding-top: 18px; }
.cabecera_lista { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.filtros_estado { display: flex; gap: 8px; flex-wrap: wrap; }
.filtro_estado { border: 1px solid #cbd9ec; background: #eef3f9; border-radius: 18px; padding: 8px 14px; cursor: pointer; font-size: 0.90625rem; min-height: 40px; }
.filtro_estado.activo { background: var(--azul_boton); color: #fff; border-color: var(--azul_boton); }
.filtro_estado.discreto { background: transparent; font-size: 0.84375rem; }
.lista_pacientes { margin-top: 12px; max-height: 380px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; padding-right: 4px; }
.tarjeta_paciente_lista { border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: #fff; }
.info_lista { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.info_lista strong { font-size: 1.0rem; }
.linea_lista { color: var(--texto_suave); font-size: 0.90625rem; }
.boton_abrir { flex-shrink: 0; }
.boton_enlace.discreto { margin-top: 10px; font-weight: 400; font-size: 0.84375rem; }

.bloque_alta { margin-top: 20px; border-top: 1px solid var(--borde); padding-top: 18px; }
.bloque_alta fieldset { border: 1px solid var(--borde); border-radius: 12px; padding: 16px; margin: 14px 0 0 0; }
.bloque_alta legend { font-weight: 700; color: #16365e; padding: 0 8px; }
.rejilla_formulario { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo.amplio { margin-top: 12px; }
.campo label { font-size: 0.90625rem; font-weight: 600; }
.campo input, .campo select, .campo textarea { border: 1px solid #cbd9ec; border-radius: 10px; padding: 12px; font-size: 1.0rem; width: 100%; font-family: inherit; background: #fff; color: var(--texto); }
.campo input[readonly] { background: #eef2f7; }
.fila_formulario { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.error { color: #b3261e; font-size: 0.90625rem; min-height: 20px; }

.avatar_iniciales { width: 84px; height: 84px; border-radius: 50%; background: #123d68; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 1.75rem; font-weight: 700; }

.vista_modulo { min-height: calc(100vh - 66px); background: var(--fondo_clinico); }
.barra_modulo { background: #fff; border-bottom: 1px solid var(--borde); padding: 12px 20px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; position: sticky; top: 66px; z-index: 10; }
.identificacion_modulo { display: flex; align-items: center; gap: 8px; font-size: 0.96875rem; flex-wrap: wrap; }
.identificacion_modulo strong { color: #16365e; }
.separador_punto { color: var(--texto_suave); }
.contenido_modulo { max-width: 900px; margin: 24px auto; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); padding: 28px; text-align: center; }
.aviso_pendiente { display: inline-block; background: #eef3f9; border: 1px solid #cbd9ec; border-radius: 10px; padding: 10px 18px; font-size: 1.0rem; margin-top: 12px; }

.fondo_modal { position: fixed; inset: 0; background: rgba(13, 44, 78, 0.5); display: flex; align-items: center; justify-content: center; z-index: 60; padding: 16px; }
.fondo_modal[hidden] { display: none; }
.modal { background: #fff; border-radius: 14px; max-width: 560px; width: 100%; padding: 22px; box-shadow: 0 10px 40px rgba(0,0,0,0.25); }
.modal h3 { color: #b3261e; }
.datos_duplicado { background: #fdf0ef; border: 1px solid #f0c4c0; border-radius: 10px; padding: 10px 14px; margin: 12px 0; }
.datos_duplicado p { margin: 4px 0; }
.modal label { font-weight: 600; font-size: 0.90625rem; display: block; margin-top: 10px; }
.modal textarea { width: 100%; border: 1px solid #cbd9ec; border-radius: 10px; padding: 10px; font-size: 0.9375rem; font-family: inherit; margin-top: 6px; }
.fila_modal { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }

@media (max-width: 700px) {
  .vista_inicio { padding: 14px 12px 30px 12px; }
  .contenedor_inicio { padding: 16px; }
  .rejilla_acciones_inicio { grid-template-columns: 1fr; }
  .rejilla_formulario { grid-template-columns: 1fr; }
  .fila_busqueda { flex-direction: column; }
  .fila_busqueda .boton_primario { width: 100%; min-height: 48px; }
  .tarjeta_paciente_lista { flex-direction: column; align-items: stretch; }
  .boton_abrir { width: 100%; min-height: 48px; }
  .boton_primario, .boton_secundario, .boton_enlace { min-height: 44px; }
  .campo input, .campo select, .campo textarea { font-size: 1.0rem; padding: 13px; }
  .barra_modulo { top: 0; }
  .encabezado_superior { padding: 0 12px; }
  .nombre_usuario { display: none; }
}

.vista_historia { min-height: calc(100vh - 66px); background: var(--fondo_clinico); }
.barra_historia { background: #fff; border-bottom: 1px solid var(--borde); padding: 10px 18px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; position: sticky; top: var(--alto-encabezado); z-index: 15; }
.identificacion_historia { display: flex; align-items: center; gap: 8px; flex: 1; flex-wrap: wrap; font-size: 0.9375rem; min-width: 200px; }
.identificacion_historia strong { color: #16365e; font-size: 1.03125rem; }
/* Identificador del instrumento TDAH-5 que se esta respondiendo.
   Vive dentro de la barra fija, asi que acompaña el desplazamiento sin
   superponerse a los reactivos. Es una ayuda de navegacion de la aplicacion:
   no forma parte del instrumento ni altera sus textos. */
.identificador_instrumento { display: none; }
.identificador_instrumento.activo { display: inline-flex; align-items: center; background: #eef3fa; border: 1px solid #b9cbe3; border-radius: 16px; padding: 6px 14px; font-size: 0.875rem; font-weight: 600; color: #16365e; white-space: nowrap; max-width: 100%; }
/* Los separadores llevan sus propios espacios y el contenedor no usa gap, para
   que el texto plano del nodo ("TDAH-5 · Hogar · Niños (5–10 años)") sea el
   mismo que se ve, también al copiarlo o leerlo con un lector de pantalla. */
.identificador_instrumento .separador_tdah { color: #6b7f99; font-weight: 500; }
.identificador_instrumento .marca_tdah { font-weight: 700; letter-spacing: 0.3px; }
.identificador_instrumento .contexto_tdah { font-weight: 600; }
.identificador_instrumento .variante_tdah { color: #2b5c9b; font-weight: 500; }
@media (max-width: 720px) { .identificador_instrumento.activo { white-space: normal; } }
.navegacion_historia { background: #0d2c4e; padding: 8px 12px; display: flex; gap: 8px; overflow-x: auto; position: sticky; top: calc(var(--alto-encabezado) + var(--alto-barra-historia)); z-index: 14; }
.navegacion_historia button { flex-shrink: 0; background: rgba(255,255,255,0.12); color: #d6e2f1; border: 1px solid rgba(255,255,255,0.2); border-radius: 16px; padding: 7px 13px; font-size: 0.84375rem; cursor: pointer; white-space: nowrap; }
.navegacion_historia button:hover { background: rgba(255,255,255,0.25); color: #fff; }
.contenido_historia { max-width: 980px; margin: 0 auto; padding: 20px 18px 60px 18px; display: flex; flex-direction: column; gap: 16px; }
.tarjeta_historia { background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); padding: 22px; scroll-margin-top: 190px; }
.tarjeta_historia h2 { margin-bottom: 6px; }
.ejemplo_pregunta { background: #eef4fb; border-left: 4px solid var(--azul_boton); border-radius: 0 8px 8px 0; padding: 8px 12px; font-size: 0.875rem; color: #33475f; margin: 10px 0; }
.grupo_pregunta { border: 1px solid var(--borde); border-radius: 10px; padding: 12px 14px; margin: 12px 0 0 0; }
.grupo_pregunta legend { font-weight: 600; font-size: 0.9375rem; padding: 0 6px; }

/* --- Encabezados de los grupos de reactivos -------------------------------
   Tres niveles diferenciados, con un diseño clínico sobrio:
     1. título del grupo (navegación de la aplicación),
     2. pregunta literal del PDF maestro,
     3. las cuatro opciones originales, en columnas.
   El contenido del maestro nunca se sustituye ni se reescribe: aquí solo se
   maqueta. La instrucción general y la nota de omisiones usan el mismo bloque
   para que las cuatro variantes se vean igual. */
.titulo_navegacion { color: #46586f; font-size: 0.78125rem; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; margin: 0 0 10px 0; padding-bottom: 8px; border-bottom: 1px solid #e2e8f0; }

.encabezado_maestro { background: #f7f9fc; border: 1px solid #dbe3ee; border-radius: 8px; padding: 14px 16px; margin: 0 0 14px 0; }
.encabezado_maestro:empty { display: none; }

.encabezado_maestro .instruccion_maestro { font-size: 0.96875rem; font-weight: 600; line-height: 1.45; color: #1c2b3f; margin: 0 0 12px 0; }

.encabezado_maestro .opciones_maestro { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.encabezado_maestro .opciones_maestro span { display: flex; align-items: center; gap: 7px; background: #ffffff; border: 1px solid #dbe3ee; border-radius: 6px; padding: 8px 10px; font-size: 0.8125rem; line-height: 1.3; color: #33465e; text-align: left; }
/* El valor 0-3 se numeran aparte para que se lean como columna y no se
   confundan con el texto del maestro. */
.encabezado_maestro .opciones_maestro span::before { content: attr(data-valor); flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: #e8eef7; color: #33507a; font-size: 0.6875rem; font-weight: 700; }

.encabezado_maestro .continuacion_maestro { display: block; margin-top: 11px; padding-top: 9px; border-top: 1px dashed #dbe3ee; font-size: 0.78125rem; font-style: italic; color: #5b6b80; }

/* Instrucción general del maestro: mismo lenguaje visual que los bloques. */
.texto_maestro { background: #f7f9fc; border: 1px solid #dbe3ee; border-radius: 8px; padding: 13px 16px; font-size: 0.90625rem; line-height: 1.45; color: #1c2b3f; margin: 12px 0 0 0; }
.texto_maestro:empty { display: none; }

/* Nota de la aplicación sobre respuestas omitidas. Deliberadamente distinta
   del instrumento: fondo neutro, sin el borde del maestro y con una marca de
   "solo pantalla" para que nadie la confunda con una instrucción del PDF. */
.nota_aplicacion { background: #f1f5f9; border: 1px dashed #c3cede; border-radius: 8px; padding: 10px 14px; font-size: 0.84375rem; line-height: 1.45; color: #46586f; margin: 10px 0 0 0; }
.nota_aplicacion .marca_nota { display: inline-block; margin-right: 7px; padding: 1px 7px; border-radius: 10px; background: #dfe7f1; color: #33507a; font-size: 0.71875rem; font-weight: 700; letter-spacing: 0.3px; text-transform: uppercase; vertical-align: 1px; }

/* --- Identificación del alumno --------------------------------------------
   Etiqueta informativa de la aplicación, no un campo del cuestionario: se
   muestra en gris para que se distinga de los campos que sí se rellenan. */
.campo_identificacion { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; background: #f1f5f9; border: 1px solid #dbe3ee; border-radius: 8px; padding: 10px 13px; }
.campo_identificacion .rotulo_identificacion { font-size: 0.78125rem; font-weight: 700; letter-spacing: 0.4px; text-transform: uppercase; color: #5b6b80; }
.campo_identificacion .valor_identificacion { font-size: 0.9375rem; font-weight: 600; color: #1c2b3f; }
.campo_identificacion .expediente_identificacion { font-size: 0.78125rem; color: #6b7c91; }

@media (max-width: 760px) {
  .encabezado_maestro .opciones_maestro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .encabezado_maestro .opciones_maestro { grid-template-columns: minmax(0, 1fr); }
}
.opciones_estructuradas { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 6px; }
.opciones_estructuradas label { display: inline-flex; align-items: center; gap: 6px; font-size: 0.9375rem; padding: 6px 4px; cursor: pointer; min-height: 36px; }

/* En el cuestionario público las cuatro opciones se reparten en el ancho
   disponible: dos por fila en pantallas medianas y una por fila en teléfono,
   para que ninguna quede cortada ni demasiado estrecha. */
#enlace_bloques .opciones_estructuradas {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
}
#enlace_bloques .opciones_estructuradas label { width: 100%; }

@media (min-width: 900px) {
  #enlace_bloques .opciones_estructuradas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.opciones_estructuradas input[type="radio"], .opciones_estructuradas input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--azul_boton); }
.aviso_riesgo { background: #fdf0ef; border: 1px solid #e8a09a; border-radius: 10px; padding: 12px 14px; font-size: 0.90625rem; margin-top: 12px; }
.barra_final_historia { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; padding: 10px 0 20px 0; }

@media (max-width: 700px) {
  .tarjeta_historia { padding: 16px; }
  .opciones_estructuradas { gap: 4px 10px; }
}

.vista_impresion { min-height: calc(100vh - 66px); background: #e9edf2; }
.barra_impresion { background: #fff; border-bottom: 1px solid var(--borde); padding: 12px 20px; display: flex; gap: 10px; flex-wrap: wrap; position: sticky; top: 66px; z-index: 10; }
.documento_clinico { max-width: 210mm; margin: 24px auto 48px auto; background: #fff; border: 1px solid #d5dbe3; border-radius: 4px; padding: 48px 52px; color: #1a1a1a; font-family: Arial, Helvetica, sans-serif; box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
.documento_clinico .membrete { text-align: center; margin-bottom: 4px; }
.documento_clinico .membrete_sistema { font-size: 13pt; font-weight: 700; letter-spacing: 2px; margin: 0; }
.documento_clinico .membrete_subtitulo { font-size: 10pt; color: #444; margin: 2px 0 0 0; }
.documento_clinico h1 { font-size: 17pt; text-align: center; margin: 14px 0 4px 0; color: #111; letter-spacing: 0.5px; }
.documento_clinico .sello_borrador { text-align: center; font-weight: 700; font-size: 12pt; letter-spacing: 3px; color: #5a5a5a; border-top: 1px solid #999; border-bottom: 1px solid #999; padding: 6px; margin: 14px 0; }
.documento_clinico .rejilla_paciente { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px 24px; border: 1px solid #cfcfcf; border-radius: 4px; padding: 14px 18px; margin: 12px 0 6px 0; font-size: 10pt; }
.documento_clinico .celda_paciente { margin: 0; overflow-wrap: break-word; }
.documento_clinico .celda_paciente.ancha { grid-column: span 2; }
.documento_clinico h2 { font-size: 13pt; margin: 24px 0 10px 0; color: #111; border-bottom: 1px solid #999; padding-bottom: 5px; break-after: avoid; page-break-after: avoid; }
.documento_clinico h2 .numero_seccion { font-weight: 700; margin-right: 6px; }
.documento_clinico h3 { font-size: 11pt; margin: 12px 0 4px 0; color: #222; }
.documento_clinico p, .documento_clinico li { font-size: 10.5pt; line-height: 1.6; color: #1a1a1a; }
.documento_clinico .dato { margin: 5px 0; break-inside: avoid; page-break-inside: avoid; }
.documento_clinico .dato.en_bloque .etiqueta { display: block; margin-bottom: 1px; }
.documento_clinico .dato.narrativa { white-space: pre-wrap; line-height: 1.7; margin: 6px 0 10px 0; }
.documento_clinico .etiqueta { font-weight: 700; }
.documento_clinico ul { margin: 4px 0 10px 22px; padding: 0; }
.documento_clinico li { margin: 3px 0; }
.documento_clinico .bloque_seccion { margin: 0; }
.documento_clinico .rejilla_variables { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; margin: 8px 0; }
.documento_clinico .celda_variable { font-size: 10.5pt; break-inside: avoid; page-break-inside: avoid; }
.documento_clinico .nota_admin { font-size: 9.5pt; color: #444; border-top: 1px solid #bbb; margin-top: 24px; padding-top: 8px; }
.documento_clinico .fin_documento { text-align: center; color: #666; font-size: 9.5pt; margin-top: 28px; }

/* Documentos del paciente */
.documentos_panel { max-width: 1180px; }
.documentos_carpetas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 22px 0; }
.documento_carpeta { min-height: 76px; padding: 14px; border: 1px solid var(--borde); border-radius: 14px; background: #fff; color: var(--texto); font: inherit; font-weight: 700; text-align: left; cursor: pointer; display: flex; align-items: center; gap: 9px; box-shadow: 0 5px 15px rgba(24, 55, 85, .06); }
.documento_carpeta:hover, .documento_carpeta:focus-visible { border-color: var(--azul_boton); outline: 3px solid rgba(31, 127, 227, .18); }
.documento_carpeta.activa { background: #eaf3fb; border-color: var(--azul_boton); box-shadow: inset 0 -3px 0 #e5b52f, 0 7px 18px rgba(24, 55, 85, .1); }
.documentos_subpanel { background: #fff; border: 1px solid var(--borde); border-radius: 16px; padding: 24px; box-shadow: var(--sombra); }
.cabecera_subpanel { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.cabecera_subpanel h3 { margin: 0 0 6px; color: var(--azul_encabezado); }
.cabecera_subpanel p { margin: 0; color: var(--texto_suave); }
.formulario_documento { display: grid; gap: 14px; padding: 18px; border: 1px solid #d9e3eb; border-radius: 12px; background: #f8fbfd; }
.formulario_documento input[type="file"] { width: 100%; padding: 10px; background: #fff; border: 1px dashed #aebfce; border-radius: 8px; }
.rejilla_campos_documento { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.rejilla_campos_documento .amplio { grid-column: 1 / -1; }
.ayuda_campo { color: var(--texto_suave); font-size: .88rem; margin: 0; }
.aviso_formulario { min-height: 1.2em; margin: 0; color: var(--azul_oscuro); }
.tabla_documentos { display: grid; gap: 10px; margin-top: 20px; }
.fila_documento { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 13px 14px; border: 1px solid #d9e3eb; border-radius: 10px; background: #fff; }
.fila_documento strong { display: block; overflow-wrap: anywhere; }
.fila_documento small { color: var(--texto_suave); }
.acciones_documento { display: flex; flex-wrap: wrap; gap: 12px; }
.previsualizacion_documento { margin-top: 22px; border-top: 1px solid var(--borde); padding-top: 18px; }
.previsualizacion_documento iframe { width: 100%; min-height: 780px; border: 1px solid #ccd8e2; border-radius: 10px; background: #f4f7fa; }
@media (max-width: 820px) {
  .documentos_carpetas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rejilla_campos_documento { grid-template-columns: 1fr; }
  .rejilla_campos_documento .amplio { grid-column: auto; }
  .fila_documento { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .documentos_carpetas { grid-template-columns: 1fr; }
  .documentos_subpanel { padding: 16px; }
  .cabecera_subpanel { flex-direction: column; }
}
.hint_impresion { font-size: 0.8125rem; color: var(--texto_suave); margin: 0; }
.indicador_cambios { font-size: 0.78125rem; color: #4c5e76; background: #eef1f5; border: 1px solid #d3dae3; border-radius: 12px; padding: 3px 10px; white-space: nowrap; }

@page { size: A4; margin: 18mm 16mm 18mm 16mm; }

@media print {
  .encabezado_superior, .barra_lateral, .panel_luna, .aviso_flotante,
  .fondo_modal, .no_imprimir, .cinta_demo, .cinta_demo_en_linea { display: none !important; }
  body { background: #fff; }
  #vista_inicio, #vista_buscar, #vista_nuevo, #vista_expediente, #vista_modulo, #vista_historia { display: none !important; }
  #vista_impresion { display: block !important; min-height: auto; background: #fff; }
  .documento_clinico { max-width: none; margin: 0; border: 0; border-radius: 0; padding: 0; box-shadow: none; font-family: Arial, Helvetica, sans-serif; }
  .documento_clinico h1 { font-size: 17pt; }
  .documento_clinico h2 { font-size: 13pt; break-after: avoid; page-break-after: avoid; }
  .documento_clinico p, .documento_clinico li, .documento_clinico .celda_variable { font-size: 10.5pt; }
  .documento_clinico .rejilla_paciente { font-size: 10pt; break-inside: avoid; page-break-inside: avoid; }
  .documento_clinico .dato, .documento_clinico .bloque_seccion, .documento_clinico .celda_variable { break-inside: avoid; page-break-inside: avoid; }
}

@media (max-width: 700px) {
  .documento_clinico { padding: 24px 20px; margin: 12px 8px 32px 8px; }
  .documento_clinico .rejilla_paciente, .documento_clinico .rejilla_variables { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------
   Pantalla de acceso

   Única pantalla visible sin sesión. Reutiliza las variables y los componentes
   ya existentes (campo, botón primario, tarjeta) para no introducir un estilo
   ajeno al resto del sistema.
   --------------------------------------------------------------------------- */

.vista_login {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 24px 16px;
  background: var(--fondo_clinico);
}

.contenedor_login {
  width: 100%;
  max-width: 420px;
  background: var(--blanco);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  box-shadow: var(--sombra);
  padding: 32px 28px;
  text-align: center;
}

.contenedor_login h1 { text-align: center; margin: 8px 0 0; }
.contenedor_login > .subtitulo { text-align: center; }
.contenedor_login > .cinta_demo_en_linea { margin-bottom: 12px; }

.formulario_login {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 24px;
  text-align: left;
}

.formulario_login .campo label { display: block; }

.ancho_completo { width: 100%; }

.aviso_login {
  margin: 0;
  padding: 10px 14px;
  border: 1px solid #e6b8b8;
  background: #fdf0f0;
  color: #8f2020;
  border-radius: 10px;
  font-size: 0.90625rem;
  text-align: left;
}

.panel_ayuda_acceso {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--borde);
  text-align: left;
  font-size: 0.875rem;
  color: var(--texto_suave);
}

.panel_ayuda_acceso summary { cursor: pointer; font-weight: 600; color: var(--texto); }
.panel_ayuda_acceso p { margin: 10px 0 0; line-height: 1.55; }
.panel_ayuda_acceso ul { margin: 10px 0 0; padding-left: 20px; line-height: 1.55; }
.panel_ayuda_acceso li + li { margin-top: 8px; }

.nota_privacidad {
  margin: 18px 0 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--texto_suave);
  text-align: left;
}

@media (max-width: 460px) {
  .contenedor_login { padding: 24px 18px; }
}

/* ---------------------------------------------------------------------------
   Formulario público del enlace TDAH-5

   Vista independiente de la interfaz administrativa. Sin cabecera ni menú: solo
   el cuestionario asignado. Pensada para responderse desde un teléfono, por eso
   las opciones se apilan en pantallas estrechas.
   --------------------------------------------------------------------------- */

.vista_enlace {
  min-height: 100vh;
  padding: 20px 14px 48px 14px;
  background: var(--fondo_clinico);
}

.contenedor_enlace {
  width: 100%;
  /* Algo más ancho que antes: el cuestionario tiene reactivos largos y cuatro
     opciones por pregunta, y a 720 px quedaban muy comprimidos en escritorio. */
  max-width: 1000px;
  margin: 0 auto;
  background: var(--blanco);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
  box-shadow: var(--sombra);
  padding: 26px 22px 30px 22px;
}

.contenedor_enlace h1 { margin: 8px 0 0; font-size: 1.5rem; }
.contenedor_enlace > .cinta_demo_en_linea { margin-bottom: 10px; }

.bloque_identificacion_enlace {
  margin: 18px 0 20px 0;
  padding: 14px 16px;
  background: #f7f9fc;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
}

.bloque_identificacion_enlace .rotulo_identificacion {
  margin: 0;
  font-size: 0.78125rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--texto_suave);
}

.bloque_identificacion_enlace .dato_identificacion {
  margin: 4px 0 0 0;
  font-size: 1.1875rem;
  font-weight: 700;
  color: #16365e;
}

.bloque_identificacion_enlace .dato_secundario {
  margin: 4px 0 0 0;
  font-size: 0.875rem;
  color: var(--texto_suave);
}

#enlace_instruccion, #enlace_encabezados { margin: 0 0 6px 0; }
#enlace_encabezados .encabezado_maestro { margin-bottom: 8px; }

.bloque_enlace { margin: 22px 0 0 0; }
.bloque_enlace > h2 {
  margin: 0 0 10px 0;
  font-size: 1.0625rem;
  color: #16365e;
  border-bottom: 1px solid var(--borde);
  padding-bottom: 6px;
}

.formulario_enlace { margin: 18px 0 0 0; }

.grupo_informante {
  margin: 0 0 20px 0;
  border: 1px solid var(--borde);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.grupo_informante legend { padding: 0 6px; font-weight: 600; }
.grupo_informante .campo { flex: 1 1 220px; }

.aviso_enlace {
  margin: 0 0 16px 0;
  padding: 10px 14px;
  border: 1px solid #e6b8b8;
  background: #fdf0f0;
  color: #8f2020;
  border-radius: 10px;
  font-size: 0.90625rem;
}

.bloque_no_disponible {
  padding: 20px 16px;
  border: 1px dashed var(--borde);
  border-radius: 10px;
  background: #f7f9fc;
  color: var(--texto_suave);
  text-align: center;
}

.bloque_confirmacion {
  margin-top: 20px;
  padding: 20px 18px;
  border: 1px solid #bfe6cf;
  background: #f1faf5;
  border-radius: 12px;
}

.bloque_confirmacion h2 { margin: 0 0 8px 0; color: #187544; }

@media (max-width: 620px) {
  .vista_enlace { padding: 12px 8px 32px 8px; }
  .contenedor_enlace { padding: 20px 14px 24px 14px; }
  .contenedor_enlace h1 { font-size: 1.3125rem; }
  /* En el teléfono cada opción ocupa una línea completa: evita tocar el radio
     equivocado. .opciones_estructuradas es flex, así que se fuerzan bloque y
     ancho completo. */
  .opciones_estructuras_enlace .opciones_estructuradas,
  #enlace_bloques .opciones_estructuradas {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
  }
  #enlace_bloques .opciones_estructuradas label {
    display: flex;
    width: 100%;
    padding: 10px 4px;
  }
  .grupo_pregunta { padding: 12px 10px; }
}

/* ---------------------------------------------------------------------------
   Enviar por enlace: panel administrativo

   Reutiliza los componentes ya existentes (tabla_datos, botones, avisos). La
   tabla se define aquí porque la vista de enlaces necesita un formato propio:
   seis columnas, con la acción al final.
   --------------------------------------------------------------------------- */

.formulario_enlaces {
  margin: 18px 0 0 0;
  padding: 16px 18px;
  background: var(--blanco);
  border: 1px solid var(--borde);
  border-radius: var(--radio);
}

.formulario_enlaces .rejilla_formulario { margin-bottom: 14px; }
.formulario_enlaces .boton_primario { margin: 0; }

.bloque_enlace_generado {
  margin: 20px 0 0 0;
  padding: 18px;
  border: 2px solid #bfe6cf;
  background: #f1faf5;
  border-radius: var(--radio);
}

.bloque_enlace_generado h3 { margin: 0 0 8px 0; color: #187544; }

.campo_enlace_generado {
  margin: 12px 0;
  padding: 11px 13px;
  background: var(--blanco);
  border: 1px solid #bfe6cf;
  border-radius: 8px;
  overflow-wrap: anywhere;
  word-break: break-all;
}

.campo_enlace_generado code { font-size: 0.875rem; color: var(--texto); }

.acciones_enlace_generado { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.acciones_enlace_generado .boton_primario { margin: 0; }
.acciones_enlace_generado .boton_secundario { margin: 0; }

.aviso_enlace_admin {
  margin: 12px 0 0 0;
  padding: 9px 13px;
  border: 1px solid #bfe6cf;
  background: #ffffff;
  color: #187544;
  border-radius: 8px;
  font-size: 0.875rem;
}

.bloque_tabla_enlaces { margin: 26px 0 0 0; }
.bloque_tabla_enlaces h3 { margin: 0 0 8px 0; font-size: 1.0625rem; color: #16365e; }
.bloque_tabla_enlaces .subtitulo { margin: 0 0 12px 0; font-size: 0.90625rem; }

.tabla_enlaces, .tabla_aplicaciones {
  width: 100%;
  border-collapse: collapse;
  background: var(--blanco);
  border: 1px solid var(--borde);
  border-radius: 10px;
  overflow: hidden;
  font-size: 0.875rem;
}

.tabla_enlaces th, .tabla_aplicaciones th {
  text-align: left;
  padding: 10px 12px;
  background: #eef2f7;
  border-bottom: 1px solid var(--borde);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: var(--texto_suave);
  white-space: nowrap;
}

.tabla_enlaces td, .tabla_aplicaciones td {
  padding: 10px 12px;
  border-bottom: 1px solid #eef1f5;
  vertical-align: middle;
}

.tabla_enlaces tr:last-child td, .tabla_aplicaciones tr:last-child td {
  border-bottom: none;
}

.tabla_enlaces .estado_pendiente { color: #8a6410; font-weight: 600; }
.tabla_enlaces .estado_recibido { color: #187544; font-weight: 600; }
.tabla_enlaces .estado_vencido { color: #5b6b82; }
.tabla_enlaces .estado_revocado { color: #8f2020; font-weight: 600; }
.tabla_aplicaciones .estado_revision { color: #8a6410; font-weight: 600; }
.tabla_aplicaciones .sumas_tdah5 { min-width: 220px; white-space: normal; }
.tabla_aplicaciones .suma_tdah5 { padding: 8px 0; white-space: normal; line-height: 1.4; }
.tabla_aplicaciones .suma_tdah5 + .suma_tdah5 { margin-top: 7px; border-top: 1px solid #e3eaf3; }
.tabla_aplicaciones .suma_tdah5_cabecera {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 8px;
  row-gap: 2px;
}
.tabla_aplicaciones .suma_tdah5_etiqueta { font-weight: 700; color: var(--texto); }
.tabla_aplicaciones .suma_tdah5_valor { font-weight: 700; color: #16365e; }
.tabla_aplicaciones .suma_tdah5_estado { margin-top: 3px; font-size: 0.78125rem; color: var(--texto_suave); }

.boton_pequeno { padding: 5px 12px; font-size: 0.8125rem; margin: 0; }

.bloque_vacio {
  padding: 18px 16px;
  border: 1px dashed var(--borde);
  border-radius: 10px;
  background: #f7f9fc;
  color: var(--texto_suave);
  text-align: center;
}

@media (max-width: 700px) {
  /* En pantallas estrechas la tabla se convierte en tarjetas apiladas: las
     celdas se muestran como filas con su encabezado. */
  .tabla_enlaces, .tabla_aplicaciones,
  .tabla_enlaces tbody, .tabla_aplicaciones tbody,
  .tabla_enlaces tr, .tabla_aplicaciones tr,
  .tabla_enlaces td, .tabla_aplicaciones td { display: block; width: 100%; }
  .tabla_enlaces thead, .tabla_aplicaciones thead { display: none; }
  .tabla_enlaces tr, .tabla_aplicaciones tr {
    border-bottom: 1px solid var(--borde);
    padding: 10px 12px;
  }
  .tabla_enlaces td, .tabla_aplicaciones td {
    border-bottom: none;
    padding: 3px 0;
    display: flex;
    justify-content: space-between;
    gap: 12px;
  }
  .tabla_enlaces td::before, .tabla_aplicaciones td::before {
    content: attr(data-rotulo);
    font-size: 0.78125rem;
    color: var(--texto_suave);
    flex: 0 0 auto;
  }
}

/* La página del enlace no carga la hoja de estilos de la aplicación
   administrativa como documento principal: solo necesita el fondo y el
   centrado, que ya define .vista_enlace. */
.cuerpo_enlace { background: var(--fondo_clinico); }
.cuerpo_enlace main { padding: 0; }

/* Aviso de edad: informa por qué no hay cuestionario, o cuál corresponde. */
.aviso_edad_enlaces {
  margin: 16px 0 0 0;
  padding: 11px 14px;
  border: 1px solid #cbd9ec;
  background: #eef3f9;
  border-radius: 10px;
  font-size: 0.90625rem;
  color: var(--texto);
}

.aviso_prototipo { display: block; }

/* ---------------------------------------------------------------------------
   Panel de enlaces: dos tarjetas de contexto

   Una por Hogar y Escuela. Cada una muestra el estado de su enlace operativo y
   las acciones. Se apilan en pantallas estrechas.
   --------------------------------------------------------------------------- */

.rejilla_contextos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.tarjeta_contexto {
  background: var(--blanco);
  border: 1px solid var(--borde);
  border-top: 4px solid var(--azul_boton);
  border-radius: var(--radio);
  box-shadow: var(--sombra-tarjeta);
  padding: 16px 18px 18px 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tarjeta_contexto.contexto_escuela { border-top-color: #2f9e6a; }

.contexto_cabecera { display: flex; align-items: baseline; gap: 10px; }
.contexto_cabecera h3 { margin: 0; font-size: 1.1875rem; color: #16365e; }

.contexto_formulario {
  font-size: 0.78125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--texto_suave);
  background: #eef2f7;
  border-radius: 999px;
  padding: 3px 10px;
}

.contexto_estado { margin: 0; font-size: 0.9375rem; font-weight: 600; }
.contexto_estado.estado_pendiente { color: #8a6410; }
.contexto_estado.estado_recibido { color: #187544; }
.contexto_detalle { margin: 0; font-size: 0.875rem; color: var(--texto_suave); }
.contexto_nota { margin: 0; font-size: 0.8125rem; color: var(--texto_suave); font-style: italic; }
.contexto_no_disponible { margin: 0; font-size: 0.875rem; color: #8f2020; }

.contexto_formulario_generar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 4px; }
.contexto_formulario_generar select {
  padding: 9px 10px;
  border: 1px solid #cbd9ec;
  border-radius: 10px;
  font-size: 0.9375rem;
  background: var(--blanco);
  flex: 1 1 150px;
}
.contexto_acciones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.contexto_acciones .boton_primario,
.contexto_acciones .boton_secundario { margin: 0; }

.acciones_pdf { display: flex; flex-wrap: wrap; gap: 6px; }
.acciones_pdf .boton_pequeno { margin: 0; }

/* Estados en las tablas. El de recepción es independiente del de revisión. */
.tabla_enlaces .estado_pendiente,
.tabla_aplicaciones .estado_pendiente { color: #8a6410; font-weight: 600; }
.tabla_enlaces .estado_recibido_completo,
.tabla_aplicaciones .estado_recibido { color: #187544; font-weight: 600; }
.tabla_enlaces .estado_recibido_incompleto,
.tabla_aplicaciones .estado_incompleto { color: #b26a00; font-weight: 600; }
.tabla_enlaces .estado_vencido { color: #5b6b82; }
.tabla_enlaces .estado_revocado,
.tabla_enlaces .estado_sustituido { color: #8f2020; }
.tabla_aplicaciones .estado_revision { color: #8a6410; font-weight: 600; }

@media (max-width: 760px) {
  .rejilla_contextos { grid-template-columns: 1fr; }
  .acciones_pdf { flex-direction: column; align-items: stretch; }
}

/* ---------------------------------------------------------------------------
   Panel de enlaces: ancho propio

   .contenido_modulo está pensado para formularios de una columna (900 px). El
   panel de enlaces tiene dos tarjetas y dos tablas, así que necesita más sitio.
   Se ajusta solo aquí, con una clase propia, para no cambiar el resto de los
   módulos.
   --------------------------------------------------------------------------- */

.contenido_modulo.panel_ancho {
  max-width: min(1280px, 88vw);
  width: 100%;
}

@media (max-width: 760px) {
  .contenido_modulo.panel_ancho { max-width: 100%; }
}

/* Acciones de la tabla de enlaces: los botones se acomodan sin superponerse. */
.acciones_enlace { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.acciones_enlace .boton_pequeno { margin: 0; }
.nota_sin_copia { font-size: 0.78125rem; color: var(--texto_suave); font-style: italic; }

.aviso_enlace_error {
  border-color: #e6b8b8;
  background: #fdf0f0;
  color: #8f2020;
}

/* Barra de avance y estado del guardado automático del cuestionario remoto. */
.barra_avance_enlace {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 14px 0 4px 0;
  padding: 10px 14px;
  background: #f7f9fc;
  border: 1px solid #dbe3ee;
  border-radius: 10px;
  font-size: 0.90625rem;
  color: var(--texto_suave);
}

.barra_avance_enlace #enlace_avance { font-weight: 600; color: var(--texto); }

.estado_guardado { font-size: 0.875rem; }
.estado_guardado.guardando { color: var(--texto_suave); }
.estado_guardado.guardado { color: #187544; font-weight: 600; }
.estado_guardado.error { color: #8f2020; font-weight: 600; }

/* Estado profesional en la tabla de respuestas. Es independiente del estado de
   recepción: una aplicación completa puede estar pendiente o descartada. */
.tabla_aplicaciones .profesional_pendiente_revision { color: #8a6410; font-weight: 600; }
.tabla_aplicaciones .profesional_validada { color: #187544; font-weight: 600; }
.tabla_aplicaciones .profesional_descartada { color: #8f2020; font-weight: 600; }

/* Escritorio clínico: identidad compartida por consulta y enlaces públicos. */
:root {
  --azul_encabezado: #123f4b;
  --azul_lateral: #103945;
  --azul_boton: #176075;
  --azul_boton_hover: #10495b;
  --fondo_clinico: #f2f5f5;
  --texto: #20383e;
  --texto_suave: #526970;
  --borde: #d8e2e4;
  --radio: 18px;
  --radio-tarjeta: 16px;
  --sombra: 0 6px 24px rgba(21, 63, 75, .06);
  --sombra-tarjeta: var(--sombra);
  --alto-encabezado: 76px;
  --amarillo_clinico: #edc65a;
}
html { scroll-padding-top: 160px; }
body { font-size: 0.9375rem; background: var(--fondo_clinico); }
button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
:focus-visible { outline: 3px solid #a16b00; outline-offset: 4px; }
h1, h2, h3, legend { color: #123f4b; letter-spacing: -.025em; }
h1 { font-size: clamp(26px, 2.6vw, 36px); }
h2 { font-size: clamp(22px, 2vw, 28px); }
.saltar_contenido { position: fixed; left: 12px; top: -100px; z-index: 100; padding: 12px 18px; background: white; color: #123f4b; border-radius: 10px; }
.saltar_contenido:focus { top: 8px; }
.encabezado_superior { height: var(--alto-encabezado); padding: 0 28px; box-shadow: 0 2px 8px #153f4b15; }
.texto_identidad strong { font-size: 1.25rem; letter-spacing: -.03em; }
.texto_identidad small { color: #d7e6e9; font-size: 0.75rem; margin-top: 4px; }
.logotipo { background: #ffffff0d; border-radius: 13px; }
.logotipo svg path { stroke: #edc65a; }
.logotipo svg circle { fill: #edc65a; }
.boton_icono { border-radius: 11px; width: 40px; height: 40px; }
.usuario_actual { border-left: 1px solid #ffffff30; padding-left: 14px; }
.avatar_usuario { background: #ffffff18; color: white; }
.encabezado_superior .boton_secundario { color: white; background: #ffffff0d; border-color: #ffffff40; }
.boton_luna_discreto { color: white; }
.barra_lateral { position: fixed; left: 16px; top: calc(var(--alto-encabezado) + 18px); bottom: 18px; width: 244px; padding: 20px 12px; border-radius: 20px; background: var(--azul_lateral); box-shadow: var(--sombra); overflow-y: auto; z-index: 18; }
.rotulo_lateral { color: #b7ccd1; font-size: 0.625rem; font-weight: 700; letter-spacing: .18em; margin: 2px 14px 18px; }
.menu_principal { padding: 0; margin: 8px 0; }
.menu_principal li { list-style: none; }
.opcion_menu { color: #e4eef0; border-radius: 11px; padding: 11px 13px; gap: 12px; min-height: 44px; font-size: 0.875rem; line-height: 1.4; width: 100%; text-align: left; }
.opcion_menu:hover { background: #ffffff13; color: white; }
.opcion_menu.activa { background: #ffffff; color: #123f4b; box-shadow: inset 4px 0 #edc65a; }
.opcion_menu.secundaria { color: #e4eef0; }
.separador_menu { background: #ffffff25; margin: 15px 10px; }
.espacio_trabajo { min-width: 0; }
.sesion_escritorio .espacio_trabajo { margin: 0 24px 0 284px; padding-bottom: 112px; }
.sesion_escritorio.lateral_oculta .espacio_trabajo { margin-left: 24px; }
.barra_contexto { min-height: 80px; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 18px 2px; background: var(--fondo_clinico); position: sticky; top: var(--alto-encabezado); z-index: 16; border-bottom: 1px solid var(--borde); }
.barra_contexto > div:first-child { display: flex; flex-direction: column; gap: 3px; flex-shrink: 0; }
.rotulo_contexto { font-size: 0.625rem; font-weight: 700; letter-spacing: .16em; color: var(--texto_suave); }
#contexto_modulo { font-size: 0.9375rem; color: #123f4b; }
.paciente_contexto { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; flex-wrap: wrap; font-size: 0.8125rem; }
#contexto_expediente { border: 1px solid var(--borde); padding: 3px 8px; border-radius: 7px; color: var(--texto_suave); white-space: nowrap; }
.punto_contexto { width: 7px; height: 7px; background: #276c61; border-radius: 50%; }
.contenedor_principal { display: block; min-height: auto; }
.area_clinica { margin: 0; width: 100%; padding: 26px 0; max-width: none; }
.vista_inicio, .vista_modulo, .vista_historia { min-height: 0; background: transparent; }
.contenedor_inicio { max-width: 1180px; margin: 30px auto; padding: 34px; border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); background: white; }
.contenedor_inicio.centrado { text-align: left; }
.contenedor_inicio.centrado > .cinta_demo_en_linea { margin-bottom: 18px; }
.contenedor_inicio .subtitulo { max-width: 720px; margin-top: 12px; }
.rejilla_acciones_inicio { margin-top: 32px; gap: 18px; }
.tarjeta_accion { background: #f7fafa; border: 1px solid var(--borde); min-height: 160px; padding: 25px; border-radius: 16px; text-align: left; flex-direction: column; align-items: flex-start; }
.tarjeta_accion.destacada { background: #e9f2f3; border-color: #aecbd2; }
.tarjeta_accion:hover, .tarjeta_modulo:hover, .acceso_espacio:hover { border-color: #397887; box-shadow: 0 5px 16px #123f4b12; transform: translateY(-2px); }
.icono_tarjeta, .icono_espacio { color: #176075; font-size: 1.5625rem; background: #edf3f4; border-radius: 11px; padding: 6px 10px; }
.texto_tarjeta strong { color: #163f4c; font-size: 1.0625rem; }
.texto_tarjeta small { font-size: 0.8125rem; color: var(--texto_suave); line-height: 1.5; margin-top: 8px; }
.tarjeta_paciente { border: 1px solid var(--borde); border-radius: var(--radio); box-shadow: var(--sombra); padding: 28px; background: white; }
.nombre_paciente { font-size: clamp(1.5rem, 2.3vw, 2rem); }
.avatar_paciente { background: #e4eef0; color: #123f4b; border-radius: 18px; }
.cinta_demo { border-radius: 6px; color: #526970; background: #eef3f4; border: 1px solid var(--borde); }
.cinta_demo_en_linea, .etiqueta_demo { background: #f8edcb; color: #6c5012; border: 1px solid #e2ce99; border-radius: 6px; font-size: 0.6875rem; font-style: normal; }
.seccion_expediente, .seccion_evaluaciones { margin-top: 30px; }
.rejilla_modulos { gap: 14px; }
.tarjeta_modulo { border: 1px solid var(--borde); border-radius: 15px; padding: 22px; background: white; min-height: 126px; box-shadow: none; }
.tono_azul, .tono_lila, .tono_amarillo, .tono_rosa, .tono_cian, .tono_menta, .tono_gris { background: #edf3f4; color: #123f4b; }
.tarjeta_modulo.tono_azul, .tarjeta_modulo.tono_lila, .tarjeta_modulo.tono_amarillo, .tarjeta_modulo.tono_rosa, .tarjeta_modulo.tono_cian { background: white; }
.tarjeta_evaluacion { border-radius: 15px; box-shadow: none; border-color: var(--borde); overflow: hidden; }
.tarjeta_evaluacion header { padding: 18px; background: #eef4f5; }
.tarjeta_evaluacion.destacada { border-color: #a4c6ce; }
.tarjeta_evaluacion.inactiva { opacity: 1; }
.etiqueta_estado.disponible { color: #245e52; background: #e9f5ef; border-color: #bfdace; }
.rejilla_inferior { gap: 20px; }
.actividad_reciente, .notas_importantes { border-radius: 16px; padding: 24px; }
.notas_importantes { background: #fffdf6; border-color: #e6dcc1; }
.boton_primario { color: white; background: var(--azul_boton); border: 1px solid var(--azul_boton); border-radius: 10px; padding: 11px 18px; min-height: 42px; font-weight: 600; box-shadow: 0 2px 4px #123f4b10; }
.boton_primario:hover { background: var(--azul_boton_hover); }
.boton_secundario { color: #174d5c; background: white; border: 1px solid #bed0d5; border-radius: 10px; padding: 10px 16px; min-height: 42px; font-weight: 600; }
.boton_secundario:hover { background: #eef4f5; border-color: #6795a1; }
.boton_enlace { color: #176075; }
.boton_pequeno { min-height: 36px; padding: 7px 12px; font-size: 0.8125rem; }
button:disabled { opacity: .65; cursor: not-allowed; }
input:not([type=radio]):not([type=checkbox]), select, textarea { background: white; color: var(--texto); border: 1px solid #b9cbd0; border-radius: 9px; padding: 11px 12px; max-width: 100%; }
input[readonly] { background: #f2f5f5 !important; }
input[type=radio], input[type=checkbox] { accent-color: #176075; min-width: 18px; min-height: 18px; }
.campo label { color: #304d57; font-weight: 600; font-size: 0.8125rem; }
fieldset { border-color: var(--borde); border-radius: 13px; padding: 20px; }
legend { font-weight: 700; padding: 0 8px; }
.barra_modulo, .barra_historia { position: static; background: white; border: 1px solid var(--borde); border-radius: 14px; padding: 14px 20px; margin: 22px 0 0; box-shadow: none; }
.contenido_modulo, .contenido_modulo.panel_ancho { max-width: none; margin: 20px 0; border-radius: 18px; padding: 30px; text-align: left; box-shadow: var(--sombra); }
.miga_navegacion { color: #657a81; font-size: 0.75rem; margin: 0 0 20px; }
.rejilla_contextos { gap: 20px; }
.tarjeta_contexto { background: #fbfdfd; border: 1px solid var(--borde); border-top: 3px solid #176075; border-radius: 14px; padding: 24px; }
.tarjeta_contexto.contexto_escuela { border-top-color: #176075; }
.rejilla_espacios { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-top: 25px; }
.acceso_espacio { padding: 24px; min-height: 170px; background: #fbfdfd; border: 1px solid var(--borde); border-radius: 15px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; text-align: left; color: #123f4b; cursor: pointer; }
.acceso_espacio strong { font-size: 1.0625rem; }
.acceso_espacio .etiqueta_estado { font-size: 0.6875rem; }
.aviso_pendiente { background: #fff8e4; border-color: #e4d49e; color: #695118; font-size: 0.875rem; display: block; width: fit-content; margin-top: 24px; }
.contenido_historia { max-width: none; padding: 22px 0 0; gap: 22px; }
.seccion_historia { background: white; border: 1px solid var(--borde); border-radius: 16px; padding: 26px; box-shadow: var(--sombra); scroll-margin-top: 210px; }
.navegacion_historia { background: #e7eff1; border: 1px solid #d3e0e4; border-radius: 12px; padding: 10px; margin-top: 15px; top: calc(var(--alto-encabezado) + 80px); z-index: 14; }
.navegacion_historia button { background: white; color: #174d5c; border-color: #c4d7dd; border-radius: 8px; padding: 9px 13px; }
.navegacion_historia button:hover { background: #176075; color: white; }
.titulo_navegacion { color: #123f4b; }
.tabla_enlaces, .tabla_aplicaciones { border-radius: 12px; border-color: var(--borde); }
.tabla_enlaces th, .tabla_aplicaciones th { background: #eef4f5; color: #284b57; font-size: 0.75rem; padding: 14px 12px; }
.tabla_enlaces td, .tabla_aplicaciones td { padding: 14px 12px; font-size: 0.8125rem; }
.bloque_tabla_enlaces { overflow-x: auto; padding-bottom: 6px; }
.bloque_tabla_enlaces h3 { color: #123f4b; }
.identificador_instrumento.activo { background: #eaf2f4; color: #174d5c; border-color: #bad2d9; }
.panel_luna { top: calc(var(--alto-encabezado) + 16px); bottom: 16px; right: 16px; width: 330px; height: auto; border: 1px solid var(--borde); border-radius: 16px; overflow: hidden; box-shadow: var(--sombra); }
.panel_luna.oculto { display: none; }
.ia_abierta.sesion_escritorio .espacio_trabajo { margin-right: 366px; }
.ia_abierta .reserva_menu { margin-right: 350px; }
.cabecera_luna { background: #eef4f5; }
.reserva_menu { position: fixed; bottom: 0; left: 284px; right: 24px; height: 94px; display: flex; align-items: center; justify-content: center; background: linear-gradient(transparent, #f2f5f5 30%); z-index: 17; padding: 12px 0; }
.lateral_oculta .reserva_menu { left: 24px; }
.menu_flotante { display: flex; gap: 5px; align-items: center; padding: 7px; border: 1px solid #cfdee3; border-radius: 18px; background: #fff; box-shadow: 0 5px 24px #123f4b18; }
.menu_flotante button { border: 0; background: transparent; color: #45616b; border-radius: 12px; display: flex; align-items: center; flex-direction: column; justify-content: center; gap: 4px; min-width: 74px; min-height: 52px; padding: 5px 10px; font-size: 0.6875rem; cursor: pointer; }
.menu_flotante button > span:first-child { font-size: 1.25rem; line-height: 1; }
.menu_flotante button:hover { background: #eff5f6; color: #174d5c; }
.menu_flotante button[aria-current=page] { background: #e5eff2; color: #123f4b; box-shadow: inset 0 -3px #edc65a; }
.aviso_flotante { bottom: 110px; background: #123f4b; max-width: calc(100vw - 40px); }
.contenedor_login { border-radius: 22px; border: 1px solid var(--borde); border-top: 5px solid #edc65a; box-shadow: 0 16px 55px #123f4b14; padding: 36px; }
.vista_login { background: radial-gradient(ellipse at 30% 20%, #dce9ec, #f2f5f5 70%); }
.identidad_publica { min-height: 76px; display: flex; gap: 14px; align-items: center; justify-content: center; background: #123f4b; color: white; padding: 18px; }
.identidad_publica strong { display: block; font-size: 1.125rem; }
.identidad_publica small { display: block; color: #d6e5e9; font-size: 0.75rem; }
.sello_publico { color: #edc65a; font-size: 1.875rem; }
.contenedor_enlace { max-width: 980px; border: 1px solid var(--borde); border-radius: 20px; margin: 26px auto; padding: 32px; background: white; box-shadow: var(--sombra); }
.bloque_identificacion_enlace { background: #edf4f5; border: 1px solid #d0e1e5; border-radius: 12px; }
.barra_avance_enlace { border-color: #cbdee3; background: #f3f8f9; top: 0; border-radius: 10px; }
@media (max-width: 1200px) {
  .encabezado_superior { padding: 0 18px; }
  .acciones_encabezado { gap: 8px; }
  .bloque_identidad { gap: 14px; }
  .tarjeta_paciente { flex-wrap: wrap; gap: 20px; }
  .rejilla_modulos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .barra_contexto { flex-wrap: wrap; }
}
@media (max-width: 900px) {
  :root { --alto-encabezado: 70px; }
  .encabezado_superior { padding: 0 12px; height: 70px; }
  .texto_identidad small, .logotipo, .usuario_actual, #boton_notificaciones, #boton_luna_encabezado { display: none; }
  .texto_identidad strong { font-size: 1.0rem; }
  .acciones_encabezado { gap: 5px; }
  #boton_cerrar_sesion { font-size: 0.6875rem; min-height: 38px; padding: 7px 10px; }
  .barra_lateral { position: static; width: auto; margin: 12px; padding: 18px; max-height: none; }
  .menu_principal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .barra_lateral .opcion_menu { font-size: 0.8125rem; }
  .sesion_escritorio .espacio_trabajo, .sesion_escritorio.lateral_oculta .espacio_trabajo, .ia_abierta.sesion_escritorio .espacio_trabajo { margin: 0 14px; padding-bottom: 108px; }
  .barra_contexto { top: 70px; padding: 12px 0; gap: 8px; min-height: 72px; }
  .paciente_contexto { justify-content: flex-start; font-size: 0.75rem; flex-basis: 100%; }
  #cerrar_panel_escritorio { min-height: 34px; padding: 6px 10px; font-size: 0.6875rem; margin-left: auto; }
  .barra_contexto > div:first-child { flex: 1; }
  #contexto_modulo { font-size: 0.8125rem; }
  .contenedor_inicio, .contenido_modulo, .contenido_modulo.panel_ancho { padding: 22px; margin: 20px 0; }
  .contenedor_inicio.centrado { width: auto; }
  .rejilla_acciones_inicio, .rejilla_inferior { grid-template-columns: 1fr; }
  .tarjeta_accion { min-height: 112px; flex-direction: row; align-items: center; padding: 20px; }
  .tarjeta_paciente { padding: 22px; }
  .ficha_teclas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rejilla_contextos { grid-template-columns: 1fr; }
  .barra_modulo, .barra_historia { padding: 14px; }
  .identificacion_modulo, .identificacion_historia { font-size: 0.8125rem; }
  .navegacion_historia { position: static; flex-wrap: wrap; overflow: visible; }
  .seccion_historia { padding: 20px; scroll-margin-top: 170px; }
  .reserva_menu, .lateral_oculta .reserva_menu, .ia_abierta .reserva_menu { left: 0; right: 0; margin: 0; height: 94px; }
  .menu_flotante { max-width: calc(100vw - 20px); width: fit-content; gap: 0; padding: 5px; }
  .menu_flotante button { min-width: 0; width: 63px; padding: 5px; font-size: 0.625rem; }
  .menu_flotante button span:last-child { line-height: 1.2; }
  .panel_luna { position: static; width: auto; max-width: none; margin: 16px 14px 110px; max-height: none; min-height: 380px; }
  .panel_luna.minimizado { min-height: 0; }
  .panel_luna .conversacion_luna { min-height: 140px; }
  .contenedor_enlace { margin: 16px 12px; padding: 22px 16px; }
  .rejilla_espacios { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .acceso_espacio { padding: 18px; min-height: 180px; }
}
@media (max-width: 550px) {
  .rejilla_modulos, .rejilla_evaluaciones, .rejilla_formulario, .rejilla_espacios { grid-template-columns: 1fr; }
  .acceso_espacio { min-height: 130px; }
  .rejilla_formulario { gap: 18px; }
  .menu_flotante { width: calc(100% - 20px); justify-content: space-around; }
  .menu_flotante button { flex: 1; max-width: 70px; }
  .nombre_paciente { font-size: 1.4375rem; }
  .bloque_identidad { align-items: flex-start; }
  .avatar_paciente { display: none; }
  .fila_busqueda { flex-wrap: wrap; }
  .fila_busqueda input { flex-basis: 100%; }
  .contenedor_inicio { padding: 20px; }
  .seccion_historia { padding: 18px; }
  fieldset { padding: 16px; min-width: 0; }
  .tabla_enlaces, .tabla_aplicaciones { min-width: 680px; }
  .acciones_pdf { flex-direction: column; }
  .titulo_navegacion { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; } }
@media print {
  .barra_lateral, .barra_contexto, .reserva_menu, .saltar_contenido, .identidad_publica { display: none !important; }
  .sesion_escritorio .espacio_trabajo, .sesion_escritorio.lateral_oculta .espacio_trabajo, .ia_abierta.sesion_escritorio .espacio_trabajo { margin: 0; padding: 0; }
}
/* El menú flotante ocupa una fila propia: ningún control queda debajo. */
body.sesion_escritorio { height: 100dvh; display: flex; flex-direction: column; overflow: hidden; }
.sesion_escritorio .encabezado_superior { flex-shrink: 0; position: relative; }
.sesion_escritorio .espacio_trabajo { flex: 1; min-height: 0; overflow-y: auto; padding: 0 4px 28px 0; order: 1; }
.sesion_escritorio .barra_contexto { top: 0; }
.sesion_escritorio .reserva_menu { position: relative; left: auto; right: auto; bottom: auto; margin-left: 284px; margin-right: 24px; height: 94px; flex-shrink: 0; order: 3; background: var(--fondo_clinico); }
.sesion_escritorio.lateral_oculta .reserva_menu { margin-left: 24px; }
.sesion_escritorio.ia_abierta .reserva_menu { margin-right: 366px; }
.sesion_escritorio .navegacion_historia { top: 80px; }
.contenedor_inicio.centrado h1, .contenedor_inicio.centrado .subtitulo { text-align: left; }
@media (max-width: 900px) {
  .sesion_escritorio .barra_lateral { flex-shrink: 0; max-height: 35dvh; overflow-y: auto; margin-bottom: 0; }
  .sesion_escritorio .espacio_trabajo, .sesion_escritorio.lateral_oculta .espacio_trabajo, .ia_abierta.sesion_escritorio .espacio_trabajo { padding-bottom: 24px; }
  .sesion_escritorio .reserva_menu, .sesion_escritorio.lateral_oculta .reserva_menu, .sesion_escritorio.ia_abierta .reserva_menu { margin: 0; }
  .sesion_escritorio.ia_abierta .espacio_trabajo { display: none; }
  .sesion_escritorio .panel_luna { order: 1; flex: 1; margin: 14px; min-height: 0; overflow: auto; }
}
.icono_tarjeta svg { display: block; }
@media (max-width: 700px) {
  .tabla_enlaces, .tabla_aplicaciones { min-width: 0; }
  .tabla_enlaces td, .tabla_aplicaciones td { flex-wrap: wrap; overflow-wrap: anywhere; }
  .tabla_aplicaciones .sumas_tdah5 { min-width: 0; }
  .tabla_enlaces td::before, .tabla_aplicaciones td::before { flex-basis: 100%; }
  .acciones_pdf { flex-direction: row; }
  .grupo_pregunta { min-width: 0; }
  .grupo_pregunta legend { max-width: 100%; }
}
#enlace_omisiones { width: min(520px, calc(100vw - 32px)); padding: 28px; border: 1px solid var(--borde); border-top: 4px solid var(--amarillo_clinico); border-radius: 18px; color: var(--texto); box-shadow: 0 16px 60px #123f4b30; }
#enlace_omisiones::backdrop { background: #10394588; }
#enlace_omisiones button { display: block; width: 100%; white-space: normal; margin-top: 12px; line-height: 1.5; }
#enlace_omisiones h2 { font-size: 1.4375rem; }
#enlace_omisiones p { color: var(--texto_suave); }
@media (max-width: 550px) { #enlace_omisiones { padding: 22px; } }
@media (max-width: 550px) {
  .cabecera_evaluaciones { flex-wrap: wrap; gap: 12px; }
  #boton_ver_evaluaciones { white-space: normal; max-width: 100%; }
  .actividad_reciente li { flex-wrap: wrap; }
}
@media print {
  body.sesion_escritorio { display: block; height: auto; overflow: visible; }
  .sesion_escritorio .espacio_trabajo { overflow: visible; height: auto; }
}

/* Preferencias locales: paleta, escala tipográfica y espacio de lectura. */
:root {
  --superficie: #ffffff;
  --superficie_suave: #edf3f4;
  --acento_texto: #765800;
  --ancho_contenido: 1152px;
  --ancho_tablas: 1440px;
  --medida_narrativa: 72ch;
  --tamano_base: 16px;
  --radio: 10px;
  --radio-tarjeta: 10px;
  --sombra: 0 2px 8px #163f4b0a;
}
html[data-paleta="azul"] { --azul_encabezado: #193752; --azul_lateral: #172f47; --azul_boton: #245a83; --azul_boton_hover: #193e5c; --fondo_clinico: #f1f4f8; --superficie_suave: #e9f1f8; --amarillo_clinico: #9bcde7; --acento_texto: #245a83; }
html[data-paleta="salvia"] { --azul_encabezado: #254b3e; --azul_lateral: #203f35; --azul_boton: #38644e; --azul_boton_hover: #254b3e; --fondo_clinico: #f3f6f2; --superficie_suave: #eaf1e8; --amarillo_clinico: #b7cea7; --acento_texto: #38644e; }
html[data-paleta="grafito"] { --azul_encabezado: #303b46; --azul_lateral: #29323c; --azul_boton: #365e86; --azul_boton_hover: #294765; --fondo_clinico: #f3f4f6; --superficie_suave: #eaf0f6; --amarillo_clinico: #a9c8e6; --acento_texto: #365e86; }
html[data-paleta="arena"] { --azul_encabezado: #254852; --azul_lateral: #203d45; --azul_boton: #2d5d69; --azul_boton_hover: #203f48; --fondo_clinico: #f7f3eb; --superficie: #fffdf8; --superficie_suave: #f0e9dd; --amarillo_clinico: #dbbd79; --acento_texto: #755717; }
html[data-texto="grande"] { --tamano_base: 18px; }
html[data-texto="extra"] { --tamano_base: 20px; }
html[data-ancho="amplio"] { --ancho_contenido: 1440px; --ancho_tablas: 1680px; }
html { font-size: var(--tamano_base); }
body { font-size: 1rem; }
h1 { font-size: clamp(1.625rem, 2.6vw, 2.25rem); }
h2 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
h1, h2, h3, legend, #contexto_modulo, .texto_tarjeta strong, .nombre_paciente, .icono_tarjeta, .icono_espacio, .boton_enlace, .boton_secundario { color: var(--azul_encabezado); }
.boton_secundario { background: var(--superficie); }
.sesion_escritorio .espacio_trabajo > section,
.sesion_escritorio .espacio_trabajo > .contenedor_principal,
.sesion_escritorio .barra_contexto { width: min(100%, var(--ancho_contenido)); margin-inline: auto; }
.sesion_escritorio .espacio_trabajo > #vista_resultados_tdah5,
.sesion_escritorio .espacio_trabajo > #vista_enlaces_tdah5 { width: min(100%, var(--ancho_tablas)); }
.contenedor_inicio { max-width: var(--ancho_contenido); border-radius: var(--radio); }
.subtitulo, .ejemplo_pregunta, .nota_lectura, .respuesta_lectura, .etiqueta_lectura { max-width: var(--medida_narrativa); }
.tarjeta_paciente, .tarjeta_modulo, .tarjeta_accion, .tarjeta_evaluacion, .actividad_reciente, .notas_importantes, .acceso_espacio { border-radius: var(--radio); box-shadow: none; }
.tarjeta_accion, .tarjeta_modulo, .acceso_espacio { min-height: auto; padding: 20px; }
.tarjeta_accion:hover, .tarjeta_modulo:hover, .acceso_espacio:hover { transform: none; box-shadow: none; border-color: var(--azul_boton); }
.tarjeta_paciente, .tarjeta_modulo, .tarjeta_accion, .acceso_espacio, .contenedor_inicio, .tarjeta_historia, .muestra_apariencia { background: var(--superficie); }
.tono_azul, .tono_lila, .tono_amarillo, .tono_rosa, .tono_cian, .tono_menta, .tono_gris, .tarjeta_evaluacion header, .icono_tarjeta, .icono_espacio { background: var(--superficie_suave); color: var(--azul_encabezado); }
.opcion_menu.activa { color: var(--azul_encabezado); box-shadow: inset 4px 0 var(--amarillo_clinico); }
.opcion_menu, .rotulo_lateral { color: #e4eef0; }
.logotipo svg path { stroke: var(--amarillo_clinico); }
.logotipo svg circle { fill: var(--amarillo_clinico); }
.barra_lateral { border-radius: 12px; }
.menu_flotante { border-radius: 12px; }
.selector_presentacion { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: 1rem 0; }
.selector_presentacion span { font-size: .875rem; color: var(--texto_suave); }
.selector_presentacion [aria-pressed="true"] { background: var(--azul_boton); color: white; border-color: var(--azul_boton); }
#vista_historia .campo > label, #vista_historia legend, .etiqueta_lectura, .controles_apariencia label { color: var(--azul_encabezado); font-size: .9375rem; font-weight: 700; line-height: 1.5; }
#vista_historia input, #vista_historia select, #vista_historia textarea, .respuesta_lectura { font-size: 1.0625rem; line-height: 1.55; color: #20383e; }
#vista_historia .campo { gap: .35rem; min-width: 0; }
#vista_historia .rejilla_formulario { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.5rem; }
#vista_historia textarea { max-width: var(--medida_narrativa); min-height: 5rem; }
#vista_historia input[type="tel"], #vista_historia input[type="number"], #vista_historia input[type="date"], #fecha_inicio_entrevista, #hora_inicio_entrevista, #hora_termino_entrevista, #duracion_entrevista { max-width: 16ch; }
#vista_historia input[type="text"] { max-width: 38ch; }
.tarjeta_historia { padding: 1.5rem; margin-bottom: 1.25rem; border-radius: var(--radio); box-shadow: none; }
.tarjeta_historia h2, .seccion_lectura h2 { padding-bottom: .7rem; border-bottom: 1px solid var(--borde); margin-bottom: 1.1rem; }
.lectura_historia { margin: 1.5rem auto; padding: 1.5rem 2rem; background: var(--superficie); max-width: 86ch; }
.seccion_lectura { padding: 1rem 0 1.5rem; scroll-margin-top: 12rem; }
.dato_lectura { margin: 0 0 1.1rem; }
.etiqueta_lectura { margin: 0 0 .25rem; }
.respuesta_lectura { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.nota_lectura { color: var(--texto_suave); }
.controles_apariencia { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
.muestra_apariencia { border-top: 1px solid var(--borde); margin-top: 2rem; padding-top: 1rem; }
.encabezado_superior { min-height: 4.75rem; height: auto; padding-block: .75rem; flex-wrap: wrap; gap: .6rem; }
.barra_lateral { top: calc(4.75rem + 18px); }
.barra_historia { flex-wrap: wrap; }
.sesion_escritorio .navegacion_historia { position: static; flex-wrap: wrap; }
.barra_contexto { flex-wrap: wrap; min-height: 5rem; }
.boton_menu_flotante, .menu_flotante button { min-width: 0; white-space: normal; }
.reserva_menu { min-height: 6rem; height: auto !important; }
.boton_menu_flotante { font-size: .8125rem; }
button, label, .campo, .subtitulo { overflow-wrap: anywhere; }
@media (max-width: 1100px) {
  .sesion_escritorio .usuario_actual { display: none; }
  .rejilla_acciones_inicio, .rejilla_espacios { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .barra_lateral { position: static; }
  .sesion_escritorio .espacio_trabajo { overflow-x: hidden; }
  .encabezado_superior { min-height: 4rem; padding: .6rem .9rem; }
  .texto_identidad strong { font-size: 1rem; }
  .controles_apariencia { grid-template-columns: 1fr; }
  .sesion_escritorio .reserva_menu { min-height: 5rem; }
}
@media (max-width: 600px) {
  #vista_historia .rejilla_formulario, .rejilla_acciones_inicio, .rejilla_espacios { grid-template-columns: 1fr; }
  .lectura_historia { padding: 1rem; }
  .tarjeta_historia { padding: 1rem; }
  .barra_contexto > div:first-child { flex-shrink: 1; }
  .paciente_contexto { justify-content: flex-start; }
  .menu_flotante { flex-wrap: wrap; }
  .reserva_menu { min-height: 6rem; }
}
@media print {
  html { font-size: 1.0rem !important; }
  .selector_presentacion, #lectura_historia { display: none !important; }
  #vista_historia .contenido_historia { display: block !important; }
}
#edad_inicio_problema, #semanas_gestacion, #peso_nacer, #hora_dormir, #hora_despertar { max-width: 16ch !important; }
.barra_modulo, .barra_aplicacion, .cabecera_evaluaciones { flex-wrap: wrap; }
.opcion_menu { min-height: 2.75rem; }
.encabezado_superior { align-items: center; }
.sesion_escritorio .panel_luna { width: min(22rem, calc(100vw - 32px)); }
@media (min-width: 901px) {
  .sesion_escritorio.ia_abierta .espacio_trabajo, .sesion_escritorio.ia_abierta .reserva_menu { margin-right: calc(22rem + 36px); }
}
@media (max-width: 900px) {
  .sesion_escritorio .panel_luna { width: auto; max-width: none; }
}
button { white-space: normal; max-width: 100%; }
@media (max-width: 600px) {
  .menu_flotante { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; padding: .4rem; width: 100%; }
  .menu_flotante button { width: 100%; }
  .sesion_escritorio .reserva_menu { min-height: 8rem; }
  .barra_modulo, .contenido_modulo { padding: 1rem; min-width: 0; }
}
.menu_flotante button { font-size: .8125rem; }
@media (max-width: 600px) { .menu_flotante button { max-width: none; } }
.boton_primario, .boton_secundario, .boton_enlace, .boton_luna_discreto { white-space: normal; overflow-wrap: anywhere; }
/* Las acciones clínicas permanecen debajo del contexto, sin cubrirlo. */
#vista_historia .barra_historia { position: sticky; top: var(--alto-contexto, 80px); z-index: 15; background: var(--superficie); box-shadow: 0 2px 4px #20383e0a; }
@media (max-width: 600px) {
  #vista_historia .barra_historia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .75rem; }
  #boton_volver_expediente_historia, #vista_historia .identificacion_historia { grid-column: 1 / -1; }
  #vista_historia .barra_historia button { width: 100%; padding: .5rem; }
  #historia_nombre_paciente, #historia_expediente { display: none; }
}
@media print { #vista_historia .barra_historia { position: static; box-shadow: none; } }
/* Cabecera completa de Historia: acciones y secciones permanecen juntas. */
#vista_historia .cabecera_historia_fija { position: sticky; top: var(--alto-contexto, 80px); z-index: 15; background: var(--superficie); border: 1px solid var(--borde); border-radius: 8px; margin-top: 1rem; box-shadow: 0 2px 6px #20383e0c; }
#vista_historia .barra_historia { position: static; margin: 0; border: 0; border-radius: 0; padding: .75rem 1rem; box-shadow: none; }
#historia_nombre_paciente, #historia_expediente { display: none; }
#vista_historia .selector_presentacion { margin: 0; padding: .4rem 1rem .75rem; gap: .5rem; border-bottom: 1px solid var(--borde); }
#vista_historia .selector_presentacion button { padding: .4rem .8rem; min-height: 2rem; font-size: .8125rem; border-radius: 5px; }
#vista_historia .navegacion_historia { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .35rem; margin: 0; padding: .65rem 1rem; border: 0; border-radius: 0; background: var(--superficie); overflow: visible; }
#vista_historia .navegacion_historia button { min-width: 0; white-space: normal; padding: .4rem .2rem; border-radius: 4px; border-color: transparent; background: transparent; font-size: .8125rem; color: var(--azul_encabezado); }
#vista_historia .navegacion_historia button:hover { background: var(--superficie_suave); }
#vista_historia .navegacion_historia button[aria-current] { background: var(--superficie_suave); box-shadow: inset 0 -3px var(--amarillo_clinico); font-weight: 700; }
.navegacion_historia_compacta { display: none; }
@media (max-width: 900px) {
  #vista_historia .navegacion_historia { display: none; }
  .navegacion_historia_compacta { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .45rem .8rem; padding: .75rem 1rem; }
  .navegacion_historia_compacta label { grid-column: 1 / -1; font-weight: 700; font-size: .8125rem; color: var(--azul_encabezado); }
  .pasos_historia { display: flex; gap: .4rem; }
  .pasos_historia button { font-size: .8125rem; padding: .5rem; }
}
@media (max-width: 600px) {
  #boton_volver_expediente_historia { display: none; }
  #vista_historia .selector_presentacion span { display: none; }
  .navegacion_historia_compacta { grid-template-columns: 1fr; }
  .pasos_historia { display: none; }
}
@media print {
  #vista_historia .cabecera_historia_fija { position: static; margin: 0; border: 0; box-shadow: none; }
  .navegacion_historia_compacta { display: none !important; }
}
/* Geometría de captura: longitud de control proporcional al dato esperado. */
#vista_historia .contenido_historia { padding-top: 1.25rem; }
#vista_historia .tarjeta_historia { border: 1px solid var(--borde); padding: 1.25rem 1.5rem; }
#vista_historia .tarjeta_historia h2 { font-size: 1.375rem; line-height: 1.35; margin-top: 0; padding-bottom: .6rem; }
#vista_historia .rejilla_formulario { column-gap: 2rem; row-gap: 1rem; align-items: start; }
#vista_historia .campo_compacto select, #vista_historia .campo_compacto input { width: min(100%, 20ch); }
#vista_historia .campo_medio select, #vista_historia .campo_medio input { width: min(100%, 38ch); }
#vista_historia .campo_narrativo { grid-column: 1 / -1; }
#vista_historia .campo_narrativo label { max-width: 72ch; }
#vista_historia .campo_narrativo textarea { width: 100%; max-width: 72ch; resize: vertical; }
#vista_historia .grupo_pregunta { padding: 1rem 0; margin: .75rem 0; border: 0; border-bottom: 1px solid var(--borde); border-radius: 0; }
#vista_historia .opciones_estructuradas { gap: .5rem 1rem; }
#vista_historia .opciones_estructuradas label { color: var(--texto); font-size: 1rem; font-weight: 400; }
#vista_historia input, #vista_historia select, #vista_historia textarea { border-radius: 5px; padding: .5rem .65rem; background: var(--superficie); }
input::placeholder, textarea::placeholder { color: #526970; opacity: 1; }
@media (max-width: 600px) {
  #vista_historia .tarjeta_historia { padding: 1rem; }
  #vista_historia .rejilla_formulario { gap: 1rem; }
}
#vista_historia .contenido_historia input, #vista_historia .contenido_historia select, #vista_historia .contenido_historia textarea { scroll-margin-top: calc(var(--alto-contexto, 80px) + var(--alto-barra-historia, 180px) + 12px); }
@media (max-width: 600px) {
  .barra_contexto { display: grid; grid-template-columns: 1fr auto; gap: .25rem .5rem; min-height: 0; padding: .5rem 0; }
  .barra_contexto .rotulo_contexto { display: none; }
  .barra_contexto #contexto_modulo { font-size: .875rem; }
  .barra_contexto #paciente_contexto { grid-column: 1 / -1; grid-row: 2; gap: .25rem .5rem; font-size: .75rem; }
  #cerrar_panel_escritorio { grid-column: 2; grid-row: 1; width: 2rem; min-height: 2rem; padding: .25rem; font-size: 0; }
  #cerrar_panel_escritorio::after { content: "×"; font-size: 1.25rem; }
  #vista_historia .barra_historia { padding: .5rem .65rem; gap: .35rem; }
  #vista_historia .identificacion_historia { flex-direction: row; align-items: center; flex-wrap: wrap; gap: .35rem; font-size: .8125rem; }
  #vista_historia .identificacion_historia .insignia_clinica { font-size: .6875rem; }
  #vista_historia .barra_historia button { font-size: .75rem; padding: .35rem; min-height: 2rem; }
  #vista_historia .selector_presentacion { padding: .35rem .65rem; gap: .35rem; }
  #vista_historia .selector_presentacion button { min-height: 1.75rem; padding: .3rem .6rem; font-size: .75rem; }
  .navegacion_historia_compacta { padding: .35rem .65rem .5rem; gap: .25rem; }
  .navegacion_historia_compacta label { font-size: .6875rem; }
  #vista_historia .navegacion_historia_compacta select { font-size: .8125rem; padding: .35rem; }
}
/* De forma predeterminada la cabecera es una franja compacta. */
#vista_historia .cabecera_historia_fija { margin-top: .5rem; }
#vista_historia .barra_historia { display: flex; align-items: center; gap: .4rem; padding: .5rem .7rem; }
#boton_volver_expediente_historia, #vista_historia .identificacion_historia > strong { display: none; }
#vista_historia .identificacion_historia { margin-right: auto; flex-direction: row; align-items: center; flex-wrap: wrap; font-size: .8125rem; }
#vista_historia .barra_historia > button { font-size: .8125rem; padding: .4rem .65rem; min-height: 2rem; }
#vista_historia .selector_presentacion { padding: 0; border: 0; margin: 0; gap: .2rem; }
#vista_historia .selector_presentacion span { display: none; }
#vista_historia .selector_presentacion button { font-size: .75rem; padding: .4rem .5rem; min-height: 2rem; }
#vista_historia .navegacion_historia_compacta { display: flex; padding: 0; gap: 0; align-items: center; }
#vista_historia .navegacion_historia_compacta label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); }
#vista_historia .navegacion_historia_compacta select { width: 17ch; padding: .35rem .5rem; font-size: .8125rem; min-height: 2rem; }
#vista_historia .pasos_historia { display: none; }
#vista_historia .navegacion_historia { display: none; }
#vista_historia .historia_expandida .navegacion_historia { display: grid; }
@media (max-width: 1100px) {
  #vista_historia .identificacion_historia { margin-right: 0; }
}
@media (max-width: 600px) {
  #vista_historia .barra_historia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .4rem .5rem; gap: .3rem; }
  #vista_historia .identificacion_historia { grid-column: 1 / -1; font-size: .6875rem; }
  #vista_historia .barra_historia > button { font-size: .6875rem; padding: .3rem; min-height: 1.75rem; }
  #vista_historia .navegacion_historia_compacta { grid-column: 1; min-width: 0; }
  #vista_historia .navegacion_historia_compacta select { width: 100%; font-size: .75rem; }
  #vista_historia .selector_presentacion { display: none; grid-column: 1 / -1; }
  #vista_historia .historia_expandida .selector_presentacion { display: flex; }
  #vista_historia .historia_expandida .navegacion_historia { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .2rem; padding: .5rem; }
}

/* Entrada tras autenticación: fondo tranquilo; Inicio abre el escritorio. */
body.escritorio_en_reposo #espacio_trabajo {
  background: radial-gradient(ellipse at 75% 25%, color-mix(in srgb, var(--azul_boton) 10%, transparent), transparent 55%),
    linear-gradient(145deg, var(--superficie), var(--fondo));
  border-radius: 12px;
}

/* Vista de lectura y resguardo del módulo Documentos. */
#vista_documentos .previsualizacion_documento { background: #f5f8fc; border: 1px solid #dce5ee; border-radius: 16px; padding: 20px; box-shadow: 0 4px 20px #203e5710; }
#vista_documentos .previsualizacion_documento iframe { background: white; border-color: #e0e8f0; min-height: 820px; }
#vista_documentos .previsualizacion_documento .cabecera_subpanel { flex-wrap: wrap; gap: 12px; }
#vista_documentos input[readonly] { background: #f1f5f9; color: #53677c; }
#vista_documentos input[type=checkbox] { width: auto; margin-right: 8px; }

/* Diagnósticos TDAH y revisión del contenido compartido con IA. */
#vista_diagnostico_tdah { padding:24px; }
#vista_diagnostico_tdah > label, #ia_editor > label { display:block; margin:14px 0; font-weight:600; }
#vista_diagnostico_tdah textarea { display:block; width:100%; box-sizing:border-box; margin-top:7px; font:inherit; line-height:1.55; padding:12px; }
#vista_diagnostico_tdah button { background:#1d6172; color:white; border:1px solid #1d6172; border-radius:7px; padding:9px 13px; margin:6px 5px 6px 0; cursor:pointer; }
#vista_diagnostico_tdah button:disabled { opacity:.55; cursor:wait; }
#ia_informes button, #ia_versiones button { background:#f1f6f8; color:#194553; border-color:#bfd1d9; }
#ia_preparado, #ia_chat_preparado { background:#f4f7fa; padding:14px; border:1px solid #d6e1e7; border-radius:8px; font-size:12px; line-height:1.5; }
#ia_fuentes { background:#f7fafb; padding:12px; border-radius:8px; }
#panel_luna > label, #ia_chat_fuentes, #panel_luna > details { margin:8px 14px; }
#ia_chat_modelo { display:block; max-width:100%; width:100%; margin-top:6px; }
#ia_pdf_panel { margin-top:18px; }
.vista_modulo#vista_diagnostico_tdah { padding: 24px; max-width: 1180px; margin: auto; }
#vista_diagnostico_tdah > label, #ia_editor > label { display: block; margin: 16px 0; font-weight: 600; }
#vista_diagnostico_tdah textarea, #vista_diagnostico_tdah select { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid var(--borde); border-radius: 8px; font: inherit; line-height: 1.5; }
#ia_fuentes, #ia_revision_copia, #ia_editor { background: var(--blanco); border: 1px solid var(--borde); border-radius: 12px; padding: 18px; margin: 16px 0; }
#ia_textos_copia label { display: block; margin: 12px 0; }
#ia_aviso { padding: 14px; border-left: 4px solid var(--azul_boton); background: #eef4f8; }
.ia_etapa { background:white; border:1px solid var(--borde); border-radius:12px; padding:20px; margin:20px 0; }
.ia_etapa > h3 { margin-top:0; color:#194553; }
.ia_etapa > label { display:block; margin:14px 0; }
.ia_documento_fila { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #d6e1e7; padding:12px 0; }
.ia_documento_fila label { display:flex; gap:10px; align-items:flex-start; flex:1; }
.ia_documento_fila small { display:block; margin-top:5px; color:#536575; }
.ia_confirmacion { display:flex!important; gap:10px; align-items:flex-start; }
#ia_documento_dialogo { width:min(1100px,94vw); max-height:90vh; border:1px solid #b9cdd4; border-radius:14px; padding:0; color:#203c4c; }
#ia_documento_dialogo::backdrop { background:rgba(20,40,55,.5); }
.ia_documento_barra { position:sticky; top:0; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 20px; background:#eaf1f5; z-index:1; }
#ia_documento_controles { padding:8px 20px; }
#ia_documento_contenido { padding:0 20px 20px; overflow-wrap:anywhere; }
#ia_documento_contenido iframe { width:100%; height:65vh; border:1px solid #d6e1e7; }
.ia_lectura_grupo { border-left:3px solid #b9d1db; padding-left:14px; margin:16px 0; }
.ia_lectura_grupo dl { display:grid; grid-template-columns:minmax(130px,1fr) minmax(0,3fr); gap:8px 20px; }
.ia_lectura_grupo dt { font-weight:600; }
.ia_lectura_grupo dd { margin:0; white-space:pre-wrap; }
.ia_lectura_grupo summary { font-weight:600; cursor:pointer; padding:8px 0; }
.ia_intento { border-bottom:1px solid #d6e1e7; padding:12px 0; }
.ia_intento p { margin:6px 0; }
#ia_lectura_preparado { max-height:600px; overflow:auto; padding:4px; }
@media(max-width:600px) { .ia_documento_fila { align-items:flex-start; flex-direction:column; gap:4px; } .ia_etapa { padding:14px; } .ia_lectura_grupo dl { grid-template-columns:1fr; gap:5px; } .ia_lectura_grupo dd { margin-bottom:10px; } .ia_documento_barra { align-items:flex-start; } }
#vista_diagnostico_tdah button { margin: 5px; padding: 10px 15px; border-radius: 8px; cursor: pointer; }
/* Lectura clínica: estilos limitados al módulo Diagnóstico TDAH. */
#vista_diagnostico_tdah .ia_documento_texto {font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:1rem;margin:0;padding:1rem;max-height:none;background:#fff;color:#193747;border:0;text-align:left;}
#vista_diagnostico_tdah #ia_lectura_preparado {max-height:55vh;overflow:auto;border:1px solid #cedce1;border-radius:10px;}
#vista_diagnostico_tdah .ia_tabla_clinica {width:100%;border-collapse:collapse;table-layout:auto;}
#vista_diagnostico_tdah .ia_tabla_clinica th,#vista_diagnostico_tdah .ia_tabla_clinica td {padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #dce5e8;line-height:1.5;}
#vista_diagnostico_tdah .ia_tabla_clinica th {background:#eaf1f4;position:sticky;top:0;}
#vista_diagnostico_tdah #ia_documento_dialogo {width:min(1100px,94vw);max-width:94vw;}
#vista_diagnostico_tdah #ia_documento_contenido {padding:16px;overflow:auto;}
#vista_diagnostico_tdah #ia_generar:disabled {cursor:not-allowed;}
@media(max-width:600px){#vista_diagnostico_tdah .ia_tabla_clinica th,#vista_diagnostico_tdah .ia_tabla_clinica td {padding:8px;font-size:.9rem;}#vista_diagnostico_tdah .ia_documento_texto {padding:8px;}}
/* Diagnóstico TDAH: espacio clínico compacto y documento de lectura. */
#vista_diagnostico_tdah .ia_etapa {padding:16px 20px;margin:12px 0;}
#vista_diagnostico_tdah .ia_etapa>h3 {font-size:1.04rem;margin-bottom:10px;}
#vista_diagnostico_tdah .ia_documento_fila {padding:10px 0;border:0;border-bottom:1px solid #e3eaed;}
#vista_diagnostico_tdah .ia_documento_fila button {background:white;color:#245769;border-color:#c7d8df;white-space:nowrap;}
#vista_diagnostico_tdah .ia_detalle_tecnico {font-size:.88rem;color:#526774;margin:12px 0;}
#vista_diagnostico_tdah .ia_informe_tarjeta {position:relative;background:#fff;border:1px solid #d6e2e6;border-radius:10px;padding:16px 20px;margin:12px 0;}
#vista_diagnostico_tdah .ia_informe_tarjeta h4 {margin:0 0 5px;font-size:1rem;}
#vista_diagnostico_tdah .ia_informe_tarjeta>p {margin:5px 0;color:#566b76;}
#vista_diagnostico_tdah .ia_estado_documento {display:inline-block;margin:7px 8px 7px 0;padding:4px 9px;border-radius:20px;background:#edf3f5;color:#254b5b;font-size:.85rem;}
#vista_diagnostico_tdah .ia_informe_tarjeta details {margin-top:12px;color:#566b76;font-size:.9rem;}
#vista_diagnostico_tdah .ia_papel_informe {background:#fff;border:1px solid #d8e2e7;border-radius:8px;padding:36px 42px;margin:16px 0;line-height:1.75;color:#223b48;}
#vista_diagnostico_tdah .ia_papel_informe header {border-bottom:2px solid #2a5f72;padding-bottom:16px;margin-bottom:24px;}
#vista_diagnostico_tdah .ia_papel_informe h3 {margin:0;font-size:1.35rem;}
#vista_diagnostico_tdah .ia_papel_informe h4 {margin:22px 0 10px;color:#24576a;font-size:1.06rem;}
#vista_diagnostico_tdah .ia_papel_informe p {margin:10px 0;}
@media(max-width:600px){#vista_diagnostico_tdah .ia_papel_informe {padding:20px 16px;}#vista_diagnostico_tdah .ia_etapa {padding:14px;}#vista_diagnostico_tdah .ia_informe_tarjeta {padding:14px;}}
/* Diagnóstico TDAH: lectura primero, una acción principal por etapa. */
#vista_diagnostico_tdah{max-width:1180px;margin:auto;padding-bottom:90px;color:#193747}
#vista_diagnostico_tdah .ia_cabecera_simple{padding:16px 2px 8px}
#vista_diagnostico_tdah .ia_cabecera_simple h2{margin:3px 0 4px;font-size:clamp(1.6rem,3vw,2.2rem)}
#vista_diagnostico_tdah .ia_cabecera_simple p,#vista_diagnostico_tdah .ia_etapa_cabecera p{margin:0;color:#587080}
#vista_diagnostico_tdah .ia_sobretitulo{font-size:.72rem;font-weight:800;letter-spacing:.13em;color:#2c6879}
#vista_diagnostico_tdah .ia_etapa{padding:24px 28px;margin:14px 0;border-radius:16px;box-shadow:0 4px 18px #183a4d0b}
#vista_diagnostico_tdah .ia_etapa_cabecera{display:flex;align-items:center;gap:14px;margin-bottom:18px}
#vista_diagnostico_tdah .ia_etapa_cabecera h3{margin:0 0 3px;font-size:1.16rem}
#vista_diagnostico_tdah .ia_paso{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#e7f0f3;color:#24566a;font-weight:800}
#vista_diagnostico_tdah .ia_resumen_escalas{border:1px solid #d7e4e8;background:#f8fbfc;border-radius:12px;padding:16px;overflow-x:auto}
#vista_diagnostico_tdah .ia_resumen_escalas h4{margin:0 0 10px}
#vista_diagnostico_tdah .ia_resumen_escalas p{line-height:1.55}
#vista_diagnostico_tdah .ia_fuentes_desplegable{margin-top:16px;border-top:1px solid #e1e9ed;padding-top:15px}
#vista_diagnostico_tdah .ia_fuentes_desplegable>summary{cursor:pointer;font-weight:700;color:#1c5367}
#vista_diagnostico_tdah .ia_fila_acciones{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
#vista_diagnostico_tdah .ia_formulario_corto{display:grid;grid-template-columns:minmax(190px,.38fr) minmax(280px,1fr);gap:16px;align-items:start}
#vista_diagnostico_tdah .ia_formulario_corto label{display:grid;gap:7px;font-weight:650}
#vista_diagnostico_tdah .ia_formulario_corto textarea{min-height:98px}
#vista_diagnostico_tdah #ia_aviso{white-space:pre-wrap;background:#f1f6f7;border-left:3px solid #2d7283;padding:10px 14px;min-height:1.4em;border-radius:5px}
#vista_diagnostico_tdah #ia_revisado{margin-right:8px}
#vista_diagnostico_tdah .ia_confirmacion{display:flex;align-items:flex-start;line-height:1.5;margin:16px 0}
#vista_diagnostico_tdah .ia_resultados_informe .ia_informe_tarjeta{margin:10px 0}
#vista_diagnostico_tdah .ia_copias>summary{cursor:pointer;font-weight:700;margin:14px 0;color:#24576a}
#vista_diagnostico_tdah .ia_detalle_tecnico{margin-top:18px;color:#607785;font-size:.88rem}
@media(max-width:700px){#vista_diagnostico_tdah .ia_etapa{padding:18px 16px}#vista_diagnostico_tdah .ia_formulario_corto{grid-template-columns:1fr}#vista_diagnostico_tdah .ia_fila_acciones>*{width:100%}}
#vista_diagnostico_tdah .ia_criterios{border-top:1px solid #d9e5e9;margin-top:16px;padding-top:14px}
#vista_diagnostico_tdah .ia_criterios h4{margin:0 0 7px}
#vista_diagnostico_tdah .ia_criterios ul{margin:0;padding-left:21px;line-height:1.55}
#vista_diagnostico_tdah .ia_criterios li+li{margin-top:4px}
#vista_diagnostico_tdah .ia_resumen_escalas{background:#f5fafb;border-color:#bcd6de;padding:22px}
#vista_diagnostico_tdah .ia_resultado_estado{font-size:clamp(1.15rem,2.4vw,1.45rem);font-weight:800;color:#194c60;margin:0 0 10px}
#vista_diagnostico_tdah .ia_resultado_subtitulo{margin:0 0 16px;color:#3d6170}
#vista_diagnostico_tdah .ia_resumen_rapido{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}
#vista_diagnostico_tdah .ia_resumen_dato{background:#fff;border:1px solid #d3e2e6;border-radius:10px;padding:12px 14px;line-height:1.45}
#vista_diagnostico_tdah .ia_resumen_dato strong{display:block;color:#1b5267}
#vista_diagnostico_tdah .ia_resumen_dato span{display:block;color:#516c78}
#vista_diagnostico_tdah .ia_pendiente_clinica{background:#fff8e9;border-left:4px solid #cead56;padding:12px 14px;margin:10px 0 0;line-height:1.5}
#vista_diagnostico_tdah .ia_detalle_escalas{border-top:1px solid #d2e2e7;padding-top:12px;margin-top:16px}
#vista_diagnostico_tdah .ia_detalle_escalas summary,#vista_diagnostico_tdah .ia_preparacion_detalle summary{cursor:pointer;font-weight:750;color:#1e5669}
#vista_diagnostico_tdah .ia_preparacion_detalle{border-top:1px solid #e1eaed;padding-top:14px}
#vista_diagnostico_tdah .ia_preparacion_detalle>summary{margin-bottom:16px}
#vista_diagnostico_tdah .ia_estado_generacion:empty{display:none}
#vista_diagnostico_tdah .ia_estado_generacion:not(:empty){padding:12px 15px;background:#eaf4f6;border-left:4px solid #2b7185;border-radius:5px;line-height:1.5}
#vista_diagnostico_tdah .ia_estado_generacion[data-estado="error"]{background:#fff1ed;border-left-color:#c85b42}
@media(max-width:700px){#vista_diagnostico_tdah .ia_resumen_rapido{grid-template-columns:1fr}}
#vista_diagnostico_tdah .ia_indicaciones_label{display:grid;gap:7px;margin:14px 0;font-weight:650}
#vista_diagnostico_tdah .ia_indicaciones_label textarea{min-height:74px}
/* Captura de Historia clínica: composición exclusiva de pantalla. */
@media screen {
  #vista_historia .contenido_historia {
    width: 100%; max-width: 1080px; box-sizing: border-box;
    margin-inline: auto; padding: 24px 20px 56px; gap: 20px;
  }
  #vista_historia .contenido_historia .tarjeta_historia {
    padding: 24px; margin-bottom: 0; border: 1px solid #d5dfe8;
    border-radius: 12px; background: #fff;
  }
  #vista_historia .contenido_historia .tarjeta_historia > h2 {
    margin: -24px -24px 24px; padding: 16px 24px;
    border: 0; border-left: 5px solid #d6ae55; border-radius: 11px 11px 0 0;
    background: #243b53; color: #fff; font-size: 1.2rem;
    font-weight: 700; line-height: 1.45;
  }
  #vista_historia .contenido_historia .rejilla_formulario {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px; align-items: start; margin-bottom: 20px;
  }
  #vista_historia .contenido_historia .campo > label {
    color: #34485d; font-size: .9375rem; font-weight: 600;
    line-height: 1.45; max-width: none;
  }
  #vista_historia .contenido_historia .rejilla_formulario > .campo > label {
    min-height: 2.9em; display: flex; align-items: end;
  }
  #vista_historia .contenido_historia .campo input:not([type="radio"]):not([type="checkbox"]),
  #vista_historia .contenido_historia .campo select,
  #vista_historia .contenido_historia .campo textarea {
    width: 100%; max-width: none; min-width: 0; box-sizing: border-box;
    border: 1px solid #b8c7d5; border-radius: 6px; padding: 10px 12px;
    background: #fff; color: #182b3d; font-size: 1rem; line-height: 1.5;
  }
  #vista_historia .contenido_historia .campo input:not([type="radio"]):not([type="checkbox"]),
  #vista_historia .contenido_historia .campo select { min-height: 46px; }
  #vista_historia .contenido_historia .campo textarea { min-height: 104px; resize: vertical; }
  #vista_historia .contenido_historia #edad_inicio_problema,
  #vista_historia .contenido_historia #semanas_gestacion,
  #vista_historia .contenido_historia #peso_nacer,
  #vista_historia .contenido_historia #hora_dormir,
  #vista_historia .contenido_historia #hora_despertar { max-width: none !important; }
  #vista_historia .contenido_historia .campo + .rejilla_formulario { margin-top: 20px; }
  #vista_historia .contenido_historia .campo input[readonly] {
    background: #eef2f6; color: #526579; border-color: #d3dde6;
  }
  #vista_historia .contenido_historia .campo input:focus-visible,
  #vista_historia .contenido_historia .campo select:focus-visible,
  #vista_historia .contenido_historia .campo textarea:focus-visible {
    outline: 2px solid #247386; outline-offset: 2px;
  }
  #vista_historia .contenido_historia .campo.amplio { margin-top: 20px; gap: 8px; }
  #vista_historia .contenido_historia .grupo_pregunta {
    margin: 20px 0 12px; padding: 14px 16px; border: 1px solid #d8e2eb;
    border-radius: 8px; background: #f5f8fb;
  }
  #vista_historia .contenido_historia .grupo_pregunta legend {
    color: #34485d; font-size: .9375rem; font-weight: 600; padding-inline: 6px;
  }
  #vista_historia .contenido_historia .opciones_estructuradas { gap: 8px 20px; }
  #vista_historia .contenido_historia .opciones_estructuradas label { color: #182b3d; }
  #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario > .campo:nth-child(-n+4) { grid-column: span 2; }
  #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario > .campo:nth-child(n+5) > label { min-height: 4.35em; }
  @media (max-width: 760px) {
    #vista_historia .contenido_historia { padding: 20px 12px 40px; }
    #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario > .campo:nth-child(-n+4) { grid-column: auto; }
  }
  @media (max-width: 600px) {
    #vista_historia .contenido_historia .tarjeta_historia { padding: 18px; }
    #vista_historia .contenido_historia .tarjeta_historia > h2 { margin: -18px -18px 20px; padding: 14px 18px; font-size: 1.1rem; }
    #vista_historia .contenido_historia .rejilla_formulario,
    #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    #vista_historia .contenido_historia .rejilla_formulario > .campo > label,
    #vista_historia .contenido_historia #seccion_historia_0 .rejilla_formulario > .campo:nth-child(n+5) > label { min-height: 0; }
  }
}

/* Apariencia del resumen y diagnóstico; no afecta documentos impresos. */
@media screen {
  #area_clinica .rejilla_modulos,
  #area_clinica .rejilla_evaluaciones {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 225px), 1fr));
    gap: 16px;
  }
  #area_clinica .tarjeta_modulo {
    --acento_tarjeta: #25618c;
    --fondo_icono: #e7f0fa;
    display: grid; grid-template-columns: 48px minmax(0, 1fr); position: relative;
    align-items: start; gap: 14px; padding: 22px 18px;
    min-height: 134px; background: var(--superficie);
    border: 1px solid var(--borde); border-top: 4px solid var(--acento_tarjeta);
    border-radius: 12px; overflow-wrap: normal; word-break: normal;
    transition: border-color .15s, box-shadow .15s;
  }
  #area_clinica [data-seccion="diagnosticos"] { --acento_tarjeta: #7050a0; --fondo_icono: #f0eafa; }
  #area_clinica [data-seccion="documentos"] { --acento_tarjeta: #247575; --fondo_icono: #e2f2f0; }
  #area_clinica [data-seccion="agenda"] { --acento_tarjeta: #8d601a; --fondo_icono: #fbf0dc; }
  #area_clinica [data-seccion="notas"] { --acento_tarjeta: #496581; --fondo_icono: #e9eff5; }
  #area_clinica .tarjeta_modulo .icono_tarjeta {
    display: grid; place-items: center; width: 48px; height: 48px;
    border-radius: 12px; background: var(--fondo_icono); color: var(--acento_tarjeta);
  }
  #area_clinica .texto_tarjeta strong { font-size: 1.08rem; line-height: 1.4; color: var(--azul_encabezado); }
  #area_clinica .texto_tarjeta small { font-size: .9rem; color: #4c5e68; line-height: 1.55; }
  #area_clinica .texto_tarjeta { overflow-wrap: normal; word-break: normal; }
  #area_clinica .tarjeta_modulo .flecha { position: absolute; right: 16px; bottom: 12px; color: var(--acento_tarjeta); }
  #area_clinica .tarjeta_modulo:hover,
  #area_clinica .tarjeta_modulo:focus-visible {
    filter: none; border-color: var(--acento_tarjeta);
    box-shadow: 0 4px 14px #19374714;
  }
  #area_clinica .tarjeta_modulo:focus-visible { outline: 2px solid var(--acento_tarjeta); outline-offset: 3px; }
  #area_clinica .ficha_teclas { display: flex; flex-wrap: wrap; gap: 14px 22px; }
  #area_clinica .tecla { min-width: max-content; }
  #area_clinica .tecla strong { white-space: nowrap; overflow-wrap: normal; }
  #area_clinica .bloque_identidad, #area_clinica .info_paciente { min-width: 0; }
  #area_clinica .tarjeta_evaluacion { background: var(--superficie); border: 1px solid var(--borde); }
  #area_clinica .tarjeta_evaluacion header { align-items: center; gap: 14px; min-height: 108px; background: var(--superficie_suave); }
  #area_clinica .tarjeta_evaluacion header > div { min-width: 0; }
  #area_clinica .tarjeta_evaluacion header strong { font-size: 1.05rem; color: var(--azul_encabezado); }
  #area_clinica .tarjeta_evaluacion header small { font-size: .88rem; line-height: 1.5; }
  #area_clinica .icono_evaluacion { display: grid; place-items: center; flex: 0 0 52px; width: 52px; height: 52px; border-radius: 14px; background: var(--superficie); color: var(--azul_boton); border: 1px solid var(--borde); }
  #area_clinica .tarjeta_evaluacion.destacada { border: 2px solid var(--azul_boton); }
  #area_clinica .tarjeta_evaluacion.inactiva header { opacity: 1; }
  #area_clinica .etiqueta_estado { font-size: .8rem; padding: 5px 9px; }
  #area_clinica .etiqueta_estado.disponible { background: #e2f1e7; color: #23543a; border-color: #a6cbb4; font-weight: 700; }

  #vista_diagnostico_tdah { color: var(--texto); }
  #vista_diagnostico_tdah .ia_etapa { background: var(--superficie); padding: 24px; margin: 24px 0; border: 1px solid var(--borde); border-radius: 14px; overflow: hidden; }
  #vista_diagnostico_tdah .ia_etapa_cabecera { margin: -24px -24px 24px; padding: 20px 24px; background: var(--azul_encabezado); color: white; }
  #vista_diagnostico_tdah .ia_etapa_cabecera h3 { color: white; font-size: 1.2rem; margin: 0 0 5px; }
  #vista_diagnostico_tdah .ia_etapa_cabecera p { color: #edf3f5; font-size: .92rem; }
  #vista_diagnostico_tdah .ia_paso { background: #ffffff24; color: white; border: 1px solid #ffffff55; width: 40px; height: 40px; flex-basis: 40px; }
  #vista_diagnostico_tdah .ia_resumen_escalas { border: 0; border-left: 4px solid var(--azul_boton); border-radius: 8px; background: var(--superficie_suave); padding: 20px; }
  #vista_diagnostico_tdah .ia_resumen_dato { border: 0; background: var(--superficie); }
  #vista_diagnostico_tdah .ia_fuentes_desplegable > summary,
  #vista_diagnostico_tdah .ia_preparacion_detalle > summary { font-size: 1rem; color: var(--azul_encabezado); padding: 10px 0; }
  #vista_diagnostico_tdah .ia_documento_fila { display: flex; gap: 16px; align-items: center; padding: 16px 12px; background: var(--superficie); }
  #vista_diagnostico_tdah .ia_documento_fila:nth-child(even) { background: var(--superficie_suave); }
  #vista_diagnostico_tdah .ia_documento_fila > label { flex: 1; min-width: 0; font-size: 1rem; color: var(--azul_encabezado); }
  #vista_diagnostico_tdah .ia_documento_fila small { display: block; margin-top: 5px; font-size: .84rem; color: #536773; }
  #vista_diagnostico_tdah .ia_documento_fila button { flex-shrink: 0; padding: 10px 14px; color: var(--azul_boton); border-color: var(--azul_boton); }
  #vista_diagnostico_tdah .ia_formulario_corto { grid-template-columns: 1fr; gap: 22px; margin: 16px 0 22px; }
  #vista_diagnostico_tdah #ia_modelo { width: min(100%, 360px); }
  #vista_diagnostico_tdah .ia_formulario_corto label,
  #vista_diagnostico_tdah .ia_indicaciones_label { display: grid; gap: 10px; font-size: 1rem; font-weight: 700; color: var(--azul_encabezado); }
  #vista_diagnostico_tdah #ia_criterio { min-height: 150px; border-left: 4px solid var(--azul_boton); background: var(--superficie_suave); }
  #vista_diagnostico_tdah #ia_instrucciones { min-height: 108px; }
  #vista_diagnostico_tdah textarea, #vista_diagnostico_tdah select { font-size: 1rem; line-height: 1.6; padding: 12px; color: var(--texto); background: var(--superficie); }
  #vista_diagnostico_tdah .ia_fila_acciones { margin: 24px 0; gap: 12px; }
  #vista_diagnostico_tdah #ia_preparar { background: var(--superficie); color: var(--azul_boton); border: 1px solid var(--azul_boton); }
  #vista_diagnostico_tdah .ia_confirmacion { padding: 16px; border: 1px solid var(--borde); background: var(--superficie_suave); border-radius: 8px; }
  #vista_diagnostico_tdah #ia_generar { font-size: 1.05rem; font-weight: 700; padding: 14px 24px; }
  #vista_diagnostico_tdah .ia_informe_tarjeta { background: var(--superficie); border-left: 4px solid var(--azul_boton); padding: 22px; }
  #vista_diagnostico_tdah .ia_informe_tarjeta h4 { font-size: 1.12rem; color: var(--azul_encabezado); }
  #vista_diagnostico_tdah .ia_informe_tarjeta .boton_secundario { border-color: var(--azul_boton); font-weight: 700; padding: 10px 16px; }
  #vista_diagnostico_tdah #ia_aviso:empty { display: none; }
  @media (max-width: 600px) {
    #vista_diagnostico_tdah .ia_etapa { padding: 18px; }
    #vista_diagnostico_tdah .ia_etapa_cabecera { margin: -18px -18px 18px; padding: 18px; }
    #vista_diagnostico_tdah .ia_documento_fila { flex-wrap: wrap; }
    #vista_diagnostico_tdah .ia_documento_fila > label { flex-basis: 100%; }
    #vista_diagnostico_tdah .ia_fila_acciones > * { width: 100%; }
  }
}

/* Consulta independiente y consumo agregado de IA. */
.panel_luna .ia_gastos{padding:12px 14px;border-top:1px solid var(--borde);background:var(--superficie_suave);font-size:.85rem;max-height:260px;overflow:auto;flex-shrink:0}
.panel_luna .ia_gastos p{margin:8px 0;overflow-wrap:anywhere}
.panel_luna .ia_gastos summary{cursor:pointer;font-weight:700;padding:8px 0}
.panel_luna .ia_gastos small{display:block;line-height:1.4;color:var(--texto)}
.panel_luna #ia_gastos_actualizar{margin:8px 0;padding:6px 10px;background:var(--superficie);color:var(--azul_encabezado);border:1px solid var(--borde);border-radius:6px}
.panel_luna .conversacion_luna{min-height:100px}

/* Barra compacta: detalles disponibles solo al desplegarlos. */
.panel_luna .botones_luna{display:flex;gap:6px;flex-shrink:0}
.panel_luna .ia_gastos{padding:10px 14px;max-height:220px}
.panel_luna #ia_gasto_total{margin:0 0 4px;font-weight:700}
.panel_luna .costos_luna{overflow-wrap:anywhere;margin:0;padding:8px 14px;font-size:.8rem}
.panel_luna .conversacion_luna{min-height:150px}
.panel_luna #contexto_luna[hidden]{display:none}

/* Diagnóstico: una barra de trabajo, sin duplicar acciones. */
#vista_diagnostico_tdah .ia_barra_unificada{margin:0 0 20px;padding:18px;border:1px solid #cbd9dc;border-radius:12px;background:#fff;box-shadow:0 3px 12px #183b4710}
#vista_diagnostico_tdah .ia_datos_superiores{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:16px}
#vista_diagnostico_tdah .ia_datos_superiores label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}
#vista_diagnostico_tdah .ia_datos_superiores input,#vista_diagnostico_tdah .ia_datos_superiores select{width:100%;min-width:0;box-sizing:border-box}
#vista_diagnostico_tdah .ia_navegacion_unificada{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid #e0e8ea}
#vista_diagnostico_tdah .ia_navegacion_unificada button{background:#eef3f4;color:#244653;border:1px solid #ccdadd;box-shadow:none}
#vista_diagnostico_tdah .ia_navegacion_unificada button[aria-pressed="true"]{background:#173f4c;color:#fff;border-color:#173f4c}
#vista_diagnostico_tdah .ia_acciones_unificadas>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
#vista_diagnostico_tdah .ia_acciones_unificadas button{font-size:.86rem;padding:9px 12px}
#vista_diagnostico_tdah[data-seccion="evidencia"] .ia_flujo_informe,
#vista_diagnostico_tdah[data-seccion="evidencia"] .ia_resultados_informe,
#vista_diagnostico_tdah[data-seccion="evidencia"] #ia_editor,
#vista_diagnostico_tdah[data-seccion="evidencia"] #ia_pdf_panel,
#vista_diagnostico_tdah[data-seccion="redactar"] .ia_revision_principal,
#vista_diagnostico_tdah[data-seccion="redactar"] .ia_resultados_informe,
#vista_diagnostico_tdah[data-seccion="redactar"] #ia_editor,
#vista_diagnostico_tdah[data-seccion="redactar"] #ia_pdf_panel,
#vista_diagnostico_tdah[data-seccion="reporte"] .ia_revision_principal,
#vista_diagnostico_tdah[data-seccion="reporte"] .ia_flujo_informe,
#vista_diagnostico_tdah:not([data-seccion="redactar"]) .ia_acciones_redactar,
#vista_diagnostico_tdah:not([data-seccion="reporte"]) .ia_acciones_reporte,
#vista_diagnostico_tdah:has(#ia_editor[hidden]) .ia_acciones_reporte{display:none}
#vista_diagnostico_tdah .ia_formulario_corto:empty,#vista_diagnostico_tdah .ia_fila_acciones:empty{display:none}
#vista_diagnostico_tdah #ia_criterio{min-height:125px}
@media(max-width:760px){#vista_diagnostico_tdah .ia_datos_superiores{grid-template-columns:1fr}#vista_diagnostico_tdah .ia_navegacion_unificada button{flex:1;min-width:130px}}
/* Visores independientes: la lista permanece compacta. */
#vista_diagnostico_tdah .ia_barra_unificada{padding:24px}
#vista_diagnostico_tdah .ia_datos_superiores{gap:24px}
#vista_diagnostico_tdah .ia_navegacion_unificada{gap:16px;margin-top:24px;padding-top:22px}
#vista_diagnostico_tdah .ia_acciones_unificadas>div{gap:14px;padding-top:10px}
#vista_diagnostico_tdah .ia_visor_reporte{width:min(1100px,94vw);max-width:94vw;max-height:90vh;padding:0;border:1px solid #bdcfd4;border-radius:14px;background:#fff;color:#243f48;box-shadow:0 16px 60px #102b4540;overflow:auto}
#vista_diagnostico_tdah .ia_visor_reporte::backdrop{background:#102b4560}
#vista_diagnostico_tdah .ia_visor_cabecera{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;background:#173f4c;color:#fff}
#vista_diagnostico_tdah .ia_visor_cabecera button{background:#fff;color:#173f4c;border:1px solid #cbd9dc}
#vista_diagnostico_tdah .ia_visor_reporte .ia_acciones_reporte{display:flex;flex-wrap:wrap;gap:12px;padding:18px 24px;border-bottom:1px solid #dde6e8;background:#f5f8f9}
#vista_diagnostico_tdah .ia_visor_reporte .ia_acciones_reporte button{font-size:.86rem;padding:10px 14px}
#vista_diagnostico_tdah .ia_visor_reporte #ia_editor,#vista_diagnostico_tdah .ia_visor_reporte #ia_pdf_panel{margin:0;padding:20px 24px}
#vista_diagnostico_tdah .ia_visor_reporte #ia_pdf_marco{height:68vh!important;width:100%;box-sizing:border-box;display:block;margin-top:16px}
#vista_diagnostico_tdah .ia_visor_reporte .ia_papel_informe{max-width:100%;box-sizing:border-box}
/* Espacio de diagnóstico: archivo a la vista y un formulario principal. */
#vista_diagnostico_tdah .ia_espacio_ordenado{display:grid;grid-template-columns:320px minmax(0,1fr);gap:28px;align-items:start}
#vista_diagnostico_tdah .ia_trabajo_ordenado{min-width:0;display:grid;gap:22px}
#vista_diagnostico_tdah .ia_resultados_informe{margin:0;min-width:0}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera{padding:20px;background:#edf3f4;color:#173f4c}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera h3{color:#173f4c}
#vista_diagnostico_tdah .ia_resultados_informe .ia_paso{display:none}
#vista_diagnostico_tdah #ia_informes{max-height:62vh;overflow-y:auto;padding:4px 0 12px}
#vista_diagnostico_tdah .ia_informe_tarjeta{margin:0 0 14px;padding:18px;background:#fff;border:1px solid #d7e1e4;border-left:3px solid #819ca5;border-radius:9px}
#vista_diagnostico_tdah .ia_informe_tarjeta h4{font-size:1rem;line-height:1.45}
#vista_diagnostico_tdah .ia_informe_tarjeta>button{display:block;margin:14px 0 0;width:100%;padding:11px}
#vista_diagnostico_tdah .ia_informe_tarjeta>details{margin-top:14px;font-size:.85rem}
#vista_diagnostico_tdah .ia_copias{border-top:1px solid #d7e1e4;margin-top:18px;padding-top:14px}
#vista_diagnostico_tdah .ia_copias>summary{margin-bottom:16px}
#vista_diagnostico_tdah .ia_evidencia_ordenada{border:1px solid #d0dde1;border-radius:12px;background:#fff;overflow:hidden}
#vista_diagnostico_tdah .ia_evidencia_ordenada>summary{padding:20px 24px;font-weight:700;color:#244653;cursor:pointer}
#vista_diagnostico_tdah .ia_evidencia_ordenada .ia_revision_principal{border:0;box-shadow:none;margin:0;padding-top:0}
#vista_diagnostico_tdah .ia_evidencia_ordenada .ia_etapa_cabecera{display:none}
#vista_diagnostico_tdah .ia_flujo_informe{margin:0}
#vista_diagnostico_tdah .ia_flujo_informe .ia_etapa_cabecera{padding:22px 24px}
#vista_diagnostico_tdah .ia_preparacion_detalle{padding-top:8px;border-top:0}
#vista_diagnostico_tdah .ia_formulario_corto{display:block}
#vista_diagnostico_tdah .ia_formulario_corto>label{display:block;margin-bottom:24px}
#vista_diagnostico_tdah .ia_indicaciones_label{display:block;margin:22px 0}
#vista_diagnostico_tdah #ia_criterio{min-height:145px;margin-top:10px}
#vista_diagnostico_tdah #ia_instrucciones{margin-top:10px}
#vista_diagnostico_tdah .ia_preparar_ordenado{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid #e1e8eb;padding-top:24px;margin-top:24px}
#vista_diagnostico_tdah .ia_confirmacion{display:flex;align-items:flex-start;gap:10px;margin:24px 0;line-height:1.6}
#vista_diagnostico_tdah #ia_generar{display:block;width:100%;padding:14px 22px;font-size:1rem}
#vista_diagnostico_tdah .ia_aviso_ordenado{margin-top:18px;line-height:1.6}
#vista_diagnostico_tdah .ia_visor_reporte .ia_acciones_reporte{display:grid;grid-template-columns:1fr;gap:18px;padding:22px 24px}
#vista_diagnostico_tdah .ia_grupo_documental{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#vista_diagnostico_tdah .ia_grupo_documental>span{flex:0 0 100%;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#607781}
@media(max-width:1000px){#vista_diagnostico_tdah .ia_espacio_ordenado{grid-template-columns:1fr}#vista_diagnostico_tdah #ia_informes{max-height:350px}}
@media(max-width:600px){#vista_diagnostico_tdah .ia_preparar_ordenado{grid-template-columns:1fr}}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera{min-height:0;height:auto;align-items:flex-start}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera p{color:#526c76;line-height:1.5;margin-top:8px}
#vista_diagnostico_tdah .ia_accesos_pdf{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px;padding-top:14px;border-top:1px solid #e0e8eb}
#vista_diagnostico_tdah .ia_accesos_pdf button{width:100%;padding:11px 12px;text-align:center;background:#edf3f4;color:#173f4c;border:1px solid #c5d6dc}
/* Lenguaje visual compartido: Inicio, Resumen y Diagnósticos. Respeta las paletas configurables. */
#vista_inicio h1,#area_clinica h1,#area_clinica h2,#vista_modulo h2,#vista_diagnostico_tdah h2{color:var(--azul_encabezado)}
#vista_inicio .contenedor_inicio{border:1px solid var(--borde);border-radius:12px;box-shadow:none;padding:34px}
#vista_inicio .rejilla_acciones_inicio{gap:20px;margin-top:28px}
#vista_inicio .tarjeta_accion{border:1px solid var(--borde);border-radius:10px;padding:24px;min-height:160px;text-align:left;background:var(--superficie);border-top:3px solid var(--azul_boton);gap:18px}
#vista_inicio .tarjeta_accion.destacada{background:var(--superficie_suave);border-width:1px;border-top-width:3px;border-color:var(--azul_boton)}
#vista_inicio .icono_tarjeta{background:var(--superficie_suave);color:var(--azul_boton);border-radius:8px;width:42px;height:42px;display:grid;place-items:center}
#vista_inicio .tarjeta_accion strong{font-size:1.06rem;color:var(--azul_encabezado);line-height:1.4}
#vista_inicio .tarjeta_accion small{color:var(--texto_suave);line-height:1.6;margin-top:8px}
#area_clinica .rejilla_modulos,#area_clinica .rejilla_evaluaciones{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}
#area_clinica .tarjeta_modulo{border-radius:10px;min-height:135px;padding:20px;--acento_tarjeta:var(--azul_boton);--fondo_icono:var(--superficie_suave)}
#area_clinica .tarjeta_modulo strong{color:var(--azul_encabezado);line-height:1.45;word-break:normal;overflow-wrap:normal}
#area_clinica .tarjeta_modulo small{line-height:1.6;color:var(--texto_suave)}
#area_clinica .tarjeta_evaluacion{border-radius:10px;overflow:hidden}
#area_clinica .tarjeta_evaluacion header{background:var(--superficie_suave);gap:14px;padding:18px}
#area_clinica .tarjeta_evaluacion .icono_evaluacion{color:var(--azul_boton)}
#vista_modulo:has(.acceso_diagnostico) .contenido_modulo{border:1px solid var(--borde);border-radius:12px;padding:30px;box-shadow:none}
#vista_modulo:has(.acceso_diagnostico) .rejilla_espacios{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-top:24px}
#vista_modulo .acceso_diagnostico{display:grid;grid-template-columns:46px 1fr;gap:12px 16px;align-content:start;text-align:left;min-height:138px;border:1px solid var(--borde);border-radius:10px;background:var(--superficie);padding:24px;color:var(--texto)}
#vista_modulo .acceso_diagnostico .icono_espacio{grid-row:1 / 3;display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:var(--superficie_suave);color:var(--azul_boton)}
#vista_modulo .acceso_diagnostico strong{font-size:1.06rem;align-self:center;color:var(--azul_encabezado)}
#vista_modulo .acceso_diagnostico .etiqueta_estado{grid-column:2;justify-self:start;margin:0;font-size:.78rem;background:var(--superficie_suave);color:var(--texto_suave);white-space:normal}
#vista_modulo .acceso_diagnostico[data-disponible="true"]{border-top:3px solid var(--azul_boton)}
#vista_modulo .acceso_diagnostico[data-disponible="true"] .etiqueta_estado{color:var(--azul_boton);font-weight:700}
#vista_modulo .acceso_diagnostico:hover{border-color:var(--azul_boton);background:var(--superficie_suave)}
#vista_diagnostico_tdah .ia_barra_unificada,#vista_diagnostico_tdah .ia_evidencia_ordenada{background:var(--superficie);border-color:var(--borde);box-shadow:none}
#vista_diagnostico_tdah .ia_etapa_cabecera,#vista_diagnostico_tdah .ia_visor_cabecera{background:var(--azul_encabezado)}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera{background:var(--superficie_suave);color:var(--texto)}
#vista_diagnostico_tdah .ia_resultados_informe .ia_etapa_cabecera h3{color:var(--azul_encabezado)}
#vista_diagnostico_tdah .ia_evidencia_ordenada>summary{color:var(--azul_encabezado)}
#vista_diagnostico_tdah .ia_accesos_pdf button{background:var(--superficie_suave);color:var(--azul_boton);border-color:var(--borde)}
#vista_diagnostico_tdah .ia_visor_reporte .ia_acciones_reporte{background:var(--superficie_suave);border-color:var(--borde)}
@media(max-width:650px){#vista_inicio .contenedor_inicio{padding:22px}#vista_inicio .rejilla_acciones_inicio,#area_clinica .rejilla_modulos,#area_clinica .rejilla_evaluaciones,#vista_modulo:has(.acceso_diagnostico) .rejilla_espacios{grid-template-columns:1fr}}
#vista_modulo:has(.acceso_diagnostico) .rejilla_espacios{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:950px){#vista_modulo:has(.acceso_diagnostico) .rejilla_espacios{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#vista_modulo:has(.acceso_diagnostico) .rejilla_espacios{grid-template-columns:1fr}}
#ia_avisos_privacidad { margin: 20px 0; padding: 18px; border: 1px solid var(--borde); border-radius: 8px; background: var(--superficie_suave); }
#ia_avisos_privacidad blockquote { margin: 10px 0 18px; padding: 12px; border-left: 3px solid currentColor; white-space: pre-wrap; overflow-wrap: anywhere; }
#ia_avisos_privacidad label { display: block; line-height: 1.6; }
