Reads schaeffler_tenant_id from localStorage and injects it as X-Tenant-ID header for all API requests (admin cross-tenant view). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- frontend/src/api/tenants.ts: Tenant CRUD API client (getTenants, getTenant, createTenant, updateTenant, deleteTenant) - frontend/src/pages/Tenants.tsx: Admin page with table, create/edit modals, delete confirm, and cross-tenant selector persisted in localStorage - App.tsx: /tenants route (AdminRoute-guarded) - Layout.tsx: Tenants sidebar link (admin-only, Building2 icon) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>