- vitest 4 traía vite 8 anidado con esbuild 0.28: el lockfile quedaba
incompleto para npm ci y el npm 10.8.2 del runner fallaba con
"Missing @esbuild/* from lock file" / EBADPLATFORM. vitest 3 usa el
vite 5 del proyecto como peer: sin árbol anidado, esbuild solo 0.21.5
- jsdom 30 exige Node >=22.22 (el runner tiene 20.20): bajado a jsdom 26
- tests.yml sobre el runner real (self-hosted, Node del sistema) en vez
de ubuntu-latest, que no existe como label
- aserciones de max()/calc() tolerantes a la serialización de jsdom 26
- FAB y aviso PWA flanquean la columna central (720px): right/left
max(16px, calc((100vw - 720px)/2 + 16px)) para acompañar al contenido
en pantallas anchas sin pegarse al borde de la ventana
- FAB de 64px en PC (54 en móvil); PWA abajo a la izquierda en PC y móvil
- Nuevo BotonProponerArriba (solo PC): píldora "Proponer local" arriba a
la derecha, alineada al cuerpo, que abre la misma pasarela