/* ═══════════════════════════════════════════════════════════════════════════
   AIMA · assets/aima-zona-tecnica.css — LA ZONA TÉCNICA POR DENTRO
   ───────────────────────────────────────────────────────────────────────────
   ⚫ 17/10/2026 · Bratney: «las partes de nodos, API de AMI, núcleo de datos y
   equipo y responsabilidades, visualmente me llevan fallando mucho tiempo…
   por fuera están bien, solo es por dentro cada una».
   Las cuatro páginas de dentro de Desarrolladores (flujos, datos, api-ami,
   equipo) comparten esta hoja: un mismo «documento técnico» que la portada de
   Desarrolladores (que es la que está bien): fondo blanco, titular en Anton,
   títulos de sección en Cormorant con su romano rojo, rejillas de canto duro
   y los dibujos como un PLANO sobre papel punteado — la misma placa que
   «La app, por dentro».
   Reglas de la casa que se cumplen aquí:
     · el blanco manda en toda la página (el gris de consola de Flujos y API
       se va: era el único sitio de la web donde el fondo no era blanco);
     · un solo rojo: el cuadrado imperfecto, la palabra clave del titular, el
       botón principal (uno por pantalla) y la corriente de la cadena viva;
     · los iconos grandes son baldosas (aima-baldosas.js) y los pequeños,
       trazo (aima-iconos.js); ninguno se pinta de rojo desde aquí;
     · Anton siempre en mayúsculas; Cormorant de complemento.
   Todo cuelga de `.zt` (el <main> de cada página) y de body:not(.appm): la
   pantalla de app del móvil (aima-app-movil.js) no se toca.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0 · el papel ────────────────────────────────────────────────────────── */
html[data-zt] body:not(.appm){background:#fff}
html[data-zt] body:not(.appm) .site-head,
html[data-zt] body:not(.appm) .brandbar{background:rgba(255,255,255,.94)}
/* el pie de la API era del gris de consola: pasa al hueso del pie de Datos y Equipo */
html[data-zt="api-ami"] body:not(.appm) #pie{background:#F2F2F0}

.zt{
  --ink:#0B0B0D; --t1:#2B2B30; --t2:#56565C; --t3:#6E6E73;  /* #6E6E73: 4,9:1 sobre blanco, lo mínimo para los rótulos pequeños */
  --red:#C1272D; --red-l:#EC5A60; --bone:#F2F2F0;
  --line:#E6E6EA; --line2:#D3D3D9; --paper:#FAFAF8; --dot:#D9D9DE;
  --s1:#F5F5F7; --graf:#3A3A3C;
  --facet:polygon(10% 16%,92% 0%,100% 55%,96% 92%,0% 96%);
  --f-pack:'Anton','Impact','Arial Narrow Bold',sans-serif;
  --f-display:'Cormorant Garamond','Iowan Old Style','Times New Roman',serif;
  --f-body:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --f-mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --max:1180px; --gut:clamp(16px,4vw,28px);
  display:block; width:100%; max-width:none; margin:0; padding:0;
  color:var(--ink); font-family:var(--f-body); background:#fff;
}
.zt *,.zt *::before,.zt *::after{box-sizing:border-box}
:where(.zt) :where(p,h1,h2,h3,h4,ul,ol,dl,dd,dt,figure){margin:0;padding:0}
:where(.zt) :where(ul,ol){list-style:none}
:where(.zt) a{color:inherit}
:where(.zt) :where(b,strong){font-weight:600;color:var(--ink)}
:where(.zt) code{font-family:var(--f-mono);font-size:.88em;background:var(--s1);border:1px solid var(--line);
  border-radius:4px;padding:0 5px;color:var(--ink);white-space:nowrap}
.zt-wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.zt .ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6}
.zt .ab-tile{flex:none}

/* el cuadrado imperfecto, en sus tamaños */
.zt-fa{display:inline-block;width:9px;height:8px;background:var(--red);clip-path:var(--facet);flex:none}
.zt-fa.gris{background:#B9B9BF}
.zt-fa.hueco{background:none;box-shadow:inset 0 0 0 1.4px var(--ink)}

/* rótulos en monoespaciada: lo que en un plano son las cotas */
.zt-mono{font:500 10.5px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}

/* ── 1 · la portada de cada página ───────────────────────────────────────── */
.zt-portada{padding-top:clamp(18px,3vw,30px);padding-bottom:clamp(8px,2vw,20px)}
/* 19/10/2026 · «Volver a desarrolladores»: Bratney prefiere el texto de antes (mayúsculas con tracking, gris) pero más grande
   (de 10,5 a 11,5 px; 18/10: 12,5 era mucho) y 6 px más abajo. El respiro de abajo baja 8 px para que lo de debajo (rótulo, titular) no se mueva. */
/* 20/10/2026 · más pequeño (de 11,5 a 10 px; el icono de 16 a 13) y 1 px más arriba (top:-1px, sin mover la fila). */
/* 20/10/2026 (noche) · «un poquito más grande, sin pasarte; que sea equilibrado»: de 10 a 11 px (11,5 era grande y 12,5 mucho),
   el icono de 13 a 14 y el hueco de 8 a 9. La fila crece 1 px (el icono manda en la altura), así que el respiro de abajo baja 1 px
   (18→17, 4vw-8→4vw-9, 36→35) y lo que hay debajo no se mueve. */
.zt-volver{display:flex;width:fit-content;align-items:center;gap:9px;margin:0 0 clamp(17px,calc(4vw - 9px),35px);
  position:relative;top:-1px;
  font:600 11px/1 var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--t2);text-decoration:none;
  transition:color .25s var(--ease)}
.zt-volver .ic{width:14px;height:14px;transition:transform .3s var(--ease)}
.zt-volver:hover{color:var(--ink)}
.zt-volver:hover .ic{transform:translateX(-3px)}
@media (prefers-reduced-motion:reduce){.zt-volver,.zt-volver .ic{transition:none}.zt-volver:hover .ic{transform:none}}
/* 21/10/2026 · «Volver a desarrolladores» a la izquierda del todo (lo pidió Bratney: «se pone a la izquierda del todo»), en el
   MISMO alto que tiene dentro de la portada: lo de debajo (rótulo, titular) no se mueve. Va en su propia fila a todo el ancho,
   con el mismo margen izquierdo que la cabecera (`.brandbar-in`): justo bajo el logo, ni pegado al borde ni metido en la
   columna. El respiro de arriba es el de la portada (18–30 px; la fila del 19/10 llevaba 6 px más) y el de abajo sigue
   siendo el margen del propio enlace. Sin vw: no depende de que la ventana tenga barra de desplazamiento.
   (Si se toca esta hoja hay que subir el sello ?v= en las cuatro páginas.) */
