/* Puente visual mínimo, cargable por el SW442. Usa tokens ya disponibles. */
html.v2-updating body>:not(.v2-update-overlay){visibility:hidden!important}
.v2-update-overlay{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;box-sizing:border-box;border:0;margin:0;padding:20px;display:grid;place-items:center;overflow:auto;background:var(--papel);color:var(--tinta);font-family:var(--f-texto,system-ui)}
.v2-update-overlay::before{content:"";position:absolute;inset:0;background-image:var(--v2-update-photo);background-size:cover;background-position:center;filter:blur(12px) brightness(.7)}
.v2-update-center{position:relative;text-align:center;color:var(--papel);max-width:360px}
.v2-update-center>.logo{width:68px;height:68px}.v2-update-center h1{font-size:26px;font-weight:600}
.v2-update-dots{display:flex;justify-content:center;gap:8px}.v2-update-dots i{width:8px;height:8px;border-radius:50%;background:var(--maracuya);animation:v2-update-dot 1s ease-in-out infinite}.v2-update-dots i:nth-child(2){animation-delay:.15s}.v2-update-dots i:nth-child(3){animation-delay:.3s}
.v2-update-center button{padding:9px 16px;border:0;border-radius:8px;background:var(--maracuya);color:var(--tinta);font:700 14px var(--f-texto,system-ui)}
@keyframes v2-update-dot{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}
@media(prefers-reduced-motion:reduce){.v2-update-dots i{animation:none}}
