/* Automatización · piezas propias de esta página (prefijo au-). Verde solo en el tramo automatizado. */
.au-mini{height:150px;margin:28px 0 24px;padding:14px;border-radius:12px;background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line-2);display:flex;flex-direction:column;gap:8px;overflow:hidden;font-size:12.5px;line-height:1.4;max-width:340px}
.au-meta{margin-top:auto;display:flex;gap:8px;align-items:center;font:500 10.5px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.au-meta i,.au-live i{width:6px;height:6px;border-radius:50%;background:var(--green);flex:none}
.au-b{max-width:86%;padding:8px 11px;border-radius:12px;color:var(--fg)}
.au-b.in{align-self:flex-start;background:var(--bg-3);border-bottom-left-radius:4px}
.au-b.out{align-self:flex-end;background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--green-line);color:var(--fg-hi);border-bottom-right-radius:4px}
.au-kh{display:flex;justify-content:space-between;align-items:center;font:500 10.5px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.au-kpi b{font:500 32px/1 var(--f-display);letter-spacing:-.03em;color:var(--fg-hi);margin-top:6px}
.au-kpi svg{width:100%;height:46px;margin-top:auto;overflow:visible}
.au-sp{fill:none;stroke:var(--fg-3);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.au-sp.g{stroke:var(--green)}
.au-code{font:400 12px/1.5 var(--f-mono);color:var(--fg-2);gap:5px}
.au-code em{font-style:normal;color:var(--fg-hi);margin-right:6px}
.au-code .d{color:var(--fg-3)}
.au-code .ok{margin-top:auto;color:var(--green-text)}

/* Fig. 2 · flujo */
.au-flow{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.au-stage{position:relative;padding:44px 40px;border-right:1px solid var(--line);background-image:radial-gradient(circle,var(--dot) 1px,transparent 1.2px);background-size:22px 22px;display:grid;place-items:center}
.au-stage svg{width:100%;height:auto;overflow:visible}
.au-stage .m{display:none}
.au-stage text{font:500 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;fill:var(--fg-2)}
.au-stage .sub{font:400 12.5px var(--f-body);letter-spacing:0;text-transform:none;fill:var(--fg-3)}
.au-stage .big{font:500 22px var(--f-display);letter-spacing:-.02em;text-transform:none;fill:var(--fg-hi)}
.au-stage .gt{fill:var(--green-text)}
.au-node{fill:var(--bg-2);stroke:var(--line-2)}
.au-hi{fill:var(--bg-1);stroke:var(--green-line)}
.au-wire{fill:none;stroke:var(--line-3);stroke-width:1}
.au-wire.g{stroke:var(--green);stroke-width:1.5}
.au-pulse{fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-dasharray:14 100;stroke-dashoffset:114;animation:au-flow 3s cubic-bezier(.6,0,.4,1) infinite}
@keyframes au-flow{to{stroke-dashoffset:0}}
.au-bar{fill:var(--fg-3);opacity:.35}
.au-bar.g{fill:var(--green);opacity:1}
.au-ring{fill:none;stroke:var(--green);transform-box:fill-box;transform-origin:center;animation:au-ring 3s var(--ease) infinite}
@keyframes au-ring{0%{opacity:.8;scale:.6}100%{opacity:0;scale:1.6}}
.au-log{padding:30px 30px 28px;display:flex;flex-direction:column;gap:18px;min-width:0}
.au-lh{display:flex;justify-content:space-between;align-items:center}
.au-live{display:inline-flex;gap:8px;align-items:center;font:500 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--green-text)}
.au-log ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.au-log li{display:grid;grid-template-columns:62px minmax(0,1fr) 22px;gap:12px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.4;color:var(--fg-2)}
.au-log time{font:400 11.5px/1.4 var(--f-mono);color:var(--fg-3)}
.au-log b{display:block;font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg)}
.au-log em{font:500 11px/1 var(--f-mono);font-style:normal;color:var(--green-text);text-align:right}
.au-log li.rev em{color:var(--fg-3)}
.au-log li{opacity:0;transform:translateY(6px)}
.au-flow.in .au-log li{animation:au-row .7s var(--ease) forwards;animation-delay:calc(.6s + var(--d) * .45s)}
@keyframes au-row{to{opacity:1;transform:none}}
.au-live i{position:relative}
.au-live i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--green);opacity:0;animation:ping 2.4s var(--ease) infinite}
@media (max-width:960px){
  .au-flow{grid-template-columns:1fr}
  .au-stage{border-right:0;border-bottom:1px solid var(--line);padding:28px 20px}
  .au-stage .d{display:none}.au-stage .m{display:block}
  .au-log{padding:24px 20px}
}

/* Fig. 3 · tablero */
.au-dash{display:flex;flex-direction:column}
.au-dash .bar span{margin:0 auto 0 12px}
.au-db{padding:22px;display:flex;flex-direction:column;gap:18px;font-size:13px}
.au-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.au-kpis div{padding:12px 14px;border-radius:10px;background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line)}
.au-kpis span{display:block;font:500 10px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3)}
.au-kpis b{display:block;margin-top:8px;font:500 24px/1 var(--f-display);letter-spacing:-.03em;color:var(--fg-hi)}
.au-kpis .hl{box-shadow:inset 0 0 0 1px var(--green-line)}
.au-kpis .hl b{color:var(--green-text)}
.au-chart{padding:14px 14px 10px;border-radius:10px;background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line)}
.au-chart svg{width:100%;height:auto}
.au-chart text{font:400 9.5px var(--f-mono);fill:var(--fg-3)}
.au-chart .grid{stroke:var(--line);stroke-width:1}
.au-cb{fill:var(--fg-3);opacity:.32;transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);transition:transform 1s var(--ease) calc(var(--i) * 60ms)}
.au-cb.g{fill:var(--green);opacity:1}
.au-dash.in .au-cb{transform:none}
.au-rev{display:flex;flex-direction:column}
.au-rev .mono{margin-bottom:8px}
.au-rev div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);color:var(--fg-2)}
.au-rev div b{font-weight:500;color:var(--fg)}
.au-rev div span:last-child{flex:none;font:500 10.5px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2);padding:6px 9px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line-2)}
.au-txt .chips{margin-top:-6px}
@media (max-width:640px){
  .au-kpis{grid-template-columns:1fr 1fr}
  .au-db{padding:16px}
  .au-rev div{font-size:12.5px}
}

/* Sprint de diagnóstico */
.au-out{display:block;margin-top:16px;font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-3);transition:color .4s var(--ease)}
.step.on .au-out,.step.past .au-out{color:var(--green-text)}
@media (prefers-reduced-motion:reduce){.au-log li{animation:none!important;opacity:1;transform:none}.au-cb{transform:none}}
