* {
  box-sizing: border-box;
}

:root {
  color-scheme: light;
  --fondo: #edf1f5;
  --fondo-suave: #f3f6f9;
  --superficie: #f8fafc;
  --superficie-2: #f1f5f9;
  --texto: #1f2937;
  --texto-suave: #64748b;
  --borde: #d9e0e8;
  --borde-fuerte: #b9c4d0;
  --acento: #526b84;
  --acento-fuerte: #3d536a;
  --acento-suave: #e8edf2;
  --interaccion-hover: #2563eb;
  --interaccion-activa: #1e40af;
  --acento-2: #80674a;
  --estado-positivo: #3f6b57;
  --estado-advertencia: #8a642e;
  --estado-error: #934a4a;
  --exito-fondo: #edf3ef;
  --exito-texto: var(--estado-positivo);
  --error-fondo: #f5eeee;
  --error-texto: var(--estado-error);
  --sombra: 0 14px 36px rgba(30, 41, 59, 0.07);
  --cabecera-fondo: rgba(248, 250, 252, 0.95);
  --hero-fondo: #293e53;
  --hero-texto: #f1f5f9;
  --overlay: rgba(10, 20, 36, 0.52);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --fondo: #11161d;
  --fondo-suave: #151b23;
  --superficie: #19212b;
  --superficie-2: #202a36;
  --texto: #e5eaf0;
  --texto-suave: #9aa7b5;
  --borde: #303c49;
  --borde-fuerte: #465565;
  --acento: #8ca2b8;
  --acento-fuerte: #afbdca;
  --acento-suave: #293746;
  --acento-2: #b9a17f;
  --estado-positivo: #78a38d;
  --estado-advertencia: #c1a066;
  --estado-error: #c98282;
  --exito-fondo: #24342c;
  --exito-texto: var(--estado-positivo);
  --error-fondo: #38292b;
  --error-texto: var(--estado-error);
  --sombra: 0 18px 46px rgba(0, 0, 0, 0.24);
  --cabecera-fondo: rgba(20, 27, 35, 0.95);
  --hero-fondo: #1d2b3a;
  --hero-texto: #e8edf2;
  --overlay: rgba(2, 7, 15, 0.72);
}

html {
  background: var(--fondo);
}

body {
  margin: 0;
  font-family: Arial, sans-serif;
  background: var(--fondo);
  color: var(--texto);
}

.card {
  --bs-card-bg: var(--superficie);
  --bs-card-color: var(--texto);
  --bs-card-border-color: var(--borde);
}

.bg-white {
  background-color: var(--superficie) !important;
}

body.modal-abierto {
  overflow: hidden;
}

[hidden] {
  display: none !important;
}

a {
  color: inherit;
}

.texto-oculto {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.barra-superior {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  gap: 14px;
  width: 100%;
  max-width: 100%;
  padding: 18px 24px;
  background: var(--cabecera-fondo);
  border-bottom: 1px solid var(--borde);
  backdrop-filter: blur(12px);
}

.cabecera-principal {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  min-width: 0;
  flex-wrap: wrap;
}

.marca {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.marca-sello {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--texto);
  color: var(--hero-texto);
  font-size: 20px;
  font-weight: 700;
}

.marca-sello--logo {
  padding: 6px;
  background: #101d31;
}

.marca-sello img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.marca-textos {
  display: grid;
  gap: 2px;
}

.marca-textos strong {
  font-size: 18px;
  line-height: 1.1;
}

.marca-textos small {
  color: var(--texto-suave);
  font-size: 12px;
}

.marca-textos--contraida {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.boton-menu {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px;
  height: 42px;
  padding: 10px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie);
  cursor: pointer;
  transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}

.boton-menu:hover,
.boton-menu[aria-expanded="true"] {
  border-color: var(--borde-fuerte);
  background: var(--acento-suave);
  box-shadow: 0 10px 24px rgba(82, 107, 132, 0.12);
}

.boton-menu__linea {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: var(--texto);
  transition: transform 140ms ease, opacity 140ms ease;
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(2) {
  opacity: 0;
}

.boton-menu[aria-expanded="true"] .boton-menu__linea:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

.acciones-cabecera {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
  margin-left: auto;
}

.acciones-cabecera > .buzon-personal-cabecera,
.acciones-cabecera > .avisos-plataforma-cabecera,
.acciones-cabecera > .menu-usuario-cabecera {
  margin-left: 0;
}

.menu-usuario-cabecera {
  position: relative;
  margin-left: auto;
  flex: 0 0 auto;
}

.avisos-plataforma-cabecera {
  position: relative;
  margin-left: auto;
}

.buzon-personal-cabecera { position: relative; margin-left: auto; }
.buzon-personal-cabecera + .avisos-plataforma-cabecera,
.buzon-personal-cabecera + .menu-usuario-cabecera { margin-left: 0; }
.buzon-personal-cabecera__boton {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
  color: var(--acento);
  font-size: 19px;
}
.buzon-personal-cabecera__contador {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #2563eb;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}
.buzon-personal-overlay {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 61;
  width: min(460px, calc(100vw - 24px));
  max-height: min(680px, calc(100vh - 100px));
  overflow: auto;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: var(--superficie);
  box-shadow: 0 24px 54px rgba(15, 23, 42, .24);
}
.buzon-personal-overlay > header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border-bottom: 1px solid var(--borde);
  background: var(--superficie);
}
.buzon-personal-overlay > header div { display: grid; gap: 3px; }
.buzon-personal-overlay > header small { color: var(--texto-suave); }
.buzon-personal-overlay__lista { display: grid; gap: 9px; padding: 12px; }
.buzon-personal-overlay__vacio { margin: 0; padding: 20px; color: var(--texto-suave); text-align: center; }
.buzon-personal-overlay__mas { margin: 0 12px 12px; width: calc(100% - 24px); }
.buzon-personal-notificacion {
  display: grid;
  gap: 7px;
  padding: 13px;
  border: 1px solid var(--borde);
  border-left: 3px solid var(--borde-fuerte);
  border-radius: 10px;
  background: var(--fondo);
}
.buzon-personal-notificacion--no-leida { border-left-color: #2563eb; background: var(--acento-suave); }
.buzon-personal-notificacion__cabecera { display: flex; justify-content: space-between; gap: 12px; }
.buzon-personal-notificacion__cabecera span,
.buzon-personal-notificacion small { color: var(--texto-suave); font-size: 12px; }
.buzon-personal-notificacion p { margin: 0; line-height: 1.4; }
.buzon-personal-notificacion__acciones { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

.avisos-plataforma-cabecera + .menu-usuario-cabecera { margin-left: 0; }

.avisos-plataforma-cabecera__boton {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
  color: var(--texto-suave);
  font-size: 19px;
}

.avisos-plataforma-cabecera__boton[data-gravedad="informativa"] { color: #2779bd; }
.avisos-plataforma-cabecera__boton[data-gravedad="advertencia"] { color: #b7791f; border-color: #d69e2e; }
.avisos-plataforma-cabecera__boton[data-gravedad="critica"] { color: #c53030; border-color: #e53e3e; }

.avisos-plataforma-cabecera__contador {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 20px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #d52222;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.avisos-plataforma-overlay {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  width: min(520px, calc(100vw - 24px));
  max-height: min(680px, calc(100vh - 100px));
  overflow: auto;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: var(--superficie);
  box-shadow: 0 24px 54px rgba(15, 23, 42, 0.24);
}

.avisos-plataforma-overlay > header {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border-bottom: 1px solid var(--borde);
  background: var(--superficie);
}

.avisos-plataforma-overlay > header div { display: grid; gap: 3px; }
.avisos-plataforma-overlay > header small { color: var(--texto-suave); }
.avisos-plataforma-overlay__lista { display: grid; gap: 10px; padding: 12px; }
.avisos-plataforma-overlay__vacio { margin: 0; padding: 20px; color: var(--texto-suave); text-align: center; }

.aviso-plataforma {
  display: grid;
  gap: 8px;
  padding: 13px;
  border: 1px solid var(--borde);
  border-left: 4px solid #3182ce;
  border-radius: 10px;
  background: var(--fondo);
}
.aviso-plataforma--advertencia { border-left-color: #d69e2e; }
.aviso-plataforma--critica { border-left-color: #e53e3e; }
.aviso-plataforma__cabecera { display: flex; justify-content: space-between; gap: 12px; }
.aviso-plataforma__cabecera span { color: var(--texto-suave); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.aviso-plataforma > small { color: var(--texto-suave); }
.aviso-plataforma__descripcion { margin: 0; line-height: 1.45; }
.aviso-plataforma__contexto { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 9px; margin: 0; font-size: 12px; }
.aviso-plataforma__contexto dt { color: var(--texto-suave); }
.aviso-plataforma__contexto dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.aviso-plataforma__contexto code { white-space: normal; overflow-wrap: anywhere; }
.aviso-plataforma__tecnico > summary { cursor: pointer; color: var(--texto-suave); font-size: 12px; }
.aviso-plataforma__tecnico[open] > summary { margin-bottom: 7px; }
.aviso-plataforma__detalle { margin: 0; padding: 9px; max-height: 150px; overflow: auto; white-space: pre-wrap; font: 12px/1.45 ui-monospace, monospace; background: var(--superficie); border-radius: 7px; }
.aviso-plataforma__acciones { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.aviso-plataforma__acciones > span { margin-right: auto; color: var(--texto-suave); font-size: 12px; }

@media (max-width: 767.98px) {
  .acciones-cabecera {
    position: relative;
  }

  .acciones-cabecera > .buzon-personal-cabecera,
  .acciones-cabecera > .avisos-plataforma-cabecera {
    position: static;
  }
}

.impacto-eliminacion-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.impacto-eliminacion-grupo { padding: 16px; }
.impacto-eliminacion-grupo h3 { margin: 0 0 12px; font-size: 1rem; }
.impacto-eliminacion-grupo dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; margin: 0; }
.impacto-eliminacion-grupo dt { color: var(--texto-suave); font-weight: 500; }
.impacto-eliminacion-grupo dd { margin: 0; text-align: right; }
.impacto-eliminacion-grupo dd small { display: block; color: var(--texto-suave); }
.operacion-seguimiento {
  width: min(100%, 1180px);
  margin-inline: auto;
}

.operacion-seguimiento__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .75fr);
  gap: 32px;
  align-items: stretch;
}

.operacion-seguimiento__insignia {
  justify-self: start;
}

.operacion-estado-principal {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "icono etiqueta"
    "icono estado"
    "resumen resumen";
  gap: 4px 12px;
  align-content: center;
  min-height: 210px;
  padding: 24px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie);
  color: var(--texto);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
}

.operacion-estado-principal__icono {
  grid-area: icono;
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: var(--acento-suave);
  color: var(--acento);
  font-size: 24px;
}

.operacion-estado-principal .etiqueta { grid-area: etiqueta; align-self: end; }
.operacion-estado-principal > strong { grid-area: estado; font-size: 24px; line-height: 1.15; }
.operacion-estado-principal > p {
  grid-area: resumen;
  margin-top: 14px;
  color: var(--texto-suave);
  font-size: 14px;
}

.operacion-estado-principal--completada .operacion-estado-principal__icono { background: var(--exito-fondo); color: var(--estado-positivo); }
.operacion-estado-principal--completada .etiqueta,
.operacion-estado-principal--completada > strong { color: var(--estado-positivo); }
.operacion-estado-principal--fallida .operacion-estado-principal__icono { background: var(--error-fondo); color: var(--estado-error); }
.operacion-estado-principal--fallida .etiqueta,
.operacion-estado-principal--fallida > strong { color: var(--estado-error); }
.operacion-estado-principal--advertencia .operacion-estado-principal__icono { background: color-mix(in srgb, var(--estado-advertencia) 14%, var(--superficie)); color: var(--estado-advertencia); }
.operacion-estado-principal--advertencia .etiqueta,
.operacion-estado-principal--advertencia > strong { color: var(--estado-advertencia); }
.operacion-estado-principal--curso .operacion-estado-principal__icono i { animation: operacion-giro 1.5s linear infinite; }

@keyframes operacion-giro { to { transform: rotate(360deg); } }

.operacion-recorrido,
.operacion-detalles { padding: 24px; box-shadow: none; }

.operacion-seccion-cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.operacion-seccion-cabecera h2 { margin: 4px 0 3px; font-size: 24px; }
.operacion-seccion-cabecera p { margin: 0; color: var(--texto-suave); }
.operacion-recorrido__actualizacion { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.operacion-recorrido__actualizacion .btn { display: inline-flex; align-items: center; gap: 7px; }

.operacion-fases {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
}

.operacion-fases li { display: grid; gap: 11px; min-width: 0; color: var(--texto-suave); }
.operacion-fase__trazo { height: 6px; border-radius: 999px; background: var(--borde); }
.operacion-fase__contenido { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: start; }
.operacion-fase__contenido > span:last-child { display: grid; min-width: 0; }
.operacion-fase__contenido strong { color: var(--texto); font-size: 13px; }
.operacion-fase__contenido small { color: var(--texto-suave); font-size: 11px; line-height: 1.35; }
.operacion-fase__marca {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--borde-fuerte);
  font-size: 11px;
}
.operacion-fases .operacion-fase--completada .operacion-fase__trazo { background: var(--estado-positivo); }
.operacion-fases .operacion-fase--completada .operacion-fase__marca { border-color: var(--estado-positivo); background: var(--exito-fondo); color: var(--estado-positivo); }
.operacion-fases .operacion-fase--actual .operacion-fase__trazo { background: var(--interaccion-hover); }
.operacion-fases .operacion-fase--actual .operacion-fase__marca { border-color: var(--interaccion-hover); background: color-mix(in srgb, var(--interaccion-hover) 12%, var(--superficie)); color: var(--interaccion-hover); }
.operacion-fases .operacion-fase--actual .operacion-fase__contenido strong { color: var(--interaccion-hover); }
.operacion-fases .operacion-fase--fallida .operacion-fase__trazo { background: var(--estado-error); }
.operacion-fases .operacion-fase--fallida .operacion-fase__marca { border-color: var(--estado-error); background: var(--error-fondo); color: var(--estado-error); }
.operacion-fases .operacion-fase--fallida .operacion-fase__contenido strong { color: var(--estado-error); }

.operacion-resumen { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.operacion-resumen__tarjeta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "icono etiqueta" "icono valor" "ayuda ayuda";
  gap: 3px 12px;
  min-height: 142px;
  padding: 20px;
  box-shadow: none;
}
.operacion-resumen__icono { grid-area: icono; display: inline-grid; place-items: center; align-self: start; width: 38px; height: 38px; border-radius: 9px; background: var(--acento-suave); color: var(--acento); font-size: 18px; }
.operacion-resumen__tarjeta .etiqueta { grid-area: etiqueta; align-self: end; }
.operacion-resumen__tarjeta > strong { grid-area: valor; min-width: 0; font-size: 21px; line-height: 1.2; overflow-wrap: anywhere; }
.operacion-resumen__tarjeta > small { grid-area: ayuda; align-self: end; color: var(--texto-suave); }
.operacion-resumen__fecha { font-size: 17px !important; }

.operacion-eliminacion-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 20px 0 0; }
.operacion-eliminacion-meta > div { display: grid; grid-template-columns: minmax(125px, .65fr) minmax(0, 1fr); gap: 12px; padding: 12px 0; border-top: 1px solid var(--borde); }
.operacion-eliminacion-meta dt { color: var(--texto-suave); font-weight: 600; }
.operacion-eliminacion-meta dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.operacion-eliminacion-meta__id { grid-column: 1 / -1; }
.operacion-eliminacion-meta code { white-space: normal; overflow-wrap: anywhere; }

@media (max-width: 991.98px) {
  .operacion-seguimiento__hero-grid { grid-template-columns: 1fr; }
  .operacion-estado-principal { min-height: 0; }
  .operacion-resumen { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .operacion-seccion-cabecera { display: grid; }
  .operacion-recorrido__actualizacion { justify-content: flex-start; }
  .operacion-fases { grid-template-columns: 1fr; gap: 0; }
  .operacion-fases li { position: relative; grid-template-columns: 6px minmax(0, 1fr); gap: 14px; padding-bottom: 14px; }
  .operacion-fase__trazo { width: 6px; height: 100%; min-height: 54px; }
  .operacion-fase__contenido { padding-bottom: 3px; }
  .operacion-eliminacion-meta { grid-template-columns: 1fr; }
  .operacion-eliminacion-meta__id { grid-column: auto; }
}

@media (max-width: 575.98px) {
  .operacion-seguimiento__hero .card-body,
  .operacion-recorrido,
  .operacion-detalles { padding: 18px !important; }
  .operacion-estado-principal { grid-template-columns: 40px minmax(0, 1fr); padding: 18px; }
  .operacion-estado-principal__icono { width: 40px; height: 40px; font-size: 19px; }
  .operacion-estado-principal > strong { font-size: 20px; }
  .operacion-recorrido__actualizacion { display: grid; grid-template-columns: 1fr; }
  .operacion-recorrido__actualizacion .btn { justify-content: center; }
  .operacion-eliminacion-meta > div { grid-template-columns: 1fr; gap: 3px; }
}

@media (prefers-reduced-motion: reduce) {
  .operacion-estado-principal--curso .operacion-estado-principal__icono i { animation: none; }
}

.dashboard-alertas-remotas-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 12px; }
.dashboard-alerta-remota { display: grid; align-content: start; gap: 10px; border-left: 4px solid #d69e2e; }
.dashboard-alerta-remota--activaEnOrigen { border-left-color: #e53e3e; }
.dashboard-alerta-remota--cerradaEnOrigen { border-left-color: #38a169; opacity: .86; }
.dashboard-alerta-remota h3, .dashboard-alerta-remota p { margin: 0; }
.dashboard-alerta-remota__acciones { justify-self: end; align-self: end; }

.menu-usuario-cabecera summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
  color: var(--acento);
  cursor: pointer;
  list-style: none;
  box-shadow: 0 8px 18px rgba(30, 41, 59, 0.07);
}

.menu-usuario-cabecera summary::-webkit-details-marker {
  display: none;
}

.menu-usuario-cabecera[open] summary,
.menu-usuario-cabecera summary:hover,
.menu-usuario-cabecera summary:focus {
  border-color: var(--borde-fuerte);
  background: var(--acento-suave);
  outline: none;
}

.menu-usuario-cabecera__avatar {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(82, 107, 132, 0.18), rgba(82, 107, 132, 0.08));
  color: var(--acento);
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.menu-usuario-cabecera__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 40;
  display: grid;
  gap: 8px;
  width: min(280px, calc(100vw - 32px));
  max-width: calc(100vw - 24px);
  padding: 12px;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: var(--superficie);
  box-shadow: 0 20px 46px rgba(30, 41, 59, 0.14);
}

.menu-usuario-cabecera__identidad {
  display: grid;
  gap: 4px;
  padding: 8px 10px 12px;
  border-bottom: 1px solid var(--borde);
}

.menu-usuario-cabecera__identidad strong {
  min-width: 0;
  overflow: hidden;
  color: var(--texto);
  font-size: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.menu-usuario-cabecera__opcion {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie);
  color: var(--texto-suave);
  font-size: 14px;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.menu-usuario-cabecera__opcion:hover,
.menu-usuario-cabecera__opcion:focus {
  border-color: var(--borde-fuerte);
  background: var(--acento-suave);
  color: var(--acento);
  outline: none;
}

.selector-tema {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: 10px 0 4px;
  border-top: 1px solid var(--borde);
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  color: var(--texto-suave);
}

.selector-tema__etiqueta {
  width: auto;
  margin: 0;
  padding: 0 4px;
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.selector-tema__opciones {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  padding: 4px;
  border: 1px solid var(--borde);
  border-radius: 11px;
  background: var(--superficie-2);
}

.selector-tema__opcion {
  position: relative;
  min-width: 0;
  margin: 0;
}

.selector-tema__opcion input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.selector-tema__opcion span {
  display: grid;
  place-items: center;
  min-height: 34px;
  padding: 0 6px;
  border: 1px solid transparent;
  border-radius: 7px;
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

.selector-tema__opcion input:checked + span {
  border-color: var(--borde-fuerte);
  background: var(--superficie);
  color: var(--acento);
  box-shadow: 0 2px 8px rgba(30, 41, 59, 0.08);
}

.selector-tema__opcion input:focus-visible + span {
  border-color: var(--acento);
  outline: 3px solid color-mix(in srgb, var(--acento) 18%, transparent);
}

.selector-tema__opcion:hover span {
  color: var(--acento);
}

.menu-usuario-cabecera__opcion:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.menu-usuario-cabecera__opcion:disabled:hover,
.menu-usuario-cabecera__opcion:disabled:focus {
  border-color: transparent;
  background: transparent;
  color: var(--texto-suave);
}

.menu-usuario-cabecera__opcion--salir {
  color: var(--texto-suave);
}

.menu-usuario-cabecera__opcion--salir:hover,
.menu-usuario-cabecera__opcion--salir:focus {
  border-color: var(--borde-fuerte);
  background: var(--superficie-2);
  color: var(--error-texto);
}

.menu-usuario-cabecera form {
  margin: 4px 0 0;
  padding-top: 8px;
  border-top: 1px solid var(--borde);
}

.cabecera-panel {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 24px;
  z-index: 35;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  align-content: start;
  gap: 18px;
  width: min(340px, calc(100vw - 32px));
  max-height: calc(100dvh - 118px);
  min-width: 0;
  padding: 14px;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(191, 208, 200, 0.8);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 248, 0.98) 100%);
  box-shadow: 0 28px 70px rgba(20, 42, 73, 0.18);
}

.cabecera-panel.abierto {
  display: grid;
}

.navegacion-principal {
  display: grid;
  gap: 8px;
  align-items: stretch;
  align-content: start;
  grid-auto-rows: min-content;
  min-width: 0;
  width: 100%;
}

.navegacion-principal a,
.navegacion-desplegable summary {
  display: inline-flex;
  align-items: center;
  width: 100%;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--texto-suave);
  background: transparent;
  transition: background-color 120ms ease, color 120ms ease;
  cursor: pointer;
}

.navegacion-principal a:hover,
.navegacion-principal a.activo,
.navegacion-desplegable summary:hover,
.navegacion-desplegable.activo summary {
  background: var(--acento-suave);
  color: var(--acento);
}

.navegacion-desplegable {
  position: static;
}

.navegacion-desplegable summary {
  list-style: none;
  gap: 8px;
}

.navegacion-desplegable summary::-webkit-details-marker {
  display: none;
}

.navegacion-desplegable summary::after {
  content: "";
  width: 8px;
  height: 8px;
  margin-top: -2px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 120ms ease;
}

.navegacion-desplegable[open] summary::after {
  transform: rotate(225deg);
  margin-top: 2px;
}

.navegacion-desplegable__menu {
  position: static;
  min-width: 0;
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding: 8px 8px 8px 14px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: rgba(244, 247, 245, 0.74);
  box-shadow: none;
}

.navegacion-desplegable__menu a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
}

.navegacion-aviso {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: auto;
  border: 1px solid #dfc09d;
  border-radius: 999px;
  color: var(--acento-2);
  background: #fff4e7;
  font-size: 12px;
}

.cabecera-panel .usuario-barra {
  display: grid;
  gap: 10px;
  align-items: stretch;
  justify-items: stretch;
  width: 100%;
  padding-top: 12px;
  border-top: 1px solid rgba(191, 208, 200, 0.78);
}

.cabecera-panel .boton-secundario {
  width: 100%;
}

.organizacion-hero__insignia,
.hero-etiquetas--organizacion .insignia,
.organizacion-chip-contexto,
.organizacion-entidad__titulo,
.organizacion-entidad__meta,
.organizacion-contador,
.organizacion-chip-timezone,
.organizacion-accion {
  display: inline-flex;
  align-items: center;
}

.organizacion-hero__insignia,
.hero-etiquetas--organizacion .insignia,
.organizacion-chip-contexto,
.organizacion-entidad__titulo,
.organizacion-entidad__meta,
.organizacion-contador,
.organizacion-chip-timezone,
.organizacion-accion {
  gap: 8px;
}

.organizacion-kpis {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.organizacion-hero--listado-sitios .hero-operativo__cuerpo {
  padding: 24px !important;
}

.organizacion-hero--listado-sitios .hero-operativo__contenido {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
  gap: 24px;
}

.organizacion-hero--listado-sitios .hero-operativo__textos {
  min-width: 0;
  max-width: none;
  gap: 10px;
}

.organizacion-hero--listado-sitios .organizacion-hero__insignia {
  justify-self: start;
  max-width: 100%;
}

.organizacion-hero--listado-sitios .organizacion-hero__insignia span {
  overflow-wrap: anywhere;
}

.organizacion-hero--listado-sitios .hero-organizacion__acciones {
  margin: 8px 0 0;
  gap: 8px;
}

.organizacion-hero--listado-sitios .rejilla-resumen.organizacion-kpis--sitios {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.organizacion-hero--listado-sitios .organizacion-kpis--sitios .organizacion-kpi {
  min-width: 0;
  min-height: 0;
  padding: 12px;
  gap: 5px;
  align-content: start;
}

.organizacion-hero--listado-sitios .organizacion-kpis--sitios .organizacion-kpi:first-child {
  grid-column: 1 / -1;
}

.organizacion-hero--listado-sitios .organizacion-kpi__cabecera {
  gap: 7px;
}

.organizacion-hero--listado-sitios .organizacion-kpi__icono {
  width: 28px;
  height: 28px;
}

.organizacion-hero--listado-sitios .organizacion-kpi strong {
  font-size: 23px;
}

@media (max-width: 767px) {
  .hero-operativo.organizacion-hero--listado-sitios {
    padding: 0;
  }

  .organizacion-hero--listado-sitios .hero-operativo__cuerpo {
    padding: 16px !important;
  }

  .organizacion-hero--listado-sitios .hero-operativo__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .organizacion-hero--listado-sitios .hero-organizacion__acciones .btn {
    min-height: 34px;
  }
}

@media (min-width: 360px) and (max-width: 767px) {
  .organizacion-hero--listado-sitios .hero-operativo__contenido {
    grid-template-columns: minmax(0, 1fr) 116px;
    gap: 10px;
  }

  .organizacion-hero--listado-sitios .hero-operativo__textos {
    gap: 8px;
  }

  .organizacion-hero--listado-sitios .hero-operativo__textos > p {
    font-size: 14px;
    line-height: 1.45;
  }

  .organizacion-hero--listado-sitios .hero-organizacion__acciones .btn {
    min-height: 32px;
    padding: 5px 7px;
    font-size: 12px;
  }

  .organizacion-hero--listado-sitios .rejilla-resumen.organizacion-kpis--sitios {
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
  }

  .organizacion-hero--listado-sitios .organizacion-kpis--sitios .organizacion-kpi {
    padding: 9px;
    gap: 3px;
  }

  .organizacion-hero--listado-sitios .organizacion-kpis--sitios .organizacion-kpi:first-child {
    grid-column: auto;
  }

  .organizacion-hero--listado-sitios .organizacion-kpi__icono {
    display: none;
  }

  .organizacion-hero--listado-sitios .organizacion-kpi .etiqueta {
    font-size: 11px;
    line-height: 1.2;
  }

  .organizacion-hero--listado-sitios .organizacion-kpi strong {
    font-size: 20px;
  }
}

.organizacion-hero--creacion .hero-operativo__contenido {
  gap: 0;
}

.organizacion-hero--creacion .hero-operativo__textos {
  max-width: none;
}

.organizacion-hero--creacion .hero-etiquetas--organizacion {
  margin-bottom: 0;
}

.organizacion-hero--alta-empresa .hero-operativo__textos {
  gap: 10px;
}

.organizacion-hero--alta-empresa .hero-operativo__textos > .organizacion-hero__insignia {
  justify-self: start;
}

.organizacion-hero--alta-empresa .hero-operativo__cuerpo {
  padding-block: 20px !important;
}

.organizacion-hero--alta-empresa .hero-organizacion__acciones {
  margin-top: 4px;
  margin-bottom: 0;
}

.organizacion-hero__insignia--enlace {
  color: inherit;
  text-decoration: none;
  transition: border-color 160ms ease, background-color 160ms ease;
}

.organizacion-hero__insignia--enlace:hover,
.organizacion-hero__insignia--enlace:focus-visible {
  color: inherit;
  border-color: rgba(255, 255, 255, 0.56);
  background: rgba(255, 255, 255, 0.16);
}

.organizacion-hero__jerarquia {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.organizacion-kpi {
  gap: 12px;
}

.organizacion-kpi__cabecera {
  display: flex;
  align-items: center;
  gap: 10px;
}

.organizacion-kpi__icono {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--acento-suave);
  color: var(--acento);
  font-size: 16px;
  flex-shrink: 0;
}

.organizacion-estado--activo {
  color: #b9ecd3;
  border-color: rgba(100, 210, 157, 0.42);
}

.organizacion-estado--inactivo {
  color: #ffd39d;
  border-color: rgba(232, 174, 96, 0.44);
}

.organizacion-estado i {
  font-size: 7px;
}

.organizacion-relaciones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-content: start;
}

.organizacion-relacion {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  color: var(--texto);
  background: var(--superficie);
  text-decoration: none;
  transition: border-color 150ms ease, transform 150ms ease, background 150ms ease;
}

.organizacion-relacion--ultima-impar {
  grid-column: 1 / -1;
}

.organizacion-relacion:hover,
.organizacion-relacion:focus-visible {
  color: var(--texto);
  border-color: var(--acento);
  background: var(--superficie-2);
  transform: translateY(-1px);
}

.organizacion-relacion__texto {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.organizacion-relacion__titulo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.organizacion-relacion small {
  color: var(--texto-suave);
}

.organizacion-relacion__contador {
  display: inline-grid;
  place-items: center;
  min-width: 26px;
  height: 26px;
  padding: 0 7px;
  border-radius: 999px;
  color: var(--texto);
  background: var(--acento-suave);
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .organizacion-relaciones {
    grid-template-columns: 1fr;
  }
}

.organizacion-listado__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.organizacion-filtros-activos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.organizacion-accion-principal.btn-primary {
  --bs-btn-bg: var(--acento);
  --bs-btn-border-color: var(--acento);
  --bs-btn-hover-bg: #2563eb;
  --bs-btn-hover-border-color: #2563eb;
  --bs-btn-active-bg: #1d4ed8;
  --bs-btn-active-border-color: #1d4ed8;
  --bs-btn-focus-shadow-rgb: 37, 99, 235;
}

.organizacion-chip-contexto {
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 600;
}

.organizacion-chip-contexto--link {
  text-decoration: none;
}

.organizacion-chip-contexto--link:hover {
  border-color: rgba(82, 107, 132, 0.32);
  background: var(--acento-suave);
  color: var(--acento);
}

.organizacion-toolbar {
  padding: 14px;
  border-radius: 8px;
  background: var(--superficie-2);
  border: 1px solid var(--borde);
}

.organizacion-input-icono {
  position: relative;
}

.organizacion-input-icono > i {
  position: absolute;
  top: 50%;
  left: 14px;
  transform: translateY(-50%);
  color: var(--texto-suave);
  pointer-events: none;
}

.organizacion-input-icono .form-control {
  padding-left: 40px;
}

.organizacion-tabla {
  border: 1px solid var(--borde);
  border-radius: 8px;
}

@media (min-width: 1200px) {
  .organizacion-tabla.table-responsive {
    overflow: visible;
  }

  .organizacion-tabla--sitios.table-responsive {
    overflow: auto;
  }
}

.organizacion-tabla table {
  margin-bottom: 0;
}

.organizacion-tabla--empresas table {
  min-width: 0;
  table-layout: fixed;
}

.organizacion-tabla--empresas col.organizacion-columna--id {
  width: 6%;
}

.organizacion-tabla--empresas col.organizacion-columna--tenant {
  width: 12%;
}

.organizacion-tabla--empresas col.organizacion-columna--nombre {
  width: 22%;
}

.organizacion-tabla--empresas col.organizacion-columna--alias {
  width: 14%;
}

.organizacion-tabla--empresas col.organizacion-columna--cif {
  width: 10%;
}

.organizacion-tabla--empresas col.organizacion-columna--estado {
  width: 11%;
}

.organizacion-tabla--empresas col.organizacion-columna--sitios {
  width: 8%;
}

.organizacion-tabla--empresas col.organizacion-columna--actualizado {
  width: 11%;
}

.organizacion-tabla--empresas col.organizacion-columna--acciones {
  width: 6%;
}

.organizacion-tabla--empresas td:not(.organizacion-columna--acciones) {
  overflow: hidden;
}

.organizacion-tabla--empresas td > .organizacion-entidad__meta {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

@media (max-width: 1199.98px) {
  .organizacion-tabla--empresas table {
    min-width: 1000px;
  }
}

.organizacion-tabla--tenants table,
.organizacion-tabla--sitios table {
  min-width: 1100px;
  table-layout: fixed;
}

.organizacion-tabla--sitios table {
  min-width: 0;
}

.organizacion-tabla--sitios col.organizacion-columna--id {
  width: 5.5%;
}

.organizacion-tabla--sitios col.organizacion-columna--pertenencia {
  width: 15.5%;
}

.organizacion-tabla--sitios col.organizacion-columna--nombre {
  width: 22%;
}

.organizacion-tabla--sitios col.organizacion-columna--alias {
  width: 16%;
}

.organizacion-tabla--sitios col.organizacion-columna--timezone {
  width: 11%;
}

.organizacion-tabla--sitios col.organizacion-columna--estado {
  width: 9%;
}

.organizacion-tabla--sitios col.organizacion-columna--actualizado {
  width: 13%;
}

.organizacion-tabla--sitios col.organizacion-columna--acciones {
  width: 8%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--id {
  width: 6.5%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--nombre {
  width: 26.5%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--alias {
  width: 19%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--timezone {
  width: 13%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--estado {
  width: 10%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--actualizado {
  width: 16%;
}

.organizacion-tabla--sitios-sin-pertenencia col.organizacion-columna--acciones {
  width: 9%;
}

.organizacion-tabla--sitios td:not(.organizacion-columna--acciones) {
  overflow: hidden;
}

.organizacion-pertenencia {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  min-width: 0;
}

.organizacion-pertenencia > .organizacion-entidad__meta {
  min-width: 0;
  flex: 0 1 auto;
  max-width: calc(50% - 10px);
}

.organizacion-pertenencia__separador {
  flex: 0 0 auto;
  color: var(--texto-suave);
}

.organizacion-chip-timezone {
  max-width: 100%;
  min-width: 0;
}

.organizacion-chip-timezone span {
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 1199.98px) {
  .organizacion-tabla--sitios table {
    min-width: 1050px;
  }
}

.organizacion-tabla--tenants th:nth-child(2),
.organizacion-tabla--tenants td:nth-child(2),
.organizacion-tabla--sitios .organizacion-columna--nombre {
  min-width: 230px;
}

.organizacion-tabla--tenants th:nth-child(3),
.organizacion-tabla--tenants td:nth-child(3),
.organizacion-tabla--sitios .organizacion-columna--alias {
  min-width: 150px;
}

.organizacion-tabla--tenants th:nth-child(4),
.organizacion-tabla--tenants td:nth-child(4) {
  min-width: 200px;
}

.organizacion-tabla--sitios .organizacion-columna--tenant,
.organizacion-tabla--sitios .organizacion-columna--empresa,
.organizacion-tabla--sitios .organizacion-columna--timezone {
  min-width: 145px;
}

.organizacion-tabla--tenants th:nth-child(8),
.organizacion-tabla--tenants td:nth-child(8),
.organizacion-tabla--sitios .organizacion-columna--actualizado {
  min-width: 150px;
}

.organizacion-tabla thead th {
  border-bottom-color: var(--borde);
  background: var(--superficie-2);
  color: var(--texto-suave);
  white-space: nowrap;
}

.organizacion-entidad {
  display: grid;
  gap: 6px;
  min-width: 0;
  width: 100%;
}

.organizacion-entidad__titulo {
  gap: 10px;
  min-width: 0;
  font-weight: 700;
  color: var(--texto);
}

/*
 * Los nombres humanos pueden ser mucho más largos que una columna de catálogo.
 * La tabla conserva el valor completo (y lo expone por tooltip/aria-label), pero
 * no deja que una sola celda fuerce el ancho de toda la cuadrícula.
 */
.table .organizacion-entidad__titulo,
.table .organizacion-entidad__titulo--enlace,
.tabla-texto-truncable {
  min-inline-size: 0;
  max-inline-size: 100%;
}

.table .organizacion-entidad__titulo > span:not(.organizacion-entidad__icono):not(.insignia-monitor),
.tabla-texto-truncable {
  display: block;
  min-inline-size: 0;
  max-inline-size: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.organizacion-entidad__titulo > span:not(.organizacion-entidad__icono):not(.insignia-monitor) {
  flex: 1 1 0;
}

.organizacion-entidad__meta .tabla-texto-truncable {
  flex: 0 1 auto;
}

.organizacion-entidad__titulo--enlace {
  width: fit-content;
  text-decoration: none;
}

.organizacion-entidad__titulo--enlace:hover,
.organizacion-entidad__titulo--enlace:focus-visible {
  color: var(--acento);
}

.organizacion-entidad__enlace-indicador {
  font-size: 12px;
  opacity: 0.72;
}

.organizacion-entidad__icono {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--acento);
  flex-shrink: 0;
}

.organizacion-entidad__meta {
  flex-wrap: wrap;
  color: var(--texto-suave);
  font-size: 12px;
}

.organizacion-entidad__meta--enlace {
  width: fit-content;
  color: var(--texto-suave);
  text-decoration: none;
}

.organizacion-entidad__meta--enlace:hover,
.organizacion-entidad__meta--enlace:focus-visible {
  color: var(--acento);
}

.organizacion-descripcion {
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}

.organizacion-descripcion[data-bs-toggle="tooltip"] {
  cursor: help;
}

.organizacion-descripcion--una-linea {
  -webkit-line-clamp: 1;
  line-clamp: 1;
}

.tooltip-descripcion-organizacion .tooltip-inner {
  max-width: min(420px, calc(100vw - 32px));
  text-align: left;
  overflow-wrap: anywhere;
}

.organizacion-meta-separador {
  color: var(--borde-fuerte);
}

.organizacion-contador {
  gap: 6px;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid var(--borde);
  background: var(--superficie);
  color: var(--texto-suave);
  text-decoration: none;
  font-weight: 600;
}

.organizacion-contador:hover {
  border-color: rgba(82, 107, 132, 0.32);
  background: var(--acento-suave);
  color: var(--acento);
}

.organizacion-chip-timezone {
  gap: 6px;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.organizacion-acciones {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.organizacion-acciones form {
  margin: 0;
}

.organizacion-acciones-toggle {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 8px;
}

.organizacion-acciones-menu {
  min-width: 180px;
  margin-bottom: 8px;
  padding: 6px;
  border-color: var(--borde);
  background: var(--superficie);
  color: var(--texto);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(10, 25, 46, 0.18);
}

.organizacion-acciones-menu .dropdown-item {
  min-height: 36px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
}

.organizacion-acciones-menu .dropdown-item i {
  color: var(--acento);
}

.organizacion-acciones-menu .dropdown-item--danger {
  color: #934a4a;
}

.organizacion-acciones-menu .dropdown-item--danger i {
  color: #934a4a;
}

.organizacion-accion {
  gap: 6px;
}

.organizacion-celda-fecha {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--texto-suave);
}

.organizacion-id {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto);
  font-weight: 700;
}

.monitores-tabla.table-responsive {
  overflow: visible;
}

.dropdown-menu--flotante-tabla {
  z-index: 1080;
}

.monitores-tabla__estado:empty {
  display: none;
}

.monitores-tabla table {
  table-layout: fixed;
}

.monitores-tabla thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.monitores-tabla th:nth-child(1) {
  width: 28%;
}

.monitores-tabla th:nth-child(2) {
  width: 8%;
}

.monitores-tabla th:nth-child(3) {
  width: 18%;
}

.monitores-tabla th:nth-child(4) {
  width: 15%;
}

.monitores-tabla th:nth-child(5) {
  width: 11%;
}

.monitores-tabla th:nth-child(6) {
  width: 12%;
}

.monitores-tabla th:nth-child(7) {
  width: 8%;
}

.monitores-tabla td {
  position: relative;
  vertical-align: middle;
}

.monitores-tabla td small {
  display: block;
  margin-top: 4px;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.25;
}

.monitores-tabla__monitor {
  overflow: visible;
}

.monitores-tabla__entidad {
  position: relative;
  outline: none;
}

.monitores-tabla__entidad .organizacion-entidad__meta {
  max-width: 100%;
}

.monitores-tabla__entidad .organizacion-entidad__meta span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.monitores-tabla__scope {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 700;
}

.monitores-tabla__cadencia-movil {
  display: none !important;
}

.monitores-tabla .boton-orden:focus-visible {
  outline: 2px solid var(--acento);
  outline-offset: 3px;
  border-radius: 3px;
}

.monitores-tabla__acciones,
.tabla-acciones {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.monitores-tabla__acciones form,
.tabla-acciones form {
  margin: 0;
}

.monitores-tabla__acciones-toggle,
.tabla-acciones__toggle {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 8px;
}

.monitores-tabla__acciones-menu,
.tabla-acciones__menu {
  min-width: 190px;
  padding: 6px;
  border-color: var(--borde);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(10, 25, 46, 0.18);
}

.monitores-tabla__acciones-menu {
  margin-bottom: 8px;
}

.tabla-acciones__menu {
  margin-bottom: 2px;
}

.monitores-tabla__acciones-menu .dropdown-item,
.tabla-acciones__menu .dropdown-item {
  min-height: 36px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
}

.monitores-tabla__acciones-menu .dropdown-item i,
.tabla-acciones__menu .dropdown-item i {
  color: var(--acento);
}

.tabla-acciones--auto {
  width: auto;
}

.tabla-acciones__menu .dropdown-item--warning,
.tabla-acciones__menu .dropdown-item--warning i {
  color: var(--estado-advertencia);
}

.dashboard-alertas-tabla-wrap {
  margin-top: -16px;
  padding-top: 16px;
}

.monitores-tabla__acciones-menu .dropdown-item--danger {
  color: #934a4a;
}

.monitores-tabla__acciones-menu .dropdown-item--danger i {
  color: #934a4a;
}

.monitor-tooltip-denso {
  position: absolute;
  left: 0;
  bottom: calc(100% + 10px);
  z-index: 30;
  display: none;
  width: min(560px, calc(100vw - 72px));
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--acento) 26%, var(--borde));
  border-radius: 8px;
  /* Capa de inspección: sólida y un punto más azul que la fila origen. */
  background: color-mix(in srgb, var(--acento) 10%, var(--superficie));
  box-shadow: var(--sombra);
  color: var(--texto);
}

.monitores-tabla__entidad:hover .monitor-tooltip-denso,
.monitores-tabla__entidad:focus-within .monitor-tooltip-denso,
.monitores-tabla__entidad:focus .monitor-tooltip-denso {
  display: grid;
  gap: 12px;
}

.monitor-tooltip-denso__cabecera {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.monitor-tooltip-denso__grid {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 7px 14px;
  font-size: 12px;
}

.monitor-tooltip-denso__grid span {
  color: var(--texto-suave);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.monitor-tooltip-denso__grid strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.monitor-tooltip-denso__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.monitor-tooltip-denso p {
  margin: 0;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.45;
}

.usuario-barra {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.insignia,
.insignia-suave {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.insignia {
  background: rgba(255, 255, 255, 0.12);
  color: #f4f7f5;
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.insignia-suave {
  background: var(--acento-suave);
  color: var(--acento);
}

.insignia-suave--alerta {
  background: color-mix(in srgb, var(--estado-advertencia) 16%, var(--superficie));
  color: var(--estado-advertencia);
}

.insignia-suave--neutra {
  background: var(--superficie-2);
  color: var(--texto-suave);
}

.franja-impersonacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--estado-advertencia) 38%, var(--borde));
  border-radius: 8px;
  background: color-mix(in srgb, var(--estado-advertencia) 10%, var(--superficie));
  color: var(--texto);
}

.franja-impersonacion--cabecera {
  flex: 1 1 420px;
  min-width: 280px;
  min-height: 42px;
  padding: 8px 10px;
  margin-left: auto;
  border-radius: 10px;
}

.franja-impersonacion--cabecera .boton-secundario {
  min-height: 34px;
  border-color: var(--borde);
  background: var(--superficie-2);
  color: var(--texto);
}

.franja-impersonacion__texto {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.franja-impersonacion__texto small {
  color: var(--texto-suave);
}

.franja-impersonacion__usuario,
.franja-impersonacion__real,
.franja-impersonacion__detalle {
  min-width: 0;
}

.contenedor-principal {
  width: min(1180px, calc(100vw - 32px));
  margin: 0 auto;
  padding: 32px 0 48px;
}

.pagina-no-encontrada {
  min-height: calc(100vh - 150px);
}

.pagina-no-encontrada > .row {
  margin-inline: 0;
}

.panel-general {
  display: grid;
  gap: 28px;
  min-width: 0;
}

.email-confirmacion {
  width: min(100%, 920px);
  margin-inline: auto;
}

.email-confirmacion__cuenta-atras {
  font-size: 0.82em;
  font-variant-numeric: tabular-nums;
  opacity: 0.82;
}

.panel-acceso {
  --acceso-acento: #486a89;
  --acceso-acento-hover: var(--interaccion-hover);
  --acceso-control: #6b8eae;
  --acceso-resaltado: #eff6ff;
  --acceso-resaltado-fuerte: #bfdbfe;
  min-height: calc(100vh - 120px);
  display: grid;
  align-items: center;
}

html[data-theme="dark"] .panel-acceso {
  --acceso-acento: #526b84;
  --acceso-acento-hover: var(--interaccion-hover);
  --acceso-control: #8ca2b8;
  --acceso-resaltado: #172554;
  --acceso-resaltado-fuerte: #1e40af;
}

.acceso-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 420px);
  gap: 24px;
  align-items: stretch;
}

.acceso-intro {
  order: 2;
}

.caja-acceso {
  order: 1;
  padding: 0;
  overflow: hidden;
}

.acceso-intro__cuerpo,
.caja-acceso__cuerpo {
  align-content: start;
}

.acceso-marca {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
}

.acceso-marca__logo {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 12px 30px rgba(7, 18, 16, 0.18);
}

.acceso-marca__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.acceso-marca__textos {
  display: grid;
  gap: 4px;
}

.acceso-marca__textos strong {
  color: var(--hero-texto);
  font-size: 24px;
  line-height: 1.05;
}

.acceso-marca__textos small {
  color: rgba(241, 246, 244, 0.78);
  font-size: 13px;
}

.acceso-intro,
.hero-operativo {
  border: 1px solid rgba(82, 107, 132, 0.14);
  border-radius: 8px;
  background: var(--hero-fondo);
  color: var(--hero-texto);
  box-shadow: var(--sombra);
  align-self: stretch;
}

.hero-operativo__cuerpo {
  background: transparent;
}

.hero-operativo__contenido {
  gap: 22px;
  align-items: start;
}

.hero-operativo__textos {
  display: grid;
  gap: 14px;
  max-width: 720px;
}

.hero-operativo__metricas {
  margin: 0;
}

.hero-operativo h1,
.acceso-intro h1 {
  margin: 0;
  color: var(--hero-texto);
  font-size: 34px;
  line-height: 1.05;
}

.hero-operativo p,
.acceso-intro p {
  margin: 0;
  color: color-mix(in srgb, var(--hero-texto) 82%, transparent);
  font-size: 16px;
  line-height: 1.55;
}

.hero-etiquetas {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hero-etiquetas--organizacion {
  margin-bottom: 8px;
}

.hero-operativo--secundario {
  background: #ffffff;
  color: var(--texto);
  border-color: var(--borde);
}

.hero-operativo--secundario p {
  color: var(--texto-suave);
}

.hero-operativo--secundario h1,
.hero-operativo--alerta h1 {
  color: var(--texto);
}

.hero-operativo--secundario .insignia {
  background: var(--acento-suave);
  border-color: transparent;
  color: var(--acento);
}

.hero-operativo--alerta {
  border-color: rgba(147, 74, 74, 0.16);
  background: #fff8f8;
}

.hero-operativo--alerta .insignia-suave {
  background: var(--error-fondo);
  color: var(--error-texto);
}

.caja-acceso,
.tarjeta,
.kpi-resumen,
.tarjeta-accion {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 8px;
  box-shadow: var(--sombra);
}

.caja-acceso {
  padding: 0;
}

.caja-acceso h2,
.tarjeta h2,
.seccion-cabecera h2,
.tarjeta h1,
.hero-operativo--secundario h1 {
  margin-top: 0;
}

.texto-apoyo {
  color: var(--texto-suave);
  margin-bottom: 0;
}

.texto-alerta {
  color: #9f1d1d;
  font-size: 0.92rem;
  font-weight: 700;
}

.acceso-intro .texto-apoyo {
  max-width: 36ch;
  color: rgba(241, 246, 244, 0.82);
}

.panel-acceso--cambio-password {
  padding: 32px 0;
}

.acceso-layout--cambio-password {
  width: min(100%, 720px);
  margin: 0 auto;
  grid-template-columns: minmax(0, 1fr);
}

.caja-acceso--cambio-password {
  display: grid;
  align-content: start;
  gap: 24px;
  padding: 32px;
  background:
    radial-gradient(circle at top left, rgba(82, 107, 132, 0.1), transparent 34%),
    linear-gradient(180deg, var(--superficie) 0%, var(--superficie-2) 100%);
}

.cambio-password__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--borde);
}

.cambio-password__titulo {
  min-width: 0;
}

.cambio-password__cabecera h1 {
  margin: 0 0 8px;
  font-size: clamp(28px, 4vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.035em;
}

.cambio-password__cabecera p {
  max-width: 58ch;
  margin: 0;
  color: var(--texto-suave);
  font-size: 16px;
  line-height: 1.55;
}

.cambio-password__identidad {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 170px;
  padding: 10px 12px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie-2);
}

.cambio-password__identidad-icono {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 8px;
  background: color-mix(in srgb, var(--acento) 12%, var(--superficie));
  color: var(--acento);
}

.cambio-password__identidad > span:last-child {
  display: grid;
  min-width: 0;
}

.cambio-password__identidad small {
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.cambio-password__identidad strong {
  overflow: hidden;
  text-overflow: ellipsis;
}

.formulario-acceso--cambio-password {
  gap: 20px;
}

.campo-password {
  display: grid;
  gap: 8px;
}

.campo-password > label {
  font-size: 14px;
  font-weight: 700;
}

.campo-password__control {
  position: relative;
}

.campo-password__control input {
  min-height: 54px;
  padding-right: 52px;
  border-radius: 10px;
  font-size: 16px;
}

.campo-password__toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--texto-suave);
  cursor: pointer;
}

.campo-password__toggle:hover,
.campo-password__toggle:focus {
  border-color: var(--borde);
  background: var(--superficie-2);
  color: var(--acento);
}

.cambio-password__checklist {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: color-mix(in srgb, var(--estado-positivo) 8%, var(--superficie));
}

.cambio-password__regla {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--texto-suave);
  font-size: 14px;
  line-height: 1.35;
}

.cambio-password__regla span {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border-radius: 999px;
  background: var(--superficie);
  color: var(--estado-advertencia);
  font-weight: 800;
}

.cambio-password__regla--ok {
  color: var(--exito-texto);
}

.cambio-password__regla--ok span {
  background: var(--exito-fondo);
  color: var(--exito-texto);
}

.cambio-password__regla--informativa span {
  background: var(--superficie-2);
  color: var(--acento);
  font-size: 12px;
}

.boton-primario--cambio-password {
  min-height: 54px;
  border-radius: 10px;
  font-size: 15px;
}

.boton-primario--cambio-password:disabled {
  cursor: not-allowed;
  background: color-mix(in srgb, var(--acento) 58%, var(--superficie));
  color: color-mix(in srgb, var(--texto) 72%, transparent);
}

.texto-ayuda-acceso {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 14px;
}

.formulario-acceso {
  display: grid;
  gap: 16px;
}

.formulario-acceso .form-label {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
}

.formulario-acceso .form-control {
  min-height: 54px;
  border-color: var(--borde-fuerte);
  border-radius: 8px;
  background-color: var(--superficie);
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

.formulario-acceso .form-control:hover:not(:focus) {
  border-color: var(--acceso-resaltado-fuerte);
  background-color: color-mix(in srgb, var(--acceso-resaltado) 44%, var(--superficie));
}

.formulario-acceso .form-control:focus {
  border-color: var(--acceso-control);
  background-color: var(--superficie);
  box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--acceso-resaltado-fuerte) 64%, transparent);
}

.formulario-acceso .form-control:-webkit-autofill,
.formulario-acceso .form-control:-webkit-autofill:hover,
.formulario-acceso .form-control:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--texto);
  caret-color: var(--texto);
  box-shadow: 0 0 0 1000px var(--acceso-resaltado) inset;
  border-color: var(--acceso-resaltado-fuerte);
  transition: background-color 9999s ease-out 0s;
}

.boton-acceso-submit.btn-primary {
  min-height: 52px;
  border-color: var(--acceso-acento);
  background: var(--acceso-acento);
  color: #ffffff;
  font-weight: 700;
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

.boton-acceso-submit.btn-primary:hover {
  border-color: var(--acceso-acento-hover);
  background: var(--acceso-acento-hover);
  color: #ffffff;
}

.boton-acceso-submit.btn-primary:focus,
.boton-acceso-submit.btn-primary:focus-visible {
  border-color: var(--acceso-acento);
  background: var(--acceso-acento);
  color: #ffffff;
  box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--acceso-resaltado-fuerte) 66%, transparent);
}

.boton-acceso-submit.btn-primary:active {
  border-color: #1e40af;
  background: #1e40af;
  color: #ffffff;
}

label {
  font-size: 14px;
  font-weight: 600;
}

input,
select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--borde-fuerte);
  border-radius: 6px;
  background: #ffffff;
  color: var(--texto);
  font-size: 14px;
}

textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--borde-fuerte);
  border-radius: 6px;
  background: #ffffff;
  color: var(--texto);
  font-size: 14px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  outline: 2px solid rgba(82, 107, 132, 0.18);
  border-color: var(--acento);
}

.boton-primario,
.boton-secundario {
  min-height: 42px;
  border: 0;
  border-radius: 6px;
  padding: 0 14px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease,
    box-shadow 140ms ease;
}

.enlace-boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.boton-primario {
  background: var(--acento);
  color: #ffffff;
}

.boton-primario--compacto {
  min-height: 36px;
  padding: 0 12px;
}

.boton-secundario {
  background: var(--superficie-2);
  color: var(--texto);
  border: 1px solid var(--borde);
}

.boton-primario:hover:not(:disabled),
.boton-secundario:hover:not(:disabled),
.enlace-boton:hover {
  border-color: var(--interaccion-hover);
  background-color: var(--interaccion-hover);
  color: #ffffff;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--interaccion-hover) 22%, transparent);
}

.boton-primario:active:not(:disabled),
.boton-secundario:active:not(:disabled),
.enlace-boton:active {
  border-color: var(--interaccion-activa);
  background-color: var(--interaccion-activa);
  color: #ffffff;
  box-shadow: none;
}

.boton-primario:focus-visible,
.boton-secundario:focus-visible,
.enlace-boton:focus-visible {
  outline: 2px solid var(--interaccion-hover);
  outline-offset: 2px;
}

.boton-secundario--iconico {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.boton-secundario__icono {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: rgba(82, 107, 132, 0.12);
  color: var(--acento);
  font-size: 12px;
}

.modal-portal {
  position: fixed;
  inset: 0;
  z-index: 70;
}

.modal-portal__cortina {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(15, 26, 24, 0.46);
  cursor: pointer;
}

.modal-portal__dialogo {
  position: relative;
  width: min(1040px, calc(100vw - 24px));
  max-height: calc(100vh - 32px);
  margin: 16px auto;
  display: grid;
  gap: 18px;
  padding: 22px;
  overflow: auto;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie);
  box-shadow: var(--sombra);
}

.modal-organizacion-eliminacion__dialogo {
  height: calc(100vh - 2rem);
  max-height: calc(100vh - 2rem);
}

.modal-organizacion-eliminacion__contenido {
  height: 100%;
  max-height: 100%;
  overflow: hidden;
}

.modal-organizacion-eliminacion__formulario {
  min-height: 0;
}

.modal-organizacion-eliminacion__cuerpo {
  min-height: 0;
  overscroll-behavior: contain;
}

.modal-portal__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
}

.modal-portal__cabecera h2 {
  margin: 10px 0 6px;
}

.modal-portal__subtitulo {
  margin: 0;
  color: var(--texto-suave);
}

.modal-portal__subnota {
  margin: 6px 0 0;
  color: var(--acento-2);
  font-size: 13px;
  font-weight: 700;
}

.modal-portal__cerrar {
  min-width: 42px;
  min-height: 42px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto);
  cursor: pointer;
  font-weight: 700;
}

.tarjetas-impersonacion {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.tarjeta-impersonacion {
  display: grid;
  gap: 6px;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto);
}

.tarjeta-impersonacion__etiqueta {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.tarjeta-impersonacion small {
  color: var(--texto-suave);
}

.rejilla-campos--impersonacion {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.acciones-formulario--impersonacion {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.resumen-impersonacion {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 12px 14px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto-suave);
}

.listado-impersonacion {
  display: grid;
  gap: 12px;
}

.fila-impersonacion {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto);
}

.fila-impersonacion__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.fila-impersonacion__acciones {
  display: grid;
  gap: 8px;
  justify-items: end;
}

.fila-impersonacion__bloqueo {
  color: var(--texto-suave);
  font-size: 12px;
  text-align: right;
}

.fila-impersonacion__meta,
.fila-impersonacion__cuerpo {
  color: var(--texto-suave);
  font-size: 13px;
}

.fila-impersonacion__cuerpo {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.paginacion-impersonacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.paginacion-impersonacion__resumen {
  color: var(--texto-suave);
  font-size: 13px;
}

.paginacion-impersonacion__acciones {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.pie-impersonacion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.estado-vacio {
  padding: 18px;
  border: 1px dashed var(--borde-fuerte);
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto-suave);
}

.estado-vacio--compacto {
  padding: 14px 16px;
}

.mensaje-error,
.mensaje-exito {
  margin: 16px 0;
  padding: 12px;
  border-radius: 6px;
}

.mensaje-error {
  background: var(--error-fondo);
  color: var(--error-texto);
}

.mensaje-error--suave {
  margin: 0;
}

.mensaje-exito {
  background: var(--exito-fondo);
  color: var(--exito-texto);
}

.mensaje-exito--suave {
  margin: 0;
  background: rgba(63, 107, 87, 0.08);
}

.estado-pow {
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--superficie-2);
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.estado-pow[hidden] {
  display: none !important;
}

.seccion-panel {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.seccion-cabecera {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
}

.seccion-cabecera h2 {
  margin-bottom: 6px;
}

.rejilla-resumen {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.rejilla-resumen--protocolo {
  margin-top: 16px;
}

.eventos-filtros__ventanas {
  align-items: center;
}

.eventos-filtros-avanzados {
  margin-top: 18px;
  border-top: 1px solid var(--bs-border-color);
  padding-top: 14px;
}

.eventos-filtros-avanzados summary {
  width: max-content;
  max-width: 100%;
  color: var(--bs-body-color);
  font-weight: 700;
  cursor: pointer;
}

.eventos-filtros-avanzados .rejilla-filtros-listado {
  margin-top: 16px;
}

.eventos-sin-monitor {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 16px;
}

.eventos-sin-monitor[hidden],
[data-eventos-resultados][hidden] {
  display: none;
}

.eventos-sin-monitor > .bi {
  color: var(--bs-primary);
  font-size: 22px;
}

.eventos-sin-monitor h3 {
  margin: 0 0 4px;
  font-size: 17px;
}

.eventos-sin-monitor p {
  margin: 0;
}

.kpi-resumen {
  display: grid;
  gap: 10px;
  min-height: 118px;
  padding: 18px;
  align-content: space-between;
  color: var(--texto);
  border-color: var(--borde);
  background: var(--superficie);
}

.kpi-resumen strong {
  color: var(--texto);
  font-size: 28px;
  line-height: 1.15;
}

.kpi-resumen small {
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.kpi-resumen--ok {
  border-color: var(--borde);
  background: var(--superficie);
  box-shadow: none;
}

.kpi-resumen--ok .etiqueta {
  color: var(--estado-positivo);
}

.kpi-resumen--ok strong {
  color: var(--estado-positivo);
}

.kpi-resumen--advertencia {
  border-color: var(--borde);
  background: var(--superficie);
  box-shadow: none;
}

.kpi-resumen--advertencia .etiqueta {
  color: var(--estado-advertencia);
}

.kpi-resumen--advertencia strong {
  color: var(--estado-advertencia);
}

.kpi-resumen--alerta {
  border-color: var(--borde);
  background: var(--superficie);
  box-shadow: none;
}

.kpi-resumen--alerta .etiqueta {
  color: var(--estado-error);
}

.kpi-resumen--alerta strong {
  color: var(--estado-error);
}

.kpi-resumen--suave {
  background: var(--superficie);
}

.kpi-resumen--neutro {
  border-color: var(--borde);
  background: var(--superficie);
  box-shadow: none;
}

.kpi-resumen--neutro .etiqueta {
  color: #4f6572;
}

.kpi-resumen--neutro strong {
  color: #203744;
}

.etiqueta {
  color: #4f6761;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

html[data-theme="dark"] .etiqueta {
  color: var(--texto-suave);
}

.hero-operativo .kpi-resumen {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.1);
}

.hero-operativo .kpi-resumen strong,
.hero-operativo .kpi-resumen small,
.hero-operativo .kpi-resumen .etiqueta {
  color: inherit;
}

.hero-operativo .kpi-resumen strong {
  color: var(--texto);
}

.hero-operativo .kpi-resumen small {
  color: var(--texto-suave);
}

.hero-operativo .kpi-resumen--ok,
.hero-operativo .kpi-resumen--advertencia,
.hero-operativo .kpi-resumen--alerta,
.hero-operativo .kpi-resumen--neutro,
.hero-operativo .kpi-resumen--suave {
  background: var(--superficie);
}

.hero-operativo .kpi-resumen--ok strong,
.hero-operativo .kpi-resumen--ok .etiqueta {
  color: var(--estado-positivo);
}

.hero-operativo .kpi-resumen--advertencia strong,
.hero-operativo .kpi-resumen--advertencia .etiqueta {
  color: var(--estado-advertencia);
}

.hero-operativo .kpi-resumen--alerta strong,
.hero-operativo .kpi-resumen--alerta .etiqueta {
  color: var(--estado-error);
}

.hero-monitores {
  border-color: rgba(148, 163, 184, 0.18);
  background: var(--hero-fondo);
}

.hero-monitores__contenido {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.hero-monitores__contenido > [class*="col-"] {
  width: auto;
  max-width: none;
  padding-right: 0;
  padding-left: 0;
}

.hero-monitores__insignia {
  width: max-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.hero-monitores__etiquetas .insignia {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--hero-texto);
}

.hero-monitores__etiquetas .insignia-monitor--ping,
.hero-monitores__etiquetas .insignia-monitor--tcp,
.hero-monitores__etiquetas .insignia-monitor--booleano,
.hero-monitores__etiquetas .insignia-monitor--api,
.hero-monitores__etiquetas .insignia-monitor--dns {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: var(--hero-texto);
}

.hero-monitores__etiquetas .insignia-monitor--ok {
  background: rgba(214, 245, 224, 0.18);
  color: #d8f7e2;
  border-color: rgba(214, 245, 224, 0.34);
}

.hero-monitores__etiquetas .insignia-monitor--advertencia {
  background: rgba(255, 233, 190, 0.16);
  color: #ffe6b0;
  border-color: rgba(255, 233, 190, 0.3);
}

.hero-monitores__etiquetas .insignia-monitor--alerta,
.hero-monitores__etiquetas .insignia-monitor--off {
  background: rgba(255, 210, 210, 0.16);
  color: #ffd6d6;
  border-color: rgba(255, 210, 210, 0.28);
}

.hero-monitores__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.hero-accion__entradas {
  width: min(100%, 530px);
  margin-top: 10px;
}

.hero-accion__entradas[hidden] {
  display: none;
}

.hero-accion__entradas h2 {
  margin: 0 0 8px;
  color: var(--hero-texto);
  font-size: 13px;
  font-weight: 700;
}

.hero-accion__entradas-lista {
  display: grid;
  gap: 6px;
}

.hero-accion__entradas-vacio {
  color: color-mix(in srgb, var(--hero-texto) 82%, transparent);
  font-size: 13px;
  margin: 0;
}

.hero-accion__entradas-crear {
  justify-self: start;
}

.hero-accion__ayuda {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: help;
}

.hero-accion__alcance-etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.hero-accion__alcance-etiqueta .hero-accion__ayuda i {
  width: 24px;
  height: 24px;
  background: transparent;
}

.hero-accion__relaciones-control {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.hero-accion__relaciones-control > .btn {
  flex: 1 1 auto;
}

.hero-accion__ayuda--relaciones {
  color: var(--hero-texto);
  flex: 0 0 24px;
}

@media (max-width: 576px) {
  .hero-accion__relaciones-control {
    flex: 1 1 100%;
  }
}

.hero-relaciones__enlace {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2px 8px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 7px;
  color: var(--hero-texto);
  text-decoration: none;
}

.hero-relaciones__enlace:hover,
.hero-relaciones__enlace:focus-visible {
  color: var(--hero-texto);
  background: rgba(255, 255, 255, 0.12);
}

.hero-relaciones__enlace i {
  grid-row: span 2;
}

.hero-relaciones__enlace span,
.hero-relaciones__enlace small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hero-relaciones__enlace small {
  color: rgba(255, 255, 255, 0.7);
}

.hero-organizacion__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  margin-bottom: 18px;
}

.hero-monitores__acciones .btn,
.hero-organizacion__acciones .btn {
  min-height: 38px;
  border-radius: 8px;
  font-weight: 700;
}

.hero-monitores__acciones .btn-light,
.hero-organizacion__acciones .btn-light {
  color: var(--hero-fondo);
  border-color: rgba(255, 255, 255, 0.82);
}

.hero-monitores__acciones .btn-outline-light,
.hero-organizacion__acciones .btn-outline-light {
  color: var(--hero-texto);
  border-color: rgba(255, 255, 255, 0.38);
}

.hero-monitores__acciones .btn-outline-light:hover,
.hero-monitores__acciones .btn-outline-light:focus,
.hero-organizacion__acciones .btn-outline-light:hover,
.hero-organizacion__acciones .btn-outline-light:focus {
  color: var(--hero-fondo);
  background: var(--hero-texto);
  border-color: var(--hero-texto);
}

.hero-monitores__kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hero-usuarios .hero-operativo__cuerpo {
  padding: 24px !important;
}

.hero-usuarios .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 350px);
  gap: 24px;
  margin: 0;
}

.hero-usuarios .hero-monitores__contenido > [class*="col-"] {
  margin-top: 0;
}

.hero-usuarios .hero-operativo__textos {
  gap: 10px;
}

.hero-operativo.hero-usuarios .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.hero-usuarios .hero-monitores__kpi {
  min-width: 0;
  min-height: 0;
  padding: 12px;
  gap: 5px;
  align-content: start;
}

.hero-usuarios .hero-monitores__kpi:first-child {
  grid-column: 1 / -1;
}

.hero-usuarios--portal .hero-monitores__kpi:first-child {
  grid-column: auto;
}

.hero-usuarios .hero-monitores__kpi strong {
  font-size: 23px;
}

.hero-usuario-formulario .hero-operativo__cuerpo {
  padding: 24px !important;
}

.hero-usuario-formulario .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
  gap: 24px;
  margin: 0;
}

.hero-usuario-formulario .hero-monitores__contenido > [class*="col-"] {
  margin-top: 0;
}

.hero-usuario-formulario .hero-operativo__textos {
  gap: 10px;
}

.hero-usuario-formulario__datos {
  display: grid;
  gap: 8px;
}

.hero-usuario-formulario__dato {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie);
  color: var(--texto);
}

.hero-usuario-formulario__dato > i {
  color: var(--acento);
  font-size: 17px;
}

.hero-usuario-formulario__dato > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.hero-usuario-formulario__dato small {
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.hero-usuario-formulario__dato strong {
  font-size: 15px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hero-usuario-formulario__dato .hero-usuario-formulario__detalle {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.35;
  text-transform: none;
  overflow-wrap: anywhere;
}

@media (max-width: 767px) {
  .hero-operativo.hero-usuarios {
    padding: 0;
  }

  .hero-usuarios .hero-operativo__cuerpo {
    padding: 16px !important;
  }

  .hero-usuarios .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .hero-usuarios .hero-monitores__kpi {
    min-height: 0;
    padding: 10px;
  }

  .hero-operativo.hero-usuario-formulario {
    padding: 0;
  }

  .hero-usuario-formulario .hero-operativo__cuerpo {
    padding: 16px !important;
  }

  .hero-usuario-formulario .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }
}

.hero-dns-detalle .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 28px;
  align-items: center;
}

.hero-operativo.hero-dns-detalle .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.hero-dns-detalle .hero-monitores__kpi,
.hero-dns-detalle .hero-monitores__kpi:first-child {
  grid-column: auto;
  min-width: 0;
  min-height: 132px;
  padding: 14px;
}

.hero-dns-detalle .hero-monitores__kpi strong {
  overflow-wrap: anywhere;
  font-size: 22px;
}

@media (max-width: 1199.98px) {
  .hero-dns-detalle .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

@media (max-width: 575.98px) {
  .hero-operativo.hero-dns-detalle .hero-monitores__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .hero-dns-detalle .hero-monitores__kpi,
  .hero-dns-detalle .hero-monitores__kpi:first-child {
    min-height: 150px;
    padding: 10px;
  }

  .hero-dns-detalle .hero-monitores__kpi .hero-monitores__kpi-cabecera {
    align-items: center;
    flex-direction: row;
    gap: 6px;
  }

  .hero-dns-detalle .hero-monitores__kpi .etiqueta {
    font-size: 10px;
  }

  .hero-dns-detalle .hero-monitores__kpi strong {
    font-size: 19px;
  }

  .hero-dns-detalle .hero-monitores__kpi small {
    display: block;
    font-size: 10px;
    line-height: 1.35;
  }
}

.hero-dns .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 24px;
  align-items: center;
}

.dns-formulario-hero .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 24px;
  align-items: start;
}

.hero-operativo.dns-formulario-hero .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dns-formulario-hero .hero-monitores__kpi,
.dns-formulario-hero .hero-monitores__kpi:first-child {
  grid-column: auto;
  min-width: 0;
  min-height: 130px;
  padding: 14px;
}

.dns-formulario-hero .hero-monitores__kpi strong {
  overflow-wrap: anywhere;
  font-size: 21px;
}

@media (max-width: 1199.98px) {
  .dns-formulario-hero .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

@media (max-width: 575.98px) {
  .hero-operativo.dns-formulario-hero .hero-monitores__kpis {
    grid-template-columns: minmax(0, 1fr);
  }

  .dns-formulario-hero .hero-monitores__kpi,
  .dns-formulario-hero .hero-monitores__kpi:first-child {
    min-height: 0;
  }
}

.hero-operativo.hero-dns .hero-dns__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.hero-dns .hero-monitores__kpi,
.hero-dns .hero-monitores__kpi:first-child {
  min-width: 0;
  min-height: 92px;
  padding: 12px;
}

.hero-dns .hero-monitores__kpi:first-child {
  grid-column: 1 / -1;
}

.hero-dns .hero-monitores__kpi strong {
  font-size: 23px;
}

@media (max-width: 1199.98px) {
  .hero-dns .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

@media (max-width: 575.98px) {
  .hero-dns .hero-monitores__kpi,
  .hero-dns .hero-monitores__kpi:first-child {
    min-height: 78px;
    padding: 10px;
  }

  .hero-dns .hero-monitores__kpi-cabecera i {
    display: none;
  }

  .hero-dns .hero-monitores__kpi strong {
    font-size: 19px;
  }
}

@media (max-width: 360px) {
  .hero-dns .hero-monitores__kpi:first-child {
    grid-column: auto;
  }
}

.hero-eventos .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 1fr);
  gap: 24px;
}

.hero-eventos__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-eventos__kpis .kpi-resumen {
  min-width: 0;
}

.hero-eventos__kpis strong {
  overflow-wrap: anywhere;
}

.hero-historico .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 24px;
  align-items: center;
}

.hero-operativo.hero-historico .hero-historico__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.hero-historico .hero-monitores__kpi,
.hero-historico .hero-monitores__kpi:first-child {
  grid-column: auto;
  min-width: 0;
  min-height: 112px;
  padding: 14px;
}

.hero-historico .hero-monitores__kpi strong {
  font-size: clamp(18px, 1.6vw, 23px);
  overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
  .hero-historico .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }
}

@media (max-width: 767.98px) {
  .hero-historico .hero-monitores__acciones {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-historico .hero-monitores__acciones .btn {
    justify-content: center;
  }

  .hero-historico .hero-monitores__acciones .btn:first-child {
    grid-column: 1 / -1;
  }

  .hero-historico .hero-monitores__kpi,
  .hero-historico .hero-monitores__kpi:first-child {
    min-height: 92px;
    padding: 10px;
  }

  .hero-historico .hero-monitores__kpi-cabecera i {
    display: none;
  }

  .hero-historico .hero-monitores__kpi strong {
    font-size: 16px;
  }
}

.hero-comparador .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 24px;
  align-items: center;
}

.hero-comparador .hero-comparador__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.hero-comparador .hero-monitores__kpi {
  grid-column: auto;
  min-width: 0;
  min-height: 126px;
  padding: 14px;
}

.hero-comparador .hero-monitores__kpi strong {
  font-size: clamp(19px, 1.8vw, 25px);
  overflow-wrap: anywhere;
}

.hero-comparador .hero-monitores__kpi .hero-monitores__kpi-cabecera {
  flex-direction: row;
  align-items: center;
}

@media (max-width: 1199.98px) {
  .hero-comparador .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}

@media (max-width: 767.98px) {
  .hero-operativo.hero-comparador .hero-comparador__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-comparador .hero-monitores__acciones {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-comparador .hero-monitores__acciones .btn {
    justify-content: center;
  }

  .hero-comparador .hero-monitores__kpi-cabecera i {
    display: none;
  }

  .hero-comparador .hero-monitores__kpi:first-child {
    grid-column: auto;
  }

  .hero-comparador .hero-monitores__kpi {
    min-height: 116px;
    padding: 12px;
  }

  .hero-comparador .hero-monitores__kpi:not(:first-child) .hero-monitores__kpi-cabecera {
    flex-direction: row;
    align-items: center;
  }
}

@media (max-width: 1199.98px) {
  .hero-eventos .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767.98px) {
  .hero-operativo.hero-eventos .hero-eventos__kpis {
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-eventos .hero-monitores__kpi:first-child {
    grid-column: auto;
  }
}

.hero-agentes .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.75fr);
  gap: 28px;
  align-items: center;
}

.hero-agentes .hero-operativo__textos {
  gap: 10px;
}

.hero-agentes .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-agentes .hero-monitores__kpi {
  min-height: 112px;
}

.hero-agentes .hero-monitores__kpi:first-child {
  grid-column: auto;
}

.hero-agente-formulario .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(350px, 0.78fr);
  gap: 24px;
  align-items: start;
}

.hero-agente-formulario__etiquetas {
  margin-top: 0;
}

.hero-agente-formulario .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-agente-formulario .hero-monitores__kpi {
  min-width: 0;
  min-height: 100px;
}

.hero-agente-formulario .hero-monitores__kpi:first-child {
  grid-column: auto;
}

.agente-telemetria-hero .hero-monitores__contenido,
.agente-reglas-hero .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(350px, .72fr);
  gap: 24px;
  align-items: start;
}

.agente-telemetria-hero .hero-monitores__kpis,
.agente-reglas-hero .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.agente-telemetria-hero .hero-monitores__kpi,
.agente-reglas-hero .hero-monitores__kpi {
  min-width: 0;
  min-height: 108px;
}

.agente-telemetria-hero .hero-monitores__kpi:first-child,
.agente-reglas-hero .hero-monitores__kpi:first-child {
  grid-column: auto;
}

.agente-reglas-hero .hero-monitores__kpi {
  min-height: 88px;
}

.agente-telemetria-hero__relaciones {
  margin-top: 14px;
}

.agente-telemetria-hero__relaciones-cuerpo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 10px;
}

.agente-telemetria-hero__relacion {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 7px;
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  color: var(--hero-texto);
  background: rgba(255, 255, 255, .06);
}

.agente-telemetria-hero__relacion--entrada {
  border-color: rgba(106, 180, 236, .4);
  background: rgba(72, 151, 214, .12);
}

.agente-telemetria-hero__relacion--salida {
  border-color: rgba(112, 189, 151, .4);
  background: rgba(62, 144, 109, .12);
}

.agente-telemetria-hero__relacion-tipo {
  color: color-mix(in srgb, var(--hero-texto) 78%, transparent);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.agente-telemetria-hero__relacion > span:not(.agente-telemetria-hero__relacion-tipo) {
  font-size: .8rem;
  overflow-wrap: anywhere;
}

.agente-telemetria-hero__relacion .btn {
  margin-top: 3px;
}

.agente-reglas-hero__enlace-relacion {
  max-width: 100%;
  text-align: left;
  overflow-wrap: anywhere;
  white-space: normal;
}

.agente-regla-detalle-hero__condicion {
  display: grid;
  gap: 3px;
  margin: 12px 0 16px;
  padding-left: 12px;
  border-left: 3px solid rgba(112, 189, 151, .75);
  overflow-wrap: anywhere;
}

.agente-regla-detalle-hero__condicion span {
  color: color-mix(in srgb, var(--hero-texto) 76%, transparent);
  font-size: .75rem;
}

.agente-regla-detalle-hero__condicion strong {
  color: var(--hero-texto);
  font-size: .94rem;
  font-weight: 600;
}

.regla-catalogo__condicion {
  font-weight: 600;
  overflow-wrap: anywhere;
}

.regla-catalogo__detalles {
  border-top: 1px solid var(--bs-border-color);
  padding-top: 12px;
}

.regla-catalogo__detalles summary,
.regla-coincidencias summary,
.regla-crear summary {
  cursor: pointer;
}

.regla-catalogo__json {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: .75rem;
}

.regla-coincidencias-vacio {
  padding: 12px 16px;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  background: var(--bs-tertiary-bg);
  color: var(--bs-secondary-color);
}

.regla-coincidencias-vacio i {
  margin-right: 6px;
}

.regla-coincidencias summary,
.regla-crear summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  list-style: none;
}

.regla-coincidencias summary::-webkit-details-marker,
.regla-crear summary::-webkit-details-marker {
  display: none;
}

.regla-coincidencias summary > span:first-child,
.regla-crear summary > span:first-child {
  display: grid;
  gap: 4px;
}

.regla-crear summary strong {
  font-size: 1.15rem;
}

.regla-crear summary small {
  color: var(--bs-secondary-color);
}

.regla-crear__accion {
  color: var(--bs-primary);
  font-size: .875rem;
  font-weight: 600;
}

.regla-crear[open] .regla-crear__accion i {
  display: inline-block;
  transform: rotate(180deg);
}

#crear-interpretacion {
  scroll-margin-top: 100px;
}

@media (max-width: 980px) {
  .agente-telemetria-hero .hero-monitores__contenido,
  .agente-reglas-hero .hero-monitores__contenido {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .agente-telemetria-hero__relaciones-cuerpo {
    grid-template-columns: 1fr;
  }
}

.hero-agente-alta .hero-operativo__cuerpo {
  padding: 28px 32px !important;
}

.hero-agente-alta .hero-operativo__textos {
  max-width: 760px;
}

.hero-agente-alta .hero-agente-alta__aviso {
  align-items: flex-start;
  display: inline-flex;
  gap: .6rem;
  width: fit-content;
  max-width: 100%;
  padding: .55rem .75rem;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: .5rem;
  background: rgba(255, 255, 255, .08);
  color: var(--hero-texto);
  font-size: .88rem;
}

.hero-agente-alta__aviso .bi {
  flex: none;
}

@media (max-width: 575.98px) {
  .hero-agente-alta .hero-operativo__cuerpo {
    padding: 20px !important;
  }
}

.agente-datos-formulario {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 8px;
  box-shadow: var(--sombra);
  padding: 24px;
}

.agente-datos-formulario > .tarjeta {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}


.hero-automatizacion .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.72fr);
  gap: 28px;
  align-items: center;
}

.hero-automatizacion .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-automatizacion .hero-monitores__kpi {
  min-height: 128px;
}

.hero-automatizacion .hero-monitores__kpi:first-child {
  grid-column: auto;
}

.hero-accion .hero-monitores__contenido {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: 28px;
  align-items: center;
}

.hero-accion .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hero-accion .hero-monitores__kpi {
  min-height: 126px;
}

.hero-accion .hero-monitores__kpi strong {
  overflow-wrap: anywhere;
}

.hero-accion .hero-accion__kpi-destino strong {
  font-size: clamp(16px, 1.7vw, 24px);
}

.hero-accion .hero-monitores__kpi:last-child {
  grid-column: 1 / -1;
}

.hero-vinculo .hero-operativo__cuerpo {
  padding: 28px 32px;
}

.hero-vinculo__cabecera {
  display: block;
}

.hero-vinculo__cabecera .hero-operativo__textos {
  gap: 8px;
  max-width: none;
}

.hero-vinculo__cabecera h1 {
  font-size: clamp(26px, 2.5vw, 34px);
}

.hero-vinculo__cabecera p {
  margin: 0;
}

.hero-vinculo__acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-start;
  margin-top: 8px;
}

.hero-vinculo__etiquetas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}

.hero-vinculo__etiquetas .insignia {
  align-items: center;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
  color: var(--hero-texto);
  display: inline-flex;
  gap: 7px;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.hero-vinculo__relaciones {
  background: rgba(10, 24, 38, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 16px;
  margin-top: 22px;
  padding: 14px;
}

.hero-vinculo__flujo {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.hero-vinculo__extremo {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 12px;
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px 14px;
}

.hero-vinculo__extremo--origen {
  border-color: color-mix(in srgb, var(--acento) 35%, var(--borde));
}

.hero-vinculo__extremo--destino {
  border-color: color-mix(in srgb, var(--estado-positivo) 35%, var(--borde));
}

.hero-vinculo__extremo-tipo {
  align-items: center;
  color: var(--texto-suave);
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  gap: 7px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.hero-vinculo__extremo > a,
.hero-vinculo__extremo > strong {
  color: var(--texto);
  font-size: 16px;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.hero-vinculo__extremo > a:hover,
.hero-vinculo__extremo > a:focus-visible {
  color: var(--acento);
  text-decoration: underline;
}

.hero-vinculo__extremo > small {
  color: var(--texto-suave);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.hero-vinculo__flecha {
  color: var(--hero-texto);
  font-size: 20px;
}

.hero-vinculo__compatibilidad {
  color: var(--hero-texto);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 4px 8px;
  margin: 10px 0 0;
}

.hero-vinculo__compatibilidad strong {
  font-weight: 800;
}

.hero-vinculo__compatibilidad[hidden] {
  display: none;
}

@media (max-width: 767px) {
  .hero-vinculo .hero-operativo__cuerpo {
    padding: 20px 16px;
  }

  .hero-vinculo__cabecera {
    flex-direction: column;
    gap: 14px;
  }

  .hero-vinculo__cabecera p {
    display: none;
  }

  .hero-vinculo__acciones {
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
    width: 100%;
  }

  .hero-vinculo__acciones > .btn {
    justify-content: center;
    width: 100%;
  }

  .hero-vinculo__relaciones {
    margin-top: 16px;
    padding: 12px;
  }

  .hero-vinculo__flujo {
    gap: 6px;
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-vinculo__extremo {
    padding: 10px 12px;
  }

  .hero-vinculo__flecha {
    justify-self: center;
    font-size: 16px;
    line-height: 1;
    transform: rotate(90deg);
  }
}

.hero-monitores__kpi {
  min-height: 100px;
  padding: 16px;
  gap: 8px;
}

.hero-monitores__kpi-cabecera {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hero-monitores__kpi-cabecera i {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--acento-suave);
  color: var(--acento);
}

.hero-monitores__kpi.kpi-resumen--ok .hero-monitores__kpi-cabecera i {
  background: color-mix(in srgb, var(--estado-positivo) 10%, transparent);
  color: var(--estado-positivo);
}

.hero-monitores__kpi.kpi-resumen--advertencia .hero-monitores__kpi-cabecera i {
  background: color-mix(in srgb, var(--estado-advertencia) 10%, transparent);
  color: var(--estado-advertencia);
}

.hero-monitores__kpi.kpi-resumen--alerta .hero-monitores__kpi-cabecera i {
  background: color-mix(in srgb, var(--estado-error) 10%, transparent);
  color: var(--estado-error);
}

.hero-monitores__protocolo {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 4px;
}

.perfil-usuario {
  gap: 24px;
}

.perfil-usuario__identidad-hero {
  display: flex;
  align-items: center;
  gap: 18px;
}

.perfil-usuario__avatar {
  display: inline-grid;
  place-items: center;
  width: 76px;
  height: 76px;
  flex: 0 0 76px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 22px;
  background:
    radial-gradient(circle at 30% 20%, rgba(255, 255, 255, 0.5), transparent 34%),
    linear-gradient(145deg, rgba(216, 244, 235, 0.96), rgba(119, 183, 166, 0.9));
  color: #0b4237;
  font-size: 34px;
  font-weight: 900;
  box-shadow: 0 18px 38px rgba(6, 22, 18, 0.22);
  text-transform: uppercase;
}

.perfil-usuario__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.perfil-usuario__tarjeta {
  display: grid;
  gap: 18px;
}

.perfil-usuario__tarjeta-cabecera {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.perfil-usuario__tarjeta-cabecera > i {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 12px;
  background: var(--acento-suave);
  color: var(--acento);
}

.perfil-usuario__tarjeta-cabecera h2 {
  margin: 0 0 4px;
}

.perfil-usuario__definicion {
  display: grid;
  gap: 10px;
  margin: 0;
}

.perfil-usuario__definicion div {
  display: grid;
  grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid rgba(191, 208, 200, 0.72);
}

.perfil-usuario__definicion dt {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.perfil-usuario__definicion dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--texto);
  font-weight: 700;
}

.perfil-usuario__aviso-impersonacion {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid #dfc09d;
  border-radius: 14px;
  background: #fff8eb;
  color: #704400;
  box-shadow: var(--sombra);
}

.perfil-usuario__aviso-impersonacion > i {
  font-size: 20px;
}

.perfil-usuario__aviso-impersonacion p {
  margin: 4px 0 0;
  color: #704400;
}

.perfil-usuario__permisos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.perfil-usuario__permisos-acceso {
  appearance: none;
  cursor: pointer;
  font: inherit;
  transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.perfil-usuario__permisos-acceso:hover,
.perfil-usuario__permisos-acceso:focus-visible {
  border-color: var(--acento);
  background: color-mix(in srgb, var(--acento) 12%, var(--superficie));
}

.perfil-usuario__permisos-acceso:hover {
  transform: translateY(-1px);
}

.perfil-usuario__permisos-acceso:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--acento) 28%, transparent);
  outline-offset: 2px;
}

.perfil-usuario__alcance-detalle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.perfil-usuario__alcance-detalle .resumen-card__ayuda {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  font-size: 11px;
}

.perfil-permisos-modal__grupos {
  display: grid;
  gap: 20px;
}

.perfil-permisos-modal__grupo {
  display: grid;
  gap: 12px;
}

.perfil-permisos-modal__grupo + .perfil-permisos-modal__grupo {
  padding-top: 20px;
  border-top: 1px solid var(--borde);
}

.perfil-permisos-modal__grupo > header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.perfil-permisos-modal__grupo > header > i {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border-radius: 10px;
  background: var(--superficie-2);
  color: var(--acento);
}

.perfil-permisos-modal__grupo h3 {
  margin: 0;
  font-size: 16px;
}

.perfil-permisos-modal__grupo header span {
  color: var(--texto-suave);
  font-size: 12px;
}

.perfil-usuario__permiso {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
  color: var(--texto);
}

.perfil-usuario__permiso > i {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 10px;
  background: var(--acento-suave);
  color: var(--acento);
}

.perfil-usuario__permiso strong {
  display: block;
  margin-bottom: 4px;
}

.perfil-usuario__permiso p {
  margin: 0;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.4;
}

.perfil-editor__estado {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-color: color-mix(in srgb, var(--acento) 30%, var(--borde));
}

.perfil-editor__estado-identidad,
.perfil-editor__estado-acciones,
.perfil-editor__vigencia,
.perfil-editor__acciones-email {
  display: flex;
  align-items: center;
  gap: 10px;
}

.perfil-editor__estado-identidad {
  align-items: flex-start;
}

.perfil-editor__estado-identidad h2 {
  margin: 0 0 4px;
}

.perfil-editor__estado-icono {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 12px;
  background: var(--acento-suave);
  color: var(--acento);
  font-size: 18px;
}

.perfil-editor__vigencia {
  width: fit-content;
  margin-top: 8px;
  padding: 6px 10px;
  border: 1px solid color-mix(in srgb, var(--estado-positivo) 35%, var(--borde));
  border-radius: 999px;
  background: var(--exito-fondo);
  color: var(--exito-texto);
  font-size: 12px;
  font-weight: 700;
}

.perfil-editor__feedback {
  padding: 12px 14px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
}

.perfil-editor__feedback:empty {
  display: none;
}

.perfil-editor__feedback--exito {
  border-color: color-mix(in srgb, var(--estado-positivo) 34%, var(--borde));
  background: var(--exito-fondo);
  color: var(--exito-texto);
}

.perfil-editor__feedback--aviso {
  border-color: color-mix(in srgb, var(--estado-advertencia) 38%, var(--borde));
  background: color-mix(in srgb, var(--estado-advertencia) 12%, var(--superficie));
  color: var(--estado-advertencia);
}

.perfil-editor__feedback--error {
  border-color: color-mix(in srgb, var(--estado-error) 34%, var(--borde));
  background: var(--error-fondo);
  color: var(--error-texto);
}

.perfil-editor__campos {
  display: grid;
  gap: 0;
}

.perfil-editor__campo {
  display: grid;
  gap: 12px;
  padding: 18px 0;
  border-top: 1px solid var(--borde);
}

.perfil-editor__campo:first-child {
  border-top: 0;
  padding-top: 0;
}

.perfil-editor__campo--solo-lectura {
  grid-template-columns: minmax(120px, 0.42fr) minmax(0, 1fr);
  color: var(--texto);
}

.perfil-editor__campo-cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.perfil-editor__campo-cabecera > div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.perfil-editor__estado-email {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
}

.perfil-editor__estado-email .resumen-card__ayuda {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  font-size: 11px;
}

.perfil-editor__campo-cabecera strong,
.perfil-editor__campo--solo-lectura strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--texto);
}

.perfil-editor__formulario,
.perfil-editor__password {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie-2);
}

.perfil-editor__formulario label,
.perfil-editor__password label,
.perfil-editor__modal label {
  color: var(--texto);
  font-size: 13px;
  font-weight: 700;
}

.perfil-editor__formulario input,
.perfil-editor__password input,
.perfil-editor__modal input {
  width: 100%;
}

.perfil-preferencia-alertas__resumen,
.perfil-preferencia-alertas__cabecera,
.perfil-preferencia-alertas__acciones {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.perfil-preferencia-alertas__resumen > div {
  display: grid;
  gap: 5px;
}

.perfil-preferencia-alertas__resumen p {
  margin: 0;
  color: var(--texto-suave);
  font-size: 13px;
}

.perfil-preferencia-alertas__cabecera label {
  margin: 0;
  cursor: pointer;
  font-size: 15px;
}

.perfil-preferencia-alertas__control {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.perfil-preferencia-alertas .form-check-input {
  width: 2.5em;
  margin: 0;
  cursor: pointer;
}

.perfil-preferencia-alertas__estado {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 10px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie);
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.perfil-preferencia-alertas__estado[data-activo="true"] {
  border-color: color-mix(in srgb, var(--estado-ok) 42%, var(--borde));
  background: color-mix(in srgb, var(--estado-ok) 12%, var(--superficie));
  color: var(--estado-ok);
}

.perfil-preferencia-alertas__acciones {
  padding-top: 12px;
  border-top: 1px solid var(--borde);
}

.perfil-preferencia-alertas__acciones .boton-primario {
  justify-self: end;
  min-width: 150px;
}

@media (max-width: 575.98px) {
  .perfil-preferencia-alertas__resumen,
  .perfil-preferencia-alertas__cabecera,
  .perfil-preferencia-alertas__acciones {
    align-items: stretch;
    flex-direction: column;
  }

  .perfil-preferencia-alertas__control {
    justify-content: space-between;
  }

  .perfil-preferencia-alertas__resumen .perfil-preferencia-alertas__estado {
    align-self: flex-start;
  }

  .perfil-preferencia-alertas__acciones .boton-primario {
    width: 100%;
  }
}

.perfil-editor__control-accion {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.perfil-editor__control-accion button {
  align-self: stretch;
}

.perfil-editor__email-pendiente,
.perfil-editor__advertencia-password,
.perfil-editor__bloqueado,
.perfil-editor__nota {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 12px;
  border: 1px solid color-mix(in srgb, var(--estado-advertencia) 35%, var(--borde));
  border-radius: 10px;
  background: color-mix(in srgb, var(--estado-advertencia) 10%, var(--superficie));
  color: var(--texto);
}

.perfil-editor__email-pendiente > i,
.perfil-editor__advertencia-password > i,
.perfil-editor__bloqueado > i,
.perfil-editor__nota > i {
  color: var(--estado-advertencia);
}

.perfil-editor__email-pendiente p,
.perfil-editor__advertencia-password p,
.perfil-editor__bloqueado p {
  margin: 3px 0 0;
}

.perfil-editor__email-pendiente small {
  color: var(--texto-suave);
}

.perfil-editor__password {
  gap: 10px;
}

.perfil-usuario[data-autorizada="false"] .perfil-editor__password-card {
  align-self: start;
}

.perfil-usuario[data-autorizada="false"] .perfil-editor__password-descripcion {
  display: none;
}

.boton-peligro {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  margin-top: 4px;
  padding: 0 14px;
  border: 1px solid color-mix(in srgb, var(--estado-error) 55%, var(--borde));
  border-radius: 6px;
  background: var(--error-fondo);
  color: var(--error-texto);
  cursor: pointer;
  font-weight: 700;
}

.boton-peligro:hover:not(:disabled),
.boton-peligro:focus-visible {
  background: var(--estado-error);
  color: #fff;
}

.boton-peligro:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.perfil-editor__modal {
  border-color: var(--borde);
  background: var(--superficie);
  color: var(--texto);
}

.perfil-editor__modal-feedback {
  margin-top: 10px;
  font-size: 13px;
  font-weight: 700;
}

.perfil-editor__modal-feedback--error {
  color: var(--error-texto);
}

.estado-badge--pendiente {
  background: color-mix(in srgb, var(--estado-advertencia) 14%, var(--superficie));
  color: var(--estado-advertencia);
}

.usuario-email-estado {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.usuario-email-estado small {
  color: var(--texto-suave);
  font-size: 12px;
}

.usuarios-tabla__email {
  overflow-wrap: anywhere;
}

html[data-theme="dark"] .perfil-usuario__aviso-impersonacion {
  border-color: color-mix(in srgb, var(--estado-advertencia) 42%, var(--borde));
  background: color-mix(in srgb, var(--estado-advertencia) 12%, var(--superficie));
  color: var(--texto);
}

html[data-theme="dark"] .perfil-usuario__aviso-impersonacion p {
  color: var(--texto-suave);
}

.hero-monitor-detalle {
  border-color: color-mix(in srgb, var(--acento) 24%, transparent);
  background:
    radial-gradient(circle at top right, rgba(255, 255, 255, 0.08), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0)),
    var(--hero-fondo);
}

.hero-monitor-detalle.hero-operativo--alerta {
  border-color: color-mix(in srgb, var(--estado-error) 34%, transparent);
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--estado-error) 10%, transparent), transparent 34%),
    var(--hero-fondo);
}

.hero-monitor-detalle__contenido {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 0.95fr);
  align-items: stretch;
}

.hero-monitor-detalle__contenido > [class*="col-"] {
  min-width: 0;
}

.hero-monitor-detalle__acciones {
  margin-top: 2px;
}

.hero-monitor-detalle__ubicacion {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 2px 0 14px;
  color: color-mix(in srgb, var(--hero-texto) 78%, transparent);
  font-size: 13px;
  line-height: 1.35;
}

.hero-monitor-detalle__ubicacion-enlace,
.hero-monitor-detalle__ubicacion-texto {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.hero-monitor-detalle__ubicacion-enlace {
  color: var(--hero-texto);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--hero-texto) 38%, transparent);
  border-radius: 4px;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.hero-monitor-detalle__ubicacion-enlace:hover,
.hero-monitor-detalle__ubicacion-enlace:focus-visible {
  color: var(--hero-texto);
  background: color-mix(in srgb, var(--hero-texto) 12%, transparent);
  border-bottom-color: color-mix(in srgb, var(--hero-texto) 72%, transparent);
  outline: 2px solid color-mix(in srgb, var(--hero-texto) 42%, transparent);
  outline-offset: 2px;
}

.hero-monitor-detalle__ubicacion-separador {
  color: color-mix(in srgb, var(--hero-texto) 40%, transparent);
}

.hero-monitor-detalle__kpis {
  height: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kpi-resumen .contexto-operativo__definicion {
  color: var(--texto);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  white-space: pre-line;
}

.monitor-contexto-operativo--referencia .kpi-resumen {
  min-height: 0;
}

.monitor-contexto-operativo--referencia .contexto-operativo__definicion {
  font-size: 16px;
}

.monitor-contexto-operativo__tecnico {
  margin-top: 18px;
  color: var(--texto-suave);
}

.monitor-contexto-operativo__tecnico summary {
  width: fit-content;
  cursor: pointer;
  color: var(--texto);
  font-size: 14px;
  font-weight: 700;
}

.monitor-contexto-operativo__tecnico summary:hover {
  color: var(--acento);
}

.comparador-slot-columna[data-comparador-slot-columna="0"] {
  --comparador-slot-rgb: 31 122 106;
}

.comparador-slot-columna[data-comparador-slot-columna="1"] {
  --comparador-slot-rgb: 35 92 165;
}

.comparador-slot-columna[data-comparador-slot-columna="2"] {
  --comparador-slot-rgb: 114 72 181;
}

html[data-theme="dark"] .comparador-slot-columna[data-comparador-slot-columna="0"] {
  --comparador-slot-rgb: 126 190 170;
}

html[data-theme="dark"] .comparador-slot-columna[data-comparador-slot-columna="1"] {
  --comparador-slot-rgb: 135 175 230;
}

html[data-theme="dark"] .comparador-slot-columna[data-comparador-slot-columna="2"] {
  --comparador-slot-rgb: 181 153 224;
}

.comparador-resultados {
  display: grid;
  gap: 18px;
}

[data-comparador-eventos-shell][data-tiene-seleccion="false"] .comparador-resultados {
  display: none;
}

.comparador-slot__etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgb(var(--comparador-slot-rgb));
  font-weight: 700;
}

.comparador-slot__etiqueta-punto {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 999px;
  background: rgb(var(--comparador-slot-rgb));
  box-shadow: 0 0 0 4px rgb(var(--comparador-slot-rgb) / 0.14);
}

.comparador-slot {
  border-top: 3px solid rgb(var(--comparador-slot-rgb) / 0.75);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    background-color 160ms ease,
    opacity 160ms ease,
    transform 160ms ease;
}

.comparador-slot__cabecera {
  display: grid;
  gap: 8px;
}

.comparador-slot__indice {
  color: rgb(var(--comparador-slot-rgb) / 0.88);
}

.comparador-slot__insignias {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.comparador-slot__estado {
  width: max-content;
  max-width: 100%;
}

.comparador-slot__tipo {
  width: max-content;
  max-width: 100%;
}

.comparador-slot__titulo {
  line-height: 1.3;
}

.comparador-slot__detalle {
  line-height: 1.55;
}

.comparador-slot .card-body {
  padding: 1rem;
}

.comparador-slot .btn-outline-primary {
  color: var(--texto);
  border-color: var(--borde-fuerte);
}

.comparador-slot .btn-outline-secondary {
  color: var(--texto);
  border-color: var(--borde-fuerte);
}

.comparador-slot .btn-outline-secondary:hover,
.comparador-slot .btn-outline-secondary:focus-visible {
  color: #fff;
  background: var(--acento-fuerte);
}

.comparador-slot .btn-outline-primary:hover,
.comparador-slot .btn-outline-primary:focus-visible {
  color: #fff;
  border-color: var(--interaccion-hover);
  background: var(--interaccion-hover);
}

.comparador-slot[data-estado="vacio"] {
  border-color: var(--borde);
  background: var(--superficie-2);
  opacity: 1;
}

.comparador-slot[data-estado="vacio"] .card-body {
  padding: 0.7rem 1rem;
}

.comparador-slot[data-estado="vacio"] .comparador-slot__cabecera,
.comparador-slot[data-estado="seleccionado"] .comparador-slot__estado {
  display: none;
}

.comparador-slot[data-estado="vacio"] .comparador-slot__titulo {
  color: var(--texto);
}

.comparador-slot[data-estado="vacio"] .comparador-slot__detalle {
  color: var(--texto-suave) !important;
}

.comparador-slot[data-estado="seleccionado"] {
  border-color: rgb(var(--comparador-slot-rgb) / 0.32);
  background: linear-gradient(
    180deg,
    rgb(var(--comparador-slot-rgb) / 0.08) 0%,
    rgb(var(--comparador-slot-rgb) / 0.16) 100%
  );
  box-shadow:
    0 12px 28px rgb(var(--comparador-slot-rgb) / 0.12),
    inset 0 0 0 1px rgb(var(--comparador-slot-rgb) / 0.08);
}

.comparador-slot[data-estado="seleccionado"] .comparador-slot__titulo {
  color: var(--texto);
}

.comparador-slot[data-estado="seleccionado"] .comparador-slot__detalle {
  color: var(--texto-suave) !important;
}

.comparador-resultados .visor-eventos__detalle {
  min-height: 0;
  overflow-wrap: anywhere;
}

.comparador-resultados .visor-eventos__detalle code {
  white-space: normal;
  overflow-wrap: anywhere;
}

.comparador-resultados .visor-eventos__detalle .btn-outline-secondary {
  color: var(--texto);
  border-color: var(--borde-fuerte);
}

.comparador-detalle__fecha {
  margin: 0;
  color: var(--texto-suave);
  font-size: 0.85rem;
}

.comparador-detalle__mensaje {
  margin: 0;
  color: var(--texto);
  line-height: 1.5;
}

.comparador-detalle__resumen strong {
  color: var(--texto);
}

.comparador-detalle__tecnico {
  border-top: 1px solid var(--borde);
  padding-top: 10px;
}

.comparador-detalle__tecnico summary {
  width: fit-content;
  color: var(--texto);
  cursor: pointer;
  font-weight: 700;
}

.comparador-detalle__tecnico .metadatos-configuracion {
  margin-top: 12px;
}

.comparador-intervalo__contenido {
  min-width: 0;
  color: var(--texto-suave);
  font-size: 0.85rem;
}

.comparador-intervalo__origen {
  margin: 0 0 10px;
  color: var(--texto-suave);
  font-size: 0.8rem;
}

.comparador-intervalo__series {
  display: grid;
  gap: 7px;
  margin: 0 0 10px;
}

.comparador-intervalo__serie {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 7px;
  min-width: 0;
}

.comparador-intervalo__color {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-serie);
}

.comparador-intervalo__nombre {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--texto);
}

.comparador-intervalo__cantidad {
  white-space: nowrap;
  font-size: 0.75rem;
}

.comparador-intervalo__estado,
.comparador-intervalo__lectura {
  margin: 0 0 8px;
  line-height: 1.4;
}

.comparador-intervalo__lectura {
  margin: 8px 0 0;
}

.comparador-intervalo__grafico {
  position: relative;
  width: 100%;
  height: 210px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie);
}

.comparador-intervalo__grafico canvas {
  width: 100% !important;
  height: 100% !important;
}

.comparador-intervalo__enlace {
  width: fit-content;
  color: var(--acento-fuerte);
  font-size: 0.85rem;
  font-weight: 700;
}

.comparador-slot--historico .card-body {
  padding: 1rem 1rem 0.9rem;
  gap: 0.9rem !important;
}

.comparador-slot--historico .comparador-slot__cabecera {
  gap: 6px;
}

.comparador-slot--historico .comparador-slot__indice {
  margin-bottom: 0;
  font-size: 0.72rem;
}

.comparador-slot--historico .comparador-slot__titulo {
  font-size: 1.05rem;
}

.comparador-slot--historico .comparador-slot__detalle {
  line-height: 1.45;
  margin-top: 0 !important;
}

.comparador-slot--historico .btn {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}

.comparador-selector__filtros {
  border-top: 1px solid var(--borde);
  padding-top: 12px;
}

.comparador-selector__filtros summary {
  width: max-content;
  max-width: 100%;
  color: var(--texto);
  font-weight: 700;
  cursor: pointer;
}

.comparador-selector__filtros summary:focus-visible {
  outline: 2px solid var(--interaccion-hover);
  outline-offset: 4px;
}

.comparador-selector__tarjetas {
  display: none;
}

.comparador-selector__tecnico {
  margin-top: 5px;
  color: var(--texto-suave);
  font-size: 0.78rem;
}

.comparador-selector__tecnico summary {
  width: max-content;
  max-width: 100%;
  cursor: pointer;
}

.comparador-selector__tecnico small {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
  .comparador-selector__dialogo .modal-header {
    padding-block: 14px;
  }

  .comparador-selector__dialogo .modal-header p {
    font-size: 0.86rem;
    line-height: 1.35;
  }

  .comparador-selector__tabla {
    display: none;
  }

  .comparador-selector__tarjetas {
    display: grid;
    gap: 10px;
  }

  .comparador-selector__tarjeta {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie-2);
  }

  .comparador-selector__tarjeta-cabecera {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
  }

  .comparador-selector__tarjeta-cabecera strong {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .comparador-selector__tarjeta-cabecera .insignia-monitor {
    flex: 0 0 auto;
  }

  .comparador-selector__tarjeta-ubicacion {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    margin: 0;
    color: var(--texto-suave);
    font-size: 0.84rem;
  }

  .comparador-selector__tarjeta > .insignia-monitor {
    width: max-content;
    max-width: 100%;
  }

  .comparador-selector__tarjeta-detalles {
    color: var(--texto-suave);
    font-size: 0.8rem;
  }

  .comparador-selector__tarjeta-detalles summary {
    width: max-content;
    cursor: pointer;
  }

  .comparador-selector__tarjeta-detalles p {
    margin: 6px 0 0;
    overflow-wrap: anywhere;
  }

  .comparador-selector__tarjeta-accion {
    width: 100%;
    min-height: 44px;
  }

  .comparador-selector__paginacion-extremo {
    display: none;
  }
}

.hero-monitores__kpi-protocolo {
  flex: 1 1 160px;
  max-width: 220px;
  min-height: auto;
  padding: 12px 14px;
  gap: 6px;
  box-shadow: 0 8px 18px rgba(10, 25, 46, 0.12);
}

.hero-monitores__kpi-protocolo strong {
  font-size: 20px;
}

.hero-monitores__kpi-protocolo small {
  display: none;
}

.resumen-card {
  border-radius: 10px;
  overflow: hidden;
}

.resumen-card__body {
  display: grid;
  gap: 10px;
  min-height: 138px;
  padding: 18px;
  align-content: space-between;
}

.panel-etiqueta-icono {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.resumen-card__ayuda {
  display: inline-grid;
  width: 22px;
  height: 22px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--borde);
  border-radius: 50%;
  color: var(--texto-suave);
  background: transparent;
  font-size: 12px;
  line-height: 1;
  cursor: help;
}

.resumen-card__ayuda:hover,
.resumen-card__ayuda:focus-visible {
  border-color: currentColor;
  color: var(--texto);
}

.resumen-card strong {
  font-size: 28px;
  line-height: 1.15;
}

.resumen-card small {
  font-size: 13px;
  line-height: 1.45;
  color: var(--texto-suave);
}

.resumen-card--ok {
  border: 1px solid var(--borde);
  background: var(--superficie);
}

.resumen-card--ok .etiqueta {
  color: var(--estado-positivo);
}

.resumen-card--ok strong {
  color: var(--estado-positivo);
}

.resumen-card--advertencia {
  border: 1px solid var(--borde);
  background: var(--superficie);
}

.resumen-card--advertencia .etiqueta {
  color: var(--estado-advertencia);
}

.resumen-card--advertencia strong {
  color: var(--estado-advertencia);
}

.resumen-card--alerta {
  border: 1px solid var(--borde);
  background: var(--superficie);
}

.resumen-card--alerta .etiqueta {
  color: var(--estado-error);
}

.resumen-card--alerta strong {
  color: var(--estado-error);
}

.resumen-card--neutro {
  border: 1px solid var(--borde);
  background: var(--superficie);
}

.resumen-card--neutro .etiqueta {
  color: var(--texto-suave);
}

.resumen-card--neutro strong {
  color: var(--texto);
}

.resumen-card--suave {
  border: 1px solid var(--borde);
  background: var(--superficie);
}

.hero-etiquetas .insignia--ok {
  background: color-mix(in srgb, var(--estado-positivo) 32%, transparent);
  border-color: color-mix(in srgb, var(--estado-positivo) 58%, transparent);
  color: var(--hero-texto);
}

.hero-etiquetas .insignia--advertencia {
  background: color-mix(in srgb, var(--estado-advertencia) 30%, transparent);
  border-color: color-mix(in srgb, var(--estado-advertencia) 58%, transparent);
  color: var(--hero-texto);
}

.hero-etiquetas .insignia--alerta {
  background: color-mix(in srgb, var(--estado-error) 34%, transparent);
  border-color: color-mix(in srgb, var(--estado-error) 62%, transparent);
  color: var(--hero-texto);
}

.rejilla-acciones {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.tarjeta-accion {
  display: grid;
  gap: 10px;
  min-height: 154px;
  padding: 20px;
  text-decoration: none;
  color: inherit;
}

.tarjeta-accion__icono {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(82, 107, 132, 0.08);
  color: var(--acento);
  font-size: 18px;
}

.tarjeta-accion strong {
  font-size: 20px;
}

.tarjeta-accion span:last-child {
  color: var(--texto-suave);
  line-height: 1.45;
}

.tarjeta-accion.activa,
.tarjeta-accion:hover {
  border-color: rgba(82, 107, 132, 0.32);
  background: #fbfdfc;
}

.tarjeta {
  padding: 24px;
  min-width: 0;
}

.dashboard-alertas-operativas {
  display: grid;
  gap: 22px;
}

.dashboard-alerta-plataforma {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--estado-error) 42%, var(--borde));
  border-radius: 14px;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-error) 12%, var(--superficie)) 0%,
      color-mix(in srgb, var(--superficie) 96%, var(--fondo)) 62%
    );
  color: var(--texto);
}

.dashboard-alerta-plataforma__icono {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--estado-error) 14%, var(--superficie));
  color: var(--estado-error);
  font-size: 20px;
}

.dashboard-alerta-plataforma__contenido {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.dashboard-alerta-plataforma__contenido h3,
.dashboard-alerta-plataforma__contenido p {
  margin: 0;
}

.dashboard-alerta-plataforma__contenido h3 {
  color: var(--estado-error);
  font-size: 18px;
}

.dashboard-alerta-plataforma__contenido p {
  color: var(--texto-suave);
  line-height: 1.5;
}

.dashboard-alerta-plataforma__contenido p strong {
  color: var(--texto);
}

.dashboard-alertas-descartadas {
  display: grid;
  gap: 14px;
  border: 1px dashed color-mix(in srgb, var(--estado-advertencia) 34%, var(--borde));
  border-radius: 14px;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-advertencia) 10%, var(--superficie)) 0%,
      color-mix(in srgb, var(--superficie) 96%, var(--fondo)) 56%
    ),
    radial-gradient(circle at top right, color-mix(in srgb, var(--estado-advertencia) 12%, transparent), transparent 34%);
}

.dashboard-alertas-descartadas__cabecera {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  padding: 18px;
  cursor: pointer;
  list-style: none;
}

.dashboard-alertas-descartadas__cabecera::-webkit-details-marker {
  display: none;
}

.dashboard-alertas-descartadas__acciones {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dashboard-alertas-descartadas__chevron {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--estado-advertencia) 10%, transparent);
  color: var(--estado-advertencia);
  transition: transform 0.18s ease;
}

.dashboard-alertas-descartadas[open] .dashboard-alertas-descartadas__chevron {
  transform: rotate(180deg);
}

.alerta-descartada-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.dashboard-alertas-descartadas__lista {
  display: grid;
  gap: 12px;
  padding: 0 18px 18px;
}

.alerta-descartada-card {
  padding: 16px;
  border: 1px solid color-mix(in srgb, var(--estado-advertencia) 22%, var(--borde));
  border-radius: 12px;
  background: var(--superficie);
}

.alerta-descartada-card__principal {
  display: grid;
  gap: 10px;
  min-width: min(100%, 320px);
}

.alerta-descartada-card__acciones {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.dashboard-descarte-motivo {
  max-width: 760px;
  margin: 0;
  color: var(--texto);
  line-height: 1.5;
}

.dashboard-descarte-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  color: var(--texto-suave);
  font-size: 12px;
}

.fila-encabezado {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.configuracion-portal {
  gap: 24px;
}

.configuracion-portal__hero .hero-monitores__kpis {
  align-content: stretch;
}

.configuracion-portal__ancla {
  text-decoration: none;
  transition:
    transform 140ms ease,
    background-color 140ms ease,
    border-color 140ms ease;
}

.configuracion-portal__ancla:hover,
.configuracion-portal__ancla:focus {
  color: #f4faf8;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
  outline: none;
}

.configuracion-portal__flash {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  border: 1px solid transparent;
}

.configuracion-portal__flash > i {
  margin-top: 2px;
  font-size: 18px;
}

.configuracion-portal__flash strong {
  display: block;
  margin-bottom: 2px;
}

.configuracion-portal__flash p {
  margin: 0;
}

.configuracion-portal__seccion {
  display: grid;
  gap: 20px;
  min-width: 0;
  scroll-margin-top: 96px;
}

.correo-verificacion__confirmacion {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding-left: 0;
}

.correo-verificacion__confirmacion .form-check-input {
  float: none;
  flex: 0 0 1.25rem;
  width: 1.25rem;
  height: 1.25rem;
  min-height: 1.25rem;
  margin: .15rem 0 0;
  padding: 0;
}

.correo-verificacion__confirmacion .form-check-label {
  min-width: 0;
  line-height: 1.45;
}

.configuracion-portal__cabecera-seccion {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--borde);
}

.configuracion-red-federada[data-estado="activa"] [data-red-publica-estado],
.configuracion-red-federada[data-estado="solo-emision"] [data-red-publica-estado],
.configuracion-red-federada[data-estado="preparada"] [data-red-publica-estado] {
  background: color-mix(in srgb, var(--estado-positivo) 9%, transparent);
  color: var(--estado-positivo);
  border-color: color-mix(in srgb, var(--estado-positivo) 24%, transparent);
}

.configuracion-red-federada[data-estado="incompleta"] [data-red-publica-estado],
.configuracion-red-federada[data-estado="desactivada"] [data-red-publica-estado],
.configuracion-red-federada[data-estado="advertencia"] [data-red-publica-estado] {
  background: color-mix(in srgb, var(--estado-advertencia) 10%, transparent);
  color: var(--estado-advertencia);
  border-color: color-mix(in srgb, var(--estado-advertencia) 24%, transparent);
}

.configuracion-red-federada__resumen {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.configuracion-red-federada__dato {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
}

.configuracion-red-federada__dato strong,
.configuracion-red-federada__dato small {
  overflow-wrap: anywhere;
}

.configuracion-red-federada__dato small,
.configuracion-red-federada__responsabilidad {
  color: var(--texto-suave);
}

.configuracion-red-federada__proxies,
.configuracion-red-federada__advertencias {
  display: grid;
  gap: 10px;
}

.configuracion-red-federada__advertencias:empty {
  display: none;
}

.configuracion-red-federada__advertencia {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0;
}

.configuracion-red-federada__responsabilidad {
  margin: 0;
}

.tabla-configuracion {
  display: grid;
  gap: 12px;
}

.tabla-configuracion--compacta {
  margin-top: 24px;
}

.fila-configuracion {
  display: grid;
  grid-template-columns: minmax(180px, 1.1fr) minmax(240px, 1.2fr) minmax(220px, 1.4fr) auto;
  gap: 16px;
  align-items: start;
  padding: 16px 0;
  border-top: 1px solid var(--borde);
}

.tabla-configuracion--portal {
  gap: 14px;
  min-width: 0;
}

.configuracion-portal__busqueda {
  display: grid;
  gap: 8px;
  max-width: 560px;
  min-width: 0;
}

.configuracion-portal__busqueda label {
  font-weight: 700;
}

.configuracion-portal__busqueda input {
  width: 100%;
  min-width: 0;
}

.configuracion-portal__grupos {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.configuracion-portal__grupo {
  min-width: 0;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
}

.configuracion-portal__grupo > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px;
  cursor: pointer;
  list-style: none;
}

.configuracion-portal__grupo > summary::-webkit-details-marker {
  display: none;
}

.configuracion-portal__grupo > summary span {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.configuracion-portal__grupo > summary small {
  color: var(--texto-suave);
}

.configuracion-portal__grupo > summary .bi {
  flex: none;
  transition: transform .2s ease;
}

.configuracion-portal__grupo[open] > summary .bi {
  transform: rotate(180deg);
}

.configuracion-portal__grupo > .tabla-configuracion {
  padding: 0 16px 16px;
}

.configuracion-portal__grupo[hidden],
.configuracion-portal__grupo .fila-configuracion[hidden] {
  display: none;
}

.configuracion-portal__grupo .fila-configuracion,
.configuracion-portal__grupo .formulario-inline,
.configuracion-portal__grupo .formulario-inline > * {
  min-width: 0;
}

.configuracion-portal__grupo input,
.configuracion-portal__grupo select,
.configuracion-portal__grupo textarea {
  max-width: 100%;
}

.configuracion-portal__grupo code {
  overflow-wrap: anywhere;
}

.fila-configuracion--portal,
.fila-configuracion--correo {
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 14px;
  background: var(--superficie-2);
  color: var(--texto);
  box-shadow: 0 8px 22px rgba(20, 42, 73, 0.05);
}

.fila-configuracion--portal:hover,
.fila-configuracion--correo:hover {
  border-color: var(--borde-fuerte);
  box-shadow: 0 14px 30px rgba(20, 42, 73, 0.08);
}

.fila-configuracion--actualizada {
  border-color: color-mix(in srgb, var(--estado-positivo) 44%, var(--borde));
  background: color-mix(in srgb, var(--estado-positivo) 8%, var(--superficie-2));
  box-shadow: 0 16px 34px color-mix(in srgb, var(--estado-positivo) 14%, transparent);
}

.fila-configuracion--solo-lectura {
  background: var(--fondo-suave);
}

.fila-cabecera-configuracion {
  padding-top: 0;
  border-top: 0;
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.celda-clave {
  display: grid;
  gap: 8px;
  align-content: start;
}

.celda-clave strong {
  overflow-wrap: anywhere;
}

.etiqueta-secundaria {
  color: var(--texto-suave);
  font-size: 12px;
}

.fila-monitor__etiquetas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fila-monitor__etiquetas--separadas {
  margin-bottom: 12px;
}

.fila-monitor--advertencia {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--estado-advertencia) 24%, transparent) 0,
      color-mix(in srgb, var(--estado-advertencia) 24%, transparent) 6px,
      transparent 6px
    ),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--estado-advertencia) 8%, transparent) 0%,
      transparent 100%
    );
}

.fila-monitor--alerta {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--estado-error) 30%, transparent) 0,
      color-mix(in srgb, var(--estado-error) 30%, transparent) 6px,
      transparent 6px
    ),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--estado-error) 9%, transparent) 0%,
      transparent 100%
    );
}

.insignia-monitor {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid transparent;
}

.insignia-monitor--ping {
  background: #e7f4f1;
  color: #15695b;
  border-color: rgba(21, 105, 91, 0.16);
}

.insignia-monitor--tcp {
  background: #eef3ff;
  color: #365ea8;
  border-color: rgba(54, 94, 168, 0.16);
}

.insignia-monitor--booleano {
  background: #edf4fc;
  color: #255d98;
  border-color: rgba(18, 107, 96, 0.18);
}

.insignia-monitor--telemetria {
  background: #e1f5fb;
  color: #07677f;
  border-color: rgba(7, 103, 127, 0.2);
}

.insignia-monitor--base {
  background: #f2f6f5;
  color: #465a56;
  border-color: rgba(70, 90, 86, 0.18);
}

.insignia-monitor--api,
.insignia-monitor--correo {
  background: color-mix(in srgb, var(--acento) 10%, var(--superficie));
  color: var(--acento-fuerte);
  border-color: color-mix(in srgb, var(--acento) 24%, var(--borde));
}

.insignia-monitor--dns {
  background: color-mix(in srgb, var(--acento) 10%, var(--superficie));
  color: var(--acento-fuerte);
  border-color: color-mix(in srgb, var(--acento) 24%, var(--borde));
}

.insignia-monitor--suave {
  background: var(--superficie-2);
  color: var(--texto-suave);
  border-color: var(--borde);
}

.insignia-monitor--ok {
  background: color-mix(in srgb, var(--estado-positivo) 9%, transparent);
  color: var(--estado-positivo);
  border-color: color-mix(in srgb, var(--estado-positivo) 24%, transparent);
}

.insignia-monitor--off {
  background: color-mix(in srgb, var(--estado-error) 8%, transparent);
  color: var(--estado-error);
  border-color: color-mix(in srgb, var(--estado-error) 24%, transparent);
}

.insignia-monitor--advertencia {
  background: color-mix(in srgb, var(--estado-advertencia) 10%, transparent);
  color: var(--estado-advertencia);
  border-color: color-mix(in srgb, var(--estado-advertencia) 24%, transparent);
}

.insignia-monitor--alerta {
  background: color-mix(in srgb, var(--estado-error) 10%, transparent);
  color: var(--estado-error);
  border-color: color-mix(in srgb, var(--estado-error) 24%, transparent);
}

.formulario-inline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.descripcion-configuracion {
  margin: 0 0 8px;
  color: var(--texto);
  line-height: 1.45;
}

.metadatos-configuracion {
  display: grid;
  gap: 6px;
  color: var(--texto-suave);
  font-size: 13px;
}

.chips-monitor {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 6px;
}

.chip-monitor {
  display: grid;
  gap: 3px;
  min-width: 96px;
  padding: 10px 12px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.chip-monitor small {
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  text-transform: uppercase;
}

.chip-monitor strong {
  color: var(--texto);
  font-size: 14px;
  line-height: 1.3;
}

.chip-monitor--primario {
  border-color: color-mix(in srgb, var(--acento) 28%, var(--borde));
  background: var(--acento-suave);
}

.chip-monitor--primario small,
.chip-monitor--primario strong {
  color: var(--acento-fuerte);
}

.monitores-tabla__tipo-detalle {
  display: block;
  margin-top: 5px;
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
}

.monitores-tabla__tipo {
  text-align: center;
}

.monitores-tabla__estado,
.monitores-tabla__runtime {
  text-align: center;
}

.monitor-tooltip-denso__grid--logico {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(82, 107, 132, 0.12);
}

.monitor-logico-detalle {
  display: grid;
  gap: 18px;
  border-color: var(--borde);
  background: var(--superficie);
  color: var(--texto);
}

.monitor-logico-detalle__principal {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(0, 1.1fr);
  gap: 18px;
  align-items: stretch;
}

.monitor-logico-detalle__expresion,
.monitor-logico-detalle__grid article {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: var(--superficie-2);
}

.monitor-logico-detalle__expresion strong {
  display: block;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.1;
}

.monitor-logico-detalle__expresion code {
  display: inline-block;
  max-width: 100%;
  background: var(--acento-suave);
  color: var(--acento-fuerte);
  font-size: inherit;
  line-height: inherit;
  overflow-wrap: anywhere;
  white-space: normal;
}

.monitor-logico-detalle__kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.monitor-logico-detalle__kpis .kpi-resumen {
  min-width: 0;
}

.monitor-logico-detalle__kpis .kpi-resumen strong {
  overflow-wrap: anywhere;
}

.monitor-logico-detalle__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.8fr) minmax(0, 1fr);
  gap: 12px;
}

.monitor-logico-detalle__grid h3 {
  margin: 0;
  color: var(--texto);
  font-size: 17px;
}

.monitor-logico-detalle__dependencias {
  display: grid;
  gap: 8px;
}

.monitor-logico-detalle__dependencias div {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
}

.monitor-logico-detalle__dependencias span {
  grid-row: span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: var(--acento-suave);
  color: var(--acento-fuerte);
  font-weight: 900;
}

.monitor-logico-detalle__dependencias strong {
  color: var(--texto);
}

.monitor-logico-detalle__dependencias small {
  color: var(--texto-suave);
}

.bloque-listas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.lista-simple {
  margin: 10px 0 0;
  padding-left: 18px;
  color: var(--texto-suave);
}

.lista-simple li + li {
  margin-top: 6px;
}

.formulario-organizacion,
.formulario-organizacion-lista {
  display: grid;
  gap: 12px;
}

.formulario-organizacion-lista {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}

.organizacion-formulario-detalle {
  margin-top: 28px;
}

.organizacion-formulario-detalle__seccion {
  min-width: 0;
}

.organizacion-formulario-detalle__seccion +
.organizacion-formulario-detalle__seccion {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--borde);
}

.organizacion-formulario-detalle__cabecera {
  display: grid;
  gap: 4px;
  margin-bottom: 16px;
}

.organizacion-formulario-detalle__cabecera h3 {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--texto);
  font-size: 1.05rem;
}

.organizacion-formulario-detalle__cabecera p {
  margin: 0;
  color: var(--texto-suave);
  font-size: 0.9rem;
}

.acciones-formulario--sticky.organizacion-formulario-detalle__acciones {
  position: static;
}

.organizacion-formulario-detalle__acciones .acciones-formulario__estado {
  margin-right: auto;
}

.organizacion-formulario-detalle__acciones .acciones-formulario__botones {
  margin-left: auto;
}

.organizacion-formulario-detalle__acciones .btn-primary:disabled {
  opacity: 0.48;
  filter: saturate(0.25);
}

@media (max-width: 767.98px) {
  .acciones-formulario--sticky.organizacion-formulario-detalle__acciones {
    position: sticky;
    bottom: 14px;
  }

  .organizacion-formulario-detalle__acciones .acciones-formulario__botones {
    margin-left: 0;
  }
}

.organizacion-formulario-detalle__contador {
  color: var(--texto-suave);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
}

.organizacion-formulario-detalle__advertencia {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--estado-advertencia) 35%, var(--borde));
  border-radius: 10px;
  background: color-mix(in srgb, var(--estado-advertencia) 10%, var(--superficie));
  color: var(--texto);
}

.organizacion-formulario-detalle__advertencia > i {
  color: var(--estado-advertencia);
}

.organizacion-formulario-detalle__advertencia[hidden] {
  display: none;
}

.formulario-busqueda {
  display: grid;
  grid-template-columns: minmax(240px, 320px) auto;
  gap: 12px;
  align-items: start;
}

.barra-listado {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  margin-bottom: 16px;
}

.rejilla-filtros-listado {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.monitores-filtros-activos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.monitores-filtros-activos[hidden] {
  display: none;
}

.monitores-filtro-activo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  min-height: 32px;
  padding: 4px 10px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto);
  font-size: 13px;
  text-align: left;
  overflow-wrap: anywhere;
}

.monitores-filtro-activo:hover,
.monitores-filtro-activo:focus-visible {
  border-color: var(--acento);
}

.filtro-orden-listado {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.filtro-orden-listado__direccion {
  display: flex;
  flex-direction: column;
}

.filtro-orden-listado__boton {
  display: inline-grid;
  min-width: 46px;
  min-height: 44px;
  padding: 0;
  place-items: center;
}

.rejilla-filtros-listado--principal {
  grid-template-columns: minmax(160px, 180px) minmax(160px, 180px) minmax(320px, 1fr);
  align-items: start;
}

.rejilla-filtros-listado--secundaria {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.campo-monitor-destacado {
  display: grid;
  gap: 8px;
  align-self: start;
}

.bloque-historico {
  display: grid;
  gap: 18px;
}

.bloque-historico[hidden],
.paginador-listado[hidden] {
  display: none !important;
}

.historico-filtros__tipo-estado {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.historico-filtros-avanzados {
  min-width: 0;
  border: 1px solid var(--borde);
  border-radius: 8px;
}

.historico-filtros-avanzados > summary,
.historico-fila__detalles > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  list-style: none;
  cursor: pointer;
  font-weight: 700;
}

.historico-filtros-avanzados > summary::-webkit-details-marker,
.historico-fila__detalles > summary::-webkit-details-marker {
  display: none;
}

.historico-filtros-avanzados > summary {
  padding: 12px 14px;
}

.historico-filtros-avanzados[open] > summary i,
.historico-fila__detalles[open] > summary i {
  transform: rotate(180deg);
}

.historico-filtros-avanzados > .rejilla-filtros-listado {
  padding: 4px 14px 14px;
}

.historico-filtros-activos {
  min-width: 0;
  padding: 10px 12px;
  border-top: 1px solid var(--borde);
}

.fila-monitor.fila-monitor--historico {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  gap: 12px 20px;
}

.historico-fila__identidad,
.historico-fila__periodo {
  min-width: 0;
}

.historico-fila__mensaje {
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.4;
}

.historico-fila__periodo {
  display: grid;
  gap: 5px;
  color: var(--texto-suave);
  font-size: 13px;
}

.historico-fila__periodo strong {
  color: var(--texto);
  font-weight: 600;
}

.historico-fila__acciones .btn {
  white-space: nowrap;
}

.historico-fila__detalles {
  grid-column: 1 / -1;
  min-width: 0;
}

.historico-fila__detalles > summary {
  width: fit-content;
  min-height: 32px;
  color: var(--texto-suave);
  font-size: 12px;
}

.historico-fila__tecnicos {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px 16px;
  padding: 10px 0 4px;
}

.historico-fila__tecnicos span,
.historico-fila__tecnicos code {
  min-width: 0;
  overflow-wrap: anywhere;
}

.bloque-historico__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.bloque-historico__cabecera > div {
  min-width: 0;
  max-width: 100%;
}

.bloque-historico__cabecera h3 {
  margin: 0;
  font-size: 18px;
}

.bloque-historico__acciones-rapidas {
  display: grid;
  gap: 10px;
  justify-items: start;
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 991.98px) {
  .fila-monitor.fila-monitor--historico {
    grid-template-columns: minmax(0, 1fr);
  }

  .historico-fila__tecnicos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .historico-filtros__tipo-estado,
  .historico-fila__tecnicos {
    grid-template-columns: minmax(0, 1fr);
  }

  .bloque-historico__acciones-rapidas > div {
    max-width: 100%;
  }
}

.historico-lista-estado {
  display: grid;
  gap: 12px;
}

.campo-fijo {
  display: grid;
  gap: 6px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.campo-fijo strong {
  font-size: 15px;
}

.barra-acciones-filtros {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
  margin-bottom: 18px;
}

.barra-acciones-filtros--tendencia {
  align-items: flex-start;
}

.acciones-tendencia__grupo {
  display: grid;
  gap: 5px;
  padding-left: 12px;
  border-left: 1px solid var(--borde);
}

.acciones-tendencia__etiqueta {
  color: var(--texto-suave);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.acciones-tendencia__botones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.acciones-tendencia__ayuda {
  max-width: 270px;
  color: var(--texto-suave);
  font-size: 0.78rem;
  line-height: 1.35;
}

.monitor-detalle__plegable {
  overflow: hidden;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie-1);
}

.monitor-detalle__plegable > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  cursor: pointer;
  list-style: none;
}

.monitor-detalle__plegable > summary::-webkit-details-marker {
  display: none;
}

.monitor-detalle__plegable > summary strong,
.monitor-detalle__plegable > summary small {
  display: block;
}

.monitor-detalle__plegable > summary small {
  margin-top: 3px;
  color: var(--texto-suave);
}

.monitor-detalle__plegable > summary > i {
  color: var(--texto-suave);
  transition: transform 160ms ease;
}

.monitor-detalle__plegable[open] > summary {
  border-bottom: 1px solid var(--borde);
}

.monitor-detalle__plegable[open] > summary > i {
  transform: rotate(180deg);
}

.monitor-detalle__plegable-contenido {
  border: 0;
  border-radius: 0;
}

.openapi-swagger-shell {
  padding: 0;
  overflow: hidden;
  background: #fff;
}

html[data-theme="dark"] .tarjeta.openapi-swagger-shell {
  background-color: #fff;
  color: #1f2937;
  color-scheme: light;
}

.openapi-swagger-shell #swagger-ui {
  min-height: 70vh;
}

.openapi-swagger-shell .swagger-ui {
  font-family: inherit;
}

.openapi-swagger-shell .swagger-ui .topbar {
  display: none;
}

.openapi-swagger-shell .swagger-ui code,
.openapi-swagger-shell .swagger-ui pre,
.openapi-swagger-shell .swagger-ui pre *,
.openapi-swagger-shell .swagger-ui .microlight,
.openapi-swagger-shell .swagger-ui .microlight * {
  text-shadow: none;
}

.openapi-swagger-shell .swagger-ui .highlight-code,
.openapi-swagger-shell .swagger-ui .model-example {
  color: #ecf7f3;
  background: #172124 !important;
}

.openapi-swagger-shell .swagger-ui .highlight-code pre,
.openapi-swagger-shell .swagger-ui .highlight-code code,
.openapi-swagger-shell .swagger-ui .highlight-code span,
.openapi-swagger-shell .swagger-ui .microlight,
.openapi-swagger-shell .swagger-ui .microlight code,
.openapi-swagger-shell .swagger-ui .microlight span {
  background: transparent !important;
}

.openapi-swagger-shell .swagger-ui .highlight-code code,
.openapi-swagger-shell .swagger-ui .microlight {
  color: #f4fbf8 !important;
}

.openapi-swagger-shell .swagger-ui .microlight .hljs-string,
.openapi-swagger-shell .swagger-ui .microlight .hljs-attr {
  color: #8ff0aa !important;
}

.openapi-swagger-shell .swagger-ui .microlight .hljs-number,
.openapi-swagger-shell .swagger-ui .microlight .hljs-literal {
  color: #ff8d8d !important;
}

.openapi-swagger-shell ::selection,
.openapi-swagger-shell textarea::selection,
.openapi-swagger-shell pre::selection,
.openapi-swagger-shell code::selection,
.openapi-swagger-shell .microlight::selection,
.openapi-swagger-shell .microlight *::selection {
  color: #03120f;
  background: #b8ffd2;
}

@media (max-width: 991.98px) {
  .rejilla-filtros-listado--principal {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }

  .rejilla-filtros-listado--secundaria {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .rejilla-filtros-listado--secundaria {
    grid-template-columns: minmax(0, 1fr);
  }
}

.fila-encabezado--compacta {
  margin-bottom: 18px;
}

.acciones-lista {
  display: grid;
  align-content: start;
  gap: 10px;
}

.rejilla-formulario {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

[data-trigger-form],
[data-trigger-form] .bloque-configuracion-monitor,
[data-trigger-form] .bloque-configuracion-monitor__cabecera,
[data-trigger-form] .bloque-configuracion-monitor__tipo {
  grid-template-columns: minmax(0, 1fr);
}

.rejilla-formulario--scope {
  margin-top: 6px;
}

.scope-select-ayuda {
  display: block;
}

.scope-select-ayuda__texto {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.45;
}

.scope-select-ayuda--bloqueado {
  cursor: not-allowed;
}

.scope-select-ayuda--bloqueado select:disabled {
  cursor: not-allowed;
}

.form-control-invalido {
  border-color: rgba(147, 74, 74, 0.58) !important;
  box-shadow: 0 0 0 0.18rem rgba(147, 74, 74, 0.12);
}

.form-feedback {
  margin-top: 6px;
  color: var(--error-texto);
  font-size: 13px;
  line-height: 1.4;
}

.card-validacion-error {
  border: 1px solid rgba(147, 74, 74, 0.18) !important;
  box-shadow: 0 14px 34px rgba(147, 74, 74, 0.08);
  scroll-margin-top: 120px;
}

.card-validacion-error .card-header {
  background: rgba(253, 234, 234, 0.92) !important;
}

.rejilla-formulario--tecnica {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.monitor-formulario-hero {
  overflow: hidden;
}

.monitor-formulario-hero .hero-operativo__cuerpo {
  padding: 28px !important;
}

.monitor-formulario-hero .hero-monitores__contenido {
  grid-template-columns: 1fr;
  gap: 18px;
}

.monitor-formulario-hero .hero-operativo__textos {
  max-width: 100%;
}

.monitor-formulario-hero h1 {
  max-width: 920px;
  margin-bottom: 10px;
  font-size: clamp(28px, 2.4vw, 40px);
}

.monitor-formulario-hero p {
  max-width: 920px;
  margin-bottom: 14px;
}

.monitor-formulario-hero__insignia {
  align-self: start;
}

.monitor-formulario-hero__acciones {
  margin-top: 8px;
}

.monitor-formulario__resumen {
  height: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.monitor-formulario__resumen-card {
  min-height: 92px;
  padding: 12px;
  gap: 6px;
}

.monitor-formulario__resumen-cabecera {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.monitor-formulario__resumen-cabecera i {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  color: var(--acento);
  font-size: 14px;
}

.monitor-formulario__resumen-card strong {
  display: -webkit-box;
  overflow: hidden;
  font-size: clamp(18px, 1.5vw, 24px);
  line-height: 1.1;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.monitor-formulario__resumen-card small {
  display: -webkit-box;
  overflow: hidden;
  font-size: 12px;
  line-height: 1.35;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

@media (max-width: 1320px) {
  .monitor-formulario__resumen {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.monitor-formulario__scope {
  margin-top: 4px;
}

.monitor-formulario__scope-fijado {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.35;
}

.monitor-formulario__scope-fijado i {
  color: var(--acento);
}

.monitor-formulario__scope-resumen {
  margin: 0;
}

.bloque-configuracion-monitor {
  display: grid;
  gap: 18px;
  padding: 20px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.bloque-configuracion-monitor__cabecera,
.bloque-configuracion-monitor__tipo {
  display: grid;
  gap: 12px;
}

.bloque-configuracion-monitor__cabecera h3,
.bloque-configuracion-monitor__tipo h3 {
  margin: 0;
  font-size: 18px;
}

.monitor-formulario__tipo {
  padding: 16px;
  border: 1px dashed rgba(82, 107, 132, 0.18);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.72);
}

.monitor-formulario__subcabecera {
  display: grid;
  gap: 4px;
}

.campo-checkbox {
  display: flex;
  align-items: end;
}

.etiqueta-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
}

.etiqueta-checkbox input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.monitor-formulario__nota-tecnica {
  color: var(--texto-suave);
}

.monitor-formulario__nota-tecnica code {
  color: var(--acento);
}

.campo-etiqueta-ayuda {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.campo-etiqueta-ayuda .usuario-permiso-item__ayuda {
  width: 24px;
  height: 24px;
  font-size: 12px;
}

.telemetria-temporal__etiqueta {
  flex-wrap: nowrap;
  gap: 6px;
}

.telemetria-temporal__etiqueta > span:first-child {
  min-width: 0;
}

.telemetria-temporal__etiqueta .usuario-permiso-item__ayuda {
  flex: 0 0 24px;
}

.telemetria-temporal__ayuda-inline {
  display: inline-flex;
  vertical-align: middle;
}

.monitor-formulario__tiempo-ayuda,
.monitor-formulario__texto-ayuda {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.monitor-formulario__impacto-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  min-width: 0;
}

.monitor-formulario__impacto-grid .kpi-resumen {
  min-height: 148px;
  min-width: 0;
}

.monitor-formulario__impacto-grid .kpi-resumen strong {
  overflow-wrap: anywhere;
}

/* Telemetría se configura en el mismo orden en que el operador toma decisiones. */
.monitor-formulario--telemetria .monitor-formulario__flujo {
  display: flex !important;
  flex-direction: column;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="identidad"] {
  order: 1;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="comprobacion"] {
  order: 2;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="programacion"] {
  order: 3;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="contexto"] {
  order: 4;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="alcance"] {
  order: 5;
}

.monitor-formulario--telemetria [data-monitor-form-seccion="impacto"] {
  order: 6;
}

.monitor-formulario--telemetria .acciones-formulario--sticky {
  order: 7;
}

.monitor-formulario--telemetria .monitor-formulario__impacto-grid .kpi-resumen {
  min-height: 0;
  padding: 16px;
}

.monitor-formulario__alertas {
  margin: 0;
}

.monitor-formulario__alertas ul {
  margin-top: 8px;
  padding-left: 18px;
}

.monitor-formulario__alertas li + li {
  margin-top: 6px;
}

.monitor-logico-entrada {
  background:
    radial-gradient(circle at 10% 20%, rgba(82, 107, 132, 0.12), transparent 28%),
    linear-gradient(135deg, rgba(240, 250, 247, 0.96), rgba(255, 255, 255, 0.98));
  border: 1px solid rgba(82, 107, 132, 0.14) !important;
}

.monitor-logico-entrada__icono {
  background: rgba(82, 107, 132, 0.1);
  color: #255d98;
}

.monitor-logico-entrada--seleccionada {
  border-color: rgba(82, 107, 132, 0.32) !important;
  box-shadow: 0 16px 40px rgba(17, 94, 89, 0.12) !important;
}

.monitor-logico-selector__fila--seleccionada {
  background: linear-gradient(90deg, rgba(236, 253, 245, 0.78), rgba(255, 255, 255, 0.94));
}

.monitor-logico-selector__fila--seleccionada td {
  border-color: rgba(82, 107, 132, 0.18);
}

.monitor-logico-selector__seleccion {
  margin-left: 8px;
  white-space: nowrap;
}

.monitor-logico-constructor {
  display: grid;
  gap: 16px;
  padding: 16px;
  border: 1px solid rgba(82, 107, 132, 0.14);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(240, 250, 247, 0.96), rgba(255, 255, 255, 0.98));
}

.monitor-logico-constructor__cabecera,
.monitor-logico-traduccion {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.monitor-logico-constructor__grid {
  display: grid;
  grid-template-columns: minmax(180px, 0.75fr) minmax(260px, 1fr);
  gap: 16px;
}

.monitor-logico-constructor__grupo {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.monitor-logico-constructor__etiqueta {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.monitor-logico-token {
  min-width: 44px;
  border-radius: 999px;
  font-weight: 800;
}

.monitor-logico-traduccion {
  padding-top: 14px;
  border-top: 1px solid rgba(82, 107, 132, 0.12);
}

.monitor-logico-traduccion__lista {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.monitor-logico-traduccion__lista div {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  align-items: flex-start;
}

.monitor-logico-traduccion__lista dt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 12px;
  background: rgba(82, 107, 132, 0.12);
  color: #255d98;
  font-weight: 900;
}

.monitor-logico-traduccion__lista dd {
  display: flex;
  gap: 2px;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0;
  color: var(--texto-suave);
  font-size: 13px;
}

.monitor-logico-traduccion__contenido {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.monitor-logico-traduccion__lista dd strong {
  color: var(--texto-principal);
  font-size: 14px;
}

.monitor-logico-traduccion__fila--reservada {
  opacity: 0.58;
}

.monitor-logico-equivalencias {
  display: grid;
  gap: 6px;
  min-width: 220px;
}

.monitor-logico-equivalencias div {
  display: grid;
  grid-template-columns: minmax(54px, 1fr) auto minmax(70px, 1fr);
  gap: 8px;
  align-items: center;
  color: var(--texto-suave);
  font-size: 13px;
}

.monitor-logico-equivalencias code {
  display: inline-flex;
  justify-content: center;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(82, 107, 132, 0.08);
  color: #255d98;
}

.monitor-logico-plan {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(82, 107, 132, 0.16);
  border-radius: 18px;
  background:
    radial-gradient(circle at 100% 0%, rgba(82, 107, 132, 0.12), transparent 30%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(240, 250, 247, 0.95));
}

.monitor-logico-plan__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.monitor-logico-plan__estado {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  padding: 8px 12px;
  border: 1px solid rgba(94, 105, 113, 0.22);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.8);
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 800;
}

.monitor-logico-plan__estado--ok {
  border-color: rgba(82, 107, 132, 0.28);
  background: rgba(217, 244, 235, 0.78);
  color: #255d98;
}

.monitor-logico-plan__estado--alerta {
  border-color: rgba(180, 83, 9, 0.24);
  background: rgba(255, 237, 213, 0.82);
  color: #9a3412;
}

.monitor-logico-plan__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.monitor-logico-plan__item {
  display: grid;
  gap: 6px;
  min-height: 132px;
  padding: 14px;
  border: 1px solid rgba(82, 107, 132, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.76);
}

.monitor-logico-plan__item span {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.monitor-logico-plan__item strong {
  color: var(--texto-principal);
  font-size: 20px;
  line-height: 1.12;
}

.monitor-logico-plan__item small {
  color: var(--texto-suave);
  line-height: 1.35;
}

.monitor-logico-plan__notas {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.7fr);
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(82, 107, 132, 0.12);
}

.monitor-logico-plan__avisos {
  display: grid;
  gap: 6px;
  padding-left: 18px;
  color: var(--texto-suave);
}

.monitor-logico-impacto {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(82, 107, 132, 0.16);
  border-radius: 18px;
  background:
    radial-gradient(circle at 100% 12%, rgba(82, 107, 132, 0.11), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(245, 251, 249, 0.96));
}

.monitor-logico-impacto--warning {
  border-color: rgba(180, 83, 9, 0.28);
  background:
    radial-gradient(circle at 100% 12%, rgba(180, 83, 9, 0.12), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 251, 235, 0.95));
}

.monitor-logico-impacto--error {
  border-color: rgba(147, 74, 74, 0.3);
  background:
    radial-gradient(circle at 100% 12%, rgba(147, 74, 74, 0.12), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(254, 242, 242, 0.95));
}

.monitor-logico-impacto__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.monitor-logico-impacto__estado {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 128px;
  padding: 8px 12px;
  border: 1px solid rgba(82, 107, 132, 0.22);
  border-radius: 999px;
  background: rgba(217, 244, 235, 0.74);
  color: #255d98;
  font-size: 13px;
  font-weight: 800;
}

.monitor-logico-impacto--warning .monitor-logico-impacto__estado {
  border-color: rgba(180, 83, 9, 0.24);
  background: rgba(255, 237, 213, 0.82);
  color: #9a3412;
}

.monitor-logico-impacto--error .monitor-logico-impacto__estado {
  border-color: rgba(147, 74, 74, 0.24);
  background: rgba(254, 226, 226, 0.84);
  color: #934a4a;
}

.monitor-logico-impacto__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.monitor-logico-impacto__grid article {
  display: grid;
  gap: 6px;
  min-height: 120px;
  padding: 14px;
  border: 1px solid rgba(82, 107, 132, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.78);
}

.monitor-logico-impacto__grid span {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.monitor-logico-impacto__grid strong {
  color: var(--texto-principal);
  font-size: 20px;
  line-height: 1.12;
}

.monitor-logico-impacto__grid small {
  color: var(--texto-suave);
  line-height: 1.35;
}

.monitor-logico-impacto__listas {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(82, 107, 132, 0.12);
}

.monitor-logico-impacto__listas ul {
  display: grid;
  gap: 8px;
  margin: 8px 0 0;
  padding-left: 0;
  list-style: none;
}

.monitor-logico-impacto__item {
  padding: 10px 12px;
  border: 1px solid rgba(82, 107, 132, 0.12);
  border-radius: 12px;
  background: rgba(217, 244, 235, 0.5);
  color: #255d98;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.monitor-logico-impacto__item--warning {
  border-color: rgba(180, 83, 9, 0.2);
  background: rgba(255, 237, 213, 0.68);
  color: #9a3412;
}

.monitor-logico-impacto__item--error {
  border-color: rgba(147, 74, 74, 0.2);
  background: rgba(254, 226, 226, 0.72);
  color: #934a4a;
}

.monitor-logico-canvas {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid rgba(82, 107, 132, 0.16);
  border-radius: 18px;
  background:
    radial-gradient(circle at 15% 20%, rgba(82, 107, 132, 0.12), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(240, 250, 247, 0.95));
}

.monitor-logico-canvas__cabecera {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.monitor-logico-canvas__resumen {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.monitor-logico-canvas__resumen-item {
  display: grid;
  gap: 6px;
  padding: 14px;
  border: 1px solid rgba(82, 107, 132, 0.2);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 16px 34px rgba(17, 94, 89, 0.12);
  color: var(--texto);
}

.monitor-logico-canvas__resumen-item span {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.monitor-logico-canvas__resumen-item strong {
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.25;
}

.monitor-logico-canvas__ayuda {
  color: var(--texto-suave);
  font-size: 13px;
}

.monitor-logico-canvas__compatibilidad {
  display: grid;
  gap: 2px;
  padding: 12px 14px;
  border: 1px solid rgba(180, 83, 9, 0.2);
  border-radius: 14px;
  background: rgba(255, 247, 237, 0.84);
  color: #9a3412;
  font-size: 13px;
}

.monitor-logico-canvas__compatibilidad strong {
  color: #7c2d12;
}

.modal.show .modal-dialog.monitor-logico-estudio__dialog.modal-fullscreen {
  position: fixed;
  inset: 14px;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
}

.monitor-logico-estudio {
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border-radius: 18px;
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.28);
  background:
    radial-gradient(circle at 14% 10%, rgba(82, 107, 132, 0.12), transparent 24%),
    radial-gradient(circle at 90% 18%, rgba(37, 99, 235, 0.1), transparent 26%),
    linear-gradient(135deg, #f7fbf9, #eef6f3);
}

.monitor-logico-estudio__header,
.monitor-logico-estudio__footer {
  border-color: rgba(82, 107, 132, 0.16);
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(10px);
}

.monitor-logico-estudio__body {
  display: grid;
  grid-template-columns: minmax(250px, 280px) minmax(480px, 1fr) minmax(250px, 280px);
  gap: 18px;
  height: calc(100% - 142px);
  min-height: 0;
  padding: 18px 24px 24px 18px;
  overflow: hidden;
}

.monitor-logico-estudio__panel {
  align-self: stretch;
  max-height: 100%;
  overflow: auto;
  padding: 18px;
  border: 1px solid rgba(82, 107, 132, 0.16);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 22px 48px rgba(17, 94, 89, 0.1);
}

.monitor-logico-estudio__panel-etiqueta {
  display: block;
  margin-bottom: 6px;
  color: var(--acento);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.monitor-logico-estudio__panel-intro {
  margin: 0 0 16px;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.monitor-logico-estudio__puertas {
  display: grid;
  gap: 8px;
  margin: 18px 0;
  padding: 14px;
  border: 1px solid color-mix(in srgb, var(--acento) 26%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--acento) 7%, transparent);
}

.monitor-logico-estudio__puertas .monitor-logico-estudio__panel-etiqueta {
  margin: 0;
}

.monitor-logico-estudio__puertas .btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  text-align: left;
}

.monitor-logico-estudio__puerta-icono {
  display: inline-flex;
  flex: 0 0 auto;
  width: 28px;
  height: 24px;
  padding: 3px 4px;
  border-radius: 7px;
  background: rgba(236, 253, 245, 0.9);
  object-fit: contain;
}

.monitor-logico-estudio__panel hr {
  margin: 18px 0;
  border-color: rgba(82, 107, 132, 0.14);
  opacity: 1;
}

.monitor-logico-estudio__acciones-lienzo .monitor-logico-estudio__separador-accion {
  width: 100%;
  margin: 4px 0;
}

.monitor-logico-estudio__inspector {
  display: grid;
  align-content: start;
  gap: 0;
}

.monitor-logico-estudio__inspector-datos {
  display: grid;
  gap: 8px;
  margin: 0 0 16px;
}

.monitor-logico-estudio__inspector-datos > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(82, 107, 132, 0.12);
}

.monitor-logico-estudio__inspector-datos dt {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
}

.monitor-logico-estudio__inspector-datos dd {
  margin: 0;
  color: var(--texto);
  font-size: 13px;
  font-weight: 800;
  text-align: right;
}

.monitor-logico-estudio__acciones-lienzo .btn.active {
  border-color: var(--acento);
  background: var(--acento);
  color: #fff;
}

.monitor-logico-estudio__acciones-lienzo .monitor-logico-estudio__desconectar-activo {
  border-color: var(--estado-advertencia);
  background: var(--estado-advertencia);
  color: #1f2937;
  animation: monitor-logico-desconectar-latido 1.15s ease-in-out infinite;
}

@keyframes monitor-logico-desconectar-latido {
  0%,
  100% {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--estado-advertencia) 18%, transparent);
  }

  50% {
    box-shadow: 0 0 0 9px color-mix(in srgb, var(--estado-advertencia) 48%, transparent), 0 0 22px color-mix(in srgb, var(--estado-advertencia) 36%, transparent);
  }
}

.monitor-logico-estudio__ayuda {
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.monitor-logico-estudio__leyenda {
  display: grid;
  gap: 8px;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.35;
}

.monitor-logico-estudio__conexion-ayuda {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--texto);
  font-size: 13px;
}

.monitor-logico-estudio__info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--acento);
  font-size: 16px;
}

.monitor-logico-estudio__info:hover,
.monitor-logico-estudio__info:focus-visible {
  background: color-mix(in srgb, var(--acento) 12%, transparent);
  outline: none;
}

.monitor-logico-estudio__leyenda strong {
  color: var(--texto);
}

.monitor-logico-estudio__leyenda span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.monitor-logico-estudio__puerto-muestra {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.18);
}

.monitor-logico-estudio__puerto-muestra--entrada {
  background: #3f6b57;
}

.monitor-logico-estudio__puerto-muestra--salida {
  background: #934a4a;
}

.monitor-logico-estudio__lienzo-wrap {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
  min-width: 0;
  min-height: 0;
}

.monitor-logico-estudio__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(82, 107, 132, 0.14);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  color: var(--texto-suave);
  font-size: 14px;
}

.monitor-logico-estudio__compilacion {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  max-width: min(520px, 42vw);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.monitor-logico-estudio__compilacion-pill {
  overflow: hidden;
  max-width: 100%;
  padding: 7px 12px;
  border: 1px solid rgba(82, 107, 132, 0.18);
  border-radius: 999px;
  background: rgba(236, 253, 245, 0.82);
  color: #115e59;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.monitor-logico-estudio__compilacion-pill--sugerencia {
  border-color: rgba(180, 83, 9, 0.22);
  background: rgba(255, 247, 237, 0.92);
  color: #9a3412;
}

.monitor-logico-estudio__compilacion--error {
  border: 0;
  background: transparent;
}

.monitor-logico-estudio__compilacion-pill--error {
  display: inline-block;
  border: 1px solid rgba(185, 28, 28, 0.18);
  border-color: rgba(185, 28, 28, 0.18);
  background: rgba(254, 242, 242, 0.86);
  color: #991b1b;
}

.monitor-logico-estudio__lienzo {
  position: relative;
  min-height: 0;
  overflow: auto;
  border: 1px solid rgba(82, 107, 132, 0.18);
  border-radius: 24px;
  background:
    linear-gradient(rgba(82, 107, 132, 0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(82, 107, 132, 0.07) 1px, transparent 1px),
    rgba(255, 255, 255, 0.74);
  background-size: 32px 32px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42);
}

.monitor-logico-estudio__conexiones {
  position: absolute;
  inset: 0;
  width: 3280px;
  height: 1880px;
  min-width: 100%;
  min-height: 100%;
  pointer-events: none;
}

.monitor-logico-estudio__conexiones path {
  fill: none;
  stroke: rgba(18, 107, 96, 0.58);
  stroke-linecap: round;
  stroke-width: 3;
}

.monitor-logico-estudio__conexiones path.monitor-logico-estudio__conexion--ok {
  stroke: rgba(82, 107, 132, 0.78);
}

.monitor-logico-estudio__conexiones path.monitor-logico-estudio__conexion--alerta {
  stroke: rgba(185, 28, 28, 0.72);
}

.monitor-logico-estudio__conexiones path.monitor-logico-estudio__conexion--desconocida {
  stroke: rgba(100, 116, 139, 0.32);
  stroke-dasharray: 7 7;
}

.monitor-logico-estudio__nodos {
  position: relative;
  width: 3280px;
  height: 1880px;
  min-width: 100%;
  min-height: 100%;
  transform-origin: 0 0;
}

.monitor-logico-estudio__nodo {
  position: absolute;
  display: grid;
  gap: 4px;
  width: 230px;
  min-height: 86px;
  padding: 14px;
  border: 1px solid rgba(82, 107, 132, 0.22);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 38px rgba(17, 94, 89, 0.09);
  backdrop-filter: blur(3px);
  color: var(--texto);
  cursor: grab;
  text-align: left;
  touch-action: none;
  user-select: none;
}

.monitor-logico-estudio__nodo:focus-visible {
  outline: 3px solid rgba(37, 99, 235, 0.28);
  outline-offset: 4px;
}

.monitor-logico-estudio__nodo-contenido {
  display: grid;
  gap: 4px;
  pointer-events: none;
}

/* AND y OR admiten tres entradas: cada una conserva un halo táctil independiente. */
.monitor-logico-estudio__nodo--multientrada {
  min-height: 196px;
}

.monitor-logico-estudio__nodo--multientrada .monitor-logico-estudio__nodo-contenido {
  align-self: center;
}

.monitor-logico-estudio__nodo-principal {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.monitor-logico-estudio__simbolo {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 34px;
  padding: 4px 6px;
  border: 1px solid rgba(17, 94, 89, 0.2);
  border-radius: 12px;
  background: rgba(236, 253, 245, 0.74);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7);
}

.monitor-logico-estudio__simbolo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.86;
  mix-blend-mode: multiply;
}

.monitor-logico-estudio__puerto {
  position: absolute;
  z-index: 5;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.18);
  cursor: crosshair;
  pointer-events: auto;
}

.monitor-logico-estudio__puerto--entrada {
  left: -9px;
  background: #3f6b57;
}

.monitor-logico-estudio__puerto--salida {
  right: -9px;
  background: #934a4a;
}

.monitor-logico-estudio__puerto:hover,
.monitor-logico-estudio__puerto:focus {
  box-shadow: 0 0 0 5px rgba(82, 107, 132, 0.16), 0 8px 18px rgba(15, 23, 42, 0.2);
  transform: scale(1.18);
}

.monitor-logico-estudio__puerto--desconectable {
  isolation: isolate;
  border-color: #fff7ed;
  background: var(--estado-advertencia) !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--estado-advertencia) 44%, transparent), 0 8px 18px rgba(15, 23, 42, 0.2);
  cursor: pointer;
}

.monitor-logico-estudio__puerto--conectable {
  isolation: isolate;
  cursor: crosshair;
}

.monitor-logico-estudio__puerto--conectable.monitor-logico-estudio__puerto--salida {
  --monitor-logico-conectar-color: #c96a6a;
}

.monitor-logico-estudio__puerto--conectable.monitor-logico-estudio__puerto--entrada {
  --monitor-logico-conectar-color: #67ad88;
}

/* En el flujo de conexión, el halo marca el siguiente punto válido y es su hitbox. */
.monitor-logico-estudio__puerto--conectable::before {
  position: absolute;
  z-index: -1;
  inset: -24px;
  display: block;
  width: auto;
  height: auto;
  content: "";
  pointer-events: auto;
  border: 1px solid color-mix(in srgb, var(--monitor-logico-conectar-color) 66%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--monitor-logico-conectar-color) 20%, transparent);
  box-shadow: 0 0 0 9px color-mix(in srgb, var(--monitor-logico-conectar-color) 22%, transparent), 0 0 28px 8px color-mix(in srgb, var(--monitor-logico-conectar-color) 18%, transparent);
  animation: monitor-logico-conectar-halo 1.05s ease-in-out infinite;
}

@keyframes monitor-logico-conectar-halo {
  0%,
  100% {
    opacity: 0.3;
    transform: scale(0.68);
  }

  50% {
    opacity: 1;
    transform: scale(1.12);
  }
}

/* El halo es también el blanco de interacción: amplía de 16 px a 64 px el área útil. */
.monitor-logico-estudio__puerto--desconectable::before {
  position: absolute;
  z-index: -1;
  inset: -24px;
  display: block;
  width: auto;
  height: auto;
  content: "";
  pointer-events: auto;
  border: 1px solid color-mix(in srgb, var(--estado-advertencia) 58%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--estado-advertencia) 18%, transparent);
  box-shadow: 0 0 0 9px color-mix(in srgb, var(--estado-advertencia) 20%, transparent), 0 0 28px 8px color-mix(in srgb, var(--estado-advertencia) 16%, transparent);
  animation: monitor-logico-desconectar-halo 1.05s ease-in-out infinite;
}

@keyframes monitor-logico-desconectar-halo {
  0%,
  100% {
    opacity: 0.28;
    transform: scale(0.68);
  }

  50% {
    opacity: 1;
    transform: scale(1.12);
  }
}

@media (prefers-reduced-motion: reduce) {
  .monitor-logico-estudio__acciones-lienzo .monitor-logico-estudio__desconectar-activo,
  .monitor-logico-estudio__puerto--conectable::before,
  .monitor-logico-estudio__puerto--desconectable::before {
    animation: none;
  }
}

.monitor-logico-estudio__nodo--arrastrando {
  cursor: grabbing;
  z-index: 4;
}

.monitor-logico-estudio__nodo span {
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.monitor-logico-estudio__nodo strong {
  overflow-wrap: anywhere;
  font-size: 16px;
}

.monitor-logico-estudio__nodo.monitor-logico-estudio__nodo--seleccionado {
  outline: 2px solid color-mix(in srgb, var(--acento) 72%, transparent);
  outline-offset: 3px;
  border-color: var(--acento);
  box-shadow: 0 18px 38px rgba(17, 94, 89, 0.14);
}

.monitor-logico-estudio__nodo--origen {
  border-color: rgba(37, 99, 235, 0.72);
  box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12), 0 22px 44px rgba(17, 94, 89, 0.16);
}

.monitor-logico-estudio__nodo--desconectable {
  border-color: var(--estado-advertencia);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--estado-advertencia) 20%, transparent), 0 22px 44px rgba(17, 94, 89, 0.16);
}

.monitor-logico-estudio__nodo--ok {
  border-color: rgba(82, 107, 132, 0.42);
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.76), rgba(255, 255, 255, 0.82));
}

.monitor-logico-estudio__nodo--alerta {
  border-color: rgba(185, 28, 28, 0.34);
  background: linear-gradient(135deg, rgba(254, 242, 242, 0.76), rgba(255, 255, 255, 0.82));
}

.monitor-logico-estudio__nodo--desconocido {
  border-color: rgba(100, 116, 139, 0.22);
}

.monitor-logico-estudio__simulacion {
  display: grid;
  gap: 12px;
}

.monitor-logico-estudio__simulacion-entradas {
  display: grid;
  gap: 10px;
}

.monitor-logico-estudio__simulacion-entrada {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid rgba(82, 107, 132, 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.74);
}

.monitor-logico-estudio__simulacion-entrada span {
  color: var(--texto-suave);
  font-size: 12px;
}

.monitor-logico-estudio__simulacion-resultado {
  display: grid;
  gap: 2px;
  padding: 12px;
  border: 1px solid rgba(100, 116, 139, 0.16);
  border-radius: 14px;
  background: rgba(248, 250, 252, 0.88);
}

.monitor-logico-estudio__simulacion-resultado span {
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.monitor-logico-estudio__simulacion-resultado strong {
  font-size: 18px;
}

.monitor-logico-estudio__simulacion-resultado small {
  color: var(--texto-suave);
  line-height: 1.35;
}

.monitor-logico-estudio__simulacion-resultado--ok {
  border-color: rgba(82, 107, 132, 0.24);
  background: rgba(236, 253, 245, 0.82);
}

.monitor-logico-estudio__simulacion-resultado--alerta {
  border-color: rgba(185, 28, 28, 0.22);
  background: rgba(254, 242, 242, 0.86);
}

.trigger-scope-politica {
  display: block;
  margin-top: auto;
  color: #a33b2f;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.dns-formulario-presets {
  display: grid;
  gap: 10px;
  margin-bottom: 0;
}

.dns-formulario-presets__etiqueta {
  font-size: 13px;
  font-weight: 700;
  color: var(--texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.dns-formulario-presets__acciones {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.dns-formulario-preset {
  min-height: 36px;
}

.dns-formulario-tiempo-ayuda {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.45;
}

.dns-formulario-tiempo-ayuda code {
  color: var(--acento);
}

.dns-formulario-rname-estado {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--texto-suave);
}

.dns-formulario-rname-estado--ok {
  color: #236b5c;
}

.dns-formulario-rname-estado--advertencia {
  color: var(--error-texto);
}

.dns-formulario-rname-estado code {
  color: inherit;
}

.dns-formulario-resumen-operativo {
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(191, 208, 200, 0.92);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(244, 247, 245, 0.88) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.dns-formulario-soa-detalles {
  min-width: 0;
  margin-top: 16px;
  border: 1px solid var(--borde);
  border-radius: 10px;
}

.dns-formulario-soa-detalles > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px 16px;
  padding: 13px 16px;
  cursor: pointer;
  font-weight: 700;
}

.dns-formulario-soa-detalles > summary::-webkit-details-marker {
  display: none;
}

.dns-formulario-soa-detalles > summary::after {
  content: '⌄';
  margin-left: auto;
  font-size: 18px;
  line-height: 1;
}

.dns-formulario-soa-detalles[open] > summary::after {
  transform: rotate(180deg);
}

.dns-formulario-soa-detalles > summary small {
  color: var(--texto-suave);
  font-weight: 400;
}

.dns-formulario-soa-detalles__campos {
  margin: 0;
  padding: 18px 4px 20px;
  border-top: 1px solid var(--borde);
}

.dns-formulario-resumen-operativo__cabecera {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--acento-2);
}

.dns-formulario-alertas {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.dns-formulario-alerta {
  padding: 12px 14px;
  border: 1px solid rgba(211, 137, 60, 0.26);
  border-radius: 10px;
  background: rgba(255, 247, 237, 0.96);
  color: #8a4e0f;
  font-size: 13px;
  line-height: 1.5;
}

.dns-formulario-alerta strong {
  color: #6c3d0d;
}

.dns-detalle__metadatos {
  gap: 12px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.dns-detalle__metadatos code {
  overflow-wrap: anywhere;
  white-space: normal;
}

details.dns-detalle__contexto {
  display: block;
}

.dns-detalle__contexto > summary {
  align-items: center;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 8px;
  box-shadow: var(--sombra);
  cursor: pointer;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  list-style: none;
  padding: 14px 18px;
}

.dns-detalle__contexto > summary::-webkit-details-marker,
.dns-registros-tabla__detalles > summary::-webkit-details-marker {
  display: none;
}

.dns-detalle__contexto > summary:focus-visible,
.dns-registros-tabla__detalles > summary:focus-visible {
  border-radius: 6px;
  outline: 2px solid var(--bs-primary);
  outline-offset: 3px;
}

.dns-detalle__contexto-texto {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.dns-detalle__contexto-texto strong {
  color: var(--texto);
}

.dns-detalle__contexto-texto small {
  color: var(--texto-suave);
  overflow-wrap: anywhere;
}

.dns-detalle__contexto-accion {
  align-items: center;
  color: var(--texto);
  display: inline-flex;
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 600;
  gap: 8px;
}

.dns-detalle__contexto-accion .bi,
.dns-registros-tabla__detalles .bi {
  transition: transform 160ms ease;
}

.dns-detalle__contexto[open] .dns-detalle__contexto-accion .bi,
.dns-registros-tabla__detalles[open] .bi {
  transform: rotate(180deg);
}

.dns-detalle__contexto > .row {
  margin-top: 16px;
}

.dns-detalle__acciones-zona {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dns-detalle__filtros {
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.dns-detalle__resumen-registros {
  color: var(--texto-suave);
  display: flex;
  flex-wrap: wrap;
  font-size: 13px;
  gap: 6px 18px;
}

.dns-detalle__resumen-registros strong {
  color: var(--texto);
}

.dns-detalle__paginacion-contexto,
.dns-detalle__tamano-pagina {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dns-detalle__tamano-pagina {
  font-size: 13px;
}

.dns-detalle__tamano-pagina select {
  width: 72px;
}

.dns-registros-tabla table {
  min-width: 850px;
}

.dns-registros-tabla__principal {
  display: grid;
  gap: 8px;
}

.dns-registros-tabla__sublinea {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.dns-registros-tabla__sublinea--codigo code {
  overflow-wrap: anywhere;
}

.dns-registros-tabla__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dns-registros-tabla__detalles {
  margin-top: 8px;
}

.dns-registros-tabla__detalles > summary {
  color: var(--texto-suave);
  cursor: pointer;
  font-size: 12px;
  list-style: none;
  width: fit-content;
}

.dns-registros-tabla__detalles > summary:hover {
  color: var(--texto);
}

.dns-registros-tabla__metadatos {
  color: var(--texto-suave);
  display: grid;
  font-size: 12px;
  gap: 5px;
  margin-top: 8px;
  overflow-wrap: anywhere;
}

.dns-registros-tabla__fila-gobernada {
  --bs-table-bg: rgba(250, 247, 236, 0.72);
  --bs-table-hover-bg: rgba(246, 240, 220, 0.9);
}

.dns-registros-tabla__fila-sistema {
  --bs-table-bg: rgba(255, 236, 213, 0.88);
  --bs-table-hover-bg: rgba(255, 218, 185, 0.96);
  box-shadow:
    inset 7px 0 0 #dc3545,
    inset 0 1px 0 rgba(220, 53, 69, 0.2),
    inset 0 -1px 0 rgba(220, 53, 69, 0.2);
}

.dns-registros-tabla__fila-sistema td {
  border-color: rgba(220, 53, 69, 0.2);
}

.dns-registros-tabla__fila-sistema .dns-registros-tabla__principal > strong {
  color: #7f1d1d;
}

.dns-registros-tabla__aviso-sistema {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border: 1px solid rgba(220, 53, 69, 0.42);
  border-radius: 999px;
  background: linear-gradient(135deg, #dc3545 0%, #9a3412 100%);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}

.dns-registros-tabla__aviso-sistema i {
  font-size: 14px;
}

.dns-registro-formulario-hero {
  overflow: hidden;
}

.dns-registro-formulario-hero .hero-monitores__contenido {
  gap: 20px;
  align-items: center;
}

.hero-operativo.dns-registro-formulario-hero .hero-monitores__kpis {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.dns-registro-formulario-hero .hero-monitores__kpi,
.dns-registro-formulario-hero .hero-monitores__kpi:first-child {
  grid-column: auto;
  min-width: 0;
  min-height: 148px;
  padding: 14px;
  align-content: start;
}

.dns-registro-formulario-hero .hero-monitores__kpi strong {
  overflow-wrap: anywhere;
  font-size: 22px;
}

.dns-registro-formulario-hero .hero-monitores__kpi small b {
  color: var(--texto);
}

.dns-registro-formulario-hero__aviso-sistema {
  color: #ffe0a6;
  border-color: rgba(255, 200, 95, .45);
  background: rgba(159, 95, 23, .2);
}

.hero-operativo.dns-registro-formulario-hero .hero-monitores__kpi small {
  display: block;
}

.hero-operativo.dns-registro-formulario-hero .hero-monitores__kpi .hero-monitores__kpi-cabecera {
  align-items: center;
  flex-direction: row;
}

@media (min-width: 1200px) {
  .dns-registro-formulario-hero .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }
}

@media (max-width: 575.98px) {
  .hero-operativo.dns-registro-formulario-hero .hero-monitores__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dns-registro-formulario-hero .hero-monitores__kpi,
  .dns-registro-formulario-hero .hero-monitores__kpi:first-child {
    min-height: 0;
    padding: 10px;
  }

  .dns-registro-formulario-hero .hero-monitores__kpi strong {
    font-size: 18px;
  }

  .dns-registro-formulario-hero .hero-monitores__kpi small {
    font-size: 11px;
    line-height: 1.3;
  }

  .dns-registro-formulario-hero [data-dns-registro-resumen-tipo-detalle],
  .dns-registro-formulario-hero [data-dns-registro-resumen-ttl-detalle] {
    display: none;
  }
}

.dns-registro-formulario__resumen-operativo {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(191, 208, 200, 0.92);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(244, 247, 245, 0.88) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.dns-registro-formulario__gobernanza {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(82, 107, 132, 0.24);
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(240, 248, 245, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
  color: var(--texto);
}

.dns-registro-formulario__gobernanza-cabecera {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--acento-2);
}

.dns-registro-formulario__gobernanza-matriz {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.dns-registro-formulario__gobernanza-matriz span {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid rgba(82, 107, 132, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.72);
}

.dns-registro-formulario__gobernanza-matriz strong {
  font-size: 12px;
  color: var(--texto-suave);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.dns-registro-formulario__estado-gobernado {
  color: #8a5b12;
}

.dns-registro-formulario__campo-bloqueado {
  background: rgba(244, 247, 245, 0.98);
  color: var(--texto-suave);
  cursor: not-allowed;
}

.dns-registro-formulario__contrato-gobernanza {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(82, 107, 132, 0.18);
  border-radius: 12px;
  background: rgba(240, 248, 245, 0.62);
}

.dns-registro-formulario__bloque-avanzado {
  display: block;
  padding: 18px;
  border: 1px dashed rgba(82, 107, 132, 0.2);
  border-radius: 12px;
  background: rgba(251, 252, 251, 0.92);
}

.dns-registro-formulario__bloque-avanzado > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  list-style: none;
  cursor: pointer;
}

.dns-registro-formulario__bloque-avanzado > summary::-webkit-details-marker {
  display: none;
}

.dns-registro-formulario__bloque-avanzado > summary > i {
  transition: transform .2s ease;
}

.dns-registro-formulario__bloque-avanzado[open] > summary > i {
  transform: rotate(180deg);
}

.dns-registro-formulario__bloque-avanzado-contenido {
  margin-top: 16px;
}

.dns-registro-formulario__error {
  color: var(--estado-error);
  font-size: 13px;
}

.dns-registro-formulario__bloque-avanzado-cabecera h3 {
  margin: 0 0 6px;
  font-size: 17px;
}

.usuarios-tabla__acciones-ayuda {
  max-width: 260px;
  color: var(--texto-suave);
  line-height: 1.35;
}

@media (max-width: 768px) {
  .dns-registro-formulario__gobernanza-matriz {
    grid-template-columns: 1fr;
  }
}

.bloque-permisos {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.bloque-permisos__cabecera {
  display: grid;
  gap: 6px;
}

.bloque-permisos__cabecera h3 {
  margin: 0;
  font-size: 18px;
}

.rejilla-permisos {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.usuarios-permisos-resumen {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.usuarios-permisos-herramientas {
  display: grid;
  gap: 12px;
}

.usuarios-permisos-busqueda {
  display: grid;
  gap: 8px;
}

.usuarios-permisos-grupos {
  display: grid;
  gap: 18px;
}

.usuarios-permisos-grupo {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
  color: var(--texto);
}

.usuarios-permisos-grupo__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.usuarios-permisos-grupo__cabecera h3 {
  margin: 0 0 4px;
  font-size: 16px;
}

.usuarios-permisos-grupo--plegable {
  display: block;
}

.usuarios-permisos-grupo--plegable > summary {
  cursor: pointer;
  list-style: none;
}

.usuarios-permisos-grupo--plegable > summary::-webkit-details-marker {
  display: none;
}

.usuarios-permisos-grupo--plegable > summary::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  align-self: center;
  margin-right: 4px;
}

.usuarios-permisos-grupo--plegable[open] > summary::after {
  transform: rotate(225deg);
}

.usuarios-permisos-grupo--plegable[open] > .rejilla-permisos {
  margin-top: 14px;
}

.usuarios-permisos-grupo--plegable:not([open]) {
  padding: 12px 18px;
}

.usuarios-permisos-grupo--plegable:not([open]) > summary p {
  display: none;
}

.usuarios-permisos-grupo--plegable > summary:focus-visible {
  outline: 2px solid var(--interaccion-hover);
  outline-offset: 4px;
}

.usuarios-permisos-aviso {
  display: flex;
  align-items: start;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--estado-advertencia);
  border-radius: 8px;
  background: color-mix(in srgb, var(--estado-advertencia) 12%, var(--superficie));
  color: var(--texto);
}

.usuarios-permisos-aviso i {
  color: var(--estado-advertencia);
}

.modal-revision-usuario__resumen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.modal-revision-usuario__resumen > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.modal-revision-usuario__resumen small {
  color: var(--texto-suave);
}

.modal-revision-usuario__resumen strong {
  overflow-wrap: anywhere;
}

.modal-revision-usuario__permisos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  list-style: none;
}

.modal-revision-usuario__permisos li {
  padding: 5px 9px;
  border: 1px solid var(--borde);
  border-radius: 6px;
  background: var(--superficie-2);
}

.usuarios-permisos-vacio {
  margin: 0;
}

.tarjeta-permiso {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 14px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie);
  cursor: pointer;
}

.tarjeta-permiso input {
  width: 18px;
  min-height: 18px;
  margin-top: 3px;
}

.tarjeta-permiso__texto {
  display: grid;
  gap: 6px;
}

.tarjeta-permiso__texto strong {
  font-size: 14px;
}

.tarjeta-permiso__texto span {
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.45;
}

.tarjeta-permiso--bloqueada {
  opacity: 0.78;
}

.acciones-formulario {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.acciones-formulario--sticky {
  position: sticky;
  bottom: 14px;
  z-index: 5;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border: 1px solid rgba(191, 208, 200, 0.92);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 18px 34px rgba(20, 42, 73, 0.12);
  backdrop-filter: blur(12px);
}

.acciones-formulario__estado {
  display: grid;
  gap: 2px;
  color: var(--texto-suave);
  font-size: 13px;
}

.acciones-formulario__estado strong {
  color: var(--acento-2);
}

.acciones-formulario--sticky[data-monitor-estado="coherente"] .acciones-formulario__estado strong {
  color: var(--exito-texto);
}

.acciones-formulario--sticky[data-monitor-estado="pendiente"] .acciones-formulario__estado strong {
  color: var(--estado-advertencia);
}

.acciones-formulario--sticky[data-monitor-estado="error"] .acciones-formulario__estado strong {
  color: var(--estado-negativo);
}

.acciones-formulario__botones {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: end;
}

@media (max-width: 767.98px) {
  .usuarios-permisos-grupo__cabecera,
  .acciones-formulario--sticky {
    grid-template-columns: minmax(0, 1fr);
  }

  .usuarios-permisos-grupo__cabecera {
    display: grid;
  }

  .usuarios-permisos-grupo--plegable > summary {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .usuarios-permisos-grupo--plegable > summary > div {
    grid-column: 1 / -1;
  }

  .usuarios-permisos-grupo--plegable > summary > .chip-simple {
    grid-column: 1;
    justify-self: start;
  }

  .usuarios-permisos-grupo--plegable > summary::after {
    grid-column: 2;
    grid-row: 2;
  }

  .acciones-formulario--sticky {
    display: grid;
    align-items: stretch;
  }

  .acciones-formulario__botones {
    justify-content: stretch;
  }

  .acciones-formulario__botones > * {
    flex: 1 1 auto;
    text-align: center;
  }
}

.fila-cabecera-monitores,
.fila-monitor {
  grid-template-columns: minmax(220px, 1.1fr) minmax(240px, 1.1fr) minmax(220px, 1fr) auto;
}

.fila-cabecera-monitores--sin-acciones,
.fila-monitor--sin-acciones {
  grid-template-columns: minmax(220px, 1.2fr) minmax(240px, 1.1fr) minmax(220px, 1fr);
}

.textarea-codigo {
  min-height: 180px;
  font-family: "Courier New", monospace;
  white-space: pre;
}

.tabla-usuarios-directorio {
  gap: 0;
}

.usuarios-tabla.table-responsive {
  overflow: visible;
}

.usuarios-tabla__estado:empty {
  display: none;
}

.usuarios-tabla table {
  table-layout: fixed;
}

.usuarios-tabla thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.usuarios-tabla td {
  position: relative;
  vertical-align: middle;
}

.usuarios-tabla th:nth-child(1) {
  width: 6%;
}

.usuarios-tabla th:nth-child(2) {
  width: 18%;
}

.usuarios-tabla th:nth-child(3) {
  width: 12%;
}

.usuarios-tabla th:nth-child(4) {
  width: 10%;
}

.usuarios-tabla th:nth-child(5) {
  width: 10%;
}

.usuarios-tabla th:nth-child(6) {
  width: 14%;
}

.usuarios-tabla th:nth-child(7) {
  width: 8%;
}

.usuarios-tabla th:nth-child(8) {
  width: 14%;
}

.usuarios-tabla th:nth-child(9) {
  width: 8%;
}

.usuarios-tabla__identidad,
.usuarios-tabla__fechas {
  min-width: 0;
}

.fila-usuario-bloque {
  position: relative;
  border-top: 1px solid var(--borde);
}

.tabla-usuarios-directorio .fila-cabecera-usuarios,
.tabla-usuarios-directorio .fila-usuario-directorio {
  grid-template-columns:
    56px
    minmax(180px, 1.2fr)
    minmax(140px, 1fr)
    minmax(120px, 0.9fr)
    minmax(120px, 0.9fr)
    minmax(240px, 1.5fr)
    90px
    minmax(150px, 1fr)
    120px;
}

.tabla-usuarios-directorio .fila-cabecera-usuarios {
  align-items: center;
}

.tabla-usuarios-directorio .fila-usuario-directorio {
  border-top: 0;
}

.usuarios-tabla__acciones {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

.usuarios-tabla__acciones-toggle {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 8px;
}

.usuarios-tabla__acciones-menu {
  min-width: 190px;
  margin-bottom: 8px;
  padding: 6px;
  border-color: rgba(191, 208, 200, 0.92);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(10, 25, 46, 0.18);
}

.usuarios-tabla__acciones-menu .dropdown-item {
  min-height: 36px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
}

.usuarios-tabla__acciones-menu .dropdown-item i {
  color: var(--acento);
}

.usuarios-tabla__acciones-menu .dropdown-item--danger {
  color: #934a4a;
}

.usuarios-tabla__acciones-menu .dropdown-item--danger i {
  color: #934a4a;
}

.agentes-tabla.table-responsive {
  overflow: visible;
}

.agentes-filtros__visualizacion {
  margin-top: 16px;
}

.agentes-filtros__visualizacion > summary {
  width: fit-content;
  color: var(--acento);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
}

.agentes-filtros__opciones {
  max-width: 720px;
  margin-top: 12px;
}

.agentes-tarjetas {
  display: none;
}

@media (max-width: 1199.98px) {
  .usuarios-tabla.table-responsive,
  .agentes-tabla.table-responsive {
    overflow-x: auto;
  }
}

.agentes-tabla .table {
  font-size: 14px;
}

.agentes-tabla__fila td {
  vertical-align: middle;
}

.boton-tabla-transparente {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}

.boton-tabla-transparente:hover strong,
.boton-tabla-transparente:focus-visible strong {
  color: var(--acento);
}

.agentes-tabla__agente strong,
.agentes-tabla__ubicacion,
.agentes-tabla__host,
.agentes-tabla__fecha {
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agentes-tabla__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.agentes-tabla__popover-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}

.agentes-tabla__popover {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  z-index: 40;
  width: min(420px, calc(100vw - 56px));
  padding: 12px;
  border-radius: 8px;
  background: rgba(14, 20, 19, 0.96);
  box-shadow: 0 18px 42px rgba(10, 25, 46, 0.28);
  color: #f5f7f6;
  font: inherit;
}

.agentes-tabla__popover::before {
  content: "";
  position: absolute;
  left: 18px;
  top: -6px;
  width: 12px;
  height: 12px;
  background: rgba(14, 20, 19, 0.96);
  transform: rotate(45deg);
}

.agentes-tabla__acciones {
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

.agentes-tabla__acciones form {
  margin: 0;
}

.agentes-tabla__acciones-toggle {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: 8px;
}

.agentes-tabla__acciones-menu {
  min-width: 190px;
  margin-bottom: 8px;
  padding: 6px;
  border-color: rgba(191, 208, 200, 0.92);
  border-radius: 8px;
  box-shadow: 0 18px 36px rgba(10, 25, 46, 0.18);
}

.agentes-tabla__acciones-menu .dropdown-item {
  min-height: 36px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
}

.agentes-tabla__acciones-menu .dropdown-item i {
  color: var(--acento);
}

.agentes-tabla__acciones-menu .dropdown-item--danger {
  color: #934a4a;
}

.agentes-tabla__acciones-menu .dropdown-item--danger i {
  color: #934a4a;
}

@media (max-width: 767.98px) {
  .agentes-tabla.table-responsive {
    display: none;
  }

  .agentes-tarjetas {
    display: grid;
    gap: 12px;
  }

  .agentes-tarjeta {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    background: var(--superficie-2);
  }

  .agentes-tarjeta__cabecera {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
  }

  .agentes-tarjeta__identidad {
    display: grid;
    min-width: 0;
    gap: 3px;
    overflow-wrap: anywhere;
  }

  .agentes-tarjeta__identidad strong {
    font-size: 15px;
  }

  .agentes-tarjeta__identidad .texto-apoyo {
    font-size: 12px;
  }

  .agentes-tarjeta__cabecera .agentes-tabla__acciones-toggle {
    width: 44px;
    height: 44px;
  }

  .agentes-tarjeta .agentes-tabla__badges {
    margin-top: 12px;
  }

  .agentes-tarjeta__actividad {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 4px 10px;
    margin-top: 14px;
    font-size: 13px;
  }

  .agentes-tarjeta__actividad strong {
    font-weight: 600;
  }

  .agentes-tarjeta__detalles {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--borde);
    font-size: 13px;
  }

  .agentes-tarjeta__detalles > summary {
    color: var(--acento);
    cursor: pointer;
    font-weight: 600;
  }

  .agentes-tarjeta__detalles dl {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 6px 10px;
    margin: 12px 0 0;
  }

  .agentes-tarjeta__detalles dt {
    color: var(--texto-suave);
  }

  .agentes-tarjeta__detalles dd {
    min-width: 0;
    margin: 0;
    overflow-wrap: anywhere;
  }
}

.tooltip-html-denso-wrap .tooltip-inner {
  max-width: min(380px, calc(100vw - 48px));
  padding: 12px;
  color: var(--bs-tooltip-color);
  text-align: left;
}

.tooltip-html-denso {
  display: grid;
  gap: 8px;
}

.tooltip-html-denso strong {
  display: block;
  font-size: 13px;
}

.tooltip-html-denso dl {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 5px 10px;
  margin: 0;
}

.tooltip-html-denso dt {
  color: currentColor;
  opacity: 0.72;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.tooltip-html-denso dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.tooltip-html-denso p {
  margin: 0;
  color: currentColor;
  opacity: 0.78;
  font-size: 12px;
  line-height: 1.4;
}

.agentes-tabla__popover .tooltip-html-denso code {
  padding: 0;
  border: 0;
  background: transparent;
  color: #d9fff4;
  font: inherit;
}

.agentes-tabla__popover .tooltip-html-denso dd {
  color: #f5f7f6;
}

.agentes-tabla__popover .tooltip-html-denso ::selection {
  background: rgba(217, 255, 244, 0.28);
  color: #ffffff;
}

.telemetria-grafico {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
  color: var(--texto);
}

.agente-telemetria .text-bg-light {
  border: 1px solid var(--borde);
  background-color: var(--superficie-2) !important;
  color: var(--texto) !important;
}

.agente-telemetria [data-agente-telemetria-resultados][hidden],
.agente-telemetria [data-agente-telemetria-grafico][hidden] {
  display: none;
}

.agente-telemetria-seccion {
  display: block;
}

.agente-telemetria-seccion > summary {
  list-style: none;
}

.agente-telemetria-seccion > summary::-webkit-details-marker {
  display: none;
}

.agente-telemetria-seccion__cabecera {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  min-height: 76px;
  padding: 14px 18px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie-2);
  color: var(--texto);
  cursor: pointer;
}

.agente-telemetria-seccion__cabecera:hover,
.agente-telemetria-seccion__cabecera:focus-visible {
  border-color: var(--borde-fuerte);
}

.agente-telemetria-seccion[open] > .agente-telemetria-seccion__cabecera {
  margin-bottom: 12px;
}

.agente-telemetria-seccion__titulo {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.agente-telemetria-seccion__titulo i {
  flex: none;
  transition: transform .2s ease;
}

.agente-telemetria-seccion[open] .agente-telemetria-seccion__titulo i {
  transform: rotate(180deg);
}

.agente-telemetria-seccion__titulo small {
  display: block;
  margin-top: 3px;
  color: var(--texto-suave);
}

.agente-telemetria-seccion__resultados {
  margin-top: 16px;
}

@media (max-width: 575.98px) {
  .agente-telemetria-seccion__cabecera {
    padding: 12px;
  }

  .agente-telemetria-seccion__titulo h2 {
    font-size: 1.1rem;
  }
}

.agente-telemetria-filtros-avanzados > summary,
.agente-telemetria-catalogo > summary {
  width: fit-content;
  cursor: pointer;
  color: var(--texto);
  font-weight: 600;
}

.agente-telemetria-filtros-avanzados > summary:hover,
.agente-telemetria-catalogo > summary:hover {
  color: var(--enlace, var(--texto));
}

.agente-telemetria-catalogo {
  padding: 14px 16px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie-2);
}

.agente-telemetria-catalogo__fila {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--borde);
}

.agente-telemetria-catalogo__fila > span:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}

.agente-telemetria-catalogo__fila .badge {
  flex: none;
}

.telemetria-grafico--compacto {
  padding: 18px;
}

.telemetria-grafico__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
  gap: 18px;
  align-items: stretch;
}

.telemetria-grafico__layout--booleano {
  align-items: start;
}

.telemetria-grafico__layout--booleano .telemetria-grafico__detalle {
  min-height: 0;
}

.telemetria-grafico__principal {
  display: grid;
  min-width: 0;
  gap: 14px;
}

.telemetria-grafico__cabecera {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.telemetria-grafico__canvas {
  position: relative;
  min-height: 430px;
}

.telemetria-grafico__canvas canvas {
  width: 100%;
  height: 430px;
}

.telemetria-grafico__canvas--booleano {
  min-height: 0;
}

.telemetria-grafico__canvas--booleano canvas {
  display: none;
}

.telemetria-booleanos {
  display: grid;
  gap: 12px;
}

.telemetria-booleanos[hidden] {
  display: none;
}

.telemetria-booleanos__fila {
  display: grid;
  gap: 6px;
}

.telemetria-booleanos__cabecera {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 12px;
  color: var(--texto);
  font-size: 13px;
}

.telemetria-booleanos__cabecera small {
  color: var(--texto-suave);
}

.telemetria-booleanos__pista {
  height: 24px;
  min-height: 24px;
  margin-left: 0;
  width: 100%;
}

.telemetria-booleanos__tramo {
  cursor: help;
  transition: filter 120ms ease, box-shadow 120ms ease;
}

.telemetria-booleanos__tramo:hover,
.telemetria-booleanos__tramo:focus-visible {
  z-index: 2;
  outline: none;
  filter: brightness(1.12);
  box-shadow: 0 0 0 2px var(--superficie), 0 0 0 4px var(--acento);
}

.telemetria-booleanos__tramo--si {
  background: linear-gradient(90deg, rgba(38, 139, 91, 0.92), rgba(38, 139, 91, 0.68));
}

.telemetria-booleanos__tramo--no {
  background: repeating-linear-gradient(
    45deg,
    rgba(178, 108, 24, 0.92) 0,
    rgba(178, 108, 24, 0.92) 5px,
    rgba(178, 108, 24, 0.68) 5px,
    rgba(178, 108, 24, 0.68) 10px
  );
}

.telemetria-booleanos__eje {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--texto-suave);
  font-size: 11px;
}

.telemetria-grafico__estado {
  display: grid;
  min-height: 220px;
  place-items: center;
  padding: 24px;
  border: 1px dashed var(--borde-fuerte);
  border-radius: 10px;
  background: var(--superficie);
  color: var(--texto-suave);
  text-align: center;
}

.telemetria-grafico__pol-linea {
  display: grid;
  gap: 6px;
}

.telemetria-grafico__pol-linea[hidden] {
  display: none;
}

.telemetria-grafico__pol-linea-cabecera {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: var(--telemetria-pol-offset, 0);
  width: var(--telemetria-pol-width, 100%);
  color: var(--texto-suave);
  font-size: 12px;
}

.telemetria-grafico__pol-linea-cabecera span {
  font-weight: 700;
  color: var(--acento);
}

.telemetria-grafico__pol-pista {
  position: relative;
  height: 18px;
  min-height: 18px;
  margin-left: var(--telemetria-pol-offset, 0);
  width: var(--telemetria-pol-width, 100%);
  overflow: hidden;
  border: 1px solid rgba(19, 55, 94, 0.1);
  border-radius: 999px;
  background:
    repeating-linear-gradient(
      90deg,
      color-mix(in srgb, var(--acento) 8%, transparent) 0,
      color-mix(in srgb, var(--acento) 8%, transparent) 1px,
      transparent 1px,
      transparent 9%
    ),
    var(--superficie);
}

.telemetria-grafico__pol-tramo {
  position: absolute;
  top: 3px;
  bottom: 3px;
  min-width: 2px;
  border-radius: 999px;
}

.telemetria-grafico__pol-tramo--presente {
  background: linear-gradient(90deg, rgba(82, 107, 132, 0.7), rgba(82, 107, 132, 0.42));
  box-shadow: 0 0 0 1px rgba(82, 107, 132, 0.16);
}

.telemetria-grafico__pol-tramo--hueco {
  background: repeating-linear-gradient(
    45deg,
    rgba(178, 108, 24, 0.3) 0,
    rgba(178, 108, 24, 0.3) 4px,
    rgba(178, 108, 24, 0.13) 4px,
    rgba(178, 108, 24, 0.13) 8px
  );
}

.telemetria-grafico__pol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  color: var(--texto-suave);
  font-size: 13px;
}

.telemetria-grafico__pol-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1;
}

.telemetria-grafico__pol-chip::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.telemetria-grafico__pol-chip--vivo {
  background: var(--acento-suave);
  color: var(--acento);
}

.telemetria-grafico__pol-chip--vivo::before {
  background: rgba(82, 107, 132, 0.78);
}

.telemetria-grafico__pol-chip--cerrado {
  background: color-mix(in srgb, var(--estado-advertencia) 12%, transparent);
  color: var(--estado-advertencia);
}

.telemetria-grafico__pol-chip--cerrado::before {
  background: rgba(178, 108, 24, 0.78);
}

.telemetria-grafico__pol-chip--sin-datos {
  background: rgba(86, 101, 96, 0.11);
  color: var(--texto-suave);
}

.telemetria-grafico__pol-chip--sin-datos::before {
  background: rgba(86, 101, 96, 0.48);
}

.telemetria-grafico__pol-ayuda {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie);
  color: var(--texto-suave);
  line-height: 1;
}

.telemetria-grafico__pol-ayuda:hover,
.telemetria-grafico__pol-ayuda:focus-visible {
  border-color: var(--interaccion-hover);
  color: var(--interaccion-hover);
}

.telemetria-grafico__pol-texto {
  min-width: 180px;
}

.telemetria-grafico__pol-periodos {
  flex: 1 0 100%;
  padding-top: 2px;
}

.telemetria-grafico__pol-periodos summary {
  width: fit-content;
  cursor: pointer;
  color: var(--acento);
  font-weight: 700;
}

.telemetria-grafico__pol-periodos-ayuda {
  margin: 10px 0;
  color: var(--texto-suave);
}

.telemetria-grafico__pol-periodos-lista {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  gap: 10px;
}

.telemetria-grafico__pol-periodo {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--borde);
  border-radius: 10px;
  background: var(--superficie);
}

.telemetria-grafico__pol-periodo header,
.telemetria-grafico__pol-periodo dl > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.telemetria-grafico__pol-periodo header {
  margin-bottom: 8px;
  color: var(--texto);
}

.telemetria-grafico__pol-periodo-estado {
  color: var(--texto-suave);
}

.telemetria-grafico__pol-periodo dl {
  display: grid;
  gap: 5px;
  margin: 0;
}

.telemetria-grafico__pol-periodo dt {
  color: var(--texto-suave);
  font-weight: 600;
}

.telemetria-grafico__pol-periodo dd {
  min-width: 0;
  margin: 0;
  color: var(--texto);
  text-align: right;
}

.telemetria-grafico__pol-periodo-boot {
  align-items: start;
}

.telemetria-grafico__pol-periodo-boot code {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  user-select: all;
}

.telemetria-grafico__detalle {
  display: grid;
  min-width: 0;
  align-content: start;
  min-height: 100%;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
  box-shadow: none;
}

.telemetria-grafico__metadatos {
  max-height: 20rem;
  max-width: 100%;
  overflow: auto;
  overflow-wrap: anywhere;
}

.telemetria-metadatos__lista {
  margin: 0;
  padding-inline-start: 1rem;
}

.telemetria-metadatos__lista li {
  margin-block: .35rem;
}

.telemetria-metadatos__lista .telemetria-metadatos__lista {
  border-inline-start: 1px solid var(--borde);
}

.telemetria-metadatos__valor {
  white-space: pre-wrap;
}

.telemetria-grafico__detalle-valor {
  color: var(--texto);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  line-height: 1;
}

.telemetria-grafico__detalle-lista {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px 12px;
  margin: 0 0 14px;
  font-size: 13px;
}

.telemetria-grafico__detalle-lista dt {
  color: var(--texto-suave);
  font-weight: 700;
}

.telemetria-grafico__detalle-lista dd {
  min-width: 0;
  margin: 0;
  color: var(--texto);
  overflow-wrap: anywhere;
}

.telemetria-senal-actual {
  overflow: hidden;
  border-color: color-mix(in srgb, var(--borde-fuerte) 72%, var(--borde));
  background: color-mix(in srgb, var(--superficie-2) 58%, var(--superficie));
  box-shadow:
    0 1px 2px color-mix(in srgb, var(--texto) 7%, transparent),
    0 8px 22px color-mix(in srgb, var(--texto) 5%, transparent);
}

.telemetria-senal-actual__acciones-toggle {
  display: inline-flex;
  gap: 5px;
  width: auto;
  min-width: 34px;
  padding: 0 6px;
}

.telemetria-senal-actual__contador {
  min-width: 18px;
  padding: 2px 4px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--texto) 13%, var(--superficie-2));
  color: var(--texto);
  font-size: .68rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.telemetria-miniatura {
  display: grid;
  gap: 5px;
  min-height: 58px;
  margin: 2px 0 14px;
}

.telemetria-miniatura__lienzo {
  position: relative;
  display: grid;
  min-height: 40px;
  place-items: center;
  overflow: hidden;
  border-bottom: 1px solid var(--borde);
  background: linear-gradient(
    180deg,
    transparent 0%,
    color-mix(in srgb, var(--acento) 5%, transparent) 100%
  );
}

.telemetria-miniatura[data-estado-carga="pendiente"] .telemetria-miniatura__lienzo,
.telemetria-miniatura[data-estado-carga="cargando"] .telemetria-miniatura__lienzo {
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--acento) 5%, transparent) 20%,
    color-mix(in srgb, var(--acento) 13%, transparent) 45%,
    color-mix(in srgb, var(--acento) 5%, transparent) 70%
  );
  background-size: 220% 100%;
  animation: telemetria-miniatura-cargando 1.4s ease-in-out infinite;
}

.telemetria-miniatura__svg {
  width: 100%;
  height: 40px;
  overflow: visible;
}

.telemetria-miniatura__area {
  fill: color-mix(in srgb, var(--acento) 16%, transparent);
}

.telemetria-miniatura__linea {
  fill: none;
  stroke: color-mix(in srgb, var(--acento) 82%, var(--texto));
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  vector-effect: non-scaling-stroke;
}

.telemetria-miniatura__punto {
  fill: var(--acento);
  stroke: var(--superficie);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.telemetria-miniatura__booleana {
  position: relative;
  width: 100%;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--superficie-2);
  box-shadow: inset 0 0 0 1px var(--borde);
}

.telemetria-miniatura__booleano {
  position: absolute;
  top: 0;
  bottom: 0;
  min-width: 2px;
}

.telemetria-miniatura__booleano--si {
  background: var(--exito-texto, #268b5b);
}

.telemetria-miniatura__booleano--no {
  background: var(--error-texto, #b43b4a);
}

.telemetria-miniatura__estado {
  color: var(--texto-suave);
  font-size: 11px;
}

.telemetria-miniatura__sin-datos {
  width: 100%;
  border-top: 1px dashed var(--borde-fuerte);
}

@keyframes telemetria-miniatura-cargando {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .telemetria-miniatura__lienzo {
    animation: none !important;
  }
}

@media (max-width: 1199.98px) {
  .telemetria-grafico__layout {
    grid-template-columns: 1fr;
  }

  .telemetria-grafico__detalle {
    min-height: auto;
  }
}

@media (max-width: 575.98px) {
  .telemetria-grafico--compacto {
    padding: 12px;
  }

  .telemetria-grafico__canvas,
  .telemetria-grafico__canvas canvas {
    min-height: 330px;
    height: 330px;
  }

  .telemetria-grafico__canvas--booleano {
    min-height: 0;
    height: auto;
  }
}

.dns-tabla.table-responsive {
  overflow: visible;
}

.dns-filtros-principales {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.dns-filtros-avanzados {
  margin-top: 14px;
}

.dns-filtros-avanzados summary {
  width: fit-content;
  color: var(--texto-suave);
  cursor: pointer;
  font-weight: 600;
}

.dns-filtros-avanzados summary:hover {
  color: var(--texto);
}

.dns-tabla [data-dns-paginador][hidden] {
  display: none !important;
}

.dns-tabla__enlace-zona {
  color: var(--texto);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.dns-tabla__estado:empty {
  display: none;
}

.dns-tabla table {
  table-layout: fixed;
}

.dns-tabla thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dns-tabla td {
  position: relative;
  vertical-align: middle;
}

.dns-tabla th:nth-child(1) {
  width: 24%;
}

.dns-tabla th:nth-child(2) {
  width: 30%;
}

.dns-tabla th:nth-child(3) {
  width: 30%;
}

.dns-tabla th:nth-child(4) {
  width: 16%;
}

.dns-tabla__identidad,
.dns-tabla__estado,
.dns-tabla__alcance {
  min-width: 0;
}

.dns-tabla__estado-insignias {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

@media (max-width: 767.98px) {
  .dns-tabla.table-responsive {
    overflow: visible;
  }

  .dns-tabla table,
  .dns-tabla tbody,
  .dns-tabla tr,
  .dns-tabla td {
    display: block;
    width: 100%;
  }

  .dns-tabla thead {
    display: none;
  }

  .dns-tabla tbody tr {
    margin-bottom: 12px;
    padding: 14px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie-2);
  }

  .dns-tabla td {
    padding: 8px 0;
    border: 0;
    text-align: left !important;
    overflow-wrap: anywhere;
  }

  .dns-tabla td + td {
    border-top: 1px solid var(--borde);
  }

  .dns-tabla td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 5px;
    color: var(--texto-suave);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
  }

  .dns-tabla td[data-label="Zona"]::before {
    display: none;
  }

  .dns-tabla__acciones {
    display: inline-block;
  }
}

.triggers-tabla.table-responsive {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 1200px) {
  .triggers-tabla.table-responsive {
    overflow: visible;
  }
}

.triggers-filtros-rapidos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 10px;
}

.triggers-filtro-rapido {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    transform 0.16s ease;
}

.triggers-filtro-rapido:hover,
.triggers-filtro-rapido:focus-visible {
  border-color: var(--borde-fuerte);
  background: var(--acento-suave);
  color: var(--acento-fuerte);
  transform: translateY(-1px);
}

.triggers-filtro-rapido.is-active {
  background: var(--acento);
  border-color: var(--acento);
  color: var(--superficie);
  box-shadow: 0 10px 22px color-mix(in srgb, var(--acento) 18%, transparent);
}

.triggers-filtro-rapido--alerta {
  border-color: color-mix(in srgb, var(--estado-advertencia) 28%, var(--borde));
  color: var(--estado-advertencia);
}

.triggers-filtro-rapido--alerta.is-active {
  background: var(--estado-advertencia);
  border-color: var(--estado-advertencia);
  color: var(--superficie);
}

.filtros-avanzados {
  margin-top: 14px;
  border: 1px solid var(--borde);
  border-radius: 14px;
  background: var(--fondo-suave);
}

.filtros-avanzados summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  color: var(--texto-principal);
  cursor: pointer;
  list-style: none;
}

.filtros-avanzados summary::-webkit-details-marker {
  display: none;
}

.filtros-avanzados summary span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
}

.filtros-avanzados summary small {
  color: var(--texto-suave);
  font-size: 12px;
}

.filtros-avanzados[open] summary {
  border-bottom: 1px solid var(--borde);
}

.filtros-avanzados__contenido {
  padding: 14px;
}

.triggers-tabla table {
  min-width: 920px;
  table-layout: fixed;
}

.triggers-tabla thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.triggers-tabla td {
  position: relative;
  vertical-align: middle;
}

.triggers-tabla th:nth-child(1) {
  width: 30%;
}

.triggers-tabla th:nth-child(2) {
  width: 19%;
}

.triggers-tabla th:nth-child(3) {
  width: 27%;
}

.triggers-tabla th:nth-child(4) {
  width: 16%;
}

.triggers-tabla th:nth-child(5) {
  width: 8%;
}

.triggers-tabla th:nth-child(5),
.triggers-tabla td:nth-child(5) {
  padding-left: 12px;
  padding-right: 12px;
  text-align: center;
}

.triggers-tabla__fila-alerta {
  --bs-table-bg: color-mix(in srgb, var(--estado-advertencia) 8%, var(--superficie));
  --bs-table-hover-bg: color-mix(in srgb, var(--estado-advertencia) 13%, var(--superficie));
}

.triggers-tabla__configuracion {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.triggers-tabla__configuracion--compacta {
  display: block;
  margin-top: 5px;
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.triggers-tabla__tipo-alcance {
  display: grid;
  justify-items: start;
  gap: 7px;
  min-width: 0;
}

.triggers-tabla__tipo-alcance .insignia-monitor {
  max-width: 100%;
  overflow-wrap: anywhere;
}

.triggers-tabla__configuracion strong,
.triggers-tabla__configuracion span,
.triggers-tabla__configuracion small,
.triggers-tabla__estado-detalle {
  overflow-wrap: anywhere;
}

.triggers-tabla__configuracion span,
.triggers-tabla__configuracion small,
.triggers-tabla__estado-detalle {
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.35;
}

.triggers-tabla__estado-detalle {
  margin-top: 6px;
  max-width: 220px;
}

.triggers-estado-operativo {
  display: grid;
  gap: 7px;
  min-width: 190px;
}

.triggers-estado-operativo__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.triggers-estado-chip {
  align-items: center;
  border: 1px solid var(--borde);
  border-radius: 999px;
  display: inline-flex;
  font-size: 11px;
  font-weight: 700;
  gap: 4px;
  line-height: 1;
  padding: 5px 8px;
  white-space: nowrap;
}

.triggers-estado-chip--ok {
  background: var(--exito-fondo);
  border-color: color-mix(in srgb, var(--estado-positivo) 24%, var(--borde));
  color: var(--exito-texto);
}

.triggers-estado-chip--neutro {
  background: var(--superficie-2);
  color: var(--texto-suave);
}

.triggers-estado-operativo__ultima {
  align-items: center;
  color: var(--texto-suave);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 5px;
  line-height: 1.3;
}

.triggers-estado-operativo__ultima .codigo-inline {
  font-size: 11px;
}

.modal-uso-trigger .modal-content {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 18px;
  color: var(--texto);
  box-shadow: 0 28px 80px rgba(15, 43, 33, 0.22);
}

.modal-uso-trigger .modal-header,
.modal-uso-trigger .modal-footer {
  border-color: var(--borde);
}

html[data-theme="dark"] .modal-uso-trigger .btn-close {
  filter: invert(1) grayscale(100%) brightness(180%);
}

.modal-uso-trigger__resumen {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 20px;
}

.modal-uso-trigger__kpi {
  align-items: center;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-positivo) 9%, var(--superficie-2)),
      var(--superficie)
    );
  border: 1px solid var(--borde);
  border-radius: 16px;
  display: flex;
  gap: 12px;
  padding: 14px;
}

.modal-uso-trigger .organizacion-entidad__icono {
  display: inline-grid;
  font-size: 17px;
  height: 36px;
  line-height: 1;
  place-items: center;
  width: 36px;
}

.modal-uso-trigger__kpi > div > span {
  color: var(--texto-suave);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.modal-uso-trigger__kpi strong {
  color: var(--texto);
  display: block;
  font-size: 20px;
  line-height: 1.1;
  margin-top: 3px;
}

.modal-uso-trigger__kpi small {
  color: var(--texto-suave);
  display: block;
  font-size: 12px;
  margin-top: 4px;
}

.modal-uso-trigger__seccion {
  align-items: end;
  border-bottom: 1px solid var(--borde);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 12px;
}

.modal-uso-trigger__seccion h3 {
  font-size: 18px;
  margin: 0;
}

.modal-uso-trigger__lista {
  display: grid;
  gap: 10px;
}

.modal-uso-trigger__vinculo {
  align-items: center;
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  border-radius: 16px;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(220px, 1.2fr) minmax(220px, 1fr) auto;
  padding: 14px;
}

.modal-uso-trigger__vinculo-principal {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.modal-uso-trigger__vinculo-principal strong,
.modal-uso-trigger__vinculo-principal p {
  overflow-wrap: anywhere;
}

.modal-uso-trigger__vinculo-meta {
  align-items: center;
  color: var(--texto-suave);
  display: flex;
  flex-wrap: wrap;
  font-size: 12px;
  gap: 7px;
}

.modal-uso-trigger__vinculo-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.modal-uso-trigger__vacio {
  align-items: center;
  background: var(--superficie-2);
  border: 1px dashed var(--borde);
  border-radius: 16px;
  display: flex;
  gap: 12px;
  padding: 18px;
}

.modal-plan-trigger .modal-content {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 18px;
  color: var(--texto);
  box-shadow: 0 28px 80px rgba(15, 43, 33, 0.22);
}

.modal-plan-trigger .modal-header,
.modal-plan-trigger .modal-footer { border-color: var(--borde); }

.modal-plan-trigger .modal-title { color: var(--texto); }

.modal-previa-correo .modal-content {
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 18px;
  color: var(--texto);
}

.modal-previa-correo .modal-header,
.modal-previa-correo .modal-footer { border-color: var(--borde); }

.modal-previa-correo .modal-title { color: var(--texto); }

.trigger-api-avanzado {
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie-2);
  min-width: 0;
}

.trigger-api-avanzado > summary {
  cursor: pointer;
  padding: 16px;
  font-weight: 700;
}

.trigger-api-avanzado > summary span {
  display: block;
  color: var(--texto-suave);
  font-size: 13px;
  font-weight: 400;
}

.trigger-api-avanzado__contenido {
  display: grid;
  gap: 18px;
  padding: 0 16px 16px;
  min-width: 0;
}

.trigger-api-variables {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 8px 0 12px;
}

.trigger-api-variables p { flex-basis: 100%; margin: 0; color: var(--texto-suave); font-size: 13px; }
.trigger-api-variables button {
  border: 1px solid var(--borde);
  border-radius: 6px;
  background: var(--superficie);
  color: var(--texto);
  padding: 5px 9px;
  font-size: 12px;
}

.trigger-api-previa__cuerpo {
  max-width: 100%;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--superficie-2);
  color: var(--texto);
  border: 1px solid var(--borde);
  border-radius: 8px;
  padding: 16px;
}

html[data-theme="dark"] .modal-previa-correo .btn-close {
  filter: invert(1) grayscale(1);
  opacity: 0.8;
}

html[data-theme="dark"] .modal-previa-correo .modal-footer .btn-outline-secondary {
  color: var(--texto);
  border-color: var(--texto-suave);
}

.seccion-panel .rejilla-resumen.trigger-correo-audiencia__resumen {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trigger-correo-audiencia__resumen .kpi-resumen {
  min-height: 104px;
}

@media (max-width: 480px) {
  .trigger-correo-audiencia__resumen {
    gap: 8px;
  }

  .trigger-correo-audiencia__resumen .kpi-resumen {
    min-height: 96px;
    padding: 12px;
  }
}

.trigger-correo-previa__resumen,
.trigger-correo-previa__mensaje {
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  border-radius: 14px;
  overflow-wrap: anywhere;
  padding: 16px;
}

.trigger-correo-previa__mensaje { padding: 0; }

.trigger-correo-previa__asunto {
  border-bottom: 1px solid var(--borde);
  display: grid;
  gap: 4px;
  padding: 16px 20px;
}

.trigger-correo-previa__asunto span {
  color: var(--texto-suave);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.trigger-correo-previa__cuerpo { padding: 20px; }

.trigger-correo-previa__cuerpo p {
  line-height: 1.6;
  margin: 0 0 18px;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.trigger-correo-previa__cuerpo p:last-child { margin-bottom: 0; }

.trigger-correo-previa__apartado {
  color: var(--texto);
  font-size: 15px;
  font-weight: 700;
  margin: 22px 0 8px;
}

.trigger-correo-previa__texto-integro {
  border-top: 1px solid var(--borde);
  margin-top: 20px;
  padding-top: 14px;
}

.trigger-correo-previa__texto-integro summary { cursor: pointer; }

.trigger-correo-previa__texto-integro pre {
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  border-radius: 12px;
  color: var(--texto);
  margin: 12px 0 0;
  overflow-wrap: anywhere;
  padding: 16px;
  white-space: pre-wrap;
}

.modal-plan-trigger__grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-plan-trigger__bloque,
.modal-plan-trigger__avisos {
  background: linear-gradient(135deg, var(--superficie-2), var(--superficie));
  border: 1px solid var(--borde);
  border-radius: 18px;
  padding: 16px;
}

.modal-plan-trigger__bloque h3,
.modal-plan-trigger__avisos h3 {
  color: var(--texto);
  font-size: 18px;
  margin: 0 0 12px;
}

.modal-plan-trigger__items {
  display: grid;
  gap: 10px;
}

.modal-plan-trigger__item {
  align-items: center;
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  padding: 12px;
}

.modal-plan-trigger__item span:not(.organizacion-entidad__icono) {
  color: var(--texto-suave);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.modal-plan-trigger__item strong {
  color: var(--texto);
  display: block;
  font-size: 15px;
  line-height: 1.28;
  margin-top: 3px;
  overflow-wrap: anywhere;
}

.modal-plan-trigger__avisos {
  margin-top: 16px;
}

@media (max-width: 760px) {
  .trigger-correo-audiencia__contenedor {
    overflow: visible;
  }

  .trigger-correo-audiencia__tabla,
  .trigger-correo-audiencia__tabla tbody {
    display: block;
    width: 100%;
  }

  .trigger-correo-audiencia__tabla thead {
    display: none;
  }

  .trigger-correo-audiencia__tabla tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    border: 1px solid var(--borde);
    border-radius: 12px;
    margin-bottom: 10px;
    padding: 12px;
  }

  .trigger-correo-audiencia__tabla td {
    border: 0;
    min-width: 0;
    padding: 0;
    overflow-wrap: anywhere;
  }

  .trigger-correo-audiencia__tabla td:first-child {
    grid-column: 1 / -1;
  }

  .trigger-correo-audiencia__tabla td:last-child {
    text-align: right;
  }
}

.modal-plan-trigger__avisos p {
  align-items: flex-start;
  color: var(--texto-suave);
  display: flex;
  gap: 9px;
  margin: 0;
}

.modal-plan-trigger__avisos p + p {
  margin-top: 8px;
}

.modal-plan-trigger__avisos i {
  color: var(--acento);
  margin-top: 2px;
}

html[data-theme="dark"] .modal-plan-trigger .btn-close {
  filter: invert(1) grayscale(100%) brightness(180%);
}

.modal-impacto-trigger .modal-content {
  background: var(--superficie);
  border: 1px solid color-mix(in srgb, var(--estado-error) 28%, var(--borde));
  border-radius: 18px;
  color: var(--texto);
  box-shadow: 0 28px 80px rgba(69, 23, 23, 0.2);
}

.modal-impacto-trigger .modal-header,
.modal-impacto-trigger .modal-footer {
  border-color: var(--borde);
}

/* La eliminación es una decisión irreversible: la superficie se distingue del
 * formulario ordinario, sin competir con el botón destructivo. */
.modal-eliminacion-monitor .modal-content,
.modal-eliminar-agente .modal-content,
.modal-eliminacion-dns .modal-content {
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-error) 8%, var(--superficie)),
      var(--superficie) 62%
    );
  border: 1px solid color-mix(in srgb, var(--estado-error) 32%, var(--borde));
  border-radius: 18px;
  box-shadow: 0 28px 80px color-mix(in srgb, var(--estado-error) 18%, transparent);
}

.modal-eliminacion-monitor .modal-header,
.modal-eliminacion-monitor .modal-footer,
.modal-eliminar-agente .modal-header,
.modal-eliminar-agente .modal-footer,
.modal-eliminacion-dns .modal-header,
.modal-eliminacion-dns .modal-footer {
  background: transparent;
  border-color: color-mix(in srgb, var(--estado-error) 20%, var(--borde));
}

.modal-impacto-trigger__hero {
  align-items: center;
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-positivo) 10%, var(--superficie-2)),
      var(--superficie)
    );
  border: 1px solid var(--borde);
  border-radius: 18px;
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
  padding: 16px;
}

.modal-impacto-trigger__hero--alerta {
  background:
    linear-gradient(
      135deg,
      color-mix(in srgb, var(--estado-error) 14%, var(--superficie-2)),
      var(--superficie)
    );
  border-color: color-mix(in srgb, var(--estado-error) 34%, var(--borde));
}

.modal-impacto-trigger__hero strong {
  color: var(--texto);
  display: block;
  font-size: 18px;
}

.modal-impacto-trigger__metricas {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 14px;
}

.modal-eliminacion-dns .modal-impacto-trigger__metricas {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.modal-eliminacion-dns [hidden] {
  display: none !important;
}

.modal-impacto-trigger__metricas article {
  background: var(--superficie-2);
  border: 1px solid var(--borde);
  border-radius: 14px;
  padding: 12px;
}

.modal-impacto-trigger__metricas span {
  color: var(--texto-suave);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.modal-impacto-trigger__metricas strong {
  color: var(--texto);
  display: block;
  font-size: 22px;
  line-height: 1.1;
  margin-top: 4px;
}

.modal-eliminar-vinculo .modal-impacto-trigger__metricas strong {
  font-size: 16px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.modal-impacto-trigger__avisos {
  background: color-mix(
    in srgb,
    var(--estado-advertencia) 10%,
    var(--superficie-2)
  );
  border: 1px solid color-mix(
    in srgb,
    var(--estado-advertencia) 30%,
    var(--borde)
  );
  border-radius: 16px;
  padding: 14px;
}

.modal-impacto-trigger__avisos p {
  align-items: flex-start;
  color: var(--texto-suave);
  display: flex;
  gap: 9px;
  margin: 0;
}

.modal-impacto-trigger__avisos p + p {
  margin-top: 8px;
}

.modal-impacto-trigger__avisos i {
  color: var(--estado-advertencia);
  margin-top: 2px;
}

html[data-theme="dark"] .modal-impacto-trigger .btn-close {
  filter: invert(1) grayscale(100%) brightness(180%);
}

.monitor-triggers-operativos__lista {
  display: grid;
  gap: 12px;
}

.monitor-trigger-card {
  align-items: center;
  background:
    linear-gradient(
      135deg,
      var(--superficie),
      color-mix(in srgb, var(--estado-positivo) 7%, var(--superficie-2))
    );
  border: 1px solid var(--borde);
  border-radius: 18px;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(220px, 1.1fr) minmax(320px, 1.5fr) minmax(140px, 0.65fr) auto;
  padding: 16px;
}

.monitor-trigger-card__principal {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.monitor-trigger-card__principal h3 {
  font-size: 18px;
  margin: 0 0 8px;
  overflow-wrap: anywhere;
}

.monitor-trigger-card__badges,
.monitor-trigger-card__chips,
.monitor-trigger-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.monitor-trigger-card__flujo {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(150px, 0.9fr) minmax(190px, 1.2fr) minmax(150px, 0.9fr);
}

.monitor-trigger-card__flujo strong {
  color: var(--texto);
  display: block;
  font-size: 14px;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.monitor-trigger-card__flujo small {
  color: var(--texto-suave);
  display: block;
  font-size: 12px;
  margin-top: 3px;
}

.monitor-trigger-card__label {
  color: var(--texto-suave);
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.monitor-trigger-card__meta {
  color: var(--texto-suave);
  font-size: 12px;
}

.monitor-trigger-card__acciones {
  justify-self: end;
}

@media (max-width: 991.98px) {
  .modal-eliminacion-dns .modal-impacto-trigger__metricas {
    grid-template-columns: 1fr;
  }

  .modal-uso-trigger__resumen,
  .modal-uso-trigger__vinculo,
  .modal-plan-trigger__grid,
  .modal-impacto-trigger__metricas,
  .monitor-trigger-card,
  .monitor-trigger-card__flujo {
    grid-template-columns: 1fr;
  }

  .modal-uso-trigger__seccion {
    align-items: start;
    flex-direction: column;
  }

  .modal-uso-trigger__vinculo-acciones {
    justify-content: flex-start;
  }

  .monitor-trigger-card__acciones {
    justify-self: start;
  }
}

.triggers-tabla__vacio {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  padding: 18px 0;
}

.triggers-tabla__vacio strong {
  color: var(--texto-principal);
}

.triggers-tabla__vacio-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.vinculos-tabla.table-responsive {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 1200px) {
  .vinculos-tabla.table-responsive {
    overflow: visible;
  }
}

.vinculos-tabla table {
  min-width: 1080px;
  table-layout: fixed;
}

.vinculos-tabla thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.vinculos-tabla td {
  position: relative;
  vertical-align: middle;
}

.vinculos-tabla th:nth-child(1) {
  width: 24%;
}

.vinculos-tabla th:nth-child(2) {
  width: 22%;
}

.vinculos-tabla th:nth-child(3) {
  width: 18%;
}

.vinculos-tabla th:nth-child(4) {
  width: 14%;
}

.vinculos-tabla th:nth-child(5) {
  width: 14%;
}

.vinculos-tabla th:nth-child(6) {
  width: 8%;
}

.vinculos-tabla__trigger,
.vinculos-tabla__ejecucion {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.vinculos-tabla__trigger > .insignia-monitor,
.vinculos-tabla__ejecucion > .insignia-monitor {
  width: max-content;
  max-width: 100%;
}

.vinculos-tabla__sin-acciones {
  display: inline-grid;
  justify-items: center;
  gap: 4px;
}

.vinculos-tabla__trigger strong,
.vinculos-tabla__trigger small,
.vinculos-tabla__ejecucion span {
  overflow-wrap: anywhere;
}

.vinculos-tabla__trigger small,
.vinculos-tabla__ejecucion span,
.vinculos-tabla__sin-acciones small {
  color: var(--texto-suave);
  font-size: 12px;
  line-height: 1.35;
}

.vinculos-tabla__enlace-accion {
  color: var(--texto);
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
}

.vinculos-tabla__enlace-accion:hover,
.vinculos-tabla__enlace-accion:focus-visible {
  color: var(--acento);
  text-decoration: underline;
}

.vinculos-tabla__editar-movil {
  display: none;
}

.vinculos-filtros-movil-toggle {
  display: none;
}

@media (max-width: 767px) {
  .vinculos-tabla__editar-movil {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    color: var(--acento);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
  }

  .vinculos-tabla__editar-movil:hover,
  .vinculos-tabla__editar-movil:focus-visible {
    text-decoration: underline;
  }

  .vinculos-filtros-movil-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie-2);
    color: var(--texto);
    text-align: left;
  }

  .vinculos-filtros-movil-toggle > span {
    flex: 1;
  }

  .vinculos-filtros-movil--abiertos .vinculos-filtros-movil-toggle > .bi-chevron-down {
    transform: rotate(180deg);
  }

  [data-vinculos-shell] .triggers-filtros-rapidos {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  [data-vinculos-shell] .triggers-filtro-rapido {
    flex: 0 0 auto;
  }

  [data-vinculos-shell]:not(.vinculos-filtros-movil--abiertos) .vinculos-filtros-principales > :not(:first-child),
  [data-vinculos-shell]:not(.vinculos-filtros-movil--abiertos) #vinculos-filtros-secundarios,
  [data-vinculos-shell]:not(.vinculos-filtros-movil--abiertos) .vinculos-filtros-acciones {
    display: none;
  }
}

.trigger-dns-seleccion,
.trigger-vinculo-selector {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 16px;
  background: var(--superficie-2);
  color: var(--texto);
}

.trigger-dns-seleccion__contenido,
.trigger-vinculo-selector__contenido {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}

.trigger-dns-seleccion__contenido strong,
.trigger-dns-seleccion__contenido p,
.trigger-vinculo-selector__contenido strong,
.trigger-vinculo-selector__contenido p {
  overflow-wrap: anywhere;
}

.trigger-dns-seleccion__publicacion {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 13px;
  line-height: 1.4;
}

.trigger-dns-seleccion__publicacion--advertencia {
  border-left: 3px solid #b87916;
  padding-left: 8px;
  color: #81520d;
}

html[data-theme="dark"] .trigger-dns-seleccion__publicacion--advertencia {
  color: #f3c778;
}

.trigger-dns-seleccion__enlace {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 600;
}

.trigger-dns-seleccion__enlace[hidden] {
  display: none;
}

.trigger-dns-valor__error {
  margin: 6px 0 0;
  color: var(--bs-danger-text-emphasis, #a52834);
  font-size: 13px;
}

.trigger-dns-valor__error[hidden] {
  display: none;
}

[data-trigger-dns-valor] input[aria-invalid="true"] {
  border-color: var(--bs-danger-border-subtle, #dc3545);
}

.trigger-dns-cambio {
  margin: 8px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie);
  color: var(--texto);
  font-size: 13px;
  overflow-wrap: anywhere;
}

.trigger-dns-cambio:empty { display: none; }

@media (max-width: 575.98px) {
  .trigger-dns-selector-tabla {
    border: 0 !important;
    overflow: visible;
  }

  .trigger-dns-selector-tabla table,
  .trigger-dns-selector-tabla tbody {
    display: block;
    width: 100%;
  }

  .trigger-dns-selector-tabla thead { display: none; }

  .trigger-dns-selector-tabla tr {
    display: block;
    width: 100%;
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: var(--superficie-2);
  }

  .trigger-dns-selector-tabla td {
    display: block;
    width: 100%;
    padding: 5px 0;
    border: 0;
    text-align: left !important;
    overflow-wrap: anywhere;
  }

  .trigger-dns-selector-tabla td[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: var(--texto-suave);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
  }

  .trigger-dns-selector-tabla td:last-child .btn { width: 100%; }
}

.trigger-vinculo-prioridad {
  border-color: var(--borde);
  background: var(--superficie-2);
  color: var(--texto);
}

.trigger-vinculo-prioridad strong {
  color: var(--acento-fuerte);
}

.boton-orden {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 700;
  text-transform: inherit;
  cursor: pointer;
}

.boton-orden::after {
  content: '↕';
  color: var(--texto-suave);
  font-size: 12px;
}

.boton-orden.activo::after {
  content: attr(data-sort-dir);
  text-transform: uppercase;
}

.contenedor-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.chip-simple {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  font-size: 12px;
  font-weight: 700;
}

.chip-simple--ok {
  border-color: rgba(63, 107, 87, 0.18);
  background: var(--exito-fondo);
  color: var(--exito-texto);
}

.usuario-permisos-celda {
  position: relative;
  display: grid;
  gap: 8px;
  align-content: start;
}

.usuario-permisos-popover {
  position: relative;
}

.usuario-permisos-popover summary {
  list-style: none;
}

.usuario-permisos-popover summary::-webkit-details-marker {
  display: none;
}

.usuario-permisos-popover__resumen {
  display: grid;
  gap: 8px;
  cursor: pointer;
}

.usuario-permisos-popover__boton {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: max-content;
  max-width: 100%;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto);
  font-size: 12px;
  font-weight: 700;
}

.usuario-permisos-popover[open] .usuario-permisos-popover__boton {
  border-color: rgba(82, 107, 132, 0.22);
  background: var(--acento-suave);
  color: var(--acento);
}

.usuario-permisos-popover__contador {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(19, 55, 94, 0.08);
  color: inherit;
}

.usuarios-permisos-modal__tabla-wrap {
  border: 1px solid var(--borde);
  border-radius: 12px;
}

.usuarios-permisos-modal__tabla thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--superficie-2);
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.usuarios-permisos-modal__fila--activo td {
  background: color-mix(in srgb, var(--estado-positivo) 7%, var(--superficie));
}

.usuarios-permisos-modal__fila--inactivo td {
  background: var(--superficie);
}

.usuario-permisos-popover__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 35;
  display: grid;
  gap: 16px;
  width: min(460px, calc(100vw - 72px));
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 12px;
  background: var(--superficie);
  box-shadow: 0 22px 48px rgba(10, 25, 46, 0.22);
}

.usuario-permisos-popover__cabecera {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.usuario-permisos-popover__cabecera strong,
.usuario-permiso-item__texto strong {
  display: block;
}

.usuario-permisos-popover__cabecera p {
  margin: 4px 0 0;
  color: var(--texto-suave);
  font-size: 13px;
}

.usuario-permisos-popover__resumen-estados {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.usuario-permisos-tabla-wrap {
  max-height: min(58vh, 560px);
  overflow: auto;
  border: 1px solid var(--borde);
  border-radius: 12px;
}

.usuario-permisos-tabla {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.usuario-permisos-tabla thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 10px 12px;
  border-bottom: 1px solid var(--borde);
  background: var(--superficie-2);
  color: var(--texto-suave);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-align: left;
  text-transform: uppercase;
}

.usuario-permisos-tabla thead th:nth-child(1) {
  width: 62%;
}

.usuario-permisos-tabla thead th:nth-child(2) {
  width: 24%;
}

.usuario-permisos-tabla thead th:nth-child(3) {
  width: 14%;
  text-align: center;
}

.usuario-permisos-tabla tbody td {
  padding: 10px 12px;
  border-top: 1px solid var(--borde);
  vertical-align: middle;
  background: var(--superficie);
}

.usuario-permisos-tabla__fila--activo td {
  background: color-mix(in srgb, var(--estado-positivo) 7%, var(--superficie));
}

.usuario-permisos-tabla__fila--inactivo td {
  background: var(--superficie);
}

.usuario-permisos-tabla__ayuda {
  text-align: center;
}

.usuario-permiso-celda {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}

.usuario-permiso-item__icono {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--superficie-2);
  color: var(--acento);
}

.usuario-permiso-item__texto {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.usuario-permiso-item__ayuda {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: var(--superficie-2);
  color: var(--texto-suave);
  cursor: help;
}

.usuario-permiso-item__ayuda:hover,
.usuario-permiso-item__ayuda:focus {
  color: var(--acento);
  border-color: rgba(82, 107, 132, 0.24);
  outline: none;
}

.estado-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  min-width: 72px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.estado-badge--activo {
  background: var(--exito-fondo);
  color: var(--exito-texto);
}

.estado-badge--inactivo {
  background: var(--error-fondo);
  color: var(--error-texto);
}

.estado-badge--compacto {
  gap: 6px;
  min-width: 0;
  min-height: 24px;
  width: fit-content;
  padding: 0 8px;
  line-height: 1.2;
}

.paginador-listado {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--borde);
  flex-wrap: wrap;
}

.paginador-listado__acciones {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.visor-eventos {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1.8fr) minmax(260px, 0.9fr);
  align-items: start;
  min-width: 0;
}

.visor-eventos__grafico {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  height: 460px;
  min-height: 0;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
}

.visor-eventos__grafico canvas {
  width: 100%;
  height: 100%;
  max-width: 100%;
}

.visor-eventos__lienzo {
  position: relative;
  overflow: hidden;
  min-height: 0;
  min-width: 0;
}

.visor-eventos__lienzo canvas {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.visor-eventos__leyenda {
  margin: 8px 0 0;
  color: var(--texto-suave);
  font-size: 0.84rem;
  line-height: 1.45;
}

.visor-eventos__detalle {
  display: grid;
  gap: 12px;
  min-height: 420px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--borde);
  border-radius: 8px;
  background: var(--superficie-2);
  align-content: start;
}

.visor-eventos__detalle h3 {
  margin: 0;
  font-size: 18px;
}

.visor-eventos__detalle .chips-monitor {
  margin-bottom: 0;
}

.visor-eventos__incidencia {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(221, 168, 67, 0.42);
  border-radius: 8px;
  background: rgba(221, 168, 67, 0.09);
}

.visor-eventos__incidencia-marca {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: #d9ad52;
  background: rgba(221, 168, 67, 0.16);
}

.visor-eventos__incidencia strong {
  color: var(--texto-principal);
}

.visor-eventos__incidencia p {
  margin: 3px 0 0;
  color: var(--texto-suave);
}

.monitor-frescura--vencida {
  color: #d9ad52;
}

.detalle-intervalo {
  margin: 4px 0 0;
  padding: 10px;
  border: 1px solid var(--borde);
  border-radius: 7px;
  background: var(--superficie-1);
}

.detalle-intervalo figcaption {
  margin-bottom: 6px;
  color: var(--texto-suave);
  font-size: 0.78rem;
  font-weight: 600;
}

.detalle-intervalo svg {
  display: block;
  width: 100%;
  height: 118px;
}

.detalle-intervalo__linea {
  fill: none;
  stroke: var(--acento);
  stroke-width: 2;
}

.detalle-intervalo__fallo {
  fill: var(--peligro, #bd5d5d);
}

.detalle-intervalo__punto {
  fill: var(--acento);
}

.detalle-intervalo__guia {
  stroke: var(--borde);
  stroke-width: 1;
  stroke-dasharray: 2 3;
}

.detalle-intervalo__eje {
  fill: var(--texto-suave);
  font-size: 9px;
}

.toast-stack {
  position: fixed;
  right: 16px;
  top: 88px;
  z-index: 2000;
  display: grid;
  gap: 10px;
  width: min(360px, calc(100vw - 32px));
  max-height: calc(100vh - 104px);
  overflow-y: auto;
  padding-right: 4px;
}

.portal-toast {
  --toast-accent: var(--acento);
  position: relative;
  border-color: color-mix(in srgb, var(--toast-accent) 46%, var(--borde)) !important;
  border-radius: 14px;
  background: var(--superficie) !important;
  color: var(--texto);
  overflow: hidden;
  backdrop-filter: blur(10px);
  box-shadow: var(--sombra);
  transition: opacity 180ms ease, transform 180ms ease;
  transform: translateY(0);
}

.portal-toast .toast-header {
  background: var(--superficie-2);
  border-bottom-color: var(--borde);
  color: var(--texto);
  padding: 12px 14px 10px;
}

.portal-toast .toast-body {
  background: var(--superficie);
  color: var(--texto);
  padding: 12px 14px 16px;
}

.portal-toast__cabecera {
  display: flex;
  align-items: center;
  gap: 10px;
}

.portal-toast__estado {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0;
  border: 1px solid color-mix(in srgb, var(--toast-accent) 34%, var(--borde));
  background: color-mix(in srgb, var(--toast-accent) 13%, var(--superficie-2));
  color: var(--toast-accent);
}

.toast--cerrando {
  opacity: 0;
  transform: translateY(-8px) scale(0.985);
}

.portal-toast__encabezado {
  display: grid;
  min-width: 0;
  flex: 1;
  gap: 2px;
}

.portal-toast__titulo {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--toast-accent);
}

.portal-toast__meta {
  color: var(--texto-suave);
  font-size: 12px;
}

.portal-toast__cuerpo {
  display: grid;
  gap: 4px;
}

.portal-toast__contenido {
  font-size: 14px;
  line-height: 1.5;
  color: var(--texto);
}

.portal-toast__progreso {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 10px;
  height: 4px;
  border-radius: 999px;
  background: var(--borde);
  overflow: hidden;
}

.portal-toast__progreso::after {
  content: '';
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
  background: var(--toast-accent);
  transform-origin: left center;
  animation: portal-toast-progress var(--toast-duration) linear forwards;
}

.toast--satisfactorio {
  --toast-accent: var(--estado-positivo);
}

.toast--informativo {
  --toast-accent: var(--acento-fuerte);
}

.toast--advertencia {
  --toast-accent: var(--estado-advertencia);
}

.toast--peligro,
.toast--error {
  --toast-accent: var(--estado-error);
}

.portal-toast .btn-close {
  margin: 0;
  opacity: 0.62;
  align-self: start;
}

.portal-toast .btn-close:hover {
  opacity: 1;
}

@keyframes portal-toast-progress {
  from {
    transform: scaleX(1);
  }

  to {
    transform: scaleX(0);
  }
}

code {
  font-family: Consolas, Monaco, monospace;
  font-size: 12px;
  background: var(--superficie-2);
  padding: 2px 6px;
  border-radius: 4px;
}

@media (max-width: 980px) {
  .hero-monitores__contenido {
    grid-template-columns: 1fr;
  }

  .hero-automatizacion .hero-monitores__contenido {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .hero-agentes .hero-monitores__contenido {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .hero-agente-formulario .hero-monitores__contenido {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .hero-agente-formulario .hero-monitores__kpi-cabecera {
    align-items: center;
    flex-direction: row;
  }

  .hero-accion .hero-monitores__contenido {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .perfil-usuario__grid {
    grid-template-columns: 1fr;
  }

  .perfil-editor__estado {
    align-items: flex-start;
    flex-direction: column;
  }

  .hero-monitores__kpis {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .monitor-formulario__resumen {
    grid-template-columns: 1fr;
  }

  .monitor-formulario__impacto-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .monitor-formulario--telemetria .monitor-formulario__impacto-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .monitor-formulario--telemetria .monitor-formulario__impacto-grid .kpi-resumen:last-child {
    grid-column: 1 / -1;
  }

  .acceso-layout,
  .hero-operativo__contenido,
  .fila-configuracion,
  .configuracion-red-federada__resumen,
  .visor-eventos {
    grid-template-columns: minmax(0, 1fr);
  }

  .rejilla-formulario--tecnica {
    grid-template-columns: 1fr;
  }

  .fila-cabecera-configuracion {
    display: none;
  }

  .formulario-inline {
    grid-template-columns: 1fr;
  }

  .formulario-busqueda {
    grid-template-columns: 1fr;
  }

  .barra-listado {
    grid-template-columns: 1fr;
  }

  .tabla-usuarios-directorio .fila-cabecera-usuarios,
  .tabla-usuarios-directorio .fila-usuario-directorio {
    grid-template-columns: 1fr;
  }

  .usuarios-tabla table {
    table-layout: auto;
  }

  .usuario-permisos-popover__panel {
    right: auto;
    left: 0;
    width: min(440px, calc(100vw - 56px));
  }

  .fila-cabecera-monitores,
  .fila-monitor,
  .fila-cabecera-monitores--sin-acciones,
  .fila-monitor--sin-acciones {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .barra-superior {
    padding: 16px;
    overflow: visible;
    backdrop-filter: none;
  }

  .contenedor-principal {
    width: min(1180px, calc(100vw - 24px));
    padding: 20px 0 32px;
  }

  .cabecera-panel {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 84px);
    right: auto;
    grid-template-columns: 1fr;
    left: calc(env(safe-area-inset-left, 0px) + 12px);
    width: min(360px, calc(100vw - 24px));
    max-height: calc(100dvh - 104px - env(safe-area-inset-bottom, 0px));
    height: auto;
    padding: 10px;
    overflow-y: auto;
    overscroll-behavior: contain;
    align-content: start;
  }

  .franja-impersonacion--cabecera {
    flex-basis: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-width: 0;
    min-height: 0;
    padding: 8px;
    margin-left: 0;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__texto {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
  }

  .franja-impersonacion--cabecera .insignia-suave {
    flex: 0 0 auto;
    padding: 4px 8px;
    font-size: 11px;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__literal {
    flex: 0 0 auto;
    overflow: hidden;
    width: 12px;
    color: transparent;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__literal::before {
    content: ">";
    color: var(--texto-suave);
  }

  .franja-impersonacion--cabecera .franja-impersonacion__usuario,
  .franja-impersonacion--cabecera .franja-impersonacion__real,
  .franja-impersonacion--cabecera .franja-impersonacion__detalle {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__usuario {
    max-width: 34vw;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__real {
    max-width: 24vw;
  }

  .franja-impersonacion--cabecera .franja-impersonacion__detalle {
    display: none;
  }

  .franja-impersonacion--cabecera .boton-secundario {
    min-height: 32px;
    padding: 0 10px;
    white-space: nowrap;
  }

  .cabecera-panel.abierto {
    gap: 10px;
  }

  .navegacion-principal {
    display: grid;
    gap: 4px;
    align-content: start;
    grid-auto-rows: min-content;
    width: 100%;
  }

  .navegacion-principal a,
  .navegacion-desplegable summary {
    width: 100%;
    min-height: 34px;
    padding: 0 10px;
    line-height: 1.2;
  }

  .panel-acceso {
    min-height: auto;
    align-items: start;
  }

  .acceso-intro {
    display: none;
  }

  .caja-acceso {
    order: 1;
  }

  .navegacion-desplegable__menu {
    position: static;
    min-width: 0;
    gap: 4px;
    margin-top: 4px;
    padding: 6px 6px 6px 10px;
    box-shadow: none;
  }

  .navegacion-desplegable__menu a {
    min-height: 32px;
  }

  .usuario-barra {
    display: grid;
    gap: 12px;
    width: 100%;
  }

  .franja-impersonacion:not(.franja-impersonacion--cabecera),
  .franja-impersonacion:not(.franja-impersonacion--cabecera) .franja-impersonacion__texto,
  .paginacion-impersonacion,
  .pie-impersonacion {
    display: grid;
  }

  .fila-impersonacion__acciones {
    justify-items: start;
  }

  .modal-portal__dialogo {
    width: min(1040px, calc(100vw - 16px));
    max-height: calc(100vh - 16px);
    margin: 8px auto;
    padding: 16px;
  }

  .hero-operativo,
  .acceso-intro,
  .caja-acceso,
  .tarjeta {
    padding: 22px;
  }

  .hero-operativo__contenido,
  .seccion-cabecera {
    gap: 12px;
  }

  .hero-operativo__contenido {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .hero-operativo h1,
  .acceso-intro h1 {
    font-size: 28px;
  }

  .hero-etiquetas {
    gap: 8px;
  }

  .hero-operativo .rejilla-resumen {
    grid-template-columns: 1fr;
  }

  .hero-operativo .hero-monitores__kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-monitores__kpi:first-child {
    grid-column: 1 / -1;
  }

  .hero-accion .hero-monitores__kpi:first-child {
    grid-column: auto;
  }

  .hero-monitores__kpi {
    min-height: 88px;
    padding: 12px;
  }

  .hero-monitores__kpi:not(:first-child) .hero-monitores__kpi-cabecera {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .hero-agente-formulario .hero-monitores__kpi .hero-monitores__kpi-cabecera {
    align-items: center;
    flex-direction: row;
  }

  .hero-monitores__kpi .etiqueta {
    overflow-wrap: anywhere;
  }

  .hero-monitores__kpi small {
    display: none;
  }

  .agente-telemetria-hero .hero-monitores__kpis,
  .agente-reglas-hero .hero-monitores__kpis {
    gap: 8px;
  }

  .agente-telemetria-hero .hero-monitores__kpi,
  .agente-reglas-hero .hero-monitores__kpi {
    min-height: 105px;
    padding: 10px;
    gap: 4px;
  }

  .agente-reglas-hero .hero-monitores__kpi {
    min-height: 82px;
  }

  .agente-telemetria-hero .hero-monitores__kpi .hero-monitores__kpi-cabecera,
  .agente-reglas-hero .hero-monitores__kpi .hero-monitores__kpi-cabecera {
    align-items: center;
    flex-direction: row;
    gap: 6px;
  }

  .agente-telemetria-hero .hero-monitores__kpi-cabecera i,
  .agente-reglas-hero .hero-monitores__kpi-cabecera i {
    width: 24px;
    height: 24px;
    font-size: .8rem;
  }

  .agente-telemetria-hero .hero-monitores__kpi .etiqueta,
  .agente-reglas-hero .hero-monitores__kpi .etiqueta {
    font-size: .62rem;
  }

  .agente-telemetria-hero .hero-monitores__kpi strong,
  .agente-reglas-hero .hero-monitores__kpi strong {
    font-size: 1.15rem;
    line-height: 1.2;
  }

  .agente-telemetria-hero .hero-monitores__kpi small,
  .agente-reglas-hero .hero-monitores__kpi small {
    display: block;
    font-size: .66rem;
    line-height: 1.25;
  }

  .hero-monitores__protocolo {
    display: grid;
    grid-template-columns: 1fr;
  }

  .hero-monitores__acciones .btn {
    flex: 1 1 132px;
    justify-content: center;
  }

  .monitores-tabla.table-responsive {
    overflow-x: auto;
  }

  .monitores-tabla table {
    min-width: 940px;
  }

  .monitores-tabla__cadencia-movil {
    display: block !important;
  }

  .monitores-tabla__entidad:hover .monitor-tooltip-denso,
  .monitores-tabla__entidad:focus-within .monitor-tooltip-denso,
  .monitores-tabla__entidad:focus .monitor-tooltip-denso {
    display: none;
  }

  .kpi-resumen {
    min-height: 104px;
    padding: 16px;
  }

  .kpi-resumen strong {
    font-size: 24px;
  }

  .seccion-cabecera {
    display: grid;
    align-items: start;
  }

  .seccion-cabecera > :first-child,
  .seccion-cabecera > .acciones-lista {
    width: 100%;
  }

  .acciones-lista {
    width: 100%;
    grid-template-columns: 1fr;
  }

  .acciones-lista .texto-apoyo {
    display: block;
    width: 100%;
    margin-bottom: 2px;
  }

  .acciones-lista .boton-secundario,
  .acciones-lista .enlace-boton {
    width: 100%;
    justify-content: center;
  }

  .usuario-permisos-popover__panel {
    position: static;
    width: 100%;
    margin-top: 10px;
  }

  .usuario-permisos-tabla-wrap {
    max-height: none;
  }

  .organizacion-listado__cabecera {
    display: grid;
    grid-template-columns: 1fr;
  }

  .trigger-dns-seleccion,
  .trigger-vinculo-selector {
    align-items: stretch;
    flex-direction: column;
  }

  .trigger-dns-seleccion .btn,
  .trigger-vinculo-selector .btn {
    justify-content: center;
    width: 100%;
  }

  .monitor-logico-constructor__cabecera,
  .monitor-logico-traduccion {
    display: grid;
  }

  .monitor-logico-constructor__grid {
    grid-template-columns: 1fr;
  }

  .monitor-logico-equivalencias {
    min-width: 0;
  }

  .monitor-logico-plan__cabecera,
  .monitor-logico-plan__notas {
    display: grid;
  }

  .monitor-logico-plan__notas {
    grid-template-columns: minmax(0, 1fr);
  }

  .monitor-logico-plan__grid {
    grid-template-columns: 1fr;
  }

  .monitor-logico-impacto__cabecera,
  .monitor-logico-impacto__listas {
    display: grid;
  }

  .monitor-logico-impacto__grid {
    grid-template-columns: 1fr;
  }

  .monitor-logico-detalle__principal,
  .monitor-logico-detalle__kpis,
  .monitor-logico-detalle__grid {
    grid-template-columns: 1fr;
  }

  .monitor-logico-canvas__cabecera {
    display: grid;
  }

  .monitor-logico-canvas__resumen {
    grid-template-columns: 1fr;
  }

  .monitor-logico-estudio__body {
    grid-template-columns: 1fr;
    height: auto;
    overflow: auto;
  }

  .monitor-logico-estudio__lienzo-wrap {
    grid-template-rows: auto minmax(460px, 1fr);
  }

  .monitor-logico-estudio__toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .monitor-logico-estudio__compilacion {
    max-width: 100%;
  }

}

@media (max-width: 520px) {
  .email-confirmacion .btn {
    width: 100%;
  }

  .perfil-usuario__identidad-hero {
    align-items: flex-start;
  }

  .perfil-usuario__avatar {
    width: 58px;
    height: 58px;
    flex-basis: 58px;
    border-radius: 16px;
    font-size: 26px;
  }

  .perfil-usuario__definicion div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .perfil-editor__estado-acciones,
  .perfil-editor__acciones-email,
  .perfil-editor__control-accion {
    width: 100%;
  }

  .perfil-editor__estado-acciones,
  .perfil-editor__acciones-email {
    align-items: stretch;
    flex-direction: column;
  }

  .perfil-editor__estado-acciones button,
  .perfil-editor__acciones-email button {
    width: 100%;
  }

  .perfil-editor__control-accion,
  .perfil-editor__campo--solo-lectura {
    grid-template-columns: 1fr;
  }

  .perfil-editor__campo-cabecera {
    flex-direction: column;
  }

  .panel-acceso--cambio-password {
    padding: 18px 0;
  }

  .caja-acceso--cambio-password {
    padding: 18px;
  }

  .cambio-password__cabecera {
    display: grid;
    gap: 16px;
  }

  .cambio-password__identidad {
    width: 100%;
    min-width: 0;
  }

  .seccion-panel .rejilla-resumen {
    grid-template-columns: 1fr;
  }

  .hero-operativo,
  .tarjeta,
  .kpi-resumen {
    border-radius: 8px;
  }
}

.usuario-reinicio-password {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
}

.usuario-reinicio-password .card-header,
.usuario-reinicio-password .modal-content {
  background: var(--bs-body-bg) !important;
  color: var(--bs-body-color);
}

.usuario-reinicio-password__ayuda {
  padding: .75rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
}

.usuario-reinicio-password__ayuda summary {
  cursor: pointer;
  font-weight: 600;
}

.usuario-reinicio-password__ayuda summary:focus-visible {
  outline: 2px solid var(--interaccion-hover);
  outline-offset: 3px;
}

.usuario-reinicio-password__destino {
  display: grid;
  gap: .25rem;
  padding: .75rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  background: var(--bs-tertiary-bg);
}

.usuario-reinicio-password__destino > span:first-child {
  color: var(--bs-secondary-color);
  font-size: .875rem;
}

.usuario-reinicio-password__destino strong {
  overflow-wrap: anywhere;
}

.usuario-reinicio-password__ultimo {
  display: grid;
  grid-template-columns: minmax(10rem, auto) minmax(12rem, 1fr) auto;
  gap: .5rem 1rem;
  align-items: baseline;
  padding: .85rem 1rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  background: var(--bs-tertiary-bg);
}

.usuario-reinicio-password__ultimo time {
  color: var(--bs-secondary-color);
  font-size: .875rem;
}

@media (max-width: 576px) {
  .barra-acciones-filtros--tendencia {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .barra-acciones-filtros--tendencia > .boton-primario,
  .acciones-tendencia__grupo,
  .acciones-tendencia__botones {
    width: 100%;
  }

  .acciones-tendencia__grupo {
    padding: 12px 0 0;
    border-top: 1px solid var(--borde);
    border-left: 0;
  }

  .acciones-tendencia__botones .boton-secundario {
    flex: 1 1 auto;
  }

  .visor-eventos__grafico {
    height: 370px;
  }

  .monitor-detalle__plegable > summary {
    padding: 14px;
  }

  .usuario-reinicio-password .card-header,
  .usuario-reinicio-password .card-body {
    padding-inline: 1rem !important;
  }

  .usuario-reinicio-password__ultimo {
    grid-template-columns: 1fr;
  }

  .usuario-reinicio-password .modal-footer {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .usuario-reinicio-password .modal-footer .btn {
    width: 100%;
  }
}

/* Tema oscuro: capa de compatibilidad mientras los componentes migran a tokens. */
html[data-theme="dark"] body,
html[data-theme="dark"] .panel-general {
  background: var(--fondo);
  color: var(--texto);
}

html[data-theme="dark"] .barra-superior,
html[data-theme="dark"] .menu-usuario-cabecera__panel,
html[data-theme="dark"] .cabecera-panel,
html[data-theme="dark"] .navegacion-desplegable__menu {
  border-color: var(--borde);
  background: var(--cabecera-fondo);
  box-shadow: var(--sombra);
}

html[data-theme="dark"] .menu-usuario-cabecera summary,
html[data-theme="dark"] .boton-menu,
html[data-theme="dark"] .menu-usuario-cabecera__opcion,
html[data-theme="dark"] .boton-secundario {
  border-color: var(--borde);
  background-color: var(--superficie);
  color: var(--texto);
}

html[data-theme="dark"] .menu-usuario-cabecera summary:hover,
html[data-theme="dark"] .menu-usuario-cabecera summary:focus,
html[data-theme="dark"] .menu-usuario-cabecera__opcion:hover,
html[data-theme="dark"] .menu-usuario-cabecera__opcion:focus,
html[data-theme="dark"] .boton-secundario:hover {
  border-color: var(--borde-fuerte);
  background-color: var(--acento-suave);
  color: var(--acento);
}

html[data-theme="dark"] .boton-secundario:hover:not(:disabled) {
  border-color: var(--interaccion-hover);
  background-color: var(--interaccion-hover);
  color: #ffffff;
}

html[data-theme="dark"] .boton-secundario:active:not(:disabled) {
  border-color: var(--interaccion-activa);
  background-color: var(--interaccion-activa);
  color: #ffffff;
}

html[data-theme="dark"] .menu-usuario-cabecera__panel,
html[data-theme="dark"] .cabecera-panel {
  background-image: none;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .tarjeta,
html[data-theme="dark"] .tarjeta-accion,
html[data-theme="dark"] .caja-acceso,
html[data-theme="dark"] .seccion-panel > section,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .modal-portal__dialogo,
html[data-theme="dark"] .estado-vacio {
  border-color: var(--borde);
  background-color: var(--superficie);
  color: var(--texto);
}

html[data-theme="dark"] .bg-white {
  background-color: var(--superficie) !important;
}

/* Utilidades Bootstrap que mantienen el tono claro aunque data-bs-theme sea oscuro. */
html[data-theme="dark"] .bg-light {
  background-color: var(--superficie-2) !important;
  color: var(--texto) !important;
}

html[data-theme="dark"] .text-bg-light {
  border: 1px solid var(--borde);
  background-color: var(--superficie-2) !important;
  color: var(--texto) !important;
}

html[data-theme="dark"] .card-header,
html[data-theme="dark"] .card-footer,
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer {
  border-color: var(--borde);
  background-color: var(--superficie);
  color: var(--texto);
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text {
  border-color: var(--borde);
  background-color: var(--superficie-2);
  color: var(--texto);
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder,
html[data-theme="dark"] .form-control::placeholder {
  color: var(--texto-suave);
  opacity: 0.72;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .form-select:focus {
  border-color: var(--acento);
  background-color: var(--superficie-2);
  color: var(--texto);
  box-shadow: 0 0 0 0.22rem color-mix(in srgb, var(--acento) 18%, transparent);
}

html[data-theme="dark"] .table {
  --bs-table-color: var(--texto);
  --bs-table-bg: var(--superficie);
  --bs-table-border-color: var(--borde);
  --bs-table-striped-color: var(--texto);
  --bs-table-striped-bg: rgba(140, 162, 184, 0.04);
  --bs-table-hover-color: var(--texto);
  --bs-table-hover-bg: rgba(140, 162, 184, 0.07);
  color: var(--texto);
}

html[data-theme="dark"] code {
  background: var(--superficie-2);
  color: #9acbff;
}

html[data-theme="dark"] .texto-apoyo,
html[data-theme="dark"] .descripcion-configuracion,
html[data-theme="dark"] .tarjeta-accion span:last-child,
html[data-theme="dark"] .kpi-resumen small,
html[data-theme="dark"] .resumen-card small {
  color: var(--texto-suave);
}

html[data-theme="dark"] .hero-operativo,
html[data-theme="dark"] .acceso-intro,
html[data-theme="dark"] .hero-monitores {
  border-color: rgba(148, 163, 184, 0.18);
  background: var(--hero-fondo);
  color: var(--hero-texto);
}

html[data-theme="dark"] .hero-operativo p,
html[data-theme="dark"] .acceso-intro p {
  color: rgba(237, 246, 255, 0.78);
}

html[data-theme="dark"] .resumen-card--suave,
html[data-theme="dark"] .kpi-resumen--suave,
html[data-theme="dark"] .resumen-card--neutro,
html[data-theme="dark"] .kpi-resumen--neutro {
  border-color: var(--borde);
  background: var(--superficie);
}

html[data-theme="dark"] .resumen-card--suave strong,
html[data-theme="dark"] .kpi-resumen--suave strong,
html[data-theme="dark"] .resumen-card--neutro strong,
html[data-theme="dark"] .kpi-resumen--neutro strong,
html[data-theme="dark"] .resumen-card--suave .etiqueta,
html[data-theme="dark"] .kpi-resumen--suave .etiqueta,
html[data-theme="dark"] .resumen-card--neutro .etiqueta,
html[data-theme="dark"] .kpi-resumen--neutro .etiqueta {
  color: var(--texto);
}

html[data-theme="dark"] .resumen-card--ok,
html[data-theme="dark"] .kpi-resumen--ok {
  border-color: var(--borde);
  background: var(--superficie);
}

html[data-theme="dark"] .resumen-card--ok strong,
html[data-theme="dark"] .kpi-resumen--ok strong,
html[data-theme="dark"] .resumen-card--ok .etiqueta,
html[data-theme="dark"] .kpi-resumen--ok .etiqueta {
  color: var(--estado-positivo);
}

html[data-theme="dark"] .resumen-card--advertencia,
html[data-theme="dark"] .kpi-resumen--advertencia {
  border-color: var(--borde);
  background: var(--superficie);
}

html[data-theme="dark"] .resumen-card--advertencia strong,
html[data-theme="dark"] .kpi-resumen--advertencia strong,
html[data-theme="dark"] .resumen-card--advertencia .etiqueta,
html[data-theme="dark"] .kpi-resumen--advertencia .etiqueta {
  color: var(--estado-advertencia);
}

html[data-theme="dark"] .resumen-card--alerta,
html[data-theme="dark"] .kpi-resumen--alerta {
  border-color: var(--borde);
  background: var(--superficie);
}

html[data-theme="dark"] .resumen-card--alerta strong,
html[data-theme="dark"] .kpi-resumen--alerta strong,
html[data-theme="dark"] .resumen-card--alerta .etiqueta,
html[data-theme="dark"] .kpi-resumen--alerta .etiqueta {
  color: var(--estado-error);
}

html[data-theme="dark"] .modal-backdrop,
html[data-theme="dark"] .modal-portal {
  background-color: var(--overlay);
}

/* Monitor lógico: superficies propias adaptadas al tema oscuro. */
html[data-theme="dark"] .monitor-formulario__tipo,
html[data-theme="dark"] .monitor-logico-entrada,
html[data-theme="dark"] .monitor-logico-constructor,
html[data-theme="dark"] .monitor-logico-plan,
html[data-theme="dark"] .monitor-logico-impacto,
html[data-theme="dark"] .monitor-logico-canvas,
html[data-theme="dark"] .monitor-logico-estudio {
  border-color: var(--borde) !important;
  background: var(--superficie);
  color: var(--texto);
}

html[data-theme="dark"] .monitor-logico-plan__estado,
html[data-theme="dark"] .monitor-logico-plan__item,
html[data-theme="dark"] .monitor-logico-impacto__grid article,
html[data-theme="dark"] .monitor-logico-impacto__item,
html[data-theme="dark"] .monitor-logico-canvas__resumen-item,
html[data-theme="dark"] .monitor-logico-estudio__panel,
html[data-theme="dark"] .monitor-logico-estudio__toolbar,
html[data-theme="dark"] .monitor-logico-estudio__nodo,
html[data-theme="dark"] .monitor-logico-estudio__simulacion-entrada,
html[data-theme="dark"] .monitor-logico-estudio__simulacion-resultado {
  border-color: var(--borde);
  background: var(--superficie-2);
  color: var(--texto);
  box-shadow: none;
}

html[data-theme="dark"] .monitor-logico-estudio__header,
html[data-theme="dark"] .monitor-logico-estudio__footer,
html[data-theme="dark"] .acciones-formulario--sticky {
  border-color: var(--borde);
  background: color-mix(in srgb, var(--superficie) 94%, transparent);
  color: var(--texto);
  box-shadow: var(--sombra);
}

html[data-theme="dark"] .monitor-logico-selector__fila--seleccionada {
  background: var(--acento-suave);
}

html[data-theme="dark"] .monitor-logico-selector__fila--seleccionada td,
html[data-theme="dark"] .monitor-logico-traduccion,
html[data-theme="dark"] .monitor-logico-plan__notas,
html[data-theme="dark"] .monitor-logico-impacto__listas {
  border-color: var(--borde);
}

html[data-theme="dark"] .monitor-logico-entrada__icono,
html[data-theme="dark"] .monitor-logico-traduccion__lista dt,
html[data-theme="dark"] .monitor-logico-equivalencias code,
html[data-theme="dark"] .monitor-logico-estudio__simbolo,
html[data-theme="dark"] .monitor-logico-estudio__compilacion-pill {
  border-color: var(--borde);
  background: var(--acento-suave);
  color: var(--acento-fuerte);
  box-shadow: none;
}

html[data-theme="dark"] .monitor-logico-estudio__simbolo img {
  mix-blend-mode: normal;
}

html[data-theme="dark"] .monitor-logico-estudio__lienzo {
  border-color: var(--borde);
  background:
    linear-gradient(rgba(140, 162, 184, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140, 162, 184, 0.08) 1px, transparent 1px),
    var(--fondo-suave);
  background-size: 32px 32px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--borde) 52%, transparent);
}

html[data-theme="dark"] .monitor-logico-plan__estado--ok,
html[data-theme="dark"] .monitor-logico-impacto__estado,
html[data-theme="dark"] .monitor-logico-impacto__item,
html[data-theme="dark"] .monitor-logico-estudio__simulacion-resultado--ok,
html[data-theme="dark"] .monitor-logico-estudio__nodo--ok {
  border-color: color-mix(in srgb, var(--estado-positivo) 45%, var(--borde));
  background: var(--exito-fondo);
  color: var(--estado-positivo);
}

html[data-theme="dark"] .monitor-logico-plan__estado--alerta,
html[data-theme="dark"] .monitor-logico-impacto--warning .monitor-logico-impacto__estado,
html[data-theme="dark"] .monitor-logico-impacto__item--warning,
html[data-theme="dark"] .monitor-logico-estudio__compilacion-pill--sugerencia,
html[data-theme="dark"] .monitor-logico-canvas__compatibilidad {
  border-color: color-mix(in srgb, var(--estado-advertencia) 42%, var(--borde));
  background: color-mix(in srgb, var(--estado-advertencia) 14%, var(--superficie-2));
  color: var(--estado-advertencia);
}

html[data-theme="dark"] .monitor-logico-impacto--error .monitor-logico-impacto__estado,
html[data-theme="dark"] .monitor-logico-impacto__item--error,
html[data-theme="dark"] .monitor-logico-estudio__compilacion-pill--error,
html[data-theme="dark"] .monitor-logico-estudio__simulacion-resultado--alerta,
html[data-theme="dark"] .monitor-logico-estudio__nodo--alerta {
  border-color: color-mix(in srgb, var(--estado-error) 42%, var(--borde));
  background: var(--error-fondo);
  color: var(--estado-error);
}

html[data-theme="dark"] .monitor-logico-impacto--warning {
  border-color: color-mix(in srgb, var(--estado-advertencia) 42%, var(--borde)) !important;
}

html[data-theme="dark"] .monitor-logico-impacto--error {
  border-color: color-mix(in srgb, var(--estado-error) 42%, var(--borde)) !important;
}

html[data-theme="dark"] .monitor-logico-impacto__estado,
html[data-theme="dark"] .monitor-logico-impacto__item {
  color: var(--estado-positivo);
}

html[data-theme="dark"] .monitor-logico-canvas__compatibilidad strong {
  color: inherit;
}

/* DNS: los paneles operativos se definieron inicialmente con fondos claros propios. */
html[data-theme="dark"] .dns-formulario-resumen-operativo,
html[data-theme="dark"] .dns-registro-formulario__resumen-operativo,
html[data-theme="dark"] .dns-registro-formulario__gobernanza,
html[data-theme="dark"] .dns-registro-formulario__contrato-gobernanza,
html[data-theme="dark"] .dns-registro-formulario__bloque-avanzado {
  border-color: var(--borde);
  background: var(--superficie-2);
  color: var(--texto);
}

html[data-theme="dark"] .dns-formulario-resumen-operativo__cabecera,
html[data-theme="dark"] .dns-registro-formulario__gobernanza-cabecera {
  color: var(--acento-2);
}

html[data-theme="dark"] .dns-formulario-alerta {
  border-color: color-mix(in srgb, var(--estado-advertencia) 42%, var(--borde));
  background: color-mix(in srgb, var(--estado-advertencia) 14%, var(--superficie-2));
  color: var(--estado-advertencia);
}

html[data-theme="dark"] .dns-formulario-alerta strong {
  color: inherit;
}

html[data-theme="dark"] .dns-registro-formulario__gobernanza-matriz span,
html[data-theme="dark"] .dns-registro-formulario__campo-bloqueado {
  border-color: var(--borde);
  background: var(--superficie);
  color: var(--texto-suave);
}

html[data-theme="dark"] .dns-registros-tabla__fila-gobernada {
  --bs-table-bg: color-mix(in srgb, var(--estado-advertencia) 10%, var(--superficie));
  --bs-table-hover-bg: color-mix(in srgb, var(--estado-advertencia) 16%, var(--superficie));
}

html[data-theme="dark"] .dns-registros-tabla__fila-sistema {
  --bs-table-bg: color-mix(in srgb, var(--estado-error) 12%, var(--superficie));
  --bs-table-hover-bg: color-mix(in srgb, var(--estado-error) 18%, var(--superficie));
  box-shadow:
    inset 7px 0 0 var(--estado-error),
    inset 0 1px 0 color-mix(in srgb, var(--estado-error) 28%, transparent),
    inset 0 -1px 0 color-mix(in srgb, var(--estado-error) 28%, transparent);
}

html[data-theme="dark"] .dns-registros-tabla__fila-sistema td {
  border-color: color-mix(in srgb, var(--estado-error) 30%, var(--borde));
}

html[data-theme="dark"] .dns-registros-tabla__fila-sistema .dns-registros-tabla__principal > strong {
  color: var(--texto);
}

html[data-theme="dark"] .dns-formulario-rname-estado--ok {
  color: var(--estado-positivo);
}

html[data-theme="dark"] .dns-registros-tabla__aviso-sistema {
  border-color: color-mix(in srgb, var(--estado-error) 48%, var(--borde));
  background: color-mix(in srgb, var(--estado-error) 16%, var(--superficie-2));
  color: var(--estado-error);
  box-shadow: none;
}

.auditoria-filtros {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  align-items: end;
}

.auditoria-accion {
  color: var(--texto);
  border-color: var(--borde-fuerte);
  background: transparent;
}

.auditoria-accion:hover,
.auditoria-accion:focus-visible,
.auditoria-accion:active,
.auditoria-accion[aria-expanded="true"] {
  color: var(--hero-texto);
  border-color: var(--acento-fuerte);
  background: var(--acento-fuerte);
}

.auditoria-accion:focus-visible {
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--acento) 32%, transparent);
}

.auditoria-accion:disabled {
  color: var(--texto-suave);
  border-color: var(--borde);
  background: transparent;
}

.auditoria-integridad__resumen {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.auditoria-integridad__aviso {
  border-color: color-mix(in srgb, var(--acento) 32%, var(--borde));
  background: color-mix(in srgb, var(--acento) 12%, var(--superficie-2));
  color: var(--texto);
}

.auditoria-integridad__cadenas,
.auditoria-integridad__incidentes > div {
  display: grid;
  gap: 1rem;
}

.auditoria-integridad__incidentes {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
}

.auditoria-integridad__incidentes h3 {
  margin: 0;
  font-size: 1.05rem;
}

.auditoria-integridad-cadena,
.auditoria-integridad-incidente {
  display: grid;
  gap: .85rem;
  border: 1px solid var(--borde);
  border-radius: 1rem;
  background: var(--superficie-2);
  padding: 1rem;
}

.auditoria-integridad-cadena {
  border-left: .35rem solid var(--acento-2);
}

.auditoria-integridad-cadena--integra {
  border-left-color: var(--estado-positivo);
}

.auditoria-integridad-cadena--pendiente,
.auditoria-integridad-cadena--incompleta,
.auditoria-integridad-cadena--sin_datos {
  border-left-color: var(--estado-advertencia);
}

.auditoria-integridad-cadena--rota {
  border-left-color: var(--estado-error);
}

.auditoria-integridad-cadena__cabecera {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.auditoria-integridad-cadena__cabecera p,
.auditoria-integridad-incidente p {
  margin: .25rem 0 0;
  color: var(--texto-suave);
}

.auditoria-integridad-detalle {
  border: 1px solid var(--borde);
  border-radius: .85rem;
  background: var(--superficie);
  padding: .75rem;
}

.auditoria-integridad-detalle summary {
  cursor: pointer;
  color: var(--acento-2);
  font-weight: 700;
}

.auditoria-integridad-detalle dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .75rem;
  margin: .85rem 0;
}

.auditoria-integridad-detalle dt {
  color: var(--texto-suave);
  font-size: .82rem;
}

.auditoria-integridad-detalle dd {
  margin: 0;
  color: var(--texto);
  font-weight: 700;
}

.auditoria-integridad-detalle pre {
  max-height: 260px;
  overflow: auto;
  margin: 0;
  border-radius: .75rem;
  background: rgba(0, 0, 0, .22);
  color: var(--texto);
  padding: .75rem;
  white-space: pre-wrap;
}

.auditoria-integridad-incidente form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: .75rem;
  align-items: end;
}

.auditoria-integridad-incidente form label {
  display: grid;
  gap: .35rem;
}

.auditoria-integridad-incidente form label > span {
  color: var(--texto-suave);
  font-size: .9rem;
}

.auditoria-integridad-incidente form small {
  grid-column: 1 / -1;
}

.auditoria-filtros label {
  display: grid;
  gap: .35rem;
}

.auditoria-filtros label > span {
  color: var(--texto-suave);
  font-size: .9rem;
}

.auditoria-filtros__campo-ayuda {
  display: grid;
  gap: .35rem;
  align-content: end;
}

.auditoria-filtros__campo-ayuda label {
  color: var(--texto-suave);
  font-size: .9rem;
}

.auditoria-tipo-evento {
  position: relative;
  display: grid;
  gap: .35rem;
}

.auditoria-tipo-evento__opciones {
  position: absolute;
  z-index: 9;
  top: 100%;
  right: 0;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie);
  box-shadow: var(--sombra);
  padding: .35rem;
}

.auditoria-tipo-evento__opcion {
  display: grid;
  gap: .15rem;
  width: 100%;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: var(--texto);
  padding: .55rem .65rem;
  text-align: left;
}

.auditoria-tipo-evento__opcion small {
  color: var(--texto-suave);
  overflow-wrap: anywhere;
}

.auditoria-tipo-evento__opcion:hover,
.auditoria-tipo-evento__opcion:focus-visible {
  background: color-mix(in srgb, var(--acento) 15%, var(--superficie-2));
  outline: none;
}

.auditoria-filtros__sujeto {
  position: relative;
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
  margin: 0;
  border: 1px solid var(--borde);
  border-radius: .85rem;
  padding: 1rem;
}

.auditoria-filtros__sujeto legend {
  float: none;
  width: auto;
  margin: 0;
  padding: 0 .35rem;
  color: var(--texto);
  font-size: .9rem;
  font-weight: 700;
}

.auditoria-sujeto__busqueda {
  position: relative;
}

.auditoria-sujeto__opciones {
  position: absolute;
  z-index: 8;
  top: 100%;
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie);
  box-shadow: var(--sombra);
  padding: .35rem;
}

.auditoria-sujeto__opcion {
  display: block;
  width: 100%;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: var(--texto);
  padding: .55rem .65rem;
  text-align: left;
}

.auditoria-sujeto__opcion:hover,
.auditoria-sujeto__opcion:focus-visible {
  background: color-mix(in srgb, var(--acento) 15%, var(--superficie-2));
  outline: none;
}

.auditoria-sujeto__estado {
  grid-column: 1 / -1;
  margin: 0;
}

.auditoria-filtros-avanzados {
  grid-column: 1 / -1;
  border: 1px solid var(--borde);
  border-radius: .85rem;
  padding: 1rem;
}

.auditoria-filtros-avanzados > summary {
  width: fit-content;
  color: var(--acento-2);
  cursor: pointer;
  font-weight: 700;
}

.auditoria-filtros-avanzados__campos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin-top: 1rem;
}

.auditoria-filtros__actor,
.auditoria-filtros__causalidad {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
  margin: 0;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  padding: .85rem;
}

.auditoria-filtros__actor {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.auditoria-filtros__actor legend,
.auditoria-filtros__causalidad legend {
  float: none;
  width: auto;
  margin: 0;
  padding: 0 .35rem;
  color: var(--texto);
  font-size: .9rem;
  font-weight: 700;
}

.auditoria-filtros__actor legend > span,
.auditoria-filtros__causalidad legend > span {
  vertical-align: middle;
}

.auditoria-filtros__actor legend > button,
.auditoria-filtros__causalidad legend > button {
  margin-left: .3rem;
  vertical-align: middle;
}

.auditoria-actor__busqueda {
  position: relative;
}

.auditoria-actor__opciones {
  position: absolute;
  z-index: 8;
  top: 100%;
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie);
  box-shadow: var(--sombra);
  padding: .35rem;
}

.auditoria-actor__opcion {
  display: block;
  width: 100%;
  border: 0;
  border-radius: .55rem;
  background: transparent;
  color: var(--texto);
  padding: .55rem .65rem;
  text-align: left;
}

.auditoria-actor__opcion:hover,
.auditoria-actor__opcion:focus-visible {
  background: color-mix(in srgb, var(--acento) 15%, var(--superficie-2));
  outline: none;
}

.auditoria-actor__estado {
  grid-column: 1 / -1;
  margin: 0;
}

.auditoria-filtros__acciones,
.hero-auditoria .hero-operativo__textos > .insignia-suave {
  justify-self: start;
}

.auditoria-cronologia__pie {
  display: flex;
  gap: .75rem;
  align-items: center;
  flex-wrap: wrap;
}

.auditoria-lista {
  overflow-x: auto;
  border: 1px solid var(--borde);
  border-radius: 1rem;
  background: var(--superficie-2);
}

.auditoria-tabla {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}

.auditoria-tabla th,
.auditoria-tabla td {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--borde);
  text-align: left;
  vertical-align: top;
}

.auditoria-tabla th {
  color: var(--texto-suave);
  font-size: .78rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.auditoria-tabla tbody tr:last-child td {
  border-bottom: 0;
}

.auditoria-tabla td strong,
.auditoria-tabla td small,
.auditoria-tabla td span {
  display: block;
}

.auditoria-tabla td small {
  margin-top: .2rem;
  color: var(--texto-suave);
}

.auditoria-tabla__detalle {
  border-left: .25rem solid var(--acento-2);
  border-radius: .85rem;
  background: var(--superficie);
  padding: .85rem;
}

.auditoria-tabla__detalle p {
  margin: 0 0 .65rem;
}

.auditoria-tabla__detalle dl {
  display: grid;
  gap: .45rem;
  margin: 0;
}

.auditoria-tabla__detalle dl div {
  display: grid;
  grid-template-columns: 95px minmax(0, 1fr);
  gap: .5rem;
}

.auditoria-tabla__detalle dt {
  color: var(--texto-suave);
}

.auditoria-tabla__detalle dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.auditoria-cambios {
  margin-bottom: .85rem;
  border: 1px solid color-mix(in srgb, var(--acento-2) 34%, var(--borde));
  border-radius: .75rem;
  overflow: hidden;
  background: color-mix(in srgb, var(--acento-2) 5%, var(--superficie));
}

.auditoria-cambios__titulo {
  display: flex;
  align-items: center;
  gap: .5rem;
  border-bottom: 1px solid var(--borde);
  padding: .65rem .75rem;
  color: var(--acento-2);
}

.auditoria-cambios__tabla {
  display: grid;
}

.auditoria-cambios__fila {
  display: grid;
  grid-template-columns: minmax(130px, .75fr) repeat(2, minmax(0, 1fr));
}

.auditoria-cambios__fila + .auditoria-cambios__fila {
  border-top: 1px solid var(--borde);
}

.auditoria-cambios__fila > * {
  min-width: 0;
  padding: .65rem .75rem;
  overflow-wrap: anywhere;
}

.auditoria-cambios__fila > * + * {
  border-left: 1px solid var(--borde);
}

.auditoria-cambios__cabecera {
  background: color-mix(in srgb, var(--borde) 38%, transparent);
  color: var(--texto-suave);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.auditoria-cambios__valor--antes {
  box-shadow: inset 3px 0 color-mix(in srgb, var(--acento-2) 48%, transparent);
}

.auditoria-cambios__valor--despues {
  box-shadow: inset 3px 0 var(--acento-2);
  background: color-mix(in srgb, var(--acento-2) 7%, transparent);
}

.auditoria-cambios__valor pre {
  max-height: 16rem;
  margin: 0;
  overflow: auto;
  color: inherit;
  font: inherit;
  white-space: pre-wrap;
}

.auditoria-cambios__ausencia {
  color: var(--texto-suave);
  font-style: italic;
}

.auditoria-correlacion__insignia {
  display: inline-flex !important;
  align-items: center;
  gap: .3rem;
  width: fit-content;
  margin-top: .3rem;
  border: 1px solid color-mix(in srgb, var(--acento-2) 55%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--acento-2) 12%, transparent);
  color: var(--acento-2);
  padding: .15rem .45rem;
  font-size: .72rem;
  font-weight: 700;
  cursor: help;
}

.auditoria-tooltip {
  --bs-tooltip-bg: var(--superficie-2);
  --bs-tooltip-color: var(--texto);
  --bs-tooltip-max-width: 270px;
}

.auditoria-tooltip .tooltip-inner {
  border: 1px solid var(--borde);
  box-shadow: var(--sombra);
  text-align: left;
}

.auditoria-evento__tecnico {
  margin-top: .75rem;
  border-top: 1px solid var(--borde);
  padding-top: .75rem;
}

.auditoria-evento__tecnico summary {
  width: fit-content;
  color: var(--acento-2);
  cursor: pointer;
  font-weight: 700;
}

.auditoria-evento__tecnico dl {
  margin-top: .75rem;
}

.auditoria-correlacion {
  display: grid;
  gap: .75rem;
  margin-top: .85rem;
  border-top: 1px solid var(--borde);
  padding-top: .85rem;
}

.auditoria-correlacion > button {
  width: fit-content;
}

.auditoria-correlacion__contenido,
.auditoria-correlacion__lista {
  display: grid;
  gap: .65rem;
}

.auditoria-correlacion__contenido[hidden] {
  display: none;
}

.auditoria-correlacion__evento {
  display: grid;
  grid-template-columns: minmax(150px, .35fr) minmax(0, 1fr);
  gap: .75rem;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie-2);
  padding: .75rem;
}

.auditoria-correlacion__evento time,
.auditoria-correlacion__evento span {
  color: var(--texto-suave);
  font-size: .85rem;
}

.auditoria-correlacion__evento .auditoria-evento__tecnico {
  grid-column: 1 / -1;
  margin-top: 0;
}

.auditoria-correlacion__paginacion {
  display: flex;
  gap: .5rem;
  align-items: center;
  flex-wrap: wrap;
}

.auditoria-correlacion__paginacion span {
  min-width: 5.5rem;
  color: var(--texto);
  font-weight: 700;
  text-align: center;
}

.auditoria-paginacion__estado {
  min-width: 6rem;
  color: var(--texto);
  font-weight: 700;
  text-align: center;
}

.auditoria-grupo {
  border: 1px solid var(--borde);
  border-radius: 1rem;
  background: var(--superficie-2);
  overflow: hidden;
}

.auditoria-grupo__cabecera {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--borde);
  color: var(--texto-suave);
}

.auditoria-grupo__titulo {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  color: var(--texto);
  font-weight: 700;
}

.auditoria-evento {
  display: grid;
  grid-template-columns: minmax(110px, 150px) minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem;
}

.auditoria-evento + .auditoria-evento {
  border-top: 1px solid var(--borde);
}

.auditoria-evento__marca {
  display: grid;
  align-content: start;
  gap: .25rem;
  color: var(--texto-suave);
  font-size: .9rem;
}

.auditoria-evento__marca span {
  color: var(--acento-2);
  font-weight: 700;
}

.auditoria-evento__cuerpo {
  display: grid;
  gap: .45rem;
}

.auditoria-evento__titulo,
.auditoria-evento__meta {
  display: flex;
  gap: .65rem;
  align-items: center;
  flex-wrap: wrap;
}

.auditoria-evento__cuerpo p {
  margin: 0;
  color: var(--texto);
}

.auditoria-evento__meta {
  color: var(--texto-suave);
  font-size: .9rem;
}

.auditoria-evento__meta span {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

.auditoria-cronologia__vacio {
  display: grid;
  gap: .35rem;
  justify-items: center;
  padding: 2rem;
  border: 1px dashed var(--borde);
  border-radius: 1rem;
  color: var(--texto-suave);
}

.auditoria-cronologia__vacio i {
  font-size: 2rem;
  color: var(--acento-2);
}

@media (max-width: 720px) {
  .auditoria-filtros__sujeto {
    grid-template-columns: 1fr;
  }

  .auditoria-filtros-avanzados__campos,
  .auditoria-filtros__actor,
  .auditoria-filtros__causalidad {
    grid-template-columns: 1fr;
  }

  .auditoria-correlacion__evento {
    grid-template-columns: 1fr;
  }

  .auditoria-cambios__cabecera {
    display: none;
  }

  .auditoria-cambios__fila {
    grid-template-columns: 1fr;
  }

  .auditoria-cambios__fila > * + * {
    border-top: 1px solid var(--borde);
    border-left: 0;
  }

  .auditoria-cambios__valor::before {
    display: block;
    margin-bottom: .2rem;
    color: var(--texto-suave);
    content: attr(data-label);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .auditoria-lista {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .auditoria-tabla,
  .auditoria-tabla tbody,
  .auditoria-tabla tr,
  .auditoria-tabla td {
    display: block;
    min-width: 0;
    width: 100%;
  }

  .auditoria-tabla thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .auditoria-tabla__fila {
    margin-bottom: .85rem;
    border: 1px solid var(--borde);
    border-radius: .85rem;
    background: var(--superficie-2);
    overflow: visible;
  }

  .auditoria-tabla__fila td {
    display: grid;
    grid-template-columns: minmax(90px, .4fr) minmax(0, 1fr);
    gap: .75rem;
    border-bottom: 1px solid var(--borde);
  }

  .auditoria-tabla__fila td::before {
    content: attr(data-label);
    color: var(--texto-suave);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .auditoria-tabla__fila-detalle td {
    display: block;
  }

  .auditoria-tabla__fila-detalle td::before {
    display: none;
  }

  .auditoria-evento {
    grid-template-columns: 1fr;
  }

  .auditoria-integridad-cadena__cabecera,
  .auditoria-integridad-incidente form {
    display: grid;
    grid-template-columns: 1fr;
  }
}
.insignia-monitor--federada {
  color: #0a4f66;
  background: #d9f3fb;
  border-color: #8bd3e6;
}

.dashboard-causalidad-federada {
  font-size: 0.875rem;
}

.dashboard-causalidad-federada summary {
  color: var(--bs-link-color);
  cursor: pointer;
  font-weight: 600;
}

.dashboard-causalidad-federada li + li {
  margin-top: 0.35rem;
}

/* Navegación de espacios remotos federados */
.rejilla-instalaciones-remotas,
.rejilla-destinos-remotos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
  gap: 1rem;
}

.instalacion-remota-card,
.destino-remoto {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .85rem;
  color: var(--texto);
  background: var(--superficie-2);
  text-decoration: none;
  transition: border-color .18s ease, transform .18s ease;
}

.instalacion-remota-card:hover,
.destino-remoto:hover {
  border-color: var(--acento);
  color: var(--texto);
  transform: translateY(-2px);
}

.instalacion-remota-card__icono {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  border-radius: .85rem;
  color: var(--acento);
  background: var(--acento-suave);
  font-size: 1.35rem;
}

.instalacion-remota-card__contenido,
.destino-remoto span {
  display: grid;
  min-width: 0;
  gap: .2rem;
  flex: 1;
}

.instalacion-remota-card code,
.instalacion-remota-card small,
.destino-remoto small {
  color: var(--texto-suave);
}

.miga-remota {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  color: var(--texto-suave);
  font-size: .9rem;
}

.miga-remota a {
  color: var(--acento-fuerte);
  text-decoration: none;
}

.espacio-remoto {
  position: relative;
  overflow: visible;
  border: 1px solid var(--borde);
  border-radius: 1rem;
  background: var(--superficie);
  box-shadow: var(--sombra);
}

.espacio-remoto__barra {
  position: relative;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--borde);
  border-radius: 1rem 1rem 0 0;
  background: var(--superficie-2);
}

.espacio-remoto__identidad-compacta {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-width: 0;
}

.espacio-remoto__identidad-compacta > div {
  display: grid;
  min-width: 0;
  gap: .15rem;
}

.espacio-remoto__identidad-compacta code {
  color: var(--texto-suave);
  font-size: .75rem;
}

.espacio-remoto__acciones {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
}

.espacio-remoto__concesion-compacta {
  color: var(--texto-suave);
  font-size: .8rem;
  white-space: nowrap;
}

.espacio-remoto__selector { position: relative; }

.espacio-remoto__selector > summary {
  display: grid;
  grid-template-columns: 1.3rem minmax(8rem, 1fr) 1rem;
  align-items: center;
  gap: .65rem;
  min-width: 13.5rem;
  padding: .55rem .7rem;
  border: 1px solid var(--borde-fuerte);
  border-radius: .65rem;
  color: var(--texto);
  background: var(--superficie);
  cursor: pointer;
  list-style: none;
}

.espacio-remoto__selector > summary::-webkit-details-marker { display: none; }
.espacio-remoto__selector > summary > span { display: grid; }
.espacio-remoto__selector > summary small { color: var(--texto-suave); font-size: .68rem; text-transform: uppercase; }
.espacio-remoto__selector > summary strong { font-size: .9rem; }
.espacio-remoto__selector-chevron { transition: transform .18s ease; }
.espacio-remoto__selector[open] .espacio-remoto__selector-chevron { transform: rotate(180deg); }

.espacio-remoto__desplegable {
  position: absolute;
  top: calc(100% + .5rem);
  right: 0;
  width: min(28rem, calc(100vw - 2rem));
  max-height: min(34rem, calc(100vh - 9rem));
  overflow-y: auto;
  padding: .65rem;
  border: 1px solid var(--borde-fuerte);
  border-radius: .8rem;
  background: var(--superficie);
  box-shadow: var(--sombra);
}

.espacio-remoto__desplegable-cabecera {
  display: grid;
  gap: .15rem;
  padding: .45rem .55rem .7rem;
  border-bottom: 1px solid var(--borde);
}

.espacio-remoto__desplegable-cabecera small { color: var(--texto-suave); }

.espacio-remoto__lateral {
  padding: 1rem;
  border-right: 1px solid var(--borde);
  background: var(--superficie-2);
}

.espacio-remoto__identidad {
  padding: .5rem .5rem 1rem;
}

.espacio-remoto__identidad h2 {
  margin: .65rem 0 .3rem;
  font-size: 1.15rem;
}

.espacio-remoto__concesion {
  display: grid;
  gap: .15rem;
  margin-bottom: .75rem;
  padding: .75rem;
  border: 1px dashed var(--borde-fuerte);
  border-radius: .7rem;
}

.espacio-remoto__concesion small {
  color: var(--texto-suave);
}

.espacio-remoto__menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .25rem;
  padding-top: .5rem;
}

.espacio-remoto__menu a {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .65rem;
  padding: .7rem .75rem;
  border-radius: .6rem;
  color: var(--texto-suave);
  text-decoration: none;
}

.espacio-remoto__menu a:hover,
.espacio-remoto__menu a.activo {
  color: var(--texto);
  background: var(--acento-suave);
}

.espacio-remoto__menu a.activo {
  box-shadow: inset 3px 0 0 var(--acento);
}

.espacio-remoto__disponible {
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--estado-positivo);
}

.espacio-remoto__contenido {
  min-width: 0;
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

.destino-remoto > i:first-child {
  color: var(--acento);
  font-size: 1.25rem;
}

.submenus-remotos {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid var(--borde);
}

.submenus-remotos a {
  padding: .5rem .75rem;
  border: 1px solid var(--borde);
  border-radius: 999px;
  color: var(--texto-suave);
  font-size: .9rem;
  text-decoration: none;
}

.submenus-remotos a:hover,
.submenus-remotos a.activo {
  border-color: var(--acento);
  color: var(--texto);
  background: var(--acento-suave);
}

.estado-vacio-remoto {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem;
  border: 1px dashed var(--borde-fuerte);
  border-radius: .75rem;
  color: var(--texto-suave);
  background: var(--superficie-2);
}

.estado-vacio-remoto > i {
  color: var(--acento);
  font-size: 1.5rem;
}

.resumen-organizacion-remota {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.resumen-organizacion-remota article {
  display: grid;
  gap: .2rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie-2);
}

.resumen-organizacion-remota article.con-retiradas { border-color: var(--estado-advertencia); }
.resumen-organizacion-remota span { color: var(--texto-suave); font-size: .82rem; }
.resumen-organizacion-remota strong { font-size: 1.45rem; }

.arbol-organizacion-remota { display: grid; gap: .65rem; }

.nodo-organizacion-remota {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  gap: .85rem;
  padding: 1rem;
  border: 1px solid var(--borde);
  border-left: 3px solid var(--acento);
  border-radius: .75rem;
  background: var(--superficie-2);
}

.nodo-organizacion-remota--nivel-1 { margin-left: 1.5rem; }
.nodo-organizacion-remota--nivel-2 { margin-left: 3rem; }

.nodo-organizacion-remota__icono {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: .6rem;
  color: var(--acento-fuerte);
  background: var(--acento-suave);
}

.nodo-organizacion-remota h3 { margin: .45rem 0 .1rem; font-size: 1.1rem; }
.nodo-organizacion-remota p { margin-top: .75rem; color: var(--texto-suave); }

.ruta-organizacion-remota,
.metadatos-organizacion-remota {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  color: var(--texto-suave);
  font-size: .8rem;
}

.ruta-organizacion-remota .opaco { font-style: italic; }
.metadatos-organizacion-remota { justify-content: space-between; }

.retiradas-organizacion-remota {
  padding: 1rem;
  border: 1px dashed var(--borde-fuerte);
  border-radius: .75rem;
  color: var(--texto-suave);
}

.retiradas-organizacion-remota article {
  display: grid;
  grid-template-columns: 5rem minmax(8rem, 1fr) minmax(10rem, 2fr);
  gap: .75rem;
}

.resumen-monitores-remotos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.resumen-monitores-remotos article {
  display: grid;
  gap: .2rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie-2);
}

.resumen-monitores-remotos span { color: var(--texto-suave); font-size: .82rem; }
.resumen-monitores-remotos strong { font-size: 1.45rem; }
.inventario-monitores-remotos { display: grid; gap: .85rem; }

.aviso-trigger-remoto {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--acento) 55%, var(--borde));
  border-radius: .75rem;
  color: var(--texto-suave);
  background: var(--acento-suave);
}

.aviso-trigger-remoto > i { color: var(--acento); font-size: 1.45rem; }
.resumen-triggers-remotos {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.resumen-triggers-remotos article {
  display: grid;
  gap: .2rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie-2);
}

.resumen-triggers-remotos span { color: var(--texto-suave); font-size: .82rem; }
.resumen-triggers-remotos strong { font-size: 1.45rem; }
.inventario-triggers-remotos { display: grid; gap: .85rem; }

.trigger-remoto-card,
.trigger-remoto-detalle {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .8rem;
  background: var(--superficie-2);
}

.trigger-remoto-card header,
.trigger-remoto-detalle__cabecera {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.trigger-remoto-card h3,
.trigger-remoto-detalle h3 { margin: 0; font-size: 1.15rem; }
.trigger-remoto-card p,
.trigger-remoto-detalle__cabecera p { color: var(--texto-suave); }

.trigger-remoto-card__resultado {
  display: grid;
  align-content: start;
  min-width: 9rem;
  text-align: right;
}

.trigger-remoto-card__resultado small,
.trigger-remoto-card__resultado time,
.trigger-remoto-detalle__accion small { color: var(--texto-suave); font-size: .78rem; }
.trigger-remoto-card__resultado strong { font-size: 1.15rem; text-transform: uppercase; }

.trigger-remoto-card dl,
.trigger-remoto-metadatos,
.ejecucion-trigger-remoto dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
}

.trigger-remoto-card dl > div,
.trigger-remoto-metadatos > div,
.ejecucion-trigger-remoto dl > div {
  min-width: 0;
  padding: .65rem;
  border-radius: .55rem;
  background: var(--superficie);
}

.trigger-remoto-card dt,
.trigger-remoto-metadatos dt,
.ejecucion-trigger-remoto dt { color: var(--texto-suave); font-size: .78rem; }
.trigger-remoto-card dd,
.trigger-remoto-metadatos dd,
.ejecucion-trigger-remoto dd { margin: .2rem 0 0; overflow-wrap: anywhere; }

.trigger-remoto-card footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--borde);
  color: var(--texto-suave);
  font-size: .8rem;
}

.trigger-remoto-detalle__cabecera {
  align-items: start;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--borde);
}

.trigger-remoto-detalle__accion {
  display: grid;
  justify-items: end;
  gap: .4rem;
  max-width: 22rem;
  text-align: right;
}

.configuracion-trigger-remoto {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie);
}

.configuracion-trigger-remoto summary { cursor: pointer; font-weight: 700; }
.configuracion-trigger-remoto p { color: var(--texto-suave); }
.configuracion-trigger-remoto pre {
  max-height: 24rem;
  margin: 1rem 0 0;
  padding: .85rem;
  overflow: auto;
  border-radius: .55rem;
  background: var(--fondo);
}

.asignaciones-trigger-remoto,
.ejecuciones-trigger-remoto {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.asignaciones-trigger-remoto > li,
.ejecucion-trigger-remoto {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie);
}

.asignaciones-trigger-remoto header,
.ejecucion-trigger-remoto header,
.asignaciones-trigger-remoto__monitor {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
}

.asignaciones-trigger-remoto__monitor {
  margin-top: .85rem;
  padding: .75rem;
  border-radius: .6rem;
  background: var(--superficie-2);
}

.asignaciones-trigger-remoto__monitor > div { display: grid; gap: .2rem; }
.asignaciones-trigger-remoto__monitor small,
.asignaciones-trigger-remoto footer,
.ejecucion-trigger-remoto header time { color: var(--texto-suave); font-size: .8rem; }

.asignaciones-trigger-remoto footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  margin-top: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--borde);
}

.asignaciones-trigger-remoto footer > div { display: grid; gap: .35rem; }
.ejecucion-trigger-remoto--error { border-left: 3px solid var(--estado-error); }
.ejecucion-trigger-remoto--ok { border-left: 3px solid var(--estado-positivo); }
.ejecucion-trigger-remoto header > div { display: flex; align-items: center; gap: .6rem; }
.ejecucion-trigger-remoto > p { margin: .85rem 0 0; color: var(--texto-suave); }

.resumen-telemetria-remota {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.resumen-telemetria-remota article {
  display: grid;
  gap: .2rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie-2);
}

.resumen-telemetria-remota span { color: var(--texto-suave); font-size: .82rem; }
.resumen-telemetria-remota strong { font-size: 1.45rem; }
.fuentes-telemetria-remota { display: grid; gap: 1rem; }

.fuente-telemetria-remota {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .8rem;
  background: var(--superficie-2);
}

.fuente-telemetria-remota > header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.fuente-telemetria-remota h3 { margin: .6rem 0 .2rem; font-size: 1.2rem; }
.fuente-telemetria-remota__total { min-width: 5rem; text-align: right; }
.fuente-telemetria-remota__total small { display: block; color: var(--texto-suave); }
.fuente-telemetria-remota__total strong { font-size: 1.5rem; }

.fuente-telemetria-remota__metadatos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
}

.fuente-telemetria-remota__metadatos > div {
  min-width: 0;
  padding: .65rem;
  border-radius: .55rem;
  background: var(--superficie);
}

.fuente-telemetria-remota__metadatos dt { color: var(--texto-suave); font-size: .78rem; }
.fuente-telemetria-remota__metadatos dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.senales-telemetria-remota { display: grid; gap: .6rem; }

.senal-telemetria-remota {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, .45fr);
  gap: 1rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie);
}

.senal-telemetria-remota h4 { margin: .55rem 0 .15rem; font-size: 1.05rem; }
.senal-telemetria-remota p { margin: 0 0 .35rem; color: var(--texto-suave); }
.senal-telemetria-remota__estado { display: grid; align-content: start; gap: .2rem; text-align: right; }
.senal-telemetria-remota__estado small,
.senal-telemetria-remota__estado span,
.senal-telemetria-remota__estado time { color: var(--texto-suave); font-size: .78rem; }
.senal-telemetria-remota__estado strong { font-size: 1.15rem; }

.telemetria-sin-catalogo {
  display: grid;
  gap: .6rem;
  padding: 1rem;
  border: 1px dashed var(--borde-fuerte);
  border-radius: .8rem;
}

.telemetria-sin-catalogo p { margin: 0; color: var(--texto-suave); }
.telemetria-sin-catalogo article { display: grid; gap: .2rem; padding: .75rem; background: var(--superficie-2); }
.telemetria-sin-catalogo small { color: var(--texto-suave); }

.resumen-telemetria-remota--historico { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resumen-telemetria-remota article.con-huecos { border-color: var(--estado-advertencia); }
.ventana-historica-telemetria { color: var(--texto-suave); font-size: .85rem; }

.actividad-telemetria-remota,
.historico-telemetria-remota {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.telemetria-remota-actividad__cabecera { align-items: end; }

.telemetria-remota-actividad__unidad {
  display: grid;
  flex: 0 1 250px;
  gap: .35rem;
  color: var(--texto-suave);
  font-size: .78rem;
  font-weight: 700;
}

.telemetria-remota-actividad__unidad .form-select {
  min-width: 210px;
  color: var(--texto);
  border-color: var(--borde);
  background-color: var(--superficie);
}

.telemetria-remota-actividad .text-bg-light {
  border: 1px solid var(--borde);
  background-color: var(--superficie-2) !important;
  color: var(--texto) !important;
}

.filtros-telemetria-remota {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) repeat(2, minmax(170px, 1fr)) minmax(130px, .65fr);
  gap: .9rem;
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .8rem;
  background: var(--superficie-2);
}

.filtros-telemetria-remota > label {
  display: grid;
  gap: .35rem;
  color: var(--texto);
  font-size: .85rem;
  font-weight: 700;
}

.filtros-telemetria-remota .form-control,
.filtros-telemetria-remota .form-select {
  color: var(--texto);
  border-color: var(--borde);
  background-color: var(--superficie);
}

.filtros-telemetria-remota__acciones {
  display: flex;
  grid-column: 1 / -1;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  color: var(--texto-suave);
  font-size: .82rem;
}

.actividad-telemetria-remota__entrada,
.historico-telemetria-remota__entrada {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: .75rem;
}

.actividad-telemetria-remota__icono,
.historico-telemetria-remota__marca {
  display: grid;
  place-items: center;
  align-self: start;
  width: 2.4rem;
  height: 2.4rem;
  border: 1px solid var(--borde);
  border-radius: 50%;
  color: var(--acento);
  background: var(--superficie-2);
}

.actividad-telemetria-remota__entrada--eventoDerivado .actividad-telemetria-remota__icono,
.historico-telemetria-remota__entrada--hueco .historico-telemetria-remota__marca {
  color: var(--estado-advertencia);
  border-color: var(--estado-advertencia);
}

.actividad-telemetria-remota__entrada > article,
.historico-telemetria-remota__entrada > article {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie-2);
}

.historico-telemetria-remota__entrada--hueco > article {
  border-style: dashed;
  border-color: var(--estado-advertencia);
}

.actividad-telemetria-remota header,
.historico-telemetria-remota header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.actividad-telemetria-remota h3,
.historico-telemetria-remota h3 { margin: .55rem 0 0; font-size: 1.08rem; }
.actividad-telemetria-remota header time,
.historico-telemetria-remota header time { color: var(--texto-suave); font-size: .8rem; }
.actividad-telemetria-remota article > p,
.historico-telemetria-remota article > p { margin: .75rem 0 0; color: var(--texto-suave); }

.actividad-telemetria-remota__valor {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem;
  margin-top: .75rem;
}

.actividad-telemetria-remota__valor strong { font-size: 1.2rem; }
.actividad-telemetria-remota__valor span { color: var(--texto-suave); font-size: .82rem; }
.actividad-telemetria-remota footer,
.historico-telemetria-remota footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  margin-top: .85rem;
  padding-top: .75rem;
  border-top: 1px solid var(--borde);
  color: var(--texto-suave);
  font-size: .78rem;
}

.historico-telemetria-remota dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: .75rem 0 0;
}

.historico-telemetria-remota dl > div { padding: .65rem; background: var(--superficie); }
.historico-telemetria-remota dt { color: var(--texto-suave); font-size: .78rem; }
.historico-telemetria-remota dd { margin: .2rem 0 0; }

.monitor-remoto-card {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .8rem;
  background: var(--superficie-2);
}

.monitor-remoto-card header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.monitor-remoto-card h3 { margin: 0; font-size: 1.15rem; }
.monitor-remoto-card p { margin: .35rem 0 0; color: var(--texto-suave); }

.monitor-remoto-card__estado { min-width: 8rem; text-align: right; }
.monitor-remoto-card__estado small { display: block; color: var(--texto-suave); }
.monitor-remoto-card__estado strong { font-size: 1.15rem; }

.monitor-remoto-card dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0;
}

.monitor-remoto-card dl > div {
  padding: .65rem;
  border-radius: .55rem;
  background: var(--superficie);
}

.monitor-remoto-card dt { color: var(--texto-suave); font-size: .78rem; }
.monitor-remoto-card dd { margin: .2rem 0 0; }

.monitor-remoto-card footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--borde);
  color: var(--texto-suave);
  font-size: .8rem;
}

.monitor-remoto-detalle {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .8rem;
  background: var(--superficie-2);
}

.monitor-remoto-detalle__cabecera {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--borde);
}

.monitor-remoto-detalle__cabecera h3 { margin: 0; }
.enlace-retorno-remoto { color: var(--texto-suave); font-size: .88rem; }

.monitor-remoto-estado {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 0;
}

.monitor-remoto-estado > div {
  padding: .75rem;
  border-radius: .6rem;
  background: var(--superficie);
}

.monitor-remoto-estado dt { color: var(--texto-suave); font-size: .8rem; }
.monitor-remoto-estado dd { margin: .25rem 0 0; }

.historico-monitor-remoto {
  display: grid;
  gap: 0;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
}

.historico-monitor-remoto > li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: .75rem;
}

.historico-monitor-remoto__marca {
  position: relative;
  display: grid;
  place-items: start center;
  padding-top: .9rem;
  color: var(--acento);
}

.historico-monitor-remoto__marca::after {
  position: absolute;
  top: 2.25rem;
  bottom: 0;
  width: 1px;
  background: var(--borde-fuerte);
  content: '';
}

.historico-monitor-remoto > li:last-child .historico-monitor-remoto__marca::after { display: none; }

.historico-monitor-remoto article {
  margin-bottom: .75rem;
  padding: .85rem;
  border: 1px solid var(--borde);
  border-radius: .65rem;
  background: var(--superficie);
}

.historico-monitor-remoto article header {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
}

.historico-monitor-remoto article header > div { display: grid; gap: .45rem; }
.historico-monitor-remoto article header time { color: var(--texto-suave); font-size: .82rem; }
.historico-monitor-remoto article p { margin: .75rem 0 0; }
.historico-monitor-remoto article dl { display: flex; flex-wrap: wrap; gap: 1rem; margin: .75rem 0 0; }
.historico-monitor-remoto article dl > div { display: flex; gap: .35rem; }
.historico-monitor-remoto article dd { margin: 0; }
.historico-monitor-remoto article small { display: block; margin-top: .75rem; color: var(--texto-suave); }

.alertas-monitor-remoto {
  display: grid;
  gap: .85rem;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
}

.alerta-monitor-remoto {
  overflow: hidden;
  border: 1px solid var(--borde);
  border-left: 4px solid var(--borde-fuerte);
  border-radius: .7rem;
  background: var(--superficie);
}

.alerta-monitor-remoto--vigente { border-left-color: var(--estado-error); }
.alerta-monitor-remoto--vencida { border-left-color: var(--estado-advertencia); }
.alerta-monitor-remoto--cerrada { border-left-color: var(--estado-positivo); }

.alerta-monitor-remoto > header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
}

.alerta-monitor-remoto > header > div:first-child { min-width: 0; }
.alerta-monitor-remoto h4 { margin: .65rem 0 0; font-size: 1.15rem; }
.alerta-monitor-remoto header p { margin: .35rem 0 0; color: var(--texto-suave); }

.alerta-monitor-remoto__repeticiones {
  min-width: 5.5rem;
  text-align: right;
}

.alerta-monitor-remoto__repeticiones small { display: block; color: var(--texto-suave); }
.alerta-monitor-remoto__repeticiones strong { font-size: 1.45rem; }

.alerta-monitor-remoto > dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--borde);
  border-block: 1px solid var(--borde);
}

.alerta-monitor-remoto > dl > div { min-width: 0; padding: .75rem; background: var(--superficie-2); }
.alerta-monitor-remoto dt { color: var(--texto-suave); font-size: .78rem; }
.alerta-monitor-remoto dd { margin: .25rem 0 0; overflow-wrap: anywhere; }

.alerta-monitor-remoto__contexto { padding: .85rem 1rem; }
.alerta-monitor-remoto__contexto p { margin: 0; }
.alerta-monitor-remoto__contexto p + p { margin-top: .45rem; }

.alerta-monitor-remoto > footer {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: space-between;
  padding: .65rem 1rem;
  border-top: 1px solid var(--borde);
  color: var(--texto-suave);
  font-size: .78rem;
}

.aviso-visor-trigger-remoto {
  display: flex;
  gap: .85rem;
  align-items: center;
  padding: 1rem;
  border: 1px dashed var(--borde-fuerte);
  border-radius: .7rem;
  background: var(--superficie);
  color: var(--texto-suave);
}

.aviso-visor-trigger-remoto i { color: var(--acento); font-size: 1.4rem; }
.aviso-visor-trigger-remoto strong { color: var(--texto); }

.referencias-triggers-remotos {
  display: grid;
  gap: .75rem;
  margin-bottom: 0;
  padding: 0;
  list-style: none;
}

.referencias-triggers-remotos > li {
  overflow: hidden;
  border: 1px solid var(--borde);
  border-radius: .7rem;
  background: var(--superficie);
}

.referencias-triggers-remotos header,
.referencias-triggers-remotos footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem;
  padding: .75rem 1rem;
}

.referencias-triggers-remotos header > span,
.referencias-triggers-remotos footer > span { color: var(--texto-suave); font-size: .8rem; }
.referencias-triggers-remotos footer > div { display: grid; gap: .35rem; }
.referencias-triggers-remotos footer > div > span { color: var(--texto-suave); font-size: .8rem; }

.referencias-triggers-remotos dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  border-block: 1px solid var(--borde);
  background: var(--borde);
}

.referencias-triggers-remotos dl > div { min-width: 0; padding: .85rem 1rem; background: var(--superficie-2); }
.referencias-triggers-remotos dt { color: var(--texto-suave); font-size: .78rem; }
.referencias-triggers-remotos dd { margin: .3rem 0 0; }

.grafico-historico-remoto {
  padding: 1rem;
  border: 1px solid var(--borde);
  border-radius: .75rem;
  background: var(--superficie);
}

.grafico-historico-remoto > header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.grafico-historico-remoto > header h4 { margin: 0; }
.grafico-historico-remoto > header p { margin: .35rem 0 0; color: var(--texto-suave); }

.grafico-historico-remoto .visor-eventos__grafico,
.grafico-historico-remoto .visor-eventos__detalle { min-height: 360px; }

.grafico-historico-remoto .visor-eventos__detalle h4 { margin: 0; font-size: 1.1rem; }
.grafico-historico-remoto__lienzo { position: relative; height: 300px; }
.grafico-historico-remoto__lienzo canvas { height: 100% !important; }

.grafico-historico-remoto > footer {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: .85rem;
  color: var(--texto-suave);
  font-size: .8rem;
}

.grafico-leyenda--ok { color: #4f8a68; }
.grafico-leyenda--degradado { color: #b27a2a; }
.grafico-leyenda--fallo { color: #c96b6b; }

.estado-consolidado-remoto { margin-top: .45rem; }
.estado-consolidado-remoto__cabecera {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-left: var(--estado-remoto-offset, 0);
  width: var(--estado-remoto-width, 100%);
  color: var(--texto-suave);
  font-size: .75rem;
}
.estado-consolidado-remoto__cabecera span { color: var(--acento); font-weight: 700; }
.estado-consolidado-remoto__pista {
  position: relative;
  min-height: 18px;
  margin-left: var(--estado-remoto-offset, 0);
  width: var(--estado-remoto-width, 100%);
  overflow: hidden;
  border: 1px solid var(--borde);
  border-radius: 999px;
  background: repeating-linear-gradient(45deg, transparent 0, transparent 5px,
    color-mix(in srgb, var(--texto-suave) 12%, transparent) 5px,
    color-mix(in srgb, var(--texto-suave) 12%, transparent) 8px), var(--superficie);
}
.estado-consolidado-remoto__tramo {
  position: absolute;
  top: 2px;
  bottom: 2px;
  min-width: 2px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
}
.estado-consolidado-remoto__tramo--disponible { background: #4f8a68; }
.estado-consolidado-remoto__tramo--degradado { background: #b27a2a; }
.estado-consolidado-remoto__tramo--indisponible { background: #c96b6b; }
.estado-consolidado-remoto__tramo--desconocido { background: #748494; }

@media (max-width: 880px) {
  .espacio-remoto__barra { align-items: stretch; flex-direction: column; }
  .espacio-remoto__acciones { justify-content: space-between; }

  .resumen-organizacion-remota { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resumen-monitores-remotos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resumen-triggers-remotos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resumen-telemetria-remota { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fuente-telemetria-remota__metadatos { grid-template-columns: 1fr; }
  .filtros-telemetria-remota { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .espacio-remoto__acciones { display: grid; }
  .espacio-remoto__concesion-compacta { white-space: normal; }
  .espacio-remoto__selector > summary { width: 100%; }
  .espacio-remoto__desplegable { right: auto; left: 0; }
  .espacio-remoto__menu { grid-template-columns: 1fr; }

  .nodo-organizacion-remota--nivel-1,
  .nodo-organizacion-remota--nivel-2 { margin-left: 0; }

  .retiradas-organizacion-remota article { grid-template-columns: 1fr; }

  .monitor-remoto-card header { display: grid; }
  .monitor-remoto-card__estado { text-align: left; }
  .monitor-remoto-card dl { grid-template-columns: 1fr; }
  .monitor-remoto-detalle__cabecera { display: grid; }
  .monitor-remoto-estado { grid-template-columns: 1fr; }
  .trigger-remoto-card header,
  .trigger-remoto-detalle__cabecera { display: grid; }
  .trigger-remoto-card__resultado,
  .trigger-remoto-detalle__accion { justify-items: start; text-align: left; }
  .trigger-remoto-card dl,
  .trigger-remoto-metadatos,
  .ejecucion-trigger-remoto dl { grid-template-columns: 1fr; }
  .historico-monitor-remoto article header { display: grid; }
  .grafico-historico-remoto > header { display: grid; }
  .alerta-monitor-remoto > header { display: grid; }
  .alerta-monitor-remoto__repeticiones { text-align: left; }
  .alerta-monitor-remoto > dl { grid-template-columns: 1fr; }
  .referencias-triggers-remotos dl { grid-template-columns: 1fr; }
  .fuente-telemetria-remota > header,
  .senal-telemetria-remota { display: grid; grid-template-columns: 1fr; }
  .fuente-telemetria-remota__total,
  .senal-telemetria-remota__estado { text-align: left; }
  .actividad-telemetria-remota header,
  .historico-telemetria-remota header { display: grid; }
  .telemetria-remota-actividad__cabecera {
    align-items: stretch;
    flex-direction: column;
  }
  .telemetria-remota-actividad__unidad { flex-basis: auto; }
  .telemetria-remota-actividad__unidad .form-select {
    width: 100%;
    min-width: 0;
  }
  .filtros-telemetria-remota { grid-template-columns: 1fr; }
  .historico-telemetria-remota dl { grid-template-columns: 1fr; }
}
.ddns-administracion__rejilla {
  display: grid;
  gap: 1rem;
}

details.ddns-administracion,
details.agente-perfil-servidor {
  display: block;
}

details.ddns-administracion > summary,
details.agente-perfil-servidor > summary {
  align-items: center;
  background: var(--superficie);
  border: 1px solid var(--borde);
  border-radius: 8px;
  box-shadow: var(--sombra);
  cursor: pointer;
  list-style: none;
  padding: 1.25rem 1.5rem;
}

details.ddns-administracion > summary::-webkit-details-marker,
details.agente-perfil-servidor > summary::-webkit-details-marker,
.agente-perfil-detalles > summary::-webkit-details-marker {
  display: none;
}

details.ddns-administracion > summary:focus-visible,
details.agente-perfil-servidor > summary:focus-visible,
.agente-perfil-detalles > summary:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 3px;
  border-radius: .3rem;
}

.ddns-administracion__resumen-acciones,
.ddns-administracion__alternar,
.agente-perfil-servidor__alternar {
  align-items: center;
  display: inline-flex;
  gap: .65rem;
}

.ddns-administracion__resumen-acciones {
  flex-shrink: 0;
}

.ddns-administracion__alternar,
.agente-perfil-servidor__alternar {
  border: 1px solid var(--bs-border-color);
  border-radius: .5rem;
  color: var(--bs-body-color);
  font-size: .85rem;
  font-weight: 600;
  padding: .5rem .65rem;
}

.ddns-administracion__alternar .bi,
.agente-perfil-servidor__alternar .bi {
  transition: transform .2s ease;
}

details.ddns-administracion:not([open]) .ddns-administracion__ocultar,
details.ddns-administracion[open] .ddns-administracion__mostrar,
details.agente-perfil-servidor:not([open]) .agente-perfil-servidor__ocultar,
details.agente-perfil-servidor[open] .agente-perfil-servidor__mostrar {
  display: none;
}

details.ddns-administracion[open] .ddns-administracion__alternar .bi,
details.agente-perfil-servidor[open] .agente-perfil-servidor__alternar .bi {
  transform: rotate(180deg);
}

details.ddns-administracion > summary + .tarjeta,
details.ddns-administracion > summary + .ddns-administracion__rejilla,
details.agente-perfil-servidor > summary + .tarjeta {
  margin-top: 1rem;
}

.agente-perfil-servidor__configuracion,
.agente-perfil-servidor__acciones {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.agente-perfil-servidor__configuracion {
  color: var(--bs-secondary-color);
  font-size: .85rem;
  margin-top: .75rem;
}

.agente-perfil-servidor__configuracion > span {
  border: 1px solid var(--bs-border-color);
  border-radius: .5rem;
  padding: .35rem .6rem;
}

.agente-perfil-servidor__acciones {
  flex-shrink: 0;
  justify-content: flex-end;
}

.agente-perfil-detalles {
  border: 1px solid var(--bs-border-color);
  border-radius: .65rem;
  padding: .75rem 1rem;
}

.agente-perfil-detalles > summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}

.agente-perfil-detalles > summary::after {
  content: "▾";
  float: right;
  margin-left: 1rem;
  transition: transform .2s ease;
}

.agente-perfil-detalles[open] > summary::after {
  transform: rotate(180deg);
}

.agente-perfil-detalles > summary + .row {
  margin-top: .25rem;
}

.ddns-administracion__concesion,
.ddns-administracion__cabecera,
.ddns-administracion__pie {
  min-width: 0;
}

.ddns-administracion__cabecera,
.ddns-administracion__pie {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.ddns-administracion__datos,
.ddns-administracion__estados {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem 1rem;
  margin: 1rem 0;
}

.ddns-administracion__diagnostico {
  margin-top: 1rem;
}

.ddns-administracion__diagnostico > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .65rem .8rem;
  border: 1px solid var(--bs-border-color);
  border-radius: .5rem;
  color: var(--bs-body-color);
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}

.ddns-administracion__diagnostico > summary::-webkit-details-marker {
  display: none;
}

.ddns-administracion__diagnostico > summary .bi {
  transition: transform .2s ease;
}

.ddns-administracion__diagnostico[open] > summary .bi {
  transform: rotate(180deg);
}

.ddns-administracion__datos > div {
  border-bottom: 1px solid var(--bs-border-color);
  padding-bottom: .5rem;
}

.ddns-administracion__datos dt {
  color: var(--bs-secondary-color);
  font-size: .78rem;
  text-transform: uppercase;
}

.ddns-administracion__datos dd { margin: .2rem 0 0; }
.ddns-administracion__estados pre {
  max-height: 14rem;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: .5rem;
  padding: .75rem;
}

@media (max-width: 767.98px) {
  .hero-monitor-detalle__contenido {
    grid-template-columns: 1fr;
  }

  .ddns-administracion__datos,
  .ddns-administracion__estados { grid-template-columns: 1fr; }
  .ddns-administracion__cabecera,
  .ddns-administracion__pie { flex-direction: column; }
  .ddns-administracion__resumen-acciones {
    flex-wrap: wrap;
    width: 100%;
  }
  .agente-perfil-servidor__acciones {
    justify-content: flex-start;
    width: 100%;
  }
}

@media (max-width: 360px) {
  .hero-operativo .hero-monitores__kpis {
    grid-template-columns: 1fr;
  }

  .hero-monitores__kpi:first-child {
    grid-column: auto;
  }

  .hero-monitores__kpi:not(:first-child) .hero-monitores__kpi-cabecera {
    align-items: center;
    flex-direction: row;
  }
}

@media (max-width: 760px) {
  .monitor-formulario-hero .monitor-formulario__resumen-card:nth-child(4) {
    grid-column: 1 / -1;
  }

  .monitor-formulario-hero .monitor-formulario__resumen--telemetria .monitor-formulario__resumen-card:nth-child(3) {
    grid-column: 1 / -1;
  }

  .monitor-formulario-hero .monitor-formulario__resumen--telemetria .monitor-formulario__resumen-card:nth-child(4) small {
    display: block;
  }
}

@media (min-width: 981px) {
  .monitor-formulario-hero .hero-monitores__contenido {
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    align-items: start;
  }

  .monitor-formulario-hero .monitor-formulario__resumen {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.monitor-formulario-hero__relaciones {
  margin-top: 14px;
}

.monitor-formulario-hero__auditoria {
  color: inherit;
  text-decoration: none;
}

.monitor-formulario-hero__auditoria:hover,
.monitor-formulario-hero__auditoria:focus-visible {
  color: var(--hero-texto);
  background: color-mix(in srgb, var(--hero-texto) 13%, transparent);
  outline: none;
}

.monitor-formulario-hero__relaciones-cuerpo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(148, 163, 184, 0.3);
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.18);
}

.monitor-formulario-hero__relaciones-cuerpo > div {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.monitor-formulario-hero__relaciones-cuerpo strong {
  color: var(--hero-texto);
  font-size: 14px;
}

.monitor-formulario-hero__relaciones-cuerpo small {
  color: color-mix(in srgb, var(--hero-texto) 72%, transparent);
  font-size: 12px;
  line-height: 1.45;
}

.monitor-formulario-hero__relaciones-enlace {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: max-content;
  max-width: 100%;
  color: var(--hero-texto);
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.monitor-formulario-hero__relaciones-enlace:hover {
  color: var(--hero-texto);
  text-decoration-thickness: 2px;
}

.monitor-formulario-hero__relaciones-ver {
  align-self: start;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: max-content;
  max-width: 100%;
  font-weight: 700;
}

.monitor-formulario-hero__relaciones-ver.is-disabled {
  cursor: help;
  opacity: .62;
}

.monitor-formulario-hero__relaciones-contador {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--hero-texto) 18%, transparent);
  color: var(--hero-texto);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.monitor-formulario-hero__relaciones-crear {
  justify-self: start;
  margin-top: 2px;
}

.monitor-formulario-hero__relaciones-crear i {
  margin-right: 6px;
}

.monitor-formulario-hero__relaciones-etiqueta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: color-mix(in srgb, var(--hero-texto) 88%, var(--acento));
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.monitor-formulario-hero__relacion-flujo {
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 10px;
}

.monitor-formulario-hero__relacion-flujo--entrada {
  background: color-mix(in srgb, #38bdf8 10%, transparent);
  border-color: color-mix(in srgb, #38bdf8 34%, transparent);
}

.monitor-formulario-hero__relacion-flujo--entrada .monitor-formulario-hero__relaciones-etiqueta {
  color: color-mix(in srgb, var(--hero-texto) 82%, #38bdf8);
}

@media (min-width: 761px) {
  .monitor-formulario-hero__relacion-flujo--telemetria {
    grid-row: span 2;
  }

  .monitor-formulario-hero__relaciones-cuerpo:has(.monitor-formulario-hero__relacion-flujo--telemetria) {
    column-gap: 12px;
    row-gap: 0;
  }

  .monitor-formulario-hero__relacion-flujo--telemetria + div,
  .monitor-formulario-hero__relacion-flujo--telemetria + div + div {
    grid-column: 2;
    padding: 12px;
    border: 1px solid color-mix(in srgb, #34d399 28%, transparent);
    background: color-mix(in srgb, #34d399 8%, transparent);
  }

  .monitor-formulario-hero__relacion-flujo--telemetria + div {
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
  }

  .monitor-formulario-hero__relacion-flujo--telemetria + div + div {
    border-radius: 0 0 10px 10px;
  }

  .monitor-formulario-hero__relacion-flujo--telemetria + div .monitor-formulario-hero__relaciones-etiqueta {
    color: color-mix(in srgb, var(--hero-texto) 82%, #34d399);
  }
}

.monitor-formulario-hero__relacion-flujo--salida {
  background: color-mix(in srgb, #34d399 8%, transparent);
  border-color: color-mix(in srgb, #34d399 28%, transparent);
}

.monitor-formulario-hero__relacion-flujo--salida .monitor-formulario-hero__relaciones-etiqueta {
  color: color-mix(in srgb, var(--hero-texto) 82%, #34d399);
}

.monitor-formulario-hero__flujo-telemetria {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

.monitor-formulario-hero__nodo-flujo {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  padding: 6px 8px;
  border: 1px solid color-mix(in srgb, var(--hero-texto) 22%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--hero-fondo) 30%, transparent);
  color: var(--hero-texto);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

.monitor-formulario-hero__nodo-flujo i {
  color: color-mix(in srgb, var(--hero-texto) 75%, #38bdf8);
}

.monitor-formulario-hero__nodo-flujo span {
  overflow-wrap: anywhere;
}

.monitor-formulario-hero__nodo-flujo--enlace {
  text-decoration: none;
}

.monitor-formulario-hero__nodo-flujo--enlace:hover,
.monitor-formulario-hero__nodo-flujo--enlace:focus-visible {
  border-color: color-mix(in srgb, #38bdf8 68%, transparent);
  background: color-mix(in srgb, #38bdf8 16%, transparent);
  color: var(--hero-texto);
  outline: none;
}

.monitor-formulario-hero__nodo-flujo--destino {
  border-color: color-mix(in srgb, #34d399 52%, transparent);
  background: color-mix(in srgb, #34d399 14%, transparent);
}

.monitor-formulario-hero__nodo-flujo--destino i {
  color: #34d399;
}

.monitor-formulario-hero__flecha-flujo {
  color: color-mix(in srgb, var(--hero-texto) 65%, #38bdf8);
  font-size: 14px;
}

.monitor-formulario-hero__salida-item {
  display: grid;
  gap: 5px;
}

.monitor-formulario-hero__salida-item + .monitor-formulario-hero__salida-item {
  padding-top: 9px;
  border-top: 1px solid color-mix(in srgb, var(--hero-texto) 15%, transparent);
}

#monitor-logica-operativa {
  scroll-margin-top: 96px;
}

@media (max-width: 760px) {
  .monitor-formulario-hero__relaciones-cuerpo {
    grid-template-columns: 1fr;
  }

  .monitor-formulario-hero__flujo-telemetria {
    align-items: stretch;
    flex-direction: column;
  }

  .monitor-formulario-hero__nodo-flujo {
    width: 100%;
  }

  .monitor-formulario-hero__flecha-flujo {
    align-self: center;
    transform: rotate(90deg);
  }
}

/* Escena compartida del portal autenticado. */
body.portal-con-escena {
  isolation: isolate;
}

.portal-escena__fondo {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: #f4f9ff url('/IMG/RepresentacionFondo/Claro/Planetas-web.webp') center top / cover no-repeat;
}

html[data-theme="light"] body.portal-con-escena .panel-general {
  background: var(--fondo);
}

html[data-theme="dark"] .portal-escena__fondo {
  background-color: #081628;
  background-image: url('/IMG/RepresentacionFondo/Dark/Planetas-web.webp');
  background-position: center 95px;
}

.portal-escena__satelite {
  position: absolute;
  top: 4.5%;
  right: 1.7%;
  width: clamp(115px, 11vw, 180px);
  aspect-ratio: 1;
  background: url('/IMG/RepresentacionFondo/Claro/Satelite-web.png') center / contain no-repeat;
  filter: drop-shadow(0 0 12px rgba(65, 152, 223, 0.3));
}

html[data-theme="dark"] .portal-escena__satelite {
  background-image: url('/IMG/RepresentacionFondo/Dark/Satelite-web.png');
  filter: drop-shadow(0 0 8px rgba(95, 140, 171, 0.18));
}

.portal-escena__red {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  color: #2586c7;
  opacity: 0.56;
}

html[data-theme="dark"] .portal-escena__red {
  color: #688fa9;
  opacity: 0.54;
}

.portal-escena__trazos {
  fill: none;
  stroke: currentColor;
  stroke-width: 0.7;
  opacity: 0.45;
}

html[data-theme="dark"] .portal-escena__trazos {
  opacity: 0.38;
}

.portal-escena__puntos {
  fill: currentColor;
  filter: drop-shadow(0 0 5px currentColor);
  animation: organizacion-nodos-latido 5s ease-in-out infinite alternate;
}

html[data-theme="dark"] .portal-escena__puntos {
  filter: drop-shadow(0 0 3px currentColor);
}

.portal-escena__senal {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: 2 600;
  animation: organizacion-senal-viaje var(--senal-duracion, 12s) linear var(--senal-retardo, 0s) infinite;
  filter: drop-shadow(0 0 5px currentColor);
}

html[data-theme="dark"] .portal-escena__senal {
  stroke: #9bb8ca;
  filter: drop-shadow(0 0 3px currentColor);
}

@keyframes organizacion-senal-viaje {
  from { stroke-dashoffset: 0; }
  to { stroke-dashoffset: -600; }
}

@keyframes organizacion-nodos-latido {
  from { opacity: 0.45; }
  to { opacity: 0.9; }
}

.portal-escena__lema {
  position: absolute;
  margin: 0;
  color: #3375a8;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.85;
  letter-spacing: 0.28em;
  text-shadow: 0 1px 8px rgba(255, 255, 255, 0.85);
}

html[data-theme="dark"] .portal-escena__lema {
  color: #688298;
  text-shadow: 0 1px 4px rgba(3, 11, 20, 0.55);
}

.portal-escena__lema--izquierda { top: 16%; left: 2.5%; }
.portal-escena__lema--derecha { top: 23%; right: 2.5%; text-align: right; }
.portal-escena__lema--inferior-izquierda { bottom: 5%; left: 2.5%; }
.portal-escena__lema--inferior-derecha { bottom: 5%; right: 2.5%; }

@media (max-width: 1500px) {
  .portal-escena__lema { display: none; }
  .portal-escena__satelite { display: none; }
}

@media (max-width: 900px) {
  .portal-escena__fondo { background-position: center bottom; }
  .portal-escena__satelite { display: none !important; }
  .portal-escena__red { opacity: 0.28; }
}

@media (prefers-reduced-motion: reduce) {
  .portal-escena__puntos,
  .portal-escena__senal { animation: none; }
  .portal-escena__senal { display: none; }
}

/* En móvil el editor es un flujo táctil: lienzo principal y bandeja de acciones. */
.monitor-logico-estudio__titulo-movil {
  display: none;
}

@media (max-width: 720px) {
  .modal.show .modal-dialog.monitor-logico-estudio__dialog.modal-fullscreen {
    inset: 0;
  }

  .monitor-logico-estudio {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    border-radius: 0;
  }

  .monitor-logico-estudio__header {
    min-height: 0;
    padding: 12px 16px;
  }

  .monitor-logico-estudio__header .badge {
    display: none;
  }

  .monitor-logico-estudio__header h2 {
    font-size: 20px;
  }

  .monitor-logico-estudio__header p,
  .monitor-logico-estudio__titulo-escritorio {
    display: none;
  }

  .monitor-logico-estudio__titulo-movil {
    display: inline;
  }

  .monitor-logico-estudio__body {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr) 112px;
    gap: 10px;
    height: auto;
    min-height: 0;
    padding: 10px 12px;
    overflow: hidden;
  }

  .monitor-logico-estudio__lienzo-wrap {
    order: 1;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 100%;
  }

  .monitor-logico-estudio__toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 9px 10px;
    border-radius: 14px;
    font-size: 12px;
  }

  .monitor-logico-estudio__toolbar > [data-monitor-logico-grafo-status] {
    grid-column: 1 / -1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .monitor-logico-estudio__toolbar > [data-monitor-logico-grafo-status][data-mensaje-activo="false"] {
    display: none;
  }

  .monitor-logico-estudio__compilacion {
    justify-content: flex-start;
    max-width: 100%;
  }

  .monitor-logico-estudio__compilacion-pill {
    padding: 6px 9px;
  }

  .monitor-logico-estudio__lienzo {
    min-height: 0;
    border-radius: 16px;
    touch-action: pan-x pan-y;
  }

  .monitor-logico-estudio__biblioteca {
    display: grid;
    order: 2;
    height: 112px;
    max-height: none;
    overflow: hidden;
    padding: 9px;
    border-radius: 16px;
    box-shadow: none;
  }

  .monitor-logico-estudio__biblioteca > .monitor-logico-estudio__panel-etiqueta,
  .monitor-logico-estudio__puertas .monitor-logico-estudio__panel-etiqueta,
  .monitor-logico-estudio__biblioteca > hr,
  .monitor-logico-estudio__conexion-ayuda,
  .monitor-logico-estudio__simulacion {
    display: none;
  }

  .monitor-logico-estudio__puertas {
    display: block;
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .monitor-logico-estudio__puertas .d-grid,
  .monitor-logico-estudio__acciones-lienzo {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px !important;
  }

  .monitor-logico-estudio__puertas .btn,
  .monitor-logico-estudio__acciones-lienzo .btn {
    justify-content: center;
    min-height: 40px;
    padding: 6px 4px;
    font-size: 11px;
    line-height: 1.15;
  }

  .monitor-logico-estudio__puerta-icono {
    width: 24px;
    height: 22px;
  }

  .monitor-logico-estudio__acciones-lienzo .monitor-logico-estudio__separador-accion {
    display: none;
  }

  .monitor-logico-estudio__acciones-lienzo [data-monitor-logico-grafo-borrar][disabled] {
    display: none;
  }

  .monitor-logico-estudio__inspector {
    display: none;
  }

  .monitor-logico-estudio__footer {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 8px;
    padding: 10px 12px;
  }

  .monitor-logico-estudio__footer .btn {
    min-width: 0;
    padding: 9px 8px;
    font-size: 13px;
  }
}
