/** * SHARED chat-surface theme — the single place the widget's themed appearance is * defined. Imported by BOTH the real widget (`WidgetBuilder.vue`) and the admin * preview (`AgentChatPreviewPanel.vue`) so they can never drift. * * Every rule is scoped under `.chat-container.rp-surface` (both surfaces add the * `rp-surface` marker class to their panel root). The extra class both contains the * global import to the widget and gives these rules enough specificity to win over * each component's own scoped `[data-v-*]` CSS. Every value comes from the `--rp-*` * custom properties emitted by `themeCssVars()` in `widget-theme.ts` — no hard-coded * per-theme values live here. * * Components keep only their own NON-themed, structural CSS (layout, animations, * socket/streaming bits, admin-mock chrome) in their scoped