namespace TeamsISO.App.Services;
///
/// The HTML / CSS / JS for the embedded control panel served at
/// GET /ui. Single self-contained string — no external CDN deps, no
/// build step, no React. Phone-friendly remote that connects via WebSocket
/// to /ws and posts to the existing REST endpoints.
///
/// v2 additions:
/// - Live preview tiles per participant via GET /participants/{id}/thumbnail.jpg
/// (engine encodes the latest ProcessedFrame as a 192-wide JPEG; refreshed
/// ~1Hz alongside the WebSocket state push).
/// - Topology toggle card — shows whether raw Teams NDI sources are
/// hidden from the LAN, with Apply / Restore buttons that hit the
/// /topology/apply + /topology/restore REST endpoints. Operator still
/// has to restart Teams afterward, surfaced in a banner on apply.
///
internal static class ControlPanelHtml
{
private const string Html = @"