Clear auth store when exiting demo session to prevent unauthorized page redirect.
## Problem
When users clicked "Salir" (Exit) from the demo session, they were redirected to the unauthorized page (`/unauthorized`) instead of the demo landing page (`/demo`).
## Root Cause
The `handleExpiration()` function in DemoBanner.tsx was clearing localStorage and navigating to `/demo`, but was NOT clearing the auth store. This created an inconsistent state:
- `isDemoMode = false` (localStorage cleared)
- `demoSessionId = null` (localStorage cleared)
- `isAuthenticated = true` (auth store NOT cleared - still has demo user)
The `useHasAccess()` hook checks:
```typescript
return isAuthenticated || (isDemoMode && !!demoSessionId);
```
After clearing localStorage but not auth:
- `isAuthenticated = true` but the demo session is invalid
- `isDemoMode = false` and `demoSessionId = null`
- Result: `useHasAccess()` returns `false`
When navigating to `/demo`, the ProtectedRoute checked access and found it was `false`, redirecting to `/unauthorized`.
## Solution
Call `logout()` on the auth store before navigating to clear the demo user session completely. This ensures:
- Auth store is cleared (`isAuthenticated = false`)
- User is properly logged out from demo session
- Navigation to `/demo` succeeds without authentication check
## Additional Improvements
- Also clear `virtual_tenant_id` and `subscription_tier` from localStorage
- Updated comment to clarify navigation intent
## Files Changed
- frontend/src/components/layout/DemoBanner/DemoBanner.tsx:73-74
- Added auth store logout before navigation
- Added clearing of virtual_tenant_id and subscription_tier
- Updated comment for clarity
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
UnifiedActionQueueCard changes:
- Update container: shadow-xl, border-2, hover:shadow-2xl
- Add large hero icon (w-16 h-16 md:w-20 md:h-20) with AlertCircle
- Colored background based on queue urgency (red/blue)
- Upgrade title to text-2xl md:text-3xl font-bold
- Move total actions and SSE status to inline metric badges
ExecutionProgressTracker changes:
- Update container: shadow-xl, border-2, hover:shadow-2xl
- Add large hero icon (w-16 h-16 md:w-20 md:h-20) with TrendingUp
- Primary color background for hero icon
- Upgrade title to text-2xl md:text-3xl font-bold
Both cards now match the visual weight and hero pattern of
GlanceableHealthHero and IntelligentSystemSummaryCard for
consistent dashboard hierarchy and improved scannability.
Fixes: Issue #1 - Style alignment
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>