diff --git a/docs/componentes-de-interfaz.md b/docs/componentes-de-interfaz.md
index d0ec170..e860f67 100644
--- a/docs/componentes-de-interfaz.md
+++ b/docs/componentes-de-interfaz.md
@@ -151,6 +151,8 @@ El estándar se define en [Patrón de listados de entidades](patron-de-listados-
EntityTable recibe datos y columnas tipadas; utiliza TanStack Table para búsqueda, ordenación, visibilidad y paginación local. Admite búsqueda y filtros controlados por el módulo, conservando su semántica y ámbito. Las columnas de identificación y acciones quedan visibles. Los menús utilizan Base UI y conservan los callbacks de las acciones originales. No realiza peticiones ni conoce DTO de negocio.
+La primera columna con `value`, excluida `actions`, se ordena inicialmente en ascendente. Una columna puede declarar `defaultSort: "asc" | "desc"` para elegir otro criterio; declarar como máximo una por tabla. Tickets e intervenciones lo usan en última actualización descendente. La ordenación se aplica antes de paginar, conserva empates y se refleja en la cabecera y el selector, incluso sin filas. «Orden inicial» restaura este criterio y las cabeceras alternan dirección sin eliminar la ordenación. Las tablas sin columnas comparables conservan el orden recibido.
+
La paginación es local sobre los conjuntos que las API actuales ya devuelven. No simula paginación de servidor. La selección del activo para el panel sigue perteneciendo a Inventario, fuera de la tabla compartida.
Los inventarios de activos y recursos componen las primitivas Tabs de shadcn/ui con EntityTable para filtrar por plantilla. La barra admite desplazamiento horizontal y navegación por teclado; incluye «Todo» y las plantillas del catálogo de la compañía. Un único panel conserva la tabla, su ordenación y sus columnas al cambiar de pestaña. `filterKey` reinicia la página; `filtersApplied` y `onClearFilters` integran el filtro con los estados vacíos y la limpieza común del listado.
diff --git a/docs/patron-de-listados-de-entidades.md b/docs/patron-de-listados-de-entidades.md
index 764325e..3e28174 100644
--- a/docs/patron-de-listados-de-entidades.md
+++ b/docs/patron-de-listados-de-entidades.md
@@ -26,7 +26,7 @@ El pie opcional está fuera de la tabla y solo aparece cuando existe contenido c
- Búsqueda y filtros se combinan; filtrar o cambiar tamaño de página vuelve a la primera página. Si una actualización reduce resultados, se ajusta la página para no mostrar un rango inexistente.
- Contar los resultados filtrados antes de paginar. Cero resultados se expresa como 0-0 de 0. La ordenación actúa sobre todos los resultados filtrados antes de paginar y mantiene un orden estable para empates.
- Columnas configurables mediante controles con etiquetas; identificación y acciones no se ocultan. No se pierde acceso a una acción por ocultar otra columna. La configuración es local a la vista y no se guarda en datos de negocio.
-- Solo ofrecer ordenación para valores con significado comparable. Cabeceras ordenables son botones accesibles y expresan aria-sort. Permitir recuperar el orden inicial, respetando los órdenes existentes, por ejemplo última actualización en tickets e intervenciones.
+- Solo ofrecer ordenación para valores con significado comparable. Todo listado ordenable comienza con una columna ordenada e indicada mediante `aria-sort` y el selector de ordenación. El criterio común es la primera columna ordenable en ascendente: Nombre en usuarios, activos y catálogos; Persona en teletrabajo y accesos remotos; Departamento en asignaciones. Tickets e intervenciones usan última actualización descendente. Las cabeceras alternan ascendente/descendente y «Orden inicial» restaura el criterio del listado.
- El identificador principal abre la ficha existente si hay una. Usar enlace si existe una ruta real; botón si abre diálogo, detalle en memoria o panel. No inventar rutas.
- Representar estados mediante indicador visual y texto, nunca solo color. Mantener los avisos de revisión e información contextual.
- Las relaciones son navegables cuando el destino ya ofrece navegación adecuada; no introducir enlaces ficticios ni nuevas rutas.
diff --git a/modules/companies/src/web/interventions/list/ui/interventions-page.tsx b/modules/companies/src/web/interventions/list/ui/interventions-page.tsx
index 69734bd..f586a55 100644
--- a/modules/companies/src/web/interventions/list/ui/interventions-page.tsx
+++ b/modules/companies/src/web/interventions/list/ui/interventions-page.tsx
@@ -176,6 +176,7 @@ export function InterventionsPage(props: InterventionsPageProps) {
},
{
id: "updated",
+ defaultSort: "desc",
label: t("tickets.updated"),
value: (intervention) => intervention.history.at(-1)?.recordedAt,
render: (intervention) => <>{date(intervention.history.at(-1)?.recordedAt)}>,
diff --git a/modules/companies/src/web/tickets/list/ui/tickets-page.tsx b/modules/companies/src/web/tickets/list/ui/tickets-page.tsx
index 97fe489..efab759 100644
--- a/modules/companies/src/web/tickets/list/ui/tickets-page.tsx
+++ b/modules/companies/src/web/tickets/list/ui/tickets-page.tsx
@@ -148,6 +148,7 @@ export function TicketsPage(props: TicketsPageProps) {
},
{
id: "updated",
+ defaultSort: "desc",
label: t("tickets.updated"),
value: (ticket) => ticket.history.at(-1)?.recordedAt,
render: (ticket) => <>{date(ticket.history.at(-1)?.recordedAt)}>,
diff --git a/modules/companies/src/web/workspace/view/ui/workspace-sidebar.tsx b/modules/companies/src/web/workspace/view/ui/workspace-sidebar.tsx
index a64aef9..025089f 100644
--- a/modules/companies/src/web/workspace/view/ui/workspace-sidebar.tsx
+++ b/modules/companies/src/web/workspace/view/ui/workspace-sidebar.tsx
@@ -90,22 +90,12 @@ export function WorkspaceSidebar({
{area === "catalogs" && (
)}
))}
- {canManageUsers && (
-