- Nuevas opciones `app.timezone_regions`, `app.timezone_order` y
`app.timezone_per_user` para limitar y ordenar las regiones ofrecidas
y decidir si cada usuario puede tener su propia zona horaria.
- Añade `TzRegion` y `TimezoneOrder`; `Timezone::supported_by_region()`
devuelve ahora `TzRegion` y excluye los alias de la base IANA que
repiten otra zona (tzdata 2025b).
- Añade `Timezone::is_supported_in()` para validar con otras regiones.
- `SelectTimezone` admite `with_regions()`, `with_order()` y
`with_utc_offset()`, muestra nombres legibles y conserva la zona
actual aunque ya no se ofrezca.
- `app.timezone` se resuelve sin distinguir mayúsculas.
- pagetop-user no ofrece idioma ni zona horaria si no se aplican y
conserva lo guardado; acepta la zona actual aunque ya no se ofrezca.
- `Breakpoint` gana variante `Xxxl` y métodos `name()`/`min_width()`/
`resolved()`, para consultarse contra el tema activo.
- `Theme::breakpoint_entry()` sustituye a `breakpoint_min_width()`:
devuelve un `BreakpointEntry` con nombre y ancho mínimo.
- Nuevo `Responsive<T>`, valor en cascada mobile-first por punto de
corte.
- Ejemplo `examples/intro-responsive.rs` con los patrones de uso.
Container y Navbar lo adoptan vía `with_flex()`/`PropsOp::flex_item()`.
Y se elimina `ButtonSet` porque su funcionalidad queda cubierta por este
mecanismo más general. Incluye el ejemplo `examples/intro-flex.rs` con
los patrones de uso.
Identidad de usuario, sesiones en base de datos, roles y permisos (RBAC)
con "authenticated" implícito, contraseñas con Argon2id, tokens de
un solo uso para verificación de email y restablecimiento de contraseña,
y la UI de administración completa (usuarios, roles, permisos) sobre
pagetop-admin.
Incluye datos de demostración opcionales tras la feature `demo-data`.