/// KC-App Web-Client — App-Shell im JKT-Stil, Konfi-Castle-Farben. /// Vanilla JS, kein Build-Step; wird direkt vom NestJS-Backend ausgeliefert. const state = { token: null, kcId: null, whoami: null, socket: null, activeChannelId: null, activeChannelType: null, channels: [], pickedUsers: new Set(), pickedGuests: new Set(), currentScreen: 'home', }; /// ═══════════ Authentik OIDC (Authorization Code + PKCE) ═══════════ /// Mirrors the Flutter client's oidc.dart: public client, PKCE, no secret. /// Defaults match the production Authentik app; override via window.__KC_OIDC__ /// (e.g. set in a small inline