/* GUARDIANA · Órbita · «Antivirus» (31 Oct 2026; el dueño, 23:32 y 00:10: «Vigía se cambia por escáner pc»).
   La base de ZERO (el dueño la quiere en todo): fondo de noche, líneas de acero, IBM Plex, la red de NÚCLEO como corazón,
   y la misma familia que «Tu PC». Una sección a pantalla completa sobre el planeta; nada se carga de fuera. */

.escaner { --e-acero: #9CC3E4; --e-ok: #6CCBA5; --e-aviso: #E0B66A; --e-alerta: #E07A6C; --e-gris: #6F7B88; --e-linea: rgba(156,195,228,.14); --e-caja: rgba(12,17,24,.62);
  position: fixed; inset: 0; z-index: 300; display: flex; flex-direction: column; background: #06080C; color: #E8ECF1;
  font: 400 15px/1.5 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; animation: esc-entra .45s cubic-bezier(.2,.7,.2,1); }
.escaner[hidden] { display: none; }
.escaner.sale { animation: esc-sale .26s ease forwards; }
.escaner.sin-entrada { animation: none; } /* 2 Nov 2026: opened from the main cover, whose fade reveals it (static/escaner.js) */
@keyframes esc-entra { from { opacity: 0; } to { opacity: 1; } }
@keyframes esc-sale { to { opacity: 0; } }
.escaner *, .escaner *::before, .escaner *::after { box-sizing: border-box; }
.escaner .esc-fondo { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(1100px 520px at 50% -160px, rgba(156,195,228,.11), rgba(156,195,228,0) 70%), radial-gradient(900px 700px at 50% 130%, rgba(156,195,228,.05), transparent 70%); }
.escaner a { color: var(--e-acero); text-decoration: none; border-bottom: 1px solid rgba(156,195,228,.35); }
.escaner a:hover { color: #C9DFF2; border-color: currentColor; }
.escaner :focus-visible { outline: 2px solid var(--e-acero); outline-offset: 2px; }

/* ---------- la barra de arriba ---------- */
.esc-barra { position: relative; z-index: 3; flex: none; display: flex; align-items: center; gap: 18px; min-height: 76px; padding: 12px 40px; border-bottom: 1px solid rgba(156,195,228,.1); background: #06080C; }
.esc-volver { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px 0 12px; border-radius: 999px; border: 1px solid rgba(156,195,228,.3); color: #F4F6F8; font: 600 14px/1 'IBM Plex Sans', system-ui, sans-serif; background: rgba(12,17,24,.6); transition: border-color .15s, background .15s; }
.esc-volver:hover { border-color: rgba(156,195,228,.6); background: rgba(156,195,228,.12); }
.esc-logo { display: flex; align-items: baseline; gap: 10px; min-width: 0; font: 600 13px/1 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .32em; text-transform: uppercase; color: #F4F6F8; white-space: nowrap; }
.esc-logo .sep, .esc-logo .sub { color: #8A95A2; font-weight: 400; }
.esc-logo .sub { letter-spacing: .26em; }
.escaner h1[tabindex="-1"]:focus { outline: none; }
.esc-acc { margin-inline-start: auto; display: flex; align-items: center; gap: 10px; }
.esc-acc .idiomas { position: relative; }
.esc-cerrar { all: unset; box-sizing: border-box; cursor: pointer; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; border: 1px solid rgba(156,195,228,.22); color: #C9D3DD; background: rgba(12,17,24,.6); transition: border-color .15s, color .15s, background .15s; }
.esc-cerrar:hover { border-color: rgba(156,195,228,.55); color: #F4F6F8; background: rgba(156,195,228,.12); }
body.en-escaner .descargar-menu { z-index: 320; }

/* ---------- el cuerpo, que se desplaza ---------- */
.esc-cuerpo { position: relative; z-index: 1; flex: 1 1 auto; overflow: auto; outline: none; scrollbar-width: thin; scrollbar-color: rgba(156,195,228,.25) transparent; }
.esc-hoja { width: min(1180px, calc(100% - 80px)); margin: 0 auto; padding: 26px 0 96px; }
.esc-k { margin: 0; font: 500 11px/1.4 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .3em; text-transform: uppercase; color: var(--e-acero); }
.esc-rot { margin: 0 0 12px; font: 500 10.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; color: #8A95A2; }

/* ---------- la portada: antes de escanear (y, fuera del programa, lo que hace) ---------- */
.esc-portada { display: flex; flex-direction: column; align-items: center; text-align: center; }
.esc-portada[hidden], .esc-cabeza[hidden], .esc-avance[hidden], .esc-informe[hidden], .esc-tira[hidden] { display: none; }
.esc-red { display: block; width: min(24vh, 210px); height: min(24vh, 210px); margin: 0 auto 6px; }
.esc-portada h1 { margin: 14px 0 0; max-width: 900px; font: 300 clamp(32px, 3.4vw, 48px)/1.08 'IBM Plex Sans', system-ui, sans-serif; letter-spacing: -.015em; color: #F4F6F8; text-wrap: balance; }
.esc-lead { margin: 16px auto 0; max-width: 720px; font-size: 16px; line-height: 1.6; color: #B4BEC9; text-wrap: pretty; }
.esc-boton { all: unset; box-sizing: border-box; cursor: pointer; position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 380px; height: 64px; margin-top: 30px; padding: 0 34px; border-radius: 999px; color: #F4F6F8; font: 500 18px/1 'IBM Plex Sans', system-ui, sans-serif; letter-spacing: .01em;
  background: linear-gradient(180deg, rgba(24,38,54,.96), rgba(10,15,22,.96)); border: 1px solid rgba(156,195,228,.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 4px rgba(156,195,228,.06), 0 0 26px rgba(156,195,228,.26), 0 0 70px rgba(156,195,228,.12); transition: transform .2s, box-shadow .2s, border-color .2s; }
.esc-boton::before { content: ''; position: absolute; inset: -6px; z-index: -1; border-radius: inherit; padding: 1px; background: conic-gradient(from var(--esc-giro, 0deg), rgba(156,195,228,0) 0deg, rgba(201,223,242,.85) 40deg, rgba(156,195,228,0) 90deg, rgba(156,195,228,0) 360deg); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: esc-giro 5.5s linear infinite; opacity: .8; }
@property --esc-giro { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes esc-giro { to { --esc-giro: 360deg; } }
.esc-boton:hover { transform: translateY(-1px); border-color: rgba(201,223,242,.85); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 5px rgba(156,195,228,.08), 0 0 34px rgba(156,195,228,.36), 0 0 90px rgba(156,195,228,.16); }
.esc-boton:focus-visible { outline: 2px solid #F4F6F8; outline-offset: 5px; }
.esc-boton svg { flex: none; }
.esc-boton.web { min-width: 0; }
.esc-nota-boton { margin: 14px 0 0; font: 400 12px/1.5 'IBM Plex Mono', ui-monospace, monospace; color: #7C8794; max-width: 640px; }
.esc-hechos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: min(940px, 100%); margin: 34px auto 0; text-align: start; }
.esc-hecho { padding: 14px 16px 15px; border: 1px solid var(--e-linea); border-radius: 14px; background: var(--e-caja); }
.esc-hecho b { display: block; margin-bottom: 7px; font: 500 10px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; color: var(--e-acero); }
.esc-hecho span { font-size: 13.5px; line-height: 1.5; color: #A9B3BE; }
.esc-examina { width: min(1080px, 100%); margin: 48px auto 0; text-align: start; }
.esc-examina ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.esc-examina li { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; align-content: start; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(156,195,228,.1); background: rgba(12,17,24,.48); }
.esc-examina li .n { grid-row: span 2; font: 500 10.5px/1.6 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; }
.esc-examina li b { font: 600 13.5px/1.35 'IBM Plex Sans', system-ui, sans-serif; color: #E8ECF1; }
.esc-examina li small { font-size: 12px; line-height: 1.45; color: #8A95A2; }

/* ---------- la cabeza del informe: escaneando / informe ---------- */
.esc-cabeza { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 20px; }
.esc-cabeza .esc-red { width: 92px; height: 92px; margin: 0; }
.esc-cabeza h1 { margin: 6px 0 0; font: 300 clamp(26px, 2.6vw, 36px)/1.12 'IBM Plex Sans', system-ui, sans-serif; letter-spacing: -.01em; color: #F4F6F8; }
.esc-linea { margin: 8px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font: 400 12px/1.5 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; }
.esc-linea b { font-weight: 500; color: #DDE3EA; font-variant-numeric: tabular-nums; }
.esc-vivo { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #B9D6EE; box-shadow: 0 0 0 3px rgba(156,195,228,.16), 0 0 12px rgba(156,195,228,.9); animation: esc-late 2.4s ease-in-out infinite; }
@keyframes esc-late { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .55; transform: scale(.8); } }
.esc-vivo.quieto { background: var(--e-ok); box-shadow: 0 0 0 3px rgba(108,203,165,.14); animation: none; }
.esc-otra { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(156,195,228,.45); color: #F4F6F8; font: 600 14px/1 'IBM Plex Sans', system-ui, sans-serif; background: rgba(156,195,228,.08); transition: background .15s, border-color .15s; white-space: nowrap; }
.esc-otra:hover { background: rgba(156,195,228,.16); border-color: rgba(201,223,242,.8); }
.esc-otra[hidden] { display: none; }

/* ---------- el avance real ---------- */
.esc-avance { margin-top: 22px; padding: 18px 20px 16px; border: 1px solid rgba(156,195,228,.18); border-radius: 18px; background: linear-gradient(180deg, rgba(14,21,30,.82), rgba(9,13,19,.82)); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.esc-av-rejilla { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.6fr) minmax(0, .95fr); gap: 26px; }
/* el análisis en directo (31 Oct 2026, el dueño: «que se vea cómo se analiza… en vivo»): avance real, «Ahora» y el registro */
.esc-avance > .esc-feed { display: none; }
.esc-directo { margin: -2px 0 20px; padding: 0 0 18px; border-bottom: 1px solid rgba(156,195,228,.12); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); grid-template-areas: 'cab cab' 'barra barra' 'ahora log'; gap: 14px 30px; }
.esc-dir-cab { grid-area: cab; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.esc-dir-rot { margin: 0; display: inline-flex; align-items: center; gap: 10px; font: 500 11px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .24em; text-transform: uppercase; color: #C9DFF2; }
.esc-directo.fin .esc-dir-rot .esc-vivo { background: var(--e-ok); box-shadow: 0 0 0 3px rgba(108,203,165,.14); animation: none; }
.esc-dir-pct { margin: 0; display: flex; align-items: baseline; gap: 4px; font: 200 56px/.9 'IBM Plex Sans', system-ui, sans-serif; font-variant-numeric: tabular-nums; color: #F4F6F8; letter-spacing: -.02em; }
.esc-dir-pct small { font-size: 24px; font-weight: 300; color: #8A95A2; }
.esc-dir-pct .esc-dir-pk { margin-inline-start: 12px; font: 500 10.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; color: #8A95A2; align-self: center; }
.esc-dir-barra { grid-area: barra; position: relative; height: 8px; border-radius: 4px; background: rgba(156,195,228,.1); overflow: hidden; box-shadow: inset 0 0 0 1px rgba(156,195,228,.08); }
.esc-dir-barra .lleno { position: absolute; inset: 0 auto 0 0; width: 0; border-radius: inherit; background: linear-gradient(90deg, rgba(156,195,228,.55), #C9DFF2); box-shadow: 0 0 16px rgba(156,195,228,.55); transition: width .7s cubic-bezier(.2,.7,.2,1); }
.esc-dir-barra .barrido { position: absolute; inset: 0; width: 34%; background: linear-gradient(90deg, transparent, rgba(244,246,248,.55), transparent); animation: esc-barre 1.8s cubic-bezier(.45,0,.55,1) infinite; mix-blend-mode: screen; }
.esc-directo.fin .esc-dir-barra .barrido { display: none; }
.esc-directo.fin .esc-dir-barra .lleno { background: linear-gradient(90deg, rgba(108,203,165,.6), #9FE0C4); box-shadow: 0 0 14px rgba(108,203,165,.45); }
@keyframes esc-barre { from { transform: translateX(-110%); } to { transform: translateX(310%); } }
.esc-dir-ahora-caja { grid-area: ahora; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-radius: 14px; border: 1px solid rgba(156,195,228,.22); background: radial-gradient(420px 160px at 0% 0%, rgba(156,195,228,.12), transparent 70%), rgba(10,15,22,.7); }
.esc-dir-k { font: 500 10px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .2em; text-transform: uppercase; color: var(--e-acero); }
.esc-dir-ahora { min-height: 58px; }
.esc-dir-pct .esc-dir-n { font: inherit; color: inherit; }
.esc-dir-fila { display: flex; flex-direction: column; gap: 3px; min-width: 0; animation: esc-sube .4s ease-out; }
.esc-dir-fila .tipo { font: 500 10.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: #8A95A2; }
.esc-dir-fila b { font: 400 21px/1.25 'IBM Plex Sans', system-ui, sans-serif; color: #F4F6F8; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-dir-fila .est { font: 500 12.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: var(--e-acero); }
.esc-dir-fila .est.ok { color: var(--e-ok); }
.esc-dir-fila .est.aviso, .esc-dir-fila.aviso .est { color: var(--e-aviso); }
.esc-dir-fila small { font: 400 11.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-dir-log { grid-area: log; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; min-width: 0; height: 172px; overflow: hidden; font: 400 12px/1.5 'IBM Plex Mono', ui-monospace, monospace; -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent); mask-image: linear-gradient(180deg, #000 62%, transparent); }
.esc-dir-log li { display: flex; align-items: baseline; gap: 10px; min-width: 0; padding: 3px 8px; border-radius: 6px; color: #A9B3BE; white-space: nowrap; animation: esc-llega .9s ease-out; }
.esc-dir-log li:first-child:not(.vacio) { color: #E8ECF1; background: rgba(156,195,228,.07); }
.esc-dir-log li .tm { flex: none; width: 34px; color: #6F7B88; font-variant-numeric: tabular-nums; }
.esc-dir-log li .tipo { flex: none; width: 128px; overflow: hidden; text-overflow: ellipsis; color: #6F7B88; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.esc-dir-log li b { font-weight: 500; color: inherit; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.esc-dir-log li .est { flex: none; color: var(--e-acero); }
.esc-dir-log li .est.ok { color: var(--e-ok); }
.esc-dir-log li .est.aviso { color: var(--e-aviso); }
.esc-dir-log li small { flex: none; color: #6F7B88; }
.esc-dir-log li.vacio { color: #6F7B88; animation: none; background: none; }
@keyframes esc-llega { from { opacity: 0; transform: translateY(-8px); background: rgba(156,195,228,.22); } 40% { opacity: 1; transform: none; } to { opacity: 1; } }
.esc-tira .esc-dir-k { margin-inline-start: 6px; }
.esc-tira-ahora { display: inline-flex; align-items: baseline; gap: 8px; min-width: 0; max-width: 100%; font: 400 12px/1.4 'IBM Plex Mono', ui-monospace, monospace; color: #DDE3EA; animation: esc-sube .4s ease-out; }
.esc-tira-ahora .tipo { color: #6F7B88; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.esc-tira-ahora b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40ch; }
.esc-tira-ahora .est { color: var(--e-acero); }
.esc-tira-ahora .est.aviso { color: var(--e-aviso); }
.esc-med { min-width: 0; }
.esc-cifra-g { display: flex; align-items: baseline; gap: 6px; margin: 0 0 12px; font: 300 40px/1 'IBM Plex Sans', system-ui, sans-serif; font-variant-numeric: tabular-nums; color: #F4F6F8; }
.esc-cifra-g small { font-size: 20px; color: #6F7B88; }
.esc-cifra-g em { margin-inline-start: 6px; font: 500 10.5px/1 'IBM Plex Mono', ui-monospace, monospace; font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: #8A95A2; }
.esc-segs { display: flex; gap: 3px; margin: 0 0 12px; padding: 0; list-style: none; }
.esc-segs li { flex: 1 1 0; height: 6px; border-radius: 2px; background: rgba(156,195,228,.12); transition: background .3s; }
.esc-segs li.esperando { background: rgba(156,195,228,.32); animation: esc-pulso 1.4s ease-in-out infinite; }
.esc-segs li.medido { background: var(--e-acero); }
.esc-segs li.omitido { background: rgba(156,195,228,.45); }
.esc-segs li.no_medido { background: repeating-linear-gradient(135deg, rgba(224,182,106,.75) 0 3px, rgba(224,182,106,.25) 3px 6px); }
@keyframes esc-pulso { 50% { opacity: .45; } }
.esc-ult { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; font-size: 12.5px; }
.esc-ult li { display: flex; align-items: baseline; gap: 8px; min-width: 0; color: #A9B3BE; }
.esc-ult li span:first-of-type { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-ult li small { flex: none; font: 400 11px/1 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; }
.esc-ult li i { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--e-acero); transform: translateY(-1px); }
.esc-ult li.no_medido i { background: var(--e-aviso); }
.esc-ult li.no_medido { color: #C8B489; }
.esc-secs-av { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px 10px; }
.esc-secs-av li { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 0 8px; align-items: center; min-width: 0; padding: 6px 8px; border-radius: 8px; background: rgba(156,195,228,.04); font-size: 12px; color: #7C8794; }
.esc-secs-av li i { width: 7px; height: 7px; border-radius: 50%; border: 1px solid rgba(156,195,228,.4); }
.esc-secs-av li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esc-secs-av li small { grid-column: 2; font: 400 10.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; min-height: 13px; }
.esc-secs-av li.hecha { color: #DDE3EA; }
.esc-secs-av li.hecha i { background: var(--e-acero); border-color: var(--e-acero); }
.esc-secs-av li.ahora { color: #F4F6F8; background: rgba(156,195,228,.12); box-shadow: inset 0 0 0 1px rgba(156,195,228,.3); }
.esc-secs-av li.ahora i { border-color: #C9DFF2; box-shadow: 0 0 8px rgba(156,195,228,.9); animation: esc-pulso 1.2s ease-in-out infinite; }
.esc-firmas { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12.5px; color: #8A95A2; }
.esc-firmas b { font: 500 13px/1 'IBM Plex Mono', ui-monospace, monospace; color: #F4F6F8; font-variant-numeric: tabular-nums; }
.esc-firmas .aviso b { color: var(--e-aviso); }
.esc-lentas { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.esc-lentas li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: #A9B3BE; }
.esc-lentas li i { width: 8px; height: 8px; border-radius: 50%; border: 1px solid rgba(156,195,228,.45); flex: none; }
.esc-lentas li.hecha i { background: var(--e-ok); border-color: var(--e-ok); }
.esc-lentas li.esperando i { animation: esc-pulso 1.2s ease-in-out infinite; background: rgba(156,195,228,.4); }
.esc-vig-estado { margin: 0 0 12px; font-size: 14px; line-height: 1.45; color: #DDE3EA; }
.esc-vig-estado small { display: block; margin-top: 3px; font-size: 12px; color: #8A95A2; }
.esc-feed { list-style: none; margin: 16px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(156,195,228,.1); height: 132px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 3px; font: 400 11.5px/1.45 'IBM Plex Mono', ui-monospace, monospace; -webkit-mask-image: linear-gradient(180deg, transparent, #000 45%); mask-image: linear-gradient(180deg, transparent, #000 45%); }
.esc-feed li { display: flex; align-items: baseline; gap: 10px; min-width: 0; color: #A9B3BE; white-space: nowrap; animation: esc-sube .35s ease-out; }
.esc-feed li .tipo { flex: none; width: 112px; overflow: hidden; text-overflow: ellipsis; color: #6F7B88; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.esc-feed li b { font-weight: 500; color: #E8ECF1; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.esc-feed li .est { flex: none; color: var(--e-acero); }
.esc-feed li .est.aviso { color: var(--e-aviso); }
.esc-feed li small { color: #6F7B88; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.esc-feed .vacio { color: #6F7B88; animation: none; }
@keyframes esc-sube { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* plegado: el informe manda y queda una tira con lo que sigue en marcha */
.esc-tira { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; padding: 12px 16px; border: 1px solid rgba(156,195,228,.18); border-radius: 14px; background: rgba(12,17,24,.7); font-size: 13px; color: #A9B3BE; }
.esc-tira b { color: #F4F6F8; font-weight: 600; }
.esc-tira .barra { flex: 1 1 180px; height: 4px; border-radius: 2px; background: rgba(156,195,228,.12); overflow: hidden; }
.esc-tira .barra i { display: block; height: 100%; width: 0; background: var(--e-acero); transition: width .5s; }
.esc-tira .mono { font: 400 12px/1 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; }

/* ---------- el informe ---------- */
.esc-informe { display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: 44px; margin-top: 34px; }
.esc-indice { position: sticky; top: 18px; align-self: start; max-height: calc(100vh - 130px); overflow: auto; scrollbar-width: none; }
.esc-indice ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
.esc-indice button { all: unset; box-sizing: border-box; cursor: pointer; width: 100%; display: grid; grid-template-columns: 8px 22px minmax(0, 1fr); align-items: center; gap: 9px; padding: 6px 10px; border-radius: 9px; font: 400 12.5px/1.35 'IBM Plex Sans', system-ui, sans-serif; color: #8A95A2; transition: background .15s, color .15s; }
.esc-indice button:hover { color: #DDE3EA; background: rgba(156,195,228,.06); }
.esc-indice button.actual { color: #F4F6F8; background: rgba(156,195,228,.1); }
.esc-indice button .n { font: 400 10.5px/1 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; }
.esc-indice button span:last-child { min-width: 0; overflow-wrap: anywhere; }
.esc-indice button { align-items: start; }
.esc-indice button .esc-p { margin-top: 5px; }
.esc-indice button .n { padding-top: 3px; }
.esc-p { width: 8px; height: 8px; border-radius: 50%; background: rgba(156,195,228,.25); flex: none; }
.esc-p.alerta { background: var(--e-alerta); box-shadow: 0 0 8px rgba(224,122,108,.6); }
.esc-p.aviso { background: var(--e-aviso); }
.esc-p.ok { background: var(--e-ok); }
.esc-p.info, .esc-p.medido { background: var(--e-acero); }
.esc-p.curso { background: transparent; border: 1px solid var(--e-acero); animation: esc-pulso 1.2s ease-in-out infinite; }
.esc-p.nomedido { background: transparent; border: 1px dashed #8A95A2; }
.esc-p.esperando { background: transparent; border: 1px solid rgba(156,195,228,.3); }

.esc-sec { padding: 26px 0 32px; border-top: 1px solid rgba(156,195,228,.12); scroll-margin-top: 12px; }
.esc-sec:first-child { border-top: 0; padding-top: 0; }
.esc-sec-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.esc-num { font: 500 12px/1 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; letter-spacing: .06em; }
.esc-sec h2 { margin: 0; flex: 0 1 auto; font: 300 26px/1.2 'IBM Plex Sans', system-ui, sans-serif; letter-spacing: -.01em; color: #F4F6F8; }
.esc-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border-radius: 999px; border: 1px solid rgba(156,195,228,.3); font: 500 9.5px/1.2 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--e-acero); background: rgba(156,195,228,.06); white-space: nowrap; }
.esc-chip.alerta { color: var(--e-alerta); border-color: rgba(224,122,108,.45); background: rgba(224,122,108,.08); }
.esc-chip.aviso { color: var(--e-aviso); border-color: rgba(224,182,106,.45); background: rgba(224,182,106,.08); }
.esc-chip.ok { color: var(--e-ok); border-color: rgba(108,203,165,.4); background: rgba(108,203,165,.07); }
.esc-chip.nd, .esc-chip.nomedido, .esc-chip.esperando { color: #A9B3BE; border-color: rgba(169,179,190,.3); background: transparent; }
.esc-chip.curso { color: #C9DFF2; }
.esc-chip.curso::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; animation: esc-pulso 1.2s ease-in-out infinite; }
.esc-fuentes { margin: 8px 0 0; font: 400 10.5px/1.6 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .02em; color: #6F7B88; }
.esc-fuentes span:first-child { letter-spacing: .14em; text-transform: uppercase; margin-inline-end: 8px; }
.esc-ver { margin: 16px 0 0; padding: 12px 16px 13px; border-inline-start: 2px solid var(--e-acero); border-radius: 0 12px 12px 0; background: linear-gradient(90deg, rgba(156,195,228,.08), rgba(156,195,228,0) 85%); font-size: 16px; line-height: 1.55; color: #E8ECF1; }
.esc-ver.alerta { border-color: var(--e-alerta); background: linear-gradient(90deg, rgba(224,122,108,.1), rgba(224,122,108,0) 85%); }
.esc-ver.aviso { border-color: var(--e-aviso); background: linear-gradient(90deg, rgba(224,182,106,.09), rgba(224,182,106,0) 85%); }
.esc-ver.ok { border-color: var(--e-ok); background: linear-gradient(90deg, rgba(108,203,165,.08), rgba(108,203,165,0) 85%); }
.esc-ver.nomedido, .esc-ver.esperando, .esc-ver.nd { border-color: #4A5664; background: linear-gradient(90deg, rgba(74,86,100,.14), transparent 85%); color: #B4BEC9; }
.esc-ver small { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: #8A95A2; }
.esc-ver .esc-mini { margin-top: 10px; }
.esc-bloque { margin-top: 22px; }
.esc-bloque > h3 { margin: 0 0 10px; font: 500 10.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; color: #8A95A2; }
.esc-cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 16px; }
.esc-cifra { min-width: 0; padding: 12px 14px 13px; border: 1px solid rgba(156,195,228,.12); border-radius: 12px; background: var(--e-caja); }
.esc-cifra b { display: block; font: 300 27px/1.1 'IBM Plex Sans', system-ui, sans-serif; font-variant-numeric: tabular-nums; color: #F4F6F8; overflow-wrap: anywhere; }
.esc-cifra.alerta b { color: var(--e-alerta); }
.esc-cifra.aviso b { color: var(--e-aviso); }
.esc-cifra.ok b { color: var(--e-ok); }
.esc-cifra span { display: block; margin-top: 7px; font: 500 9.5px/1.35 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; color: #8A95A2; overflow-wrap: anywhere; }
.esc-cifra small { display: block; margin-top: 4px; font-size: 11px; line-height: 1.35; color: #6F7B88; }
.esc-checks { display: grid; gap: 10px; }
.esc-ch { position: relative; min-width: 0; padding: 14px 16px 14px 36px; border: 1px solid rgba(156,195,228,.12); border-radius: 14px; background: var(--e-caja); }
.esc-ch .esc-punto { position: absolute; inset-inline-start: 16px; top: 20px; width: 8px; height: 8px; border-radius: 50%; background: var(--e-acero); }
.esc-ch.n-alerta { border-color: rgba(224,122,108,.35); } .esc-ch.n-alerta .esc-punto { background: var(--e-alerta); box-shadow: 0 0 10px rgba(224,122,108,.7); }
.esc-ch.n-aviso { border-color: rgba(224,182,106,.28); } .esc-ch.n-aviso .esc-punto { background: var(--e-aviso); }
.esc-ch.n-ok .esc-punto { background: var(--e-ok); }
.esc-ch.n-nd .esc-punto { background: transparent; border: 1px dashed #8A95A2; }
.esc-ch-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.esc-ch-t { margin: 0; flex: 1 1 220px; min-width: 0; font: 600 14.5px/1.35 'IBM Plex Sans', system-ui, sans-serif; color: #F4F6F8; }
.esc-ch-f { margin: 6px 0 0; font-size: 13.5px; line-height: 1.55; color: #B4BEC9; }
.esc-lista { list-style: none; margin: 10px 0 0; padding: 0; }
.esc-lista li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 9px; min-width: 0; padding: 7px 0; border-top: 1px solid rgba(156,195,228,.07); font-size: 13px; }
.esc-lista li > b { font-weight: 500; color: #DDE3EA; min-width: 0; overflow-wrap: anywhere; }
.esc-lista li > small { flex-basis: 100%; min-width: 0; font-size: 12px; color: #7C8794; overflow-wrap: anywhere; }
.esc-lista li > time, .esc-lista li > .der { margin-inline-start: auto; font: 400 11px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; white-space: nowrap; }
.esc-lista li > .der b { color: #DDE3EA; font-weight: 500; }
.esc-lista.plana li:first-child { border-top: 0; }
.esc-marca { display: inline-block; padding: 2px 6px; border-radius: 4px; font: 500 9.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .04em; color: var(--e-acero); background: rgba(156,195,228,.09); }
.esc-marca.fuerte { color: var(--e-aviso); background: rgba(224,182,106,.11); }
.esc-marca.rojo { color: var(--e-alerta); background: rgba(224,122,108,.11); }
.esc-marca.verde { color: var(--e-ok); background: rgba(108,203,165,.1); }
.esc-huella { font: 400 11px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; }
details.esc-mas { margin-top: 2px; }
details.esc-mas > summary { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 8px 0 2px; list-style: none; font: 500 11px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .04em; color: var(--e-acero); }
details.esc-mas > summary::-webkit-details-marker { display: none; }
details.esc-mas > summary::before { content: '+'; width: 12px; text-align: center; }
details.esc-mas[open] > summary::before { content: '−'; }
.esc-nm { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-top: 10px; padding: 11px 14px; border: 1px dashed rgba(156,195,228,.22); border-radius: 12px; font-size: 13.5px; line-height: 1.5; color: #A9B3BE; }
.esc-nm b { font: 500 9.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: #C8B489; }
.esc-nm small { flex-basis: 100%; font-size: 12px; color: #7C8794; }
.esc-nm .q { color: #DDE3EA; }
.esc-espera { margin-top: 14px; display: grid; gap: 8px; }
.esc-espera i { display: block; height: 12px; border-radius: 6px; background: linear-gradient(90deg, rgba(156,195,228,.05), rgba(156,195,228,.12), rgba(156,195,228,.05)); background-size: 200% 100%; animation: esc-brillo 1.6s linear infinite; }
.esc-espera i:nth-child(2) { width: 78%; } .esc-espera i:nth-child(3) { width: 56%; }
@keyframes esc-brillo { to { background-position: -200% 0; } }
.esc-mini { display: flex; align-items: center; gap: 10px; font: 400 11.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; }
.esc-mini .barra { flex: 0 1 220px; height: 4px; border-radius: 2px; background: rgba(156,195,228,.12); overflow: hidden; }
.esc-mini .barra i { display: block; height: 100%; background: var(--e-acero); transition: width .5s; }
.esc-ahora { display: grid; gap: 8px; }
.esc-ah { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: baseline; gap: 4px 12px; padding: 11px 14px; border-radius: 12px; border: 1px solid rgba(156,195,228,.16); background: rgba(156,195,228,.05); font-size: 14px; line-height: 1.5; color: #E8ECF1; }
.esc-ah.alerta { border-color: rgba(224,122,108,.45); background: rgba(224,122,108,.07); }
.esc-ah.aviso { border-color: rgba(224,182,106,.35); background: rgba(224,182,106,.06); }
.esc-ah > b { font: 500 9.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: var(--e-acero); white-space: nowrap; }
.esc-ah.alerta > b { color: var(--e-alerta); } .esc-ah.aviso > b { color: var(--e-aviso); }
.esc-ah time { font: 400 11px/1.3 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; white-space: nowrap; }
.esc-nota { margin: 10px 0 0; font: 400 11.5px/1.6 'IBM Plex Mono', ui-monospace, monospace; color: #7C8794; }
.esc-nota + .esc-nota { margin-top: 6px; }
/* el escudo de GUARDIANA en la portada: sus avisos graves (1.0.52) */
.esc-escudo-aviso { margin: 22px auto 0; max-width: 720px; padding: 14px 18px 12px; text-align: start; border: 1px solid rgba(224,122,108,.45); border-radius: 12px; background: linear-gradient(90deg, rgba(224,122,108,.1), rgba(224,122,108,.02) 85%); }
.esc-escudo-aviso .esc-k { color: var(--e-alerta); }
.esc-escudo-aviso h2 { margin: 6px 0 8px; font-weight: 500; font-size: 18px; line-height: 1.3; color: #F1D5CF; }
.esc-escudo-aviso h2 b { color: var(--e-alerta); }
.esc-tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
.esc-tabla th { padding: 0 10px 8px 0; text-align: start; font: 500 9.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: #6F7B88; white-space: nowrap; }
.esc-tabla td { padding: 8px 10px 8px 0; border-top: 1px solid rgba(156,195,228,.07); color: #C9D3DD; vertical-align: baseline; overflow-wrap: anywhere; }
.esc-tabla td.num { font: 400 12px/1.3 'IBM Plex Mono', ui-monospace, monospace; text-align: end; white-space: nowrap; color: #DDE3EA; font-variant-numeric: tabular-nums; }
.esc-tabla th.num { text-align: end; }
.esc-tabla td b { font-weight: 500; color: #E8ECF1; }
.esc-tabla td small { display: block; font-size: 11.5px; color: #7C8794; }
.esc-tabla-caja { overflow-x: auto; }
.esc-barra3 { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin-top: 14px; background: rgba(156,195,228,.1); }
.esc-barra3 i { display: block; height: 100%; }
.esc-barra3 .a { background: var(--e-acero); } .esc-barra3 .b { background: rgba(156,195,228,.45); } .esc-barra3 .c { background: repeating-linear-gradient(135deg, rgba(169,179,190,.5) 0 3px, rgba(169,179,190,.2) 3px 6px); }
.esc-producto { margin-top: 14px; padding: 16px 18px; border: 1px solid rgba(156,195,228,.14); border-radius: 14px; background: var(--e-caja); }
.esc-producto > h4 { margin: 0; font: 600 16px/1.3 'IBM Plex Sans', system-ui, sans-serif; color: #F4F6F8; }
.esc-producto > h4 small { margin-inline-start: 8px; font: 400 12px/1 'IBM Plex Mono', ui-monospace, monospace; color: #8A95A2; }
.esc-dos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 14px; }
.esc-dos h5 { margin: 0 0 6px; font: 500 9.5px/1.3 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; color: #8A95A2; }
.esc-atrib { margin: 12px 0 0; font: 400 10.5px/1.5 'IBM Plex Mono', ui-monospace, monospace; color: #6F7B88; }
.esc-def { display: grid; grid-template-columns: minmax(150px, max-content) minmax(0, 1fr); gap: 0; margin: 0; }
.esc-def dt, .esc-def dd { margin: 0; padding: 8px 14px 8px 0; border-top: 1px solid rgba(156,195,228,.07); font-size: 13.5px; }
.esc-def dt { color: #8A95A2; }
.esc-def dd { color: #E8ECF1; overflow-wrap: anywhere; }
.esc-def dt:first-of-type, .esc-def dt:first-of-type + dd { border-top: 0; }
.esc-ul { margin: 0; padding-inline-start: 18px; display: grid; gap: 6px; font-size: 13.5px; line-height: 1.55; color: #B4BEC9; }
.esc-ul li::marker { color: #4A5664; }
.esc-texto { margin: 0; font-size: 14px; line-height: 1.6; color: #B4BEC9; max-width: 820px; }
.esc-texto + .esc-texto { margin-top: 10px; }
.esc-enlace-panel { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font: 500 13px/1 'IBM Plex Sans', system-ui, sans-serif; color: var(--e-acero) !important; border-bottom: 1px solid rgba(156,195,228,.35) !important; padding-bottom: 3px; }
.esc-pie { margin-top: 36px; padding-top: 18px; border-top: 1px solid rgba(156,195,228,.12); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.esc-pie p { margin: 0; flex: 1 1 360px; font: 400 11.5px/1.6 'IBM Plex Mono', ui-monospace, monospace; color: #7C8794; }

/* ---------- la cabecera de Órbita y el inicio de NÚCLEO, dentro del programa ---------- */
.escaner-btn { margin-left: 4px; }
body.dentro .escaner-btn, body.m2 .escaner-btn { display: none; }
.escaner-btn svg { flex: none; color: var(--accent, #9CC3E4); }
.escaner-btn[aria-pressed="true"] { background: rgba(156,195,228,.18); border-color: rgba(156,195,228,.6); color: #F4F6F8; }
.nuc-op[hidden] { display: none; }
/* sin NÚCLEO (dueño, 1 Nov 2026, 16:34): cuatro tarjetas en una fila */
/* 2 nov 2026: las cinco secciones de la portada, tres arriba y dos centradas debajo */
@media (min-width: 761px) { .nuc-ops.con-escaner { display: flex; flex-wrap: wrap; justify-content: center; width: min(920px, 100%); }
  .nuc-ops.con-escaner > .nuc-op { flex: 0 0 calc((100% - 24px) / 3); } }
@media (min-width: 761px) and (max-width: 1100px) { .nuc-ops.con-escaner > .nuc-op { flex-basis: calc((100% - 12px) / 2); } }

/* ---------- pantallas más estrechas ---------- */
@media (max-width: 1180px) {
  .esc-informe { grid-template-columns: 200px minmax(0, 1fr); gap: 28px; }
  .esc-av-rejilla { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .esc-av-rejilla .m-rev { grid-column: 1 / -1; order: -1; }
  .esc-examina ol { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .esc-directo { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'cab' 'barra' 'ahora' 'log'; }
  .esc-dir-pct { font-size: 44px; }
  .esc-dir-log { height: 140px; }
  .esc-informe { grid-template-columns: minmax(0, 1fr); }
  .esc-indice { display: none; }
  .esc-hechos { grid-template-columns: minmax(0, 1fr); }
  .esc-examina ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .esc-dos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .esc-barra { min-height: 60px; gap: 10px; padding: 10px max(16px, env(safe-area-inset-right, 0px)) 10px max(16px, env(safe-area-inset-left, 0px)); }
  .esc-logo { font-size: 11px; letter-spacing: .22em; }
  .esc-logo .g, .esc-logo .sep { display: none; }
  .esc-volver { height: 36px; padding: 0 12px 0 9px; font-size: 13px; }
  .esc-hoja { width: calc(100% - 32px); padding-top: 18px; }
  .esc-red { width: 150px; height: 150px; }
  .esc-lead { font-size: 15px; }
  .esc-boton { min-width: 0; width: 100%; height: 58px; padding: 0 20px; font-size: 16.5px; }
  .esc-examina ol { grid-template-columns: minmax(0, 1fr); }
  .esc-cabeza { grid-template-columns: auto minmax(0, 1fr); gap: 14px; }
  .esc-cabeza .esc-red { width: 64px; height: 64px; }
  .esc-cabeza .esc-otra { grid-column: 1 / -1; justify-self: start; }
  .esc-av-rejilla { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .esc-secs-av { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .esc-feed li .tipo { width: 76px; }
  .esc-dir-log li .tipo { width: 84px; }
  .esc-dir-fila b { font-size: 18px; }
  .esc-sec h2 { font-size: 22px; }
  .esc-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .esc-ah { grid-template-columns: minmax(0, 1fr); }
  .esc-def { grid-template-columns: minmax(0, 1fr); }
  .esc-def dt { padding-bottom: 0; }
  .esc-def dd { border-top: 0; padding-top: 2px; }
  .esc-acc .descargar span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .escaner, .esc-feed li, .esc-boton::before, .esc-vivo, .esc-segs li.esperando, .esc-secs-av li.ahora i, .esc-lentas li.esperando i, .esc-chip.curso::before, .esc-p.curso, .esc-espera i, .esc-dir-log li, .esc-dir-fila, .esc-tira-ahora { animation: none !important; }
  .esc-dir-barra .barrido { display: none; }
  .esc-dir-barra .lleno { transition: none; }
}
[dir="rtl"] .esc-volver svg, [dir="rtl"] .esc-boton svg { transform: scaleX(-1); }

/* La cuarentena (1.0.52): un botón pequeño en el aviso, y su respuesta debajo. */
.esc-cuarentena-caja { display: block; margin-top: 6px; }
.esc-cuarentena { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(224,122,108,.45); color: var(--e-alerta); font: 500 12px/1 'IBM Plex Sans', system-ui, sans-serif; background: rgba(224,122,108,.08); }
.esc-cuarentena:hover { background: rgba(224,122,108,.16); }
.esc-cuarentena:focus-visible { outline: 2px solid #F4F6F8; outline-offset: 3px; }
.esc-cuarentena:disabled { cursor: progress; opacity: .6; }
.esc-cuarentena-nota { display: block; margin-top: 5px; }
.esc-cuarentena-nota:empty { display: none; }