.zt-volver-fila{display:flow-root;padding:clamp(18px,3vw,30px) clamp(18px,3vw,40px) 0 calc(clamp(18px,3vw,40px) + env(safe-area-inset-left))}
.zt-volver-fila + .zt-portada{padding-top:0}
.zt-arriba{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.zt-ceja{display:inline-flex;align-items:center;gap:10px;font:600 10.5px/1.2 var(--f-body);
  letter-spacing:.26em;text-transform:uppercase;color:var(--t2)}
.zt-ceja .zt-fa{width:10px;height:9px}
.zt-h1{margin:16px 0 0;font:400 clamp(44px,6.1vw,88px)/1.05 var(--f-pack);text-transform:uppercase;
  letter-spacing:.008em;color:var(--ink)}
.zt-h1 em{font-family:var(--f-pack);font-style:normal;color:var(--red)}
.zt-lema{margin-top:14px;font:500 clamp(22px,2.2vw,28px)/1.3 var(--f-display);color:var(--t1);max-width:30em;text-wrap:balance}
.zt-lema em{font-style:italic;color:var(--red)}
.zt-rej{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:clamp(28px,5vw,72px);
  margin-top:clamp(24px,3vw,36px);align-items:start}
.zt-entrada{font:400 clamp(16px,1.25vw,18px)/1.7 var(--f-body);color:var(--t1);max-width:40em}
.zt-cifras{display:flex;flex-wrap:wrap;margin-top:clamp(26px,3vw,36px);border-top:1px solid var(--line)}
.zt-cifras > div{display:flex;align-items:center;gap:12px;padding:18px 22px 4px 0;margin-right:22px;
  border-right:1px solid var(--line)}
.zt-cifras > div:last-child{border-right:0;margin-right:0}
.zt-cifras dt{font:400 clamp(44px,4.6vw,62px)/.9 var(--f-pack);color:var(--ink);letter-spacing:.01em}
.zt-cifras dt small{font-size:.5em;color:var(--t3);margin-left:2px}
.zt-cifras dd{font:500 12.5px/1.35 var(--f-body);color:var(--t2);max-width:8.6em}
.zt-cifras .rojo dd::before{content:"";display:block;width:9px;height:8px;margin-bottom:6px;background:var(--red);clip-path:var(--facet)}
/* la nota de al lado: por qué está en público */
.zt-porque{position:relative;padding:22px 24px 24px;background:var(--paper);border:1px solid var(--line2)}
.zt-porque::before{content:"";position:absolute;inset:5px;border:1px solid var(--line);pointer-events:none}
.zt-porque > b{position:relative;display:flex;align-items:center;gap:10px;margin-bottom:12px;
  font:600 10.5px/1.2 var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.zt-porque > b::before{content:"";flex:none;width:9px;height:8px;background:var(--red);clip-path:var(--facet)}
.zt-porque p{position:relative;font:400 14.5px/1.72 var(--f-body);color:var(--t1)}

.zt-rej--una{grid-template-columns:minmax(0,1fr)}
.zt-rej--una .zt-lema{max-width:34em}

/* ── 2 · el índice de capítulos (el de Desarrolladores) ──────────────────── */
.zt-indice{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));border-top:1px solid var(--ink);
  margin-top:clamp(30px,4vw,48px)}
.zt-indice a{display:block;padding:14px 14px 16px 0;margin-right:14px;border-right:1px solid var(--line);
  text-decoration:none;color:var(--t1);font:500 13.5px/1.3 var(--f-body);transition:color .25s}
.zt-indice a:last-child{border-right:0}
.zt-indice a i{display:block;margin-bottom:6px;font:italic 500 20px/1 var(--f-display);color:var(--red)}
.zt-indice a:hover,.zt-indice a.act{color:var(--ink)}
.zt-indice a.act{box-shadow:inset 0 2px 0 var(--red)}

/* ── 3 · la cabecera de cada capítulo ────────────────────────────────────── */
.zt-sec{padding-top:clamp(56px,8vw,104px)}
.zt-sec-cab{display:grid;grid-template-columns:clamp(40px,5vw,64px) minmax(0,1fr);column-gap:clamp(12px,2vw,20px);
  margin-bottom:clamp(26px,3.4vw,40px)}
.zt-rom{grid-row:1 / span 3;padding-top:clamp(28px,3.4vw,40px);font:italic 500 clamp(30px,3.2vw,40px)/1 var(--f-display);color:var(--red)}
.zt-sec-cab .zt-mono{display:block;margin-bottom:12px;color:var(--t2);font-family:var(--f-body);font-weight:600;letter-spacing:.24em}
.zt-h2{font:500 clamp(38px,4.6vw,60px)/1.02 var(--f-display);letter-spacing:-.012em;color:var(--ink);text-wrap:balance}
.zt-h2 em{font-style:italic;color:var(--red)}
.zt-sub{margin-top:14px;font:400 16px/1.65 var(--f-body);color:var(--t2);max-width:38em}
.zt-sub a{color:var(--ink);text-underline-offset:3px}

.zt-sec-cab--corta{margin-bottom:0}
.zt-sec-cab--corta .zt-rom{grid-row:auto;padding-top:0}
.zt-sec-cab--corta .zt-mono{align-self:center;margin-bottom:0}
.zt-sec:last-child,.zt-grupo:last-child{padding-bottom:clamp(64px,8vw,110px)}

/* ── 4 · piezas sueltas ──────────────────────────────────────────────────── */
.zt-nota{margin-top:clamp(22px,3vw,30px);padding:16px 22px;border-left:2px solid var(--red);background:#fff;
  font:400 14.5px/1.7 var(--f-body);color:var(--t2);max-width:46em}
.zt-nota b{color:var(--ink)}
.zt-nota a{color:var(--ink);text-underline-offset:3px}
/* estados: una luz (cuadrado imperfecto) y su rótulo */
.zt-estado{justify-self:start;align-self:start;width:fit-content;display:inline-flex;align-items:center;gap:9px;padding:6px 12px 6px 10px;border:1px solid var(--line2);
  background:#fff;font:600 10px/1 var(--f-body);letter-spacing:.2em;text-transform:uppercase;color:var(--t2);white-space:nowrap}
.zt-estado .zt-fa{width:9px;height:8px;background:#B9B9BF}
.zt-estado.on{border-color:var(--ink);color:var(--ink)}
.zt-estado.on .zt-fa{background:var(--red);animation:zt-luz 2.4s ease-in-out infinite}
@keyframes zt-luz{0%,100%{filter:drop-shadow(0 0 0 rgba(193,39,45,0))}50%{filter:drop-shadow(0 0 5px rgba(193,39,45,.85))}}
.zt-tag{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--line2);
  font:600 9.5px/1 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--t2);white-space:nowrap;background:#fff}
.zt-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;background:var(--red);
  color:#fff !important;text-decoration:none;font:600 14px/1 var(--f-body);letter-spacing:.01em;
  box-shadow:0 10px 24px -12px rgba(193,39,45,.7);transition:transform .3s var(--ease),box-shadow .3s}
.zt-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px -14px rgba(193,39,45,.8)}
.zt-btn .ic{width:16px;height:16px}
.zt-pill{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border-radius:999px;border:1.5px solid var(--ink);
  color:var(--ink);text-decoration:none;font:600 14px/1 var(--f-body);background:#fff;transition:background .25s,color .25s}
.zt-pill:hover{background:var(--ink);color:#fff}
.zt-pill .ic{width:16px;height:16px}

/* ── 5 · el plano: papel punteado con su marco doble ─────────────────────── */
.zt-plano{position:relative;padding:44px clamp(16px,2.4vw,30px) 34px;border:1px solid var(--line2);
  background-color:var(--paper);
  background-image:radial-gradient(circle at 1px 1px,var(--dot) 1px,transparent 1.4px);background-size:16px 16px}
.zt-plano::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);pointer-events:none}
.zt-plano > .zt-mono.izq,.zt-plano > .zt-mono.der{position:absolute;top:18px;z-index:1}
.zt-plano > .zt-mono.izq{left:clamp(16px,2.4vw,30px)}
.zt-plano > .zt-mono.der{right:clamp(16px,2.4vw,30px);text-align:right}

/* ═══════════════════════════════════════════════════════════════════════════
   FLUJOS · el cuadro y los planos de cada cadena
   ═══════════════════════════════════════════════════════════════════════════ */
/* el cuadro: once interruptores, uno arriba */
.zt-cuadro{margin-top:clamp(36px,4.4vw,56px)}
.zt-cuadro .zt-plano{padding-top:50px;padding-bottom:22px}
.zt-breakers{position:relative;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));
  border:1px solid var(--line2);background:#fff;counter-reset:br}
