- Replace 'Meeting link generated' text with 'Join Visio conference' button
- Button opens video conference link in new tab when clicked
- Use contained variant styling to match Save button appearance
- Maintain copy and delete functionality for meeting links
- Save PKCE params to sessionStorage.redirectState on 401 instead of overwriting tokenSet
- Persist userData in sessionStorage after OIDC callback for later hydration
- Hydrate Redux (tokens + userData) from sessionStorage on app start to avoid forced re-login
- Keep SPA single route '/' behavior unchanged; only improves auth robustness
Files: src/utils/apiUtils.ts, src/features/User/LoginCallback.tsx, src/features/User/HandleLogin.tsx