# F-108 — Quitar módulo de variantes: precio/stock/EAN por producto

## Cambios
### Backend (catalog)
- POST /products crea automáticamente una única variante interna con SKU `SKU-MV-<productId>` (modelo 1 producto = 1 variante).
- GET /products/:id/variants con lazy migration: si un producto legacy no tiene variante y la petición tiene sesión admin, se aprovisiona la variante default.

### Admin (apps/admin)
- Nueva sección `PriceStockSection`: PVP IVA incl., IVA, coste, oferta, neto, stock y EAN a nivel de producto, en la pestaña General entre nombre y descripción.
- ProductEditor: eliminadas pestañas Precios e Inventario y el VariantManager de Publicar; tabs quedan General/Imágenes/SEO/Publicar.
- Borrados VariantManager.tsx, PricingSection.tsx, InventorySection.tsx.
- Inventario (/inventory): una fila por producto (primera variante interna).

## Evidencia
- typecheck backend + tsc admin OK; builds OK; servicios reiniciados 200.