.zt-breakers::before,.zt-breakers::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--line);pointer-events:none}
.zt-breakers::before{top:58px}.zt-breakers::after{top:104px}
.zt-br{position:relative;display:flex;flex-direction:column;align-items:center;gap:0;padding:14px 6px 16px;
  border-right:1px solid var(--line);text-decoration:none;color:var(--t1);min-height:210px;
  transition:background .25s var(--ease)}
.zt-breakers li:last-child .zt-br{border-right:0}
.zt-breakers{overflow:hidden}
.zt-br:hover{background:var(--s1)}
.zt-br-n{font:500 10px/1 var(--f-mono);color:var(--t3);letter-spacing:.06em}
.zt-br-luz{margin-top:9px;width:11px;height:10px;clip-path:var(--facet);background:#D0D0D6}
.zt-br.on .zt-br-luz{background:var(--red);animation:zt-luz 2.4s ease-in-out infinite}
.zt-br-palanca{position:relative;margin-top:12px;width:30px;height:58px;border-radius:7px;background:var(--s1);
  border:1px solid var(--line2);box-shadow:inset 0 2px 5px rgba(11,11,13,.08)}
.zt-br-palanca::after{content:"";position:absolute;left:3px;right:3px;bottom:3px;height:24px;border-radius:5px;
  background:#fff;border:1px solid var(--line2);box-shadow:0 2px 4px rgba(11,11,13,.12);transition:bottom .45s var(--ease),background .3s}
.zt-br.on .zt-br-palanca::after{bottom:29px;background:var(--ink);border-color:var(--ink);box-shadow:0 2px 6px rgba(11,11,13,.3)}
.zt-br-nom{margin-top:14px;font:600 12px/1.28 var(--f-body);color:var(--ink);text-align:center;text-wrap:balance;hyphens:auto}
.zt-br-disp{margin-top:auto;padding-top:10px;font:500 9.5px/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;
  color:var(--t3);text-align:center}
.zt-br.on .zt-br-disp{color:var(--ink)}
/* la clave del plano: qué es cada baldosa */
.zt-clave{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-top:16px}
.zt-clave > .zt-mono{flex-basis:100%;margin:0 0 2px;color:var(--t2)}
.zt-clave span:not(.zt-mono){display:inline-flex;align-items:center;gap:7px;font:500 11.5px/1.2 var(--f-body);color:var(--t1)}
/* las imágenes de los nodos (las oficiales de n8n: webhook, WhatsApp, globo, base de datos…) */
.zt .zt-ni{display:block;flex:none;width:32px;height:32px}
.zt .zt-ni-cod{color:var(--ink)}
.zt .zt-clave .zt-ni{width:20px;height:20px}
.zt-clave .zt-rayo-k{width:12px;height:12px;color:var(--ink)}

/* una cadena: ficha a la izquierda, plano a la derecha */
.zt-cadena{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:clamp(24px,3.4vw,48px);
  padding:clamp(40px,5vw,60px) 0;border-top:1px solid var(--line);scroll-margin-top:96px}
.zt-cadenas{margin-top:clamp(48px,6vw,80px)}
.zt-cadenas > .zt-cadena:first-child{border-top:1px solid var(--ink)}
.zt-cad-n{display:block;font:400 clamp(42px,4.4vw,56px)/.9 var(--f-pack);color:var(--line2);letter-spacing:.01em}
.zt-cadena.on .zt-cad-n{color:var(--ink)}
.zt-cadena h2{margin-top:10px;font:500 clamp(28px,2.6vw,36px)/1.08 var(--f-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance}
.zt-cadena .zt-estado{margin-top:14px}
.zt-cad-txt{margin-top:16px;font:400 14.5px/1.72 var(--f-body);color:var(--t2)}
.zt-cad-meta{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.zt-cad-meta dt{font:500 10px/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.zt-cad-meta dd{font:500 12.5px/1.5 var(--f-body);color:var(--t1)}
.zt-cadena:target .zt-plano{border-color:var(--ink)}
.zt-cadena .zt-plano{display:flex;flex-direction:column;padding-bottom:0}
.zt-lienzo{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;padding:4px 0 26px;overflow-x:auto;overflow-y:visible}
.zt-plano.vertical .zt-lienzo{overflow:visible}
/* el cajetín: la casilla de datos de un plano de verdad */
.zt-cajetin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 calc(-1 * clamp(16px,2.4vw,30px));
  border-top:1px solid var(--line2);background:rgba(255,255,255,.86);position:relative}
.zt-cajetin > div{padding:11px clamp(16px,2.4vw,30px) 12px;border-right:1px solid var(--line)}
.zt-cajetin > div:last-child{border-right:0}
.zt-cajetin dt{font:500 9.5px/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--t3)}
.zt-cajetin dd{margin-top:4px;font:600 12.5px/1.35 var(--f-body);color:var(--ink)}
/* la ancha: el texto arriba en dos columnas y el plano a todo el ancho */
.zt-cadena.ancha{grid-template-columns:minmax(0,1fr)}
.zt-cadena.ancha .zt-cad-izq{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);column-gap:clamp(24px,3.4vw,48px);align-items:end}
.zt-cadena.ancha .zt-cad-izq > *{grid-column:1}
.zt-cadena.ancha .zt-cad-txt{grid-column:2;grid-row:1 / span 3;align-self:end;margin-top:0;max-width:44em}

/* los nodos */
.zt-cad{position:relative;display:flex;align-items:flex-start;justify-content:center;justify-content:safe center;gap:0;padding-top:6px}
.zt-n{position:relative;display:flex;flex-direction:column;align-items:center;flex:0 0 122px;width:122px;text-align:center}
.zt-n-ic{position:relative;display:grid;place-items:center;width:58px;height:58px;border-radius:15px;background:#fff;
  border:1px solid var(--line2);box-shadow:0 6px 14px -10px rgba(11,11,13,.45)}
.zt-disp .zt-n-ic{border-radius:29px 15px 15px 29px}
.zt-rayo{position:absolute;left:-22px;top:50%;width:14px;height:14px;margin-top:-7px;color:var(--ink)}
.zt-n-rot{margin-top:11px;font:600 12.5px/1.3 var(--f-body);color:var(--ink);text-wrap:balance}
.zt-n-tx{display:flex;flex-direction:column;align-items:center;min-width:0}
.zt-n-sub{margin-top:5px;font:400 9.5px/1.4 var(--f-mono);color:var(--t3);overflow-wrap:anywhere;hyphens:none}
.zt-mas{flex:none;align-self:flex-start;margin:18px 0 0 10px;width:22px;height:22px;display:grid;place-items:center;
  border:1px dashed var(--line2);color:var(--t3);font:400 15px/1 var(--f-body);background:#fff}
/* el cable entre dos nodos */
.zt-h{position:relative;flex:1 1 30px;min-width:22px;max-width:150px;height:58px;margin-top:6px}
.zt-h::before{content:"";position:absolute;left:4px;right:9px;top:29px;border-top:1.5px dashed #ABABB2}
.zt-h::after{content:"";position:absolute;right:3px;top:25px;border:4.5px solid transparent;border-left:6px solid #ABABB2;border-right:0}
.zt-h i{position:absolute;left:0;right:0;top:9px;text-align:center;font:500 9px/1 var(--f-mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--t3);font-style:normal;white-space:nowrap}
/* la cadena viva: cable lleno y la corriente pasando */
.zt-plano.vivo .zt-h::before{border-top-style:solid;border-top-color:var(--ink)}
.zt-plano.vivo .zt-h::after{border-left-color:var(--ink)}
.zt-plano.vivo .zt-h b{position:absolute;top:25px;left:6px;width:9px;height:8px;background:var(--red);clip-path:var(--facet);
  animation:zt-corre 2.6s linear infinite;animation-delay:var(--d,0s)}
@keyframes zt-corre{0%{left:4px;opacity:0}12%{opacity:1}80%{opacity:1}100%{left:calc(100% - 20px);opacity:0}}
.zt-plano:not(.vivo) .zt-n-ic{box-shadow:none}

/* el agente: su caja ancha y las herramientas colgando del bus */
.zt-agente{flex:0 0 auto;width:auto;min-width:300px}
.zt-ag-caja{display:flex;align-items:center;gap:12px;padding:10px 18px 10px 10px;min-height:58px;border-radius:15px;
  background:#fff;border:1px solid var(--line2);box-shadow:0 6px 14px -10px rgba(11,11,13,.45)}
.zt .zt-ag-caja .zt-ni{width:34px;height:34px}
.zt-ag-caja b{font:600 14px/1.25 var(--f-body);color:var(--ink);text-align:left}
.zt-herr{position:relative;display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));gap:0;margin-top:30px;padding-top:34px}
.zt-herr::before{content:"";position:absolute;top:0;left:var(--bus-i,calc(50% / var(--n,6)));right:var(--bus-d,calc(50% / var(--n,6)));border-top:1.5px dashed #ABABB2}
.zt-herr .zt-bus{position:absolute;top:-30px;left:50%;height:30px;border-left:1.5px dashed #ABABB2}
.zt-plano.vivo .zt-herr::before,.zt-plano.vivo .zt-herr .zt-bus,.zt-plano.vivo .zt-p::before{border-color:var(--ink)}
.zt-p{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 6px}
.zt-p::before{content:"";position:absolute;top:-34px;left:50%;height:20px;border-left:1.5px dashed #ABABB2}
.zt-p-tipo{position:absolute;top:-30px;left:calc(50% + 8px);font:500 9px/1 var(--f-mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--t3);white-space:nowrap}
.zt-p-rombo{position:absolute;top:-17px;left:50%;width:9px;height:9px;margin-left:-4.5px;transform:rotate(45deg);
  background:#fff;border:1.5px solid #ABABB2}
.zt-p .zt-n-ic{width:50px;height:50px;border-radius:25px}
.zt .zt-p .zt-n-ic .zt-ni{width:26px;height:26px}

/* ═══════════════════════════════════════════════════════════════════════════
   DATOS · el esquema, quién más, la etiqueta de Apple, los plazos, tus derechos
   ═══════════════════════════════════════════════════════════════════════════ */
.zt-esquema{columns:4 250px;column-gap:16px}
.zt-tb{break-inside:avoid;margin:0 0 16px;background:#fff;border:1px solid var(--line2);box-shadow:0 1px 0 rgba(11,11,13,.03)}
.zt-tb-cab{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--ink)}
.zt-tb-cab .ab-tile{width:26px;height:26px;border-radius:6.5px}
.zt-tb-n{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.zt-tb-n .zt-mono{font-size:9.5px;letter-spacing:.12em}
.zt-tb-cab h3{font:600 13.5px/1.2 var(--f-mono);color:var(--ink);overflow-wrap:anywhere}
.zt-tb > p{padding:12px 14px 10px;font:400 13.5px/1.6 var(--f-body);color:var(--t2)}
.zt-cols{padding:0 14px 8px}
.zt-cols li{display:flex;align-items:center;gap:9px;padding:7px 0;border-top:1px solid var(--line);
  font:400 12px/1.35 var(--f-mono);color:var(--t1)}
.zt-cols li::before{content:"";flex:none;width:6px;height:5px;background:#C4C4CA;clip-path:var(--facet)}
.zt-cols li .ic{width:15px;height:15px;color:var(--ink);margin-left:-2px}
.zt-cols li.seg,.zt-cols li.ocu,.zt-cols li.ip{color:var(--ink);font-weight:600}
.zt-cols li.seg::before,.zt-cols li.ocu::before,.zt-cols li.ip::before{display:none}
.zt-cols li .zt-ipt{flex:none;font:700 9px/1 var(--f-mono);letter-spacing:.06em;padding:3px 4px;border:1.2px solid var(--ink);color:var(--ink)}
.zt-esq-clave{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:6px}
.zt-esq-clave span{display:inline-flex;align-items:center;gap:8px;font:500 12px/1.3 var(--f-body);color:var(--t2)}
.zt-esq-clave .ic{width:15px;height:15px;color:var(--ink)}
.zt-esq-clave .zt-ipt{font:700 9px/1 var(--f-mono);padding:3px 4px;border:1.2px solid var(--ink);color:var(--ink)}

/* quién más: siete casillas en el orden de la cadena de un dato, y la octava vacía */
.zt-prov{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line2)}
.zt-pv{position:relative;display:flex;flex-direction:column;gap:10px;padding:22px 22px 20px;border-right:1px solid var(--line2);
  border-bottom:1px solid var(--line2);background:#fff;min-height:218px}
.zt-pv-n{position:absolute;top:18px;right:20px;font:500 10px/1 var(--f-mono);color:var(--t3);letter-spacing:.06em}
.zt-pv-lg{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line2);background:#fff;color:var(--ink)}
.zt-pv-lg .ic{width:24px;height:24px}
.zt-pv-lg.ini{font:600 18px/1 var(--f-body);color:var(--ink)}
.zt-pv b{font:500 26px/1.05 var(--f-display);color:var(--ink);letter-spacing:-.005em}
.zt-pv > span{font:400 13.5px/1.6 var(--f-body);color:var(--t2)}
.zt-pv .zt-region{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font:600 9.5px/1 var(--f-body);
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.zt-pv .zt-region::before{content:"";width:16px;height:1.5px;background:var(--ink)}
.zt-pv .zt-region.fu{color:var(--t2)}
.zt-pv .zt-region.fu::before{background:var(--t3)}
.zt-pv.vacia{background:repeating-linear-gradient(135deg,#fff 0 9px,var(--s1) 9px 10px)}
.zt-pv.vacia b{color:var(--t2);text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:var(--ink)}
.zt-reparto{display:flex;flex-wrap:wrap;gap:12px 34px;margin-bottom:18px;align-items:baseline}
.zt-reparto div{display:flex;align-items:baseline;gap:10px}
.zt-reparto dt{font:400 40px/1 var(--f-pack);color:var(--ink)}
.zt-reparto dd{font:600 10.5px/1.2 var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--t2)}

/* la etiqueta de Apple: tres cubos */
.zt-apple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line2)}
.zt-ap{display:flex;flex-direction:column;padding:24px 24px 26px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#fff}
.zt-ap-cab{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.zt-ap-cab .zt-mono{color:var(--t3)}
.zt-ap-cab .ic{width:22px;height:22px;color:var(--ink)}
.zt-ap h3{font:500 25px/1.12 var(--f-display);color:var(--ink);margin-bottom:12px;text-wrap:balance}
.zt-ap p{font:400 13.5px/1.68 var(--f-body);color:var(--t2)}
.zt-ap-lista{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.zt-ap-lista span{display:inline-flex;align-items:center;gap:6px;padding:5px 9px 5px 7px;border:1px solid var(--line2);
  font:500 11.5px/1 var(--f-body);color:var(--ink);background:#fff}
.zt-ap-lista span .ic{width:14px;height:14px}
.zt-ap-lista.no span{color:var(--t3);border-style:dashed;text-decoration:line-through;text-decoration-color:var(--t3)}
.zt-ap.ninguno{box-shadow:inset 0 3px 0 var(--ink)}
.zt-ninguno{display:block;margin:0 0 14px;font:400 clamp(56px,5.6vw,80px)/.9 var(--f-pack);text-transform:uppercase;color:var(--ink);letter-spacing:.01em}
.zt-pend{position:relative;margin-top:22px;padding:22px 26px 22px 26px;border:1.5px dashed var(--line2);background:#fff;
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 22px;align-items:start}
.zt-pend-sello{grid-row:1 / span 2;align-self:center;padding:8px 12px;border:1.5px solid var(--ink);transform:rotate(-4deg);
  font:400 18px/1 var(--f-pack);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.zt-pend > b{font:500 22px/1.2 var(--f-display);color:var(--ink)}
.zt-pend p{font:400 14px/1.7 var(--f-body);color:var(--t2);max-width:52em}
.zt-pend p a{color:var(--ink);text-underline-offset:3px}

/* los plazos: una regla de tiempo */
.zt-plazos{border-top:1px solid var(--ink)}
.zt-pl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px clamp(24px,4vw,56px);align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line)}
.zt-pl b{display:block;font:500 25px/1.1 var(--f-display);color:var(--ink);margin-bottom:6px}
.zt-pl span.tx{display:block;font:400 13.5px/1.65 var(--f-body);color:var(--t2)}
.zt-barra{position:relative;height:42px}
.zt-barra .eje{position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--line2)}
.zt-barra .tramo{position:absolute;top:50%;height:10px;margin-top:-5px;background:var(--ink)}
.zt-barra .cota{position:absolute;top:0;font:500 9.5px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
.zt-barra .flecha{position:absolute;top:50%;margin-top:-6px;border:6px solid transparent;border-left:9px solid var(--ink);border-right:0}
.zt-barra .corte{position:absolute;top:50%;width:2px;height:22px;margin-top:-11px;background:var(--ink)}
.zt-barra .pastilla{position:absolute;top:50%;width:7px;height:10px;margin-top:-5px;background:var(--ink)}
.zt-barra .dia{position:absolute;top:50%;height:10px;margin-top:-5px;background:var(--ink)}
.zt-barra .reinicio{position:absolute;top:50%;width:1px;height:18px;margin-top:-9px;background:var(--t3)}
.zt-barra .stop{position:absolute;top:50%;width:13px;height:12px;margin-top:-6px;background:var(--red);clip-path:var(--facet)}
.zt-barra .tramo.rayado{background:repeating-linear-gradient(135deg,var(--ink) 0 2px,transparent 2px 6px);border:1px solid var(--ink)}
.zt-barra.treinta .ideas{position:absolute;left:0;right:0;top:50%;margin-top:-5px;display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:3px}
.zt-barra.treinta .ideas i{display:block;height:10px;background:var(--ink);clip-path:var(--facet)}
.zt-barra.dias .tramos{position:absolute;left:0;right:0;top:50%;margin-top:-5px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;height:10px}
.zt-barra.dias .tramos i{position:relative;display:block;height:10px;background:linear-gradient(90deg,#E4E4E8,var(--ink));border-left:2px solid var(--ink)}
.zt-pl.hoy{background:linear-gradient(90deg,var(--paper),#fff 70%)}

/* tus derechos: seis fichas que abren el correo */
.zt-derechos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line2)}
.zt-de{display:flex;align-items:center;gap:14px;padding:20px 20px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);
  text-decoration:none;color:var(--ink);background:#fff;transition:background .25s}
.zt-de .ic{width:22px;height:22px;color:var(--ink)}
.zt-de span{flex:1 1 auto;font:600 14px/1.3 var(--f-body)}
.zt-de small{display:block;margin-top:4px;font:500 10px/1.2 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}
.zt-de .ic.flecha{width:16px;height:16px;color:var(--t3);transition:transform .3s var(--ease),color .3s}
.zt-de:hover{background:var(--s1)}
.zt-de:hover .ic.flecha{transform:translateX(3px);color:var(--ink)}
/* el colofón con los documentos */
.zt-colofon{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);position:relative;
  margin-top:clamp(56px,7vw,96px);padding-top:clamp(28px,3vw,36px);padding-bottom:clamp(44px,5vw,64px)}
.zt-colofon::before{content:"";position:absolute;top:0;left:var(--gut);right:var(--gut);border-top:1px solid var(--ink)}
.zt-colofon .zt-mono{display:block;color:var(--ink);font-family:var(--f-body);font-weight:600;letter-spacing:.24em;margin-bottom:10px}
.zt-colofon p.tx{font:400 14.5px/1.7 var(--f-body);color:var(--t2);max-width:30em}
.zt-legal a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);
  text-decoration:none;color:var(--ink)}
.zt-legal a:first-child{border-top:1px solid var(--line)}
.zt-legal a b{font:600 14px/1.3 var(--f-body)}
.zt-legal a span{font:400 12.5px/1.4 var(--f-body);color:var(--t2)}
.zt-legal a .ic{width:15px;height:15px;color:var(--t3);transition:transform .3s var(--ease)}
.zt-legal a:hover .ic{transform:translateX(3px);color:var(--ink)}

/* las láminas de grabado (abeja, grullas, córvido): ahora se ven enteras, al lado del título */
.zt-sec-cab{position:relative}
.zt-lam{position:absolute;right:0;top:-30px;width:clamp(170px,19vw,250px);aspect-ratio:1;opacity:.16;pointer-events:none;
  background:var(--ink);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;-webkit-mask-source-type:luminance;mask-mode:luminance}
.zt-lam.abeja{-webkit-mask-image:url(grabados/abeja.png);mask-image:url(grabados/abeja.png)}
.zt-lam.grullas{-webkit-mask-image:url(grabados/grullas.png);mask-image:url(grabados/grullas.png)}
.zt-lam.corvido{-webkit-mask-image:url(grabados/corvido.png);mask-image:url(grabados/corvido.png)}
@media (max-width:900px){.zt-lam{display:none}}

/* ═══════════════════════════════════════════════════════════════════════════
   API DE AMI · las rutas, quién llama a qué, cada endpoint y los doce enchufes
   ═══════════════════════════════════════════════════════════════════════════ */
.zt-met{display:inline-grid;place-items:center;min-width:46px;height:22px;padding:0 7px;border:1.4px solid var(--ink);
  font:700 10px/1 var(--f-mono);letter-spacing:.06em;color:var(--ink);background:#fff}
.zt-met.post{background:var(--ink);color:#fff}
.zt-llave{display:inline-flex;align-items:center;gap:7px;font:600 9.5px/1.2 var(--f-body);letter-spacing:.18em;
  text-transform:uppercase;color:var(--t3);white-space:nowrap}
.zt-llave .ic{width:14px;height:14px}
.zt-llave.pide{color:var(--ink)}
.zt-rutas{border-top:1px solid var(--ink)}
.zt-ruta{display:grid;grid-template-columns:56px minmax(0,260px) minmax(0,1fr) auto 18px;gap:18px;align-items:center;
  padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .25s}
.zt-ruta code{background:none;border:0;padding:0;font:600 14px/1.3 var(--f-mono);white-space:normal;overflow-wrap:anywhere}
.zt-ruta .que{font:400 13.5px/1.5 var(--f-body);color:var(--t2)}
.zt-ruta > .ic{width:15px;height:15px;color:var(--t3);transition:transform .3s var(--ease)}
.zt-ruta:hover{background:var(--s1)}
.zt-ruta:hover > .ic{transform:translateX(3px);color:var(--ink)}
.zt-cuenta{margin-top:18px;font:400 14px/1.7 var(--f-body);color:var(--t2);max-width:46em}

/* quién llama a qué: tres columnas y los cables los dibuja el guion */
.zt-mapa{position:relative;margin-top:clamp(30px,4vw,44px)}
.zt-mapa-rej{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);
  gap:clamp(40px,7vw,110px);align-items:center}
.zt-mapa-col{display:flex;flex-direction:column;gap:12px}
.zt-mapa-col > .zt-mono{margin-bottom:4px}
.zt-mapa-q{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--line2)}
.zt-mapa-q .ab-tile{width:34px;height:34px;border-radius:8.5px}
.zt-mapa-q b{display:block;font:600 13px/1.25 var(--f-body);color:var(--ink)}
.zt-mapa-q small{display:block;margin-top:3px;font:400 11.5px/1.35 var(--f-body);color:var(--t2)}
.zt-mapa-r{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#fff;border:1px solid var(--line2);text-decoration:none}
.zt-mapa-r code{background:none;border:0;padding:0;font:600 12.5px/1.2 var(--f-mono);white-space:nowrap}
.zt-mapa svg.cables{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}
.zt-mapa svg.cables path{fill:none;stroke:#ABABB2;stroke-width:1.4}
.zt-mapa svg.cables path.llave{stroke:var(--ink);stroke-dasharray:4 4}
.zt-mapa.encendido .zt-mapa-q,.zt-mapa.encendido .zt-mapa-r{transition:opacity .25s,border-color .25s}
.zt-mapa.foco .zt-mapa-q:not(.act),.zt-mapa.foco .zt-mapa-r:not(.act){opacity:.35}
.zt-mapa.foco svg.cables path{opacity:.18}
.zt-mapa.foco svg.cables path.act{opacity:1;stroke:var(--ink);stroke-width:2}
.zt-mapa .act{border-color:var(--ink)}
.zt-mapa-via{display:none}
.zt-mapa-pie{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px}
.zt-mapa-pie span{display:inline-flex;align-items:center;gap:8px;font:500 12px/1.3 var(--f-body);color:var(--t2)}
.zt-mapa-pie i{display:inline-block;width:26px;border-top:1.4px solid #ABABB2}
.zt-mapa-pie i.llave{border-top:1.4px dashed var(--ink)}

/* cada endpoint: la ficha y su petición en la terminal */
.zt-grupo{padding-top:clamp(48px,6vw,80px)}
.zt-grupo .zt-sec-cab{margin-bottom:24px}
.zt-ep{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid var(--line2);background:#fff;
  scroll-margin-top:96px}
.zt-ep + .zt-ep{margin-top:18px}
.zt-ep-tx{padding:26px 28px 26px}
.zt-ep-cab{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px}
.zt-ep-cab code{background:none;border:0;padding:0;font:600 clamp(16px,1.5vw,19px)/1.2 var(--f-mono);color:var(--ink);white-space:normal;overflow-wrap:anywhere}
.zt-ep-cab .zt-llave{margin-left:auto}
.zt-ep-tx p{font:400 14.5px/1.72 var(--f-body);color:var(--t2)}
.zt-ep-tx p code{white-space:normal}
.zt-ep-lim{display:flex;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font:400 12.5px/1.5 var(--f-body);color:var(--t2)}
.zt-ep-lim .zt-mono{flex:none;padding-top:2px}
.zt-term{position:relative;display:flex;flex-direction:column;background:#111113;color:#E6E6E8;padding:0;min-width:0}
.zt-term-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid #26262A}
.zt-term-bar i{width:8px;height:8px;border-radius:50%;background:#3A3A3C}
.zt-term-bar i:first-child{background:#EC5A60}
.zt-term-bar span{margin-left:8px;font:500 10px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#86868B}
.zt-term-cuerpo{flex:1 1 auto;padding:16px 18px 18px;font:400 12.5px/1.75 var(--f-mono);overflow-x:auto}
.zt-term-cuerpo .k{display:block;margin:12px 0 4px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#86868B}
.zt-term-cuerpo .k:first-child{margin-top:0}
.zt-term-cuerpo .l{display:block;white-space:pre-wrap;word-break:break-word}
.zt-term-cuerpo .m{color:#EC5A60;font-weight:700}
.zt-term-cuerpo .p{color:#fff}
.zt-term-cuerpo .c{color:#8A8D8F}
.zt-term-cuerpo .f{color:#F2F2F0}
.zt-term-cuerpo .s{color:#B9B9BF}
.zt-term--portada{align-self:start;box-shadow:0 26px 40px -30px rgba(11,11,13,.55)}
.zt-term--portada .zt-term-cuerpo{padding:18px 20px 20px;font-size:13px}
.zt-copia{position:absolute;top:8px;right:10px;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid #3A3A3C;
  border-radius:999px;background:#18181B;color:#B9B9BF;font:600 9.5px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.zt-copia:hover{color:#fff;border-color:#86868B}
.zt-copia .ic{width:12px;height:12px}

/* los doce enchufes del plan */
.zt-regleta{position:relative;margin-top:6px;padding:26px 24px 22px;border:1px solid var(--line2);background:#fff;
  box-shadow:0 18px 30px -26px rgba(11,11,13,.5)}
.zt-tomas{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:10px}
.zt-toma{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.zt-toma-caja{position:relative;width:100%;max-width:64px;aspect-ratio:1;border-radius:12px;background:var(--s1);border:1px solid var(--line2);
  box-shadow:inset 0 2px 6px rgba(11,11,13,.08)}
.zt-toma-caja::before,.zt-toma-caja::after{content:"";position:absolute;top:38%;width:6px;height:15%;border-radius:2px;background:#C9C9CF}
.zt-toma-caja::before{left:32%}.zt-toma-caja::after{right:32%}
.zt-toma-clavija{position:absolute;inset:14%;border-radius:9px;background:var(--ink);box-shadow:0 4px 8px -3px rgba(11,11,13,.5);z-index:1}
.zt-toma-clavija::after{content:"";position:absolute;left:50%;top:-30%;width:3px;height:34%;margin-left:-1.5px;background:var(--ink)}
.zt-toma.resto .zt-toma-clavija{background:#fff;border:1.5px solid var(--ink)}
.zt-toma.resto .zt-toma-clavija::after{background:var(--ink)}
.zt-toma.libre .zt-toma-caja{background:#fff;border:1.5px dashed var(--line2);box-shadow:none}
.zt-toma.libre .zt-toma-caja::before,.zt-toma.libre .zt-toma-caja::after{display:none}
.zt-toma.libre .zt-toma-caja span{position:absolute;inset:0;display:grid;place-items:center;font:400 18px/1 var(--f-pack);color:var(--t3)}
.zt-toma code{background:none;border:0;padding:0;font:600 10.5px/1.25 var(--f-mono);text-align:center;white-space:normal;overflow-wrap:anywhere;color:var(--ink)}
.zt-toma.libre code{color:var(--t3);font-weight:500}
.zt-regleta-pie{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.zt-regleta-pie span{display:inline-flex;align-items:center;gap:9px;font:500 12px/1.3 var(--f-body);color:var(--t2)}
.zt-regleta-pie i{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--ink)}
.zt-regleta-pie i.resto{background:#fff;border:1.5px solid var(--ink)}
.zt-regleta-pie i.libre{background:#fff;border:1.5px dashed var(--line2)}
.zt-regleta-cuenta{margin-left:auto;font:400 22px/1 var(--f-pack);color:var(--ink);letter-spacing:.02em}
.zt-fuera{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.zt-fuera code{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px dashed var(--line2);background:#fff;color:var(--t2);font-size:11.5px}
.zt-fuera .zt-mono{align-self:center;margin-right:6px}
.zt-frontera{margin-top:22px;max-width:52em}
.zt-frontera p{font:400 14.5px/1.75 var(--f-body);color:var(--t2)}
.zt-frontera p + p{margin-top:14px}
.zt-frontera code{white-space:normal}

/* ═══════════════════════════════════════════════════════════════════════════
   EQUIPO · la ficha, los oficios y el sitio vacío
   ═══════════════════════════════════════════════════════════════════════════ */

/* la ficha de cada persona (el padrón y la pantalla partida siguen siendo los suyos) */
html[data-zt="equipo"] body:not(.appm) .zt #equipo-fichas{padding:0;background:none}
html[data-zt="equipo"] body:not(.appm) .zt .fichas{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
html[data-zt="equipo"] body:not(.appm) .zt .persona{padding-left:0;padding-right:0}
/* 19/10/2026 · la entrada de Equipo arranca a la misma altura que la de las otras tres. Su barra es fija (no ocupa sitio) y
   medía 64 en vez de 65 (las otras llevan 64 + el filete): se pone en 65 y se le suma el mismo respiro que lleva la fila del
   volver en ellas (de 23 a 35 px). Antes salía 5 px más arriba en escritorio y 7 más abajo en móvil. */
html[data-zt="equipo"] body:not(.appm){--head-h:65px}
html[data-zt="equipo"] body:not(.appm) .zt-volver-fila{padding-top:calc(var(--head-h) + clamp(18px,3vw,30px))}
/* 19/10/2026 · el cuerpo de antes de Equipo (la ficha, los oficios, el siguiente y el cierre) va en la misma columna que
   la entrada y que las otras tres páginas: 1180px y el mismo margen. Solo cambia el ancho; lo de dentro es lo de siempre. */
html[data-zt="equipo"] body:not(.appm) #equipo-fichas .fichas{max-width:1180px;margin:0 auto;padding:0 clamp(16px,4vw,28px)}
html[data-zt="equipo"] body:not(.appm) #equipo-fichas .persona{padding-left:0;padding-right:0}
html[data-zt="equipo"] body:not(.appm) main .wrap{max-width:1180px;padding-left:clamp(16px,4vw,28px);padding-right:clamp(16px,4vw,28px)}
html[data-zt="equipo"] body:not(.appm) .zt .acuno{background:none;box-shadow:none;border:0;border-top:1px solid var(--ink);border-radius:0;
  padding:26px 0 0;margin-top:40px}
html[data-zt="equipo"] body:not(.appm) .zt .acuno::before{display:none}
html[data-zt="equipo"] body:not(.appm) .zt .acuno > p{font-size:15.5px;line-height:1.8;color:var(--t1);max-width:40em}
html[data-zt="equipo"] body:not(.appm) .zt .acuno > p:first-of-type{font:500 clamp(22px,2.1vw,27px)/1.42 var(--f-display);color:var(--ink);max-width:28em}
html[data-zt="equipo"] body:not(.appm) .zt .acuno > p:first-of-type b{font-weight:600;color:var(--ink);box-shadow:inset 0 -.38em 0 rgba(11,11,13,.07)}
html[data-zt="equipo"] body:not(.appm) .zt .acuno .apunte{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--t2)}
/* los tres oficios */
.zt-oficios{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line2)}
.zt-of{display:flex;flex-direction:column;padding:28px 28px 30px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);background:#fff}
.zt-of-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.zt-of-cab .ab-tile{width:44px;height:44px;border-radius:11px}
.zt-of-cab .n{font:400 30px/1 var(--f-pack);color:var(--line2)}
.zt-of .zt-mono{display:flex;align-items:center;gap:9px;color:var(--t2);font-family:var(--f-body);font-weight:600;letter-spacing:.22em;margin-bottom:8px}
.zt-of .zt-mono::before{content:"";flex:none;width:8px;height:7px;background:var(--red);clip-path:var(--facet)}
.zt-of h3{font:500 30px/1.06 var(--f-display);color:var(--ink);margin-bottom:12px}
.zt-of p{font:400 14px/1.7 var(--f-body);color:var(--t2)}
/* el sitio del siguiente */
.zt-siguiente{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(18px,3vw,36px);align-items:center;
  margin-top:clamp(48px,6vw,80px);padding:26px clamp(20px,3vw,34px);border:1.5px dashed var(--line2);background:#fff}
.zt-siguiente .yo{width:84px;height:80px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line)}
.zt-siguiente .yo svg{width:62px;height:59px;image-rendering:pixelated}
.zt-siguiente .zt-mono{display:flex;align-items:center;gap:9px;color:var(--t2);font-family:var(--f-body);font-weight:600;letter-spacing:.22em}
.zt-siguiente .zt-mono::before{content:"";flex:none;width:8px;height:7px;background:var(--red);clip-path:var(--facet)}
.zt-siguiente h3{margin-top:6px;font:500 30px/1.08 var(--f-display);color:var(--ink)}
.zt-siguiente p{margin-top:8px;font:400 14px/1.65 var(--f-body);color:var(--t2);max-width:40em}
/* el cierre de la página */
.zt-cierre{margin-top:clamp(56px,8vw,104px);padding-top:clamp(44px,6vw,72px);padding-bottom:clamp(56px,7vw,88px);position:relative;
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.zt-cierre::before{content:"";position:absolute;top:0;left:var(--gut);right:var(--gut);border-top:1px solid var(--ink)}
.zt-cierre-h{font:400 clamp(44px,6vw,84px)/1 var(--f-pack);text-transform:uppercase;color:var(--ink);letter-spacing:.01em}
.zt-cierre-h em{display:block;margin-top:6px;font:italic 600 .62em/1.1 var(--f-display);text-transform:none;color:var(--red);letter-spacing:-.005em}
.zt-cierre p:not(.zt-ceja){font:400 15px/1.72 var(--f-body);color:var(--t2);max-width:34em}
.zt-cierre p:not(.zt-ceja) + p{margin-top:12px}
.zt-cierre .zt-ops{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.zt-pie{padding-bottom:clamp(40px,5vw,64px);font:400 12.5px/1.65 var(--f-body);color:var(--t3)}
.zt-pie > span{display:block;max-width:46em}
html[data-zt] body:not(.appm) .zt .pie-plug{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut)}

/* ── entradas al hacer scroll (y nada si se pide menos movimiento) ───────── */
.zt [data-zt-sube]{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--zd,0s)}
.zt [data-zt-sube].in{opacity:1;transform:none}
html:not(.zt-js) .zt [data-zt-sube]{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .zt [data-zt-sube]{opacity:1;transform:none;transition:none}
  .zt-estado.on .zt-fa,.zt-br.on .zt-br-luz{animation:none}
  .zt-plano.vivo .zt-h b{animation:none;left:calc(50% - 4px);opacity:1}
  .zt-br-palanca::after{transition:none}
}

/* ── tamaños ─────────────────────────────────────────────────────────────── */
@media (max-width:1180px){
  .zt-tomas{grid-template-columns:repeat(7,minmax(0,1fr))}
  .zt-tomas .zt-toma{margin-bottom:6px}
}
@media (max-width:1080px){
  .zt-cadena{grid-template-columns:minmax(0,1fr)}
  .zt-cadena.ancha{grid-template-columns:minmax(0,1fr)}
  .zt-cadena.ancha .zt-cad-izq{display:block}
  .zt-cadena.ancha .zt-cad-txt{margin-top:16px}
  .zt-cad-txt{max-width:44em}
  .zt-agente{min-width:240px}
}
@media (max-width:1000px){
  .zt-rej{grid-template-columns:minmax(0,1fr)}
  .zt-breakers{display:flex;flex-wrap:wrap}
  .zt-breakers::before,.zt-breakers::after{display:none}
  .zt-breakers li{flex:1 0 16.66%;border-bottom:1px solid var(--line);border-right:1px solid var(--line);margin-right:-1px}
  .zt-breakers .zt-br{border-right:0 !important}
  .zt-br{min-height:186px}
  .zt-prov,.zt-apple{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zt-apple .zt-ap.ninguno{grid-column:1 / -1}
  .zt-derechos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zt-ep{grid-template-columns:minmax(0,1fr)}
  .zt-mapa-rej{gap:40px}
  .zt-cierre{grid-template-columns:minmax(0,1fr)}
  .zt-indice{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zt-indice a:nth-child(3n){border-right:0}
  .zt-ruta{grid-template-columns:56px minmax(0,1fr) auto 18px}
  .zt-ruta .que{grid-column:2 / 4;grid-row:2;margin-top:-8px}
}
@media (max-width:860px){
  .zt-mapa-rej{grid-template-columns:minmax(0,1fr);gap:22px}
  .zt-oficios{grid-template-columns:minmax(0,1fr)}
  .zt-mapa svg.cables{display:none}
  .zt-mapa-r{flex-wrap:wrap}
  .zt-mapa-via{display:block;flex-basis:100%;padding-left:56px;font:400 11.5px/1.45 var(--f-body);color:var(--t2)}
  .zt-mapa-via b{font-weight:600;color:var(--ink)}
  .zt-siguiente{grid-template-columns:auto minmax(0,1fr)}
  .zt-siguiente .zt-pill{grid-column:1 / -1;justify-self:start}
}
/* el plano en vertical: los nodos uno debajo de otro, el cable bajando.
   No va por anchura de pantalla sino por sitio: aima-zona-tecnica.js le pone
   .vertical a cada plano cuya cadena no cabe en horizontal (una de seis nodos
   se pone de pie antes que una de dos). Sin JS, la cadena se desplaza dentro
   de su plano y la página no se sale nunca. */
.zt-plano.vertical .zt-lienzo{justify-content:flex-start;align-items:stretch;padding-left:4px}
.zt-plano.vertical .zt-cad{display:contents}
/* las herramientas del agente cuelgan de él, no del final de la cadena */
.zt-plano.vertical .zt-agente{order:1}
.zt-plano.vertical .zt-agente ~ *{order:2}
.zt-plano.vertical .zt-herr{order:1;margin-bottom:6px}
.zt-plano.vertical .zt-n{flex:none;width:auto;flex-direction:row;align-items:center;gap:14px;text-align:left}
.zt-plano.vertical .zt-n > .zt-n-tx{display:flex;flex-direction:column}
.zt-plano.vertical .zt-n-rot{margin-top:0}
.zt-plano.vertical .zt-n-ic{width:52px;height:52px;flex:none}
.zt .zt-plano.vertical .zt-n-ic .zt-ni{width:30px;height:30px}
.zt-plano.vertical .zt-rayo{left:-9px;top:-6px;margin-top:0;width:13px;height:13px;background:#fff;border-radius:50%;padding:1px}
.zt-plano.vertical .zt-n-tx{align-items:flex-start}
.zt-plano.vertical .zt-h{flex:none;width:52px;max-width:none;height:34px;margin:0}
.zt-plano.vertical .zt-h::before{left:25px;right:auto;top:4px;bottom:9px;border-top:0;border-left:1.5px dashed #ABABB2}
.zt-plano.vertical .zt-h::after{left:21px;right:auto;top:auto;bottom:3px;border:4.5px solid transparent;border-top:6px solid #ABABB2;border-bottom:0}
.zt-plano.vertical .zt-h i{left:66px;right:auto;top:12px;text-align:left}
.zt-plano.vertical.vivo .zt-h::before{border-left-style:solid;border-left-color:var(--ink)}
.zt-plano.vertical.vivo .zt-h::after{border-top-color:var(--ink);border-left-color:transparent}
.zt-plano.vertical.vivo .zt-h b{left:22px;animation-name:zt-baja}
.zt-plano.vertical .zt-mas{margin:10px 0 0 15px}
.zt-plano.vertical .zt-agente{min-width:0}
.zt-plano.vertical .zt-ag-caja{width:auto}
.zt-plano.vertical .zt-herr{grid-template-columns:minmax(0,1fr);gap:16px;margin:14px 0 0 30px;padding:4px 0 4px 18px;border-left:1.5px dashed #ABABB2}
.zt-plano.vertical.vivo .zt-herr{border-left-color:var(--ink)}
.zt-plano.vertical .zt-herr::before,.zt-plano.vertical .zt-herr .zt-bus,.zt-plano.vertical .zt-p::before,.zt-plano.vertical .zt-p-rombo{display:none}
.zt-plano.vertical .zt-p{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:12px;align-items:center;text-align:left;padding:0}
.zt-plano.vertical .zt-p-tipo{position:static;grid-column:2;grid-row:1;margin-bottom:2px}
.zt-plano.vertical .zt-p .zt-n-ic{grid-column:1;grid-row:1 / span 2;width:44px;height:44px}
.zt .zt-plano.vertical .zt-p .zt-n-ic .zt-ni{width:24px;height:24px}
.zt-plano.vertical .zt-p .zt-n-tx{grid-column:2;grid-row:2}
.zt-plano.vertical .zt-p .zt-n-rot{margin-top:0}
@keyframes zt-baja{0%{top:2px;opacity:0}15%{opacity:1}80%{opacity:1}100%{top:22px;opacity:0}}
@media (max-width:720px){
  .zt-tomas{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:700px){
  .zt-cifras > div{padding-right:16px;margin-right:16px}
  .zt-breakers li{flex-basis:25%}
  .zt-br{min-height:172px;padding:12px 4px 12px}
  .zt-br-nom{font-size:11px}
  .zt-prov,.zt-apple,.zt-derechos{grid-template-columns:minmax(0,1fr)}
  .zt-pv{min-height:0}
  .zt-plano > .zt-mono.der{display:none}
  .zt-pl{grid-template-columns:minmax(0,1fr);gap:12px}
  .zt-indice{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zt-indice a:nth-child(3n){border-right:1px solid var(--line)}
  .zt-indice a:nth-child(2n){border-right:0}
  .zt-sec-cab{grid-template-columns:minmax(0,1fr)}
  .zt-rom{grid-row:auto;padding-top:0;margin-bottom:8px}
  .zt-lam{display:none}
  .zt-pend{grid-template-columns:minmax(0,1fr)}
  .zt-pend-sello{grid-row:auto;justify-self:start;margin-bottom:10px}
  .zt-colofon{grid-template-columns:minmax(0,1fr)}
  .zt-ruta{grid-template-columns:52px minmax(0,1fr) 18px}
  .zt-ruta .zt-llave{grid-column:2;grid-row:3}
  .zt-ruta .que{grid-column:2 / 4}
  .zt-ep-tx{padding:22px 20px}
}
@media (max-width:560px){
  .zt-cifras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .zt-cifras > div{flex-direction:column;align-items:flex-start;gap:6px;padding:14px 10px 0 0;margin-right:10px}
  .zt-cifras > div:last-child{margin-right:0}
  .zt-cifras dt{font-size:44px}
  .zt-cajetin{grid-template-columns:minmax(0,1fr)}
  .zt-cajetin > div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:baseline;border-right:0;border-bottom:1px solid var(--line);padding-top:9px;padding-bottom:9px}
  .zt-cajetin > div:last-child{border-bottom:0}
  .zt-cajetin dd{margin-top:0}
}
@media (max-width:420px){
  .zt-breakers li{flex-basis:33.33%}
  .zt-tomas{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zt-cifras dt{font-size:40px}
}
