From ba408a765b847f3b198165a12026e8a73bba8b19 Mon Sep 17 00:00:00 2001 From: Tater Date: Mon, 14 Sep 2026 23:05:39 -0700 Subject: [PATCH] fix(web): keep account settings in the current workspace Default the workspace rail to the current workspace instead of API list order, retain explicit selection and role checks, and close the mobile navigation drawer when opening account settings. Strengthen the regression to prove the destination URL, with helper and built-browser coverage, documentation, regenerated assets, and a changelog entry thanking @isaiahknight-va. --- CHANGELOG.md | 1 + apps/api/internal/webassets/dist/200.html | 8 +- .../assets/{0.C7M1Y4Cy.css => 0.BWktymRB.css} | 2 +- .../chunks/{Qo16U5GS.js => B4px22Nd.js} | 2 +- .../dist/_app/immutable/chunks/BIvy8mRH.js | 4 + .../dist/_app/immutable/chunks/BssaRJHK.js | 4 - .../{app.B0zzvMsN.js => app.AsIXIPke.js} | 4 +- .../nodes/{0.DQ4BRnNh.js => 0.BH6o2SZv.js} | 0 .../nodes/{11.DBz8aivf.js => 11.Cn1NzgMl.js} | 2 +- .../nodes/{2.DWB8J1zf.js => 2.BYejzzrM.js} | 2 +- .../nodes/{3.CmrxTbkM.js => 3.CgfaV_Gs.js} | 4 +- .../nodes/{4.DCXgR56v.js => 4.DEx-qtfQ.js} | 2 +- .../nodes/{5.Bgjh3W4T.js => 5.DavmdShP.js} | 2 +- .../dist/_app/immutable/nodes/6.D1H8DGKr.js | 1 - .../dist/_app/immutable/nodes/6.wekSS-ZX.js | 1 + apps/api/internal/webassets/dist/index.html | 10 +- apps/web/src/ChatApp.svelte | 4 + .../components/settings/SettingsModal.svelte | 46 +++++- apps/web/src/lib/settings.test.ts | 60 ++++++++ apps/web/src/lib/settings.ts | 23 +++ apps/web/src/styles/settings.css | 32 ++++ docs/features/profiles.md | 7 + tests/e2e/settings-current-workspace.spec.ts | 145 ++++++++++++++++++ 23 files changed, 335 insertions(+), 31 deletions(-) rename apps/api/internal/webassets/dist/_app/immutable/assets/{0.C7M1Y4Cy.css => 0.BWktymRB.css} (74%) rename apps/api/internal/webassets/dist/_app/immutable/chunks/{Qo16U5GS.js => B4px22Nd.js} (86%) create mode 100644 apps/api/internal/webassets/dist/_app/immutable/chunks/BIvy8mRH.js delete mode 100644 apps/api/internal/webassets/dist/_app/immutable/chunks/BssaRJHK.js rename apps/api/internal/webassets/dist/_app/immutable/entry/{app.B0zzvMsN.js => app.AsIXIPke.js} (84%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{0.DQ4BRnNh.js => 0.BH6o2SZv.js} (100%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{11.DBz8aivf.js => 11.Cn1NzgMl.js} (77%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{2.DWB8J1zf.js => 2.BYejzzrM.js} (93%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{3.CmrxTbkM.js => 3.CgfaV_Gs.js} (86%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{4.DCXgR56v.js => 4.DEx-qtfQ.js} (63%) rename apps/api/internal/webassets/dist/_app/immutable/nodes/{5.Bgjh3W4T.js => 5.DavmdShP.js} (72%) delete mode 100644 apps/api/internal/webassets/dist/_app/immutable/nodes/6.D1H8DGKr.js create mode 100644 apps/api/internal/webassets/dist/_app/immutable/nodes/6.wekSS-ZX.js create mode 100644 apps/web/src/lib/settings.test.ts create mode 100644 tests/e2e/settings-current-workspace.spec.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fa6c3590..376f631bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Unreleased +- Fixed account settings opening integrations in the wrong workspace and leaving the mobile navigation drawer open beneath the dialog. Thanks @isaiahknight-va. - Fixed moderators being offered channel settings they cannot save, and return a clear permission error for denied channel updates in both database stores. Thanks @sercada. - Updated Virtua, Wrangler, transitive build dependencies, the pinned AWS CLI, and the PostgreSQL CI service while retaining the 48-hour release-age gate and supported runtime minimums. - Preserve generated JavaScript literals during web builds, preventing whitespace cleanup from corrupting syntax grammars and Svelte class handling. diff --git a/apps/api/internal/webassets/dist/200.html b/apps/api/internal/webassets/dist/200.html index 26a3d87bb..e9721b549 100644 --- a/apps/api/internal/webassets/dist/200.html +++ b/apps/api/internal/webassets/dist/200.html @@ -103,15 +103,15 @@ - + - + - +
@@ -125,7 +125,7 @@ Promise.all([ import("/_app/immutable/entry/start.By1vhz9u.js"), - import("/_app/immutable/entry/app.B0zzvMsN.js") + import("/_app/immutable/entry/app.AsIXIPke.js") ]).then(([kit, app]) => { kit.start(app, element); }); diff --git a/apps/api/internal/webassets/dist/_app/immutable/assets/0.C7M1Y4Cy.css b/apps/api/internal/webassets/dist/_app/immutable/assets/0.BWktymRB.css similarity index 74% rename from apps/api/internal/webassets/dist/_app/immutable/assets/0.C7M1Y4Cy.css rename to apps/api/internal/webassets/dist/_app/immutable/assets/0.BWktymRB.css index 31e36af39..e6fc3b994 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/assets/0.C7M1Y4Cy.css +++ b/apps/api/internal/webassets/dist/_app/immutable/assets/0.BWktymRB.css @@ -1 +1 @@ -@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-feature-settings:"ss01", "cv11";--font-display:"Bricolage Grotesque Variable", "Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--rail:var(--lightningcss-light,#e2e5ea)var(--lightningcss-dark,#0b0e14);--bg:var(--lightningcss-light,#edeff2)var(--lightningcss-dark,#0e1219);--panel:var(--lightningcss-light,#f8f9fb)var(--lightningcss-dark,#141926);--panel-2:var(--lightningcss-light,#e8ebef)var(--lightningcss-dark,#1b2232);--panel-3:var(--lightningcss-light,#dde1e7)var(--lightningcss-dark,#232c3f);--surface:var(--panel-2);--hover:var(--lightningcss-light,#10151d0d)var(--lightningcss-dark,#d6e4ff0b);--hover-strong:var(--lightningcss-light,#10151d14)var(--lightningcss-dark,#d6e4ff14);--line:var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#bed2ff17);--line-strong:var(--lightningcss-light,#10151d2b)var(--lightningcss-dark,#bed2ff29);--text:var(--lightningcss-light,#232a35)var(--lightningcss-dark,#dbe2ec);--text-strong:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#f4f7fb);--muted:var(--lightningcss-light,#5d6878)var(--lightningcss-dark,#8a95a8);--muted-2:var(--lightningcss-light,#8b94a3)var(--lightningcss-dark,#5c6577);--accent:var(--lightningcss-light,#0080c4)var(--lightningcss-dark,#41c6ff);--accent-hover:var(--lightningcss-light,#006aa6)var(--lightningcss-dark,#6ad3ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--accent-2:var(--lightningcss-light,#f56a1d)var(--lightningcss-dark,#ff9550);--accent-soft:var(--lightningcss-light,#0080c421)var(--lightningcss-dark,#41c6ff26);--brand-a:var(--lightningcss-light,#0072b0)var(--lightningcss-dark,#41c6ff);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--activity-accent:var(--lightningcss-light,#c07e0a)var(--lightningcss-dark,#e8b23e);--activity-accent-soft:var(--lightningcss-light,#c07e0a17)var(--lightningcss-dark,#e8b23e1a);--delivery-accent:var(--lightningcss-light,#5558d9)var(--lightningcss-dark,#8b8df2);--delivery-accent-soft:var(--lightningcss-light,#5558d90f)var(--lightningcss-dark,#8b8df214);--tool-call-bg:var(--lightningcss-light,#5558d917)var(--lightningcss-dark,#8b8df21f);--tool-call-bg-hover:var(--lightningcss-light,#5558d924)var(--lightningcss-dark,#8b8df22e);--accent-glow:0 0 0 1px color-mix(in srgb, var(--accent) 32%, transparent), 0 8px 30px -12px color-mix(in srgb, var(--accent) 48%, transparent);--success:var(--lightningcss-light,#14876a)var(--lightningcss-dark,#30c48d);--warn:#e8a33e;--danger:var(--lightningcss-light,#d13438)var(--lightningcss-dark,#ff6d68);--scrollbar:var(--lightningcss-light,#10151d2e)var(--lightningcss-dark,#bed2ff1f);--scrollbar-hover:var(--lightningcss-light,#10151d4d)var(--lightningcss-dark,#bed2ff38);--shadow:0 24px 60px -22px var(--lightningcss-light,#10151d4d)var(--lightningcss-dark,#02050ab3);--tooltip-bg:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#2b3448);--tooltip-fg:var(--lightningcss-light,#f0f4fa)var(--lightningcss-dark,#f4f7fb);--key-edge:0 1px 0 var(--line-strong), 0 2px 0 var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#00000073);--key-edge-pressed:0 1px 0 var(--line-strong);--radius-sm:4px;--radius:6px;--radius-lg:10px;--radius-xl:14px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);background:var(--bg);color:var(--text);font-family:Geist Variable,Inter,SF Pro Text,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-color-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-board=ember]{--rail:var(--lightningcss-light,#e9e1d7)var(--lightningcss-dark,#16110d);--bg:var(--lightningcss-light,#f7f3ed)var(--lightningcss-dark,#1a1511);--panel:var(--lightningcss-light,#fffaf2)var(--lightningcss-dark,#211a15);--panel-2:var(--lightningcss-light,#efe7dc)var(--lightningcss-dark,#29211a);--panel-3:var(--lightningcss-light,#e4dbcf)var(--lightningcss-dark,#322820);--hover:var(--lightningcss-light,#1020270d)var(--lightningcss-dark,#fff4eb0b);--hover-strong:var(--lightningcss-light,#10202714)var(--lightningcss-dark,#fff4eb14);--line:var(--lightningcss-light,#1020271a)var(--lightningcss-dark,#ffece014);--line-strong:var(--lightningcss-light,#10202729)var(--lightningcss-dark,#ffece024);--text:var(--lightningcss-light,#22201d)var(--lightningcss-dark,#ece4da);--text-strong:var(--lightningcss-light,#11100e)var(--lightningcss-dark,#fbf6f0);--muted:var(--lightningcss-light,#6f675f)var(--lightningcss-dark,#a4917f);--muted-2:var(--lightningcss-light,#958b80)var(--lightningcss-dark,#6f6152);--accent:var(--lightningcss-light,#c94a32)var(--lightningcss-dark,#f0714c);--accent-hover:var(--lightningcss-light,#b13c26)var(--lightningcss-dark,#ff8560);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#241009);--accent-2:var(--lightningcss-light,#006d77)var(--lightningcss-dark,#45b8ac);--accent-soft:var(--lightningcss-light,#c94a3224)var(--lightningcss-dark,#f0714c2b);--brand-a:var(--lightningcss-light,#c64b32)var(--lightningcss-dark,#f0714c);--brand-b:var(--lightningcss-light,#c8425a)var(--lightningcss-dark,#d84a63);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#11100e);--scrollbar:var(--lightningcss-light,#1020272e)var(--lightningcss-dark,#ffece01a);--scrollbar-hover:var(--lightningcss-light,#1020274d)var(--lightningcss-dark,#ffece033);--shadow:0 24px 60px -22px var(--lightningcss-light,#10202752)var(--lightningcss-dark,#080402a6)}[data-board=moss]{--rail:var(--lightningcss-light,#dfe5e0)var(--lightningcss-dark,#0a100d);--bg:var(--lightningcss-light,#ecf0ed)var(--lightningcss-dark,#0e1512);--panel:var(--lightningcss-light,#f7f9f7)var(--lightningcss-dark,#131b16);--panel-2:var(--lightningcss-light,#e6ebe7)var(--lightningcss-dark,#1a241d);--panel-3:var(--lightningcss-light,#dbe2dc)var(--lightningcss-dark,#223026);--hover:var(--lightningcss-light,#0f17120d)var(--lightningcss-dark,#d6ffe40b);--hover-strong:var(--lightningcss-light,#0f171214)var(--lightningcss-dark,#d6ffe414);--line:var(--lightningcss-light,#0f17121a)var(--lightningcss-dark,#c8ffdc17);--line-strong:var(--lightningcss-light,#0f17122b)var(--lightningcss-dark,#c8ffdc29);--text:var(--lightningcss-light,#212b24)var(--lightningcss-dark,#dbe7de);--text-strong:var(--lightningcss-light,#0f1712)var(--lightningcss-dark,#f3faf4);--muted:var(--lightningcss-light,#5c6b60)var(--lightningcss-dark,#8fa295);--muted-2:var(--lightningcss-light,#8a9a8e)var(--lightningcss-dark,#5d6e62);--accent:var(--lightningcss-light,#177a50)var(--lightningcss-dark,#3ddc97);--accent-hover:var(--lightningcss-light,#0f6a44)var(--lightningcss-dark,#63e6ab);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#05140c);--accent-2:var(--lightningcss-light,#d97f26)var(--lightningcss-dark,#ffab5e);--accent-soft:var(--lightningcss-light,#177a5021)var(--lightningcss-dark,#3ddc9726);--brand-a:var(--lightningcss-light,#177a50)var(--lightningcss-dark,#3ddc97);--brand-b:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#2bb3a3);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#05140c);--scrollbar:var(--lightningcss-light,#0f17122e)var(--lightningcss-dark,#c8ffdc1f);--scrollbar-hover:var(--lightningcss-light,#0f17124d)var(--lightningcss-dark,#c8ffdc38)}[data-board=iris]{--rail:var(--lightningcss-light,#e2e2ea)var(--lightningcss-dark,#0d0c15);--bg:var(--lightningcss-light,#eeeef4)var(--lightningcss-dark,#12111c);--panel:var(--lightningcss-light,#f8f8fb)var(--lightningcss-dark,#181726);--panel-2:var(--lightningcss-light,#e9e9f0)var(--lightningcss-dark,#201e33);--panel-3:var(--lightningcss-light,#dedee8)var(--lightningcss-dark,#2a2742);--hover:var(--lightningcss-light,#1213270d)var(--lightningcss-dark,#e0dcff0b);--hover-strong:var(--lightningcss-light,#12132714)var(--lightningcss-dark,#e0dcff14);--line:var(--lightningcss-light,#1213271a)var(--lightningcss-dark,#d2cdff17);--line-strong:var(--lightningcss-light,#1213272b)var(--lightningcss-dark,#d2cdff29);--text:var(--lightningcss-light,#26283a)var(--lightningcss-dark,#e0dff0);--text-strong:var(--lightningcss-light,#121327)var(--lightningcss-dark,#f6f5fd);--muted:var(--lightningcss-light,#61637a)var(--lightningcss-dark,#918fa9);--muted-2:var(--lightningcss-light,#9092a8)var(--lightningcss-dark,#605e78);--accent:var(--lightningcss-light,#7048d9)var(--lightningcss-dark,#a78bfa);--accent-hover:var(--lightningcss-light,#5f39c2)var(--lightningcss-dark,#bda4ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#150f26);--accent-2:var(--lightningcss-light,#d94f8a)var(--lightningcss-dark,#ff8bb3);--accent-soft:var(--lightningcss-light,#7048d921)var(--lightningcss-dark,#a78bfa29);--brand-a:var(--lightningcss-light,#7048d9)var(--lightningcss-dark,#a78bfa);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#150f26);--scrollbar:var(--lightningcss-light,#1213272e)var(--lightningcss-dark,#d2cdff1f);--scrollbar-hover:var(--lightningcss-light,#1213274d)var(--lightningcss-dark,#d2cdff38)}[data-board=signal]{--rail:var(--lightningcss-light,#e2e5ea)var(--lightningcss-dark,#0b0e14);--bg:var(--lightningcss-light,#edeff2)var(--lightningcss-dark,#0e1219);--panel:var(--lightningcss-light,#f8f9fb)var(--lightningcss-dark,#141926);--panel-2:var(--lightningcss-light,#e8ebef)var(--lightningcss-dark,#1b2232);--panel-3:var(--lightningcss-light,#dde1e7)var(--lightningcss-dark,#232c3f);--hover:var(--lightningcss-light,#10151d0d)var(--lightningcss-dark,#d6e4ff0b);--hover-strong:var(--lightningcss-light,#10151d14)var(--lightningcss-dark,#d6e4ff14);--line:var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#bed2ff17);--line-strong:var(--lightningcss-light,#10151d2b)var(--lightningcss-dark,#bed2ff29);--text:var(--lightningcss-light,#232a35)var(--lightningcss-dark,#dbe2ec);--text-strong:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#f4f7fb);--muted:var(--lightningcss-light,#5d6878)var(--lightningcss-dark,#8a95a8);--muted-2:var(--lightningcss-light,#8b94a3)var(--lightningcss-dark,#5c6577);--accent:var(--lightningcss-light,#0080c4)var(--lightningcss-dark,#41c6ff);--accent-hover:var(--lightningcss-light,#006aa6)var(--lightningcss-dark,#6ad3ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--accent-2:var(--lightningcss-light,#f56a1d)var(--lightningcss-dark,#ff9550);--accent-soft:var(--lightningcss-light,#0080c421)var(--lightningcss-dark,#41c6ff26);--brand-a:var(--lightningcss-light,#0072b0)var(--lightningcss-dark,#41c6ff);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:radial-gradient(1000px 600px at 0% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), radial-gradient(900px 700px at 100% 100%, color-mix(in srgb, var(--delivery-accent) 5%, transparent), transparent 60%), var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea{font:inherit;color:inherit}code,pre,kbd,samp{font-variant-ligatures:none}button{cursor:pointer}input,textarea{background:0 0;border:0;outline:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar);background-clip:content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover);background-clip:content-box}.auth-shell{min-height:100dvh;padding:calc(32px + var(--safe-area-top)) calc(32px + var(--safe-area-right)) calc(32px + var(--safe-area-bottom)) calc(32px + var(--safe-area-left));background:radial-gradient(color-mix(in srgb, var(--text) 6%, transparent) 1px, transparent 1.5px) 0 0 / 18px 18px, radial-gradient(700px 500px at 30% 20%, color-mix(in srgb, var(--brand-a) 14%, transparent), transparent 60%), radial-gradient(700px 500px at 80% 90%, color-mix(in srgb, var(--brand-b) 10%, transparent), transparent 60%), var(--bg);place-items:center;display:grid}.auth-panel{border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg, #ffffff0a, #fff0) var(--panel);width:min(100%,440px);box-shadow:var(--key-edge), var(--shadow);gap:22px;padding:36px;display:grid}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand .mark{box-shadow:inset 0 0 0 1px #bed2ff21, var(--key-edge), 0 10px 24px -8px color-mix(in srgb, var(--brand-b) 65%, transparent)}.auth-brand .brand-text strong{color:var(--text-strong);letter-spacing:-.01em;display:block}.auth-brand .brand-text span{color:var(--muted);font-size:12px;display:block}.auth-copy{gap:8px;margin-top:8px;display:grid}.auth-copy h1{letter-spacing:-.02em;color:var(--text-strong);font-size:28px;font-family:var(--font-display);margin:0;font-weight:700}.auth-copy p{color:var(--muted);margin:0;line-height:1.5}.github-login{color:#fff;background:#0d1117;border:1px solid #2b2f36;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:46px;font-weight:600;text-decoration:none;transition:transform 80ms,background .12s,border-color .12s;display:inline-flex}.github-login:hover{background:#161b22;border-color:#3f4750;transform:translateY(-1px)}.openclaw-login{min-height:46px;color:var(--text-strong);border:1px solid var(--muted-2);background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:10px;font-weight:600;text-decoration:none;transition:transform 80ms,background .12s,border-color .12s;display:inline-flex}.openclaw-login:hover{background:color-mix(in srgb, var(--text-strong) 6%, transparent);border-color:var(--muted);transform:translateY(-1px)}.auth-form{gap:14px;display:grid}.auth-submit{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));background:var(--accent);min-height:46px;color:var(--accent-contrast);cursor:pointer;border-radius:12px;font-weight:700;transition:transform 80ms,background .12s}.auth-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.auth-submit:disabled{cursor:default;opacity:.58;transform:none}.auth-submit-quiet{border-color:var(--line-strong);background:var(--panel-2);min-height:38px;color:var(--text)}.auth-submit-quiet:hover:not(:disabled){background:var(--hover)}.auth-divider{color:var(--muted-2);align-items:center;gap:12px;margin:0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-error{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--text);margin:0;padding:10px 12px;font-size:13px}.auth-magic summary{cursor:pointer;color:var(--muted);font-size:12px}.auth-magic[open] summary{margin-bottom:12px}.auth-foot{color:var(--muted-2);text-align:center;margin:0;font-size:12px}.shell{grid-template-rows:minmax(0,1fr);grid-template-columns:72px 260px minmax(0,1fr) 0;height:100dvh;min-height:100dvh;transition:grid-template-columns .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:clip}.shell.thread-open,.shell.search-open{grid-template-columns:72px 260px minmax(0,1fr) minmax(340px,28vw)}.shell.artifact-open{grid-template-columns:72px 260px minmax(0,1fr) minmax(460px,42vw)}.shell.sidebar-collapsed{grid-template-columns:72px 0 minmax(0,1fr) 0}.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:72px 0 minmax(0,1fr) minmax(340px,28vw)}.shell.sidebar-collapsed.artifact-open{grid-template-columns:72px 0 minmax(0,1fr) minmax(460px,42vw)}.shell>.thread,.shell>.search-results,.shell>.artifact-viewer{grid-area:1/4}.shell.desktop-shell{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);grid-template-rows:52px minmax(0,1fr)}.desktop-shell>.guild-rail,.desktop-shell>.sidebar{background:0 0;border-right:0}.desktop-shell>.sidebar{grid-template-rows:minmax(0,1fr) auto}@media (width<=820px){.desktop-shell>.guild-rail{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);border-right:1px solid var(--line)}.desktop-shell>.sidebar{background:var(--panel);border-right:1px solid var(--line)}}.desktop-shell>.timeline{border-top:1px solid var(--line);border-left:1px solid var(--line);border-top-left-radius:12px}.desktop-shell:not(.thread-open):not(.search-open):not(.artifact-open)>.timeline{border-top-right-radius:12px}.desktop-shell>.thread,.desktop-shell>.search-results,.desktop-shell>.artifact-viewer{border-top:1px solid var(--line);border-top-right-radius:12px}.desktop-shell>.desktop-titlebar{grid-area:1/1/auto/-1}.desktop-shell>.guild-rail,.desktop-shell>.sidebar,.desktop-shell>.timeline,.desktop-shell>.thread,.desktop-shell>.search-results,.desktop-shell>.artifact-viewer{grid-row:2}.desktop-shell .mobile-nav-toggle{display:none}.desktop-auth-titlebar{z-index:10;-webkit-app-region:drag;height:52px;position:fixed;inset:0 0 auto}.desktop-titlebar{z-index:8;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;min-width:0;height:52px;padding:0;display:flex;position:relative}.desktop-titlebar-safe-area{-webkit-app-region:drag;align-items:center;width:100%;min-width:0;height:100%;padding:0 14px;display:flex;position:relative}.desktop-titlebar[data-platform=darwin] .desktop-titlebar-safe-area{padding-left:78px}.desktop-titlebar[data-platform=win32] .desktop-titlebar-safe-area,.desktop-titlebar[data-platform=linux] .desktop-titlebar-safe-area{left:env(titlebar-area-x,0px);width:env(titlebar-area-width,calc(100% - 148px));position:absolute}.desktop-titlebar-leading{-webkit-app-region:no-drag;align-items:center;gap:9px;min-width:0;max-width:max(150px,50% - 300px);display:flex;overflow:hidden}.desktop-titlebar button,.desktop-external-link{color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;display:grid}.desktop-titlebar button:hover,.desktop-external-link:hover{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.desktop-external-link{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--muted);flex:0 0 28px;place-items:center;text-decoration:none;display:grid}.desktop-titlebar-leading>.desktop-sidebar-toggle{border-radius:8px;width:30px;height:30px}.desktop-titlebar-workspace{min-width:36px;max-width:190px;color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:0 auto;padding:5px 9px;font-size:13px;font-weight:650;overflow:hidden}.desktop-titlebar-channel{min-width:30px;max-width:230px;color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;margin:0;font-size:13px;font-weight:650;overflow:hidden}.desktop-titlebar-channel.with-glyph:first-letter{color:var(--accent);margin-right:1px}.desktop-titlebar-divider{flex:none}.desktop-titlebar-status{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:6px;margin-left:auto;font-size:11px;display:inline-flex}.desktop-titlebar-status:before{content:"";background:var(--muted-2);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite presence-pulse}.desktop-titlebar-actions{-webkit-app-region:no-drag;flex:none;align-items:center;margin-left:auto;display:flex}.desktop-titlebar-actions button{border-radius:8px;width:30px;height:30px}.desktop-titlebar-actions button:disabled{cursor:wait;opacity:.55}.desktop-titlebar-actions button.active{background:var(--accent-soft);color:var(--accent)}.desktop-titlebar-actions+.desktop-titlebar-status{margin-left:8px}@media (prefers-reduced-motion:reduce){.desktop-titlebar-status:before{animation:none}}.desktop-titlebar-search.search{border-color:var(--line-strong);background:color-mix(in srgb, var(--panel-2) 84%, transparent);-webkit-app-region:no-drag;width:clamp(220px,100vw - 700px,520px);height:32px;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #ffffff09}.desktop-titlebar-search.search:focus-within{border-color:color-mix(in srgb, var(--accent) 66%, var(--line));background:var(--panel-2);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent)}.timeline{background:var(--bg);isolation:isolate;flex-direction:column;min-width:0;display:flex;overflow:hidden}.timeline>*{flex-shrink:0;min-width:0}.timeline>.messages{flex:1 1 0;min-height:0}.topbar{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--bg);align-items:center;gap:14px;min-height:60px;padding:12px 20px;display:flex}.topbar-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.topbar-title h1{letter-spacing:-.01em;color:var(--text-strong);font-size:16px;font-weight:650;font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.topbar-title h1.with-glyph:first-letter{color:var(--accent);margin-right:1px}.topbar-divider{background:var(--line-strong);width:1px;height:18px;margin:0 6px}.topbar-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.search{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);width:min(280px,30vw);height:34px;color:var(--muted);align-items:center;gap:8px;padding:0 10px;transition:border-color .12s,background .12s;display:flex}.search:focus-within{border-color:var(--accent);background:var(--panel-2);color:var(--text)}.search input{min-width:0;height:100%;color:var(--text);flex:1}.search input::placeholder{color:var(--muted)}.search-clear{background:var(--panel-3);width:18px;height:18px;color:var(--muted);border:0;border-radius:50%;place-items:center;font-size:14px;line-height:1;display:grid}.search-clear:hover{background:var(--accent);color:var(--accent-contrast)}.search-submit{background:var(--accent-soft);height:22px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:5px;padding:0 8px;font-size:10px;font-weight:600}.search-submit:hover{background:var(--accent);color:var(--accent-contrast)}.topbar-actions{align-items:center;gap:6px;display:inline-flex}.topbar-actions button,.topbar-actions a{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);width:32px;height:32px;color:var(--muted);box-shadow:var(--key-edge);place-items:center;text-decoration:none;transition:background .12s,color .12s,border-color .12s,box-shadow .12s,transform 80ms;display:grid}.topbar-actions button:hover,.topbar-actions a:hover,.topbar-actions button.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));color:var(--accent)}.topbar-actions button:active,.topbar-actions a:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.notif-toggle{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.notif-toggle:hover{background:var(--accent-soft);color:var(--accent)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.search-results{border-left:1px solid var(--line);background:var(--panel);opacity:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(0)}.search-results.covered{opacity:0;pointer-events:none}.search-results-head{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--panel);justify-content:space-between;align-items:center;min-height:60px;padding:10px 16px;display:flex}.search-results-head>div{min-width:0}.search-results-head p{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:600}.search-results-head strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.search-results-head button{background:var(--panel-2);width:30px;height:30px;color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;font-size:19px;line-height:1;display:grid}.search-results-head button:hover{background:var(--hover);color:var(--text)}.search-results-summary{color:var(--muted);padding:12px 16px 8px;font-size:12px;font-weight:600}.search-results-scroll{min-height:0;padding:0 8px 16px;overflow-y:auto}.search-result-list{margin:0;padding:0;list-style:none}.search-result{color:var(--text);border-radius:var(--radius);text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;width:100%;padding:10px 8px;display:flex}.search-result:hover{background:var(--hover)}.search-result.is-active{background:color-mix(in srgb, var(--accent) 10%, transparent)}.search-result:focus-visible,.search-results-head button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.search-result .dm-avatar{width:30px;height:30px;font-size:13px}.search-result-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.search-result-meta{align-items:baseline;gap:8px;min-width:0;display:flex}.search-result-meta strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.search-result-handle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-result-meta time{color:var(--muted);flex:none;margin-left:auto;font-size:11px}.search-result-snippet{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.search-result-snippet mark{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--text-strong);border-radius:2px;font-weight:650}.search-result-context{min-width:0;color:var(--muted-2);align-items:center;gap:10px;margin-top:1px;font-size:11px;display:flex}.search-result-context:empty{display:none}.search-result-where{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.search-result-thread{color:var(--accent);flex:none;align-items:center;gap:4px;font-weight:600;display:inline-flex}.search-load-more{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);width:calc(100% - 16px);color:var(--text);margin:8px auto 0;padding:8px 12px;font-size:12px;font-weight:600;display:block}.search-load-more:hover:not(:disabled){background:var(--hover)}.search-load-more:disabled{color:var(--muted)}.search-load-more:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.search-end{color:var(--muted-2);text-align:center;padding:14px 8px 4px;font-size:11px}.search-foot-error{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--text);justify-content:space-between;align-items:center;gap:10px;margin:8px 8px 0;padding:8px 12px;font-size:12px;display:flex}.search-foot-error p{min-width:0;margin:0}.search-foot-error button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);color:var(--text);flex:none;padding:4px 10px;font-size:12px;font-weight:600}.search-foot-error button:hover{background:var(--hover)}.search-state{color:var(--muted);text-align:center;justify-items:center;padding:56px 24px;display:grid}.search-state-icon{border:1px solid var(--line-strong);background:var(--panel-2);width:44px;height:44px;color:var(--muted-2);border-radius:50%;place-items:center;margin-bottom:14px;font-size:23px;display:grid}.search-state strong{color:var(--text-strong);font-size:14px}.search-state p{margin:5px 0 0;font-size:12px}.search-state-loading{grid-template-columns:repeat(3,7px);justify-content:center;gap:6px}.search-state-loading span{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite pulse}.search-state-loading span:nth-child(2){animation-delay:.12s}.search-state-loading span:nth-child(3){animation-delay:.24s}.guild-rail{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:8px;padding:14px 0;display:flex;position:relative}.guild-rail .guild{background:var(--panel);width:48px;height:48px;color:var(--text);border:1px solid var(--line-strong);letter-spacing:-.02em;box-shadow:var(--key-edge);border-radius:12px;place-items:center;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .12s,background .12s,transform .12s,box-shadow .12s;display:grid;position:relative}.guild-rail .guild:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));color:var(--accent);box-shadow:var(--key-edge), 0 6px 16px -8px color-mix(in srgb, var(--accent) 45%, transparent);transform:translateY(-1px)}.guild-rail .guild:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.guild-rail .guild.home{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));border-color:color-mix(in srgb, var(--brand-b) 55%, var(--line-strong));color:var(--brand-contrast);font-weight:800;font-family:var(--font-display)}.guild-rail .guild.home:hover{color:var(--brand-contrast);transform:translateY(-1px)}.guild-rail .guild.home>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 4px;overflow:hidden}.guild-rail .guild.home.home--mark{border-color:color-mix(in srgb, #41c6ff 35%, var(--line-strong));background:#141926;padding:0}.guild-rail .guild.home.home--mark .keystroke-mark{border-radius:inherit;width:100%;height:100%}.guild-rail .guild.home:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.guild-rail .guild__image{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.guild-rail .guild.add{color:var(--success);border:1px dashed color-mix(in srgb, var(--success) 45%, transparent);background:0 0}.guild-rail .guild.add:hover{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);border-style:solid;border-color:var(--success)}.guild-divider{background:var(--line-strong);width:36px;height:1px;margin:4px 0}.guild-list{flex-direction:column;flex:auto;align-items:center;gap:8px;min-height:0;display:flex;overflow-y:auto}.guild-wrap{position:relative}.guild-wrap:before{content:"";background:var(--accent);opacity:0;border-radius:0 4px 4px 0;width:4px;height:28px;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:-14px;transform:translateY(-50%)scaleY(.2)}.guild-wrap:hover:before{opacity:.6;transform:translateY(-50%)scaleY(.5)}.guild-wrap.active:before{opacity:1;transform:translateY(-50%)scaleY(1)}.guild-wrap.active .guild{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong));color:var(--accent-contrast)}.guild-create{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);z-index:20;margin-left:8px;padding:8px;position:absolute;top:14px;left:100%}.guild-create .profile-status{max-width:200px}.guild-create input{border-radius:var(--radius-sm);background:var(--panel-2);width:200px;height:32px;color:var(--text);padding:0 10px}.sidebar{background:var(--panel);border-right:1px solid var(--line);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;transition:opacity .16s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden}.sidebar-collapsed .sidebar{opacity:0;pointer-events:none;transform:translate(-14px)}.workspace-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:6px;min-height:60px;padding:14px 16px;display:flex}.workspace-header-icon{object-fit:cover;background:var(--panel-2);border-radius:8px;flex:none;width:28px;height:28px}.workspace-header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.workspace-menu{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:10px;margin-left:-8px;padding:5px 8px;transition:background .12s;display:flex}.workspace-menu:hover{background:var(--panel-2)}.workspace-menu-caret{color:var(--muted);flex:none;transition:color .12s}.workspace-menu:hover .workspace-menu-caret{color:var(--text-strong)}.sidebar-collapse{background:var(--panel-2);width:30px;height:30px;color:var(--muted);border:0;border-radius:8px;place-items:center;transition:color .12s,background .12s,transform .12s;display:grid}.sidebar-collapse:hover{background:var(--panel-3);color:var(--text-strong);transform:translate(-1px)}.workspace-name{flex-direction:column;gap:2px;min-width:0;display:flex}.workspace-name strong{min-width:0;color:var(--text-strong);letter-spacing:-.01em;font-size:15px;font-family:var(--font-display);align-items:center;gap:5px;font-weight:650;display:flex}.workspace-name-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.workspace-name .presence{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.workspace-name .presence:before{content:"";background:var(--muted-2);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite presence-pulse}@keyframes presence-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.workspace-name .presence:before{animation:none}}.sidebar-scroll{padding:12px 8px 16px;overflow-y:auto}.nav-section+.nav-section{margin-top:12px}.section-title{border-radius:var(--radius-sm);background:0 0;border:0;align-items:center;gap:4px;width:100%;padding:2px 4px;display:flex}.nav-section.collapsed+.nav-section{margin-top:4px}.section-toggle{border-radius:var(--radius-sm);min-width:0;min-height:28px;color:var(--muted);text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.09em;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:4px;font-size:10px;font-weight:600;display:flex}.section-toggle:hover{color:var(--text);background:var(--hover)}.section-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.section-toggle .caret{opacity:.7;font-size:10px;transition:transform .14s}.section-toggle[aria-expanded=false] .caret{transform:rotate(-90deg)}.section-toggle .label{text-align:left;flex:1}.section-title .add-button{background:var(--hover-strong);width:18px;height:18px;color:var(--text);border:0;border-radius:4px;flex:none;place-items:center;padding:0;font-size:14px;font-weight:700;line-height:1;display:grid}.section-title .add-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.section-title:hover .add-button{background:var(--accent);color:var(--accent-contrast)}.nav-list{flex-direction:column;gap:1px;margin-top:4px;display:flex}.nav-list[hidden]{display:none}.channel-subgroup{gap:1px;margin-top:6px;display:grid}.channel-subgroup-toggle{border-radius:var(--radius-sm);width:100%;min-height:26px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-align:left;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:6px;padding:4px 9px 4px 28px;font-size:10px;font-weight:600;display:flex}.channel-subgroup-toggle:hover,.channel-subgroup-toggle:focus-visible{background:var(--hover);color:var(--text);outline:none}.channel-subgroup-toggle .caret{opacity:.7;font-size:10px;transition:transform .14s}.channel-subgroup-toggle[aria-expanded=false] .caret{transform:rotate(-90deg)}.channel-subgroup-count{color:var(--muted-2);font-variant-numeric:tabular-nums;margin-left:auto}.channel-subgroup-list{gap:1px;display:grid}.channel-subgroup-list[hidden]{display:none}.archived-channel-group{border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);margin-top:10px;padding-top:6px}@media (prefers-reduced-motion:reduce){.section-toggle .caret{transition:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.channel-row{border-radius:var(--radius-sm);align-items:center;display:flex;position:relative}.channel-row .nav-item{flex:1;min-width:0}.channel-row.subdued .nav-item:not(.active){color:var(--muted-2)}.managed-channel-marker{color:var(--muted-2);flex:none;place-items:center;display:inline-grid}.nav-item.active .managed-channel-marker,.nav-item:hover .managed-channel-marker{color:var(--accent)}.channel-row.reorderable .nav-item{padding-left:2px}.channel-drag-handle{border-radius:var(--radius-sm);color:var(--muted-2);cursor:grab;opacity:0;background:0 0;border:0;flex:0 0 24px;align-self:stretch;place-items:center;display:grid}.channel-row:hover .channel-drag-handle,.channel-drag-handle:focus-visible{opacity:1}.channel-drag-handle:hover{color:var(--text);background:var(--hover)}.channel-drag-handle:active{cursor:grabbing}.channel-drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.channel-drag-handle svg{fill:currentColor}.channel-move-menu{z-index:4;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);min-width:112px;box-shadow:var(--shadow);padding:4px;display:grid;position:absolute;top:calc(100% + 2px);left:0}.channel-move-menu button{color:var(--text);text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}.channel-move-menu button:hover:not(:disabled),.channel-move-menu button:focus-visible{background:var(--hover-strong);outline:none}.channel-move-menu button:disabled{color:var(--muted-2);cursor:default}.channel-row.dragging{opacity:.45}.channel-row.drop-before:before,.channel-row.drop-after:after{content:"";z-index:1;background:var(--accent);pointer-events:none;border-radius:1px;height:2px;position:absolute;left:4px;right:4px}.channel-row.drop-before:before{top:-1px}.channel-row.drop-after:after{bottom:-1px}@media (hover:none){.channel-drag-handle{opacity:1}}@media (prefers-reduced-motion:reduce){.channel-subgroup-toggle .caret{transition:none}}.nav-item{border-radius:var(--radius-sm);width:100%;color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:8px;min-height:30px;padding:6px 10px;text-decoration:none;transition:background .1s,color .1s;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item:focus{outline:none}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-item.active{background:var(--accent-soft);color:var(--text-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.nav-item.has-unread{color:var(--text-strong);font-weight:600}.nav-item.has-unread .hash{color:var(--text-strong)}.unread-badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-contrast,white);text-align:center;letter-spacing:.01em;border-radius:9px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:700;line-height:18px}.nav-item .hash{color:var(--muted);text-align:center;width:14px;font-weight:600}.nav-item.active .hash{color:var(--accent)}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;overflow:hidden}.dm-row{grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:2px;display:grid;position:relative}.dm-row .nav-item{min-width:0}.dm-actions-trigger{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--muted-2);opacity:0;background:0 0;border:0;place-items:center;font-size:18px;font-weight:700;line-height:1;display:grid}.dm-row:hover .dm-actions-trigger,.dm-row:focus-within .dm-actions-trigger,.dm-row.active .dm-actions-trigger{opacity:1}.dm-actions-trigger:hover,.dm-actions-trigger:focus-visible,.dm-actions-trigger[aria-expanded=true]{background:var(--hover);color:var(--text);outline:none}.dm-actions-menu{z-index:30;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel-2);min-width:164px;box-shadow:var(--shadow);padding:4px;position:absolute;top:28px;right:0}.dm-actions-item{width:100%;min-height:30px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:13px}.dm-actions-item:hover,.dm-actions-item:focus-visible{background:var(--hover);color:var(--text-strong);outline:none}.dm-undo{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--muted);align-items:center;gap:8px;margin:6px 8px 2px;padding:6px 8px;font-size:12px;display:flex}.dm-undo span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dm-undo button{background:var(--hover);color:var(--text);border:0;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700}.dm-undo button:hover,.dm-undo button:focus-visible{background:var(--accent);color:var(--accent-contrast);outline:none}.nav-empty{color:var(--muted-2);margin:4px 8px;font-size:12px}.dm-avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid;overflow:hidden}.dm-avatar img,.avatar img{object-fit:cover;width:100%;height:100%;display:block}.presence-dot{background:var(--muted-2);border-radius:50%;flex-shrink:0;width:8px;height:8px}.presence-dot.active{background:var(--success);box-shadow:0 0 0 2px var(--panel)}.inline-create{grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:6px 4px 2px;display:grid}.inline-create input{border-radius:var(--radius-sm);background:var(--panel-2);width:100%;min-width:0;height:30px;color:var(--text);border:1px solid var(--line);padding:0 10px}.inline-create input:focus{border-color:var(--accent);background:var(--panel-3)}.inline-create button.ghost,button.ghost{border-radius:var(--radius-sm);background:var(--panel-3);width:30px;height:30px;color:var(--muted);border:0;place-items:center;padding:0;font-size:14px;font-weight:600;display:grid}.inline-create button.ghost:hover{background:var(--accent);color:var(--accent-contrast)}.user-card{background:var(--panel-2);border-top:1px solid var(--line);width:100%;color:inherit;text-align:left;cursor:pointer;border-bottom:0;border-left:0;border-right:0;align-items:center;gap:10px;padding:10px 12px;transition:background .12s;display:flex}.user-card:hover{background:var(--panel-3)}.user-card .dm-avatar{width:28px;height:28px;font-size:12px}.user-card .user-meta{flex:1;min-width:0}.user-card .user-meta strong{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.user-card .user-meta span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}@media (width<=820px){.workspace-header{min-height:calc(60px + var(--safe-area-top));padding-top:calc(14px + var(--safe-area-top));padding-right:calc(16px + var(--safe-area-right))}.sidebar-scroll{padding-bottom:calc(16px + var(--safe-area-bottom))}.user-card{padding-bottom:calc(10px + var(--safe-area-bottom))}}.messages{flex-direction:column;display:flex;position:relative}.messages-scroll{overflow-anchor:none;opacity:1;isolation:isolate;flex-direction:column;flex:1;min-height:0;padding:0 4px;transition:opacity .14s ease-out;display:flex;overflow-y:auto}.messages-scroll:focus{outline:none}.messages.is-revealing .messages-scroll{opacity:0;pointer-events:none;transition:opacity}.messages-spacer{flex-grow:1}.history-loader{pointer-events:none;gap:14px;margin:4px 0 6px;padding:6px 18px;animation:.22s ease-out both history-loader-fade;display:grid}.history-loader--newer{margin-top:6px;margin-bottom:4px}@keyframes history-loader-fade{0%{opacity:0}to{opacity:1}}.history-loader__row{grid-template-columns:56px minmax(0,1fr);min-height:44px;display:grid}.history-loader__avatar,.history-loader__meta,.history-loader__line,.history-loader__block{background:linear-gradient(90deg, color-mix(in srgb, var(--muted-2) 16%, transparent), color-mix(in srgb, var(--muted-2) 36%, transparent), color-mix(in srgb, var(--muted-2) 16%, transparent));animation:1.4s ease-in-out infinite history-loading;animation-delay:calc(var(--history-row,0) * 80ms);background-size:220% 100%;display:block}.history-loader__avatar{border-radius:10px;width:38px;height:38px}.history-loader__body{align-content:start;gap:8px;min-width:0;padding-top:4px;display:grid}.history-loader__meta{border-radius:999px;width:min(180px,38%);height:11px}.history-loader__line{border-radius:999px;height:10px}.history-loader__line--wide{width:min(540px,72%)}.history-loader__line--mid{width:min(360px,48%)}@keyframes history-loading{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.history-loader{animation:none}.history-loader__avatar,.history-loader__meta,.history-loader__line,.history-loader__block{background:color-mix(in srgb, var(--muted-2) 22%, transparent);animation:none}}.unread-bar{z-index:5;background:color-mix(in srgb, var(--panel) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid color-mix(in srgb, var(--accent) 38%, transparent);max-width:calc(100% - 32px);height:30px;color:var(--text);letter-spacing:.005em;box-shadow:inset 0 1px 0 #ffffff14, 0 10px 24px -14px #0000008c, 0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent);opacity:1;border-radius:999px;align-items:center;gap:6px;padding:0 5px 0 14px;font-size:12px;font-weight:600;transition:opacity .16s ease-out,transform .18s cubic-bezier(.2,.8,.2,1);display:inline-flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.unread-bar.is-clearing{opacity:0;pointer-events:none;transform:translate(-50%,-6px)}.unread-bar__jump,.unread-bar__mark{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;transition:background-color .12s ease-out,color .12s ease-out;display:inline-flex}.unread-bar__jump{text-align:left;min-width:0;color:color-mix(in srgb, var(--accent) 92%, var(--text));flex:0 auto;padding:0 6px 0 0}.unread-bar__jump:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);border-radius:50%;flex-shrink:0;animation:1.8s ease-out infinite unread-bar-pulse}@keyframes unread-bar-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.unread-bar__jump:before{animation:none}}.unread-bar__mark{background:color-mix(in srgb, var(--accent) 14%, transparent);height:22px;color:color-mix(in srgb, var(--accent) 90%, var(--text));letter-spacing:.01em;border-radius:999px;flex-shrink:0;padding:0 10px;font-size:11px;font-weight:600}.unread-bar__jump:hover{color:var(--accent)}.unread-bar__mark:hover{background:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent)}.unread-bar__jump:focus-visible,.unread-bar__mark:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);outline-offset:2px;border-radius:999px}.unread-bar__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.typing-indicator{height:0;color:var(--text-muted);opacity:0;pointer-events:none;align-items:center;gap:8px;margin-top:0;padding:0 22px;font-size:12px;transition:height .12s ease-out,margin-top .12s ease-out,opacity .12s ease-out,transform .16s cubic-bezier(.2,.8,.2,1);display:flex;overflow:hidden;transform:translateY(2px)}.typing-indicator.visible{opacity:1;height:20px;margin-top:-4px;transform:translateY(0)}.composer-dock{padding-top:20px;position:relative}.topic-filter{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent) 8%, var(--panel));color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:8px 18px;font-size:13px;display:flex}.topic-filter strong{color:var(--text)}.topic-filter button,.message-topic{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0}.topic-filter button:hover,.message-topic:hover{text-decoration:underline}.message-topic{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;margin:0 0 4px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.topic-picker{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-bottom:0;border-radius:10px 10px 0 0;align-items:center;gap:8px;margin:0 14px -1px;padding:7px 10px;font-size:12px;display:flex}.topic-picker select{min-width:0;max-width:min(280px,65vw);color:var(--text);font:inherit;background:0 0;border:0}.composer-dock .agent-responding{opacity:0;pointer-events:none;align-items:center;height:20px;margin:0;padding:0 22px;transition:opacity .12s ease-out;display:flex;position:absolute;top:0;left:0;right:0;overflow:hidden;transform:none}.composer-dock .agent-responding.visible{opacity:1;height:20px;margin:0;transform:none}.typing-indicator__dots{align-items:center;gap:3px;display:inline-flex}.typing-indicator__dots i{opacity:.55;background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.1s ease-in-out infinite typing-dot}.typing-indicator__dots i:nth-child(2){animation-delay:.15s}.typing-indicator__dots i:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.message-row.is-pending{opacity:.55}.message-row.is-pending .message-content,.message-row.is-pending .markdown{pointer-events:none}.message-row.is-failed{opacity:1}.message-row.is-deleted{color:var(--muted)}.message-failed{background:color-mix(in srgb, var(--danger,#d04848) 14%, transparent);color:var(--danger,#d04848);border-radius:999px;align-items:center;gap:10px;margin-top:6px;padding:4px 10px;font-size:12px;display:inline-flex}.message-failed__label{font-weight:500}.message-failed__action{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:999px;padding:2px 8px;line-height:1}.message-failed__action:hover{background:color-mix(in srgb, currentColor 12%, transparent)}.message-failed__action--ghost{border-color:color-mix(in srgb, currentColor 50%, transparent)}@media (prefers-reduced-motion:reduce){.typing-indicator{transition:opacity 80ms ease-out;transform:none}.typing-indicator.visible{transform:none}.typing-indicator__dots i{opacity:.7;animation:none}}.empty{text-align:center;align-content:center;place-items:center;gap:10px;min-height:50vh;padding:48px 24px;display:grid}.empty-icon{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));border:1px solid color-mix(in srgb, var(--brand-b) 55%, var(--line-strong));width:64px;height:64px;color:var(--brand-contrast);box-shadow:var(--key-edge), 0 18px 40px -16px color-mix(in srgb, var(--brand-b) 60%, transparent);border-radius:16px;place-items:center;font-size:26px;font-weight:800;display:grid}.empty strong{color:var(--text-strong);letter-spacing:-.01em;font-size:19px;font-family:var(--font-display);overflow-wrap:anywhere;font-weight:700}.empty span{color:var(--muted);max-width:380px;line-height:1.5}.day-divider{pointer-events:none;align-items:center;gap:12px;margin:18px 18px 8px;display:flex}.day-divider:before,.day-divider:after{content:"";background:var(--line);flex:1;height:1px}.day-divider span{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-radius:999px;padding:4px 12px;font-size:10px;font-weight:600}.new-messages-divider{pointer-events:none;opacity:1;align-items:center;gap:0;margin:4px 0 2px;padding:0 18px;transition:opacity .16s ease-out,transform .18s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;transform:translateY(0)}.new-messages-divider.is-clearing{opacity:0;transform:translateY(-4px)}.new-messages-divider:before{content:"";background:var(--danger,#ed4245);opacity:.9;flex:1;height:1px}.new-messages-divider span{background:var(--danger,#ed4245);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;align-items:center;height:14px;margin-left:8px;padding:0 5px;font-size:9px;font-weight:700;display:inline-flex}.message-group{grid-template-columns:56px minmax(0,1fr);padding:8px 18px;display:grid;position:relative}.avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:10px;place-items:center;width:38px;height:38px;margin-top:2px;font-size:14px;font-weight:700;display:grid;overflow:hidden;box-shadow:0 6px 20px -10px #0009}.avatar-button{z-index:2;cursor:pointer;border:0;padding:0;transition:transform .1s,box-shadow .12s,filter .12s;position:relative}.avatar-button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 24px -12px #000c}.avatar.small{border-radius:10px;width:30px;height:30px;font-size:12px}.avatar.large{border-radius:16px;width:56px;height:56px;margin:0;font-size:18px}.group-body{min-width:0}.group-body>header{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.message-group .group-body>header{margin:0 -18px 0 -56px;padding:0 18px 2px 56px}.group-body>header strong{color:var(--text-strong);letter-spacing:-.005em;font-size:14.5px;font-weight:700}.author-name{color:var(--text-strong);letter-spacing:0;background:0 0;border:0;border-radius:4px;padding:0;font-size:14.5px;font-weight:700}.author-name:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.author-name--static:hover{color:var(--text-strong);text-decoration:none}.group-body>header time{color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10.5px}.group-body>header span{color:var(--muted);font-size:12px}.bot-chip{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);height:18px;color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;padding:0 6px;font-size:9.5px;font-weight:700;line-height:1;display:inline-flex}.bot-chip--deleted{border-color:var(--line-strong);color:var(--muted)}.message-row{border-radius:0;margin-left:-56px;margin-right:-18px;padding:1px 18px 1px 56px;transition:background 80ms;position:relative}.message-row:not(:first-child){margin-top:1px}.message-row:hover,.message-group .group-body>header:hover,.message-group .group-body>header:hover+.message-row{background:var(--hover)}.message-group .group-body>header:has(+.message-row:hover){background:var(--hover)}.message-group .group-body>header:hover+.message-row .message-actions{opacity:1;pointer-events:auto}.message-row.selected{background:var(--accent-soft)}.message-row.can-open-thread{cursor:pointer}.row-stamp{font-family:var(--font-mono);color:var(--muted-2);opacity:0;font-variant-numeric:tabular-nums;font-size:9.5px;position:absolute;top:4px;left:8px}.message-row.is-preamble{background:0 0;margin-bottom:6px;padding-top:4px;padding-bottom:4px}.message-row.is-preamble:not(.before-final-message) .message-content{border:1px solid color-mix(in srgb, var(--activity-accent) 20%, transparent);border-radius:var(--radius-lg);background:var(--activity-accent-soft);box-shadow:0 2px 0 color-mix(in srgb, var(--activity-accent) 14%, transparent);padding:10px 14px}.message-row.is-preamble-collapsed .message-content{padding-top:6px;padding-bottom:6px}.message-row.is-preamble.before-final-message{background:0 0;margin-bottom:0;padding-top:2px;padding-bottom:0}.message-row.after-preamble{margin-top:0;padding-top:0;padding-bottom:2px}.message-row.is-preamble.before-final-message:before{display:none}.message-row.is-preamble.before-final-message .message-content{border:1px solid color-mix(in srgb, var(--activity-accent) 20%, transparent);background:var(--activity-accent-soft);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-bottom:0;padding:10px 14px}.message-row.after-preamble .message-content{border:1px solid color-mix(in srgb, var(--delivery-accent) 20%, transparent);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);background:var(--delivery-accent-soft);box-shadow:0 2px 0 color-mix(in srgb, var(--delivery-accent) 14%, transparent);border-top:0;padding:10px 14px}.message-row.is-preamble.before-final-message.is-preamble-collapsed .message-content{background:color-mix(in srgb, var(--activity-accent) 10%, var(--panel));border-bottom:1px solid color-mix(in srgb, var(--activity-accent) 30%, transparent);padding-top:7px;padding-bottom:7px}:root[data-user-align=right] .message-group.is-self,:root[data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 56px}:root[data-user-align=right] .message-group.is-self>.avatar,:root[data-other-align=right] .message-group:not(.is-self)>.avatar{grid-area:1/2;justify-self:end}:root[data-user-align=right] .message-group.is-self>.group-body,:root[data-other-align=right] .message-group:not(.is-self)>.group-body{grid-area:1/1;min-width:0}:root[data-user-align=right] .message-group.is-self .group-body>header,:root[data-other-align=right] .message-group:not(.is-self) .group-body>header{justify-content:flex-end;margin:0 -56px 0 -18px;padding:0 56px 2px 18px}:root[data-user-align=right] .message-group.is-self .message-row,:root[data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-18px;margin-right:-56px;padding-left:18px;padding-right:56px}:root[data-user-align=right] .message-group.is-self .message-content,:root[data-other-align=right] .message-group:not(.is-self) .message-content{text-align:right;margin-left:auto}:root[data-user-align=right] .message-group.is-self .markdown,:root[data-other-align=right] .message-group:not(.is-self) .markdown{text-align:right}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown ul,:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown ol,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown ul,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown ol{padding-left:0;padding-right:0;list-style-position:inside}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>ul,:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>ol,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>ul,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>ol{padding-left:0;padding-right:22px}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>p:first-child,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>p:first-child{display:inline}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown blockquote,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown blockquote{border-left:0;border-right:3px solid var(--accent);padding-left:0;padding-right:12px}:root[data-user-align=right] .message-group.is-self .attachment-grid,:root[data-other-align=right] .message-group:not(.is-self) .attachment-grid{margin-left:auto}.preamble-contract{gap:7px;min-width:0;display:grid}.preamble-toggle{width:100%;min-height:20px;color:var(--activity-accent);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:7px;padding:0;display:grid}.preamble-chevron{color:var(--activity-accent);font-size:10px;transition:transform .12s}.preamble-chevron.open{transform:rotate(90deg)}.preamble-state,.preamble-action{line-height:1}.preamble-state{border:1px solid color-mix(in srgb, var(--activity-accent) 30%, transparent);height:17px;color:var(--activity-accent);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:0 7px;font-size:9.5px;font-weight:750;display:inline-flex}.preamble-state.is-live{border-color:color-mix(in srgb, var(--activity-accent) 55%, transparent);animation:1.6s ease-in-out infinite preamble-live-pulse}@keyframes preamble-live-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.preamble-state.is-live{animation:none}}.preamble-action{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.preamble-body{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;min-width:0}.preamble-flow{gap:7px;min-width:0;padding-left:17px;display:grid}.preamble-tool{--tool-accent:var(--activity-accent);background:var(--tool-call-bg);border-radius:7px;min-width:0;overflow:hidden}.preamble-tool-summary{width:100%;min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:7px;padding:4px 9px;line-height:1.5;display:flex}.preamble-tool-summary:hover{background:var(--tool-call-bg-hover)}.preamble-tool-full{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;gap:5px;min-width:0;padding:2px 10px 8px 27px;font-size:12px;display:grid}.preamble-tool-full-head{font-family:var(--font-mono);color:color-mix(in srgb, var(--tool-accent) 45%, var(--muted));font-size:11px;font-weight:600}.preamble-tool-full-body{min-width:0}.preamble-tool-full pre{white-space:pre-wrap;overflow-wrap:anywhere}.tool-line-chevron{color:var(--muted-2);flex-shrink:0;font-size:9px;transition:transform .12s}.tool-line-chevron.open{transform:rotate(90deg)}.tool-line-glyph{filter:saturate(.85);flex-shrink:0;font-size:11px}.tool-line-action{color:color-mix(in srgb, var(--tool-accent) 38%, var(--text));flex-shrink:0;font-size:11.5px;font-weight:600}.tool-line-name{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:color-mix(in srgb, var(--tool-accent) 55%, var(--muted));font-size:11px;font-weight:500;font-family:var(--font-mono);flex-shrink:0;overflow:hidden}.tool-line-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:11px;font-weight:400;font-family:var(--font-mono);opacity:.85;flex:auto;overflow:hidden}.message-row:hover .row-stamp{opacity:1}.message-content{min-width:0;display:flow-root}.thread-hint{min-height:22px;color:var(--muted-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;margin-top:4px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.thread-hint:not(.has-replies):not(.is-open){display:none}.thread-hint svg{flex:none}.thread-hint time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:500}.thread-hint.has-replies,.thread-hint.is-open{color:var(--accent)}.thread-hint.is-open{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent-soft) 70%, transparent)}.thread-hint:hover{border-color:var(--line-strong);background:var(--panel)}.thread-hint:disabled{cursor:default;opacity:.45}.message-actions{opacity:0;pointer-events:none;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:8px;align-items:flex-start;gap:4px;padding:2px;transition:opacity .1s;display:flex;position:absolute;top:-24px;right:8px}.message-row:hover .message-actions,.message-row.selected .message-actions,.message-row.menu-open .message-actions{opacity:1;pointer-events:auto}.message-row:has(:focus-visible) .message-actions{opacity:1;pointer-events:auto}.message-row.actions-flip .message-actions{top:auto;bottom:-24px}.message-row.menu-open{z-index:6}.message-row:hover,.message-row.selected{z-index:5}.message-row:has(:focus-visible){z-index:5}.messages:has(.message-row.menu-open) .message-row:hover:not(.menu-open) .message-actions{opacity:0;pointer-events:none}.messages:has(.message-row.menu-open) .message-group .group-body>header:hover+.message-row:not(.menu-open) .message-actions{opacity:0;pointer-events:none}@media (hover:none),(pointer:coarse){.message-actions{width:1px;height:1px;box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:0;padding:0;top:1px;bottom:auto;overflow:visible;transform:none}.message-actions>:not(.message-more){display:none}.message-row.actions-flip .message-actions{top:1px;bottom:auto}.message-actions .message-more{position:static}.message-actions .message-actions-trigger{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.message-actions .message-actions-trigger:focus-visible{clip:auto;clip-path:none;border:1px solid var(--line-strong);background:var(--panel);width:36px;height:36px;box-shadow:var(--shadow);margin:0;top:0;right:0;overflow:visible}.message-row:has(.message-actions-trigger:focus-visible) .message-content{padding-right:44px}}.message-actions button{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.message-actions button:hover{background:var(--hover-strong);color:var(--text-strong)}.message-actions button:disabled{opacity:.45}.message-copy-status{background:var(--accent-soft);height:24px;color:var(--accent);white-space:nowrap;border-radius:5px;align-self:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.message-copy-status.is-error{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-sheet-scrim{z-index:60;background:#05080f66;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.message-sheet-backdrop{background:0 0;border:0;padding:0;position:absolute;inset:0}.message-action-sheet{z-index:1;background:var(--panel);border:1px solid var(--line);max-height:calc(100dvh - 16px - env(safe-area-inset-top,0px));padding:8px 12px calc(10px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-bottom:0;border-radius:16px 16px 0 0;animation:.16s ease-out sheet-rise;position:relative;overflow-y:auto}@keyframes sheet-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.message-action-sheet{animation:none}}.message-action-sheet .sheet-grabber{background:var(--line-strong);border-radius:999px;width:36px;height:4px;margin:0 auto 8px}.message-action-sheet .sheet-emoji-row{border-bottom:1px solid var(--line);justify-content:space-around;gap:4px;padding-bottom:8px;display:flex}.message-action-sheet .sheet-emoji-row button{background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:44px;font-size:22px;line-height:1;display:grid}.message-action-sheet .sheet-emoji-row button:active{background:var(--hover-strong)}.message-action-sheet .sheet-actions{flex-direction:column;padding-top:4px;display:flex}.message-action-sheet .sheet-actions button{width:100%;color:var(--text-strong);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:12px 8px;font-size:15px;display:flex}.message-action-sheet .sheet-actions button:active{background:var(--hover-strong)}.message-action-sheet .sheet-actions button:disabled{opacity:.45}.message-action-sheet .sheet-actions svg{color:var(--muted);flex:none}.message-action-sheet .sheet-danger,.message-action-sheet .sheet-danger svg{color:var(--danger)}.message-action-sheet .sheet-copy-status{background:var(--accent-soft);height:22px;color:var(--accent);white-space:nowrap;border-radius:5px;align-items:center;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.message-action-sheet .sheet-copy-status.is-error{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-action-sheet .sheet-action-error{color:var(--danger);margin:-4px 12px 4px;font-size:12px;line-height:1.35}.message-actions .message-action-react{font-size:15px;line-height:1}.message-actions .action-sep{background:var(--line);flex:none;align-self:center;width:1px;height:18px;margin:0 3px}.message-actions .picker-wrapper,.message-actions .message-more{position:relative}.message-menu{z-index:30;background:var(--panel);border:1px solid var(--line-strong);min-width:190px;box-shadow:var(--shadow);border-radius:10px;padding:5px;font-size:13px;position:absolute;top:calc(100% + 4px);right:0}.message-menu.above{top:auto;bottom:calc(100% + 4px)}.message-menu button{width:100%;height:auto;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:7px 10px;font-size:13px;display:flex}.message-menu button:hover{background:var(--hover-strong);color:var(--text-strong)}.message-menu button svg{color:var(--muted);flex:none}.message-menu .menu-sep{border-top:1px solid var(--line);margin:5px 4px}.message-menu .menu-danger,.message-menu .menu-danger svg{color:var(--danger)}.message-menu .menu-danger:hover{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-edit{gap:7px;width:min(100%,760px);padding:5px 0 3px;display:grid}.message-edit__textarea{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 94%, var(--text) 6%);width:100%;min-height:72px;max-height:240px;color:var(--text);font:inherit;resize:vertical;box-sizing:border-box;box-shadow:inset 0 1px 1px color-mix(in srgb, var(--text) 5%, transparent);border-radius:7px;padding:9px 11px;font-size:14.5px;line-height:1.5;transition:border-color .12s,box-shadow .12s,background .12s}.message-edit__textarea:hover:not(:disabled){border-color:color-mix(in srgb, var(--line-strong) 62%, var(--text) 38%)}.message-edit__textarea:focus{border-color:var(--accent);background:var(--panel);box-shadow:inset 0 1px 1px color-mix(in srgb, var(--text) 4%, transparent), 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.message-edit__textarea:disabled{cursor:progress;opacity:.78}.message-edit__footer{flex-wrap:wrap;align-items:center;gap:6px;min-height:30px;display:flex}.message-edit__footer .message-edit__save{background:var(--accent);min-width:68px;min-height:30px;color:var(--accent-contrast);cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.message-edit__footer .message-edit__save:hover{filter:brightness(1.1)}.message-edit__footer .message-edit__save:focus-visible,.message-edit__footer .message-edit__cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message-edit__footer .message-edit__save:disabled{opacity:.5;cursor:progress}.message-edit__footer .message-edit__cancel{min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:5px 10px;font-size:13px;display:inline-flex}.message-edit__footer .message-edit__cancel:hover{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.message-edit__error{border-left:2px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);width:fit-content;max-width:100%;color:var(--danger);border-radius:3px;margin:0;padding:5px 8px;font-size:12.5px;line-height:1.35}.message-edit__indicator{color:var(--muted);align-items:center;gap:3px;margin-left:8px;font-size:11px;display:inline-flex}.message-row.editing .message-actions{display:none}@media (width<=520px){.message-edit__footer .message-edit__save,.message-edit__footer .message-edit__cancel{flex:1 1 0}}.message-deleted{min-height:22px;color:var(--muted);align-items:center;font-size:13px;font-style:italic;display:inline-flex}.markdown{color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-size:14.5px;line-height:1.5}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0}.markdown p+p,.markdown ul,.markdown ol,.markdown blockquote,.markdown pre{margin-top:6px}.markdown a{color:var(--accent);text-decoration:none}.markdown a:hover{text-decoration:underline}.message-mention{border:1px solid color-mix(in srgb, currentColor 18%, transparent);background:color-mix(in srgb, currentColor 8%, transparent);color:inherit;border-radius:4px;margin:0 1px;padding:0 3px;font-weight:600}.message-mention.is-current-user{border-color:color-mix(in srgb, var(--accent) 42%, transparent);background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent);font-weight:700}.markdown code{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-family:Geist Mono Variable,JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.markdown pre{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;overflow-x:auto}.markdown pre code{background:0 0;border:0;padding:0}.markdown blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:0;padding:4px 0 4px 12px}.markdown ul,.markdown ol{padding-left:22px}.markdown img{border-radius:var(--radius);border:1px solid var(--line);object-fit:contain;background:var(--panel);cursor:zoom-in;max-width:100%;max-height:360px;margin-top:6px}.markdown-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;max-width:100%;margin-top:6px;overflow-x:auto}.markdown-table-scroll[data-overflowing]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.markdown-table-scroll:first-child{margin-top:0}.markdown-table-scroll>table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%;font-size:.9em}.markdown thead{background:var(--muted-2)}.markdown th,.markdown td{vertical-align:top;border:1px solid var(--line);padding:8px 12px}.markdown thead th{color:var(--text-strong);font-weight:700}.markdown tbody tr:nth-child(2n){background:color-mix(in srgb, var(--muted-2) 18%, transparent)}.markdown tbody tr:hover{background:color-mix(in srgb, var(--muted-2) 26%, transparent)}.gif-player{vertical-align:top;max-width:100%;display:inline-block;position:relative}.gif-player img{display:block}.gif-badge,.gif-replay{z-index:1;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:0;position:absolute}.gif-badge{letter-spacing:.04em;pointer-events:none;background:#0000008a;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;bottom:9px;left:9px}.gif-replay{opacity:0;pointer-events:none;background:#0a0c12b8;border-radius:999px;place-items:center;width:30px;height:30px;font-size:16px;line-height:1;transition:opacity .13s,transform .13s,background .12s;display:grid;bottom:9px;right:9px;transform:scale(.88)}.gif-replay:hover{background:var(--accent)}.gif-player.paused .gif-replay{opacity:1;pointer-events:auto;transform:scale(1)}.gif-player.playing .gif-badge{animation:.9s ease-in-out infinite gif-breathe}@keyframes gif-breathe{0%,to{opacity:.85}50%{opacity:.45}}.attachment-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;max-width:560px;margin-top:8px;display:grid}.attachment-grid.compact{grid-template-columns:minmax(0,1fr);max-width:420px}.media-tile{border:1px solid var(--line);border-radius:var(--radius-lg);isolation:isolate;text-align:left;width:100%;color:inherit;cursor:pointer;background:#0a0c12;margin:0;padding:0;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s;display:block;position:relative;overflow:hidden}.media-tile:hover{border-color:var(--line-strong);box-shadow:0 18px 40px -28px #000000e6}.media-tile:focus-visible{border-color:var(--line-strong);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);outline:none}.media-tile--image{cursor:zoom-in}.media-tile__open{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;margin:0;padding:0;display:block}.media-tile__open:focus{outline:0}.media-tile__open:focus-visible+.media-tile__caption .media-tile__name{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.media-tile--video{cursor:default}.media-tile img,.media-tile video{object-fit:contain;background:#05070d;width:100%;max-height:360px;display:block}.media-tile--image img{max-height:320px}.media-tile__caption{z-index:3;opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#00000080 60%,#000000c7 100%);align-items:center;gap:8px;padding:22px 10px 8px;transition:opacity .14s;display:flex;position:absolute;inset:auto 0 0}.media-tile__caption>*{pointer-events:auto}.media-tile:hover .media-tile__caption,.media-tile:focus-within .media-tile__caption{opacity:1}.media-tile--video.is-started .media-tile__caption{display:none}.media-tile__name{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #0009;flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.media-tile__chip{z-index:4;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000080;border:1px solid #ffffff2e;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;text-decoration:none;transition:background .12s,border-color .12s,transform .12s;display:inline-grid;position:relative}.media-tile__chip:hover{background:#000000b3;border-color:#ffffff52;transform:translateY(-1px)}.media-tile__play{cursor:pointer;z-index:1;background:0 0;border:0;place-items:center;width:100%;height:auto;margin:0;padding:0;display:grid;position:absolute;inset:0 0 48px}.media-tile__play:before{content:"";opacity:.7;pointer-events:none;background:radial-gradient(#0000002e 0%,#0000000d 45%,#0000 70%);transition:opacity .16s;position:absolute;inset:0}.media-tile__play:hover:before{opacity:.9}.media-tile__play-icon{color:#fff;-webkit-backdrop-filter:blur(10px);background:#0000008c;border-radius:999px;place-items:center;width:46px;height:46px;padding-left:3px;transition:transform .2s cubic-bezier(.2,.8,.2,1),background .18s,box-shadow .2s;display:grid;position:relative;box-shadow:0 6px 20px -8px #0000008c}.media-tile__play-icon svg{filter:drop-shadow(0 1px 2px #0006)}.media-tile__play:hover .media-tile__play-icon{background:#000000b3;transform:scale(1.06);box-shadow:0 10px 28px -10px #000000a6}.media-tile__play:active .media-tile__play-icon{transition-duration:80ms;transform:scale(.97)}.media-tile__play:focus-visible{outline:none}.media-tile__play:focus-visible .media-tile__play-icon{box-shadow:0 0 0 2px #fff9,0 10px 28px -10px #000000a6}.media-tile__duration{z-index:2;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;background:#000000b8;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;position:absolute;bottom:8px;left:8px}.file-attachment{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);align-items:center;gap:10px;max-width:360px;padding:10px;display:flex}.file-attachment:hover{border-color:var(--line-strong);background:var(--panel-2)}.file-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:8px;place-items:center;font-weight:800;display:grid}.file-attachment strong,.file-attachment small{display:block}.file-attachment strong{color:var(--text-strong);font-size:13px}.file-attachment small{color:var(--muted);font-size:11px}.audio-attachment,.document-attachment{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(100%,420px);overflow:hidden}.audio-attachment{gap:10px;padding:10px;display:grid}.audio-attachment__meta{align-items:center;gap:10px;min-width:0;display:flex}.audio-attachment audio{width:100%;height:36px}.document-attachment{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.document-attachment__thumbnail{border:1px solid var(--line);background:linear-gradient(135deg, transparent 0 76%, var(--panel-3) 76% 100%), linear-gradient(180deg, #fff 0%, #f0f2f7 100%);width:64px;height:82px;color:var(--accent);letter-spacing:0;cursor:pointer;border-radius:6px;place-items:center;font-size:13px;font-weight:800;text-decoration:none;display:inline-grid;position:relative;overflow:hidden;box-shadow:0 8px 18px -16px #0009}.document-attachment__thumbnail:before,.document-attachment__thumbnail:after{content:"";background:color-mix(in srgb, var(--muted) 36%, transparent);border-radius:999px;height:2px;position:absolute;left:14px;right:14px}.document-attachment__thumbnail:before{top:48px}.document-attachment__thumbnail:after{top:56px}.document-attachment__meta{gap:5px;min-width:0;display:grid}.document-attachment__title{width:100%;min-width:0;color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:700;text-decoration:none;overflow:hidden}.document-attachment__title:hover{text-underline-offset:3px;text-decoration:underline}.document-attachment__meta small{color:var(--muted);white-space:nowrap;font-size:11px}.document-attachment__download{width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;text-decoration:none;transition:background .12s,color .12s;display:inline-grid}.document-attachment__download:hover{background:var(--panel-2);color:var(--text-strong)}@media (width<=520px){.message-group{grid-template-columns:44px minmax(0,1fr);padding:7px 12px}:root[data-user-align=right] .message-group.is-self,:root[data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 44px}.message-row{margin-left:-44px;margin-right:-12px;padding-left:44px;padding-right:12px}:root[data-user-align=right] .message-group.is-self .message-row,:root[data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-12px;margin-right:-44px;padding-left:12px;padding-right:44px}.message-group .group-body>header{margin-left:-44px;margin-right:-12px;padding-left:44px;padding-right:12px}:root[data-user-align=right] .message-group.is-self .group-body>header,:root[data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:-12px;margin-right:-44px;padding-left:12px;padding-right:44px}.row-stamp{display:none}.attachment-grid,.attachment-grid.compact{grid-template-columns:minmax(0,1fr);max-width:100%}}:root[data-message-layout=outlined] .message-group .group-body{width:100%}:root[data-message-layout=outlined] .message-group .message-row{margin-left:0;margin-right:0;padding:0}:root[data-message-layout=outlined] .message-group .group-body>header{margin-left:0;margin-right:0;padding-left:0;padding-right:0}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .message-content,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .message-content,:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .markdown,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .markdown{text-align:start}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .thread-hint,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .thread-hint{width:fit-content;margin-left:auto;display:flex}:root[data-message-layout=outlined] .message-group .row-stamp{left:-48px}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .row-stamp,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .row-stamp{left:auto;right:-48px}:root[data-message-layout=outlined] .message-group .message-row:not(:first-child){margin-top:4px}:root[data-message-layout=outlined] .message-group .message-content{border-radius:var(--radius-lg);width:fit-content;max-width:min(96%,1100px);margin-top:2px;padding:10px 14px;position:relative}:root[data-message-layout=outlined] .message-group .message-row:not(.is-preamble):not(.after-preamble) .message-content{border:1px solid var(--line-strong)}:root[data-message-layout=outlined] .message-group.is-agent .message-content{width:96%;max-width:1100px}:root[data-message-layout=outlined] .message-group .message-row.before-final-message+.message-row.after-preamble{margin-top:-1px}:root[data-message-layout=outlined] .message-group.is-agent .message-row.before-final-message .message-content{border-bottom-right-radius:0;border-bottom-left-radius:0}:root[data-message-layout=outlined] .message-group.is-agent .message-row.after-preamble .message-content{border-top-left-radius:0;border-top-right-radius:0}:root[data-density=compact] .message-group{grid-template-columns:42px minmax(0,1fr);padding:2px 18px}:root[data-density=compact][data-user-align=right] .message-group.is-self,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 42px}:root[data-density=compact] .message-group>.avatar{border-radius:7px;width:26px;height:26px;font-size:11px}:root[data-density=compact] .group-body>header{gap:6px;margin-bottom:0}:root[data-density=compact] .message-group .group-body>header{margin-left:-42px;padding-left:42px}:root[data-density=compact][data-user-align=right] .message-group.is-self .group-body>header,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:-18px;margin-right:-42px;padding-left:18px;padding-right:42px}:root[data-density=compact] .group-body>header strong,:root[data-density=compact] .author-name{font-size:13px}:root[data-density=compact] .group-body>header time{font-size:10px}:root[data-density=compact] .message-row{margin-left:-42px;padding-left:42px}:root[data-density=compact][data-user-align=right] .message-group.is-self .message-row,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-18px;margin-right:-42px;padding-left:18px;padding-right:42px}:root[data-density=compact] .markdown{font-size:13.5px;line-height:1.42}:root[data-density=compact] .reactions-bar{margin-top:2px}:root[data-density=compact][data-message-layout=outlined] .message-group .message-row{margin-left:0;padding-left:0}:root[data-density=compact][data-message-layout=outlined] .message-group .row-stamp{left:-34px}:root[data-density=compact][data-message-layout=outlined][data-user-align=right] .message-group.is-self .row-stamp,:root[data-density=compact][data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .row-stamp{left:auto;right:-34px}@media (width<=520px){:root[data-density=compact] .message-group{padding-left:12px;padding-right:12px}}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .message-row,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .message-row,:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .group-body>header,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.composer{--composer-card-top:8px;--composer-overlay-gap:8px;--composer-overlay-inset-x:18px;background:var(--bg);gap:0;padding:8px 18px 6px;display:grid;position:relative}.composer-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--key-edge);flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.composer:focus-within .composer-card{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));box-shadow:var(--key-edge), 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}.composer-suggestions{left:var(--composer-overlay-inset-x);bottom:calc(100% - var(--composer-card-top) + var(--composer-overlay-gap));z-index:40;width:min(560px, calc(100% - (var(--composer-overlay-inset-x) * 2)));border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 97%, transparent);max-height:min(320px,45vh);box-shadow:var(--shadow);border-radius:12px;margin:0;position:absolute;overflow:hidden auto}.composer-suggestions button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:48px;color:var(--text);text-align:left;background:0 0;border-radius:0;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.composer-suggestions button:last-child{border-bottom:0}.composer-suggestions button:hover,.composer-suggestions button.active{background:var(--hover-strong)}.suggestion-mark{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.suggestion-copy{gap:2px;min-width:0;display:grid}.suggestion-copy strong,.suggestion-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.suggestion-copy strong{color:var(--text-strong);font-size:13px}.suggestion-copy span{color:var(--muted);font-size:12px}.suggestion-kind{color:var(--muted-2);text-transform:uppercase;font-size:11px;font-weight:700}.suggestion-hint{color:var(--muted);font-size:12px;font-style:normal;font-weight:500}.composer-notice{margin:0 var(--composer-overlay-inset-x,0) 6px;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 97%, transparent);border-radius:10px;align-items:baseline;gap:8px;padding:7px 10px;font-size:13px;display:flex}.composer-notice__label{color:var(--muted-2);text-transform:uppercase;flex:none;font-size:11px;font-weight:700}.composer-notice--error .composer-notice__label{color:var(--danger)}.composer-notice__text{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1}.composer-notice__dismiss{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;align-self:center;place-items:center;font-size:15px;line-height:1;display:grid}.composer-notice__dismiss:hover{background:var(--hover-strong);color:var(--text-strong)}.composer-toolbar{border:0;border-top:1px solid var(--line);background:color-mix(in srgb, var(--panel-2) 35%, transparent);width:100%;min-width:0;box-shadow:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:0;align-items:center;gap:2px;margin:0;padding:4px 6px;display:inline-flex;overflow:auto hidden}.composer-toolbar::-webkit-scrollbar{display:none}.composer-toolbar button{min-width:28px;height:26px;color:var(--text);opacity:.78;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;font-size:11.5px;font-weight:700;transition:background .1s,color .1s,opacity .1s,transform 80ms;display:grid}.composer-toolbar button:hover{background:var(--hover-strong);color:var(--text-strong);opacity:1}.composer-toolbar button.active{background:var(--accent-soft);color:var(--accent);opacity:1}.composer-toolbar button:active{transform:translateY(1px)}.gif-picker{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 96%, transparent);width:min(520px,100%);max-height:40dvh;box-shadow:var(--shadow);border-radius:16px;margin-top:8px;margin-bottom:8px;padding:10px;animation:.16s cubic-bezier(.2,.8,.2,1) picker-in;overflow-y:auto}.gif-picker-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:2px 2px 10px;display:grid}.gif-picker-head strong{color:var(--text-strong);font-size:13px}.gif-picker-head input{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);min-width:0;height:32px;padding:0 10px}.gif-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:240px;display:grid;overflow-y:auto}.gif-grid button{aspect-ratio:4/3;background:var(--panel-2);color:#fff;box-shadow:inset 0 0 0 1px var(--line);border:0;border-radius:12px;padding:0;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.gif-grid button:hover{box-shadow:inset 0 0 0 2px var(--accent), 0 14px 30px -22px #000c;transform:translateY(-2px)}.gif-grid img{object-fit:cover;width:100%;height:100%;display:block}.gif-grid span{text-overflow:ellipsis;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008f;border-radius:999px;padding:4px 7px;font-size:10.5px;font-weight:700;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}@keyframes picker-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.composer-row{--composer-control-size:36px;--composer-line-height:22px;--composer-text-padding-block:7px;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px;padding:8px 8px 4px 10px;display:grid}.composer-row:has(.composer-icon){grid-template-columns:auto minmax(0,1fr) auto}.composer:focus-within .composer-toolbar,.composer-row:focus-within{border-color:#0000}.composer-row:focus-within{box-shadow:none}.composer-icon{width:var(--composer-control-size);height:var(--composer-control-size);margin-top:calc(var(--composer-text-padding-block) + (var(--composer-line-height) - var(--composer-control-size)) / 2);color:var(--muted);cursor:pointer;border-radius:10px;align-self:start;place-items:center;transition:background .12s,color .12s;display:grid}.composer-icon:hover{background:var(--hover-strong);color:var(--text-strong)}.composer-icon input[type=file]{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.composer textarea,.reply-composer textarea{width:100%;height:auto;min-height:44px;max-height:50vh;padding:var(--composer-text-padding-block) 4px;resize:none;color:var(--text);line-height:var(--composer-line-height);box-sizing:border-box;align-self:start;font-size:14.5px;overflow-y:auto}.composer textarea::placeholder,.reply-composer textarea::placeholder{color:var(--muted)}.send{width:var(--composer-control-size);height:var(--composer-control-size);margin-top:calc(var(--composer-text-padding-block) + (var(--composer-line-height) - var(--composer-control-size)) / 2);border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);box-shadow:var(--key-edge);align-self:start;place-items:center;transition:background .12s,transform 80ms,box-shadow 80ms,opacity .12s;display:grid}.send:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.send:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.send:disabled{background:var(--panel-3);border-color:var(--line-strong);color:var(--muted-2);cursor:not-allowed;box-shadow:none}.composer-attachment{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);align-items:center;gap:8px;width:fit-content;margin-top:8px;margin-bottom:8px;padding:6px 10px;font-size:13px;display:inline-flex}.attachment-icon{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:6px;place-items:center;display:grid}.pending-image{object-fit:cover;border:1px solid var(--line);background:var(--panel-2);border-radius:7px;width:42px;height:32px}.attachment-name{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.attachment-remove{width:18px;height:18px;color:var(--muted);background:0 0;border:0;border-radius:50%;font-size:14px;line-height:1}.attachment-remove:hover{background:var(--danger);color:#fff}.composer-hint{color:var(--muted-2);padding:7px 4px 0;font-size:11px}.composer-hint kbd{background:var(--panel-2);border:1px solid var(--line-strong);font-family:var(--font-mono);color:var(--text);box-shadow:0 1px 0 var(--line-strong);border-radius:4px;padding:0 5px;font-size:10.5px;display:inline-block}@media (width<=820px){.composer{padding:8px calc(14px + var(--safe-area-right)) calc(6px + var(--safe-area-bottom)) calc(14px + var(--safe-area-left))}.composer textarea,.reply-composer textarea{font-size:16px}.composer-suggestions{max-height:min(320px,42dvh)}}.thread{background:var(--panel);border-left:1px solid var(--line);opacity:0;pointer-events:none;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(28px)}.thread.open{opacity:1;pointer-events:auto;transform:translate(0)}.thread.covered{opacity:0;pointer-events:none}.thread>header{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--panel);align-items:center;gap:10px;min-height:60px;padding:12px 16px;display:flex}.thread>header>div{flex:1;min-width:0}.thread>header p,.thread>header strong{margin:0}.thread>header p{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.thread>header strong{color:var(--text-strong);font-size:14px;display:block}.thread .thread-pin-error{color:var(--danger);margin-top:3px;font-size:11px;line-height:1.35;display:block}.thread .close{background:var(--panel-2);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;font-size:18px;line-height:1}.thread .close:hover{background:var(--panel-3);color:var(--text-strong)}.thread .thread-open-link{color:var(--accent);font-family:var(--font-mono);white-space:nowrap;flex:none;font-size:11px;font-weight:700;text-decoration:none}.thread .thread-open-link:hover{color:var(--accent-hover);text-decoration:underline}.thread .thread-open-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.thread .thread-back{background:var(--panel-2);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.thread .thread-back:hover{background:var(--panel-3);color:var(--text-strong)}.thread .thread-back:focus-visible,.thread .close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.thread-scroll{padding:12px 16px;overflow-y:auto}.thread-root{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr);gap:12px;padding-bottom:12px;display:grid}.thread-divider{align-items:center;gap:10px;margin:14px 0 10px;display:flex}.thread-divider:before,.thread-divider:after{content:"";background:var(--line);flex:1;height:1px}.thread-divider span{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:600}.reply-list{flex-direction:column;gap:10px;display:flex}.reply{border-radius:var(--radius-sm);grid-template-columns:30px minmax(0,1fr);gap:10px;padding:6px;display:grid}.reply:hover{background:var(--hover)}.thread .reply-quote-btn,.thread .thread-action-btn{width:26px;height:26px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.thread .reply-quote-btn:hover,.thread .thread-action-btn:hover{background:var(--hover-strong);color:var(--text-strong)}.thread .reply-quote-btn:disabled,.thread .thread-action-btn:disabled{cursor:default;opacity:.45}.thread .thread-action-btn--danger{color:var(--danger)}.thread .thread-action-btn--danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.thread .thread-more-actions{display:none}@media (hover:none),(pointer:coarse){.thread .group-body>header{min-height:28px;padding-right:32px;position:relative}.thread .reply-quote-btn,.thread .thread-action-btn:not(.thread-more-actions){display:none}.thread .thread-more-actions{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;display:inline-grid;position:absolute;top:0;right:0;overflow:hidden}.thread .thread-more-actions:focus-visible{clip:auto;clip-path:none;border:1px solid var(--line-strong);background:var(--panel);width:28px;height:28px;box-shadow:var(--shadow);margin:0;overflow:visible}}.reply-composer{--composer-card-top:10px;--composer-overlay-inset-x:14px;background:var(--panel);border-top:1px solid var(--line);padding:10px 14px 14px}.reply-composer .composer-row{border-radius:0}.thread-empty{text-align:center;grid-row:span 3;align-content:center;place-items:center;gap:8px;padding:32px 24px;display:grid}.thread-icon{background:var(--panel-2);width:56px;height:56px;color:var(--muted);border-radius:16px;place-items:center;display:grid}.thread-empty strong{color:var(--text-strong);font-size:15px}.thread-empty span{color:var(--muted);max-width:260px;font-size:13px;line-height:1.5}.profile-pane{overflow-y:auto}.profile-hero{background:linear-gradient(180deg, transparent, #0000003d), linear-gradient(135deg, hsl(var(--hue,220deg) 76% 58%), hsl(calc(var(--hue,220deg) + 54deg) 74% 38%));border-bottom:1px solid var(--line);place-items:end center;min-height:210px;padding:28px 20px;display:grid}.profile-avatar{aspect-ratio:1;color:#fff;background:#ffffff2e;border-radius:16px;place-items:center;width:min(240px,70%);font-size:clamp(48px,12vw,88px);font-weight:800;display:grid;overflow:hidden;box-shadow:0 26px 60px -30px #000000e6}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-pane-body{gap:18px;padding:18px 16px 22px;display:grid}.profile-pane-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.profile-pane-title h2{color:var(--text-strong);letter-spacing:0;margin:0;font-size:22px}.profile-pane-title span{color:var(--muted);margin-top:3px;font-size:13px;display:block}.profile-pane-title .bot-badge{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);min-height:20px;color:var(--accent);border-radius:999px;align-items:center;margin-top:6px;padding:0 8px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.text-action{color:var(--accent);background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:13px;font-weight:700}.text-action:hover{background:var(--accent-soft)}.profile-presence{color:var(--text);align-items:center;gap:8px;font-size:14px;display:inline-flex}.profile-actions-row{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;display:grid}.profile-actions-row .primary-action,.profile-actions-row .ghost-action{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;width:100%;min-width:0;height:48px;padding:0 16px;font-size:14px;font-weight:800;line-height:1;display:inline-flex}.moderation-actions{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px;display:grid}.moderation-actions .primary-action,.moderation-actions .ghost-action,.moderation-actions .danger-action{border-radius:var(--radius);min-height:40px;font-size:13px;font-weight:800}.danger-action{border:1px solid color-mix(in srgb, var(--danger), transparent 35%);background:color-mix(in srgb, var(--danger), transparent 86%);color:var(--danger)}.role-pill{background:var(--panel-2);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.profile-info{border-top:1px solid var(--line);gap:12px;padding-top:18px;display:grid}.profile-info header{justify-content:space-between;align-items:center;gap:10px;display:flex}.profile-info header strong{color:var(--text-strong);font-size:14px}.profile-info-row{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;min-height:48px;display:grid}.info-icon{background:var(--panel-2);width:48px;height:48px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.info-icon svg{flex:none;display:block}.profile-info-row>div>small,.profile-info-row>div>span{display:block}.profile-info-row>div>small{color:var(--muted);font-size:12px;line-height:1.2}.profile-info-row>div>span{color:var(--text);overflow-wrap:anywhere;font-size:14px;line-height:1.3}.profile-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}@media (width<=820px){.thread{min-height:100dvh}.thread>header{min-height:calc(60px + var(--safe-area-top));padding-top:calc(12px + var(--safe-area-top));padding-right:calc(16px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.thread-scroll{padding-right:calc(16px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.reply-composer{padding-right:calc(14px + var(--safe-area-right));padding-bottom:calc(14px + var(--safe-area-bottom));padding-left:calc(14px + var(--safe-area-left))}}.thread-scroll{overflow-anchor:none}.thread-history{text-align:center;padding:8px 16px}.thread-history p{color:var(--danger);font-size:12px}.thread-history--latest{border-top:1px solid var(--line)}.thread-target{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.artifact-viewer{z-index:2;border-left:1px solid var(--line);background:var(--panel);opacity:0;pointer-events:none;grid-template-rows:auto minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(28px)}.artifact-viewer.open{opacity:1;pointer-events:auto;transform:translate(0)}.artifact-viewer__header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, var(--bg));justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:10px 12px 10px 16px;display:flex}.artifact-viewer__identity{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:5px 10px;min-width:0;display:grid}.artifact-viewer__identity span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;font-size:11px;font-weight:700}.artifact-viewer__identity strong{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.artifact-viewer__identity small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.artifact-viewer__actions,.artifact-viewer__segmented{align-items:center;gap:4px;display:inline-flex}.artifact-viewer__actions>a,.artifact-viewer__actions>button,.artifact-viewer__segmented button,.artifact-viewer__pdf-toolbar button{border-radius:var(--radius-sm);min-width:32px;height:32px;color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;padding:0 9px;text-decoration:none;display:inline-grid}.artifact-viewer__office-toolbar button,.artifact-viewer__sheet-tabs button{border-radius:var(--radius-sm);min-height:30px;color:var(--muted);background:0 0;border:1px solid #0000;padding:0 10px;font-size:11px}.artifact-viewer__actions>button{font-size:20px;line-height:1}.artifact-viewer__actions>a:hover,.artifact-viewer__actions>button:hover,.artifact-viewer__segmented button:hover,.artifact-viewer__pdf-toolbar button:hover:not(:disabled){border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.artifact-viewer__actions :focus-visible,.artifact-viewer__pdf-toolbar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artifact-viewer__segmented{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:2px}.artifact-viewer__segmented button{min-width:58px;height:28px;font-size:11px;font-weight:650}.artifact-viewer__segmented button.active{border-color:var(--line);background:var(--panel);color:var(--text-strong)}.artifact-viewer__body{background:var(--bg);min-height:0;overflow:auto}.artifact-viewer__state{min-height:100%;color:var(--muted);text-align:center;align-content:center;justify-items:center;gap:10px;padding:32px 24px;display:grid}.artifact-viewer__state strong{color:var(--text-strong);font-size:15px}.artifact-viewer__state p{max-width:34ch;margin:0;font-size:13px;line-height:1.5}.artifact-viewer__state a{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);min-height:36px;color:var(--text-strong);margin-top:4px;padding:8px 12px;font-size:13px;font-weight:650;text-decoration:none}.artifact-viewer__state--error svg{color:var(--danger)}.artifact-viewer__spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite artifact-spin}@keyframes artifact-spin{to{transform:rotate(360deg)}}.artifact-viewer__source{background:color-mix(in srgb, var(--bg) 90%, #090b10);width:max-content;min-width:100%;min-height:100%;color:var(--text);font-family:var(--font-mono);tab-size:2;white-space:pre;margin:0;padding:20px;font-size:12px;line-height:1.65}.artifact-viewer__source code{font:inherit}.artifact-viewer__document{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(100%,760px);min-height:calc(100% - 32px);color:var(--text);overflow-wrap:anywhere;margin:16px auto;padding:clamp(24px,5vw,56px);font-size:15px;line-height:1.65}.artifact-viewer__document>:first-child{margin-top:0}.artifact-viewer__document>:last-child{margin-bottom:0}.artifact-viewer__document h1,.artifact-viewer__document h2,.artifact-viewer__document h3{color:var(--text-strong);line-height:1.25}.artifact-viewer__document h1{font-size:28px}.artifact-viewer__document h2{margin-top:1.75em;font-size:21px}.artifact-viewer__document h3{margin-top:1.5em;font-size:17px}.artifact-viewer__document pre{border-radius:var(--radius);background:var(--panel-2);padding:14px;overflow:auto}.artifact-viewer__document code{font-family:var(--font-mono)}.artifact-viewer__document table{border-collapse:collapse;width:100%}.artifact-viewer__document th,.artifact-viewer__document td{border:1px solid var(--line-strong);text-align:left;padding:8px 10px}.artifact-viewer__document img{max-width:100%;height:auto}.artifact-viewer__document a{color:var(--accent)}.artifact-viewer__body.is-pdf{grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.artifact-viewer__body.is-office{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.artifact-viewer__office-toolbar,.artifact-viewer__sheet-tabs{border-bottom:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:11px;display:flex}.artifact-viewer__office-toolbar button:disabled{cursor:not-allowed;opacity:.4}.artifact-viewer__office-toolbar button:hover:not(:disabled),.artifact-viewer__sheet-tabs button:hover,.artifact-viewer__sheet-tabs button.active{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.artifact-viewer__office-toolbar button:focus-visible,.artifact-viewer__sheet-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artifact-viewer__office-toolbar{flex-wrap:wrap}.artifact-viewer__spreadsheet{background:var(--panel);min-height:0;overflow:auto}.artifact-viewer__spreadsheet table{table-layout:fixed;border-spacing:0;border-collapse:separate;width:max-content;color:var(--text);font-size:12px}.artifact-viewer__spreadsheet th,.artifact-viewer__spreadsheet td{box-sizing:border-box;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);text-align:left;text-overflow:ellipsis;white-space:nowrap;width:160px;min-width:160px;max-width:160px;height:30px;padding:5px 8px;overflow:hidden}.artifact-viewer__spreadsheet thead th{z-index:2;background:var(--panel-2);color:var(--muted);text-align:center;position:sticky;top:0}.artifact-viewer__spreadsheet .row-heading{z-index:1;background:var(--panel-2);width:44px;min-width:44px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;position:sticky;left:0}.artifact-viewer__spreadsheet thead .row-heading{z-index:3}.artifact-viewer__grid-note{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:max-content;max-width:min(480px,100vw - 48px);color:var(--muted);white-space:normal;margin:16px;padding:8px 10px;font-size:12px;line-height:1.45;position:sticky;left:0}.artifact-viewer__sheet-tabs{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-start;overflow-x:auto}.artifact-viewer__sheet-tabs button{flex:none}.artifact-viewer__slide-stage{align-content:center;place-items:center;gap:12px;min-height:0;padding:24px;display:grid;overflow:auto}.artifact-viewer__slide{aspect-ratio:16/9;color:#172033;background:#fff;flex-direction:column;justify-content:safe center;width:min(100%,860px);padding:48px;display:flex;overflow:auto;box-shadow:0 16px 48px -24px #000000a6}.artifact-viewer__slide h2{letter-spacing:0;margin:0 0 .7em;font-size:36px;line-height:1.15}.artifact-viewer__slide p{margin:.35em 0;font-size:20px;line-height:1.4}.artifact-viewer__office-note{color:var(--muted);margin:0;font-size:12px}@media (width<=640px){.artifact-viewer__slide{padding:28px}.artifact-viewer__slide h2{font-size:24px}.artifact-viewer__slide p{font-size:15px}}.artifact-viewer__pdf-toolbar{border-bottom:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:11px;display:flex}.artifact-viewer__pdf-toolbar button{min-width:30px;height:30px;font-size:11px}.artifact-viewer__pdf-toolbar button:disabled{cursor:not-allowed;opacity:.4}.artifact-viewer__toolbar-divider{background:var(--line);width:1px;height:18px;margin:0 4px}.artifact-viewer__pdf-stage{text-align:center;min-height:0;padding:24px;overflow:auto}.artifact-viewer__pdf-stage canvas{background:#fff;max-width:none;transition:opacity .12s;display:inline-block;box-shadow:0 16px 48px -24px #000000a6}.artifact-viewer__pdf-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.artifact-viewer__pdf-stage.is-rendering canvas{opacity:.55}.hljs-comment,.hljs-quote{color:var(--muted);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link{color:var(--accent)}.hljs-string,.hljs-title,.hljs-name,.hljs-type,.hljs-attribute,.hljs-symbol,.hljs-bullet,.hljs-addition{color:var(--success)}.hljs-number,.hljs-meta,.hljs-built_in,.hljs-builtin-name,.hljs-params{color:var(--activity-accent)}.hljs-deletion{color:var(--danger)}@media (width<=820px){.artifact-viewer{z-index:40;border-left:0;min-height:100dvh;position:fixed;inset:0}.artifact-viewer__header{min-height:calc(64px + var(--safe-area-top));padding-top:calc(10px + var(--safe-area-top));padding-right:calc(12px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.artifact-viewer__identity small{display:none}.artifact-viewer__document{border:0;border-radius:0;min-height:100%;margin:0}}@media (prefers-reduced-motion:reduce){.artifact-viewer{transition:none}.artifact-viewer__spinner{animation-duration:1.4s}}.modal-scrim{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05080f8a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-backdrop{background:0 0;border:0;position:absolute;inset:0}.modal-backdrop:focus{outline:0}.profile-modal{z-index:1;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(480px,100%);box-shadow:var(--key-edge), var(--shadow);animation:.15s ease-out settings-modal-fade;position:relative;overflow:hidden}.profile-modal>header{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 4px;display:flex}.profile-modal>header p{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:10px;font-weight:600}.profile-modal>header h2{color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:700}.profile-modal>header>button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:28px;height:28px;color:var(--muted);flex:none;place-items:center;font-size:16px;line-height:1;display:grid}.profile-modal>header>button:hover{background:var(--panel-3);color:var(--text-strong)}.create-modal{width:min(420px,100%)}.profile-form{gap:14px;padding:20px;display:grid}.field{gap:6px;display:grid}.field span{color:var(--muted);font-size:12px;font-weight:700}.field input,.field select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:100%;height:38px;color:var(--text);padding:0 12px}.field select{cursor:pointer}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.profile-status{color:var(--success);font-size:12px}.profile-status.error{color:var(--danger)}.profile-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.person-picker{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);gap:4px;max-height:240px;padding:4px;display:grid;overflow-y:auto}.person-choice{border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:6px 8px;display:grid}.person-choice:hover{background:var(--hover-strong)}.person-choice .dm-avatar{width:32px;height:32px}.person-choice strong,.person-choice small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.person-choice strong{color:var(--text-strong);font-size:13px}.person-choice small{color:var(--muted);font-size:12px}.person-empty{color:var(--muted);padding:10px 8px;font-size:12px}.profile-actions .ghost-action,.profile-actions .primary-action,.profile-actions .danger-action{box-sizing:border-box;border-radius:var(--radius);white-space:nowrap;min-height:44px;box-shadow:var(--key-edge);flex:none;justify-content:center;align-items:center;padding:0 14px;font-weight:700;line-height:1;transition:background .12s,box-shadow 80ms,transform 80ms;display:inline-flex}.ghost-action{border:1px solid var(--line-strong);background:var(--panel);color:var(--text)}.primary-action{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));background:var(--accent);color:var(--accent-contrast)}.profile-actions .danger-action{border:1px solid color-mix(in srgb, var(--danger) 76%, var(--text-strong));background:var(--danger);color:#fff}.ghost-action:hover{background:var(--hover)}.primary-action:hover{background:var(--accent-hover)}.profile-actions .danger-action:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 86%, #000)}.profile-actions .ghost-action:disabled,.profile-actions .primary-action:disabled,.profile-actions .danger-action:disabled{cursor:default;opacity:.58}.profile-actions .ghost-action:active,.profile-actions .primary-action:active,.profile-actions .danger-action:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.delete-message-scrim{padding:20px}.delete-message-modal{width:min(520px,100%)}.delete-message-modal>header{padding-bottom:10px}.delete-message-content{gap:18px;padding:4px 20px 20px;display:grid}.delete-message-content>p{color:var(--text);margin:0;font-size:14px;line-height:1.5}.delete-message-preview{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px;padding:14px;display:grid}.delete-message-preview__content{min-width:0}.delete-message-preview>.avatar{border-radius:9px;width:36px;height:36px;margin:0}.delete-message-preview__meta{align-items:baseline;gap:8px;min-width:0;display:flex}.delete-message-preview__meta strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.delete-message-preview__meta time{color:var(--muted);flex:none;font-size:11px}.delete-message-preview__body{max-height:128px;color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:4px;font-size:14px;line-height:1.45;overflow:auto}.delete-message-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:0;display:grid}.delete-message-actions button{width:100%}@media (width<=520px){.delete-message-modal{width:100%}.delete-message-content,.delete-message-modal>header{padding-inline:16px}}.channel-settings-scrim{padding:20px}.channel-settings-modal{width:min(460px,100%)}.channel-settings-content{gap:18px;padding:14px 20px 20px;display:grid}.channel-settings-name{color:var(--text-strong);font-family:var(--font-display);font-size:16px;display:block}.channel-settings-content p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.channel-settings-content .channel-settings-warning{border-left:3px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--panel-2));color:var(--text);margin:0;padding:12px}.channel-settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:0;display:grid}.channel-settings-actions button{width:100%}@media (width<=520px){.channel-settings-content,.channel-settings-modal>header{padding-inline:16px}}.image-viewer-scrim{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#000000c7;padding:28px}.image-viewer{z-index:1;color:#fff;background:#07090f;border:1px solid #ffffff1f;border-radius:14px;grid-template-rows:auto minmax(0,1fr);width:min(1280px,100%);height:min(900px,100dvh - 56px);max-height:100%;animation:.15s cubic-bezier(.2,.8,.2,1) picker-in;display:grid;position:relative;overflow:hidden;box-shadow:0 34px 90px -34px #000000f2}.image-viewer>header{background:#ffffff0a;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:10px 12px 10px 16px;display:flex}.image-viewer>header strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.image-viewer>header div{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.image-viewer>header a{color:#fff;background:#ffffff14;border-radius:7px;align-items:center;height:30px;padding:0 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.image-viewer>header a:hover{background:#ffffff24}.image-viewer>header a:focus-visible,.image-viewer>header button:focus-visible{outline-offset:2px;outline:2px solid #fff}.image-viewer>header button{color:#ffffffc7;background:0 0;border:0;border-radius:7px;place-items:center;width:30px;height:30px;font-size:22px;line-height:1;display:grid}.image-viewer>header button:hover{color:#fff;background:#ffffff1f}.image-viewer-stage{place-items:center;min-height:0;padding:18px;display:grid}.image-viewer-stage img{object-fit:contain;background:#ffffff0a;border-radius:8px;max-width:100%;max-height:100%;display:block}@media (width<=720px),(height<=520px) and (orientation:landscape){.image-viewer-scrim{padding:0}.image-viewer{border:0;border-radius:0;width:100%;height:100dvh}.image-viewer>header{padding-top:calc(10px + var(--safe-area-top));padding-right:calc(12px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.image-viewer-stage{padding-right:calc(12px + var(--safe-area-right));padding-bottom:calc(12px + var(--safe-area-bottom));padding-left:calc(12px + var(--safe-area-left))}}.mobile-nav-toggle{top:calc(14px + var(--safe-area-top));left:calc(14px + var(--safe-area-left));z-index:30;border:1px solid var(--line-strong);background:var(--panel);width:38px;height:38px;color:var(--text);border-radius:10px;font-size:22px;line-height:1;display:none;position:fixed}.mobile-nav-toggle .bars{gap:3px;display:grid}.mobile-nav-toggle .bars i{background:currentColor;border-radius:2px;width:16px;height:2px;display:block}.mobile-nav-backdrop{display:none}@media (width<=1180px){.shell{grid-template-columns:72px 240px minmax(0,1fr)}.shell.sidebar-collapsed,.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:72px 0 minmax(0,1fr)}.thread,.search-results{width:min(420px,100vw);box-shadow:var(--shadow);z-index:4;border-left:1px solid var(--line-strong);transition:transform .18s;position:fixed;inset:0 0 0 auto;transform:translate(100%)}.thread.open,.search-results{transform:translate(0)}.desktop-shell .thread,.desktop-shell .search-results{top:52px;bottom:0}}@media (width<=820px){.mobile-nav-toggle{place-items:center;display:grid}.shell,.shell.thread-open,.shell.search-open,.shell.sidebar-collapsed,.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:1fr}.sidebar-collapsed .sidebar{opacity:1;pointer-events:none;transform:translate(calc(-100% - 72px))}.guild-rail,.sidebar{z-index:20;pointer-events:none;height:100dvh;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.guild-rail{width:72px;padding-top:calc(14px + var(--safe-area-top));padding-bottom:calc(14px + var(--safe-area-bottom))}.sidebar{width:min(260px,100vw - 72px);left:72px;transform:translate(calc(-100% - 72px))}.nav-open .guild-rail,.nav-open .sidebar{pointer-events:auto;transform:translate(0,0)}.nav-open .guild-rail{padding-top:calc(62px + var(--safe-area-top))}.desktop-shell .guild-rail,.desktop-shell .sidebar{height:calc(100dvh - 52px);top:52px}.desktop-shell.nav-open .guild-rail{padding-top:calc(14px + var(--safe-area-top))}.desktop-shell .mobile-nav-backdrop{top:52px}.mobile-nav-backdrop{z-index:15;background:#05081075;border:0;padding:0;display:block;position:fixed;inset:0 0 0 min(332px,100vw)}.topbar{min-height:calc(60px + var(--safe-area-top));padding-top:calc(12px + var(--safe-area-top));padding-right:calc(20px + var(--safe-area-right));padding-left:calc(64px + var(--safe-area-left))}.thread>header,.search-results-head{padding-top:calc(12px + var(--safe-area-top));padding-left:calc(64px + var(--safe-area-left))}.search{width:180px}}@media (width<=520px){.search,.topbar-meta,.topbar-divider{display:none}}.message-row.highlight,.thread-root.highlight,.reply.highlight{animation:1.4s ease-out quote-flash}@keyframes quote-flash{0%{background:color-mix(in srgb, var(--accent) 22%, transparent)}to{background:0 0}}.quote-block{color:inherit;cursor:pointer;text-align:left;max-width:100%;font:inherit;background:0 0;border:0;border-radius:6px;align-items:stretch;gap:.5rem;margin:0 0 .35rem;padding:.25rem .5rem .25rem 0;display:inline-flex}.quote-block:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent)}.quote-block:disabled{cursor:default;opacity:.75}.quote-block .quote-bar{background:var(--accent);border-radius:2px;flex:0 0 3px;align-self:stretch;width:3px}.quote-block .quote-content{flex-direction:column;gap:.1rem;min-width:0;display:flex}.quote-block .quote-author{color:var(--accent);font-size:.78rem;font-weight:600}.quote-block .quote-snippet{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:56ch;font-size:.85rem;overflow:hidden}.quote-block .quote-snippet.muted{opacity:.75;font-style:italic}.quote-preview{background:color-mix(in srgb, var(--accent) 5%, transparent);border:0;border-bottom:1px solid var(--line);color:var(--muted);border-radius:0;align-items:center;gap:.5rem;margin:0;padding:6px 10px 6px 12px;font-size:12.5px;display:flex}.quote-preview .quote-bar{display:none}.quote-preview-body{flex:1;align-items:baseline;gap:.4rem;min-width:0;display:flex;overflow:hidden}.quote-preview-label{color:color-mix(in srgb, var(--accent) 85%, var(--text));white-space:nowrap;font-size:12px}.quote-preview-label strong{color:var(--text-strong);font-weight:600}.quote-preview-snippet{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);flex:1;min-width:0;font-size:12px;overflow:hidden}.quote-preview-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:16px;line-height:1;transition:background .1s,color .1s}.quote-preview-clear:hover{color:var(--text-strong);background:var(--hover-strong)}.reply-quote-btn{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;margin-left:auto;padding:0 .3rem;font-size:.95rem;transition:opacity .15s;position:relative}.reply:hover .reply-quote-btn,.thread-root:hover .reply-quote-btn,.reply-quote-btn:focus-visible{opacity:1}.reply-quote-btn:hover{color:var(--accent)}.tooltip{position:relative}.tooltip:before,.reply-quote-btn:before{content:attr(data-tooltip);z-index:20;background:var(--tooltip-bg);color:var(--tooltip-fg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:9px;padding:.42rem .62rem;font-size:.78rem;font-weight:700;line-height:1;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,4px)scale(.96);box-shadow:0 10px 28px #00000047}.tooltip:after,.reply-quote-btn:after{content:"";z-index:20;background:var(--tooltip-bg);opacity:0;pointer-events:none;border-radius:2px;width:12px;height:12px;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translate(-50%,4px)rotate(45deg)scale(.9)}.tooltip:hover:before,.tooltip:focus-visible:before,.reply-quote-btn:hover:before,.reply-quote-btn:focus-visible:before,.tooltip:hover:after,.tooltip:focus-visible:after,.reply-quote-btn:hover:after,.reply-quote-btn:focus-visible:after{opacity:1;transform:translate(-50%)scale(1)}.tooltip:hover:after,.tooltip:focus-visible:after,.reply-quote-btn:hover:after,.reply-quote-btn:focus-visible:after{transform:translate(-50%)rotate(45deg)scale(1)}.tooltip-align-end:before{transform-origin:100% 100%;left:auto;right:0;transform:translateY(4px)scale(.96)}.tooltip-align-end:hover:before,.tooltip-align-end:focus-visible:before{transform:translateY(0)scale(1)}.settings-modal-scrim{z-index:1000;color:var(--text);-webkit-font-smoothing:antialiased;background:var(--lightningcss-light,#080a0e6b)var(--lightningcss-dark,#0000008c);place-items:center;font-size:14px;line-height:1.5;animation:.15s ease-out settings-modal-fade;display:grid;position:fixed;inset:0}@keyframes settings-modal-fade{0%{opacity:0}to{opacity:1}}.settings-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(1100px,96vw);height:min(760px,92vh);box-shadow:var(--shadow);grid-template-columns:232px minmax(0,1fr);display:grid;position:relative;overflow:hidden}.settings-modal__close{z-index:6;width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;transition:background .12s,color .12s;display:grid;position:absolute;top:14px;right:14px}.settings-modal__close:hover{background:var(--hover);color:var(--text-strong)}.settings-modal__rail{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;padding:16px 10px;display:flex;overflow-y:auto}.settings-modal__rail-group+.settings-modal__rail-group{margin-top:14px}.settings-modal__rail-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0;padding:6px 8px 4px;font-size:10px;font-weight:600}.settings-modal__rail ul{margin:0;padding:0;list-style:none}.settings-modal__rail-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin:1px 0;padding:6px 10px;font-size:13.5px;line-height:1.4;transition:background .1s,color .1s;display:flex}.settings-modal__rail-item:hover{background:var(--hover)}.settings-modal__rail-item.is-active{background:var(--hover-strong);color:var(--text-strong);font-weight:600}.settings-modal__rail-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0;place-items:center;display:grid}.settings-modal__rail-icon svg{width:16px;height:16px;display:block}.settings-modal__rail-item.is-active .settings-modal__rail-icon{color:var(--text-strong)}.settings-modal__rail-avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:4px;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:9px;font-weight:700;display:grid;overflow:hidden}.settings-modal__rail-avatar img{object-fit:cover;width:100%;height:100%;display:block}.settings-modal__rail-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-modal__content{background:var(--panel);color:var(--text);padding:40px 56px 56px;overflow-y:auto}.settings-modal__content .settings-page__header{margin-bottom:32px}.settings-modal__content .settings-page__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 6px;font-size:10px;font-weight:600}.settings-modal__content .settings-page__h1{letter-spacing:-.01em;color:var(--text-strong);font-size:26px;font-weight:700;line-height:1.2;font-family:var(--font-display);margin:0 0 6px}.settings-modal__content .settings-page__lead{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.settings-modal__content .settings-form{flex-direction:column;gap:24px;max-width:640px;display:flex}.settings-modal__content .settings-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:20px;display:flex}.settings-modal__content .settings-footer__spacer{flex:1}.settings-modal__content .settings-section{flex-direction:column;gap:20px;display:flex}.settings-modal__content .settings-section__h{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:600}.settings-modal__content .settings-field{flex-direction:column;gap:6px;display:flex}.settings-modal__content .settings-field__label{color:var(--text-strong);font-size:13px;font-weight:600}.settings-modal__content .settings-field__hint{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.settings-modal__content .settings-field__hint.is-error{color:var(--danger)}.settings-modal__content .settings-identity{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:14px;padding:14px 16px;display:flex}.settings-modal__content .settings-identity__meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-modal__content .settings-identity__name{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;line-height:1.25;overflow:hidden}.settings-modal__content .settings-identity__handle{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.3;overflow:hidden}.settings-modal__content .settings-identity__tag{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:600}.settings-modal__content .settings-rows{flex-direction:column;display:flex}.settings-modal__content .settings-rows--sectioned .settings-row2{border-top:0;align-items:center;padding:12px 0}.settings-modal__content .settings-row2{border-top:1px solid var(--line);grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:32px;padding:20px 0;display:grid}.settings-modal__content .settings-row2--toggle{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}.settings-modal__content .settings-row2:first-child{border-top:0;padding-top:4px}.settings-modal__content .settings-row2__desc{min-width:0}.settings-modal__content .settings-row2__label{color:var(--text-strong);margin-bottom:4px;font-size:13.5px;font-weight:600;display:block}.settings-modal__content .settings-row2__hint{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.settings-modal__content .settings-row2__control{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;max-width:380px;display:flex}.settings-modal__content .settings-row2__control--end{flex-direction:row;justify-content:center;align-items:flex-end;max-width:none}.settings-modal__content .settings-rows__head{border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;padding:24px 0 12px;font-size:11px;font-weight:600}.settings-modal__content .settings-rows__head:first-child{border-top:0;padding-top:4px}.settings-modal__content .settings-rows__head+.settings-row2{border-top:0;padding-top:0}.settings-modal__content .settings-input-group{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:stretch;width:100%;transition:border-color .12s,box-shadow .12s,background .12s;display:flex}.settings-modal__content .settings-input-group:hover{border-color:var(--line-strong)}.settings-modal__content .settings-input-group:focus-within{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft)}.settings-modal__content .settings-input-group__prefix{color:var(--muted);border-right:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius-sm) 0 0 var(--radius-sm);place-items:center;padding:0 10px;font-size:14px;font-weight:500;display:grid}.settings-modal__content .settings-input--in-group{box-shadow:none!important;border-radius:0 var(--radius-sm) var(--radius-sm) 0!important;background:0 0!important;border:0!important;max-width:none!important}.settings-modal__content .settings-input--in-group:focus{box-shadow:none!important;background:0 0!important;border:0!important}.settings-modal__content .settings-linklike{color:var(--muted);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:2px 0;font-size:12.5px;text-decoration:underline;transition:color .12s}.settings-modal__content .settings-linklike:hover{color:var(--text-strong)}.settings-modal__content .settings-row{grid-template-columns:1fr auto;align-items:center;gap:24px;display:grid}.settings-modal__content .settings-row__main{min-width:0}.settings-modal__content .settings-row__label{color:var(--text-strong);margin-bottom:2px;font-size:13.5px;font-weight:600}.settings-modal__content .settings-row__hint{color:var(--muted);font-size:12.5px;line-height:1.5}.settings-modal__content .settings-row__hint.is-error{color:var(--danger)}.settings-modal__content .settings-input{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;max-width:420px;height:36px;color:var(--text);font:inherit;padding:0 12px;font-size:14px;transition:border-color .12s,box-shadow .12s,background .12s}.settings-modal__content .settings-input:hover{border-color:var(--line-strong)}.settings-modal__content .settings-input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-input--wide{max-width:560px}.settings-modal__content .settings-row .settings-input{width:auto;min-width:240px;max-width:320px}.settings-modal__content .settings-button{background:var(--panel-2);height:34px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--key-edge);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13.5px;font-weight:600;transition:background .1s,border-color .1s,box-shadow 80ms,transform 80ms;display:inline-flex}.settings-modal__content .settings-button:hover{background:var(--panel-3);border-color:var(--line-strong)}.settings-modal__content .settings-button:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.settings-modal__content .settings-button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-button:disabled{opacity:.55;cursor:not-allowed}.settings-modal__content .settings-button--primary{background:var(--accent);color:var(--accent-contrast);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong))}.settings-modal__content .settings-button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.settings-modal__content .settings-switch{appearance:none;background:var(--line-strong);cursor:pointer;border:0;border-radius:9px;flex-shrink:0;width:32px;height:18px;margin:0;transition:background .15s;position:relative}.settings-modal__content .settings-switch:checked{background:var(--accent)}.settings-modal__content .settings-switch:disabled{opacity:.5;cursor:not-allowed}.settings-modal__content .settings-switch:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.settings-modal__content .settings-switch:checked:after{transform:translate(14px)}.settings-modal__content .settings-switch:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;display:flex}.settings-modal__content .settings-status{color:var(--muted);margin:0;font-size:13px}.settings-modal__content .settings-status.is-error{color:var(--danger)}@media (width<=720px){.settings-modal{border-radius:0;grid-template-rows:auto 1fr;grid-template-columns:1fr;width:100vw;height:100dvh}.settings-modal__rail{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;padding:8px;overflow-x:auto}.settings-modal__content{padding:24px 20px 60px}.settings-modal__content .settings-row2{grid-template-columns:1fr;gap:10px}.settings-modal__content .settings-row2__control{max-width:none}}.ws-settings{color:var(--text);z-index:50;background:var(--lightningcss-light,#0f0f0f38)var(--lightningcss-dark,#00000059);place-items:center;padding:28px 80px 28px 28px;font-size:14px;line-height:1.5;display:grid;position:fixed;inset:0}.ws-settings__panel{background:var(--panel);border:1px solid var(--line);width:100%;max-width:1400px;height:100%;box-shadow:var(--shadow);grid-template-columns:260px minmax(0,1fr);display:grid;overflow:hidden}.ws-settings__rail{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;padding:14px 10px 18px;display:flex;overflow-y:auto}.ws-settings__rail-search{margin:2px 4px 12px;position:relative}.ws-settings__rail-search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ws-settings__rail-search-icon svg{width:14px;height:14px;display:block}.ws-settings__rail-search-input{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:32px;color:var(--text);font:inherit;padding:0 12px 0 32px;font-size:13px}.ws-settings__rail-search-input::placeholder{color:var(--muted)}.ws-settings__rail-search-input:disabled{cursor:not-allowed;opacity:.65}.ws-settings__rail-group{margin-top:6px}.ws-settings__rail-heading{color:var(--muted);letter-spacing:.02em;margin:0;padding:8px 10px 6px;font-size:11.5px;font-weight:600}.ws-settings__rail-heading-name{color:var(--text-strong);font-weight:700}.ws-settings__rail-list{margin:0;padding:0;list-style:none}.ws-settings__rail-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin:1px 0;padding:6px 10px;font-size:14px;line-height:1.4;transition:background .1s,color .1s;display:flex}.ws-settings__rail-item:hover{background:var(--hover)}.ws-settings__rail-item.is-active{background:var(--hover-strong);color:var(--text-strong);font-weight:600}.ws-settings__rail-item-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0;place-items:center;display:grid}.ws-settings__rail-item-icon svg{width:16px;height:16px;display:block}.ws-settings__rail-item.is-active .ws-settings__rail-item-icon{color:var(--text-strong)}.ws-settings__rail-item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ws-settings__content{background:var(--bg);position:relative;overflow-y:auto}.ws-settings__content-inner{max-width:740px;padding:56px 80px 80px}.ws-settings__close{border:1px solid var(--line-strong);background:var(--panel);width:36px;height:36px;color:var(--text-strong);cursor:pointer;z-index:60;border-radius:50%;place-items:center;transition:background .12s,color .12s,border-color .12s;display:grid;position:fixed;top:28px;right:22px;box-shadow:0 1px 3px #00000026}@media (width<=760px){.ws-settings{padding:0}.ws-settings__panel{border:0;border-radius:0;max-width:none}}.ws-settings__close:hover{background:var(--panel-2);color:var(--text-strong);border-color:var(--line-strong)}.ws-settings__error{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--danger);margin:0 0 20px;padding:14px 16px;font-size:13.5px}.ws-settings .ws-page__header{margin-bottom:32px}.ws-settings .ws-page__h1{letter-spacing:-.01em;color:var(--text-strong);font-size:28px;font-weight:700;line-height:1.2;font-family:var(--font-display);margin:0 0 8px}.ws-settings .ws-page__lead{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.workspace-settings-empty{background:var(--panel-2);border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);padding:24px;font-size:14px;line-height:1.6}.workspace-settings-empty p{margin:0}.ws-section{border-top:1px solid var(--line);flex-direction:column;margin-top:24px;display:flex}.ws-section__h{color:var(--text-strong);margin:0;padding:18px 0 6px;font-size:14px;font-weight:700}.ws-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 0;display:grid}.ws-section>.ws-row:first-child,.ws-section>.ws-section__h+.ws-row{border-top:0}.ws-row__main{min-width:0}.ws-row__label{color:var(--text-strong);margin-bottom:4px;font-size:14px;font-weight:600}.ws-row__hint{color:var(--muted);font-size:13px;line-height:1.5}.ws-row__hint b{color:var(--text-strong);font-weight:600}.ws-row__value{color:var(--text-strong);text-align:right;word-break:break-word;max-width:320px;font-size:14px;font-weight:500}.ws-row__control{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:420px;display:flex}.ws-strip{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;font-size:14px;display:flex}.ws-strip__avatar{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));width:28px;height:28px;color:var(--brand-contrast);border-radius:6px;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.ws-strip__avatar img{object-fit:cover;width:100%;height:100%;display:block}.ws-strip__name{color:var(--text-strong);font-weight:600}.ws-strip__pill{letter-spacing:.01em;border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12px;font-weight:600}.ws-strip__pill--owner{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 32%, transparent)}.ws-strip__pill--moderator{background:color-mix(in srgb, var(--delivery-accent) 15%, transparent);color:var(--delivery-accent);border:1px solid color-mix(in srgb, var(--delivery-accent) 32%, transparent)}.ws-strip__pill--member,.ws-strip__pill--guest,.ws-strip__pill--bot{background:var(--panel-3,var(--hover));color:var(--text);border:1px solid var(--line)}.ws-input{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);width:220px;max-width:100%;height:34px;color:var(--text-strong);font:inherit;padding:0 12px;font-size:14px}.ws-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.ws-input:disabled{opacity:.65;cursor:not-allowed}.ws-select{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);width:220px;max-width:100%;height:34px;color:var(--text-strong);font:inherit;padding:0 34px 0 10px;font-size:13.5px}.ws-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.ws-select:disabled{opacity:.65;cursor:not-allowed}.ws-file{display:none}.ws-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:12px;padding:14px 0 0;display:flex}.ws-status{min-height:20px;color:var(--muted);flex:1;margin:0;font-size:13px}.ws-status.is-error{color:var(--danger)}.ws-input[readonly]{cursor:default;color:var(--text)}.ws-btn{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--radius);height:34px;color:var(--text-strong);font:inherit;cursor:pointer;box-shadow:var(--key-edge);padding:0 14px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s,border-color .12s,box-shadow 80ms,transform 80ms}.ws-btn:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.ws-btn:hover:not(:disabled){background:var(--panel-3,var(--hover-strong));border-color:var(--line-strong)}.ws-btn:disabled{opacity:.55;cursor:not-allowed}.ws-btn--danger{color:var(--danger);border-color:var(--line)}.ws-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 9%, transparent);border-color:var(--danger)}.ws-btn--primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong));color:var(--accent-contrast);align-items:center;gap:6px;display:inline-flex}.ws-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ws-btn--primary svg{width:14px;height:14px}.ws-settings__content:has(.ws-members-page){overflow:hidden}.ws-settings__content-inner:has(.ws-members-page){flex-direction:column;max-width:none;height:100%;min-height:0;padding:56px 80px 28px;display:flex}.ws-members-page{flex-direction:column;flex:1;min-height:0;display:flex}.ws-members-page__header{flex:none}.ws-members__toolbar{background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 12px;padding:14px 0 12px;display:flex}.ws-members__count{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}.ws-members__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ws-members__search{align-items:center;display:flex;position:relative}.ws-members__search-icon{width:14px;height:14px;color:var(--muted);pointer-events:none;display:inline-flex;position:absolute;left:10px}.ws-members__search-icon svg{width:100%;height:100%}.ws-members__search-input{width:220px;height:34px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;outline:none;padding:0 12px 0 32px;font-size:13px}.ws-members__search-input::-webkit-search-cancel-button{appearance:none}.ws-members__search-input:focus{border-color:var(--accent)}.ws-members__role-select{height:34px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;outline:none;padding:0 28px 0 10px;font-size:13px}.ws-members__list{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex:auto;min-height:0;overflow:hidden auto}.ws-members__row{border-bottom:1px solid var(--line);box-sizing:border-box;grid-template-columns:36px 1fr auto auto;align-items:center;gap:14px;padding:0 16px;display:grid}.ws-members__avatar{letter-spacing:-.02em;background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.ws-members__avatar--bot{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-members__avatar img{object-fit:cover;width:100%;height:100%}.ws-members__main{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-members__name{color:var(--text-strong,var(--text));white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ws-members__meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:12.5px;display:flex;overflow:hidden}.ws-members__handle{font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:12px}.ws-members__dot{opacity:.6}.ws-members__pill{text-transform:capitalize;color:var(--text);white-space:nowrap;background:#7f7f7f24;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.ws-members__pill--owner{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.ws-members__pill--moderator{background:color-mix(in srgb, var(--delivery-accent) 16%, transparent);color:var(--delivery-accent)}.ws-members__pill--bot{background:var(--accent-soft);color:var(--accent)}.ws-members__pill--guest{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-members__actions{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.ws-members__actions:hover:not(:disabled){background:var(--bg);border-color:var(--line);color:var(--text)}.ws-members__actions:disabled{opacity:.45;cursor:not-allowed}.ws-members__empty{text-align:center;border:1px dashed var(--line);color:var(--muted);background:var(--panel);border-radius:8px;margin-top:24px;padding:36px 20px;font-size:13.5px}.ws-members__loading{color:var(--muted);text-align:center;border-top:1px solid var(--line);padding:10px 16px;font-size:12.5px}.ws-members__row--skeleton{height:64px}.ws-members__skeleton{background:linear-gradient(90deg,#7f7f7f14,#7f7f7f2e,#7f7f7f14) 0 0/200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite ws-members-shimmer}.ws-members__skeleton--line{height:10px;margin:4px 0}.ws-members__skeleton--pill{border-radius:999px;width:64px;height:18px}@keyframes ws-members-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=760px){.ws-settings__panel{grid-template-rows:auto 1fr;grid-template-columns:1fr}.ws-settings__rail{border-right:0;border-bottom:1px solid var(--line);padding:10px}.ws-settings__content-inner{padding:32px 20px 60px}.ws-settings__close{top:10px;right:12px}}.ws-bots-page{flex-direction:column;gap:0;display:flex}.ws-bots__toolbar{background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 12px;padding:14px 0 12px;display:flex}.ws-bots__count{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}.ws-bots__toolbar-actions{align-items:center;gap:8px;display:flex}.ws-bots__panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:8px 0 16px;padding:18px 20px}.ws-bots__empty{text-align:center;border:1px dashed var(--line);color:var(--muted);background:var(--surface);border-radius:8px;margin-top:16px;padding:36px 20px;font-size:13.5px}.ws-bots__list{flex-direction:column;margin-bottom:60px;display:flex}.ws-bots__row{border-bottom:1px solid var(--line)}.ws-bots__row:last-child{border-bottom:0}.ws-bots__row.is-expanded{background:var(--surface)}.ws-bots__row-main{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:36px 1fr auto auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.ws-bots__row-main:hover{background:var(--hover,#7f7f7f0f)}.ws-bots__row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-bots__row-name{color:var(--text-strong,var(--text));white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ws-bots__row-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:12.5px;display:flex;overflow:hidden}.ws-bots__owner-pill{color:var(--text);white-space:nowrap;background:#7f7f7f24;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.ws-bots__owner-pill--service{background:color-mix(in srgb, var(--delivery-accent) 16%, transparent);color:var(--delivery-accent)}.ws-bots__owner-pill--user{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-bots__chevron{width:20px;height:20px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.ws-bots__detail{border-top:1px dashed var(--line);flex-direction:column;gap:12px;padding:4px 16px 18px;display:flex}.ws-bots__detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-top:14px;display:flex}.ws-bots__detail-title{color:var(--text-strong,var(--text));margin:0 0 4px;font-size:13.5px;font-weight:600}.ws-bots__detail-hint{color:var(--muted);max-width:60ch;margin:0;font-size:12.5px}.ws-bots__detail-actions{flex-wrap:wrap;gap:8px;display:flex}.ws-bots__detail-empty{color:var(--muted);background:var(--bg);border:1px dashed var(--line);border-radius:6px;margin:0;padding:16px;font-size:13px}.ws-bots__token-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ws-bots__token-row{background:var(--bg);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;padding:12px 14px;display:flex}.ws-bots__token-row>.ws-btn{flex-shrink:0}.ws-bots__token-main{flex-direction:column;flex:240px;gap:4px;min-width:0;display:flex}.ws-bots__token-name{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-bots__token-meta{color:var(--muted);font-size:12.5px}.ws-bots__scope-row{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.ws-bots__scope-chip{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:2px 8px;font-size:11.5px}.ws-bots__scope-chip--bundle{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 35%, transparent);font-family:inherit;font-weight:600}.ws-bots__scope-toggle{color:var(--muted);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11.5px;text-decoration:underline}.ws-bots__scope-toggle:hover{color:var(--text)}.ws-bots__scope-details{margin-top:6px}.ws-bots__scope-details>summary{color:var(--muted);cursor:pointer;width:fit-content;font-size:11.5px}.ws-bots__scope-details[open]>summary{margin-bottom:6px}.ws-bots__form{flex-direction:column;gap:16px;display:flex}.ws-bots__form-header{flex-direction:column;gap:4px;display:flex}.ws-bots__form-title{color:var(--text-strong,var(--text));margin:0;font-size:16px;font-weight:600}.ws-bots__form-hint{color:var(--muted);max-width:60ch;margin:0;font-size:13px}.ws-bots__form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.ws-bots__form-grid{grid-template-columns:1fr}}.ws-bots__form-field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.ws-bots__form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ws-bots__form-input{height:34px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none;padding:0 12px;font-size:13.5px}.ws-bots__form-input:focus{border-color:var(--accent)}.ws-bots__form-handle{background:var(--surface);border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:flex}.ws-bots__form-handle span{color:var(--muted);font-family:var(--font-mono);font-size:13px}.ws-bots__form-handle .ws-bots__form-input{background:0 0;border:0;flex:1;padding-left:0}.ws-bots__choices{flex-direction:column;gap:8px;display:flex}.ws-bots__choice{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:18px 1fr;gap:2px 10px;padding:10px 12px;display:grid}.ws-bots__choice.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent)}.ws-bots__choice input{accent-color:var(--accent);grid-row:1/span 2;align-self:center}.ws-bots__choice-title{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-bots__choice-hint{color:var(--muted);font-size:12.5px}.ws-bots__form-error{background:color-mix(in srgb, var(--danger) 9%, transparent);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 32%, transparent);border-radius:6px;margin:0;padding:10px 12px;font-size:13px}.ws-bots__form-actions{justify-content:flex-end;gap:8px;display:flex}.ws-bots__token-form-panel{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px}.ws-bots__token-form .ws-bots__choices{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=720px){.ws-bots__token-form .ws-bots__choices{grid-template-columns:1fr}}.ws-bots__reveal{background:var(--surface);border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:14px;margin:8px 0 16px;padding:18px 20px;display:flex}.ws-bots__reveal-header{flex-direction:column;gap:4px;display:flex}.ws-bots__reveal-title{color:var(--text-strong,var(--text));margin:0;font-size:16px;font-weight:600}.ws-bots__reveal-hint{color:var(--muted);max-width:60ch;margin:0;font-size:13px}.ws-bots__reveal-hint code{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--text);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:12px}.ws-bots__reveal-field{flex-direction:column;gap:6px;display:flex}.ws-bots__reveal-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ws-bots__reveal-row{align-items:center;gap:8px;display:flex}.ws-bots__reveal-input{height:34px;font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;flex:1;padding:0 12px;font-size:13px}.ws-bots__reveal-snippet-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.ws-bots__reveal-details{border:1px solid var(--line);background:var(--bg);border-radius:6px}.ws-bots__reveal-summary{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:11px;font-weight:600}.ws-bots__reveal-summary:hover{color:var(--text)}.ws-bots__reveal-details-body{gap:8px;padding:0 14px 12px;display:grid}.ws-bots__reveal-details-body .ws-bots__reveal-hint{margin:0}.ws-bots__setup-mode{background:var(--bg);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));width:min(320px,100%);padding:3px;display:inline-grid}.ws-bots__setup-mode button{min-height:30px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 12px;font-size:12.5px;font-weight:600}.ws-bots__setup-mode button.is-active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}.ws-bots__reveal-snippet{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--text);white-space:pre-wrap;border-radius:6px;margin:0;padding:12px 14px;font-size:12.5px;overflow-x:auto}.ws-bots__reveal-ack{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.ws-bots__reveal-actions{justify-content:flex-end;display:flex}.ws-bots__my-list{flex-direction:column;gap:18px;display:flex}.ws-bots__my-group{flex-direction:column;gap:8px;display:flex}.ws-bots__my-group-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.ws-bots__my-group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px;font-weight:600}.ws-bots__my-rows{border:1px solid var(--line);background:var(--surface);border-radius:6px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ws-bots__my-row{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.ws-bots__my-row:last-child{border-bottom:0}.ws-bots__my-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-bots__my-row-name{color:var(--text-strong,var(--text));font-size:14px;font-weight:600}.ws-bots__my-row-meta{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.appearance-preview{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.appearance-preview__bar{border-bottom:1px solid var(--line);background:var(--panel);color:var(--text-strong);align-items:baseline;gap:8px;padding:9px 14px;font-size:12px;font-weight:700;display:flex}.appearance-preview__hash{color:var(--accent)}.appearance-preview__topic{color:var(--muted);font-size:11.5px;font-weight:500}.appearance-preview__chat{gap:14px;padding:14px 16px 16px;display:grid}.appearance-preview[data-density=compact] .appearance-preview__chat{gap:7px;padding:10px 14px 12px}.appearance-preview__msg{grid-template-columns:34px minmax(0,1fr);gap:10px;display:grid}.appearance-preview[data-density=compact] .appearance-preview__msg{grid-template-columns:24px minmax(0,1fr);gap:8px}.appearance-preview__avatar{background:var(--accent);width:34px;height:34px;color:var(--accent-contrast);border-radius:9px;place-items:center;font-size:14px;font-weight:700;display:grid}.appearance-preview[data-density=compact] .appearance-preview__avatar{border-radius:7px;width:24px;height:24px;font-size:11px}.appearance-preview__avatar.is-agent{background:var(--accent-2)}.appearance-preview__body{gap:3px;min-width:0;display:grid}.appearance-preview[data-density=compact] .appearance-preview__body{gap:1px}.appearance-preview__head{align-items:baseline;gap:7px;display:flex}.appearance-preview__who{color:var(--text-strong);font-size:13px;font-weight:700}.appearance-preview[data-density=compact] .appearance-preview__who{font-size:12px}.appearance-preview__when{color:var(--muted);font-size:10px}.appearance-preview__text{font-size:13px;line-height:1.5}.appearance-preview[data-density=compact] .appearance-preview__text{font-size:12.5px;line-height:1.4}.appearance-preview__activity{background:color-mix(in srgb, var(--accent-2) 9%, var(--panel));color:var(--muted);border-radius:7px 7px 0 0;margin-top:3px;padding:6px 10px;font-size:11.5px}.appearance-preview__activity code{color:var(--text-strong);font-family:var(--font-mono,ui-monospace, monospace);font-size:10.5px}.appearance-preview__answer{background:color-mix(in srgb, var(--accent) 7%, var(--panel));border-radius:0 0 7px 7px;padding:7px 10px 8px;font-size:13px;line-height:1.5}.appearance-preview[data-density=compact] .appearance-preview__activity{padding:4px 8px;font-size:11px}.appearance-preview[data-density=compact] .appearance-preview__answer{padding:5px 8px 6px;font-size:12.5px}.appearance-preview[data-layout=outlined] .appearance-preview__activity{border:1px solid color-mix(in srgb, var(--accent-2) 45%, var(--line));background:0 0;border-bottom:0}.appearance-preview[data-layout=outlined] .appearance-preview__answer{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:0 0}.appearance-preview__reactions{gap:5px;margin-top:5px;display:flex}.appearance-preview[data-density=compact] .appearance-preview__reactions{margin-top:2px}.appearance-preview__reaction{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px}.appearance-preview__reaction.is-mine{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));color:var(--text-strong)}.appearance-preview__caption{color:var(--muted-2);text-align:right;margin:-14px 2px 0;font-size:11px}.appearance-rows{display:grid}.appearance-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:14px 0;display:grid}.appearance-row+.appearance-row{border-top:1px solid var(--line)}.appearance-row__meta{gap:2px;display:grid}.appearance-row__label{color:var(--text-strong);font-size:13.5px;font-weight:650}.appearance-row__desc{color:var(--muted);font-size:12px}.appearance-row__control{align-items:center;gap:12px;display:inline-flex}.appearance-seg{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-2);gap:2px;padding:2px;display:inline-flex}.appearance-seg__btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:5px 12px;font-size:12.5px;font-weight:600}.appearance-seg__btn:hover{color:var(--text-strong)}.appearance-seg__btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.appearance-seg__btn.is-active{border-color:var(--line-strong);background:var(--panel);color:var(--text-strong);box-shadow:0 1px 2px #10151d1a}.board-chips__name{min-width:44px;color:var(--muted);text-align:right;font-size:12px}.board-chips{align-items:center;gap:10px;display:inline-flex}.board-chip{border:1px solid var(--line-strong);background:linear-gradient(135deg, var(--panel) 52%, var(--accent) 52%);cursor:pointer;border-radius:8px;width:26px;height:26px;padding:0;position:relative}.board-chip:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.board-chip.is-active:after{content:"";border:2px solid var(--accent);border-radius:11px;position:absolute;inset:-5px}@media (width<=640px){.appearance-row{grid-template-columns:1fr;gap:10px}.appearance-row__control,.board-chips__name{text-align:left;justify-self:start}}.ws-intg-page{padding-bottom:60px}.ws-intg__app-icon{background:var(--surface);border:1px solid var(--line);width:36px;height:36px;color:var(--text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ws-intg__wizard{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:16px;margin:8px 0 16px;padding:18px 20px;display:flex}.ws-intg__wizard-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ws-intg__wizard-step{color:var(--muted);white-space:nowrap;padding-top:2px;font-size:11.5px;font-weight:600}.ws-intg__wizard-body{flex-direction:column;gap:14px;display:flex}.ws-intg__catalog{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.ws-intg__catalog-card{border:1px solid var(--line);text-align:left;cursor:pointer;color:inherit;background:0 0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;transition:border-color .12s,background .12s;display:flex}.ws-intg__catalog-card:hover{border-color:var(--accent);background:var(--hover,#7f7f7f0f)}.ws-intg__catalog-name{color:var(--text-strong,var(--text));font-size:14px;font-weight:600}.ws-intg__catalog-desc{color:var(--muted);font-size:12.5px;line-height:1.45}.ws-intg__chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.ws-intg__chip{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.ws-intg__chip-remove{width:16px;height:16px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.ws-intg__chip-remove:hover{color:var(--text);background:#7f7f7f2e}.ws-intg__member-results{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:2px;max-height:220px;margin:6px 0 0;padding:4px;list-style:none;display:flex;overflow-y:auto}.ws-intg__member-result{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.ws-intg__member-result:hover{background:var(--hover,#7f7f7f14)}.ws-intg__toggle{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.ws-intg__toggle input[type=checkbox]{flex-shrink:0;margin-top:3px}.ws-intg__toggle>span{flex-direction:column;gap:2px;display:flex}.ws-intg__panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.ws-intg__panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ws-intg__panel-title{color:var(--text-strong,var(--text));margin:0 0 3px;font-size:13px;font-weight:600}.ws-intg__panel-hint{color:var(--muted);max-width:560px;margin:0;font-size:12.5px;line-height:1.45}.ws-intg__panel-empty{color:var(--muted);margin:0;font-size:12.5px}.ws-intg__inline-form{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.ws-intg__item-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ws-intg__item-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 0;display:flex}.ws-intg__item-row:last-child{border-bottom:0}.ws-intg__item-row--stacked{flex-direction:column;align-items:stretch}.ws-intg__item-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.ws-intg__item-main{flex-direction:column;gap:4px;min-width:0;display:flex}.ws-intg__item-name{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-intg__item-meta{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.ws-intg__url{font-family:var(--mono,ui-monospace, monospace);font-size:11.5px}.ws-intg__item-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ws-intg__type-chips{flex-wrap:wrap;gap:5px;display:flex}.ws-intg__secret{border:1px solid color-mix(in srgb, var(--warn) 45%, var(--line));background:color-mix(in srgb, var(--warn) 7%, transparent);border-radius:8px;flex-direction:column;gap:6px;margin-top:6px;padding:10px 12px;display:flex}.ws-intg__secret-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:700}.ws-intg__secret-row{align-items:center;gap:8px;display:flex}.ws-intg__secret-row .ws-bots__reveal-input{flex:1;min-width:0}.ws-intg__confirm{border:1px solid color-mix(in srgb, var(--danger,#d33) 40%, var(--line));background:color-mix(in srgb, var(--danger,#d33) 6%, transparent);border-radius:8px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.ws-intg__confirm-text{color:var(--text);margin:0;font-size:13px;line-height:1.5}.ws-intg__event-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin-top:10px;display:grid}.ws-intg__event-option{border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.ws-intg__event-option.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ws-intg__deliveries{border-top:1px dashed var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.ws-intg__deliveries-scroll{border:1px solid var(--line);border-radius:8px;max-height:420px;overflow-y:auto}.ws-intg__delivery{border-bottom:1px solid var(--line)}.ws-intg__delivery:last-child{border-bottom:0}.ws-intg__delivery-row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:84px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;font-size:12.5px;display:grid}.ws-intg__delivery-row:hover{background:var(--hover,#7f7f7f0f)}.ws-intg__delivery-status{text-align:center;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.ws-intg__delivery-status--ok{background:color-mix(in srgb, var(--delivery-accent,#2a9d5c) 16%, transparent);color:var(--delivery-accent,#2a9d5c)}.ws-intg__delivery-status--fail{background:color-mix(in srgb, var(--danger,#d33) 14%, transparent);color:var(--danger,#d33)}.ws-intg__delivery-type{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.ws-intg__delivery-attempt,.ws-intg__delivery-time{color:var(--muted);white-space:nowrap;font-size:11.5px}.ws-intg__delivery-detail{flex-direction:column;gap:10px;padding:4px 12px 14px;display:flex}.ws-intg__delivery-block{flex-direction:column;gap:4px;display:flex}.ws-intg__delivery-block .ws-bots__reveal-snippet{max-height:260px;overflow:auto}.ws-intg__deliveries-more{justify-content:center;display:flex}.ws-intg__deliveries-retry{justify-content:space-between;align-items:center;gap:12px;display:flex}.ws-intg__section{flex-direction:column;gap:12px;margin-top:28px;display:flex}.ws-intg__section-title{color:var(--text-strong,var(--text));margin:0;font-size:15px;font-weight:600}.ws-intg__section-hint{color:var(--muted);margin:-6px 0 0;font-size:12.5px}.ws-bots__choice.is-disabled{opacity:.55;cursor:not-allowed}.settings-signout{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.settings-signout strong{color:var(--text-strong);display:block}.settings-signout p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.settings-signout .profile-actions{padding-top:0}.settings-password{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.settings-password__intro strong{color:var(--text-strong);display:block}.settings-password__intro p{color:var(--muted);margin:2px 0 0;font-size:12.5px} +@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-vietnamese-wght-normal.DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-mono-latin-wght-normal.XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-vietnamese-wght-normal.BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-ext-wght-normal.CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-wght-normal.DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-feature-settings:"ss01", "cv11";--font-display:"Bricolage Grotesque Variable", "Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--rail:var(--lightningcss-light,#e2e5ea)var(--lightningcss-dark,#0b0e14);--bg:var(--lightningcss-light,#edeff2)var(--lightningcss-dark,#0e1219);--panel:var(--lightningcss-light,#f8f9fb)var(--lightningcss-dark,#141926);--panel-2:var(--lightningcss-light,#e8ebef)var(--lightningcss-dark,#1b2232);--panel-3:var(--lightningcss-light,#dde1e7)var(--lightningcss-dark,#232c3f);--surface:var(--panel-2);--hover:var(--lightningcss-light,#10151d0d)var(--lightningcss-dark,#d6e4ff0b);--hover-strong:var(--lightningcss-light,#10151d14)var(--lightningcss-dark,#d6e4ff14);--line:var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#bed2ff17);--line-strong:var(--lightningcss-light,#10151d2b)var(--lightningcss-dark,#bed2ff29);--text:var(--lightningcss-light,#232a35)var(--lightningcss-dark,#dbe2ec);--text-strong:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#f4f7fb);--muted:var(--lightningcss-light,#5d6878)var(--lightningcss-dark,#8a95a8);--muted-2:var(--lightningcss-light,#8b94a3)var(--lightningcss-dark,#5c6577);--accent:var(--lightningcss-light,#0080c4)var(--lightningcss-dark,#41c6ff);--accent-hover:var(--lightningcss-light,#006aa6)var(--lightningcss-dark,#6ad3ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--accent-2:var(--lightningcss-light,#f56a1d)var(--lightningcss-dark,#ff9550);--accent-soft:var(--lightningcss-light,#0080c421)var(--lightningcss-dark,#41c6ff26);--brand-a:var(--lightningcss-light,#0072b0)var(--lightningcss-dark,#41c6ff);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--activity-accent:var(--lightningcss-light,#c07e0a)var(--lightningcss-dark,#e8b23e);--activity-accent-soft:var(--lightningcss-light,#c07e0a17)var(--lightningcss-dark,#e8b23e1a);--delivery-accent:var(--lightningcss-light,#5558d9)var(--lightningcss-dark,#8b8df2);--delivery-accent-soft:var(--lightningcss-light,#5558d90f)var(--lightningcss-dark,#8b8df214);--tool-call-bg:var(--lightningcss-light,#5558d917)var(--lightningcss-dark,#8b8df21f);--tool-call-bg-hover:var(--lightningcss-light,#5558d924)var(--lightningcss-dark,#8b8df22e);--accent-glow:0 0 0 1px color-mix(in srgb, var(--accent) 32%, transparent), 0 8px 30px -12px color-mix(in srgb, var(--accent) 48%, transparent);--success:var(--lightningcss-light,#14876a)var(--lightningcss-dark,#30c48d);--warn:#e8a33e;--danger:var(--lightningcss-light,#d13438)var(--lightningcss-dark,#ff6d68);--scrollbar:var(--lightningcss-light,#10151d2e)var(--lightningcss-dark,#bed2ff1f);--scrollbar-hover:var(--lightningcss-light,#10151d4d)var(--lightningcss-dark,#bed2ff38);--shadow:0 24px 60px -22px var(--lightningcss-light,#10151d4d)var(--lightningcss-dark,#02050ab3);--tooltip-bg:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#2b3448);--tooltip-fg:var(--lightningcss-light,#f0f4fa)var(--lightningcss-dark,#f4f7fb);--key-edge:0 1px 0 var(--line-strong), 0 2px 0 var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#00000073);--key-edge-pressed:0 1px 0 var(--line-strong);--radius-sm:4px;--radius:6px;--radius-lg:10px;--radius-xl:14px;--safe-area-top:env(safe-area-inset-top,0px);--safe-area-right:env(safe-area-inset-right,0px);--safe-area-bottom:env(safe-area-inset-bottom,0px);--safe-area-left:env(safe-area-inset-left,0px);background:var(--bg);color:var(--text);font-family:Geist Variable,Inter,SF Pro Text,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-color-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-color-mode=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-board=ember]{--rail:var(--lightningcss-light,#e9e1d7)var(--lightningcss-dark,#16110d);--bg:var(--lightningcss-light,#f7f3ed)var(--lightningcss-dark,#1a1511);--panel:var(--lightningcss-light,#fffaf2)var(--lightningcss-dark,#211a15);--panel-2:var(--lightningcss-light,#efe7dc)var(--lightningcss-dark,#29211a);--panel-3:var(--lightningcss-light,#e4dbcf)var(--lightningcss-dark,#322820);--hover:var(--lightningcss-light,#1020270d)var(--lightningcss-dark,#fff4eb0b);--hover-strong:var(--lightningcss-light,#10202714)var(--lightningcss-dark,#fff4eb14);--line:var(--lightningcss-light,#1020271a)var(--lightningcss-dark,#ffece014);--line-strong:var(--lightningcss-light,#10202729)var(--lightningcss-dark,#ffece024);--text:var(--lightningcss-light,#22201d)var(--lightningcss-dark,#ece4da);--text-strong:var(--lightningcss-light,#11100e)var(--lightningcss-dark,#fbf6f0);--muted:var(--lightningcss-light,#6f675f)var(--lightningcss-dark,#a4917f);--muted-2:var(--lightningcss-light,#958b80)var(--lightningcss-dark,#6f6152);--accent:var(--lightningcss-light,#c94a32)var(--lightningcss-dark,#f0714c);--accent-hover:var(--lightningcss-light,#b13c26)var(--lightningcss-dark,#ff8560);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#241009);--accent-2:var(--lightningcss-light,#006d77)var(--lightningcss-dark,#45b8ac);--accent-soft:var(--lightningcss-light,#c94a3224)var(--lightningcss-dark,#f0714c2b);--brand-a:var(--lightningcss-light,#c64b32)var(--lightningcss-dark,#f0714c);--brand-b:var(--lightningcss-light,#c8425a)var(--lightningcss-dark,#d84a63);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#11100e);--scrollbar:var(--lightningcss-light,#1020272e)var(--lightningcss-dark,#ffece01a);--scrollbar-hover:var(--lightningcss-light,#1020274d)var(--lightningcss-dark,#ffece033);--shadow:0 24px 60px -22px var(--lightningcss-light,#10202752)var(--lightningcss-dark,#080402a6)}[data-board=moss]{--rail:var(--lightningcss-light,#dfe5e0)var(--lightningcss-dark,#0a100d);--bg:var(--lightningcss-light,#ecf0ed)var(--lightningcss-dark,#0e1512);--panel:var(--lightningcss-light,#f7f9f7)var(--lightningcss-dark,#131b16);--panel-2:var(--lightningcss-light,#e6ebe7)var(--lightningcss-dark,#1a241d);--panel-3:var(--lightningcss-light,#dbe2dc)var(--lightningcss-dark,#223026);--hover:var(--lightningcss-light,#0f17120d)var(--lightningcss-dark,#d6ffe40b);--hover-strong:var(--lightningcss-light,#0f171214)var(--lightningcss-dark,#d6ffe414);--line:var(--lightningcss-light,#0f17121a)var(--lightningcss-dark,#c8ffdc17);--line-strong:var(--lightningcss-light,#0f17122b)var(--lightningcss-dark,#c8ffdc29);--text:var(--lightningcss-light,#212b24)var(--lightningcss-dark,#dbe7de);--text-strong:var(--lightningcss-light,#0f1712)var(--lightningcss-dark,#f3faf4);--muted:var(--lightningcss-light,#5c6b60)var(--lightningcss-dark,#8fa295);--muted-2:var(--lightningcss-light,#8a9a8e)var(--lightningcss-dark,#5d6e62);--accent:var(--lightningcss-light,#177a50)var(--lightningcss-dark,#3ddc97);--accent-hover:var(--lightningcss-light,#0f6a44)var(--lightningcss-dark,#63e6ab);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#05140c);--accent-2:var(--lightningcss-light,#d97f26)var(--lightningcss-dark,#ffab5e);--accent-soft:var(--lightningcss-light,#177a5021)var(--lightningcss-dark,#3ddc9726);--brand-a:var(--lightningcss-light,#177a50)var(--lightningcss-dark,#3ddc97);--brand-b:var(--lightningcss-light,#0e7490)var(--lightningcss-dark,#2bb3a3);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#05140c);--scrollbar:var(--lightningcss-light,#0f17122e)var(--lightningcss-dark,#c8ffdc1f);--scrollbar-hover:var(--lightningcss-light,#0f17124d)var(--lightningcss-dark,#c8ffdc38)}[data-board=iris]{--rail:var(--lightningcss-light,#e2e2ea)var(--lightningcss-dark,#0d0c15);--bg:var(--lightningcss-light,#eeeef4)var(--lightningcss-dark,#12111c);--panel:var(--lightningcss-light,#f8f8fb)var(--lightningcss-dark,#181726);--panel-2:var(--lightningcss-light,#e9e9f0)var(--lightningcss-dark,#201e33);--panel-3:var(--lightningcss-light,#dedee8)var(--lightningcss-dark,#2a2742);--hover:var(--lightningcss-light,#1213270d)var(--lightningcss-dark,#e0dcff0b);--hover-strong:var(--lightningcss-light,#12132714)var(--lightningcss-dark,#e0dcff14);--line:var(--lightningcss-light,#1213271a)var(--lightningcss-dark,#d2cdff17);--line-strong:var(--lightningcss-light,#1213272b)var(--lightningcss-dark,#d2cdff29);--text:var(--lightningcss-light,#26283a)var(--lightningcss-dark,#e0dff0);--text-strong:var(--lightningcss-light,#121327)var(--lightningcss-dark,#f6f5fd);--muted:var(--lightningcss-light,#61637a)var(--lightningcss-dark,#918fa9);--muted-2:var(--lightningcss-light,#9092a8)var(--lightningcss-dark,#605e78);--accent:var(--lightningcss-light,#7048d9)var(--lightningcss-dark,#a78bfa);--accent-hover:var(--lightningcss-light,#5f39c2)var(--lightningcss-dark,#bda4ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#150f26);--accent-2:var(--lightningcss-light,#d94f8a)var(--lightningcss-dark,#ff8bb3);--accent-soft:var(--lightningcss-light,#7048d921)var(--lightningcss-dark,#a78bfa29);--brand-a:var(--lightningcss-light,#7048d9)var(--lightningcss-dark,#a78bfa);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#150f26);--scrollbar:var(--lightningcss-light,#1213272e)var(--lightningcss-dark,#d2cdff1f);--scrollbar-hover:var(--lightningcss-light,#1213274d)var(--lightningcss-dark,#d2cdff38)}[data-board=signal]{--rail:var(--lightningcss-light,#e2e5ea)var(--lightningcss-dark,#0b0e14);--bg:var(--lightningcss-light,#edeff2)var(--lightningcss-dark,#0e1219);--panel:var(--lightningcss-light,#f8f9fb)var(--lightningcss-dark,#141926);--panel-2:var(--lightningcss-light,#e8ebef)var(--lightningcss-dark,#1b2232);--panel-3:var(--lightningcss-light,#dde1e7)var(--lightningcss-dark,#232c3f);--hover:var(--lightningcss-light,#10151d0d)var(--lightningcss-dark,#d6e4ff0b);--hover-strong:var(--lightningcss-light,#10151d14)var(--lightningcss-dark,#d6e4ff14);--line:var(--lightningcss-light,#10151d1a)var(--lightningcss-dark,#bed2ff17);--line-strong:var(--lightningcss-light,#10151d2b)var(--lightningcss-dark,#bed2ff29);--text:var(--lightningcss-light,#232a35)var(--lightningcss-dark,#dbe2ec);--text-strong:var(--lightningcss-light,#10151d)var(--lightningcss-dark,#f4f7fb);--muted:var(--lightningcss-light,#5d6878)var(--lightningcss-dark,#8a95a8);--muted-2:var(--lightningcss-light,#8b94a3)var(--lightningcss-dark,#5c6577);--accent:var(--lightningcss-light,#0080c4)var(--lightningcss-dark,#41c6ff);--accent-hover:var(--lightningcss-light,#006aa6)var(--lightningcss-dark,#6ad3ff);--accent-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420);--accent-2:var(--lightningcss-light,#f56a1d)var(--lightningcss-dark,#ff9550);--accent-soft:var(--lightningcss-light,#0080c421)var(--lightningcss-dark,#41c6ff26);--brand-a:var(--lightningcss-light,#0072b0)var(--lightningcss-dark,#41c6ff);--brand-b:var(--lightningcss-light,#2653e8)var(--lightningcss-dark,#6d8bff);--brand-contrast:var(--lightningcss-light,#fff)var(--lightningcss-dark,#061420)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:radial-gradient(1000px 600px at 0% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 60%), radial-gradient(900px 700px at 100% 100%, color-mix(in srgb, var(--delivery-accent) 5%, transparent), transparent 60%), var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,textarea{font:inherit;color:inherit}code,pre,kbd,samp{font-variant-ligatures:none}button{cursor:pointer}input,textarea{background:0 0;border:0;outline:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar);background-clip:content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover);background-clip:content-box}.auth-shell{min-height:100dvh;padding:calc(32px + var(--safe-area-top)) calc(32px + var(--safe-area-right)) calc(32px + var(--safe-area-bottom)) calc(32px + var(--safe-area-left));background:radial-gradient(color-mix(in srgb, var(--text) 6%, transparent) 1px, transparent 1.5px) 0 0 / 18px 18px, radial-gradient(700px 500px at 30% 20%, color-mix(in srgb, var(--brand-a) 14%, transparent), transparent 60%), radial-gradient(700px 500px at 80% 90%, color-mix(in srgb, var(--brand-b) 10%, transparent), transparent 60%), var(--bg);place-items:center;display:grid}.auth-panel{border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:linear-gradient(180deg, #ffffff0a, #fff0) var(--panel);width:min(100%,440px);box-shadow:var(--key-edge), var(--shadow);gap:22px;padding:36px;display:grid}.auth-brand{align-items:center;gap:12px;display:flex}.auth-brand .mark{box-shadow:inset 0 0 0 1px #bed2ff21, var(--key-edge), 0 10px 24px -8px color-mix(in srgb, var(--brand-b) 65%, transparent)}.auth-brand .brand-text strong{color:var(--text-strong);letter-spacing:-.01em;display:block}.auth-brand .brand-text span{color:var(--muted);font-size:12px;display:block}.auth-copy{gap:8px;margin-top:8px;display:grid}.auth-copy h1{letter-spacing:-.02em;color:var(--text-strong);font-size:28px;font-family:var(--font-display);margin:0;font-weight:700}.auth-copy p{color:var(--muted);margin:0;line-height:1.5}.github-login{color:#fff;background:#0d1117;border:1px solid #2b2f36;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:46px;font-weight:600;text-decoration:none;transition:transform 80ms,background .12s,border-color .12s;display:inline-flex}.github-login:hover{background:#161b22;border-color:#3f4750;transform:translateY(-1px)}.openclaw-login{min-height:46px;color:var(--text-strong);border:1px solid var(--muted-2);background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:10px;font-weight:600;text-decoration:none;transition:transform 80ms,background .12s,border-color .12s;display:inline-flex}.openclaw-login:hover{background:color-mix(in srgb, var(--text-strong) 6%, transparent);border-color:var(--muted);transform:translateY(-1px)}.auth-form{gap:14px;display:grid}.auth-submit{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));background:var(--accent);min-height:46px;color:var(--accent-contrast);cursor:pointer;border-radius:12px;font-weight:700;transition:transform 80ms,background .12s}.auth-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.auth-submit:disabled{cursor:default;opacity:.58;transform:none}.auth-submit-quiet{border-color:var(--line-strong);background:var(--panel-2);min-height:38px;color:var(--text)}.auth-submit-quiet:hover:not(:disabled){background:var(--hover)}.auth-divider{color:var(--muted-2);align-items:center;gap:12px;margin:0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-error{border:1px solid color-mix(in srgb, var(--danger) 45%, var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--text);margin:0;padding:10px 12px;font-size:13px}.auth-magic summary{cursor:pointer;color:var(--muted);font-size:12px}.auth-magic[open] summary{margin-bottom:12px}.auth-foot{color:var(--muted-2);text-align:center;margin:0;font-size:12px}.shell{grid-template-rows:minmax(0,1fr);grid-template-columns:72px 260px minmax(0,1fr) 0;height:100dvh;min-height:100dvh;transition:grid-template-columns .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:clip}.shell.thread-open,.shell.search-open{grid-template-columns:72px 260px minmax(0,1fr) minmax(340px,28vw)}.shell.artifact-open{grid-template-columns:72px 260px minmax(0,1fr) minmax(460px,42vw)}.shell.sidebar-collapsed{grid-template-columns:72px 0 minmax(0,1fr) 0}.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:72px 0 minmax(0,1fr) minmax(340px,28vw)}.shell.sidebar-collapsed.artifact-open{grid-template-columns:72px 0 minmax(0,1fr) minmax(460px,42vw)}.shell>.thread,.shell>.search-results,.shell>.artifact-viewer{grid-area:1/4}.shell.desktop-shell{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);grid-template-rows:52px minmax(0,1fr)}.desktop-shell>.guild-rail,.desktop-shell>.sidebar{background:0 0;border-right:0}.desktop-shell>.sidebar{grid-template-rows:minmax(0,1fr) auto}@media (width<=820px){.desktop-shell>.guild-rail{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);border-right:1px solid var(--line)}.desktop-shell>.sidebar{background:var(--panel);border-right:1px solid var(--line)}}.desktop-shell>.timeline{border-top:1px solid var(--line);border-left:1px solid var(--line);border-top-left-radius:12px}.desktop-shell:not(.thread-open):not(.search-open):not(.artifact-open)>.timeline{border-top-right-radius:12px}.desktop-shell>.thread,.desktop-shell>.search-results,.desktop-shell>.artifact-viewer{border-top:1px solid var(--line);border-top-right-radius:12px}.desktop-shell>.desktop-titlebar{grid-area:1/1/auto/-1}.desktop-shell>.guild-rail,.desktop-shell>.sidebar,.desktop-shell>.timeline,.desktop-shell>.thread,.desktop-shell>.search-results,.desktop-shell>.artifact-viewer{grid-row:2}.desktop-shell .mobile-nav-toggle{display:none}.desktop-auth-titlebar{z-index:10;-webkit-app-region:drag;height:52px;position:fixed;inset:0 0 auto}.desktop-titlebar{z-index:8;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;background:0 0;align-items:center;min-width:0;height:52px;padding:0;display:flex;position:relative}.desktop-titlebar-safe-area{-webkit-app-region:drag;align-items:center;width:100%;min-width:0;height:100%;padding:0 14px;display:flex;position:relative}.desktop-titlebar[data-platform=darwin] .desktop-titlebar-safe-area{padding-left:78px}.desktop-titlebar[data-platform=win32] .desktop-titlebar-safe-area,.desktop-titlebar[data-platform=linux] .desktop-titlebar-safe-area{left:env(titlebar-area-x,0px);width:env(titlebar-area-width,calc(100% - 148px));position:absolute}.desktop-titlebar-leading{-webkit-app-region:no-drag;align-items:center;gap:9px;min-width:0;max-width:max(150px,50% - 300px);display:flex;overflow:hidden}.desktop-titlebar button,.desktop-external-link{color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;display:grid}.desktop-titlebar button:hover,.desktop-external-link:hover{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.desktop-external-link{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--muted);flex:0 0 28px;place-items:center;text-decoration:none;display:grid}.desktop-titlebar-leading>.desktop-sidebar-toggle{border-radius:8px;width:30px;height:30px}.desktop-titlebar-workspace{min-width:36px;max-width:190px;color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;border-radius:8px;flex:0 auto;padding:5px 9px;font-size:13px;font-weight:650;overflow:hidden}.desktop-titlebar-channel{min-width:30px;max-width:230px;color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;margin:0;font-size:13px;font-weight:650;overflow:hidden}.desktop-titlebar-channel.with-glyph:first-letter{color:var(--accent);margin-right:1px}.desktop-titlebar-divider{flex:none}.desktop-titlebar-status{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:6px;margin-left:auto;font-size:11px;display:inline-flex}.desktop-titlebar-status:before{content:"";background:var(--muted-2);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite presence-pulse}.desktop-titlebar-actions{-webkit-app-region:no-drag;flex:none;align-items:center;margin-left:auto;display:flex}.desktop-titlebar-actions button{border-radius:8px;width:30px;height:30px}.desktop-titlebar-actions button:disabled{cursor:wait;opacity:.55}.desktop-titlebar-actions button.active{background:var(--accent-soft);color:var(--accent)}.desktop-titlebar-actions+.desktop-titlebar-status{margin-left:8px}@media (prefers-reduced-motion:reduce){.desktop-titlebar-status:before{animation:none}}.desktop-titlebar-search.search{border-color:var(--line-strong);background:color-mix(in srgb, var(--panel-2) 84%, transparent);-webkit-app-region:no-drag;width:clamp(220px,100vw - 700px,520px);height:32px;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 1px #ffffff09}.desktop-titlebar-search.search:focus-within{border-color:color-mix(in srgb, var(--accent) 66%, var(--line));background:var(--panel-2);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent)}.timeline{background:var(--bg);isolation:isolate;flex-direction:column;min-width:0;display:flex;overflow:hidden}.timeline>*{flex-shrink:0;min-width:0}.timeline>.messages{flex:1 1 0;min-height:0}.topbar{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--bg);align-items:center;gap:14px;min-height:60px;padding:12px 20px;display:flex}.topbar-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.topbar-title h1{letter-spacing:-.01em;color:var(--text-strong);font-size:16px;font-weight:650;font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.topbar-title h1.with-glyph:first-letter{color:var(--accent);margin-right:1px}.topbar-divider{background:var(--line-strong);width:1px;height:18px;margin:0 6px}.topbar-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.search{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);width:min(280px,30vw);height:34px;color:var(--muted);align-items:center;gap:8px;padding:0 10px;transition:border-color .12s,background .12s;display:flex}.search:focus-within{border-color:var(--accent);background:var(--panel-2);color:var(--text)}.search input{min-width:0;height:100%;color:var(--text);flex:1}.search input::placeholder{color:var(--muted)}.search-clear{background:var(--panel-3);width:18px;height:18px;color:var(--muted);border:0;border-radius:50%;place-items:center;font-size:14px;line-height:1;display:grid}.search-clear:hover{background:var(--accent);color:var(--accent-contrast)}.search-submit{background:var(--accent-soft);height:22px;color:var(--accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:5px;padding:0 8px;font-size:10px;font-weight:600}.search-submit:hover{background:var(--accent);color:var(--accent-contrast)}.topbar-actions{align-items:center;gap:6px;display:inline-flex}.topbar-actions button,.topbar-actions a{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel);width:32px;height:32px;color:var(--muted);box-shadow:var(--key-edge);place-items:center;text-decoration:none;transition:background .12s,color .12s,border-color .12s,box-shadow .12s,transform 80ms;display:grid}.topbar-actions button:hover,.topbar-actions a:hover,.topbar-actions button.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));color:var(--accent)}.topbar-actions button:active,.topbar-actions a:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.notif-toggle{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;margin-left:4px;display:inline-flex}.notif-toggle:hover{background:var(--accent-soft);color:var(--accent)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.search-results{border-left:1px solid var(--line);background:var(--panel);opacity:1;grid-template-rows:auto auto minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(0)}.search-results.covered{opacity:0;pointer-events:none}.search-results-head{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--panel);justify-content:space-between;align-items:center;min-height:60px;padding:10px 16px;display:flex}.search-results-head>div{min-width:0}.search-results-head p{color:var(--muted);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;margin:0 0 2px;font-size:10px;font-weight:600}.search-results-head strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.search-results-head button{background:var(--panel-2);width:30px;height:30px;color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;font-size:19px;line-height:1;display:grid}.search-results-head button:hover{background:var(--hover);color:var(--text)}.search-results-summary{color:var(--muted);padding:12px 16px 8px;font-size:12px;font-weight:600}.search-results-scroll{min-height:0;padding:0 8px 16px;overflow-y:auto}.search-result-list{margin:0;padding:0;list-style:none}.search-result{color:var(--text);border-radius:var(--radius);text-align:left;background:0 0;border:0;align-items:flex-start;gap:10px;width:100%;padding:10px 8px;display:flex}.search-result:hover{background:var(--hover)}.search-result.is-active{background:color-mix(in srgb, var(--accent) 10%, transparent)}.search-result:focus-visible,.search-results-head button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.search-result .dm-avatar{width:30px;height:30px;font-size:13px}.search-result-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.search-result-meta{align-items:baseline;gap:8px;min-width:0;display:flex}.search-result-meta strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.search-result-handle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.search-result-meta time{color:var(--muted);flex:none;margin-left:auto;font-size:11px}.search-result-snippet{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.search-result-snippet mark{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--text-strong);border-radius:2px;font-weight:650}.search-result-context{min-width:0;color:var(--muted-2);align-items:center;gap:10px;margin-top:1px;font-size:11px;display:flex}.search-result-context:empty{display:none}.search-result-where{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.search-result-thread{color:var(--accent);flex:none;align-items:center;gap:4px;font-weight:600;display:inline-flex}.search-load-more{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);width:calc(100% - 16px);color:var(--text);margin:8px auto 0;padding:8px 12px;font-size:12px;font-weight:600;display:block}.search-load-more:hover:not(:disabled){background:var(--hover)}.search-load-more:disabled{color:var(--muted)}.search-load-more:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.search-end{color:var(--muted-2);text-align:center;padding:14px 8px 4px;font-size:11px}.search-foot-error{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 8%, transparent);color:var(--text);justify-content:space-between;align-items:center;gap:10px;margin:8px 8px 0;padding:8px 12px;font-size:12px;display:flex}.search-foot-error p{min-width:0;margin:0}.search-foot-error button{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);color:var(--text);flex:none;padding:4px 10px;font-size:12px;font-weight:600}.search-foot-error button:hover{background:var(--hover)}.search-state{color:var(--muted);text-align:center;justify-items:center;padding:56px 24px;display:grid}.search-state-icon{border:1px solid var(--line-strong);background:var(--panel-2);width:44px;height:44px;color:var(--muted-2);border-radius:50%;place-items:center;margin-bottom:14px;font-size:23px;display:grid}.search-state strong{color:var(--text-strong);font-size:14px}.search-state p{margin:5px 0 0;font-size:12px}.search-state-loading{grid-template-columns:repeat(3,7px);justify-content:center;gap:6px}.search-state-loading span{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite pulse}.search-state-loading span:nth-child(2){animation-delay:.12s}.search-state-loading span:nth-child(3){animation-delay:.24s}.guild-rail{background:radial-gradient(color-mix(in srgb, var(--text) 7%, transparent) 1px, transparent 1.5px) 0 0 / 14px 14px, var(--rail);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:8px;padding:14px 0;display:flex;position:relative}.guild-rail .guild{background:var(--panel);width:48px;height:48px;color:var(--text);border:1px solid var(--line-strong);letter-spacing:-.02em;box-shadow:var(--key-edge);border-radius:12px;place-items:center;font-size:14px;font-weight:700;text-decoration:none;transition:border-color .12s,background .12s,transform .12s,box-shadow .12s;display:grid;position:relative}.guild-rail .guild:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));color:var(--accent);box-shadow:var(--key-edge), 0 6px 16px -8px color-mix(in srgb, var(--accent) 45%, transparent);transform:translateY(-1px)}.guild-rail .guild:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.guild-rail .guild.home{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));border-color:color-mix(in srgb, var(--brand-b) 55%, var(--line-strong));color:var(--brand-contrast);font-weight:800;font-family:var(--font-display)}.guild-rail .guild.home:hover{color:var(--brand-contrast);transform:translateY(-1px)}.guild-rail .guild.home>span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 4px;overflow:hidden}.guild-rail .guild.home.home--mark{border-color:color-mix(in srgb, #41c6ff 35%, var(--line-strong));background:#141926;padding:0}.guild-rail .guild.home.home--mark .keystroke-mark{border-radius:inherit;width:100%;height:100%}.guild-rail .guild.home:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.guild-rail .guild__image{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.guild-rail .guild.add{color:var(--success);border:1px dashed color-mix(in srgb, var(--success) 45%, transparent);background:0 0}.guild-rail .guild.add:hover{background:color-mix(in srgb, var(--success) 14%, transparent);color:var(--success);border-style:solid;border-color:var(--success)}.guild-divider{background:var(--line-strong);width:36px;height:1px;margin:4px 0}.guild-list{flex-direction:column;flex:auto;align-items:center;gap:8px;min-height:0;display:flex;overflow-y:auto}.guild-wrap{position:relative}.guild-wrap:before{content:"";background:var(--accent);opacity:0;border-radius:0 4px 4px 0;width:4px;height:28px;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:-14px;transform:translateY(-50%)scaleY(.2)}.guild-wrap:hover:before{opacity:.6;transform:translateY(-50%)scaleY(.5)}.guild-wrap.active:before{opacity:1;transform:translateY(-50%)scaleY(1)}.guild-wrap.active .guild{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong));color:var(--accent-contrast)}.guild-create{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow);z-index:20;margin-left:8px;padding:8px;position:absolute;top:14px;left:100%}.guild-create .profile-status{max-width:200px}.guild-create input{border-radius:var(--radius-sm);background:var(--panel-2);width:200px;height:32px;color:var(--text);padding:0 10px}.sidebar{background:var(--panel);border-right:1px solid var(--line);grid-template-rows:auto minmax(0,1fr) auto;min-width:0;transition:opacity .16s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden}.sidebar-collapsed .sidebar{opacity:0;pointer-events:none;transform:translate(-14px)}.workspace-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:6px;min-height:60px;padding:14px 16px;display:flex}.workspace-header-icon{object-fit:cover;background:var(--panel-2);border-radius:8px;flex:none;width:28px;height:28px}.workspace-header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.workspace-menu{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:10px;margin-left:-8px;padding:5px 8px;transition:background .12s;display:flex}.workspace-menu:hover{background:var(--panel-2)}.workspace-menu-caret{color:var(--muted);flex:none;transition:color .12s}.workspace-menu:hover .workspace-menu-caret{color:var(--text-strong)}.sidebar-collapse{background:var(--panel-2);width:30px;height:30px;color:var(--muted);border:0;border-radius:8px;place-items:center;transition:color .12s,background .12s,transform .12s;display:grid}.sidebar-collapse:hover{background:var(--panel-3);color:var(--text-strong);transform:translate(-1px)}.workspace-name{flex-direction:column;gap:2px;min-width:0;display:flex}.workspace-name strong{min-width:0;color:var(--text-strong);letter-spacing:-.01em;font-size:15px;font-family:var(--font-display);align-items:center;gap:5px;font-weight:650;display:flex}.workspace-name-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.workspace-name .presence{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.workspace-name .presence:before{content:"";background:var(--muted-2);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite presence-pulse}@keyframes presence-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.workspace-name .presence:before{animation:none}}.sidebar-scroll{padding:12px 8px 16px;overflow-y:auto}.nav-section+.nav-section{margin-top:12px}.section-title{border-radius:var(--radius-sm);background:0 0;border:0;align-items:center;gap:4px;width:100%;padding:2px 4px;display:flex}.nav-section.collapsed+.nav-section{margin-top:4px}.section-toggle{border-radius:var(--radius-sm);min-width:0;min-height:28px;color:var(--muted);text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.09em;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:6px;padding:4px;font-size:10px;font-weight:600;display:flex}.section-toggle:hover{color:var(--text);background:var(--hover)}.section-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.section-toggle .caret{opacity:.7;font-size:10px;transition:transform .14s}.section-toggle[aria-expanded=false] .caret{transform:rotate(-90deg)}.section-toggle .label{text-align:left;flex:1}.section-title .add-button{background:var(--hover-strong);width:18px;height:18px;color:var(--text);border:0;border-radius:4px;flex:none;place-items:center;padding:0;font-size:14px;font-weight:700;line-height:1;display:grid}.section-title .add-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.section-title:hover .add-button{background:var(--accent);color:var(--accent-contrast)}.nav-list{flex-direction:column;gap:1px;margin-top:4px;display:flex}.nav-list[hidden]{display:none}.channel-subgroup{gap:1px;margin-top:6px;display:grid}.channel-subgroup-toggle{border-radius:var(--radius-sm);width:100%;min-height:26px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.06em;text-align:left;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:6px;padding:4px 9px 4px 28px;font-size:10px;font-weight:600;display:flex}.channel-subgroup-toggle:hover,.channel-subgroup-toggle:focus-visible{background:var(--hover);color:var(--text);outline:none}.channel-subgroup-toggle .caret{opacity:.7;font-size:10px;transition:transform .14s}.channel-subgroup-toggle[aria-expanded=false] .caret{transform:rotate(-90deg)}.channel-subgroup-count{color:var(--muted-2);font-variant-numeric:tabular-nums;margin-left:auto}.channel-subgroup-list{gap:1px;display:grid}.channel-subgroup-list[hidden]{display:none}.archived-channel-group{border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);margin-top:10px;padding-top:6px}@media (prefers-reduced-motion:reduce){.section-toggle .caret{transition:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.channel-row{border-radius:var(--radius-sm);align-items:center;display:flex;position:relative}.channel-row .nav-item{flex:1;min-width:0}.channel-row.subdued .nav-item:not(.active){color:var(--muted-2)}.managed-channel-marker{color:var(--muted-2);flex:none;place-items:center;display:inline-grid}.nav-item.active .managed-channel-marker,.nav-item:hover .managed-channel-marker{color:var(--accent)}.channel-row.reorderable .nav-item{padding-left:2px}.channel-drag-handle{border-radius:var(--radius-sm);color:var(--muted-2);cursor:grab;opacity:0;background:0 0;border:0;flex:0 0 24px;align-self:stretch;place-items:center;display:grid}.channel-row:hover .channel-drag-handle,.channel-drag-handle:focus-visible{opacity:1}.channel-drag-handle:hover{color:var(--text);background:var(--hover)}.channel-drag-handle:active{cursor:grabbing}.channel-drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.channel-drag-handle svg{fill:currentColor}.channel-move-menu{z-index:4;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);min-width:112px;box-shadow:var(--shadow);padding:4px;display:grid;position:absolute;top:calc(100% + 2px);left:0}.channel-move-menu button{color:var(--text);text-align:left;background:0 0;border:0;border-radius:4px;padding:6px 8px}.channel-move-menu button:hover:not(:disabled),.channel-move-menu button:focus-visible{background:var(--hover-strong);outline:none}.channel-move-menu button:disabled{color:var(--muted-2);cursor:default}.channel-row.dragging{opacity:.45}.channel-row.drop-before:before,.channel-row.drop-after:after{content:"";z-index:1;background:var(--accent);pointer-events:none;border-radius:1px;height:2px;position:absolute;left:4px;right:4px}.channel-row.drop-before:before{top:-1px}.channel-row.drop-after:after{bottom:-1px}@media (hover:none){.channel-drag-handle{opacity:1}}@media (prefers-reduced-motion:reduce){.channel-subgroup-toggle .caret{transition:none}}.nav-item{border-radius:var(--radius-sm);width:100%;color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:8px;min-height:30px;padding:6px 10px;text-decoration:none;transition:background .1s,color .1s;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item:focus{outline:none}.nav-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.nav-item.active{background:var(--accent-soft);color:var(--text-strong);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}.nav-item.has-unread{color:var(--text-strong);font-weight:600}.nav-item.has-unread .hash{color:var(--text-strong)}.unread-badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-contrast,white);text-align:center;letter-spacing:.01em;border-radius:9px;flex-shrink:0;padding:0 6px;font-size:11px;font-weight:700;line-height:18px}.nav-item .hash{color:var(--muted);text-align:center;width:14px;font-weight:600}.nav-item.active .hash{color:var(--accent)}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;overflow:hidden}.dm-row{grid-template-columns:minmax(0,1fr) 24px;align-items:center;gap:2px;display:grid;position:relative}.dm-row .nav-item{min-width:0}.dm-actions-trigger{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--muted-2);opacity:0;background:0 0;border:0;place-items:center;font-size:18px;font-weight:700;line-height:1;display:grid}.dm-row:hover .dm-actions-trigger,.dm-row:focus-within .dm-actions-trigger,.dm-row.active .dm-actions-trigger{opacity:1}.dm-actions-trigger:hover,.dm-actions-trigger:focus-visible,.dm-actions-trigger[aria-expanded=true]{background:var(--hover);color:var(--text);outline:none}.dm-actions-menu{z-index:30;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel-2);min-width:164px;box-shadow:var(--shadow);padding:4px;position:absolute;top:28px;right:0}.dm-actions-item{width:100%;min-height:30px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:13px}.dm-actions-item:hover,.dm-actions-item:focus-visible{background:var(--hover);color:var(--text-strong);outline:none}.dm-undo{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--muted);align-items:center;gap:8px;margin:6px 8px 2px;padding:6px 8px;font-size:12px;display:flex}.dm-undo span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dm-undo button{background:var(--hover);color:var(--text);border:0;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700}.dm-undo button:hover,.dm-undo button:focus-visible{background:var(--accent);color:var(--accent-contrast);outline:none}.nav-empty{color:var(--muted-2);margin:4px 8px;font-size:12px}.dm-avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid;overflow:hidden}.dm-avatar img,.avatar img{object-fit:cover;width:100%;height:100%;display:block}.presence-dot{background:var(--muted-2);border-radius:50%;flex-shrink:0;width:8px;height:8px}.presence-dot.active{background:var(--success);box-shadow:0 0 0 2px var(--panel)}.inline-create{grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:6px 4px 2px;display:grid}.inline-create input{border-radius:var(--radius-sm);background:var(--panel-2);width:100%;min-width:0;height:30px;color:var(--text);border:1px solid var(--line);padding:0 10px}.inline-create input:focus{border-color:var(--accent);background:var(--panel-3)}.inline-create button.ghost,button.ghost{border-radius:var(--radius-sm);background:var(--panel-3);width:30px;height:30px;color:var(--muted);border:0;place-items:center;padding:0;font-size:14px;font-weight:600;display:grid}.inline-create button.ghost:hover{background:var(--accent);color:var(--accent-contrast)}.user-card{background:var(--panel-2);border-top:1px solid var(--line);width:100%;color:inherit;text-align:left;cursor:pointer;border-bottom:0;border-left:0;border-right:0;align-items:center;gap:10px;padding:10px 12px;transition:background .12s;display:flex}.user-card:hover{background:var(--panel-3)}.user-card .dm-avatar{width:28px;height:28px;font-size:12px}.user-card .user-meta{flex:1;min-width:0}.user-card .user-meta strong{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.user-card .user-meta span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}@media (width<=820px){.workspace-header{min-height:calc(60px + var(--safe-area-top));padding-top:calc(14px + var(--safe-area-top));padding-right:calc(16px + var(--safe-area-right))}.sidebar-scroll{padding-bottom:calc(16px + var(--safe-area-bottom))}.user-card{padding-bottom:calc(10px + var(--safe-area-bottom))}}.messages{flex-direction:column;display:flex;position:relative}.messages-scroll{overflow-anchor:none;opacity:1;isolation:isolate;flex-direction:column;flex:1;min-height:0;padding:0 4px;transition:opacity .14s ease-out;display:flex;overflow-y:auto}.messages-scroll:focus{outline:none}.messages.is-revealing .messages-scroll{opacity:0;pointer-events:none;transition:opacity}.messages-spacer{flex-grow:1}.history-loader{pointer-events:none;gap:14px;margin:4px 0 6px;padding:6px 18px;animation:.22s ease-out both history-loader-fade;display:grid}.history-loader--newer{margin-top:6px;margin-bottom:4px}@keyframes history-loader-fade{0%{opacity:0}to{opacity:1}}.history-loader__row{grid-template-columns:56px minmax(0,1fr);min-height:44px;display:grid}.history-loader__avatar,.history-loader__meta,.history-loader__line,.history-loader__block{background:linear-gradient(90deg, color-mix(in srgb, var(--muted-2) 16%, transparent), color-mix(in srgb, var(--muted-2) 36%, transparent), color-mix(in srgb, var(--muted-2) 16%, transparent));animation:1.4s ease-in-out infinite history-loading;animation-delay:calc(var(--history-row,0) * 80ms);background-size:220% 100%;display:block}.history-loader__avatar{border-radius:10px;width:38px;height:38px}.history-loader__body{align-content:start;gap:8px;min-width:0;padding-top:4px;display:grid}.history-loader__meta{border-radius:999px;width:min(180px,38%);height:11px}.history-loader__line{border-radius:999px;height:10px}.history-loader__line--wide{width:min(540px,72%)}.history-loader__line--mid{width:min(360px,48%)}@keyframes history-loading{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.history-loader{animation:none}.history-loader__avatar,.history-loader__meta,.history-loader__line,.history-loader__block{background:color-mix(in srgb, var(--muted-2) 22%, transparent);animation:none}}.unread-bar{z-index:5;background:color-mix(in srgb, var(--panel) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid color-mix(in srgb, var(--accent) 38%, transparent);max-width:calc(100% - 32px);height:30px;color:var(--text);letter-spacing:.005em;box-shadow:inset 0 1px 0 #ffffff14, 0 10px 24px -14px #0000008c, 0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent);opacity:1;border-radius:999px;align-items:center;gap:6px;padding:0 5px 0 14px;font-size:12px;font-weight:600;transition:opacity .16s ease-out,transform .18s cubic-bezier(.2,.8,.2,1);display:inline-flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.unread-bar.is-clearing{opacity:0;pointer-events:none;transform:translate(-50%,-6px)}.unread-bar__jump,.unread-bar__mark{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;transition:background-color .12s ease-out,color .12s ease-out;display:inline-flex}.unread-bar__jump{text-align:left;min-width:0;color:color-mix(in srgb, var(--accent) 92%, var(--text));flex:0 auto;padding:0 6px 0 0}.unread-bar__jump:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent);border-radius:50%;flex-shrink:0;animation:1.8s ease-out infinite unread-bar-pulse}@keyframes unread-bar-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.unread-bar__jump:before{animation:none}}.unread-bar__mark{background:color-mix(in srgb, var(--accent) 14%, transparent);height:22px;color:color-mix(in srgb, var(--accent) 90%, var(--text));letter-spacing:.01em;border-radius:999px;flex-shrink:0;padding:0 10px;font-size:11px;font-weight:600}.unread-bar__jump:hover{color:var(--accent)}.unread-bar__mark:hover{background:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent)}.unread-bar__jump:focus-visible,.unread-bar__mark:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);outline-offset:2px;border-radius:999px}.unread-bar__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.typing-indicator{height:0;color:var(--text-muted);opacity:0;pointer-events:none;align-items:center;gap:8px;margin-top:0;padding:0 22px;font-size:12px;transition:height .12s ease-out,margin-top .12s ease-out,opacity .12s ease-out,transform .16s cubic-bezier(.2,.8,.2,1);display:flex;overflow:hidden;transform:translateY(2px)}.typing-indicator.visible{opacity:1;height:20px;margin-top:-4px;transform:translateY(0)}.composer-dock{padding-top:20px;position:relative}.topic-filter{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent) 8%, var(--panel));color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:8px 18px;font-size:13px;display:flex}.topic-filter strong{color:var(--text)}.topic-filter button,.message-topic{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0}.topic-filter button:hover,.message-topic:hover{text-decoration:underline}.message-topic{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;margin:0 0 4px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-flex}.topic-picker{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-bottom:0;border-radius:10px 10px 0 0;align-items:center;gap:8px;margin:0 14px -1px;padding:7px 10px;font-size:12px;display:flex}.topic-picker select{min-width:0;max-width:min(280px,65vw);color:var(--text);font:inherit;background:0 0;border:0}.composer-dock .agent-responding{opacity:0;pointer-events:none;align-items:center;height:20px;margin:0;padding:0 22px;transition:opacity .12s ease-out;display:flex;position:absolute;top:0;left:0;right:0;overflow:hidden;transform:none}.composer-dock .agent-responding.visible{opacity:1;height:20px;margin:0;transform:none}.typing-indicator__dots{align-items:center;gap:3px;display:inline-flex}.typing-indicator__dots i{opacity:.55;background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.1s ease-in-out infinite typing-dot}.typing-indicator__dots i:nth-child(2){animation-delay:.15s}.typing-indicator__dots i:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,60%,to{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.message-row.is-pending{opacity:.55}.message-row.is-pending .message-content,.message-row.is-pending .markdown{pointer-events:none}.message-row.is-failed{opacity:1}.message-row.is-deleted{color:var(--muted)}.message-failed{background:color-mix(in srgb, var(--danger,#d04848) 14%, transparent);color:var(--danger,#d04848);border-radius:999px;align-items:center;gap:10px;margin-top:6px;padding:4px 10px;font-size:12px;display:inline-flex}.message-failed__label{font-weight:500}.message-failed__action{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:999px;padding:2px 8px;line-height:1}.message-failed__action:hover{background:color-mix(in srgb, currentColor 12%, transparent)}.message-failed__action--ghost{border-color:color-mix(in srgb, currentColor 50%, transparent)}@media (prefers-reduced-motion:reduce){.typing-indicator{transition:opacity 80ms ease-out;transform:none}.typing-indicator.visible{transform:none}.typing-indicator__dots i{opacity:.7;animation:none}}.empty{text-align:center;align-content:center;place-items:center;gap:10px;min-height:50vh;padding:48px 24px;display:grid}.empty-icon{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));border:1px solid color-mix(in srgb, var(--brand-b) 55%, var(--line-strong));width:64px;height:64px;color:var(--brand-contrast);box-shadow:var(--key-edge), 0 18px 40px -16px color-mix(in srgb, var(--brand-b) 60%, transparent);border-radius:16px;place-items:center;font-size:26px;font-weight:800;display:grid}.empty strong{color:var(--text-strong);letter-spacing:-.01em;font-size:19px;font-family:var(--font-display);overflow-wrap:anywhere;font-weight:700}.empty span{color:var(--muted);max-width:380px;line-height:1.5}.day-divider{pointer-events:none;align-items:center;gap:12px;margin:18px 18px 8px;display:flex}.day-divider:before,.day-divider:after{content:"";background:var(--line);flex:1;height:1px}.day-divider span{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-radius:999px;padding:4px 12px;font-size:10px;font-weight:600}.new-messages-divider{pointer-events:none;opacity:1;align-items:center;gap:0;margin:4px 0 2px;padding:0 18px;transition:opacity .16s ease-out,transform .18s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;transform:translateY(0)}.new-messages-divider.is-clearing{opacity:0;transform:translateY(-4px)}.new-messages-divider:before{content:"";background:var(--danger,#ed4245);opacity:.9;flex:1;height:1px}.new-messages-divider span{background:var(--danger,#ed4245);color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;align-items:center;height:14px;margin-left:8px;padding:0 5px;font-size:9px;font-weight:700;display:inline-flex}.message-group{grid-template-columns:56px minmax(0,1fr);padding:8px 18px;display:grid;position:relative}.avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:10px;place-items:center;width:38px;height:38px;margin-top:2px;font-size:14px;font-weight:700;display:grid;overflow:hidden;box-shadow:0 6px 20px -10px #0009}.avatar-button{z-index:2;cursor:pointer;border:0;padding:0;transition:transform .1s,box-shadow .12s,filter .12s;position:relative}.avatar-button:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 24px -12px #000c}.avatar.small{border-radius:10px;width:30px;height:30px;font-size:12px}.avatar.large{border-radius:16px;width:56px;height:56px;margin:0;font-size:18px}.group-body{min-width:0}.group-body>header{align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.message-group .group-body>header{margin:0 -18px 0 -56px;padding:0 18px 2px 56px}.group-body>header strong{color:var(--text-strong);letter-spacing:-.005em;font-size:14.5px;font-weight:700}.author-name{color:var(--text-strong);letter-spacing:0;background:0 0;border:0;border-radius:4px;padding:0;font-size:14.5px;font-weight:700}.author-name:hover{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.author-name--static:hover{color:var(--text-strong);text-decoration:none}.group-body>header time{color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10.5px}.group-body>header span{color:var(--muted);font-size:12px}.bot-chip{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);height:18px;color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;padding:0 6px;font-size:9.5px;font-weight:700;line-height:1;display:inline-flex}.bot-chip--deleted{border-color:var(--line-strong);color:var(--muted)}.message-row{border-radius:0;margin-left:-56px;margin-right:-18px;padding:1px 18px 1px 56px;transition:background 80ms;position:relative}.message-row:not(:first-child){margin-top:1px}.message-row:hover,.message-group .group-body>header:hover,.message-group .group-body>header:hover+.message-row{background:var(--hover)}.message-group .group-body>header:has(+.message-row:hover){background:var(--hover)}.message-group .group-body>header:hover+.message-row .message-actions{opacity:1;pointer-events:auto}.message-row.selected{background:var(--accent-soft)}.message-row.can-open-thread{cursor:pointer}.row-stamp{font-family:var(--font-mono);color:var(--muted-2);opacity:0;font-variant-numeric:tabular-nums;font-size:9.5px;position:absolute;top:4px;left:8px}.message-row.is-preamble{background:0 0;margin-bottom:6px;padding-top:4px;padding-bottom:4px}.message-row.is-preamble:not(.before-final-message) .message-content{border:1px solid color-mix(in srgb, var(--activity-accent) 20%, transparent);border-radius:var(--radius-lg);background:var(--activity-accent-soft);box-shadow:0 2px 0 color-mix(in srgb, var(--activity-accent) 14%, transparent);padding:10px 14px}.message-row.is-preamble-collapsed .message-content{padding-top:6px;padding-bottom:6px}.message-row.is-preamble.before-final-message{background:0 0;margin-bottom:0;padding-top:2px;padding-bottom:0}.message-row.after-preamble{margin-top:0;padding-top:0;padding-bottom:2px}.message-row.is-preamble.before-final-message:before{display:none}.message-row.is-preamble.before-final-message .message-content{border:1px solid color-mix(in srgb, var(--activity-accent) 20%, transparent);background:var(--activity-accent-soft);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);border-bottom:0;padding:10px 14px}.message-row.after-preamble .message-content{border:1px solid color-mix(in srgb, var(--delivery-accent) 20%, transparent);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);background:var(--delivery-accent-soft);box-shadow:0 2px 0 color-mix(in srgb, var(--delivery-accent) 14%, transparent);border-top:0;padding:10px 14px}.message-row.is-preamble.before-final-message.is-preamble-collapsed .message-content{background:color-mix(in srgb, var(--activity-accent) 10%, var(--panel));border-bottom:1px solid color-mix(in srgb, var(--activity-accent) 30%, transparent);padding-top:7px;padding-bottom:7px}:root[data-user-align=right] .message-group.is-self,:root[data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 56px}:root[data-user-align=right] .message-group.is-self>.avatar,:root[data-other-align=right] .message-group:not(.is-self)>.avatar{grid-area:1/2;justify-self:end}:root[data-user-align=right] .message-group.is-self>.group-body,:root[data-other-align=right] .message-group:not(.is-self)>.group-body{grid-area:1/1;min-width:0}:root[data-user-align=right] .message-group.is-self .group-body>header,:root[data-other-align=right] .message-group:not(.is-self) .group-body>header{justify-content:flex-end;margin:0 -56px 0 -18px;padding:0 56px 2px 18px}:root[data-user-align=right] .message-group.is-self .message-row,:root[data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-18px;margin-right:-56px;padding-left:18px;padding-right:56px}:root[data-user-align=right] .message-group.is-self .message-content,:root[data-other-align=right] .message-group:not(.is-self) .message-content{text-align:right;margin-left:auto}:root[data-user-align=right] .message-group.is-self .markdown,:root[data-other-align=right] .message-group:not(.is-self) .markdown{text-align:right}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown ul,:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown ol,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown ul,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown ol{padding-left:0;padding-right:0;list-style-position:inside}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>ul,:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>ol,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>ul,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>ol{padding-left:0;padding-right:22px}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown li>p:first-child,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown li>p:first-child{display:inline}:root:not([data-message-layout=outlined])[data-user-align=right] .message-group.is-self .markdown blockquote,:root:not([data-message-layout=outlined])[data-other-align=right] .message-group:not(.is-self) .markdown blockquote{border-left:0;border-right:3px solid var(--accent);padding-left:0;padding-right:12px}:root[data-user-align=right] .message-group.is-self .attachment-grid,:root[data-other-align=right] .message-group:not(.is-self) .attachment-grid{margin-left:auto}.preamble-contract{gap:7px;min-width:0;display:grid}.preamble-toggle{width:100%;min-height:20px;color:var(--activity-accent);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:7px;padding:0;display:grid}.preamble-chevron{color:var(--activity-accent);font-size:10px;transition:transform .12s}.preamble-chevron.open{transform:rotate(90deg)}.preamble-state,.preamble-action{line-height:1}.preamble-state{border:1px solid color-mix(in srgb, var(--activity-accent) 30%, transparent);height:17px;color:var(--activity-accent);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;align-items:center;padding:0 7px;font-size:9.5px;font-weight:750;display:inline-flex}.preamble-state.is-live{border-color:color-mix(in srgb, var(--activity-accent) 55%, transparent);animation:1.6s ease-in-out infinite preamble-live-pulse}@keyframes preamble-live-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.preamble-state.is-live{animation:none}}.preamble-action{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;overflow:hidden}.preamble-body{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;min-width:0}.preamble-flow{gap:7px;min-width:0;padding-left:17px;display:grid}.preamble-tool{--tool-accent:var(--activity-accent);background:var(--tool-call-bg);border-radius:7px;min-width:0;overflow:hidden}.preamble-tool-summary{width:100%;min-width:0;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:7px;padding:4px 9px;line-height:1.5;display:flex}.preamble-tool-summary:hover{background:var(--tool-call-bg-hover)}.preamble-tool-full{color:var(--muted);overflow-wrap:anywhere;word-break:break-word;gap:5px;min-width:0;padding:2px 10px 8px 27px;font-size:12px;display:grid}.preamble-tool-full-head{font-family:var(--font-mono);color:color-mix(in srgb, var(--tool-accent) 45%, var(--muted));font-size:11px;font-weight:600}.preamble-tool-full-body{min-width:0}.preamble-tool-full pre{white-space:pre-wrap;overflow-wrap:anywhere}.tool-line-chevron{color:var(--muted-2);flex-shrink:0;font-size:9px;transition:transform .12s}.tool-line-chevron.open{transform:rotate(90deg)}.tool-line-glyph{filter:saturate(.85);flex-shrink:0;font-size:11px}.tool-line-action{color:color-mix(in srgb, var(--tool-accent) 38%, var(--text));flex-shrink:0;font-size:11.5px;font-weight:600}.tool-line-name{text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:color-mix(in srgb, var(--tool-accent) 55%, var(--muted));font-size:11px;font-weight:500;font-family:var(--font-mono);flex-shrink:0;overflow:hidden}.tool-line-detail{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);font-size:11px;font-weight:400;font-family:var(--font-mono);opacity:.85;flex:auto;overflow:hidden}.message-row:hover .row-stamp{opacity:1}.message-content{min-width:0;display:flow-root}.thread-hint{min-height:22px;color:var(--muted-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;margin-top:4px;padding:3px 8px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.thread-hint:not(.has-replies):not(.is-open){display:none}.thread-hint svg{flex:none}.thread-hint time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:500}.thread-hint.has-replies,.thread-hint.is-open{color:var(--accent)}.thread-hint.is-open{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent-soft) 70%, transparent)}.thread-hint:hover{border-color:var(--line-strong);background:var(--panel)}.thread-hint:disabled{cursor:default;opacity:.45}.message-actions{opacity:0;pointer-events:none;background:var(--panel);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:8px;align-items:flex-start;gap:4px;padding:2px;transition:opacity .1s;display:flex;position:absolute;top:-24px;right:8px}.message-row:hover .message-actions,.message-row.selected .message-actions,.message-row.menu-open .message-actions{opacity:1;pointer-events:auto}.message-row:has(:focus-visible) .message-actions{opacity:1;pointer-events:auto}.message-row.actions-flip .message-actions{top:auto;bottom:-24px}.message-row.menu-open{z-index:6}.message-row:hover,.message-row.selected{z-index:5}.message-row:has(:focus-visible){z-index:5}.messages:has(.message-row.menu-open) .message-row:hover:not(.menu-open) .message-actions{opacity:0;pointer-events:none}.messages:has(.message-row.menu-open) .message-group .group-body>header:hover+.message-row:not(.menu-open) .message-actions{opacity:0;pointer-events:none}@media (hover:none),(pointer:coarse){.message-actions{width:1px;height:1px;box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:0;padding:0;top:1px;bottom:auto;overflow:visible;transform:none}.message-actions>:not(.message-more){display:none}.message-row.actions-flip .message-actions{top:1px;bottom:auto}.message-actions .message-more{position:static}.message-actions .message-actions-trigger{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.message-actions .message-actions-trigger:focus-visible{clip:auto;clip-path:none;border:1px solid var(--line-strong);background:var(--panel);width:36px;height:36px;box-shadow:var(--shadow);margin:0;top:0;right:0;overflow:visible}.message-row:has(.message-actions-trigger:focus-visible) .message-content{padding-right:44px}}.message-actions button{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.message-actions button:hover{background:var(--hover-strong);color:var(--text-strong)}.message-actions button:disabled{opacity:.45}.message-copy-status{background:var(--accent-soft);height:24px;color:var(--accent);white-space:nowrap;border-radius:5px;align-self:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.message-copy-status.is-error{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-sheet-scrim{z-index:60;background:#05080f66;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.message-sheet-backdrop{background:0 0;border:0;padding:0;position:absolute;inset:0}.message-action-sheet{z-index:1;background:var(--panel);border:1px solid var(--line);max-height:calc(100dvh - 16px - env(safe-area-inset-top,0px));padding:8px 12px calc(10px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;border-bottom:0;border-radius:16px 16px 0 0;animation:.16s ease-out sheet-rise;position:relative;overflow-y:auto}@keyframes sheet-rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.message-action-sheet{animation:none}}.message-action-sheet .sheet-grabber{background:var(--line-strong);border-radius:999px;width:36px;height:4px;margin:0 auto 8px}.message-action-sheet .sheet-emoji-row{border-bottom:1px solid var(--line);justify-content:space-around;gap:4px;padding-bottom:8px;display:flex}.message-action-sheet .sheet-emoji-row button{background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:44px;font-size:22px;line-height:1;display:grid}.message-action-sheet .sheet-emoji-row button:active{background:var(--hover-strong)}.message-action-sheet .sheet-actions{flex-direction:column;padding-top:4px;display:flex}.message-action-sheet .sheet-actions button{width:100%;color:var(--text-strong);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;padding:12px 8px;font-size:15px;display:flex}.message-action-sheet .sheet-actions button:active{background:var(--hover-strong)}.message-action-sheet .sheet-actions button:disabled{opacity:.45}.message-action-sheet .sheet-actions svg{color:var(--muted);flex:none}.message-action-sheet .sheet-danger,.message-action-sheet .sheet-danger svg{color:var(--danger)}.message-action-sheet .sheet-copy-status{background:var(--accent-soft);height:22px;color:var(--accent);white-space:nowrap;border-radius:5px;align-items:center;margin-left:auto;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.message-action-sheet .sheet-copy-status.is-error{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-action-sheet .sheet-action-error{color:var(--danger);margin:-4px 12px 4px;font-size:12px;line-height:1.35}.message-actions .message-action-react{font-size:15px;line-height:1}.message-actions .action-sep{background:var(--line);flex:none;align-self:center;width:1px;height:18px;margin:0 3px}.message-actions .picker-wrapper,.message-actions .message-more{position:relative}.message-menu{z-index:30;background:var(--panel);border:1px solid var(--line-strong);min-width:190px;box-shadow:var(--shadow);border-radius:10px;padding:5px;font-size:13px;position:absolute;top:calc(100% + 4px);right:0}.message-menu.above{top:auto;bottom:calc(100% + 4px)}.message-menu button{width:100%;height:auto;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:9px;padding:7px 10px;font-size:13px;display:flex}.message-menu button:hover{background:var(--hover-strong);color:var(--text-strong)}.message-menu button svg{color:var(--muted);flex:none}.message-menu .menu-sep{border-top:1px solid var(--line);margin:5px 4px}.message-menu .menu-danger,.message-menu .menu-danger svg{color:var(--danger)}.message-menu .menu-danger:hover{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger)}.message-edit{gap:7px;width:min(100%,760px);padding:5px 0 3px;display:grid}.message-edit__textarea{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 94%, var(--text) 6%);width:100%;min-height:72px;max-height:240px;color:var(--text);font:inherit;resize:vertical;box-sizing:border-box;box-shadow:inset 0 1px 1px color-mix(in srgb, var(--text) 5%, transparent);border-radius:7px;padding:9px 11px;font-size:14.5px;line-height:1.5;transition:border-color .12s,box-shadow .12s,background .12s}.message-edit__textarea:hover:not(:disabled){border-color:color-mix(in srgb, var(--line-strong) 62%, var(--text) 38%)}.message-edit__textarea:focus{border-color:var(--accent);background:var(--panel);box-shadow:inset 0 1px 1px color-mix(in srgb, var(--text) 4%, transparent), 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.message-edit__textarea:disabled{cursor:progress;opacity:.78}.message-edit__footer{flex-wrap:wrap;align-items:center;gap:6px;min-height:30px;display:flex}.message-edit__footer .message-edit__save{background:var(--accent);min-width:68px;min-height:30px;color:var(--accent-contrast);cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:4px;padding:5px 12px;font-size:13px;font-weight:500;display:inline-flex}.message-edit__footer .message-edit__save:hover{filter:brightness(1.1)}.message-edit__footer .message-edit__save:focus-visible,.message-edit__footer .message-edit__cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.message-edit__footer .message-edit__save:disabled{opacity:.5;cursor:progress}.message-edit__footer .message-edit__cancel{min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:5px 10px;font-size:13px;display:inline-flex}.message-edit__footer .message-edit__cancel:hover{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.message-edit__error{border-left:2px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);width:fit-content;max-width:100%;color:var(--danger);border-radius:3px;margin:0;padding:5px 8px;font-size:12.5px;line-height:1.35}.message-edit__indicator{color:var(--muted);align-items:center;gap:3px;margin-left:8px;font-size:11px;display:inline-flex}.message-row.editing .message-actions{display:none}@media (width<=520px){.message-edit__footer .message-edit__save,.message-edit__footer .message-edit__cancel{flex:1 1 0}}.message-deleted{min-height:22px;color:var(--muted);align-items:center;font-size:13px;font-style:italic;display:inline-flex}.markdown{color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-size:14.5px;line-height:1.5}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0}.markdown p+p,.markdown ul,.markdown ol,.markdown blockquote,.markdown pre{margin-top:6px}.markdown a{color:var(--accent);text-decoration:none}.markdown a:hover{text-decoration:underline}.message-mention{border:1px solid color-mix(in srgb, currentColor 18%, transparent);background:color-mix(in srgb, currentColor 8%, transparent);color:inherit;border-radius:4px;margin:0 1px;padding:0 3px;font-weight:600}.message-mention.is-current-user{border-color:color-mix(in srgb, var(--accent) 42%, transparent);background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent);font-weight:700}.markdown code{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-family:Geist Mono Variable,JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.markdown pre{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;overflow-x:auto}.markdown pre code{background:0 0;border:0;padding:0}.markdown blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:0;padding:4px 0 4px 12px}.markdown ul,.markdown ol{padding-left:22px}.markdown img{border-radius:var(--radius);border:1px solid var(--line);object-fit:contain;background:var(--panel);cursor:zoom-in;max-width:100%;max-height:360px;margin-top:6px}.markdown-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;max-width:100%;margin-top:6px;overflow-x:auto}.markdown-table-scroll[data-overflowing]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.markdown-table-scroll:first-child{margin-top:0}.markdown-table-scroll>table{border-collapse:collapse;border-spacing:0;width:max-content;min-width:100%;font-size:.9em}.markdown thead{background:var(--muted-2)}.markdown th,.markdown td{vertical-align:top;border:1px solid var(--line);padding:8px 12px}.markdown thead th{color:var(--text-strong);font-weight:700}.markdown tbody tr:nth-child(2n){background:color-mix(in srgb, var(--muted-2) 18%, transparent)}.markdown tbody tr:hover{background:color-mix(in srgb, var(--muted-2) 26%, transparent)}.gif-player{vertical-align:top;max-width:100%;display:inline-block;position:relative}.gif-player img{display:block}.gif-badge,.gif-replay{z-index:1;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:0;position:absolute}.gif-badge{letter-spacing:.04em;pointer-events:none;background:#0000008a;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;bottom:9px;left:9px}.gif-replay{opacity:0;pointer-events:none;background:#0a0c12b8;border-radius:999px;place-items:center;width:30px;height:30px;font-size:16px;line-height:1;transition:opacity .13s,transform .13s,background .12s;display:grid;bottom:9px;right:9px;transform:scale(.88)}.gif-replay:hover{background:var(--accent)}.gif-player.paused .gif-replay{opacity:1;pointer-events:auto;transform:scale(1)}.gif-player.playing .gif-badge{animation:.9s ease-in-out infinite gif-breathe}@keyframes gif-breathe{0%,to{opacity:.85}50%{opacity:.45}}.attachment-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;max-width:560px;margin-top:8px;display:grid}.attachment-grid.compact{grid-template-columns:minmax(0,1fr);max-width:420px}.media-tile{border:1px solid var(--line);border-radius:var(--radius-lg);isolation:isolate;text-align:left;width:100%;color:inherit;cursor:pointer;background:#0a0c12;margin:0;padding:0;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s;display:block;position:relative;overflow:hidden}.media-tile:hover{border-color:var(--line-strong);box-shadow:0 18px 40px -28px #000000e6}.media-tile:focus-visible{border-color:var(--line-strong);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);outline:none}.media-tile--image{cursor:zoom-in}.media-tile__open{width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;margin:0;padding:0;display:block}.media-tile__open:focus{outline:0}.media-tile__open:focus-visible+.media-tile__caption .media-tile__name{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.media-tile--video{cursor:default}.media-tile img,.media-tile video{object-fit:contain;background:#05070d;width:100%;max-height:360px;display:block}.media-tile--image img{max-height:320px}.media-tile__caption{z-index:3;opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#00000080 60%,#000000c7 100%);align-items:center;gap:8px;padding:22px 10px 8px;transition:opacity .14s;display:flex;position:absolute;inset:auto 0 0}.media-tile__caption>*{pointer-events:auto}.media-tile:hover .media-tile__caption,.media-tile:focus-within .media-tile__caption{opacity:1}.media-tile--video.is-started .media-tile__caption{display:none}.media-tile__name{color:#fff;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 2px #0009;flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.media-tile__chip{z-index:4;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000080;border:1px solid #ffffff2e;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;text-decoration:none;transition:background .12s,border-color .12s,transform .12s;display:inline-grid;position:relative}.media-tile__chip:hover{background:#000000b3;border-color:#ffffff52;transform:translateY(-1px)}.media-tile__play{cursor:pointer;z-index:1;background:0 0;border:0;place-items:center;width:100%;height:auto;margin:0;padding:0;display:grid;position:absolute;inset:0 0 48px}.media-tile__play:before{content:"";opacity:.7;pointer-events:none;background:radial-gradient(#0000002e 0%,#0000000d 45%,#0000 70%);transition:opacity .16s;position:absolute;inset:0}.media-tile__play:hover:before{opacity:.9}.media-tile__play-icon{color:#fff;-webkit-backdrop-filter:blur(10px);background:#0000008c;border-radius:999px;place-items:center;width:46px;height:46px;padding-left:3px;transition:transform .2s cubic-bezier(.2,.8,.2,1),background .18s,box-shadow .2s;display:grid;position:relative;box-shadow:0 6px 20px -8px #0000008c}.media-tile__play-icon svg{filter:drop-shadow(0 1px 2px #0006)}.media-tile__play:hover .media-tile__play-icon{background:#000000b3;transform:scale(1.06);box-shadow:0 10px 28px -10px #000000a6}.media-tile__play:active .media-tile__play-icon{transition-duration:80ms;transform:scale(.97)}.media-tile__play:focus-visible{outline:none}.media-tile__play:focus-visible .media-tile__play-icon{box-shadow:0 0 0 2px #fff9,0 10px 28px -10px #000000a6}.media-tile__duration{z-index:2;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;background:#000000b8;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:600;position:absolute;bottom:8px;left:8px}.file-attachment{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);align-items:center;gap:10px;max-width:360px;padding:10px;display:flex}.file-attachment:hover{border-color:var(--line-strong);background:var(--panel-2)}.file-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:8px;place-items:center;font-weight:800;display:grid}.file-attachment strong,.file-attachment small{display:block}.file-attachment strong{color:var(--text-strong);font-size:13px}.file-attachment small{color:var(--muted);font-size:11px}.audio-attachment,.document-attachment{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(100%,420px);overflow:hidden}.audio-attachment{gap:10px;padding:10px;display:grid}.audio-attachment__meta{align-items:center;gap:10px;min-width:0;display:flex}.audio-attachment audio{width:100%;height:36px}.document-attachment{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.document-attachment__thumbnail{border:1px solid var(--line);background:linear-gradient(135deg, transparent 0 76%, var(--panel-3) 76% 100%), linear-gradient(180deg, #fff 0%, #f0f2f7 100%);width:64px;height:82px;color:var(--accent);letter-spacing:0;cursor:pointer;border-radius:6px;place-items:center;font-size:13px;font-weight:800;text-decoration:none;display:inline-grid;position:relative;overflow:hidden;box-shadow:0 8px 18px -16px #0009}.document-attachment__thumbnail:before,.document-attachment__thumbnail:after{content:"";background:color-mix(in srgb, var(--muted) 36%, transparent);border-radius:999px;height:2px;position:absolute;left:14px;right:14px}.document-attachment__thumbnail:before{top:48px}.document-attachment__thumbnail:after{top:56px}.document-attachment__meta{gap:5px;min-width:0;display:grid}.document-attachment__title{width:100%;min-width:0;color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:700;text-decoration:none;overflow:hidden}.document-attachment__title:hover{text-underline-offset:3px;text-decoration:underline}.document-attachment__meta small{color:var(--muted);white-space:nowrap;font-size:11px}.document-attachment__download{width:30px;height:30px;color:var(--muted);border-radius:8px;place-items:center;text-decoration:none;transition:background .12s,color .12s;display:inline-grid}.document-attachment__download:hover{background:var(--panel-2);color:var(--text-strong)}@media (width<=520px){.message-group{grid-template-columns:44px minmax(0,1fr);padding:7px 12px}:root[data-user-align=right] .message-group.is-self,:root[data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 44px}.message-row{margin-left:-44px;margin-right:-12px;padding-left:44px;padding-right:12px}:root[data-user-align=right] .message-group.is-self .message-row,:root[data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-12px;margin-right:-44px;padding-left:12px;padding-right:44px}.message-group .group-body>header{margin-left:-44px;margin-right:-12px;padding-left:44px;padding-right:12px}:root[data-user-align=right] .message-group.is-self .group-body>header,:root[data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:-12px;margin-right:-44px;padding-left:12px;padding-right:44px}.row-stamp{display:none}.attachment-grid,.attachment-grid.compact{grid-template-columns:minmax(0,1fr);max-width:100%}}:root[data-message-layout=outlined] .message-group .group-body{width:100%}:root[data-message-layout=outlined] .message-group .message-row{margin-left:0;margin-right:0;padding:0}:root[data-message-layout=outlined] .message-group .group-body>header{margin-left:0;margin-right:0;padding-left:0;padding-right:0}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .message-content,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .message-content,:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .markdown,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .markdown{text-align:start}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .thread-hint,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .thread-hint{width:fit-content;margin-left:auto;display:flex}:root[data-message-layout=outlined] .message-group .row-stamp{left:-48px}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .row-stamp,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .row-stamp{left:auto;right:-48px}:root[data-message-layout=outlined] .message-group .message-row:not(:first-child){margin-top:4px}:root[data-message-layout=outlined] .message-group .message-content{border-radius:var(--radius-lg);width:fit-content;max-width:min(96%,1100px);margin-top:2px;padding:10px 14px;position:relative}:root[data-message-layout=outlined] .message-group .message-row:not(.is-preamble):not(.after-preamble) .message-content{border:1px solid var(--line-strong)}:root[data-message-layout=outlined] .message-group.is-agent .message-content{width:96%;max-width:1100px}:root[data-message-layout=outlined] .message-group .message-row.before-final-message+.message-row.after-preamble{margin-top:-1px}:root[data-message-layout=outlined] .message-group.is-agent .message-row.before-final-message .message-content{border-bottom-right-radius:0;border-bottom-left-radius:0}:root[data-message-layout=outlined] .message-group.is-agent .message-row.after-preamble .message-content{border-top-left-radius:0;border-top-right-radius:0}:root[data-density=compact] .message-group{grid-template-columns:42px minmax(0,1fr);padding:2px 18px}:root[data-density=compact][data-user-align=right] .message-group.is-self,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self){grid-template-columns:minmax(0,1fr) 42px}:root[data-density=compact] .message-group>.avatar{border-radius:7px;width:26px;height:26px;font-size:11px}:root[data-density=compact] .group-body>header{gap:6px;margin-bottom:0}:root[data-density=compact] .message-group .group-body>header{margin-left:-42px;padding-left:42px}:root[data-density=compact][data-user-align=right] .message-group.is-self .group-body>header,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:-18px;margin-right:-42px;padding-left:18px;padding-right:42px}:root[data-density=compact] .group-body>header strong,:root[data-density=compact] .author-name{font-size:13px}:root[data-density=compact] .group-body>header time{font-size:10px}:root[data-density=compact] .message-row{margin-left:-42px;padding-left:42px}:root[data-density=compact][data-user-align=right] .message-group.is-self .message-row,:root[data-density=compact][data-other-align=right] .message-group:not(.is-self) .message-row{margin-left:-18px;margin-right:-42px;padding-left:18px;padding-right:42px}:root[data-density=compact] .markdown{font-size:13.5px;line-height:1.42}:root[data-density=compact] .reactions-bar{margin-top:2px}:root[data-density=compact][data-message-layout=outlined] .message-group .message-row{margin-left:0;padding-left:0}:root[data-density=compact][data-message-layout=outlined] .message-group .row-stamp{left:-34px}:root[data-density=compact][data-message-layout=outlined][data-user-align=right] .message-group.is-self .row-stamp,:root[data-density=compact][data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .row-stamp{left:auto;right:-34px}@media (width<=520px){:root[data-density=compact] .message-group{padding-left:12px;padding-right:12px}}:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .message-row,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .message-row,:root[data-message-layout=outlined][data-user-align=right] .message-group.is-self .group-body>header,:root[data-message-layout=outlined][data-other-align=right] .message-group:not(.is-self) .group-body>header{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.composer{--composer-card-top:8px;--composer-overlay-gap:8px;--composer-overlay-inset-x:18px;background:var(--bg);gap:0;padding:8px 18px 6px;display:grid;position:relative}.composer-card{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-lg);box-shadow:var(--key-edge);flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex;overflow:hidden}.composer:focus-within .composer-card{border-color:color-mix(in srgb, var(--accent) 55%, var(--line-strong));box-shadow:var(--key-edge), 0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}.composer-suggestions{left:var(--composer-overlay-inset-x);bottom:calc(100% - var(--composer-card-top) + var(--composer-overlay-gap));z-index:40;width:min(560px, calc(100% - (var(--composer-overlay-inset-x) * 2)));border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 97%, transparent);max-height:min(320px,45vh);box-shadow:var(--shadow);border-radius:12px;margin:0;position:absolute;overflow:hidden auto}.composer-suggestions button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:48px;color:var(--text);text-align:left;background:0 0;border-radius:0;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.composer-suggestions button:last-child{border-bottom:0}.composer-suggestions button:hover,.composer-suggestions button.active{background:var(--hover-strong)}.suggestion-mark{background:var(--accent-soft);width:30px;height:30px;color:var(--accent);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.suggestion-copy{gap:2px;min-width:0;display:grid}.suggestion-copy strong,.suggestion-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.suggestion-copy strong{color:var(--text-strong);font-size:13px}.suggestion-copy span{color:var(--muted);font-size:12px}.suggestion-kind{color:var(--muted-2);text-transform:uppercase;font-size:11px;font-weight:700}.suggestion-hint{color:var(--muted);font-size:12px;font-style:normal;font-weight:500}.composer-notice{margin:0 var(--composer-overlay-inset-x,0) 6px;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 97%, transparent);border-radius:10px;align-items:baseline;gap:8px;padding:7px 10px;font-size:13px;display:flex}.composer-notice__label{color:var(--muted-2);text-transform:uppercase;flex:none;font-size:11px;font-weight:700}.composer-notice--error .composer-notice__label{color:var(--danger)}.composer-notice__text{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1}.composer-notice__dismiss{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;align-self:center;place-items:center;font-size:15px;line-height:1;display:grid}.composer-notice__dismiss:hover{background:var(--hover-strong);color:var(--text-strong)}.composer-toolbar{border:0;border-top:1px solid var(--line);background:color-mix(in srgb, var(--panel-2) 35%, transparent);width:100%;min-width:0;box-shadow:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;border-radius:0;align-items:center;gap:2px;margin:0;padding:4px 6px;display:inline-flex;overflow:auto hidden}.composer-toolbar::-webkit-scrollbar{display:none}.composer-toolbar button{min-width:28px;height:26px;color:var(--text);opacity:.78;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;font-size:11.5px;font-weight:700;transition:background .1s,color .1s,opacity .1s,transform 80ms;display:grid}.composer-toolbar button:hover{background:var(--hover-strong);color:var(--text-strong);opacity:1}.composer-toolbar button.active{background:var(--accent-soft);color:var(--accent);opacity:1}.composer-toolbar button:active{transform:translateY(1px)}.gif-picker{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 96%, transparent);width:min(520px,100%);max-height:40dvh;box-shadow:var(--shadow);border-radius:16px;margin-top:8px;margin-bottom:8px;padding:10px;animation:.16s cubic-bezier(.2,.8,.2,1) picker-in;overflow-y:auto}.gif-picker-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:2px 2px 10px;display:grid}.gif-picker-head strong{color:var(--text-strong);font-size:13px}.gif-picker-head input{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);min-width:0;height:32px;padding:0 10px}.gif-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:240px;display:grid;overflow-y:auto}.gif-grid button{aspect-ratio:4/3;background:var(--panel-2);color:#fff;box-shadow:inset 0 0 0 1px var(--line);border:0;border-radius:12px;padding:0;transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.gif-grid button:hover{box-shadow:inset 0 0 0 2px var(--accent), 0 14px 30px -22px #000c;transform:translateY(-2px)}.gif-grid img{object-fit:cover;width:100%;height:100%;display:block}.gif-grid span{text-overflow:ellipsis;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008f;border-radius:999px;padding:4px 7px;font-size:10.5px;font-weight:700;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}@keyframes picker-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.composer-row{--composer-control-size:36px;--composer-line-height:22px;--composer-text-padding-block:7px;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px;padding:8px 8px 4px 10px;display:grid}.composer-row:has(.composer-icon){grid-template-columns:auto minmax(0,1fr) auto}.composer:focus-within .composer-toolbar,.composer-row:focus-within{border-color:#0000}.composer-row:focus-within{box-shadow:none}.composer-icon{width:var(--composer-control-size);height:var(--composer-control-size);margin-top:calc(var(--composer-text-padding-block) + (var(--composer-line-height) - var(--composer-control-size)) / 2);color:var(--muted);cursor:pointer;border-radius:10px;align-self:start;place-items:center;transition:background .12s,color .12s;display:grid}.composer-icon:hover{background:var(--hover-strong);color:var(--text-strong)}.composer-icon input[type=file]{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.composer textarea,.reply-composer textarea{width:100%;height:auto;min-height:44px;max-height:50vh;padding:var(--composer-text-padding-block) 4px;resize:none;color:var(--text);line-height:var(--composer-line-height);box-sizing:border-box;align-self:start;font-size:14.5px;overflow-y:auto}.composer textarea::placeholder,.reply-composer textarea::placeholder{color:var(--muted)}.send{width:var(--composer-control-size);height:var(--composer-control-size);margin-top:calc(var(--composer-text-padding-block) + (var(--composer-line-height) - var(--composer-control-size)) / 2);border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);box-shadow:var(--key-edge);align-self:start;place-items:center;transition:background .12s,transform 80ms,box-shadow 80ms,opacity .12s;display:grid}.send:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.send:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.send:disabled{background:var(--panel-3);border-color:var(--line-strong);color:var(--muted-2);cursor:not-allowed;box-shadow:none}.composer-attachment{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);align-items:center;gap:8px;width:fit-content;margin-top:8px;margin-bottom:8px;padding:6px 10px;font-size:13px;display:inline-flex}.attachment-icon{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:6px;place-items:center;display:grid}.pending-image{object-fit:cover;border:1px solid var(--line);background:var(--panel-2);border-radius:7px;width:42px;height:32px}.attachment-name{text-overflow:ellipsis;white-space:nowrap;max-width:240px;overflow:hidden}.attachment-remove{width:18px;height:18px;color:var(--muted);background:0 0;border:0;border-radius:50%;font-size:14px;line-height:1}.attachment-remove:hover{background:var(--danger);color:#fff}.composer-hint{color:var(--muted-2);padding:7px 4px 0;font-size:11px}.composer-hint kbd{background:var(--panel-2);border:1px solid var(--line-strong);font-family:var(--font-mono);color:var(--text);box-shadow:0 1px 0 var(--line-strong);border-radius:4px;padding:0 5px;font-size:10.5px;display:inline-block}@media (width<=820px){.composer{padding:8px calc(14px + var(--safe-area-right)) calc(6px + var(--safe-area-bottom)) calc(14px + var(--safe-area-left))}.composer textarea,.reply-composer textarea{font-size:16px}.composer-suggestions{max-height:min(320px,42dvh)}}.thread{background:var(--panel);border-left:1px solid var(--line);opacity:0;pointer-events:none;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(28px)}.thread.open{opacity:1;pointer-events:auto;transform:translate(0)}.thread.covered{opacity:0;pointer-events:none}.thread>header{border-bottom:1px solid var(--line);background:linear-gradient(180deg, #ffffff05, transparent), var(--panel);align-items:center;gap:10px;min-height:60px;padding:12px 16px;display:flex}.thread>header>div{flex:1;min-width:0}.thread>header p,.thread>header strong{margin:0}.thread>header p{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.thread>header strong{color:var(--text-strong);font-size:14px;display:block}.thread .thread-pin-error{color:var(--danger);margin-top:3px;font-size:11px;line-height:1.35;display:block}.thread .close{background:var(--panel-2);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;font-size:18px;line-height:1}.thread .close:hover{background:var(--panel-3);color:var(--text-strong)}.thread .thread-open-link{color:var(--accent);font-family:var(--font-mono);white-space:nowrap;flex:none;font-size:11px;font-weight:700;text-decoration:none}.thread .thread-open-link:hover{color:var(--accent-hover);text-decoration:underline}.thread .thread-open-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}.thread .thread-back{background:var(--panel-2);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.thread .thread-back:hover{background:var(--panel-3);color:var(--text-strong)}.thread .thread-back:focus-visible,.thread .close:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.thread-scroll{padding:12px 16px;overflow-y:auto}.thread-root{border-bottom:1px solid var(--line);grid-template-columns:38px minmax(0,1fr);gap:12px;padding-bottom:12px;display:grid}.thread-divider{align-items:center;gap:10px;margin:14px 0 10px;display:flex}.thread-divider:before,.thread-divider:after{content:"";background:var(--line);flex:1;height:1px}.thread-divider span{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:600}.reply-list{flex-direction:column;gap:10px;display:flex}.reply{border-radius:var(--radius-sm);grid-template-columns:30px minmax(0,1fr);gap:10px;padding:6px;display:grid}.reply:hover{background:var(--hover)}.thread .reply-quote-btn,.thread .thread-action-btn{width:26px;height:26px;color:var(--muted);background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.thread .reply-quote-btn:hover,.thread .thread-action-btn:hover{background:var(--hover-strong);color:var(--text-strong)}.thread .reply-quote-btn:disabled,.thread .thread-action-btn:disabled{cursor:default;opacity:.45}.thread .thread-action-btn--danger{color:var(--danger)}.thread .thread-action-btn--danger:hover{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.thread .thread-more-actions{display:none}@media (hover:none),(pointer:coarse){.thread .group-body>header{min-height:28px;padding-right:32px;position:relative}.thread .reply-quote-btn,.thread .thread-action-btn:not(.thread-more-actions){display:none}.thread .thread-more-actions{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;display:inline-grid;position:absolute;top:0;right:0;overflow:hidden}.thread .thread-more-actions:focus-visible{clip:auto;clip-path:none;border:1px solid var(--line-strong);background:var(--panel);width:28px;height:28px;box-shadow:var(--shadow);margin:0;overflow:visible}}.reply-composer{--composer-card-top:10px;--composer-overlay-inset-x:14px;background:var(--panel);border-top:1px solid var(--line);padding:10px 14px 14px}.reply-composer .composer-row{border-radius:0}.thread-empty{text-align:center;grid-row:span 3;align-content:center;place-items:center;gap:8px;padding:32px 24px;display:grid}.thread-icon{background:var(--panel-2);width:56px;height:56px;color:var(--muted);border-radius:16px;place-items:center;display:grid}.thread-empty strong{color:var(--text-strong);font-size:15px}.thread-empty span{color:var(--muted);max-width:260px;font-size:13px;line-height:1.5}.profile-pane{overflow-y:auto}.profile-hero{background:linear-gradient(180deg, transparent, #0000003d), linear-gradient(135deg, hsl(var(--hue,220deg) 76% 58%), hsl(calc(var(--hue,220deg) + 54deg) 74% 38%));border-bottom:1px solid var(--line);place-items:end center;min-height:210px;padding:28px 20px;display:grid}.profile-avatar{aspect-ratio:1;color:#fff;background:#ffffff2e;border-radius:16px;place-items:center;width:min(240px,70%);font-size:clamp(48px,12vw,88px);font-weight:800;display:grid;overflow:hidden;box-shadow:0 26px 60px -30px #000000e6}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-pane-body{gap:18px;padding:18px 16px 22px;display:grid}.profile-pane-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.profile-pane-title h2{color:var(--text-strong);letter-spacing:0;margin:0;font-size:22px}.profile-pane-title span{color:var(--muted);margin-top:3px;font-size:13px;display:block}.profile-pane-title .bot-badge{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);min-height:20px;color:var(--accent);border-radius:999px;align-items:center;margin-top:6px;padding:0 8px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.text-action{color:var(--accent);background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:13px;font-weight:700}.text-action:hover{background:var(--accent-soft)}.profile-presence{color:var(--text);align-items:center;gap:8px;font-size:14px;display:inline-flex}.profile-actions-row{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;display:grid}.profile-actions-row .primary-action,.profile-actions-row .ghost-action{border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items:center;width:100%;min-width:0;height:48px;padding:0 16px;font-size:14px;font-weight:800;line-height:1;display:inline-flex}.moderation-actions{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px;display:grid}.moderation-actions .primary-action,.moderation-actions .ghost-action,.moderation-actions .danger-action{border-radius:var(--radius);min-height:40px;font-size:13px;font-weight:800}.danger-action{border:1px solid color-mix(in srgb, var(--danger), transparent 35%);background:color-mix(in srgb, var(--danger), transparent 86%);color:var(--danger)}.role-pill{background:var(--panel-2);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.profile-info{border-top:1px solid var(--line);gap:12px;padding-top:18px;display:grid}.profile-info header{justify-content:space-between;align-items:center;gap:10px;display:flex}.profile-info header strong{color:var(--text-strong);font-size:14px}.profile-info-row{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;min-height:48px;display:grid}.info-icon{background:var(--panel-2);width:48px;height:48px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.info-icon svg{flex:none;display:block}.profile-info-row>div>small,.profile-info-row>div>span{display:block}.profile-info-row>div>small{color:var(--muted);font-size:12px;line-height:1.2}.profile-info-row>div>span{color:var(--text);overflow-wrap:anywhere;font-size:14px;line-height:1.3}.profile-note{color:var(--muted);margin:0;font-size:13px;line-height:1.5}@media (width<=820px){.thread{min-height:100dvh}.thread>header{min-height:calc(60px + var(--safe-area-top));padding-top:calc(12px + var(--safe-area-top));padding-right:calc(16px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.thread-scroll{padding-right:calc(16px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.reply-composer{padding-right:calc(14px + var(--safe-area-right));padding-bottom:calc(14px + var(--safe-area-bottom));padding-left:calc(14px + var(--safe-area-left))}}.thread-scroll{overflow-anchor:none}.thread-history{text-align:center;padding:8px 16px}.thread-history p{color:var(--danger);font-size:12px}.thread-history--latest{border-top:1px solid var(--line)}.thread-target{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius)}.artifact-viewer{z-index:2;border-left:1px solid var(--line);background:var(--panel);opacity:0;pointer-events:none;grid-template-rows:auto minmax(0,1fr);min-width:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);display:grid;overflow:hidden;transform:translate(28px)}.artifact-viewer.open{opacity:1;pointer-events:auto;transform:translate(0)}.artifact-viewer__header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, var(--bg));justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:10px 12px 10px 16px;display:flex}.artifact-viewer__identity{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:5px 10px;min-width:0;display:grid}.artifact-viewer__identity span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;font-size:11px;font-weight:700}.artifact-viewer__identity strong{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.artifact-viewer__identity small{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px}.artifact-viewer__actions,.artifact-viewer__segmented{align-items:center;gap:4px;display:inline-flex}.artifact-viewer__actions>a,.artifact-viewer__actions>button,.artifact-viewer__segmented button,.artifact-viewer__pdf-toolbar button{border-radius:var(--radius-sm);min-width:32px;height:32px;color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;padding:0 9px;text-decoration:none;display:inline-grid}.artifact-viewer__office-toolbar button,.artifact-viewer__sheet-tabs button{border-radius:var(--radius-sm);min-height:30px;color:var(--muted);background:0 0;border:1px solid #0000;padding:0 10px;font-size:11px}.artifact-viewer__actions>button{font-size:20px;line-height:1}.artifact-viewer__actions>a:hover,.artifact-viewer__actions>button:hover,.artifact-viewer__segmented button:hover,.artifact-viewer__pdf-toolbar button:hover:not(:disabled){border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.artifact-viewer__actions :focus-visible,.artifact-viewer__pdf-toolbar button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artifact-viewer__segmented{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);padding:2px}.artifact-viewer__segmented button{min-width:58px;height:28px;font-size:11px;font-weight:650}.artifact-viewer__segmented button.active{border-color:var(--line);background:var(--panel);color:var(--text-strong)}.artifact-viewer__body{background:var(--bg);min-height:0;overflow:auto}.artifact-viewer__state{min-height:100%;color:var(--muted);text-align:center;align-content:center;justify-items:center;gap:10px;padding:32px 24px;display:grid}.artifact-viewer__state strong{color:var(--text-strong);font-size:15px}.artifact-viewer__state p{max-width:34ch;margin:0;font-size:13px;line-height:1.5}.artifact-viewer__state a{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel);min-height:36px;color:var(--text-strong);margin-top:4px;padding:8px 12px;font-size:13px;font-weight:650;text-decoration:none}.artifact-viewer__state--error svg{color:var(--danger)}.artifact-viewer__spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite artifact-spin}@keyframes artifact-spin{to{transform:rotate(360deg)}}.artifact-viewer__source{background:color-mix(in srgb, var(--bg) 90%, #090b10);width:max-content;min-width:100%;min-height:100%;color:var(--text);font-family:var(--font-mono);tab-size:2;white-space:pre;margin:0;padding:20px;font-size:12px;line-height:1.65}.artifact-viewer__source code{font:inherit}.artifact-viewer__document{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:min(100%,760px);min-height:calc(100% - 32px);color:var(--text);overflow-wrap:anywhere;margin:16px auto;padding:clamp(24px,5vw,56px);font-size:15px;line-height:1.65}.artifact-viewer__document>:first-child{margin-top:0}.artifact-viewer__document>:last-child{margin-bottom:0}.artifact-viewer__document h1,.artifact-viewer__document h2,.artifact-viewer__document h3{color:var(--text-strong);line-height:1.25}.artifact-viewer__document h1{font-size:28px}.artifact-viewer__document h2{margin-top:1.75em;font-size:21px}.artifact-viewer__document h3{margin-top:1.5em;font-size:17px}.artifact-viewer__document pre{border-radius:var(--radius);background:var(--panel-2);padding:14px;overflow:auto}.artifact-viewer__document code{font-family:var(--font-mono)}.artifact-viewer__document table{border-collapse:collapse;width:100%}.artifact-viewer__document th,.artifact-viewer__document td{border:1px solid var(--line-strong);text-align:left;padding:8px 10px}.artifact-viewer__document img{max-width:100%;height:auto}.artifact-viewer__document a{color:var(--accent)}.artifact-viewer__body.is-pdf{grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.artifact-viewer__body.is-office{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.artifact-viewer__office-toolbar,.artifact-viewer__sheet-tabs{border-bottom:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:11px;display:flex}.artifact-viewer__office-toolbar button:disabled{cursor:not-allowed;opacity:.4}.artifact-viewer__office-toolbar button:hover:not(:disabled),.artifact-viewer__sheet-tabs button:hover,.artifact-viewer__sheet-tabs button.active{border-color:var(--line);background:var(--hover-strong);color:var(--text-strong)}.artifact-viewer__office-toolbar button:focus-visible,.artifact-viewer__sheet-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.artifact-viewer__office-toolbar{flex-wrap:wrap}.artifact-viewer__spreadsheet{background:var(--panel);min-height:0;overflow:auto}.artifact-viewer__spreadsheet table{table-layout:fixed;border-spacing:0;border-collapse:separate;width:max-content;color:var(--text);font-size:12px}.artifact-viewer__spreadsheet th,.artifact-viewer__spreadsheet td{box-sizing:border-box;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);text-align:left;text-overflow:ellipsis;white-space:nowrap;width:160px;min-width:160px;max-width:160px;height:30px;padding:5px 8px;overflow:hidden}.artifact-viewer__spreadsheet thead th{z-index:2;background:var(--panel-2);color:var(--muted);text-align:center;position:sticky;top:0}.artifact-viewer__spreadsheet .row-heading{z-index:1;background:var(--panel-2);width:44px;min-width:44px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;position:sticky;left:0}.artifact-viewer__spreadsheet thead .row-heading{z-index:3}.artifact-viewer__grid-note{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:max-content;max-width:min(480px,100vw - 48px);color:var(--muted);white-space:normal;margin:16px;padding:8px 10px;font-size:12px;line-height:1.45;position:sticky;left:0}.artifact-viewer__sheet-tabs{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-start;overflow-x:auto}.artifact-viewer__sheet-tabs button{flex:none}.artifact-viewer__slide-stage{align-content:center;place-items:center;gap:12px;min-height:0;padding:24px;display:grid;overflow:auto}.artifact-viewer__slide{aspect-ratio:16/9;color:#172033;background:#fff;flex-direction:column;justify-content:safe center;width:min(100%,860px);padding:48px;display:flex;overflow:auto;box-shadow:0 16px 48px -24px #000000a6}.artifact-viewer__slide h2{letter-spacing:0;margin:0 0 .7em;font-size:36px;line-height:1.15}.artifact-viewer__slide p{margin:.35em 0;font-size:20px;line-height:1.4}.artifact-viewer__office-note{color:var(--muted);margin:0;font-size:12px}@media (width<=640px){.artifact-viewer__slide{padding:28px}.artifact-viewer__slide h2{font-size:24px}.artifact-viewer__slide p{font-size:15px}}.artifact-viewer__pdf-toolbar{border-bottom:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:4px;padding:6px 10px;font-size:11px;display:flex}.artifact-viewer__pdf-toolbar button{min-width:30px;height:30px;font-size:11px}.artifact-viewer__pdf-toolbar button:disabled{cursor:not-allowed;opacity:.4}.artifact-viewer__toolbar-divider{background:var(--line);width:1px;height:18px;margin:0 4px}.artifact-viewer__pdf-stage{text-align:center;min-height:0;padding:24px;overflow:auto}.artifact-viewer__pdf-stage canvas{background:#fff;max-width:none;transition:opacity .12s;display:inline-block;box-shadow:0 16px 48px -24px #000000a6}.artifact-viewer__pdf-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.artifact-viewer__pdf-stage.is-rendering canvas{opacity:.55}.hljs-comment,.hljs-quote{color:var(--muted);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal,.hljs-section,.hljs-link{color:var(--accent)}.hljs-string,.hljs-title,.hljs-name,.hljs-type,.hljs-attribute,.hljs-symbol,.hljs-bullet,.hljs-addition{color:var(--success)}.hljs-number,.hljs-meta,.hljs-built_in,.hljs-builtin-name,.hljs-params{color:var(--activity-accent)}.hljs-deletion{color:var(--danger)}@media (width<=820px){.artifact-viewer{z-index:40;border-left:0;min-height:100dvh;position:fixed;inset:0}.artifact-viewer__header{min-height:calc(64px + var(--safe-area-top));padding-top:calc(10px + var(--safe-area-top));padding-right:calc(12px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.artifact-viewer__identity small{display:none}.artifact-viewer__document{border:0;border-radius:0;min-height:100%;margin:0}}@media (prefers-reduced-motion:reduce){.artifact-viewer{transition:none}.artifact-viewer__spinner{animation-duration:1.4s}}.modal-scrim{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05080f8a;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-backdrop{background:0 0;border:0;position:absolute;inset:0}.modal-backdrop:focus{outline:0}.profile-modal{z-index:1;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(480px,100%);box-shadow:var(--key-edge), var(--shadow);animation:.15s ease-out settings-modal-fade;position:relative;overflow:hidden}.profile-modal>header{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 4px;display:flex}.profile-modal>header p{color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:10px;font-weight:600}.profile-modal>header h2{color:var(--text-strong);font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:700}.profile-modal>header>button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:28px;height:28px;color:var(--muted);flex:none;place-items:center;font-size:16px;line-height:1;display:grid}.profile-modal>header>button:hover{background:var(--panel-3);color:var(--text-strong)}.create-modal{width:min(420px,100%)}.profile-form{gap:14px;padding:20px;display:grid}.field{gap:6px;display:grid}.field span{color:var(--muted);font-size:12px;font-weight:700}.field input,.field select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:100%;height:38px;color:var(--text);padding:0 12px}.field select{cursor:pointer}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.profile-status{color:var(--success);font-size:12px}.profile-status.error{color:var(--danger)}.profile-actions{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.person-picker{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);gap:4px;max-height:240px;padding:4px;display:grid;overflow-y:auto}.person-choice{border-radius:var(--radius-sm);width:100%;min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:6px 8px;display:grid}.person-choice:hover{background:var(--hover-strong)}.person-choice .dm-avatar{width:32px;height:32px}.person-choice strong,.person-choice small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.person-choice strong{color:var(--text-strong);font-size:13px}.person-choice small{color:var(--muted);font-size:12px}.person-empty{color:var(--muted);padding:10px 8px;font-size:12px}.profile-actions .ghost-action,.profile-actions .primary-action,.profile-actions .danger-action{box-sizing:border-box;border-radius:var(--radius);white-space:nowrap;min-height:44px;box-shadow:var(--key-edge);flex:none;justify-content:center;align-items:center;padding:0 14px;font-weight:700;line-height:1;transition:background .12s,box-shadow 80ms,transform 80ms;display:inline-flex}.ghost-action{border:1px solid var(--line-strong);background:var(--panel);color:var(--text)}.primary-action{border:1px solid color-mix(in srgb, var(--accent) 70%, var(--text-strong));background:var(--accent);color:var(--accent-contrast)}.profile-actions .danger-action{border:1px solid color-mix(in srgb, var(--danger) 76%, var(--text-strong));background:var(--danger);color:#fff}.ghost-action:hover{background:var(--hover)}.primary-action:hover{background:var(--accent-hover)}.profile-actions .danger-action:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 86%, #000)}.profile-actions .ghost-action:disabled,.profile-actions .primary-action:disabled,.profile-actions .danger-action:disabled{cursor:default;opacity:.58}.profile-actions .ghost-action:active,.profile-actions .primary-action:active,.profile-actions .danger-action:active{box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.delete-message-scrim{padding:20px}.delete-message-modal{width:min(520px,100%)}.delete-message-modal>header{padding-bottom:10px}.delete-message-content{gap:18px;padding:4px 20px 20px;display:grid}.delete-message-content>p{color:var(--text);margin:0;font-size:14px;line-height:1.5}.delete-message-preview{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-2);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px;padding:14px;display:grid}.delete-message-preview__content{min-width:0}.delete-message-preview>.avatar{border-radius:9px;width:36px;height:36px;margin:0}.delete-message-preview__meta{align-items:baseline;gap:8px;min-width:0;display:flex}.delete-message-preview__meta strong{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.delete-message-preview__meta time{color:var(--muted);flex:none;font-size:11px}.delete-message-preview__body{max-height:128px;color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap;margin-top:4px;font-size:14px;line-height:1.45;overflow:auto}.delete-message-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:0;display:grid}.delete-message-actions button{width:100%}@media (width<=520px){.delete-message-modal{width:100%}.delete-message-content,.delete-message-modal>header{padding-inline:16px}}.channel-settings-scrim{padding:20px}.channel-settings-modal{width:min(460px,100%)}.channel-settings-content{gap:18px;padding:14px 20px 20px;display:grid}.channel-settings-name{color:var(--text-strong);font-family:var(--font-display);font-size:16px;display:block}.channel-settings-content p{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.channel-settings-content .channel-settings-warning{border-left:3px solid var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--panel-2));color:var(--text);margin:0;padding:12px}.channel-settings-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:0;display:grid}.channel-settings-actions button{width:100%}@media (width<=520px){.channel-settings-content,.channel-settings-modal>header{padding-inline:16px}}.image-viewer-scrim{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#000000c7;padding:28px}.image-viewer{z-index:1;color:#fff;background:#07090f;border:1px solid #ffffff1f;border-radius:14px;grid-template-rows:auto minmax(0,1fr);width:min(1280px,100%);height:min(900px,100dvh - 56px);max-height:100%;animation:.15s cubic-bezier(.2,.8,.2,1) picker-in;display:grid;position:relative;overflow:hidden;box-shadow:0 34px 90px -34px #000000f2}.image-viewer>header{background:#ffffff0a;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:10px 12px 10px 16px;display:flex}.image-viewer>header strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.image-viewer>header div{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.image-viewer>header a{color:#fff;background:#ffffff14;border-radius:7px;align-items:center;height:30px;padding:0 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.image-viewer>header a:hover{background:#ffffff24}.image-viewer>header a:focus-visible,.image-viewer>header button:focus-visible{outline-offset:2px;outline:2px solid #fff}.image-viewer>header button{color:#ffffffc7;background:0 0;border:0;border-radius:7px;place-items:center;width:30px;height:30px;font-size:22px;line-height:1;display:grid}.image-viewer>header button:hover{color:#fff;background:#ffffff1f}.image-viewer-stage{place-items:center;min-height:0;padding:18px;display:grid}.image-viewer-stage img{object-fit:contain;background:#ffffff0a;border-radius:8px;max-width:100%;max-height:100%;display:block}@media (width<=720px),(height<=520px) and (orientation:landscape){.image-viewer-scrim{padding:0}.image-viewer{border:0;border-radius:0;width:100%;height:100dvh}.image-viewer>header{padding-top:calc(10px + var(--safe-area-top));padding-right:calc(12px + var(--safe-area-right));padding-left:calc(16px + var(--safe-area-left))}.image-viewer-stage{padding-right:calc(12px + var(--safe-area-right));padding-bottom:calc(12px + var(--safe-area-bottom));padding-left:calc(12px + var(--safe-area-left))}}.mobile-nav-toggle{top:calc(14px + var(--safe-area-top));left:calc(14px + var(--safe-area-left));z-index:30;border:1px solid var(--line-strong);background:var(--panel);width:38px;height:38px;color:var(--text);border-radius:10px;font-size:22px;line-height:1;display:none;position:fixed}.mobile-nav-toggle .bars{gap:3px;display:grid}.mobile-nav-toggle .bars i{background:currentColor;border-radius:2px;width:16px;height:2px;display:block}.mobile-nav-backdrop{display:none}@media (width<=1180px){.shell{grid-template-columns:72px 240px minmax(0,1fr)}.shell.sidebar-collapsed,.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:72px 0 minmax(0,1fr)}.thread,.search-results{width:min(420px,100vw);box-shadow:var(--shadow);z-index:4;border-left:1px solid var(--line-strong);transition:transform .18s;position:fixed;inset:0 0 0 auto;transform:translate(100%)}.thread.open,.search-results{transform:translate(0)}.desktop-shell .thread,.desktop-shell .search-results{top:52px;bottom:0}}@media (width<=820px){.mobile-nav-toggle{place-items:center;display:grid}.shell,.shell.thread-open,.shell.search-open,.shell.sidebar-collapsed,.shell.sidebar-collapsed.thread-open,.shell.sidebar-collapsed.search-open{grid-template-columns:1fr}.sidebar-collapsed .sidebar{opacity:1;pointer-events:none;transform:translate(calc(-100% - 72px))}.guild-rail,.sidebar{z-index:20;pointer-events:none;height:100dvh;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.guild-rail{width:72px;padding-top:calc(14px + var(--safe-area-top));padding-bottom:calc(14px + var(--safe-area-bottom))}.sidebar{width:min(260px,100vw - 72px);left:72px;transform:translate(calc(-100% - 72px))}.nav-open .guild-rail,.nav-open .sidebar{pointer-events:auto;transform:translate(0,0)}.nav-open .guild-rail{padding-top:calc(62px + var(--safe-area-top))}.desktop-shell .guild-rail,.desktop-shell .sidebar{height:calc(100dvh - 52px);top:52px}.desktop-shell.nav-open .guild-rail{padding-top:calc(14px + var(--safe-area-top))}.desktop-shell .mobile-nav-backdrop{top:52px}.mobile-nav-backdrop{z-index:15;background:#05081075;border:0;padding:0;display:block;position:fixed;inset:0 0 0 min(332px,100vw)}.topbar{min-height:calc(60px + var(--safe-area-top));padding-top:calc(12px + var(--safe-area-top));padding-right:calc(20px + var(--safe-area-right));padding-left:calc(64px + var(--safe-area-left))}.thread>header,.search-results-head{padding-top:calc(12px + var(--safe-area-top));padding-left:calc(64px + var(--safe-area-left))}.search{width:180px}}@media (width<=520px){.search,.topbar-meta,.topbar-divider{display:none}}.message-row.highlight,.thread-root.highlight,.reply.highlight{animation:1.4s ease-out quote-flash}@keyframes quote-flash{0%{background:color-mix(in srgb, var(--accent) 22%, transparent)}to{background:0 0}}.quote-block{color:inherit;cursor:pointer;text-align:left;max-width:100%;font:inherit;background:0 0;border:0;border-radius:6px;align-items:stretch;gap:.5rem;margin:0 0 .35rem;padding:.25rem .5rem .25rem 0;display:inline-flex}.quote-block:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent)}.quote-block:disabled{cursor:default;opacity:.75}.quote-block .quote-bar{background:var(--accent);border-radius:2px;flex:0 0 3px;align-self:stretch;width:3px}.quote-block .quote-content{flex-direction:column;gap:.1rem;min-width:0;display:flex}.quote-block .quote-author{color:var(--accent);font-size:.78rem;font-weight:600}.quote-block .quote-snippet{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:56ch;font-size:.85rem;overflow:hidden}.quote-block .quote-snippet.muted{opacity:.75;font-style:italic}.quote-preview{background:color-mix(in srgb, var(--accent) 5%, transparent);border:0;border-bottom:1px solid var(--line);color:var(--muted);border-radius:0;align-items:center;gap:.5rem;margin:0;padding:6px 10px 6px 12px;font-size:12.5px;display:flex}.quote-preview .quote-bar{display:none}.quote-preview-body{flex:1;align-items:baseline;gap:.4rem;min-width:0;display:flex;overflow:hidden}.quote-preview-label{color:color-mix(in srgb, var(--accent) 85%, var(--text));white-space:nowrap;font-size:12px}.quote-preview-label strong{color:var(--text-strong);font-weight:600}.quote-preview-snippet{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);flex:1;min-width:0;font-size:12px;overflow:hidden}.quote-preview-clear{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:16px;line-height:1;transition:background .1s,color .1s}.quote-preview-clear:hover{color:var(--text-strong);background:var(--hover-strong)}.reply-quote-btn{color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:0;margin-left:auto;padding:0 .3rem;font-size:.95rem;transition:opacity .15s;position:relative}.reply:hover .reply-quote-btn,.thread-root:hover .reply-quote-btn,.reply-quote-btn:focus-visible{opacity:1}.reply-quote-btn:hover{color:var(--accent)}.tooltip{position:relative}.tooltip:before,.reply-quote-btn:before{content:attr(data-tooltip);z-index:20;background:var(--tooltip-bg);color:var(--tooltip-fg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:9px;padding:.42rem .62rem;font-size:.78rem;font-weight:700;line-height:1;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,4px)scale(.96);box-shadow:0 10px 28px #00000047}.tooltip:after,.reply-quote-btn:after{content:"";z-index:20;background:var(--tooltip-bg);opacity:0;pointer-events:none;border-radius:2px;width:12px;height:12px;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translate(-50%,4px)rotate(45deg)scale(.9)}.tooltip:hover:before,.tooltip:focus-visible:before,.reply-quote-btn:hover:before,.reply-quote-btn:focus-visible:before,.tooltip:hover:after,.tooltip:focus-visible:after,.reply-quote-btn:hover:after,.reply-quote-btn:focus-visible:after{opacity:1;transform:translate(-50%)scale(1)}.tooltip:hover:after,.tooltip:focus-visible:after,.reply-quote-btn:hover:after,.reply-quote-btn:focus-visible:after{transform:translate(-50%)rotate(45deg)scale(1)}.tooltip-align-end:before{transform-origin:100% 100%;left:auto;right:0;transform:translateY(4px)scale(.96)}.tooltip-align-end:hover:before,.tooltip-align-end:focus-visible:before{transform:translateY(0)scale(1)}.settings-modal-scrim{z-index:1000;color:var(--text);-webkit-font-smoothing:antialiased;background:var(--lightningcss-light,#080a0e6b)var(--lightningcss-dark,#0000008c);place-items:center;font-size:14px;line-height:1.5;animation:.15s ease-out settings-modal-fade;display:grid;position:fixed;inset:0}@keyframes settings-modal-fade{0%{opacity:0}to{opacity:1}}.settings-modal{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(1100px,96vw);height:min(760px,92vh);box-shadow:var(--shadow);grid-template-columns:232px minmax(0,1fr);display:grid;position:relative;overflow:hidden}.settings-modal__close{z-index:6;width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;place-items:center;transition:background .12s,color .12s;display:grid;position:absolute;top:14px;right:14px}.settings-modal__close:hover{background:var(--hover);color:var(--text-strong)}.settings-modal__rail{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;padding:16px 10px;display:flex;overflow-y:auto}.settings-modal__rail-group+.settings-modal__rail-group{margin-top:14px}.settings-modal__rail-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0;padding:6px 8px 4px;font-size:10px;font-weight:600}.settings-modal__rail-select{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:32px;color:var(--text);font:inherit;cursor:pointer;margin:2px 0 6px;padding:0 8px;font-size:13.5px;transition:border-color .12s,box-shadow .12s,background .12s}.settings-modal__rail-select:hover{border-color:var(--line-strong)}.settings-modal__rail-select:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__rail ul{margin:0;padding:0;list-style:none}.settings-modal__rail-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin:1px 0;padding:6px 10px;font-size:13.5px;line-height:1.4;transition:background .1s,color .1s;display:flex}.settings-modal__rail-item:hover{background:var(--hover)}.settings-modal__rail-item.is-active{background:var(--hover-strong);color:var(--text-strong);font-weight:600}.settings-modal__rail-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0;place-items:center;display:grid}.settings-modal__rail-icon svg{width:16px;height:16px;display:block}.settings-modal__rail-item.is-active .settings-modal__rail-icon{color:var(--text-strong)}.settings-modal__rail-avatar{color:#fff;background:linear-gradient(135deg, hsl(var(--hue,220deg) 70% 55%), hsl(calc(var(--hue,220deg) + 40deg) 70% 45%));border-radius:4px;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:9px;font-weight:700;display:grid;overflow:hidden}.settings-modal__rail-avatar img{object-fit:cover;width:100%;height:100%;display:block}.settings-modal__rail-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-modal__content{background:var(--panel);color:var(--text);padding:40px 56px 56px;overflow-y:auto}.settings-modal__content .settings-page__header{margin-bottom:32px}.settings-modal__content .settings-page__eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0 0 6px;font-size:10px;font-weight:600}.settings-modal__content .settings-page__h1{letter-spacing:-.01em;color:var(--text-strong);font-size:26px;font-weight:700;line-height:1.2;font-family:var(--font-display);margin:0 0 6px}.settings-modal__content .settings-page__lead{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.settings-modal__content .settings-form{flex-direction:column;gap:24px;max-width:640px;display:flex}.settings-modal__content .settings-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:20px;display:flex}.settings-modal__content .settings-footer__spacer{flex:1}.settings-modal__content .settings-section{flex-direction:column;gap:20px;display:flex}.settings-modal__content .settings-section__h{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:600}.settings-modal__content .settings-field{flex-direction:column;gap:6px;display:flex}.settings-modal__content .settings-field__label{color:var(--text-strong);font-size:13px;font-weight:600}.settings-modal__content .settings-field__hint{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.settings-modal__content .settings-field__hint.is-error{color:var(--danger)}.settings-modal__content .settings-identity{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:14px;padding:14px 16px;display:flex}.settings-modal__content .settings-identity__meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-modal__content .settings-identity__name{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;line-height:1.25;overflow:hidden}.settings-modal__content .settings-identity__handle{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;line-height:1.3;overflow:hidden}.settings-modal__content .settings-identity__tag{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:600}.settings-modal__content .settings-rows{flex-direction:column;display:flex}.settings-modal__content .settings-rows--sectioned .settings-row2{border-top:0;align-items:center;padding:12px 0}.settings-modal__content .settings-row2{border-top:1px solid var(--line);grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:32px;padding:20px 0;display:grid}.settings-modal__content .settings-row2--toggle{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}.settings-modal__content .settings-row2:first-child{border-top:0;padding-top:4px}.settings-modal__content .settings-row2__desc{min-width:0}.settings-modal__content .settings-row2__label{color:var(--text-strong);margin-bottom:4px;font-size:13.5px;font-weight:600;display:block}.settings-modal__content .settings-row2__hint{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.settings-modal__content .settings-row2__control{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;max-width:380px;display:flex}.settings-modal__content .settings-row2__control--end{flex-direction:row;justify-content:center;align-items:flex-end;max-width:none}.settings-modal__content .settings-rows__head{border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;padding:24px 0 12px;font-size:11px;font-weight:600}.settings-modal__content .settings-rows__head:first-child{border-top:0;padding-top:4px}.settings-modal__content .settings-rows__head+.settings-row2{border-top:0;padding-top:0}.settings-modal__content .settings-input-group{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:stretch;width:100%;transition:border-color .12s,box-shadow .12s,background .12s;display:flex}.settings-modal__content .settings-input-group:hover{border-color:var(--line-strong)}.settings-modal__content .settings-input-group:focus-within{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft)}.settings-modal__content .settings-input-group__prefix{color:var(--muted);border-right:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius-sm) 0 0 var(--radius-sm);place-items:center;padding:0 10px;font-size:14px;font-weight:500;display:grid}.settings-modal__content .settings-input--in-group{box-shadow:none!important;border-radius:0 var(--radius-sm) var(--radius-sm) 0!important;background:0 0!important;border:0!important;max-width:none!important}.settings-modal__content .settings-input--in-group:focus{box-shadow:none!important;background:0 0!important;border:0!important}.settings-modal__content .settings-linklike{color:var(--muted);cursor:pointer;font:inherit;text-underline-offset:2px;background:0 0;border:0;padding:2px 0;font-size:12.5px;text-decoration:underline;transition:color .12s}.settings-modal__content .settings-linklike:hover{color:var(--text-strong)}.settings-modal__content .settings-row{grid-template-columns:1fr auto;align-items:center;gap:24px;display:grid}.settings-modal__content .settings-row__main{min-width:0}.settings-modal__content .settings-row__label{color:var(--text-strong);margin-bottom:2px;font-size:13.5px;font-weight:600}.settings-modal__content .settings-row__hint{color:var(--muted);font-size:12.5px;line-height:1.5}.settings-modal__content .settings-row__hint.is-error{color:var(--danger)}.settings-modal__content .settings-input{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;max-width:420px;height:36px;color:var(--text);font:inherit;padding:0 12px;font-size:14px;transition:border-color .12s,box-shadow .12s,background .12s}.settings-modal__content .settings-input:hover{border-color:var(--line-strong)}.settings-modal__content .settings-input:focus{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-input--wide{max-width:560px}.settings-modal__content .settings-row .settings-input{width:auto;min-width:240px;max-width:320px}.settings-modal__content .settings-button{background:var(--panel-2);height:34px;color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius);font:inherit;cursor:pointer;white-space:nowrap;box-shadow:var(--key-edge);justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13.5px;font-weight:600;transition:background .1s,border-color .1s,box-shadow 80ms,transform 80ms;display:inline-flex}.settings-modal__content .settings-button:hover{background:var(--panel-3);border-color:var(--line-strong)}.settings-modal__content .settings-button:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.settings-modal__content .settings-button:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-button:disabled{opacity:.55;cursor:not-allowed}.settings-modal__content .settings-button--primary{background:var(--accent);color:var(--accent-contrast);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong))}.settings-modal__content .settings-button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.settings-modal__content .settings-switch{appearance:none;background:var(--line-strong);cursor:pointer;border:0;border-radius:9px;flex-shrink:0;width:32px;height:18px;margin:0;transition:background .15s;position:relative}.settings-modal__content .settings-switch:checked{background:var(--accent)}.settings-modal__content .settings-switch:disabled{opacity:.5;cursor:not-allowed}.settings-modal__content .settings-switch:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.settings-modal__content .settings-switch:checked:after{transform:translate(14px)}.settings-modal__content .settings-switch:focus-visible{box-shadow:0 0 0 3px var(--accent-soft);outline:0}.settings-modal__content .settings-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;display:flex}.settings-modal__content .settings-status{color:var(--muted);margin:0;font-size:13px}.settings-modal__content .settings-status.is-error{color:var(--danger)}@media (width<=720px){.settings-modal{border-radius:0;grid-template-rows:auto 1fr;grid-template-columns:1fr;width:100vw;height:100dvh}.settings-modal__rail{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;padding:8px;overflow-x:auto}.settings-modal__content{padding:24px 20px 60px}.settings-modal__content .settings-row2{grid-template-columns:1fr;gap:10px}.settings-modal__content .settings-row2__control{max-width:none}}.ws-settings{color:var(--text);z-index:50;background:var(--lightningcss-light,#0f0f0f38)var(--lightningcss-dark,#00000059);place-items:center;padding:28px 80px 28px 28px;font-size:14px;line-height:1.5;display:grid;position:fixed;inset:0}.ws-settings__panel{background:var(--panel);border:1px solid var(--line);width:100%;max-width:1400px;height:100%;box-shadow:var(--shadow);grid-template-columns:260px minmax(0,1fr);display:grid;overflow:hidden}.ws-settings__rail{background:var(--panel-2);border-right:1px solid var(--line);flex-direction:column;padding:14px 10px 18px;display:flex;overflow-y:auto}.ws-settings__rail-search{margin:2px 4px 12px;position:relative}.ws-settings__rail-search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.ws-settings__rail-search-icon svg{width:14px;height:14px;display:block}.ws-settings__rail-search-input{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:32px;color:var(--text);font:inherit;padding:0 12px 0 32px;font-size:13px}.ws-settings__rail-search-input::placeholder{color:var(--muted)}.ws-settings__rail-search-input:disabled{cursor:not-allowed;opacity:.65}.ws-settings__rail-group{margin-top:6px}.ws-settings__rail-heading{color:var(--muted);letter-spacing:.02em;margin:0;padding:8px 10px 6px;font-size:11.5px;font-weight:600}.ws-settings__rail-heading-name{color:var(--text-strong);font-weight:700}.ws-settings__rail-list{margin:0;padding:0;list-style:none}.ws-settings__rail-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;margin:1px 0;padding:6px 10px;font-size:14px;line-height:1.4;transition:background .1s,color .1s;display:flex}.ws-settings__rail-item:hover{background:var(--hover)}.ws-settings__rail-item.is-active{background:var(--hover-strong);color:var(--text-strong);font-weight:600}.ws-settings__rail-item-icon{width:16px;height:16px;color:var(--muted);flex-shrink:0;place-items:center;display:grid}.ws-settings__rail-item-icon svg{width:16px;height:16px;display:block}.ws-settings__rail-item.is-active .ws-settings__rail-item-icon{color:var(--text-strong)}.ws-settings__rail-item-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ws-settings__content{background:var(--bg);position:relative;overflow-y:auto}.ws-settings__content-inner{max-width:740px;padding:56px 80px 80px}.ws-settings__close{border:1px solid var(--line-strong);background:var(--panel);width:36px;height:36px;color:var(--text-strong);cursor:pointer;z-index:60;border-radius:50%;place-items:center;transition:background .12s,color .12s,border-color .12s;display:grid;position:fixed;top:28px;right:22px;box-shadow:0 1px 3px #00000026}@media (width<=760px){.ws-settings{padding:0}.ws-settings__panel{border:0;border-radius:0;max-width:none}}.ws-settings__close:hover{background:var(--panel-2);color:var(--text-strong);border-color:var(--line-strong)}.ws-settings__error{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--danger);margin:0 0 20px;padding:14px 16px;font-size:13.5px}.ws-settings .ws-page__header{margin-bottom:32px}.ws-settings .ws-page__h1{letter-spacing:-.01em;color:var(--text-strong);font-size:28px;font-weight:700;line-height:1.2;font-family:var(--font-display);margin:0 0 8px}.ws-settings .ws-page__lead{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.workspace-settings-empty{background:var(--panel-2);border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);padding:24px;font-size:14px;line-height:1.6}.workspace-settings-empty p{margin:0}.ws-section{border-top:1px solid var(--line);flex-direction:column;margin-top:24px;display:flex}.ws-section__h{color:var(--text-strong);margin:0;padding:18px 0 6px;font-size:14px;font-weight:700}.ws-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 0;display:grid}.ws-section>.ws-row:first-child,.ws-section>.ws-section__h+.ws-row{border-top:0}.ws-row__main{min-width:0}.ws-row__label{color:var(--text-strong);margin-bottom:4px;font-size:14px;font-weight:600}.ws-row__hint{color:var(--muted);font-size:13px;line-height:1.5}.ws-row__hint b{color:var(--text-strong);font-weight:600}.ws-row__value{color:var(--text-strong);text-align:right;word-break:break-word;max-width:320px;font-size:14px;font-weight:500}.ws-row__control{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;max-width:420px;display:flex}.ws-strip{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;font-size:14px;display:flex}.ws-strip__avatar{background:linear-gradient(135deg, var(--brand-a), var(--brand-b));width:28px;height:28px;color:var(--brand-contrast);border-radius:6px;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid;overflow:hidden}.ws-strip__avatar img{object-fit:cover;width:100%;height:100%;display:block}.ws-strip__name{color:var(--text-strong);font-weight:600}.ws-strip__pill{letter-spacing:.01em;border-radius:999px;margin-left:auto;padding:2px 10px;font-size:12px;font-weight:600}.ws-strip__pill--owner{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success);border:1px solid color-mix(in srgb, var(--success) 32%, transparent)}.ws-strip__pill--moderator{background:color-mix(in srgb, var(--delivery-accent) 15%, transparent);color:var(--delivery-accent);border:1px solid color-mix(in srgb, var(--delivery-accent) 32%, transparent)}.ws-strip__pill--member,.ws-strip__pill--guest,.ws-strip__pill--bot{background:var(--panel-3,var(--hover));color:var(--text);border:1px solid var(--line)}.ws-input{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);width:220px;max-width:100%;height:34px;color:var(--text-strong);font:inherit;padding:0 12px;font-size:14px}.ws-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.ws-input:disabled{opacity:.65;cursor:not-allowed}.ws-select{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);width:220px;max-width:100%;height:34px;color:var(--text-strong);font:inherit;padding:0 34px 0 10px;font-size:13.5px}.ws-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:0}.ws-select:disabled{opacity:.65;cursor:not-allowed}.ws-file{display:none}.ws-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:12px;padding:14px 0 0;display:flex}.ws-status{min-height:20px;color:var(--muted);flex:1;margin:0;font-size:13px}.ws-status.is-error{color:var(--danger)}.ws-input[readonly]{cursor:default;color:var(--text)}.ws-btn{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--radius);height:34px;color:var(--text-strong);font:inherit;cursor:pointer;box-shadow:var(--key-edge);padding:0 14px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s,border-color .12s,box-shadow 80ms,transform 80ms}.ws-btn:active:not(:disabled){box-shadow:var(--key-edge-pressed);transform:translateY(1px)}.ws-btn:hover:not(:disabled){background:var(--panel-3,var(--hover-strong));border-color:var(--line-strong)}.ws-btn:disabled{opacity:.55;cursor:not-allowed}.ws-btn--danger{color:var(--danger);border-color:var(--line)}.ws-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 9%, transparent);border-color:var(--danger)}.ws-btn--primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 70%, var(--text-strong));color:var(--accent-contrast);align-items:center;gap:6px;display:inline-flex}.ws-btn--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ws-btn--primary svg{width:14px;height:14px}.ws-settings__content:has(.ws-members-page){overflow:hidden}.ws-settings__content-inner:has(.ws-members-page){flex-direction:column;max-width:none;height:100%;min-height:0;padding:56px 80px 28px;display:flex}.ws-members-page{flex-direction:column;flex:1;min-height:0;display:flex}.ws-members-page__header{flex:none}.ws-members__toolbar{background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 12px;padding:14px 0 12px;display:flex}.ws-members__count{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}.ws-members__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ws-members__search{align-items:center;display:flex;position:relative}.ws-members__search-icon{width:14px;height:14px;color:var(--muted);pointer-events:none;display:inline-flex;position:absolute;left:10px}.ws-members__search-icon svg{width:100%;height:100%}.ws-members__search-input{width:220px;height:34px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;outline:none;padding:0 12px 0 32px;font-size:13px}.ws-members__search-input::-webkit-search-cancel-button{appearance:none}.ws-members__search-input:focus{border-color:var(--accent)}.ws-members__role-select{height:34px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;outline:none;padding:0 28px 0 10px;font-size:13px}.ws-members__list{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex:auto;min-height:0;overflow:hidden auto}.ws-members__row{border-bottom:1px solid var(--line);box-sizing:border-box;grid-template-columns:36px 1fr auto auto;align-items:center;gap:14px;padding:0 16px;display:grid}.ws-members__avatar{letter-spacing:-.02em;background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.ws-members__avatar--bot{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-members__avatar img{object-fit:cover;width:100%;height:100%}.ws-members__main{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-members__name{color:var(--text-strong,var(--text));white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ws-members__meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:12.5px;display:flex;overflow:hidden}.ws-members__handle{font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:12px}.ws-members__dot{opacity:.6}.ws-members__pill{text-transform:capitalize;color:var(--text);white-space:nowrap;background:#7f7f7f24;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.ws-members__pill--owner{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.ws-members__pill--moderator{background:color-mix(in srgb, var(--delivery-accent) 16%, transparent);color:var(--delivery-accent)}.ws-members__pill--bot{background:var(--accent-soft);color:var(--accent)}.ws-members__pill--guest{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-members__actions{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.ws-members__actions:hover:not(:disabled){background:var(--bg);border-color:var(--line);color:var(--text)}.ws-members__actions:disabled{opacity:.45;cursor:not-allowed}.ws-members__empty{text-align:center;border:1px dashed var(--line);color:var(--muted);background:var(--panel);border-radius:8px;margin-top:24px;padding:36px 20px;font-size:13.5px}.ws-members__loading{color:var(--muted);text-align:center;border-top:1px solid var(--line);padding:10px 16px;font-size:12.5px}.ws-members__row--skeleton{height:64px}.ws-members__skeleton{background:linear-gradient(90deg,#7f7f7f14,#7f7f7f2e,#7f7f7f14) 0 0/200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite ws-members-shimmer}.ws-members__skeleton--line{height:10px;margin:4px 0}.ws-members__skeleton--pill{border-radius:999px;width:64px;height:18px}@keyframes ws-members-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=760px){.ws-settings__panel{grid-template-rows:auto 1fr;grid-template-columns:1fr}.ws-settings__rail{border-right:0;border-bottom:1px solid var(--line);padding:10px}.ws-settings__content-inner{padding:32px 20px 60px}.ws-settings__close{top:10px;right:12px}}.ws-bots-page{flex-direction:column;gap:0;display:flex}.ws-bots__toolbar{background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 12px;padding:14px 0 12px;display:flex}.ws-bots__count{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12.5px;font-weight:600}.ws-bots__toolbar-actions{align-items:center;gap:8px;display:flex}.ws-bots__panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin:8px 0 16px;padding:18px 20px}.ws-bots__empty{text-align:center;border:1px dashed var(--line);color:var(--muted);background:var(--surface);border-radius:8px;margin-top:16px;padding:36px 20px;font-size:13.5px}.ws-bots__list{flex-direction:column;margin-bottom:60px;display:flex}.ws-bots__row{border-bottom:1px solid var(--line)}.ws-bots__row:last-child{border-bottom:0}.ws-bots__row.is-expanded{background:var(--surface)}.ws-bots__row-main{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:36px 1fr auto auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.ws-bots__row-main:hover{background:var(--hover,#7f7f7f0f)}.ws-bots__row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-bots__row-name{color:var(--text-strong,var(--text));white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.ws-bots__row-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:12.5px;display:flex;overflow:hidden}.ws-bots__owner-pill{color:var(--text);white-space:nowrap;background:#7f7f7f24;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.ws-bots__owner-pill--service{background:color-mix(in srgb, var(--delivery-accent) 16%, transparent);color:var(--delivery-accent)}.ws-bots__owner-pill--user{background:color-mix(in srgb, var(--warn) 18%, transparent);color:color-mix(in srgb, var(--warn) 72%, var(--text))}.ws-bots__chevron{width:20px;height:20px;color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.ws-bots__detail{border-top:1px dashed var(--line);flex-direction:column;gap:12px;padding:4px 16px 18px;display:flex}.ws-bots__detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding-top:14px;display:flex}.ws-bots__detail-title{color:var(--text-strong,var(--text));margin:0 0 4px;font-size:13.5px;font-weight:600}.ws-bots__detail-hint{color:var(--muted);max-width:60ch;margin:0;font-size:12.5px}.ws-bots__detail-actions{flex-wrap:wrap;gap:8px;display:flex}.ws-bots__detail-empty{color:var(--muted);background:var(--bg);border:1px dashed var(--line);border-radius:6px;margin:0;padding:16px;font-size:13px}.ws-bots__token-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ws-bots__token-row{background:var(--bg);border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;padding:12px 14px;display:flex}.ws-bots__token-row>.ws-btn{flex-shrink:0}.ws-bots__token-main{flex-direction:column;flex:240px;gap:4px;min-width:0;display:flex}.ws-bots__token-name{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-bots__token-meta{color:var(--muted);font-size:12.5px}.ws-bots__scope-row{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.ws-bots__scope-chip{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:2px 8px;font-size:11.5px}.ws-bots__scope-chip--bundle{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:color-mix(in srgb, var(--accent) 35%, transparent);font-family:inherit;font-weight:600}.ws-bots__scope-toggle{color:var(--muted);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11.5px;text-decoration:underline}.ws-bots__scope-toggle:hover{color:var(--text)}.ws-bots__scope-details{margin-top:6px}.ws-bots__scope-details>summary{color:var(--muted);cursor:pointer;width:fit-content;font-size:11.5px}.ws-bots__scope-details[open]>summary{margin-bottom:6px}.ws-bots__form{flex-direction:column;gap:16px;display:flex}.ws-bots__form-header{flex-direction:column;gap:4px;display:flex}.ws-bots__form-title{color:var(--text-strong,var(--text));margin:0;font-size:16px;font-weight:600}.ws-bots__form-hint{color:var(--muted);max-width:60ch;margin:0;font-size:13px}.ws-bots__form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.ws-bots__form-grid{grid-template-columns:1fr}}.ws-bots__form-field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.ws-bots__form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ws-bots__form-input{height:34px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none;padding:0 12px;font-size:13.5px}.ws-bots__form-input:focus{border-color:var(--accent)}.ws-bots__form-handle{background:var(--surface);border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:flex}.ws-bots__form-handle span{color:var(--muted);font-family:var(--font-mono);font-size:13px}.ws-bots__form-handle .ws-bots__form-input{background:0 0;border:0;flex:1;padding-left:0}.ws-bots__choices{flex-direction:column;gap:8px;display:flex}.ws-bots__choice{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:18px 1fr;gap:2px 10px;padding:10px 12px;display:grid}.ws-bots__choice.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent)}.ws-bots__choice input{accent-color:var(--accent);grid-row:1/span 2;align-self:center}.ws-bots__choice-title{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-bots__choice-hint{color:var(--muted);font-size:12.5px}.ws-bots__form-error{background:color-mix(in srgb, var(--danger) 9%, transparent);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 32%, transparent);border-radius:6px;margin:0;padding:10px 12px;font-size:13px}.ws-bots__form-actions{justify-content:flex-end;gap:8px;display:flex}.ws-bots__token-form-panel{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:14px}.ws-bots__token-form .ws-bots__choices{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=720px){.ws-bots__token-form .ws-bots__choices{grid-template-columns:1fr}}.ws-bots__reveal{background:var(--surface);border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:14px;margin:8px 0 16px;padding:18px 20px;display:flex}.ws-bots__reveal-header{flex-direction:column;gap:4px;display:flex}.ws-bots__reveal-title{color:var(--text-strong,var(--text));margin:0;font-size:16px;font-weight:600}.ws-bots__reveal-hint{color:var(--muted);max-width:60ch;margin:0;font-size:13px}.ws-bots__reveal-hint code{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--text);white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:12px}.ws-bots__reveal-field{flex-direction:column;gap:6px;display:flex}.ws-bots__reveal-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.ws-bots__reveal-row{align-items:center;gap:8px;display:flex}.ws-bots__reveal-input{height:34px;font-family:var(--font-mono);color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;flex:1;padding:0 12px;font-size:13px}.ws-bots__reveal-snippet-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.ws-bots__reveal-details{border:1px solid var(--line);background:var(--bg);border-radius:6px}.ws-bots__reveal-summary{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 14px;font-size:11px;font-weight:600}.ws-bots__reveal-summary:hover{color:var(--text)}.ws-bots__reveal-details-body{gap:8px;padding:0 14px 12px;display:grid}.ws-bots__reveal-details-body .ws-bots__reveal-hint{margin:0}.ws-bots__setup-mode{background:var(--bg);border:1px solid var(--line);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));width:min(320px,100%);padding:3px;display:inline-grid}.ws-bots__setup-mode button{min-height:30px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 12px;font-size:12.5px;font-weight:600}.ws-bots__setup-mode button.is-active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--line)}.ws-bots__reveal-snippet{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);color:var(--text);white-space:pre-wrap;border-radius:6px;margin:0;padding:12px 14px;font-size:12.5px;overflow-x:auto}.ws-bots__reveal-ack{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.ws-bots__reveal-actions{justify-content:flex-end;display:flex}.ws-bots__my-list{flex-direction:column;gap:18px;display:flex}.ws-bots__my-group{flex-direction:column;gap:8px;display:flex}.ws-bots__my-group-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.ws-bots__my-group-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px;font-weight:600}.ws-bots__my-rows{border:1px solid var(--line);background:var(--surface);border-radius:6px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ws-bots__my-row{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.ws-bots__my-row:last-child{border-bottom:0}.ws-bots__my-row-text{flex-direction:column;gap:2px;min-width:0;display:flex}.ws-bots__my-row-name{color:var(--text-strong,var(--text));font-size:14px;font-weight:600}.ws-bots__my-row-meta{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.appearance-preview{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.appearance-preview__bar{border-bottom:1px solid var(--line);background:var(--panel);color:var(--text-strong);align-items:baseline;gap:8px;padding:9px 14px;font-size:12px;font-weight:700;display:flex}.appearance-preview__hash{color:var(--accent)}.appearance-preview__topic{color:var(--muted);font-size:11.5px;font-weight:500}.appearance-preview__chat{gap:14px;padding:14px 16px 16px;display:grid}.appearance-preview[data-density=compact] .appearance-preview__chat{gap:7px;padding:10px 14px 12px}.appearance-preview__msg{grid-template-columns:34px minmax(0,1fr);gap:10px;display:grid}.appearance-preview[data-density=compact] .appearance-preview__msg{grid-template-columns:24px minmax(0,1fr);gap:8px}.appearance-preview__avatar{background:var(--accent);width:34px;height:34px;color:var(--accent-contrast);border-radius:9px;place-items:center;font-size:14px;font-weight:700;display:grid}.appearance-preview[data-density=compact] .appearance-preview__avatar{border-radius:7px;width:24px;height:24px;font-size:11px}.appearance-preview__avatar.is-agent{background:var(--accent-2)}.appearance-preview__body{gap:3px;min-width:0;display:grid}.appearance-preview[data-density=compact] .appearance-preview__body{gap:1px}.appearance-preview__head{align-items:baseline;gap:7px;display:flex}.appearance-preview__who{color:var(--text-strong);font-size:13px;font-weight:700}.appearance-preview[data-density=compact] .appearance-preview__who{font-size:12px}.appearance-preview__when{color:var(--muted);font-size:10px}.appearance-preview__text{font-size:13px;line-height:1.5}.appearance-preview[data-density=compact] .appearance-preview__text{font-size:12.5px;line-height:1.4}.appearance-preview__activity{background:color-mix(in srgb, var(--accent-2) 9%, var(--panel));color:var(--muted);border-radius:7px 7px 0 0;margin-top:3px;padding:6px 10px;font-size:11.5px}.appearance-preview__activity code{color:var(--text-strong);font-family:var(--font-mono,ui-monospace, monospace);font-size:10.5px}.appearance-preview__answer{background:color-mix(in srgb, var(--accent) 7%, var(--panel));border-radius:0 0 7px 7px;padding:7px 10px 8px;font-size:13px;line-height:1.5}.appearance-preview[data-density=compact] .appearance-preview__activity{padding:4px 8px;font-size:11px}.appearance-preview[data-density=compact] .appearance-preview__answer{padding:5px 8px 6px;font-size:12.5px}.appearance-preview[data-layout=outlined] .appearance-preview__activity{border:1px solid color-mix(in srgb, var(--accent-2) 45%, var(--line));background:0 0;border-bottom:0}.appearance-preview[data-layout=outlined] .appearance-preview__answer{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:0 0}.appearance-preview__reactions{gap:5px;margin-top:5px;display:flex}.appearance-preview[data-density=compact] .appearance-preview__reactions{margin-top:2px}.appearance-preview__reaction{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:11px}.appearance-preview__reaction.is-mine{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));color:var(--text-strong)}.appearance-preview__caption{color:var(--muted-2);text-align:right;margin:-14px 2px 0;font-size:11px}.appearance-rows{display:grid}.appearance-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:14px 0;display:grid}.appearance-row+.appearance-row{border-top:1px solid var(--line)}.appearance-row__meta{gap:2px;display:grid}.appearance-row__label{color:var(--text-strong);font-size:13.5px;font-weight:650}.appearance-row__desc{color:var(--muted);font-size:12px}.appearance-row__control{align-items:center;gap:12px;display:inline-flex}.appearance-seg{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-2);gap:2px;padding:2px;display:inline-flex}.appearance-seg__btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:5px 12px;font-size:12.5px;font-weight:600}.appearance-seg__btn:hover{color:var(--text-strong)}.appearance-seg__btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.appearance-seg__btn.is-active{border-color:var(--line-strong);background:var(--panel);color:var(--text-strong);box-shadow:0 1px 2px #10151d1a}.board-chips__name{min-width:44px;color:var(--muted);text-align:right;font-size:12px}.board-chips{align-items:center;gap:10px;display:inline-flex}.board-chip{border:1px solid var(--line-strong);background:linear-gradient(135deg, var(--panel) 52%, var(--accent) 52%);cursor:pointer;border-radius:8px;width:26px;height:26px;padding:0;position:relative}.board-chip:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.board-chip.is-active:after{content:"";border:2px solid var(--accent);border-radius:11px;position:absolute;inset:-5px}@media (width<=640px){.appearance-row{grid-template-columns:1fr;gap:10px}.appearance-row__control,.board-chips__name{text-align:left;justify-self:start}}.ws-intg-page{padding-bottom:60px}.ws-intg__app-icon{background:var(--surface);border:1px solid var(--line);width:36px;height:36px;color:var(--text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ws-intg__wizard{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:16px;margin:8px 0 16px;padding:18px 20px;display:flex}.ws-intg__wizard-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ws-intg__wizard-step{color:var(--muted);white-space:nowrap;padding-top:2px;font-size:11.5px;font-weight:600}.ws-intg__wizard-body{flex-direction:column;gap:14px;display:flex}.ws-intg__catalog{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.ws-intg__catalog-card{border:1px solid var(--line);text-align:left;cursor:pointer;color:inherit;background:0 0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;transition:border-color .12s,background .12s;display:flex}.ws-intg__catalog-card:hover{border-color:var(--accent);background:var(--hover,#7f7f7f0f)}.ws-intg__catalog-name{color:var(--text-strong,var(--text));font-size:14px;font-weight:600}.ws-intg__catalog-desc{color:var(--muted);font-size:12.5px;line-height:1.45}.ws-intg__chips{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.ws-intg__chip{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:12px;font-weight:600;display:inline-flex}.ws-intg__chip-remove{width:16px;height:16px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.ws-intg__chip-remove:hover{color:var(--text);background:#7f7f7f2e}.ws-intg__member-results{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:2px;max-height:220px;margin:6px 0 0;padding:4px;list-style:none;display:flex;overflow-y:auto}.ws-intg__member-result{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.ws-intg__member-result:hover{background:var(--hover,#7f7f7f14)}.ws-intg__toggle{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.ws-intg__toggle input[type=checkbox]{flex-shrink:0;margin-top:3px}.ws-intg__toggle>span{flex-direction:column;gap:2px;display:flex}.ws-intg__panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.ws-intg__panel-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ws-intg__panel-title{color:var(--text-strong,var(--text));margin:0 0 3px;font-size:13px;font-weight:600}.ws-intg__panel-hint{color:var(--muted);max-width:560px;margin:0;font-size:12.5px;line-height:1.45}.ws-intg__panel-empty{color:var(--muted);margin:0;font-size:12.5px}.ws-intg__inline-form{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.ws-intg__item-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ws-intg__item-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 0;display:flex}.ws-intg__item-row:last-child{border-bottom:0}.ws-intg__item-row--stacked{flex-direction:column;align-items:stretch}.ws-intg__item-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.ws-intg__item-main{flex-direction:column;gap:4px;min-width:0;display:flex}.ws-intg__item-name{color:var(--text-strong,var(--text));font-size:13.5px;font-weight:600}.ws-intg__item-meta{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.ws-intg__url{font-family:var(--mono,ui-monospace, monospace);font-size:11.5px}.ws-intg__item-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ws-intg__type-chips{flex-wrap:wrap;gap:5px;display:flex}.ws-intg__secret{border:1px solid color-mix(in srgb, var(--warn) 45%, var(--line));background:color-mix(in srgb, var(--warn) 7%, transparent);border-radius:8px;flex-direction:column;gap:6px;margin-top:6px;padding:10px 12px;display:flex}.ws-intg__secret-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:700}.ws-intg__secret-row{align-items:center;gap:8px;display:flex}.ws-intg__secret-row .ws-bots__reveal-input{flex:1;min-width:0}.ws-intg__confirm{border:1px solid color-mix(in srgb, var(--danger,#d33) 40%, var(--line));background:color-mix(in srgb, var(--danger,#d33) 6%, transparent);border-radius:8px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.ws-intg__confirm-text{color:var(--text);margin:0;font-size:13px;line-height:1.5}.ws-intg__event-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px;margin-top:10px;display:grid}.ws-intg__event-option{border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.ws-intg__event-option.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.ws-intg__deliveries{border-top:1px dashed var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.ws-intg__deliveries-scroll{border:1px solid var(--line);border-radius:8px;max-height:420px;overflow-y:auto}.ws-intg__delivery{border-bottom:1px solid var(--line)}.ws-intg__delivery:last-child{border-bottom:0}.ws-intg__delivery-row{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:84px 1fr auto auto;align-items:center;gap:12px;padding:10px 12px;font-size:12.5px;display:grid}.ws-intg__delivery-row:hover{background:var(--hover,#7f7f7f0f)}.ws-intg__delivery-status{text-align:center;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.ws-intg__delivery-status--ok{background:color-mix(in srgb, var(--delivery-accent,#2a9d5c) 16%, transparent);color:var(--delivery-accent,#2a9d5c)}.ws-intg__delivery-status--fail{background:color-mix(in srgb, var(--danger,#d33) 14%, transparent);color:var(--danger,#d33)}.ws-intg__delivery-type{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.ws-intg__delivery-attempt,.ws-intg__delivery-time{color:var(--muted);white-space:nowrap;font-size:11.5px}.ws-intg__delivery-detail{flex-direction:column;gap:10px;padding:4px 12px 14px;display:flex}.ws-intg__delivery-block{flex-direction:column;gap:4px;display:flex}.ws-intg__delivery-block .ws-bots__reveal-snippet{max-height:260px;overflow:auto}.ws-intg__deliveries-more{justify-content:center;display:flex}.ws-intg__deliveries-retry{justify-content:space-between;align-items:center;gap:12px;display:flex}.ws-intg__section{flex-direction:column;gap:12px;margin-top:28px;display:flex}.ws-intg__section-title{color:var(--text-strong,var(--text));margin:0;font-size:15px;font-weight:600}.ws-intg__section-hint{color:var(--muted);margin:-6px 0 0;font-size:12.5px}.ws-bots__choice.is-disabled{opacity:.55;cursor:not-allowed}.settings-signout{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.settings-signout strong{color:var(--text-strong);display:block}.settings-signout p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.settings-signout .profile-actions{padding-top:0}.settings-password{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.settings-password__intro strong{color:var(--text-strong);display:block}.settings-password__intro p{color:var(--muted);margin:2px 0 0;font-size:12.5px} diff --git a/apps/api/internal/webassets/dist/_app/immutable/chunks/Qo16U5GS.js b/apps/api/internal/webassets/dist/_app/immutable/chunks/B4px22Nd.js similarity index 86% rename from apps/api/internal/webassets/dist/_app/immutable/chunks/Qo16U5GS.js rename to apps/api/internal/webassets/dist/_app/immutable/chunks/B4px22Nd.js index d8361a944..ab2aeb3c5 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/chunks/Qo16U5GS.js +++ b/apps/api/internal/webassets/dist/_app/immutable/chunks/B4px22Nd.js @@ -1 +1 @@ -var e=[{id:`profile`,label:`Profile`},{id:`appearance`,label:`Appearance`},{id:`notifications`,label:`Notifications`},{id:`bots`,label:`My bots`}],t=`profile`,n=[{id:`overview`,slug:`overview`,label:`Overview`,group:`workspace`,icon:[`M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z`,`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z`]},{id:`members`,slug:`members`,label:`Members`,group:`people`,icon:[`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,`M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z`,`M22 21v-2a4 4 0 0 0-3-3.87`,`M16 3.13a4 4 0 0 1 0 7.75`]},{id:`bots`,slug:`bots`,label:`Bots & agents`,group:`automation`,icon:[`M12 8V4H8`,`M5 4h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z`,`M2 14h2`,`M20 14h2`,`M15 13v2`,`M9 13v2`]},{id:`integrations`,slug:`integrations`,label:`Integrations`,group:`automation`,icon:[`M9 2v6`,`M15 2v6`,`M12 17v5`,`M5 8h14l-1 7a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4L5 8Z`]}],r=`overview`;function i(e,t){let n=`/app/${e}/settings`;return t?`${n}/${t}`:n}export{i as a,n as i,t as n,r,e as t}; \ No newline at end of file +var e=[{id:`profile`,label:`Profile`},{id:`appearance`,label:`Appearance`},{id:`notifications`,label:`Notifications`},{id:`bots`,label:`My bots`}],t=`profile`,n=[{id:`overview`,slug:`overview`,label:`Overview`,group:`workspace`,icon:[`M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z`,`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z`]},{id:`members`,slug:`members`,label:`Members`,group:`people`,icon:[`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,`M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z`,`M22 21v-2a4 4 0 0 0-3-3.87`,`M16 3.13a4 4 0 0 1 0 7.75`]},{id:`bots`,slug:`bots`,label:`Bots & agents`,group:`automation`,icon:[`M12 8V4H8`,`M5 4h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z`,`M2 14h2`,`M20 14h2`,`M15 13v2`,`M9 13v2`]},{id:`integrations`,slug:`integrations`,label:`Integrations`,group:`automation`,icon:[`M9 2v6`,`M15 2v6`,`M12 17v5`,`M5 8h14l-1 7a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4L5 8Z`]}],r=`overview`;function i(e,t){return t?e.id===t||e.route_id===t:!1}function a(e,t){return e.find(e=>i(e,t))??e[0]??null}function o(e,t){let n=`/app/${e}/settings`;return t?`${n}/${t}`:n}export{a,n as i,t as n,i as o,r,o as s,e as t}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/chunks/BIvy8mRH.js b/apps/api/internal/webassets/dist/_app/immutable/chunks/BIvy8mRH.js new file mode 100644 index 000000000..57b45bb3b --- /dev/null +++ b/apps/api/internal/webassets/dist/_app/immutable/chunks/BIvy8mRH.js @@ -0,0 +1,4 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DxhId6dF.js","./uBIymjUX.js"])))=>i.map(i=>d[i]); +import{t as e}from"./DK3Fl9T5.js";import{At as t,B as n,C as r,D as i,E as a,Et as o,F as s,G as c,I as l,K as u,N as d,O as f,P as p,R as m,S as h,St as g,Tt as _,V as v,X as y,Z as b,_ as x,a as S,at as C,b as w,c as T,ct as E,dt as D,f as O,ft as k,gt as A,h as j,ht as M,it as N,j as P,jt as F,k as ee,kt as te,lt as I,m as L,mt as R,n as ne,nt as re,o as ie,p as z,pt as B,r as ae,s as oe,tt as V,u as se,ut as ce,v as le,vt as H,xt as ue,yt as U,z as W}from"./D5itlxY6.js";import{c as de,n as fe,t as pe}from"./DAzn6KWz.js";import{t as me}from"./uBIymjUX.js";import"./xihTtKlq.js";import"./DD-5HdQf.js";import{a as he,c as ge,i as _e,l as ve,n as G,s as ye,t as be,u as xe}from"./DEPNME54.js";import{c as Se,d as Ce,f as we,h as Te,i as Ee,l as De,m as Oe,n as ke,p as Ae,r as je,s as Me,t as Ne,u as Pe}from"./Dqjw8vaP.js";import{a as K,i as Fe,n as Ie,o as Le,s as Re,t as q}from"./B4px22Nd.js";import{n as ze,t as Be}from"./DBpO2iwN.js";import"./Cbo1iWSZ.js";import{C as Ve,D as He,E as Ue,I as We,L as Ge,R as Ke,S as qe,T as Je,_ as Ye,b as J,f as Xe,g as Y,h as X,j as Ze,k as Qe,m as Z,p as $e,r as Q,u as et,v as tt,w as nt,x as rt,y as it}from"./BTDeUFdm.js";import{a as at,c as ot,f as st,i as ct,l as lt,o as ut,p as dt,s as ft,t as pt,u as mt}from"./CCzTQXXV.js";import{i as ht,n as gt,r as _t,t as vt}from"./W96STwh2.js";import{n as yt,t as bt}from"./DlGnnCJo.js";import{n as xt,r as St,t as Ct}from"./DaoRWw_m.js";import{p as wt,r as Tt}from"./CVdgRPye.js";import{r as Et,t as Dt}from"./BIhzYFGW.js";var Ot={url:`/`,label:`cc`};function kt(e){if(e.startsWith(`//`))return!1;try{if(e.startsWith(`/`)){let t=`https://clickclack.invalid`;return new URL(e,t).origin===t}let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&t.host!==``&&!t.username&&!t.password}catch{return!1}}function At(e){if(!e||typeof e!=`object`)return Ot;let t=e,n=typeof t.url==`string`?t.url:``,r=n.trim(),i=typeof t.label==`string`?t.label.trim():``,a=/[\u0000-\u001f\u007f\\]/u.test(n);return{url:r&&!a&&kt(r)?r:Ot.url,label:i&&Array.from(i).length<=32?i:Ot.label}}function jt(e){return e===Ot.label}function Mt(e){return jt(e.label)?`ClickClack home`:`${e.label} home`}async function Nt(e){try{return At(await e(`/api/home-link`))}catch{return Ot}}var Pt=`clickclack:browser-notifications-enabled:v1:`;function Ft(e){return`${Pt}${e}`}function It(e){if(!e)return!1;try{return window.localStorage.getItem(Ft(e))===`enabled`}catch{return!1}}function Lt(e,t){if(!e)return!1;try{return t?window.localStorage.setItem(Ft(e),`enabled`):window.localStorage.removeItem(Ft(e)),!0}catch{return!1}}var Rt=typeof window>`u`?void 0:window.clickclackDesktop;function zt(e,t){let n={width:0,height:0,durationMS:0},r=e.type.startsWith(`image/`);return t.aborted||!r&&!e.type.startsWith(`video/`)?Promise.resolve(n):new Promise(i=>{let a=URL.createObjectURL(e),o=r?new Image:document.createElement(`video`),s=r?`load`:`loadedmetadata`;function c(e=n){o.removeEventListener(s,u),o.removeEventListener(`error`,l),t.removeEventListener(`abort`,l),o.removeAttribute(`src`),o instanceof HTMLVideoElement&&o.load(),URL.revokeObjectURL(a),i(e)}function l(){c()}function u(){c(o instanceof HTMLImageElement?{width:o.naturalWidth,height:o.naturalHeight,durationMS:0}:{width:o.videoWidth,height:o.videoHeight,durationMS:Number.isFinite(o.duration)&&o.duration>0?Math.round(o.duration*1e3):0})}o instanceof HTMLVideoElement&&(o.preload=`metadata`,o.muted=!0),o.addEventListener(s,u),o.addEventListener(`error`,l),t.addEventListener(`abort`,l,{once:!0}),o.src=a})}var Bt=new Set([`agent_commentary`,`agent_tool`]),Vt=18e4;function Ht(e){return e.kind!==void 0&&Bt.has(e.kind)}function Ut(e){return e.kind===void 0||e.kind===`message`}function Wt(e){return e.author?.id||e.author_id||``}function Gt(e){return`${e.channel_id?`channel:${e.channel_id}`:`direct:${e.direct_conversation_id||``}`}\u0000${Wt(e)}\u0000${e.turn_id||e.id}`}function Kt(e){let t=e.trim(),n=``,r=``,i=t.match(/^\*\*([^*]+)\*\*\s*\n+([\s\S]+)$/),a=t.match(/^\*\*([^*]+)\*\*$/);if(i)n=i[1].trim(),r=Jt(i[2]);else if(a)n=a[1].trim();else return qt(t.replace(/\*\*/g,``).trim(),``);return qt(n,r)}function qt(e,t){let n=Jt(e),r=n.indexOf(` `),i,a;r===-1?(i=n,a=``):(i=n.slice(0,r),a=n.slice(r+1).trim());let o=[a,t].filter(e=>e.length>0).join(` · `);return{name:i,detail:o||void 0}}function Jt(e){return e.replace(/\s+/g,` `).trim()}function Yt(e,t,n,r){let i=[];for(let e of t)if(e.kind===`agent_tool`){if(r.hideToolCalls)continue;let t=Kt(e.body);i.push({type:`tool`,id:e.id,name:t.name,detail:t.detail,full:e.body.trim()})}else{if(r.hideCommentary)continue;let t=e.body.trim();t&&i.push({type:`commentary`,id:e.id,body:t})}return i.length===0?null:{turnId:e,items:i,final:n}}function Xt(e,t,n=Date.now()){let r=new Map,i=new Map;for(let t=0;to.firstIndex;if(!r){let e=Date.parse(o.rows[o.rows.length-1].created_at);Number.isFinite(e)&&n-e>Vt&&(r=!0)}a.set(t,r)}let o=[];for(let n=0;n=yn)&&(bn.active=!0,bn.lastPingAt=t,Cn(e,`typing.started`)),bn.idleTimer&&window.clearTimeout(bn.idleTimer),bn.idleTimer=window.setTimeout(()=>{bn&&=(Tn(bn),null)},vn)}async function Tn(e){e.idleTimer&&window.clearTimeout(e.idleTimer),e.active&&await Cn(e.scope,`typing.stopped`)}function En(){bn&&=(Tn(bn),null)}var Dn=2e3,On=2097152;function kn(e){let t=document.createElement(`span`);return t.textContent=e,t.innerHTML}function An(e,t,n){return!t||e.length>262144?Promise.resolve(kn(e)):new Promise((r,i)=>{let a=new Worker(new URL(new URL(`../workers/highlight.worker-B65U9hWZ.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),o=!1,s=e=>{o||(o=!0,clearTimeout(l),n.removeEventListener(`abort`,c),a.terminate(),e())},c=()=>s(()=>i(new DOMException(`Syntax highlighting was aborted.`,`AbortError`))),l=window.setTimeout(()=>s(()=>r(kn(e))),Dn);if(a.onmessage=t=>{let n=t.data;`error`in n?s(()=>r(kn(e))):s(()=>r(n.html))},a.onerror=()=>s(()=>r(kn(e))),n.addEventListener(`abort`,c,{once:!0}),n.aborted){c();return}a.postMessage({source:e,language:t,outputLimit:On})})}var jn=5e3;function Mn(e,t,n){return new Promise((r,i)=>{let a=new Worker(new URL(new URL(`../workers/office.worker-ChjPCl7B.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),o=!1,s=e=>{o||(o=!0,clearTimeout(l),n.removeEventListener(`abort`,c),a.terminate(),e())},c=()=>s(()=>i(new DOMException(`Office preview was aborted.`,`AbortError`))),l=window.setTimeout(()=>s(()=>i(Error(`Office preview took too long and was stopped.`))),jn);if(a.onmessage=t=>{let n=t.data;if(`error`in n){s(()=>i(Error(n.error)));return}if(n.kind!==e){s(()=>i(Error(`Office preview returned an unexpected result.`)));return}s(()=>r(n.preview))},a.onerror=()=>s(()=>i(Error(`Could not parse this Office file safely.`))),n.addEventListener(`abort`,c,{once:!0}),n.aborted){c();return}let u=t.byteOffset===0&&t.buffer instanceof ArrayBuffer&&t.byteLength===t.buffer.byteLength?t:t.slice(),d={kind:e,bytes:u};a.postMessage(d,[u.buffer])})}var Nn=16777216,Pn=1e4,Fn=1e4,In=`This PDF page is too large to preview safely. Download the original to open it locally.`;function Ln(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<1||t<1||e>8192||t>8192||e*t>16777216)throw Error(In)}var Rn=new URL(`../assets/pdf.worker.TGcf_-kp.mjs`,import.meta.url).href,zn=l(`
`),Bn=l(`

Preparing a safe preview.

`),Vn=l(``),Hn=l(`
No preview for this file type

You can still download the original file.

Download original
`),Un=l(`
`,1),Wn=l(` `),Gn=l(` `),Kn=l(` `),qn=l(` `),Jn=l(`

Preview is limited to 10,000 cells, the first 1,000 rows, and the first 100 columns. Download the original to inspect omitted cells.

`),Yn=l(``),Xn=l(`
Raw cached values; number and date formatting omitted
`,1),Zn=l(`

`),Qn=l(`

`),$n=l(`

`),er=l(`

Some slide content was omitted by preview limits.

`),tr=l(`

Text outline only. Visuals, layout, animations, and speaker notes are omitted.

`,1),nr=l(`
`),rr=l(`
`),ir=l(`
`),ar=l(`
 
`),or=l(`
`,1);function sr(e,r){o(r,!0);let a=A(null),c=U(()=>it(r.upload)),l=A(`preview`),m=A(`idle`),h=A(``),g=A(``),v=A(``),y=A(!1),b=A(``),x=A(null),S=A(1),T=A(1),E=A(!1),O=A(``),j=null,F=!1,L=A(null),R=A(0),re=A(null),ie=A(0),B=1e4,ae=65536,V=5e3;class se extends Error{}let le=U(()=>Y(u(c))),H=U(()=>Ve(r.upload)),ue=U(()=>(u(c)===`markdown`||u(c)===`html`)&&u(m)===`ready`&&u(y));function W(e){return`This ${u(le).toLowerCase()} is ${qe(r.upload.byte_size)}. Preview is limited to ${qe(e)}.`}function de(e){pe(e);let t=document.createElement(`template`);t.innerHTML=e;let n=J.sanitize(t.content,{RETURN_DOM_FRAGMENT:!0,USE_PROFILES:{html:!0},FORBID_TAGS:[`base`,`embed`,`form`,`iframe`,`link`,`meta`,`object`,`script`,`style`],FORBID_ATTR:[`action`,`formaction`,`srcset`,`style`,`xlink:href`]});for(let e of n.querySelectorAll(`*`))for(let t of Array.from(e.attributes))e.removeAttribute(t.name);let r=document.createElement(`div`);r.append(n);let i=r.innerHTML;return he(i),`${i}`}function fe(e){pe(e);let t=Z(e);return he(t),J.sanitize(t,{ALLOWED_TAGS:[`blockquote`,`br`,`code`,`del`,`em`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`hr`,`li`,`ol`,`p`,`pre`,`strong`,`table`,`tbody`,`td`,`th`,`thead`,`tr`,`ul`],ALLOWED_ATTR:[]})}function pe(e){if(e.length>65536)throw new se(`Structured preview exceeded the safe source limit.`);let t=0;for(let n of e)if("<[]>*_`-+.!#>|~".includes(n)&&(t+=1,t>B))throw new se(`Structured preview exceeded the safe complexity limit.`)}function he(e){if(e.length>4194304)throw new se(`Rendered preview exceeded the safe output limit.`);let t=0;for(let n of e)if(n===`<`&&++t>B*2)throw new se(`Rendered preview exceeded the safe element limit.`)}function ge(e){return`Preview data exceeded the ${qe(e)} safety limit.`}async function _e(e,t){let n=await fetch(u(H),{credentials:`include`,signal:e});if(!n.ok)throw n.status===401||n.status===403?Error(`You no longer have access to this artifact.`):n.status===404?Error(`This artifact is no longer available.`):Error(`Could not load this artifact (${n.status}).`);let r=Number(n.headers.get(`Content-Length`));if(Number.isFinite(r)&&r>t)throw Error(ge(t));if(!n.body){let e=new Uint8Array(await n.arrayBuffer());if(e.byteLength>t)throw Error(ge(t));return e}let i=n.body.getReader(),a=[],o=0;try{for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel(),Error(ge(t));a.push(n)}}finally{i.releaseLock()}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s}async function ve(e,t){return new TextDecoder(`utf-8`,{fatal:!1}).decode(await _e(e,t))}async function G(e){j?.(),j=null,M(x,null),M(g,``),M(v,``),M(y,!1),M(b,``),M(S,1),M(T,1),M(O,``),F=!1,M(L,null),M(R,0),M(re,null),M(ie,0),M(l,`preview`),M(h,``);let t=tt(u(c));if(t!==void 0&&r.upload.byte_size>t){M(m,`error`),M(h,W(t),!0);return}if(u(c)===`unsupported`){M(m,`ready`);return}M(m,`loading`);try{if(u(c)===`pdf`){let n=await me(()=>import(`./DxhId6dF.js`),__vite__mapDeps([0,1]),import.meta.url);if(e.aborted)return;n.GlobalWorkerOptions.workerSrc=Rn;let r=new AbortController,i=()=>r.abort();e.addEventListener(`abort`,i,{once:!0});let a=null,o=0,s=new Promise((e,t)=>{o=window.setTimeout(()=>{r.abort(),a?.destroy(),t(Error(`PDF preview took too long and was stopped.`))},Pn)}),c;try{if(c=await Promise.race([_e(r.signal,t),s]),e.aborted)throw new DOMException(`Aborted`,`AbortError`);a=new n.PDFWorker,await Promise.race([a.promise,s])}catch(t){throw clearTimeout(o),e.removeEventListener(`abort`,i),t}if(e.aborted||!a){clearTimeout(o),e.removeEventListener(`abort`,i),a?.destroy();return}let l=a.port,u=e=>{let t=e.data;typeof t==`object`&&t&&`reason`in t&&typeof t.reason==`object`&&t.reason!==null&&`message`in t.reason&&t.reason.message===`Image exceeded maximum allowed size and was removed.`&&(F=!0,j?.(),M(m,`error`),M(h,`PDF page content could not be rendered completely within safety limits.`))};l.addEventListener(`message`,u);let d=null,f=!1;j=()=>{f||(f=!0,l.removeEventListener(`message`,u),d&&d.destroy(),a.destroy(),M(x,null))};let p=n.getDocument({data:c,maxImageSize:Nn,canvasMaxAreaInBytes:Nn*4,stopAtErrors:!0,worker:a});d=p;try{M(x,await Promise.race([p.promise,s]),!0)}finally{clearTimeout(o),e.removeEventListener(`abort`,i)}}else if(u(c)===`spreadsheet`||u(c)===`presentation`){let n=await _e(e,t);if(e.aborted)return;if(u(c)===`spreadsheet`){let t=await Mn(u(c),n,e);if(e.aborted)return;M(L,t,!0)}else{let t=await Mn(u(c),n,e);if(e.aborted)return;M(re,t,!0)}}else{if(M(g,await ve(e,t),!0),e.aborted)return;u(c)===`code`&&M(b,await An(u(g),Ye(r.upload),e),!0);try{u(c)===`markdown`&&(M(v,fe(u(g)),!0),M(y,!0)),u(c)===`html`&&(M(v,de(u(g)),!0),M(y,!0))}catch(e){if(!(e instanceof se))throw e;M(v,``),M(l,`source`)}}e.aborted||M(m,`ready`)}catch(t){if(e.aborted||t instanceof Error&&t.name===`AbortError`)return;j?.(),j=null,M(m,`error`),M(h,t instanceof Error?t.message:`Could not preview this artifact.`,!0)}}C(()=>{let e=new AbortController;return G(e.signal),()=>e.abort()}),C(()=>{if(u(c)!==`pdf`||!u(x)||!u(a)||u(m)!==`ready`)return;let e=u(x),t=u(S),n=u(T),r=!1,i=null,o=null,s=null,l=0;return M(E,!0),M(O,``),(async()=>{try{if(l=window.setTimeout(()=>{r||(i?.cancel(),s?.cancel(),j?.(),M(m,`error`),M(h,`PDF page rendering took too long and was stopped.`))},Fn),o=await e.getPage(t),r||!u(a))return;let c=``,d=0;s=o.streamTextContent().getReader();try{for(;!r;){let{done:e,value:t}=await s.read();if(e)break;for(let e of t.items){if(d+=1,d>V){await s.cancel(),c=`${c}…`;break}if(!(`str`in e)||!e.str)continue;let t=`${c}${c?` `:``}${e.str}`;if(t.length>ae){await s.cancel(),c=`${t.slice(0,ae)}…`;break}c=t}if(d>V||c.endsWith(`…`))break}}finally{s.releaseLock(),s=null}if(r)return;M(O,c||`This page has no extractable text.`,!0);let f=o.getViewport({scale:n}),p=Math.min(window.devicePixelRatio||1,2),g=Math.max(1,Math.floor(f.width*p)),_=Math.max(1,Math.floor(f.height*p));Ln(g,_);let v=u(a).getContext(`2d`);if(!v)throw Error(`PDF canvas is unavailable.`);if(u(a).width=g,u(a).height=_,u(a).style.width=`${f.width}px`,u(a).style.height=`${f.height}px`,v.setTransform(p,0,0,p,0,0),i=o.render({canvasContext:v,viewport:f}),await i.promise,F)throw Error(`PDF page content could not be rendered completely within safety limits.`)}catch(e){!r&&!(e instanceof Error&&e.name===`RenderingCancelledException`)&&(j?.(),M(m,`error`),M(h,e instanceof Error?e.message:`Could not render this PDF page.`,!0))}finally{clearTimeout(l),o?.cleanup(),o=null,r||M(E,!1)}})(),()=>{r=!0,clearTimeout(l),i?.cancel(),s?.cancel()}}),ne(()=>j?.());function ye(e){let t=e.match(/^[A-Z]+/i)?.[0]?.toUpperCase()||`A`,n=0;for(let e of t)n=n*26+e.charCodeAt(0)-64;return n}function be(e){return Number(e.match(/\d+$/)?.[0]||1)}function xe(e){let t=``;for(let n=e;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}let Se=U(()=>{let e=u(L)?.sheets[u(R)];if(!e)return{columns:[],rows:[],clipped:!1};let t=Math.max(1,...e.cells.map(e=>ye(e.reference))),n=Math.max(1,...e.cells.map(e=>be(e.reference))),r=Math.min(100,t),i=Math.min(1e3,Math.floor(1e4/r),n),a=new Map(e.cells.map(e=>[e.reference.toUpperCase(),e.value])),o=Array.from({length:r},(e,t)=>xe(t+1));return{columns:o,rows:Array.from({length:i},(e,t)=>({number:t+1,values:o.map(e=>a.get(`${e}${t+1}`)||``)})),clipped:t>r||n>i}});var Ce=or(),we=ce(Ce),Te=I(we),Ee=I(Te),De=D(Ee,!0),Oe=k(Ee,2),ke=D(Oe,!0),Ae=k(Oe,2),je=D(Ae,!0);t(Te);var Me=k(Te,2),Ne=I(Me),Pe=e=>{var r=zn(),i=I(r);let a;var o=k(i,2);let s;t(r),N(()=>{z(r,`aria-label`,`${u(le)} view`),z(i,`aria-pressed`,u(l)===`preview`),a=w(i,1,``,null,a,{active:u(l)===`preview`}),z(o,`aria-pressed`,u(l)===`source`),s=w(o,1,``,null,s,{active:u(l)===`source`})}),n(`click`,i,()=>M(l,`preview`)),n(`click`,o,()=>M(l,`source`)),p(e,r)};P(Ne,e=>{u(ue)&&e(Pe)});var K=k(Ne,2),Fe=k(K,2);t(Me),t(we);var Ie=k(we,2);let Le;var Re=I(Ie),q=e=>{var n=Bn(),r=k(I(n),2),i=D(r);te(2),t(n),N(e=>d(i,`Opening ${e??``}`),[()=>u(le).toLowerCase()]),p(e,n)},ze=e=>{var n=Vn(),i=k(I(n),4),a=D(i,!0),o=k(i,2);t(n),N(()=>{d(a,u(h)),z(o,`href`,u(H)),z(o,`download`,r.upload.filename)}),p(e,n)},Be=e=>{var n=Hn(),i=k(I(n),6);t(n),N(()=>{z(i,`href`,u(H)),z(i,`download`,r.upload.filename)}),p(e,n)},He=e=>{var r=Un(),i=ce(r),o=I(i),s=k(o,2),c=D(s),l=k(s,2),f=k(l,4),m=k(f,2),h=D(m),g=k(m,2);t(i);var _=k(i,2);let v;var y=I(_);oe(y,e=>M(a,e),()=>u(a));var b=k(y,2),C=D(b,!0);t(_),N(e=>{o.disabled=u(S)<=1||u(E),d(c,`Page ${u(S)??``} of ${u(x).numPages??``}`),l.disabled=u(S)>=u(x).numPages||u(E),f.disabled=u(T)<=.6||u(E),d(h,`${e??``}%`),g.disabled=u(T)>=2||u(E),v=w(_,1,`artifact-viewer__pdf-stage`,null,v,{"is-rendering":u(E)}),z(_,`aria-label`,`PDF page ${u(S)} visual preview`),z(b,`aria-label`,`PDF page ${u(S)} text`),d(C,u(O))},[()=>Math.round(u(T)*100)]),n(`click`,o,()=>M(S,u(S)-1)),n(`click`,l,()=>M(S,u(S)+1)),n(`click`,f,()=>M(T,Math.max(.6,u(T)-.2),!0)),n(`click`,g,()=>M(T,Math.min(2,u(T)+.2),!0)),p(e,r)},Ue=e=>{var r=Xn(),i=ce(r),a=I(i),o=D(a),s=k(a,4),c=e=>{var t=Wn(),n=D(t);N(()=>d(n,`${u(L).hiddenSheets??``} hidden ${u(L).hiddenSheets===1?`sheet`:`sheets`} omitted`)),p(e,t)};P(s,e=>{u(L).hiddenSheets>0&&e(c)});var l=k(s,2),m=e=>{var t=Wn(),n=D(t);N(()=>d(n,`${u(L).unsupportedSheets??``} non-worksheet ${u(L).unsupportedSheets===1?`sheet`:`sheets`} omitted`)),p(e,t)};P(l,e=>{u(L).unsupportedSheets>0&&e(m)}),t(i);var h=k(i,2),g=I(h),_=I(g),v=I(_),y=k(I(v));f(y,17,()=>u(Se).columns,ee,(e,t)=>{var n=Gn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)}),t(v),t(_);var b=k(_);f(b,21,()=>u(Se).rows,ee,(e,n)=>{var r=qn(),i=I(r),a=D(i,!0),o=k(i);f(o,17,()=>u(n).values,ee,(e,t)=>{var n=Kn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)}),t(r),N(()=>d(a,u(n).number)),p(e,r)}),t(b),t(g);var x=k(g,2),S=e=>{var t=Jn();p(e,t)};P(x,e=>{(u(Se).clipped||u(L).sheets[u(R)].truncated)&&e(S)}),t(h);var C=k(h,2);f(C,21,()=>u(L).sheets,ee,(e,t,r)=>{var i=Yn();let a;var o=D(i,!0);N(()=>{z(i,`aria-selected`,u(R)===r),a=w(i,1,``,null,a,{active:u(R)===r}),d(o,u(t).name)}),n(`click`,i,()=>M(R,r,!0)),p(e,i)}),t(C),N(()=>{d(o,`${u(L).sheets.length??``} ${u(L).sheets.length===1?`sheet`:`sheets`}`),z(h,`aria-label`,`${u(L).sheets[u(R)].name} worksheet`)}),p(e,r)},We=e=>{var r=tr(),i=ce(r),a=I(i),o=k(a,2),c=D(o),l=k(o,2);t(i);var m=k(i,2),h=I(m);f(h,21,()=>u(re).slides[u(ie)].paragraphs,ee,(e,t,n)=>{var r=s(),i=ce(r),a=e=>{var n=Zn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)},o=e=>{var n=Qn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)};P(i,e=>{n===0?e(a):e(o,-1)}),p(e,r)}),t(h);var g=k(h,4),_=e=>{var t=$n(),n=D(t);N(()=>d(n,`${u(re).hiddenSlides??``} hidden ${u(re).hiddenSlides===1?`slide`:`slides`} omitted.`)),p(e,t)};P(g,e=>{u(re).hiddenSlides>0&&e(_)});var v=k(g,2),y=e=>{var t=er();p(e,t)};P(v,e=>{u(re).truncated&&e(y)}),t(m),N(()=>{a.disabled=u(ie)===0,d(c,`Slide ${u(ie)+1} of ${u(re).slides.length??``}`),l.disabled=u(ie)>=u(re).slides.length-1,z(h,`aria-label`,`Slide ${u(ie)+1}: ${u(re).slides[u(ie)].title}`)}),n(`click`,a,()=>M(ie,u(ie)-1)),n(`click`,l,()=>M(ie,u(ie)+1)),p(e,r)},Ge=e=>{var n=nr();i(n,()=>u(v),!0),t(n),p(e,n)},Ke=e=>{var n=rr();i(n,()=>u(v),!0),t(n),p(e,n)},Je=e=>{var n=ir(),r=I(n);i(r,()=>u(b),!0),t(r),t(n),p(e,n)},Xe=e=>{var n=ar(),r=I(n),i=D(r,!0);t(n),N(()=>d(i,u(g))),p(e,n)};P(Re,e=>{u(m)===`loading`?e(q):u(m)===`error`?e(ze,1):u(c)===`unsupported`?e(Be,2):u(c)===`pdf`&&u(x)?e(He,3):u(c)===`spreadsheet`&&u(L)?e(Ue,4):u(c)===`presentation`&&u(re)?e(We,5):u(c)===`html`&&u(l)===`preview`&&u(v)?e(Ge,6):u(c)===`markdown`&&u(l)===`preview`?e(Ke,7):u(c)===`code`?e(Je,8):e(Xe,-1)}),t(Ie),N(e=>{d(De,u(le)),z(Oe,`title`,r.upload.filename),d(ke,r.upload.filename),d(je,e),z(K,`href`,u(H)),z(K,`download`,r.upload.filename),z(K,`aria-label`,`Download ${r.upload.filename}`),Le=w(Ie,1,`artifact-viewer__body`,null,Le,{"is-pdf":u(c)===`pdf`,"is-office":u(c)===`spreadsheet`||u(c)===`presentation`})},[()=>qe(r.upload.byte_size)]),n(`click`,Fe,function(...e){r.onClose?.apply(this,e)}),p(e,Ce),_()}W([`click`]);var cr=l(``),lr=l(`
`),ur=l(`

or

`),dr=l(` `,1),fr=l(``),pr=l(``),mr=l(`

`),hr=l(`
ClickClack OpenClaw workspace chat

Welcome.

Have a sign-in token?
`,1);function gr(e,r){o(r,!0);let i=Rt?.integratedTitleBar===!0,a=A(``),s=ge(),c=s.includes(`github`),l=s.includes(`password`),f=!Rt&&s.includes(`openclaw`),m=A(``),h=A(``),g=A(``),y=A(!1),b=A(``),x=l?c?`Sign in with your ClickClack account, or continue with GitHub.`:`Sign in with your ClickClack account.`:c?`Sign in with GitHub to join the guest room.`:f?`Sign in with OpenClaw ID to join the guest room.`:`Sign in with a token from your ClickClack administrator.`,S=c&&!l?`Any GitHub account can join.`:``;async function C(e){if(Rt){e.preventDefault(),M(a,`Opening GitHub in your browser…`);try{await Rt.signInWithGitHub(),M(a,`Finish signing in in your browser. ClickClack will complete here automatically.`)}catch{M(a,`Could not open your browser. Try again.`)}}}async function w(e,t){if(!u(y)){M(y,!0),M(b,``);try{await G(e,{method:`POST`,body:JSON.stringify(t)}),window.location.reload()}catch(e){M(b,xe(e,`Could not sign in.`),!0),M(y,!1)}}}function T(e){e.preventDefault(),w(`/api/auth/password/login`,{identifier:u(m),password:u(h)})}function E(e){e.preventDefault(),w(`/api/auth/magic/consume`,{token:u(g)})}var j=hr(),F=ce(j),ee=e=>{var t=cr();N(()=>z(t,`data-platform`,Rt.platform)),p(e,t)};P(F,e=>{i&&Rt&&e(ee)});var L=k(F,2),R=I(L),ne=I(R),re=I(ne);Xe(re,{class:`mark`,size:44}),te(2),t(ne);var ie=k(ne,2),B=k(I(ie),2),ae=D(B,!0);t(ie);var oe=k(ie,2),V=e=>{var n=lr(),r=I(n),i=k(I(r),2);O(i),t(r);var a=k(r,2),o=k(I(a),2);O(o),t(a);var s=k(a,2),c=D(s,!0);t(n),N(()=>{s.disabled=u(y),d(c,u(y)?`Signing in...`:`Sign in`)}),v(`submit`,n,T),se(i,()=>u(m),e=>M(m,e)),se(o,()=>u(h),e=>M(h,e)),p(e,n)};P(oe,e=>{l&&e(V)});var le=k(oe,2),H=e=>{var t=dr(),r=ce(t),i=e=>{var t=ur();p(e,t)};P(r,e=>{l&&e(i)});var a=k(r,2);N(e=>z(a,`href`,e),[()=>he(`/api/auth/github/start`)]),n(`click`,a,C),p(e,t)};P(le,e=>{c&&e(H)});var ue=k(le,2),U=e=>{var t=fr();N(e=>z(t,`href`,e),[()=>he(`/api/auth/openclaw/start`)]),p(e,t)};P(ue,e=>{f&&e(U)});var W=k(ue,2),de=e=>{var t=pr(),n=D(t,!0);N(()=>d(n,u(b))),p(e,t)};P(W,e=>{u(b)&&e(de)});var fe=k(W,2),pe=k(I(fe),2),me=I(pe),_e=k(I(me),2);O(_e),t(me);var ve=k(me,2);t(pe),t(fe);var ye=k(fe,2),be=e=>{var t=mr(),n=D(t,!0);N(()=>d(n,u(a)||S)),p(e,t)};P(ye,e=>{(u(a)||S)&&e(be)}),t(R),t(L),N(()=>{d(ae,x),fe.open=!c&&!l&&!f,ve.disabled=u(y)}),v(`submit`,pe,E),se(_e,()=>u(g),e=>M(g,e)),p(e,j),_()}W([`click`]);var _r=l(``),vr=l(``);function yr(e,r){o(r,!0);let i=S(r,`deleting`,3,!1),a=S(r,`error`,3,``),s=U(()=>r.message.author?.display_name||`Local User`);function c(){i()||r.onClose()}var l=vr(),f=I(l),m=k(f,2),h=I(m),g=k(I(h),2);t(h);var v=k(h,2),y=k(I(v),2),b=I(y);{let e=U(()=>r.message.author?.id||r.message.author_id),t=U(()=>r.message.author?.avatar_url);pt(b,{class:`avatar`,get id(){return u(e)},get name(){return u(s)},get src(){return u(t)},size:36,loading:`eager`,fetchPriority:`auto`})}var x=k(b,2),C=I(x),w=I(C),T=D(w,!0),E=k(w,2),O=D(E,!0);t(C);var A=k(C,2),j=D(A,!0);t(x),t(y);var M=k(y,2),F=e=>{var t=_r(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(M,e=>{a()&&e(F)});var ee=k(M,2),te=I(ee),L=k(te,2),R=D(L,!0);t(ee),t(v),t(m),t(l),N(e=>{f.disabled=i(),g.disabled=i(),d(T,u(s)),z(E,`datetime`,r.message.created_at),d(O,e),d(j,r.message.body),te.disabled=i(),L.disabled=i(),d(R,i()?`Deleting...`:`Delete`)},[()=>X(r.message.created_at)]),n(`click`,f,c),n(`click`,g,c),n(`click`,te,c),n(`click`,L,function(...e){r.onConfirm?.apply(this,e)}),p(e,l),_()}W([`click`]);var br=6500,xr=l(`
`);function Sr(e,n){o(n,!0);let r=U(()=>n.entries.filter(e=>e.userID!==n.currentUserID));function i(e,t=`Someone`){return e?.display_name?.trim()||(e?.handle?`@${e.handle}`:t)}let a=U(()=>u(r).length===0?``:u(r).length===1?`${i(u(r)[0].user)} is typing…`:u(r).length===2?`${i(u(r)[0].user)} and ${i(u(r)[1].user)} are typing…`:u(r).length===3?`${i(u(r)[0].user)}, ${i(u(r)[1].user)}, and ${i(u(r)[2].user)} are typing…`:`Several people are typing…`);var s=xr();let c;var l=k(I(s),2),f=D(l,!0);t(s),N(()=>{c=w(s,1,`typing-indicator`,null,c,{visible:u(r).length>0}),d(f,u(a))}),p(e,s),_()}var Cr=l(`
`),wr=l(`
`),Tr=l(`
`);function Er(e,n){o(n,!0);function r(e){return e.kind===`tool`&&e.toolName?!e.text||e.text===e.toolName?e.toolName:`${e.toolName}: ${e.text}`:e.text}function i(e){switch(e){case`tool`:return`⚙`;case`thinking`:case`commentary`:return`✦`;case`plan`:return`☰`;case`patch`:return`±`;case`command_output`:return`›`;case`error`:return`✕`;default:return`·`}}var a=s(),c=ce(a),l=e=>{var a=Tr();f(a,21,()=>n.turns,e=>e.key,(e,n)=>{var a=wr();f(a,21,()=>u(n).lines,e=>e.id,(e,n)=>{var a=Cr();let o;var s=I(a),c=D(s,!0),l=k(s,2),f=D(l,!0);t(a),N((e,t)=>{o=w(a,1,`agent-progress__line svelte-6vwkyv`,null,o,{"agent-progress__line--done":u(n).finalized}),z(a,`data-kind`,u(n).kind),d(c,e),d(f,t)},[()=>i(u(n).kind),()=>r(u(n))]),p(e,a)}),t(a),p(e,a)}),t(a),p(e,a)};P(c,e=>{n.turns.length>0&&e(l)}),p(e,a),_()}function Dr(e,t){return`${e}\u0000${t}`}var Or=45e3;function kr(e,t,n){let r=typeof t.turn_id==`string`?t.turn_id:``,i=typeof t.op==`string`?t.op:``;if(!r||!i)return e;let a=typeof t.user_id==`string`?t.user_id:``,o=Dr(a,r);if(i===`clear`)return e.filter(e=>e.turnId===r?a&&e.userId?e.key!==o:!1:!0);let s=t.line,c=s&&typeof s.id==`string`?s.id:``;if(!c)return e;let l=s&&typeof s.text==`string`?s.text:``,u=s&&typeof s.title==`string`?s.title:``,d=l||u,f=s&&typeof s.tool_name==`string`?s.tool_name:typeof s?.toolName==`string`?s.toolName:void 0,p=s&&typeof s.status==`string`?s.status:void 0,m=s&&typeof s.kind==`string`?s.kind:void 0,h=e.find(e=>e.key===o),g=h?.lines.find(e=>e.id===c),_={id:c,kind:m??g?.kind??`lifecycle`,text:d||g?.text||``,toolName:f??g?.toolName,status:p??g?.status,finalized:i===`finalize`||(g?.finalized??!1)};if(!g&&!_.text&&!_.toolName)return e;let v=n+Or;if(!h)e=[...e,{key:o,turnId:r,userId:a,lines:[_],expiresAt:v}];else{let t=h.lines.some(e=>e.id===c)?h.lines.map(e=>e.id===c?_:e):[...h.lines,_];e=e.map(e=>e.key===o?{...e,lines:t,expiresAt:v}:e)}return e}var Ar=l(``),jr=l(``);function Mr(e,r){o(r,!0);var i=jr(),a=I(i),s=k(a,2),c=I(s),l=k(I(c),2);t(c);var u=k(c,2),f=I(u),m=k(I(f),2);O(m),t(f);var h=k(f,2),g=e=>{var t=Ar(),n=D(t,!0);N(()=>d(n,r.error)),p(e,t)};P(h,e=>{r.error&&e(g)});var y=k(h,2),b=I(y),x=k(b,2),S=D(x,!0);t(y),t(u),t(s),t(i),N(e=>{j(m,r.channelName),m.disabled=r.pending,x.disabled=e,d(S,r.pending?`Creating…`:`Create channel`)},[()=>r.pending||!r.channelName.trim()]),n(`click`,a,function(...e){r.onClose?.apply(this,e)}),n(`click`,l,function(...e){r.onClose?.apply(this,e)}),v(`submit`,u,e=>{e.preventDefault(),r.onCreate()}),n(`input`,m,e=>r.onChannelName(e.currentTarget.value)),n(`click`,b,function(...e){r.onClose?.apply(this,e)}),p(e,i),_()}W([`click`,`input`]);var Nr=l(``),Pr=l(`
No matching people yet
`),Fr=l(`

`),Ir=l(``),Lr=l(``);function Rr(e,r){o(r,!0);let i=U(()=>r.memberID.trim().toLowerCase().replace(/^@/,``)),a=U(()=>r.people.filter(e=>e.id!==r.currentUserID).filter(e=>!u(i)||e.display_name.toLowerCase().includes(u(i))||e.handle?.toLowerCase().includes(u(i))||e.id.toLowerCase().includes(u(i)))),s=U(()=>r.memberID.trim().startsWith(`usr_`)?r.memberID.trim():u(i)&&u(a).length===1?u(a)[0].id:``);function c(e){!r.pending&&e&&(r.onMemberID(e),r.onStart(e))}var l=Lr(),m=I(l),h=k(m,2),g=I(h),y=k(I(g),2);t(g);var b=k(g,2),x=I(b),S=k(I(x),2);O(S),t(x);var C=k(x,2),w=I(C);f(w,17,()=>u(a),e=>e.id,(e,i)=>{var a=Nr(),o=I(a);pt(o,{class:`dm-avatar`,get id(){return u(i).id},get name(){return u(i).display_name},get src(){return u(i).avatar_url},size:32});var s=k(o,2),l=I(s),f=D(l,!0),m=k(l,2),h=D(m,!0);t(s),t(a),N(e=>{a.disabled=r.pending,d(f,u(i).display_name),d(h,e)},[()=>lt(u(i).handle)||u(i).id]),n(`click`,a,()=>c(u(i).id)),p(e,a)});var T=k(w,2),E=e=>{var t=Pr();p(e,t)};P(T,e=>{u(a).length===0&&e(E)}),t(C);var A=k(C,2),M=e=>{var t=Fr(),n=D(t,!0);N(()=>d(n,u(a).length>1?`Choose a person from the results.`:`Choose a person or enter a user ID.`)),p(e,t)};P(A,e=>{u(i)&&!u(s)&&e(M)});var F=k(A,2),ee=e=>{var t=Ir(),n=D(t,!0);N(()=>d(n,r.error)),p(e,t)};P(F,e=>{r.error&&e(ee)});var te=k(F,2),L=I(te),R=k(L,2),ne=D(R,!0);t(te),t(b),t(h),t(l),N(()=>{j(S,r.memberID),S.disabled=r.pending,R.disabled=r.pending||!u(s),d(ne,r.pending?`Starting…`:`Start DM`)}),n(`click`,m,function(...e){r.onClose?.apply(this,e)}),n(`click`,y,function(...e){r.onClose?.apply(this,e)}),v(`submit`,b,e=>{e.preventDefault(),c(u(s))}),n(`input`,S,e=>r.onMemberID(e.currentTarget.value)),n(`click`,L,function(...e){r.onClose?.apply(this,e)}),p(e,l),_()}W([`click`,`input`]);var zr=l(` `),Br=l(``),Vr=l(`
`),Hr=l(``),Ur=l(`

Creating workspace…

`),Wr=l(`
`),Gr=l(``);function Kr(e,r){o(r,!0);let i=S(r,`homeHref`,3,`/`),a=S(r,`homeLabel`,3,`cc`),s=S(r,`homeTitle`,3,`ClickClack home`);function c(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}var l=Gr(),m=I(l);let h;var g=I(m),y=e=>{Xe(e,{size:48})},b=U(()=>jt(a())),x=e=>{var t=zr(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(g,e=>{u(b)?e(y):e(x,-1)}),t(m);var C=k(m,4),T=I(C);f(T,17,()=>r.workspaces,e=>e.id,(e,i)=>{var a=Vr();let o;var s=I(a),l=I(s),f=e=>{var t=Br();N(e=>z(t,`src`,e),[()=>_e(u(i).icon_url)]),p(e,t)},m=e=>{var t=zr(),n=D(t,!0);N(e=>d(n,e),[()=>dt(u(i).name)]),p(e,t)};P(l,e=>{u(i).icon_url?e(f):e(m,-1)}),t(s),t(a),N(e=>{o=w(a,1,`guild-wrap`,null,o,{active:u(i).id===r.selectedWorkspaceID}),z(s,`title`,u(i).name),z(s,`aria-label`,u(i).name),z(s,`href`,e)},[()=>r.hrefForWorkspace(u(i).id)]),n(`click`,s,e=>{c(e)&&(e.preventDefault(),r.onSelectWorkspace(u(i).id))}),p(e,a)});var E=k(T,2);t(C);var A=k(C,2),M=e=>{var i=Wr(),a=I(i);O(a);var o=k(a,2),s=e=>{var t=Hr(),n=D(t,!0);N(()=>d(n,r.createError)),p(e,t)};P(o,e=>{r.createError&&e(s)});var c=k(o,2),l=e=>{var t=Ur();p(e,t)};P(c,e=>{r.createPending&&e(l)}),t(i),N(()=>{j(a,r.workspaceName),a.disabled=r.createPending}),v(`submit`,i,e=>{e.preventDefault(),r.onCreateWorkspace()}),n(`input`,a,e=>r.onWorkspaceName(e.currentTarget.value)),p(e,i)};P(A,e=>{r.showWorkspaceCreate&&e(M)}),t(l),N(e=>{h=w(m,1,`guild home`,null,h,{"home--mark":e}),z(m,`title`,s()),z(m,`aria-label`,s()),z(m,`href`,i())},[()=>jt(a())]),n(`click`,E,function(...e){r.onToggleWorkspaceCreate?.apply(this,e)}),p(e,l),_()}W([`click`,`input`]);var qr=l(``),Jr=l(` `,1),Yr=l(``),Xr=l(` `),Zr=l(`
#
`),Qr=l(`
`),$r=l(``),ei=l(`Drag with a pointer, use Arrow Up and Arrow Down while focused, or open the move menu. Moves stay within the current channel section. `,1),ti=l(`
`);function ni(e,r){o(r,!0);let i=(e,i=F,a=F,o=F,s=F,c=F)=>{let f=U(()=>i().unread_count||0),_=U(()=>a().findIndex(e=>e.id===i().id));var y=Zr();let b;var C=I(y),T=e=>{var r=Jr(),s=ce(r),c=k(s,2),l=e=>{var r=qr(),o=I(r),s=k(o,2);t(r),oe(r,e=>M(S,e),()=>u(S)),N(e=>{z(r,`aria-label`,e),o.disabled=u(_)<=0,s.disabled=u(_)<0||u(_)>=a().length-1},[()=>`Move #${bt(i())}`]),n(`keydown`,r,e=>{e.key===`Escape`&&(e.preventDefault(),_e(!0))}),n(`click`,o,()=>ve(i().id,-1,a())),n(`click`,s,()=>ve(i().id,1,a())),p(e,r)};P(c,e=>{u(x)===i().id&&e(l)}),N(e=>{z(s,`aria-label`,e),z(s,`aria-expanded`,u(x)===i().id)},[()=>`Move #${bt(i())}`]),n(`click`,s,e=>void ge(i().id,e.currentTarget)),v(`dragstart`,s,e=>fe(e,i().id,o())),v(`dragend`,s,he),n(`keydown`,s,e=>{e.key===`ArrowUp`||e.key===`ArrowDown`?(e.preventDefault(),M(x,``),de(i().id,e.key===`ArrowUp`?-1:1,a())):e.key===`Escape`&&M(x,``)}),p(e,r)};P(C,e=>{c()&&e(T)});var E=k(C,2);let O;var A=k(I(E),2),j=D(A,!0),ee=k(A,2),te=e=>{var t=Yr();p(e,t)};P(ee,e=>{i().external_managed&&e(te)});var L=k(ee,2),R=e=>{var t=Xr(),n=D(t,!0);N(()=>{z(t,`aria-label`,`${u(f)} unread`),d(n,u(f)>99?`99+`:u(f))}),p(e,t)};P(L,e=>{u(f)>0&&(i().id!==r.selectedChannelID||r.selectedDirectID)&&e(R)}),t(E),t(y),N((e,t)=>{b=w(y,1,`channel-row`,null,b,{reorderable:c(),subdued:s(),dragging:u(l)===i().id,"drop-before":u(h)===i().id&&u(g),"drop-after":u(h)===i().id&&!u(g)}),z(E,`href`,e),O=w(E,1,`nav-item channel`,null,O,{active:i().id===r.selectedChannelID&&!r.selectedDirectID,"has-unread":u(f)>0&&!(i().id===r.selectedChannelID&&!r.selectedDirectID)}),d(j,t)},[()=>r.hrefForChannel(i().id),()=>bt(i())]),v(`dragover`,y,e=>{c()&&pe(e,i().id,o())}),v(`drop`,y,e=>{e.preventDefault(),c()&&u(m)===o()&&(W(u(l),i().id,u(g),a()),he())}),n(`focusout`,y,e=>{e.currentTarget.contains(e.relatedTarget)||M(x,``)}),n(`click`,E,e=>{G(e)&&(e.preventDefault(),r.onSelectChannel(i().id))}),p(e,y)},a=(e,r=F,a=F,o=F)=>{let s=U(()=>V(r().key)),c=U(()=>H(r()));var l=Qr();let m;var h=I(l),g=k(I(h),2),_=D(g,!0),v=k(g,2),y=D(v,!0);t(h);var b=k(h,2);f(b,21,()=>u(c),e=>e.id,(e,t)=>{i(e,()=>u(t),()=>r().channels,()=>r().key,o,()=>u(s))}),t(b),t(l),N(()=>{m=w(l,1,`channel-subgroup`,null,m,{"archived-channel-group":o()}),z(h,`aria-expanded`,u(s)),z(h,`aria-controls`,a()),d(_,r().label),d(y,r().channels.length),z(b,`id`,a()),z(b,`hidden`,!u(s)&&u(c).length===0)}),n(`click`,h,()=>se(r().key)),p(e,l)},c=`archived`,l=A(``),m=A(``),h=A(``),g=A(!0),b=A(!1),x=A(``),S=A(void 0),T,O=A(``),j=A(B({})),ee=U(()=>r.channels.filter(e=>!e.archived_at)),te=U(()=>r.channels.filter(e=>!!e.archived_at)),L=U(()=>u(ee).filter(e=>!e.sidebar_section?.trim())),R=U(()=>{let e=new Map;for(let t of u(ee)){let n=t.sidebar_section?.trim();if(!n)continue;let r=e.get(n)??[];r.push(t),e.set(n,r)}return[...e.entries()].map(([e,t])=>({key:`section:${e}`,label:e,channels:t})).sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))}),ne=U(()=>r.channels.filter(e=>e.id===r.selectedChannelID&&!r.selectedDirectID||(e.unread_count||0)>0));function re(e){if(!e)return{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return{};let n=Object.entries(t);return n.length>1e3||n.some(([e,t])=>e.length>256||typeof t!=`boolean`)?{}:Object.fromEntries(n)}catch{return{}}}function ie(e){return`clickclack:sidebar-channel-groups:v1:${e}`}function ae(e){if(!e)return{};try{return re(window.localStorage.getItem(ie(e)))}catch{return{}}}function V(e){let t=u(j)[e];return typeof t==`boolean`?t:e!==c}function se(e){if(M(j,{...u(j),[e]:!V(e)},!0),r.workspaceID)try{window.localStorage.setItem(ie(r.workspaceID),JSON.stringify(u(j)))}catch{}}function le(e){e.key===ie(r.workspaceID)&&M(j,re(e.newValue),!0)}function H(e){return V(e.key)?e.channels:e.channels.filter(e=>e.id===r.selectedChannelID&&!r.selectedDirectID||(e.unread_count||0)>0)}function ue(e){M(O,``),queueMicrotask(()=>{M(O,e,!0)})}function W(e,t,n,i){if(!e||!t||e===t)return;let a=r.channels.map(e=>e.id),o=a.indexOf(e);if(o<0)return;a.splice(o,1);let s=a.indexOf(t);if(s<0)return;a.splice(s+ +!n,0,e),r.onReorder(a);let c=r.channels.find(t=>t.id===e),l=i.map(e=>e.id).filter(t=>t!==e),u=l.indexOf(t);l.splice(u+ +!n,0,e),c&&ue(`Moved #${bt(c)} to position ${l.indexOf(e)+1} of ${l.length}`)}function de(e,t,n){let r=n.findIndex(t=>t.id===e),i=r+t;r<0||i<0||i>=n.length||W(e,n[i].id,t<0,n)}function fe(e,t,n){M(b,!0),M(x,``),M(l,t,!0),M(m,n,!0),e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}function pe(e,t,n){if(!u(l)||u(l)===t||u(m)!==n)return;e.preventDefault();let r=e.currentTarget;M(h,t,!0),M(g,e.clientY{M(b,!1)},0)}async function ge(e,t){if(!u(b)){if(u(x)===e){M(x,``);return}T=t,M(x,e,!0),await y(),u(S)?.querySelector(`button:not(:disabled)`)?.focus()}}async function _e(e=!1){M(x,``),e&&(await y(),T?.focus())}function ve(e,t,n){de(e,t,n),_e(!0)}function G(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}C(()=>{M(j,ae(r.workspaceID),!0)}),C(()=>{r.expanded||(M(x,``),me(),M(b,!1))});var ye=ti();v(`storage`,E,le);let be;var xe=I(ye),Se=I(xe),Ce=k(Se,2);t(xe);var we=k(xe,2),Te=I(we),Ee=e=>{var t=ei(),n=k(ce(t),2);f(n,17,()=>u(L),e=>e.id,(e,t)=>{i(e,()=>u(t),()=>u(L),()=>`unsectioned`,()=>!1,()=>!0)});var o=k(n,2);f(o,19,()=>u(R),e=>e.key,(e,t,n)=>{a(e,()=>u(t),()=>`sidebar-channel-section-${u(n)}`,()=>!1)});var s=k(o,2),l=e=>{a(e,()=>({key:c,label:`Archived`,channels:u(te)}),()=>`sidebar-archived-channels`,()=>!0)};P(s,e=>{u(te).length>0&&e(l)});var d=k(s,2),m=e=>{var t=$r();p(e,t)};P(d,e=>{r.channels.length===0&&e(m)}),p(e,t)},De=e=>{var t=s(),n=ce(t);f(n,17,()=>u(ne),e=>e.id,(e,t)=>{{let n=U(()=>!!u(t).archived_at);i(e,()=>u(t),()=>u(ne),()=>`priority`,()=>u(n),()=>!1)}}),p(e,t)};P(Te,e=>{r.expanded?e(Ee):e(De,-1)}),t(we);var Oe=k(we,2),ke=D(Oe,!0);t(ye),N(()=>{be=w(ye,1,`nav-section`,null,be,{collapsed:!r.expanded}),z(Se,`aria-expanded`,r.expanded),z(we,`hidden`,!r.expanded&&u(ne).length===0),d(ke,u(O))}),n(`click`,Se,function(...e){r.onToggle?.apply(this,e)}),n(`click`,Ce,function(...e){r.onCreateChannel?.apply(this,e)}),p(e,ye),_()}W([`focusout`,`click`,`keydown`]);var ri=l(` `),ii=l(``),ai=l(``),oi=l(`
`),si=l(``),ci=l(`
`),li=l(`
`);function ui(e,r){o(r,!0);let i=A(``),a=U(()=>r.expanded?r.conversations:r.conversations.filter(e=>e.id===r.selectedDirectID||(e.unread_count||0)>0));function s(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function c(e){M(i,u(i)===e?``:e,!0)}function l(){M(i,``)}var m=li();let h;var g=I(m),v=I(g),y=k(v,2);t(g);var b=k(g,2),x=I(b);f(x,17,()=>u(a),e=>e.id,(e,a)=>{let o=U(()=>ft(u(a),r.currentUserID)),f=U(()=>u(a).unread_count||0),m=U(()=>u(a).id===r.selectedDirectID);var h=oi();let g;var _=I(h);let v;var y=I(_);{let e=U(()=>u(o)?.id||u(a).id),t=U(()=>u(o)?.display_name),n=U(()=>mt(u(o))?void 0:u(o)?.avatar_url);pt(y,{class:`dm-avatar`,get id(){return u(e)},get name(){return u(t)},get src(){return u(n)},size:22})}var b=k(y,2),x=D(b,!0),S=k(b,2),C=e=>{var t=ri(),n=D(t,!0);N(()=>{z(t,`aria-label`,`${u(f)} unread`),d(n,u(f)>99?`99+`:u(f))}),p(e,t)},T=e=>{var t=ii();p(e,t)};P(S,e=>{u(f)>0&&!u(m)?e(C):e(T,-1)}),t(_);var E=k(_,2),O=k(E,2),A=e=>{var t=ai(),i=D(t);n(`click`,i,e=>{e.preventDefault(),e.stopPropagation(),l(),r.onHideDirect(u(a).id)}),p(e,t)};P(O,e=>{u(i)===u(a).id&&e(A)}),t(h),N((e,t,n)=>{g=w(h,1,`dm-row`,null,g,{active:u(m)}),z(_,`href`,e),v=w(_,1,`nav-item dm`,null,v,{active:u(m),"has-unread":u(f)>0&&!u(m)}),d(x,t),z(E,`aria-label`,n),z(E,`aria-expanded`,u(i)===u(a).id)},[()=>r.hrefForDirect(u(a).id),()=>ot(u(a),r.currentUserID),()=>`Direct message actions for ${ot(u(a),r.currentUserID)}`]),n(`click`,_,e=>{s(e)&&(e.preventDefault(),r.onSelectDirect(u(a).id))}),n(`click`,E,e=>{e.preventDefault(),e.stopPropagation(),c(u(a).id)}),n(`keydown`,E,e=>{e.key===`Escape`&&l()}),p(e,h)});var S=k(x,2),C=e=>{var t=si();p(e,t)};P(S,e=>{r.expanded&&r.conversations.length===0&&e(C)});var T=k(S,2),E=e=>{var i=ci(),a=I(i),o=D(a),s=k(a,2);t(i),N(()=>d(o,`Closed ${r.hiddenDirectTitle??``}`)),n(`click`,s,function(...e){r.onUndoHideDirect?.apply(this,e)}),p(e,i)};P(T,e=>{r.expanded&&r.hiddenDirectTitle&&e(E)}),t(b),t(m),N(()=>{h=w(m,1,`nav-section`,null,h,{collapsed:!r.expanded}),z(v,`aria-expanded`,r.expanded),z(b,`hidden`,!r.expanded&&u(a).length===0)}),n(`click`,v,function(...e){r.onToggle?.apply(this,e)}),n(`click`,y,function(...e){r.onCreateDirect?.apply(this,e)}),p(e,m),_()}W([`click`,`keydown`]);var di=l(``),fi=l(`Connecting…`),pi=l(`
`),mi=l(` `),hi=l(``),gi=l(``),_i=l(``);function vi(e,r){o(r,!0);let i=S(r,`showHeader`,3,!0),a=`clickclack:sidebar-sections:v1:`,s={channels:!0,directMessages:!0,people:!0},c=A(B({...s}));function l(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.channels==`boolean`&&typeof t.directMessages==`boolean`&&typeof t.people==`boolean`}function m(e){if(!e)return{...s};try{let t=window.localStorage.getItem(`${a}${e}`);if(!t)return{...s};let n=JSON.parse(t);return l(n)?n:{...s}}catch{return{...s}}}function h(e){if(M(c,{...u(c),[e]:!u(c)[e]},!0),r.workspaceID)try{window.localStorage.setItem(`${a}${r.workspaceID}`,JSON.stringify(u(c)))}catch{}}C(()=>{M(c,m(r.workspaceID),!0)});let g=1e6,y=A(B([]));function b(e,t){return`clickclack:sidebar-channel-order:v1:${t}:${e}`}function x(e){if(!e||e.length>g)return[];try{let t=JSON.parse(e);return Array.isArray(t)&&t.length<=1e4&&t.every(e=>typeof e==`string`&&e.length<=128)?[...new Set(t)]:[]}catch{return[]}}function T(e,t){if(!e||!t)return[];try{return x(window.localStorage.getItem(b(e,t)))}catch{return[]}}function O(e){if(M(y,e,!0),r.workspaceID&&r.currentUser?.id)try{let t=b(r.workspaceID,r.currentUser.id),n=JSON.stringify(e);if(n.length>g){window.localStorage.removeItem(t);return}window.localStorage.setItem(t,n)}catch{}}function j(e){r.workspaceID&&r.currentUser?.id&&e.key===b(r.workspaceID,r.currentUser.id)&&M(y,x(e.newValue),!0)}let F=U(()=>{let e=new Map(r.channels.map(e=>[e.id,e]));return[...u(y).flatMap(t=>{let n=e.get(t);return n?(e.delete(t),[n]):[]}),...e.values()]});C(()=>{M(y,T(r.workspaceID,r.currentUser?.id||``),!0)});function ee(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}var L=_i();v(`storage`,E,j);var R=I(L),ne=e=>{var i=pi(),a=I(i),o=I(a),s=e=>{var t=di();N(e=>z(t,`src`,e),[()=>_e(r.workspaceIconURL)]),p(e,t)};P(o,e=>{r.workspaceIconURL&&e(s)});var c=k(o,2),l=I(c),u=I(l),f=D(u,!0);te(2),t(l);var m=k(l,2),h=e=>{var t=fi();p(e,t)};P(m,e=>{r.connected||e(h)}),t(c),t(a);var g=k(a,2),_=I(g),v=I(_),y=D(v);t(_),t(g),t(i),N(()=>{d(f,r.workspaceName||`Pick a workspace`),z(_,`aria-label`,r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(_,`title`,r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(y,`d`,r.sidebarCollapsed?`m9 6 6 6-6 6`:`m15 6-6 6 6 6`)}),n(`click`,a,function(...e){r.onOpenWorkspaceSettings?.apply(this,e)}),n(`click`,_,function(...e){r.onToggleCollapse?.apply(this,e)}),p(e,i)};P(R,e=>{i()&&e(ne)});var re=k(R,2),ie=I(re);ni(ie,{get workspaceID(){return r.workspaceID},get expanded(){return u(c).channels},get channels(){return u(F)},get selectedChannelID(){return r.selectedChannelID},get selectedDirectID(){return r.selectedDirectID},get hrefForChannel(){return r.hrefForChannel},get onSelectChannel(){return r.onSelectChannel},get onCreateChannel(){return r.onCreateChannel},onToggle:()=>h(`channels`),onReorder:O});var ae=k(ie,2);{let e=U(()=>r.currentUser?.id);ui(ae,{get expanded(){return u(c).directMessages},get conversations(){return r.directConversations},get currentUserID(){return u(e)},get selectedDirectID(){return r.selectedDirectID},get hrefForDirect(){return r.hrefForDirect},get onSelectDirect(){return r.onSelectDirect},get onCreateDirect(){return r.onCreateDirect},get onHideDirect(){return r.onHideDirect},get hiddenDirectTitle(){return r.hiddenDirectTitle},get onUndoHideDirect(){return r.onUndoHideDirect},onToggle:()=>h(`directMessages`)})}var oe=k(ae,2);let V;var se=I(oe),ce=D(se),le=k(se,2),H=I(le);f(H,17,()=>r.recentPeople,e=>e.id,(e,i)=>{let a=U(()=>ut(r.directConversations,u(i).id,r.currentUser?.id));var o=mi();let s;var c=I(o);pt(c,{class:`dm-avatar`,get id(){return u(i).id},get name(){return u(i).display_name},get src(){return u(i).avatar_url},size:22});var l=k(c,2),f=D(l,!0);te(2),t(o),N(e=>{z(o,`href`,e),s=w(o,1,`nav-item dm`,null,s,{active:u(a)?.id===r.selectedDirectID||r.selectedProfile?.id===u(i).id}),d(f,u(i).display_name)},[()=>u(a)?r.hrefForDirect(u(a).id):`#`]),n(`click`,o,e=>{if(u(a)){if(!ee(e))return;e.preventDefault(),r.onSelectDirect(u(a).id)}else e.preventDefault(),r.onOpenProfile(u(i))}),p(e,o)});var ue=k(H,2),W=e=>{var t=hi();p(e,t)};P(ue,e=>{r.recentPeople.length===0&&e(W)}),t(le),t(oe),t(re);var de=k(re,2),fe=e=>{var i=gi(),a=I(i);pt(a,{class:`dm-avatar`,get id(){return r.currentUser.id},get name(){return r.currentUser.display_name},get src(){return r.currentUser.avatar_url},size:28,loading:`eager`,fetchPriority:`auto`});var o=k(a,2),s=I(o),c=D(s,!0),l=k(s,2),u=D(l,!0);t(o),te(2),t(i),N((e,t)=>{z(i,`aria-label`,e),d(c,r.currentUser.display_name),d(u,t)},[()=>`Account settings for ${r.currentUser.display_name} ${lt(r.currentUser.handle)}`,()=>r.currentUser.handle?lt(r.currentUser.handle):r.connected?`Active`:`Reconnecting…`]),n(`click`,i,function(...e){r.onOpenSettings?.apply(this,e)}),n(`contextmenu`,i,e=>{e.preventDefault(),r.onOpenSettings()}),p(e,i)};P(de,e=>{r.currentUser&&e(fe)}),t(L),N(()=>{V=w(oe,1,`nav-section`,null,V,{collapsed:!u(c).people}),z(ce,`aria-expanded`,u(c).people),z(le,`hidden`,!u(c).people)}),n(`click`,ce,()=>h(`people`)),p(e,L),_()}W([`click`,`contextmenu`]);var yi=l(`
Loading...
`),bi=l(`
`),xi=l(`
`),Si=l(`

No pinned messages

Pin important messages to keep them easily accessible.

`),Ci=l(`
`),wi=l(`
`),Ti=l(`
`),Ei=l(` `,1),Di=l(`

Pinned Messages

`);function Oi(e,r){o(r,!0);let a=S(r,`loading`,3,!1),s=S(r,`error`,3,``),c=S(r,`topics`,19,()=>[]),l=S(r,`mentionPeople`,19,()=>[]),m=S(r,`maxPins`,3,100),g=A(B(new Set)),v=A(``);async function y(e){if(!u(g).has(e.id)){M(g,new Set(u(g)).add(e.id),!0),M(v,``);try{await r.onUnpin(e)}catch(e){M(v,e instanceof Error?e.message:`Could not unpin message`,!0)}finally{let t=new Set(u(g));t.delete(e.id),M(g,t,!0)}}}var b=Di(),x=I(b),C=I(x),w=I(C),T=k(I(w),2),E=D(T);t(w);var O=k(w,2),j=D(O);t(C);var F=k(C,2);t(x);var ee=k(x,2),te=I(ee),L=e=>{var t=yi();p(e,t)},R=e=>{var t=bi(),n=D(t,!0);N(()=>d(n,s())),p(e,t)},ne=e=>{var a=Ei(),o=ce(a),s=e=>{var t=xi(),n=D(t,!0);N(()=>d(n,u(v))),p(e,t)};P(o,e=>{u(v)&&e(s)});var m=k(o,2),_=e=>{var t=Si();p(e,t)},b=e=>{var a=Ti();f(a,21,()=>r.messages,e=>e.id,(e,a)=>{let o=U(()=>c().find(e=>e.id===u(a).topic_id));var s=wi(),m=I(s),_=I(m),v=D(_,!0),b=k(_,2),x=D(b,!0);t(m);var S=k(m,2);_t(S,{get topic(){return u(o)},get onSelect(){return r.onSelectTopic}});var C=k(S,2);i(C,()=>Z(u(a).body),!0),t(C),h(C,e=>Ge?.(e)),h(C,(e,t)=>et?.(e,t),()=>({people:l(),attentionUserID:r.mentionAttentionUserID}));var w=k(C,2),T=e=>{var n=Ci();f(n,21,()=>u(a).attachments,e=>e.id,(e,t)=>{{let n=U(()=>Ve(u(t)));Q(e,{get upload(){return u(t)},get url(){return u(n)},get onOpenImage(){return r.onOpenImage},get onOpenArtifact(){return r.onOpenArtifact}})}}),t(n),p(e,n)};P(w,e=>{u(a).attachments?.length&&e(T)});var E=k(w,2),O=I(E),A=k(O,2);t(E),t(s),N((e,t)=>{z(s,`data-message-id`,u(a).id),d(v,u(a).author?.display_name||`Unknown`),d(x,e),A.disabled=t},[()=>X(u(a).created_at),()=>u(g).has(u(a).id)]),n(`click`,O,()=>r.onOpenThread(u(a))),n(`click`,A,()=>y(u(a))),p(e,s)}),t(a),p(e,a)};P(m,e=>{r.messages.length===0?e(_):e(b,-1)}),p(e,a)};P(te,e=>{a()?e(L):s()?e(R,1):e(ne,-1)}),t(ee),t(b),N(()=>{d(E,`${r.messages.length??``} / ${m()??``} pinned`),d(j,`Shared across this channel, with a maximum of ${m()??``} messages.`)}),n(`click`,F,function(...e){r.onClose?.apply(this,e)}),p(e,b),_()}W([`click`]);var ki=l(` `,1),Ai=l(`
`),ji=l(`
We couldn’t search messages

`),Mi=l(`
No messages found

Try another word or phrase.

`),Ni=l(`deleted bot`),Pi=l(` `),Fi=l(` `),Ii=l(` `),Li=l(` Reply in thread`),Ri=l(` `),zi=l(`
  • `),Bi=l(``),Vi=l(``),Hi=l(``),Ui=l(`
      `,1),Wi=l(``);function Gi(e,r){o(r,!0);let i=S(r,`covered`,3,!1),a=S(r,`inert`,3,!1),c=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),l=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`}),h=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`});function g(e,t){let n=Array.from(e),r=[],i=0;for(let e of t){let t=Math.max(i,Math.min(n.length,e.start)),a=Math.max(t,Math.min(n.length,e.end));t>i&&r.push({text:n.slice(i,t).join(``),highlighted:!1}),a>t&&r.push({text:n.slice(t,a).join(``),highlighted:!0}),i=a}return i{var t=m(`Searching messages…`);p(e,t)},L=e=>{var t=ki(),n=ce(t),i=k(n),a=e=>{var t=m();N(()=>d(t,`in ${r.session.scope.label??``}`)),p(e,t)};P(i,e=>{r.session.scope.label&&e(a)}),N(()=>d(n,`${r.session.results.length??``}${r.session.nextCursor?`+`:``} + ${r.session.results.length===1&&!r.session.nextCursor?`result`:`results`}`)),p(e,t)},R=e=>{var t=m(`Search unavailable`);p(e,t)};P(F,e=>{r.session.state===`loading`?e(te):r.session.state===`ready`?e(L,1):r.session.state===`error`&&e(R,2)}),t(M);var ne=k(M,2),re=I(ne),ie=e=>{var t=Ai();p(e,t)},B=e=>{var n=ji(),i=k(I(n),4),a=D(i,!0);t(n),N(()=>d(a,r.session.error)),p(e,n)},ae=e=>{var t=Mi();p(e,t)},oe=e=>{var i=Ui(),a=ce(i);f(a,21,()=>r.session.results,e=>e.id,(e,i)=>{let a=U(()=>r.contextFor(u(i)));var o=zi(),c=I(o);let l;var h=I(c);{let e=U(()=>mt(u(i).author)?void 0:u(i).author.avatar_url);pt(h,{class:`dm-avatar`,get id(){return u(i).author.id},get name(){return u(i).author.display_name},get src(){return u(e)},size:30})}var _=k(h,2),y=I(_),b=I(y),x=D(b,!0),S=k(b,2),C=e=>{var t=Ni();p(e,t)},T=U(()=>mt(u(i).author)),E=e=>{var t=Pi(),n=D(t,!0);N(e=>d(n,e),[()=>lt(st(u(i).author))]),p(e,t)},O=U(()=>st(u(i).author));P(S,e=>{u(T)?e(C):u(O)&&e(E,1)});var A=k(S,2),j=D(A,!0);t(y);var M=k(y,2);f(M,21,()=>g(u(i).snippet,u(i).highlights),ee,(e,t)=>{var n=s(),r=ce(n),i=e=>{var n=Fi(),r=D(n,!0);N(()=>d(r,u(t).text)),p(e,n)},a=e=>{var n=m();N(()=>d(n,u(t).text)),p(e,n)};P(r,e=>{u(t).highlighted?e(i):e(a,-1)}),p(e,n)}),t(M);var F=k(M,2),te=I(F),L=e=>{var t=Ii(),n=D(t,!0);N(()=>d(n,u(a))),p(e,t)};P(te,e=>{u(a)&&e(L)});var R=k(te,2),ne=e=>{var t=Li();p(e,t)},re=e=>{var n=Ri(),r=k(I(n));t(n),N(()=>d(r,` ${u(i).reply_count??``} ${u(i).reply_count===1?`reply`:`replies`}`)),p(e,n)};P(R,e=>{u(i).parent_message_id?e(ne):u(i).reply_count>0&&e(re,1)}),t(F),t(_),t(c),t(o),N(e=>{l=w(c,1,`search-result`,null,l,{"is-active":r.session.activeResultID===u(i).id}),z(c,`data-result-id`,u(i).id),d(x,u(i).author.display_name||`Local User`),z(A,`datetime`,u(i).created_at),d(j,e)},[()=>v(u(i).created_at)]),n(`click`,c,()=>r.onOpenResult(u(i))),p(e,o)}),t(a);var o=k(a,2),c=e=>{var i=Bi(),a=I(i),o=D(a,!0),s=k(a,2);t(i),N(()=>d(o,r.session.moreError)),n(`click`,s,function(...e){r.onLoadMore?.apply(this,e)}),p(e,i)},l=e=>{var t=Vi(),i=D(t,!0);N(()=>{t.disabled=r.session.loadingMore,d(i,r.session.loadingMore?`Loading more…`:`Load more results`)}),n(`click`,t,function(...e){r.onLoadMore?.apply(this,e)}),p(e,t)},h=e=>{var t=Hi();p(e,t)};P(o,e=>{r.session.moreError?e(c):r.session.nextCursor?e(l,1):e(h,-1)}),p(e,i)};P(re,e=>{r.session.state===`loading`?e(ie):r.session.state===`error`?e(B,1):r.session.results.length===0?e(ae,2):e(oe,-1)}),t(ne),t(y),N(()=>{b=w(y,1,`search-results`,null,b,{covered:i()}),y.inert=a(),z(y,`aria-hidden`,i()?`true`:void 0),d(E,`Search${r.session.scope.label?` in ${r.session.scope.label}`:``}`),d(A,`Results for “${r.session.query??``}”`)}),n(`click`,j,function(...e){r.onClose?.apply(this,e)}),p(e,y),_()}W([`click`]);var Ki=l(``),qi=l(`
      `),Ji=l(`

      `,1),Yi=l(`
      `),Xi=l(``);function Zi(e,r){o(r,!0);let i=S(r,`saving`,3,!1),a=S(r,`error`,3,``),s=A(!1),c=U(()=>!!r.channel.archived_at),l=U(()=>`#${bt(r.channel)}`);function f(){i()||r.onClose()}var m=Xi(),h=I(m),g=k(h,2),v=I(g),y=k(I(v),2);t(v);var b=k(v,2),x=I(b),C=I(x),w=D(C,!0);te(2),t(x);var T=k(x,2),E=e=>{var t=Ki(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(T,e=>{a()&&e(E)});var O=k(T,2),j=e=>{var a=qi(),o=I(a),s=k(o,2),c=D(s,!0);t(a),N(()=>{o.disabled=i(),s.disabled=i(),d(c,i()?`Restoring...`:`Restore channel`)}),n(`click`,o,f),n(`click`,s,()=>r.onArchivedChange(!1)),p(e,a)},F=e=>{var a=Ji(),o=ce(a),c=D(o),f=k(o,2),m=I(f),h=k(m,2),g=D(h,!0);t(f),N(()=>{d(c,`Archive ${u(l)??``}? The channel will remain available to workspace members under Archived.`),m.disabled=i(),h.disabled=i(),d(g,i()?`Archiving...`:`Archive channel`)}),n(`click`,m,()=>M(s,!1)),n(`click`,h,()=>r.onArchivedChange(!0)),p(e,a)},ee=e=>{var r=Yi(),a=I(r),o=k(a,2);t(r),N(()=>{a.disabled=i(),o.disabled=i()}),n(`click`,a,f),n(`click`,o,()=>M(s,!0)),p(e,r)};P(O,e=>{u(c)?e(j):u(s)?e(F,1):e(ee,-1)}),t(b),t(g),t(m),N(()=>{h.disabled=i(),y.disabled=i(),d(w,u(l))}),n(`click`,h,f),n(`click`,y,f),p(e,m),_()}W([`click`]);var Qi=l(`

      `),$i=l(``),ea=l(`
      `);function ta(e,n){o(n,!0);let r=A(!1),i=A(``),s=A(!1),c=new AbortController;ne(()=>c.abort());async function l(){if(!u(r)){M(r,!0),M(i,``),M(s,!1);try{let e=await Ce({method:`PATCH`,body:JSON.stringify(n.payload()),signal:c.signal});c.signal.throwIfAborted(),n.onUserUpdated(e.user),M(i,`Saved`),n.onSaved?.()}catch(e){if(c.signal.aborted)return;M(i,xe(e,`Could not save ${n.section}`),!0),M(s,!0)}finally{M(r,!1)}}}var f=ea(),m=I(f),h=I(m);a(h,()=>n.children),t(m);var g=k(m,2),y=I(g),b=e=>{var t=Qi();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-status`,null,n,{"is-error":u(s)}),d(r,u(i))}),p(e,t)},x=e=>{var t=$i();p(e,t)};P(y,e=>{u(i)?e(b):e(x,-1)});var S=k(y,2),C=D(S,!0);t(g),t(f),N(()=>{m.disabled=u(r),S.disabled=u(r),d(C,u(r)?`Saving...`:`Save ${n.section}`)}),v(`submit`,f,e=>{e.preventDefault(),l()}),p(e,f),_()}var na=l(`

      Browser notifications are not supported on this device.

      `),ra=l(`

      Browser notifications are blocked by this browser.

      `),ia=l(`

      `),aa=l(`

      Show alerts when ClickClack is in the background.

      `);function oa(e,r){o(r,!0);let i=S(r,`isDesktop`,3,!1),a=A(!1),s=A(!1),c=A(`default`),l=A(``),f=A(!1);C(()=>{m(r.user.id,i())});function m(e,t){if(t){M(a,!0),M(c,`granted`),M(s,It(e),!0),r.onChanged?.(u(s));return}M(a,typeof Notification<`u`),M(c,u(a)?Notification.permission:`unsupported`,!0);let n=It(e);M(s,u(c)===`granted`&&n,!0),n&&u(c)!==`granted`&&Lt(e,!1),r.onChanged?.(u(s))}async function h(e){if(M(l,``),M(f,!1),!e){Lt(r.user.id,!1),M(s,!1),r.onChanged?.(!1),M(l,i()?`Desktop notifications disabled`:`Browser notifications disabled`,!0);return}if(i()){M(s,Lt(r.user.id,!0),!0),r.onChanged?.(u(s)),M(l,u(s)?`Desktop notifications enabled`:`Desktop notification preference could not be saved`,!0),M(f,!u(s));return}if(typeof Notification>`u`){M(a,!1),M(c,`unsupported`),M(s,!1),r.onChanged?.(!1),M(l,`Browser notifications are not supported`),M(f,!0);return}if(M(c,Notification.permission==="default"?await Notification.requestPermission():Notification.permission,!0),M(a,!0),u(c)===`granted`){M(s,Lt(r.user.id,!0),!0),r.onChanged?.(u(s)),M(l,u(s)?`Browser notifications enabled`:`Browser notification preference could not be saved`,!0),M(f,!u(s));return}Lt(r.user.id,!1),M(s,!1),r.onChanged?.(!1),M(l,u(c)===`denied`?`Browser notifications are blocked by this browser`:`Browser notifications were not enabled`,!0),M(f,!0)}var g=aa(),v=I(g),y=I(v),b=D(y,!0),x=k(y,4),T=e=>{var t=na();p(e,t)},E=e=>{var t=ra();p(e,t)};P(x,e=>{!i()&&!u(a)?e(T):!i()&&u(c)===`denied`&&e(E,1)});var j=k(x,2),F=e=>{var t=ia();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-row2__hint`,null,n,{"is-error":u(f)}),d(r,u(l))}),p(e,t)};P(j,e=>{u(l)&&e(F)}),t(v);var ee=k(v,2),te=I(ee);O(te),t(ee),t(g),N(()=>{d(b,i()?`Desktop notifications`:`Browser notifications`),z(te,`aria-label`,i()?`Desktop notifications`:`Browser notifications`),te.disabled=!u(a)||u(c)===`denied`,L(te,u(s))}),n(`change`,te,e=>void h(e.currentTarget.checked)),p(e,g),_()}W([`change`]);var sa=l(``),ca=l(`
      Preview

      Shown in messages, mentions, and your profile card.

      Used in mentions and the quick switcher. Must be unique.

      Paste a public image URL. Your initials show when empty.

      Conversation display

      Keep agent reasoning summaries out of the message timeline.

      Hide tool execution details while keeping ordinary messages visible.

      Choose which side of the timeline shows your messages.

      Choose which side of the timeline shows messages from other people and agents.

      Notifications

      `,1);function la(e,r){o(r,!0);let i=S(r,`isDesktop`,3,!1),a=A(``),s=A(``),c=A(``),l=U(()=>u(a).trim()||r.user.display_name||`Your name`),f=U(()=>u(s).trim().replace(/^@+/,``)||r.user.handle||``);C(()=>{M(a,r.user.display_name,!0),M(s,r.user.handle??``,!0),M(c,r.user.avatar_url,!0)});function m(){M(c,``)}ta(e,{section:`profile`,get onUserUpdated(){return r.onUserUpdated},get onSaved(){return r.onSaved},payload:()=>({display_name:u(a),handle:u(s).trim().replace(/^@+/,``),avatar_url:u(c)}),children:(e,o)=>{var h=ca(),g=ce(h),_=I(g);pt(_,{get id(){return r.user.id},get name(){return u(l)},get src(){return u(c)},size:52,loading:`eager`,fetchPriority:`auto`});var v=k(_,2),y=I(v),b=D(y,!0),S=k(y,2),C=D(S,!0);t(v),te(2),t(g);var w=k(g,2),T=I(w),E=k(I(T),2),A=I(E);O(A),t(E),t(T);var j=k(T,2),F=k(I(j),2),ee=I(F),R=k(I(ee),2);O(R),t(ee),t(F),t(j);var ne=k(j,2),re=k(I(ne),2),ie=I(re);O(ie);var z=k(ie,2),B=e=>{var t=sa();n(`click`,t,m),p(e,t)};P(z,e=>{u(c)&&e(B)}),t(re),t(ne);var ae=k(ne,4),oe=k(I(ae),2),V=I(oe);O(V),t(oe),t(ae);var H=k(ae,2),ue=k(I(H),2),U=I(ue);O(U),t(ue),t(H);var W=k(H,2),de=k(I(W),2),fe=I(de),pe=I(fe);pe.value=pe.__value=`left`;var me=k(pe);me.value=me.__value=`right`,t(fe);var he;x(fe),t(de),t(W);var ge=k(W,2),_e=k(I(ge),2),ve=I(_e),G=I(ve);G.value=G.__value=`left`;var ye=k(G);ye.value=ye.__value=`right`,t(ve);var be;x(ve),t(_e),t(ge),oa(k(ge,4),{get user(){return r.user},get isDesktop(){return i()},get onChanged(){return r.onBrowserNotificationsChanged}}),t(w),N(()=>{d(b,u(l)),d(C,u(f)?`@${u(f)}`:`No handle set`),L(V,r.hideCommentary),L(U,r.hideToolCalls),he!==(he=r.userAlign)&&(fe.value=(fe.__value=he)??``,le(fe,he)),be!==(be=r.otherAlign)&&(ve.value=(ve.__value=be)??``,le(ve,be))}),se(A,()=>u(a),e=>M(a,e)),se(R,()=>u(s),e=>M(s,e)),se(ie,()=>u(c),e=>M(c,e)),n(`change`,V,e=>r.onHideCommentary(e.currentTarget.checked)),n(`change`,U,e=>r.onHideToolCalls(e.currentTarget.checked)),n(`change`,fe,e=>r.onUserAlign(e.currentTarget.value===`right`?`right`:`left`)),n(`change`,ve,e=>r.onOtherAlign(e.currentTarget.value===`right`?`right`:`left`)),p(e,h)},$$slots:{default:!0}}),_()}W([`click`,`change`]);var ua=l(`

      Desktop

      Mobile push

      Send push notifications to your phone via Pushover.

      Find this in your Pushover dashboard under "Your User Key".

      `);function da(e,n){o(n,!0);let r=S(n,`isDesktop`,3,!1),i=A(!1),a=A(``);C(()=>{M(i,n.user.notification_settings?.pushover_enabled??!1,!0),M(a,n.user.notification_settings?.pushover_user_key??``,!0)}),ta(e,{section:`notifications`,get onUserUpdated(){return n.onUserUpdated},payload:()=>({notification_settings:{pushover_enabled:u(i),pushover_user_key:u(a)}}),children:(e,o)=>{var s=ua(),c=k(I(s),2);oa(c,{get user(){return n.user},get isDesktop(){return r()},get onChanged(){return n.onBrowserNotificationsChanged}});var l=k(c,4),d=k(I(l),2),f=I(d);O(f),t(d),t(l);var m=k(l,2),h=k(I(m),2),g=I(h);O(g),t(h),t(m),t(s),T(f,()=>u(i),e=>M(i,e)),se(g,()=>u(a),e=>M(a,e)),p(e,s)},$$slots:{default:!0}}),_()}var fa=l(`

      Loading…

      `),pa=l(`

      `),ma=l(`
      You don't own any bots yet. Open a workspace's Bots & agents page to mint one.
      `),ha=l(``),ga=l(`
    • `),_a=l(`

        `),va=l(`
        `),ya=l(`

        Account

        My bots

        Bots you own across your workspaces. Tokens live with the workspace where the bot was created.

        `,1);function ba(e,r){o(r,!0);let i=A(B([])),a=A(`loading`),s=A(``);ae(()=>{c()});async function c(){M(a,`loading`);try{M(i,await wt(),!0),M(a,`ready`)}catch(e){M(a,`error`),M(s,Tt(e),!0)}}function l(e){r.onClose(),fe(Re(e.workspace.route_id||e.workspace.id,`bots`))}function h(e){return e.startsWith(`@`)?e:`@${e}`}function g(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}let v=U(()=>{let e=new Map;for(let t of u(i)){let n=t.workspace.id,r=e.get(n);r?r.entries.push(t):e.set(n,{workspace:t.workspace,entries:[t]})}return[...e.values()].sort((e,t)=>e.workspace.name.localeCompare(t.workspace.name))});var y=ya(),b=k(ce(y),2),x=e=>{var t=fa();p(e,t)},S=e=>{var t=pa(),n=D(t,!0);N(()=>d(n,u(s))),p(e,t)},C=e=>{var t=ma();p(e,t)},w=e=>{var r=va();f(r,21,()=>u(v),e=>e.workspace.id,(e,r)=>{var i=_a(),a=I(i),o=I(a),s=D(o,!0),c=k(o,2);t(a);var _=k(a,2);f(_,21,()=>u(r).entries,e=>e.bot.id,(e,r)=>{var i=ga(),a=I(i),o=I(a),s=e=>{var t=ha();N(()=>z(t,`src`,u(r).bot.avatar_url)),p(e,t)},c=e=>{var t=m();N(e=>d(t,e),[()=>g(u(r).bot.display_name||u(r).bot.handle||`?`)]),p(e,t)};P(o,e=>{u(r).bot.avatar_url?e(s):e(c,-1)}),t(a);var f=k(a,2),_=I(f),v=D(_,!0),y=k(_,2),b=I(y),x=D(b,!0),S=k(b,4),C=D(S);t(y),t(f);var w=k(f,2);t(i),N(e=>{d(v,u(r).bot.display_name||u(r).bot.handle),d(x,e),d(C,`${u(r).active_token_count??``} + active ${u(r).active_token_count===1?`token`:`tokens`}`)},[()=>h(u(r).bot.handle)]),n(`click`,w,()=>l(u(r))),p(e,i)}),t(_),t(i),N(()=>d(s,u(r).workspace.name)),n(`click`,c,()=>l(u(r).entries[0])),p(e,i)}),t(r),p(e,r)};P(b,e=>{u(a)===`loading`?e(x):u(a)===`error`?e(S,1):u(i).length===0?e(C,2):e(w,-1)}),p(e,y),_()}W([`click`]);function xa(e,t){return t.includes(`password`)&&e.password_enrolled===!0}function Sa(e,t,n){return e?t?[...t].length<8?`New password must be at least 8 characters.`:t===n?``:`New passwords do not match.`:`Enter a new password.`:`Enter your current password.`}var Ca=l(`

        `),wa=l(``),Ta=l(`
        Change password

        Pick a new password for signing in. Your other devices are signed out.

        The password you signed in with.

        At least 8 characters. Longer is better than clever.

        Type it once more so a typo cannot lock you out.

        `);function Ea(e,n){o(n,!0);let r=A(``),i=A(``),a=A(``),s=A(``),c=A(!1),l=A(!1);async function f(){if(u(l))return;let e=Sa(u(r),u(i),u(a));if(e){M(s,e,!0),M(c,!0);return}M(l,!0),M(s,``),M(c,!1);try{await G(`/api/auth/password/change`,{method:`POST`,body:JSON.stringify({current_password:u(r),new_password:u(i)})}),M(r,``),M(i,``),M(a,``),M(s,`Password updated. Your other devices were signed out.`)}catch(e){M(s,xe(e,`Could not change your password`),!0),M(c,!0)}finally{M(l,!1)}}var m=Ta(),h=k(I(m),2),g=I(h),y=k(I(g),2),b=I(y);O(b),t(y),t(g);var x=k(g,2),S=k(I(x),2),C=I(S);O(C),t(S),t(x);var T=k(x,2),E=k(I(T),2),j=I(E);O(j),t(E),t(T),t(h);var F=k(h,2),ee=I(F),te=e=>{var t=Ca();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-status`,null,n,{"is-error":u(c)}),d(r,u(s))}),p(e,t)},L=e=>{var t=wa();p(e,t)};P(ee,e=>{u(s)?e(te):e(L,-1)});var R=k(ee,2),ne=D(R,!0);t(F),t(m),N(()=>{R.disabled=u(l),d(ne,u(l)?`Updating...`:`Update password`)}),v(`submit`,m,e=>{e.preventDefault(),f()}),se(b,()=>u(r),e=>M(r,e)),se(C,()=>u(i),e=>M(i,e)),se(j,()=>u(a),e=>M(a,e)),p(e,m),_()}var Da=l(``),Oa=l(``),ka=l(`

        Account

        Appearance

        Changes apply instantly and follow your account on every device.

        Live preview — updates as you pick

        Color mode System follows your OS setting
        Board theme Palette for boards, accents, and highlights
        Message layout How agent activity attaches to replies
        Density Compact fits more messages on screen
        `,1);function Aa(e,r){o(r,!0);let i=U(()=>r.user.display_name||r.user.handle||`You`),a=U(()=>(u(i)[0]??`Y`).toUpperCase()),s=A(B(Se())),c=A(B(Me())),l=A(B(Pe())),m=A(B(De()));C(()=>{r.user.appearance_preferences,M(s,Se(),!0),M(c,Me(),!0),M(l,Pe(),!0),M(m,De(),!0)});function h(e){M(s,e,!0),Ae(e)}function g(e){M(c,e,!0),we(e)}function v(e){M(l,e,!0),Te(e)}function y(e){M(m,e,!0),Oe(e)}function b(e,t,n,r){let i;switch(e.key){case`ArrowRight`:case`ArrowDown`:i=(n+1)%t;break;case`ArrowLeft`:case`ArrowUp`:i=(n-1+t)%t;break;case`Home`:i=0;break;case`End`:i=t-1;break;default:return}e.preventDefault(),r(i),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.item(i).focus()}var x=ka(),S=k(ce(x),2),T=I(S),E=k(I(T),2),O=I(E),j=I(O),P=D(j,!0),F=k(j,2),ee=I(F),L=I(ee),R=D(L,!0);te(2),t(ee),te(2),t(F),t(O);var ne=k(O,4),re=I(ne),ie=D(re,!0),ae=k(re,2),oe=I(ae),V=I(oe),se=D(V,!0);te(2),t(oe),te(2),t(ae),t(ne),t(E),t(T);var le=k(T,4),H=I(le),ue=k(I(H),2);f(ue,23,()=>ke,e=>e.id,(e,t,r)=>{var i=Da();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(s)===u(t).id}),z(i,`aria-checked`,u(s)===u(t).id),z(i,`tabindex`,u(s)===u(t).id?0:-1),d(o,u(t).label)}),n(`click`,i,()=>h(u(t).id)),n(`keydown`,i,e=>b(e,ke.length,u(r),e=>h(ke[e].id))),p(e,i)}),t(ue),t(H);var W=k(H,2),de=k(I(W),2),fe=I(de),pe=D(fe,!0),me=k(fe,2);f(me,23,()=>Ne,e=>e.id,(e,t,r)=>{var i=Oa();let a;N(()=>{a=w(i,1,`board-chip`,null,a,{"is-active":u(c)===u(t).id}),z(i,`aria-checked`,u(c)===u(t).id),z(i,`tabindex`,u(c)===u(t).id?0:-1),z(i,`data-board`,u(t).id),z(i,`aria-label`,`${u(t).label} — ${u(t).blurb}`),z(i,`title`,`${u(t).label} — ${u(t).blurb}`)}),n(`click`,i,()=>g(u(t).id)),n(`keydown`,i,e=>b(e,Ne.length,u(r),e=>g(Ne[e].id))),p(e,i)}),t(me),t(de),t(W);var he=k(W,2),ge=k(I(he),2);f(ge,23,()=>Ee,e=>e.id,(e,t,r)=>{var i=Da();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(l)===u(t).id}),z(i,`aria-checked`,u(l)===u(t).id),z(i,`tabindex`,u(l)===u(t).id?0:-1),z(i,`title`,u(t).blurb),d(o,u(t).label)}),n(`click`,i,()=>v(u(t).id)),n(`keydown`,i,e=>b(e,Ee.length,u(r),e=>v(Ee[e].id))),p(e,i)}),t(ge),t(he);var _e=k(he,2),ve=k(I(_e),2);f(ve,23,()=>je,e=>e.id,(e,t,r)=>{var i=Da();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(m)===u(t).id}),z(i,`aria-checked`,u(m)===u(t).id),z(i,`tabindex`,u(m)===u(t).id?0:-1),z(i,`title`,u(t).blurb),d(o,u(t).label)}),n(`click`,i,()=>y(u(t).id)),n(`keydown`,i,e=>b(e,je.length,u(r),e=>y(je[e].id))),p(e,i)}),t(ve),t(_e),t(le),t(S),N(e=>{z(T,`data-layout`,u(l)),z(T,`data-density`,u(m)),d(P,u(a)),d(R,u(i)),d(ie,u(a)),d(se,u(i)),d(pe,e)},[()=>Ne.find(e=>e.id===u(c))?.label]),p(e,x),_()}W([`click`,`keydown`]);var $=l(` `,1),ja=l(` `,1),Ma=l(` `,1),Na=l(` `,1),Pa=l(`
      • `),Fa=l(``),Ia=l(`

        Workspace

        `,1),La=l(`

        `),Ra=l(`
      • `),za=l(`
          `),Ba=l(`

          Loading...

          `),Va=l(`

          `),Ha=l(`

          `),Ua=l(`

          Account

          Profile settings

          How you appear across ClickClack.

          Sign out

          End this session on this device.

          `,1),Wa=l(`

          Account

          Notifications

          Decide when and how ClickClack should reach you.

          `,1),Ga=l(``);function Ka(e,r){o(r,!0);let i=S(r,`workspaces`,19,()=>[]),a=S(r,`currentWorkspaceID`,3,``),c=S(r,`initialSection`,3,Ie),l=S(r,`isDesktop`,3,!1),m=A(``),h=U(()=>i().find(e=>e.id===u(m))??K(i(),a())),g=A(!1),y=A(``),b=A(B(Ie)),T=U(()=>xa(r.user,ge())),O=A(`loading`),j=A(``);C(()=>{M(b,c(),!0)}),C(()=>{u(b);let e=new AbortController;return ee(e.signal),()=>e.abort()});async function F(){if(!u(g)){M(g,!0),M(y,``);try{await G(`/api/auth/logout`,{method:`POST`,body:JSON.stringify({})}),window.location.reload()}catch(e){M(y,xe(e,`Could not sign out. Try again.`),!0),M(g,!1)}}}async function ee(e){M(O,`loading`),M(j,``);try{let t=await Ce({signal:e});e.throwIfAborted(),r.onUserUpdated(t.user),M(O,`ready`)}catch(t){if(e.aborted)return;if(t instanceof be&&(t.status===401||t.status===403)){M(O,`error`),M(j,`Sign in to manage your account`);return}M(O,`error`),M(j,t instanceof Error?t.message:`Could not load your account`,!0)}}function te(e){e.target===e.currentTarget&&r.onClose()}function L(e){if(e.key!==`Escape`)return;let t=e.target;(!t||t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&!t.isContentEditable)&&(e.preventDefault(),r.onClose())}function R(e,t){r.onClose(),fe(Re(e.route_id||e.id,t))}var ne=Ga();v(`keydown`,E,L);var re=I(ne),ie=I(re),ae=k(ie,2),oe=I(ae),V=k(I(oe),2);f(V,21,()=>q,e=>e.id,(e,i)=>{var a=Pa(),o=I(a);let s;var c=I(o),l=e=>{var t=$(),n=ce(t);pt(n,{class:`settings-modal__rail-avatar`,get id(){return r.user.id},get name(){return r.user.display_name},get src(){return r.user.avatar_url},size:18});var a=k(n,2),o=D(a,!0);N(()=>d(o,r.user.display_name||u(i).label)),p(e,t)},f=e=>{var t=ja(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)},m=e=>{var t=Ma(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)},h=e=>{var t=Na(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)};P(c,e=>{u(i).id===`profile`?e(l):u(i).id===`appearance`?e(f,1):u(i).id===`notifications`?e(m,2):u(i).id===`bots`&&e(h,3)}),t(o),t(a),N(()=>{s=w(o,1,`settings-modal__rail-item`,null,s,{"is-active":u(b)===u(i).id}),z(o,`aria-current`,u(b)===u(i).id?`page`:void 0)}),n(`click`,o,()=>M(b,u(i).id,!0)),p(e,a)}),t(V),t(oe);var se=k(oe,2),H=e=>{var r=za(),o=I(r),c=e=>{var r=Ia(),o=k(ce(r),4);f(o,21,i,e=>e.id,(e,t)=>{var n=Fa(),r=D(n,!0),i={};N(e=>{d(r,e),i!==(i=u(t).id)&&(n.value=(n.__value=i)??``)},[()=>Le(u(t),a())?`${u(t).name} (current)`:u(t).name]),p(e,n)}),t(o);var s;x(o),N(()=>{s!==(s=u(h).id)&&(o.value=(o.__value=s)??``,le(o,s))}),n(`change`,o,e=>M(m,e.currentTarget.value,!0)),p(e,r)},l=e=>{var t=La(),n=D(t);N(()=>{z(t,`title`,u(h).name),d(n,`Workspace · ${u(h).name??``}`)}),p(e,t)};P(o,e=>{i().length>1?e(c):e(l,-1)});var g=k(o,2);f(g,21,()=>Fe,e=>e.id,(e,r)=>{var i=s(),a=ce(i),o=e=>{var i=Ra(),a=I(i),o=k(I(a),2),s=D(o,!0);t(a),t(i),N(()=>d(s,u(r).label)),n(`click`,a,()=>R(u(h),u(r).slug)),p(e,i)},c=U(()=>!u(r).managersOnly||ze(u(h).role));P(a,e=>{u(c)&&e(o)}),p(e,i)}),t(g),t(r),p(e,r)};P(se,e=>{u(h)&&e(H)}),t(ae);var ue=k(ae,2),W=I(ue),de=e=>{var t=Ba();p(e,t)},pe=e=>{var t=Va(),n=D(t,!0);N(()=>d(n,u(j))),p(e,t)},me=e=>{var i=Ua(),a=k(ce(i),2);la(a,{get user(){return r.user},get hideCommentary(){return r.hideCommentary},get hideToolCalls(){return r.hideToolCalls},get userAlign(){return r.userAlign},get otherAlign(){return r.otherAlign},get isDesktop(){return l()},get onUserUpdated(){return r.onUserUpdated},get onSaved(){return r.onClose},get onHideCommentary(){return r.onHideCommentary},get onHideToolCalls(){return r.onHideToolCalls},get onUserAlign(){return r.onUserAlign},get onOtherAlign(){return r.onOtherAlign},get onBrowserNotificationsChanged(){return r.onBrowserNotificationsChanged}});var o=k(a,2),s=e=>{Ea(e,{})};P(o,e=>{u(T)&&e(s)});var c=k(o,2),f=I(c),m=k(I(f),4),h=e=>{var t=Ha(),n=D(t,!0);N(()=>d(n,u(y))),p(e,t)};P(m,e=>{u(y)&&e(h)}),t(f);var _=k(f,2),v=I(_),b=D(v,!0);t(_),t(c),N(()=>{v.disabled=u(g),d(b,u(g)?`Signing out...`:`Sign out`)}),n(`click`,v,F),p(e,i)},he=e=>{Aa(e,{get user(){return r.user}})},_e=e=>{var t=Wa();da(k(ce(t),2),{get user(){return r.user},get isDesktop(){return l()},get onUserUpdated(){return r.onUserUpdated},get onBrowserNotificationsChanged(){return r.onBrowserNotificationsChanged}}),p(e,t)},ve=e=>{ba(e,{get onClose(){return r.onClose}})};P(W,e=>{u(O)===`loading`?e(de):u(O)===`error`?e(pe,1):u(b)===`profile`?e(me,2):u(b)===`appearance`?e(he,3):u(b)===`notifications`?e(_e,4):u(b)===`bots`&&e(ve,5)}),t(ue),t(re),t(ne),n(`click`,ne,te),n(`click`,ie,function(...e){r.onClose?.apply(this,e)}),p(e,ne),_()}W([`click`,`change`]);var qa=l(`
          No thread open Hover any message and tap the bubble to keep side conversations tidy.
          `);function Ja(e){var t=qa();p(e,t)}var Ya=l(``),Xa=l(`

          `,1),Za=l(``),Qa=l(``),$a=l(``),eo=l(``),to=l(``),no=l(``),ro=l(``),io=l(`
          `),ao=l(`Connecting…`),oo=l(`
          `);function so(e,r){o(r,!0);function i(e){return e===`muted`?`Channel muted - click to change`:e===`mentions`?`Notifications for @mentions only - click to change`:`All notifications enabled - click to change`}let a=S(r,`channelNotifPreference`,3,void 0),s=S(r,`channelNotifSaving`,3,!1),c=S(r,`channelSettingsAvailable`,3,!1),l=S(r,`pinsAvailable`,3,!1),f=S(r,`pinnedOpen`,3,!1),m=S(r,`onOpenChannelSettings`,3,()=>{}),h=S(r,`onToggleChannelNotifications`,3,()=>{}),g=U(()=>yt(r.externalURL));var y=oo(),b=I(y),x=I(b),C=I(x),T=I(C),E=k(I(T),2);t(T),t(C);var A=k(C,2),M=D(A,!0),F=k(A,2),ee=e=>{var t=Xa(),n=k(ce(t),2),i=D(n,!0),a=k(n,2),o=e=>{var t=Ya();N(()=>z(t,`href`,u(g))),p(e,t)};P(a,e=>{u(g)&&e(o)}),N(()=>{z(n,`title`,r.channelTitle),d(i,r.channelTitle)}),p(e,t)};P(F,e=>{r.channelTitle&&e(ee)}),t(x);var L=k(x,2),R=k(I(L),2);O(R);var ne=k(R,2),re=e=>{var t=Za();n(`click`,t,function(...e){r.onResetSearch?.apply(this,e)}),p(e,t)};P(ne,e=>{r.searchQuery&&e(re)}),te(2),t(L);var ie=k(L,2),B=e=>{var o=io(),u=I(o),d=e=>{var r=to(),o=I(r),c=e=>{var t=Qa();p(e,t)},l=e=>{var t=$a();p(e,t)},u=e=>{var t=eo();p(e,t)};P(o,e=>{a()===`muted`?e(c):a()===`mentions`?e(l,1):e(u,-1)}),t(r),N((e,t)=>{z(r,`title`,e),z(r,`aria-label`,t),z(r,`aria-busy`,s()),r.disabled=s()},[()=>i(a()),()=>i(a())]),n(`click`,r,function(...e){h()?.apply(this,e)}),p(e,r)};P(u,e=>{a()&&e(d)});var g=k(u,2),_=e=>{var t=no();let i;N(()=>{z(t,`title`,f()?`Close pinned items`:`Pinned items`),z(t,`aria-label`,f()?`Close pinned items`:`Pinned items`),i=w(t,1,``,null,i,{active:f()})}),n(`click`,t,function(...e){r.onPinnedItems?.apply(this,e)}),p(e,t)};P(g,e=>{l()&&e(_)});var v=k(g,2),y=e=>{var t=ro();n(`click`,t,function(...e){m()?.apply(this,e)}),p(e,t)};P(v,e=>{c()&&e(y)}),t(o),p(e,o)};P(ie,e=>{(a()||l()||c())&&e(B)});var ae=k(ie,2),oe=e=>{var t=ao();p(e,t)};P(ae,e=>{r.connected||e(oe)}),t(b),t(y),N(()=>{z(y,`data-platform`,r.platform),z(C,`aria-label`,r.mobileNavigation?r.mobileNavOpen?`Close navigation`:`Open navigation`:r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(C,`title`,r.mobileNavigation?r.mobileNavOpen?`Close navigation`:`Open navigation`:r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(E,`d`,r.mobileNavigation?r.mobileNavOpen?`m15 9-3 3 3 3`:`m9 9 3 3-3 3`:r.sidebarCollapsed?`m13 9 3 3-3 3`:`m16 9-3 3 3 3`),d(M,r.workspaceName||`ClickClack`),j(R,r.searchQuery)}),n(`click`,C,function(...e){r.onToggleSidebar?.apply(this,e)}),n(`click`,A,function(...e){r.onOpenWorkspaceSettings?.apply(this,e)}),v(`submit`,L,e=>{e.preventDefault(),r.onSearch()}),n(`input`,R,e=>r.onSearchQuery(e.currentTarget.value)),p(e,y),_()}W([`click`,`input`]);var co=l(`

          `),lo=l(``),uo=l(``),fo=l(``),po=l(``),mo=l(`

          `,1),ho=l(`

          ClickClack

          `),go=l(``),_o=l(``),vo=l(``),yo=l(``),bo=l(`

          `);function xo(e,r){o(r,!0);function i(e){return e===`muted`?`Channel muted - click to change`:e===`mentions`?`Notifications for @mentions only - click to change`:`All notifications enabled - click to change`}let a=S(r,`pinnedOpen`,3,!1),s=S(r,`channelNotifPreference`,3,void 0),c=S(r,`channelNotifSaving`,3,!1),l=S(r,`channelSettingsAvailable`,3,!1),f=S(r,`onOpenChannelSettings`,3,()=>{}),m=S(r,`onToggleChannelNotifications`,3,()=>{}),h=U(()=>r.selectedDirect?void 0:yt(r.selectedChannel?.external_url));var g=bo(),y=I(g),b=I(y),x=e=>{var t=co(),n=D(t,!0);N(e=>d(n,e),[()=>`@${ot(r.selectedDirect,r.currentUserID)}`]),p(e,t)},C=e=>{var a=mo(),o=ce(a),l=D(o,!0),u=k(o,2),f=e=>{var r=po(),a=I(r),o=e=>{var t=lo();p(e,t)},l=e=>{var t=uo();p(e,t)},u=e=>{var t=fo();p(e,t)};P(a,e=>{s()===`muted`?e(o):s()===`mentions`?e(l,1):e(u,-1)}),t(r),N((e,t)=>{z(r,`title`,e),z(r,`aria-label`,t),z(r,`aria-busy`,c()),r.disabled=c()},[()=>i(s()),()=>i(s())]),n(`click`,r,function(...e){m()?.apply(this,e)}),p(e,r)};P(u,e=>{s()&&e(f)}),N(e=>d(l,e),[()=>`#${bt(r.selectedChannel)}`]),p(e,a)},T=e=>{var t=ho();p(e,t)};P(b,e=>{r.selectedDirect?e(x):r.selectedChannel?e(C,1):e(T,-1)});var E=k(b,4),A=D(E,!0);t(y);var M=k(y,2),F=k(I(M),2);O(F);var ee=k(F,2),L=e=>{var t=go();n(`click`,t,function(...e){r.onResetSearch?.apply(this,e)}),p(e,t)};P(ee,e=>{r.searchQuery&&e(L)}),te(2),t(M);var R=k(M,2),ne=I(R),re=e=>{var t=_o();N(()=>z(t,`href`,u(h))),p(e,t)};P(ne,e=>{u(h)&&e(re)});var ie=k(ne,2);let B;var ae=k(ie,2),oe=e=>{var t=vo();let i;N(()=>{z(t,`title`,a()?`Close pinned items`:`Pinned items`),z(t,`aria-label`,a()?`Close pinned items`:`Pinned items`),i=w(t,1,``,null,i,{active:a()})}),n(`click`,t,function(...e){r.onPinnedItems?.apply(this,e)}),p(e,t)};P(ae,e=>{r.selectedChannel&&e(oe)});var V=k(ae,2),se=e=>{var t=yo();n(`click`,t,function(...e){f()?.apply(this,e)}),p(e,t)};P(V,e=>{r.selectedChannel&&l()&&e(se)}),t(R),t(g),N(()=>{d(A,r.workspaceName||`no workspace`),j(F,r.searchQuery),z(ie,`title`,r.threadOpen?`Close thread`:`Open a message thread`),z(ie,`aria-label`,r.threadOpen?`Close thread`:`Open a message thread`),B=w(ie,1,``,null,B,{active:r.threadOpen})}),v(`submit`,M,e=>{e.preventDefault(),r.onSearch()}),n(`input`,F,e=>r.onSearchQuery(e.currentTarget.value)),n(`click`,ie,function(...e){r.onToggleThread?.apply(this,e)}),p(e,g),_()}W([`click`,`input`]);function So(e,t,n){let r=t.find(t=>t.bot.id===e)?.bot??n(e);return r?.display_name?.trim()||(r?.handle?`@${r.handle}`:``)}function Co(e,t,n){let r=new Set,i=[];for(let a of e){if(!a.lines.some(e=>!e.finalized)||a.userId&&r.has(a.userId))continue;a.userId&&r.add(a.userId);let e=So(a.userId,t,n);e&&i.push(e)}return i}async function wo(e){return(await G(`/api/workspaces/${e}/bot-commands`)).bot_commands??[]}function To(e){let t=e.trim().toLowerCase();return t?t.startsWith(`/`)?t:`/${t}`:``}function Eo(e){let t=/^(\/\S+)\s*([\s\S]*)$/.exec(e);return t?{command:To(t[1]),text:t[2].trim()}:null}function Do(e,t){return e.find(e=>!e.revoked_at&&To(e.command)===t)}async function Oo(e,t,n){let r=new URLSearchParams;r.set(`command`,t),r.set(`text`,n);let i=await fetch(he(`/api/hooks/slash/${e}`),ye({method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/x-www-form-urlencoded`,"X-ClickClack-CSRF":`1`},body:r.toString()})),a=await i.text();if(!i.ok)throw new be(i.status,a);let o=a?JSON.parse(a):{};return{response_type:o.response_type||`in_channel`,text:(o.text||``).trim()}}var ko=e({default:()=>Wo}),Ao=l(``),jo=l(``),Mo=l(``),No=l(`
          Showing topic
          `),Po=l(`

          `),Fo=l(`
          `),Io=l(``),Lo=l(``),Ro=l(``),zo=l(` `,1),Bo=l(`

          Loading thread…

          `),Vo=l(`
          Thread
          `,1),Ho=l(``),Uo=l(`
          `,1);function Wo(e,i){o(i,!1);let a=()=>g(et,`$threadView`,l),[l,h]=ue(),C=R(),T=R(),O=R(),A=R(),j=R(),F=R(),ee=R(),te=R(),L=R(),B=R(),se=R(),U=R(),W=R(),me=R(),he=R(),ge=R(),ye=R(),Se=R(),we=R(),Te=R(),Ee=R(),De=R(),Oe=R(),ke=R(),Ae=Date.now(),je=Rt?.integratedTitleBar===!0,Me=R(Ot),Ne=S(i,`routeWorkspaceID`,8,``),Pe=S(i,`routeTargetID`,8,``),K=R(null),Fe=new nt(()=>u(K)?.id||``),Ie=new He(Jo),Le=R([]),q=R([]),ze=R([]),Ve=R(null),Ge=new Map,qe=new Map,Ye=R(!1),J=R([]),Xe=R([]),Y=R(``),X=R(``),Z=R(``),Q=new St(()=>`${u(Y)}:${$()}`,es),et=de(()=>({root:Q.root,selection:Q.selection,replies:Q.replies,state:Q.state,draft:Q.draft,error:Q.error})),tt=R(``),it=R(``),st=0,lt=``,ut=new Map,dt=R(null),ft=R(!1),pt=R([]),mt=R(!1),_t=R(``),yt=R(new Set),wt=0,Tt=R([]),kt=R([]),At=R([]),jt=R([]),Pt=R(null),Ft=R([]),Bt=R(``),Vt=R(null),Ht=R(null),Ut=R(``),Wt=R(null),Gt=R(null),Kt=R(null),qt=new Set,Jt=R(``),Yt=R(``),Zt=R(``),Qt=R(``),$t=R(null),en=R(``),tn=R(``),nn=R(``),rn=0,cn=R(``),ln=R(null),un=R(!1),fn=0,pn=0,mn=R(null),hn=R(``),gn=null,vn=R(!1),yn=R(`profile`),bn=R(!1),xn=R(!1),Sn=R(``),Cn=R(!1),Tn=R(!1),Dn=R(!1),On=R(!1),kn=R(!1),An=R(`left`),jn=R(`left`),Mn=R(!1),Nn=R(!1),Pn=R(!1),Fn=R(``),In=``,Ln=``,Rn=null,zn=R(null),Bn=new Map,Vn=R(new Map),Hn=new ht(()=>[u(K)?.id,u(Y),$()].join(`:`)),Un=new Set,Wn=R(`idle`),Gn=`idle`,Kn=!1,qn=!1,Jn=R(!1),Yn=R(!1),Xn=R(!1),Zn=R(!1),Qn=new Map,$n=0,er=R(``),tr=R(void 0),nr=R(``),rr=R(!0),ir=R(!1),ar=R(!1),or=R(!1),cr=R(!1),lr=R(null),ur=R(null),dr=R(null),fr=R(null),pr=R(`message`),mr=R([]),hr,_r=R([]),vr,xr=R(Date.now()),Cr,wr=``,Tr=0,Dr=0,Or=0,Ar=0,jr=0,Nr=0,Pr=0,Fr=0,Ir=null,Lr=R(``),zr=0,Br=0,Vr=0,Hr=0,Ur=0,Wr=R(null),Gr,qr=R(new Set),Jr=R(null),Yr=R(``);function Xr(e){e!==lt&&(lt=e,M(tt,``),Zr(``))}function Zr(e){e!==u(it)&&(M(it,e),st+=1)}function Qr(){return`${u(Y)}:${$()}:${u(it)}:${st}:${Dr}`}function $r(e,t){return t?e.filter(e=>!e.archived_at&&(!e.channel_id||e.channel_id===t)):[]}pe(()=>{Rt?.setActiveRoute(`${window.location.pathname}${window.location.search}${window.location.hash}`)}),ae(()=>{ti(),Nt(e=>G(e)).then(e=>{M(Me,e)}),Cr=window.setInterval(()=>{M(xr,Date.now())},3e4),pi(),oi();let e=window.matchMedia(`(max-width: 820px)`),t=()=>{M(or,!1),M(cr,e.matches)};t();let n=Rt?.onNavigate(e=>{fe(e,{keepFocus:!0,noScroll:!0})}),r=Rt?.onQuickCompose(()=>ei());return e.addEventListener(`change`,t),()=>{e.removeEventListener(`change`,t),n?.(),r?.()}});function ei(){y().then(()=>{(u(pr)===`thread`?u(fr):u(dr))?.focus()})}function ti(){(e=>{M(On,e.hideCommentary),M(kn,e.hideToolCalls),M(An,e.userAlign),M(jn,e.otherAlign)})(an()),sn(u(An),u(jn))}function ni(e){M(An,e),sn(u(An),u(jn)),on(`userAlign`,e)}function ri(e){M(jn,e),sn(u(An),u(jn)),on(`otherAlign`,e)}function ii(e){M(On,e),on(`hideCommentary`,e)}function ai(e){M(kn,e),on(`hideToolCalls`,e)}ne(()=>{Ss(),Q.close(),Tr+=1,Dr+=1,Hn.clear(),Fr+=1,Ir?.abort(),Rn?.close(),Rn=null,M(Pn,!1),En(),hr&&window.clearInterval(hr),vr&&window.clearInterval(vr),Cr&&window.clearInterval(Cr),Gr&&clearTimeout(Gr),Zs(!1,null)});async function oi(){try{let e=await Ce();M(K,e.user),pi(),await mi(),M(Mn,!0)}catch(e){si(e)}}function si(e){if(e instanceof be&&(e.status===401||e.status===403)){Rn?.close(),Rn=null,M(vn,!1),M(Nn,!0),M(Mn,!1);return}M(Pt,{kind:`error`,text:xe(e,`Could not load ClickClack`)})}function ci(){u(K)&&(M(or,!1),M(yn,`profile`),M(vn,!0))}function li(){let e=u(T)?.route_id||u(Y)||Ne();e&&fe(Re(e))}function ui(){u(ee)&&(M(Sn,``),M(bn,!0))}async function di(e){let t=u(F);if(t&&u(ee)&&!u(xn)){M(xn,!0),M(Sn,``);try{let n=await G(`/api/channels/${t.id}`,{method:`PATCH`,body:JSON.stringify({archived:e})});M(q,u(q).map(e=>e.id===n.channel.id?n.channel:e)),M(bn,!1)}catch(t){M(Sn,xe(t,e?`Could not archive channel`:`Could not restore channel`))}finally{M(xn,!1)}}}function fi(e){M(K,e),fo(e),Q.updateAuthor(e)}function pi(){if(Rt){M(Dn,It(u(K)?.id||``));return}let e=It(u(K)?.id||``);M(Dn,typeof Notification<`u`&&Notification.permission===`granted`&&e),e&&!u(Dn)&&Lt(u(K)?.id||``,!1)}async function mi(){let e=++Or,t=await G(`/api/workspaces`);e===Or&&M(Le,t.workspaces)}function hi(e=``,t=``){return`${e||``}/${t||``}`}function gi(e=u(Y),t=``){let n=bi(e);if(!n)return`/app`;let r=`/app/${encodeURIComponent(n)}`,i=xi(t);return i?`${r}/${encodeURIComponent(i)}`:r}async function _i(e){if(!e.channel_id||e.parent_message_id)throw Error(`Only channel roots have links`);let t=await G(`/api/messages/${e.id}/route`,{method:`POST`});if(!t.message.route_id)throw Error(`Message route was not allocated`);uo({id:t.message.id,route_id:t.message.route_id});let n=bi(t.message.workspace_id);if(!n)throw Error(`Workspace route is unavailable`);let r=`/app/${encodeURIComponent(n)}/${encodeURIComponent(t.message.route_id)}`;return new URL(r,`${ve()}/`).toString()}function yi(e){let t=u(q).find(t=>t.id===e)?.route_id||u(J).find(t=>t.id===e)?.route_id;return t?gi(u(Y),t):!u(Y)||!e?`/app`:`/app/${encodeURIComponent(u(Y))}/${encodeURIComponent(e)}`}function bi(e=u(Y)){return e?u(Le).find(t=>t.id===e||t.route_id===e)?.route_id||e:``}function xi(e=``){return e?u(q).find(t=>t.id===e||t.route_id===e)?.route_id||u(J).find(t=>t.id===e||t.route_id===e)?.route_id||Q.root?.id===e&&Q.root.route_id||u(Xe).find(t=>t.id===e)?.route_id||e:``}async function Si(e=u(Y),t=``,n=!1){let r=gi(e,t);window.location.pathname!==r&&await fe(r,{replaceState:n,noScroll:!0,keepFocus:!0})}function Ci(e,t){hi(e,t)!==wr&&Pi(e,t)}function wi(){Tr++,wr=hi(bi(),xi($())),Si(u(Y),$())}function Ti(){u(un)&&gs(),Q.close(),M(dt,null),M(ft,!1),M(pr,`message`),M(or,!1)}function Ei(e=u(Y)){return ji(e)||u(q).find(e=>e.name.toLowerCase()===`guest`)?.id||u(q)[0]?.id||u(J)[0]?.id||``}function Di(e=u(Y)){return u(Le).find(t=>t.id===e||t.route_id===e)}function ki(e=u(Y)){let t=Di(e),n=t?.route_id||t?.id||e;return n?`clickclack:last-channel:v1:${n}`:``}function Ai(e){try{let t=JSON.parse(e);return{id:typeof t.id==`string`?t.id:``,routeID:typeof t.routeID==`string`?t.routeID:``}}catch{return{id:e}}}function ji(e=u(Y)){let t=ki(e);if(!t)return``;let n;try{let e=window.localStorage.getItem(t);if(!e)return``;n=Ai(e)}catch{return``}let r=u(q).find(e=>e.id===n.id||e.route_id===n.routeID);if(r)return r.id;try{window.localStorage.removeItem(t)}catch{}return``}function Mi(e,t){if(!e||!t)return;let n=u(q).find(e=>e.id===t);if(!n)return;let r=ki(e);if(r)try{window.localStorage.setItem(r,JSON.stringify({id:n.id,routeID:n.route_id}))}catch{}}function Ni(e){Ln===e&&(Ln=``,Ms())}async function Pi(e=``,t=``){let n=++Tr;wr=hi(e,t),t!==Q.selection?.messageID&&t!==Q.root?.route_id&&Q.close();try{Fe.clear();let r=t.trim()?await Ii(e,t):null;if(n!==Tr)return;let i=r?u(Le).find(e=>e.id===r.workspace_id):u(Le).find(t=>t.id===e||t.route_id===e)||u(Le)[0];if(!i){pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},`replace`);return}let a=u(Y)!==i.id;if(a&&(co(),Ie.clear(),Hn.clear(),Ri(),M(Y,i.id),jr+=1,zr+=1,Br+=1,Fr+=1,Ir?.abort(),M(Lr,``),M(At,[]),M(jt,[]),M(ze,[]),M(kt,[]),M(X,``),M(Z,``),Q.close(),M(dt,null),M(pr,`message`),gs(),ba(),M(rr,!0),Ln=i.id),(a||u(q).length===0)&&await Wi(!1,!1),n!==Tr||((a||u(J).length===0)&&await ws(),a&&(await Promise.all([Ji(),Xi(i.id),Qi(i.id),Ki(i.id)]),Yi(i.id)),n!==Tr))return;if(r){let e=await Fi(r,n);if(n!==Tr)return;if(!e){Ti(),await Si(i.id,Ei(),!0);return}}if(r?.canonical_path&&window.location.pathname!==r.canonical_path&&(wr=hi(r.workspace_route_id,r.target_route_id),await fe(r.canonical_path,{replaceState:!0,noScroll:!0,keepFocus:!0}),n!==Tr))return;if(r?.target_type===`channel`&&u(q).some(e=>e.id===r.target_id)){let e=r.target_id,t=!a&&u(X)===e&&!u(Z)&&u(er)===e;if(M(X,e),M(Z,``),Mi(i.id,e),Ti(),t){_a(e),Ni(i.id);return}if(Xr(e),await Promise.all([sa(),nc()]),n!==Tr)return;Ni(i.id);return}if(r?.target_type===`direct`&&u(J).some(e=>e.id===r.target_id)){let e=r.target_id,t=!a&&u(Z)===e&&!u(X)&&u(er)===e;if(M(Z,e),M(X,``),Ti(),t){_a(e),Ni(i.id);return}if(Xr(e),await sa(),n!==Tr)return;Ni(i.id);return}if(r?.target_type===`thread`){let e=await Li(r,n);if(n!==Tr)return;e&&Ni(i.id);return}let o=Ei();if(Ti(),!o){M(X,``),M(Z,``),Xr(``),await sa(),(e!==i.route_id||t)&&await Si(i.id,``,!0),Ni(i.id);return}await Si(i.id,o,!0)}catch(e){n===Tr&&si(e)}}async function Fi(e,t){return e.target_type===`channel`?(u(q).some(t=>t.id===e.target_id)||await Wi(!1,!1,!1),t===Tr&&u(q).some(t=>t.id===e.target_id)):e.target_type===`direct`?(u(J).some(t=>t.id===e.target_id)||(await ws(),u(J).some(t=>t.id===e.target_id)||Ts((await G(`/api/dms/${e.target_id}`)).conversation)),t===Tr&&u(J).some(t=>t.id===e.target_id)):e.parent_type===`channel`&&e.parent_id?(u(q).some(t=>t.id===e.parent_id)||await Wi(!1,!1,!1),t===Tr&&u(q).some(t=>t.id===e.parent_id)):e.parent_type===`direct`&&e.parent_id?(u(J).some(t=>t.id===e.parent_id)||(await ws(),u(J).some(t=>t.id===e.parent_id)||Ts((await G(`/api/dms/${e.parent_id}`)).conversation)),t===Tr&&u(J).some(t=>t.id===e.parent_id)):!0}async function Ii(e,t){try{return(await G(`/api/routes/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)).route}catch(e){if(e instanceof be&&(e.status===403||e.status===404))return null;throw e}}async function Li(e,t){if(e.workspace_id!==u(Y))return!1;let n=e.parent_type===`channel`&&e.parent_id||``,r=e.parent_type===`direct`&&e.parent_id||``;if(n){if(!u(q).some(e=>e.id===n))return!1;M(X,n),M(Z,``),Mi(e.workspace_id,n)}else if(r){if(!u(J).some(e=>e.id===r))return!1;M(Z,r),M(X,``)}else return!1;Hn.prune();let i=Q.root?.id===e.target_id&&u(er)===$();if(M(dt,null),M(ft,!1),M(pr,`thread`),M(or,!1),!await $o(e.target_id,void 0,()=>t===Tr))return!1;let a=Q.selection;if(n&&await nc(),!Q.isCurrent(a)||t!==Tr)return!1;if(!i&&n&&Q.root&&(Q.root.thread_state?.reply_count??0)===0){let e=Q.root;return Q.close(),M(pr,`message`),await bs(e),!0}return!i&&Q.root&&await bs(Q.root),!0}function Ri(){rn++,M($t,null),M(en,``),M(tn,``),M(nn,``),M(ir,!1),M(Cn,!1),M(Tn,!1)}function zi(){let e=!u(ir);Ri(),M(ir,e)}function Bi(){Ri(),M(Cn,!0)}function Vi(){Ri(),M(Tn,!0),Yi()}async function Hi(){if(u($t)===`workspace`||!u(Yt).trim())return;let e=u(Y),t=Tr,n=++rn,r=()=>n===rn&&t===Tr&&e===u(Y);M($t,`workspace`),M(en,``);try{let e=await G(`/api/workspaces`,{method:`POST`,body:JSON.stringify({name:u(Yt)})});if(u(Le).some(t=>t.id===e.workspace.id)||M(Le,[...u(Le),e.workspace]),!r())return;M(Yt,``),M(ir,!1),M(or,!1),await Si(e.workspace.id)}catch(e){r()&&M(en,xe(e,`Could not create workspace`))}finally{n===rn&&M($t,null)}}async function Ui(e){M(or,!1),await Si(e)}async function Wi(e=!0,t=!0,n=!0){let r=u(Y);if(!r)return;let i=++Ar,a=await G(`/api/workspaces/${r}/channels`);i===Ar&&r===u(Y)&&(M(q,a.channels),t?M(X,u(q).find(e=>e.id===u(X))?.id||u(q).find(e=>!e.archived_at)?.id||u(q)[0]?.id||``):u(X)&&!u(q).some(e=>e.id===u(X))&&M(X,``),n&&(u(un)&&gs(),Q.close(),M(dt,null),M(pr,`message`)),e&&await sa())}async function Ki(e=u(Y)){let t=++jr,n=$(),r=u(X),i=!1;if(!e){M(ze,[]);return}try{let a=await G(`/api/workspaces/${e}/topics`);if(t!==jr||e!==u(Y)||(M(ze,a.topics),$()!==n||u(X)!==r))return;let o=new Set($r(a.topics,r).map(e=>e.id));u(tt)&&!o.has(u(tt))&&M(tt,``),u(it)&&!o.has(u(it))&&(Zr(``),Bn.delete($()),u(Vn).delete($()),i=!0)}catch{return}if(i&&$()===n)try{await ca()}catch(e){if($()!==n||u(it))return;po(),M(Pt,{kind:`error`,text:e instanceof Error?`Topic changed, but messages could not reload: ${e.message}`:`Topic changed, but messages could not reload`})}}function qi(){M(pr,`message`),u(X)&&Ki()}async function Ji(e=u(Y)){let t=++Pr;if(!e||e!==u(Y)||u(O)!==`owner`&&u(O)!==`moderator`){t===Pr&&M(Tt,[]);return}try{let n=await G(`/api/workspaces/${e}/moderation/members`);if(t!==Pr||e!==u(Y))return;M(Tt,n.members)}catch{t===Pr&&e===u(Y)&&M(Tt,[])}}async function Yi(e=u(Y)){let t=++Fr;Ir?.abort();let n=new AbortController;if(Ir=n,M(Lr,``),!e){M(kt,[]);return}try{let r=await Dt({workspaceID:e,limit:100,signal:n.signal});if(t!==Fr||e!==u(Y))return;M(kt,r.map(e=>e.user))}catch(r){!n.signal.aborted&&t===Fr&&e===u(Y)&&(M(kt,[]),M(Lr,Et(r)))}}async function Xi(e=u(Y)){let t=++zr;if(!e){M(At,[]);return}try{let n=await G(`/api/workspaces/${e}/slash-commands`);if(t!==zr||e!==u(Y))return;M(At,n.slash_commands)}catch{t===zr&&e===u(Y)&&M(At,[])}}async function Qi(e=u(Y),t=!1){let n=++Br;if(!e){M(jt,[]);return}try{let t=await wo(e);if(n!==Br||e!==u(Y))return;M(jt,t)}catch(r){let i=n===Br&&e===u(Y);if(i&&M(jt,[]),t&&i)throw r}}function $i(e){Ur+=1,M(Pt,null)}async function ea(e,t){if(!u(Y))return;let n=await G(`/api/workspaces/${u(Y)}/moderation/members/${e}`,{method:`PATCH`,body:JSON.stringify(t)});M(Tt,[...u(Tt).filter(t=>t.user.id!==e),n.member]),await Wi(!1,!1,!1)}async function ta(){if(u($t)===`channel`||!u(Y)||!u(Zt).trim())return;let e=u(Y),t=Tr,n=++rn,r=()=>n===rn&&t===Tr&&e===u(Y);M($t,`channel`),M(tn,``);try{let t=await G(`/api/workspaces/${e}/channels`,{method:`POST`,body:JSON.stringify({name:u(Zt),kind:`public`})});if(e===u(Y)&&!u(q).some(e=>e.id===t.channel.id)&&M(q,[...u(q),t.channel]),!r())return;M(Zt,``),M(Cn,!1),await Si(e,t.channel.id)}catch(e){r()&&M(tn,xe(e,`Could not create channel`))}finally{n===rn&&M($t,null)}}async function na(e){M(or,!1),Mi(u(Y),e);let t=gi(u(Y),e);(e!==u(X)||u(Z)||window.location.pathname!==t)&&await Si(u(Y),e)}async function ra(e,t){let n=++Vr;if(M(Ve,null),e&&!t)try{let t=await G(`/api/channels/${e}/notification-settings`);if(n!==Vr||e!==u(X)||u(Z))return;$a(e,t.preference),M(Ve,t.preference)}catch{if(n===Vr&&e===u(X)&&!u(Z)){let t=Qa(e)||`all`;$a(e,t),M(Ve,t)}}}async function ia(){let e=u(X);if(!e||u(Z)||u(Ye)||!u(Ve))return;let t=++Vr,n=[`all`,`mentions`,`muted`],r=u(Ve),i=n[(n.indexOf(r)+1)%n.length];M(Ve,i),$a(e,i),M(Ye,!0);try{await G(`/api/channels/${e}/notification-settings`,{method:`PATCH`,body:JSON.stringify({preference:i})})}catch{Ge.get(e)===i&&$a(e,r),t===Vr&&e===u(X)&&!u(Z)&&M(Ve,r)}finally{M(Ye,!1)}}function aa(e=!1){ba(),M(rr,e),Dr+=1,Hn.prune();let t=Qr();return()=>Qr()===t}async function oa(e,t=`replace`,n=aa()){let r=$();r!==u(er)&&M(rr,!0);try{if(!r){n()&&pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},t);return}await Hn.run(()=>G(da(e)),e=>{let n=e,i=u(Vn).get(r);!n.has_newer&&i&&i.newest_seq>n.newest_seq&&(n=i.oldest_seq>n.newest_seq?i:{...n,messages:xa(n.messages,i.messages.filter(e=>mo(e)>n.newest_seq)),newest_seq:i.newest_seq,has_newer:i.has_newer}),pa(r,n,t)},n)}catch(e){if(n())throw e}finally{n()&&M(rr,!1)}}async function sa(e=!0){return e&&co(),oa(la())}async function ca(e=aa()){let t=$();if(t)return M(rr,!0),Bn.set(t,{atBottom:!0}),oa(`limit=100`,`replace`,e)}function la(){let e=ua(),t=e.unread_count||0,n=e.last_read_seq||0;return t>0?`around_seq=${encodeURIComponent(String(n+1))}&limit=100`:`limit=100`}function ua(){return u(Z)?u(J).find(e=>e.id===u(Z))||{}:u(X)&&u(q).find(e=>e.id===u(X))||{}}function da(e){let t=u(Z)?`/api/dms/${u(Z)}/messages`:`/api/channels/${u(X)}/messages`,n=new URLSearchParams(e);!u(Z)&&u(it)&&n.set(`topic_id`,u(it));let r=n.toString();return r?`${t}?${r}`:t}async function fa(e){if(!u(X)||e===u(it))return;let t=$(),n=u(it),r=u(tt),i=u(Vn).get(t),a=Bn.get(t);Zr(e);let o=st;e&&M(tt,e),Bn.delete(t),u(Vn).delete(t);try{await ca()}catch(s){if($()!==t||st!==o)return;Zr(n),u(tt)===e&&M(tt,r),u(Vn).delete(t);let c=st;try{if(await ca(),$()!==t||st!==c)return;a&&(Bn.set(t,a),M(tr,a))}catch{if($()!==t||st!==c)return;i?(ma(t,i),lo(t,i.messages),_a(t,i)):po(),a&&(Bn.set(t,a),M(tr,a))}M(Pt,{kind:`error`,text:s instanceof Error?`Topic could not change: ${s.message}`:`Topic could not change`})}}function pa(e,t,n){let r=ko(e).flatMap(e=>e.receipt?[e.receipt]:[]).sort((e,t)=>mo(e)-mo(t)),i=mo(t.messages.at(-1));if(!t.has_newer)for(let e of r)mo(e)===i+1&&(t={...t,messages:[...t.messages,e]},i=mo(e));r.some(e=>mo(e)>i)&&(t={...t,has_newer:!0});let a=Ca(e,t.messages,n),o=a[0]?.channel_seq||0,s=a[a.length-1]?.channel_seq||0,c=o>(t.messages[0]?.channel_seq||o),l=s<(t.messages[t.messages.length-1]?.channel_seq||s),d={messages:a,oldest_seq:o,newest_seq:s,has_older:t.has_older||c,has_newer:t.has_newer||l};ma(e,d),_a(e,d),(n!==`append`||e!==u(er))&&M(tr,Bn.get(e)),lo(e,a)}function ma(e,t){e&&(u(Vn).delete(e),u(Vn).set(e,t),ha(e),ga(e),M(Vn,new Map(u(Vn))))}function ha(e){let t=u(Vn).size+1;for(;u(Vn).size>8&&t>0;){t--;let n=u(Vn).keys().next().value;if(!n)return;if(n===e){let e=u(Vn).get(n);u(Vn).delete(n),e&&u(Vn).set(n,e);continue}u(Vn).delete(n)}}function ga(e){let t=Bn.size+1;for(;Bn.size>16&&t>0;){t--;let n=Bn.keys().next().value;if(!n)return;if(n===e){let e=Bn.get(n);Bn.delete(n),e&&Bn.set(n,e);continue}Bn.delete(n)}}function _a(e,t=u(Vn).get(e)){e===$()&&(M(Jn,t?.has_older||!1),M(Yn,t?.has_newer||!1))}function va(e){let t=u(Vn).get(e);e&&t&&(ma(e,{...t,has_newer:!0}),_a(e))}function ya(e,t){e===`older`?(M(Wn,t),M(Xn,t===`loading`)):(Gn=t,M(Zn,t===`loading`))}function ba(){Un=new Set,M(Wn,`idle`),Gn=`idle`,Kn=!1,qn=!1,M(Xn,!1),M(Zn,!1)}function xa(e,t){let n=new Map;for(let r of[...e,...t])n.set(r.id,r);return[...n.values()].sort((e,t)=>(e.channel_seq||0)-(t.channel_seq||0))}function Sa(e){let t=new Set,n=Va(e);if(n>=0){let r=Ha(e,u(Xe),n);r&&t.add(r.id)}let r=Bn.get(e)?.anchorMessageID;r&&t.add(r);let i=Ie.session(e);i&&t.add(i.messageID),Q.root&&ho(Q.root,e)&&t.add(Q.root.id),u(lr)&&ho(u(lr),e)&&t.add(u(lr).id);for(let n of u(Xe))(n.status===`pending`||n.status===`failed`)&&ho(n,e)&&t.add(n.id);return t}function Ca(e,t,n){return We(t,n,Sa(e))}function wa(){if(u(Wn)!==`idle`){Kn=!0;return}Ea()}function Ta(e=!1){if(Gn!==`idle`){e&&(qn=!0);return}Da()}async function Ea(){let e=$(),t=Qr(),n=u(Vn).get(e),r=`${t}:older`;if(u(Wn)!==`idle`){Kn=!0;return}if(!e||!n?.has_older||n.oldest_seq<=0||Un.has(r))return;Un.add(r),Kn=!1,ya(`older`,`loading`),co();let i=!1;try{await Hn.run(()=>G(da(`before_seq=${encodeURIComponent(String(n.oldest_seq))}&limit=50`)),t=>{let n=u(Vn).get(e);n&&(pa(e,{...n,messages:xa(t.messages,n.messages),has_older:t.has_older},`prepend`),i=!0,ya(`older`,`settling`))},()=>Qr()===t)}catch(e){Qr()===t&&M(Pt,{kind:`error`,text:xe(e,`Could not load older messages`)})}finally{Un.delete(r),Qr()===t&&!i&&ya(`older`,`idle`)}}async function Da(){let e=$(),t=Qr(),n=u(Vn).get(e),r=`${t}:newer`;if(Gn!==`idle`){qn=!0;return}if(!e||Un.has(r))return;if(!n||n.newest_seq<=0){await sa();return}Un.add(r),qn=!1,ya(`newer`,`loading`);let i=!1;try{await Hn.run(()=>G(da(`after_seq=${encodeURIComponent(String(n.newest_seq))}&limit=50`)),t=>{i=ka(e,t,n.newest_seq),i&&ya(`newer`,`settling`)},()=>Qr()===t)}catch(e){Qr()===t&&M(Pt,{kind:`error`,text:xe(e,`Could not load newer messages`)})}finally{Un.delete(r),Qr()===t&&!i&&ya(`newer`,`idle`)}}async function Oa(e){let t=$(),n=Qr();if(!u(Y)||!t)return;let r=u(Vn).get(t);if(!r||r.newest_seq<=0){await sa();return}await Hn.run(()=>G(da(`after_seq=${encodeURIComponent(String(r.newest_seq))}&limit=50`)),e=>{ka(t,e,r.newest_seq)},()=>e()&&Qr()===n)}function ka(e,t,n){let r=u(Vn).get(e);if(!r)return!1;let i=t.newest_seq||n,a=i>r.newest_seq?t.has_newer:in&&(n=r.channel_seq));return n}function Ma(e,t=u(Xe)){let n=0;for(let r of t)r.direct_conversation_id===e&&typeof r.channel_seq==`number`&&r.channel_seq>n&&(n=r.channel_seq);return n}function Na(e,t){return e&&t.unread_count||0}async function Pa(e,t){let n=u(q).find(t=>t.id===e);if(n&&!(t<=0||t<=(n.last_read_seq||0))){M(q,u(q).map(n=>n.id===e?(()=>{let e=Math.max(n.last_seq||0,t);return{...n,last_seq:e,unread_count:t>=e?0:n.unread_count||0,last_read_seq:t}})():n));try{await G(`/api/channels/${e}/read`,{method:`POST`,body:JSON.stringify({seq:t})})}catch{}}}async function Fa(e,t){let n=u(J).find(t=>t.id===e);if(n&&!(t<=0||t<=(n.last_read_seq||0))){M(J,u(J).map(n=>n.id===e?(()=>{let e=Math.max(n.last_seq||0,t);return{...n,last_seq:e,unread_count:t>=e?0:n.unread_count||0,last_read_seq:t}})():n));try{await G(`/api/dms/${e}/read`,{method:`POST`,body:JSON.stringify({seq:t})})}catch{}}}function Ia(e){let t=u(Vn).get(e)?.newest_seq||0,n=u(q).find(t=>t.id===e);if(n)return Math.max(n.last_seq||0,(n.last_read_seq||0)+(n.unread_count||0),ja(e),t);let r=u(J).find(t=>t.id===e);return r?Math.max(r.last_seq||0,(r.last_read_seq||0)+(r.unread_count||0),Ma(e),t):0}function La(e){let t=u(Vn).get(e);return!t||t.has_newer?0:u(q).find(t=>t.id===e)?ja(e):u(J).find(t=>t.id===e)?Ma(e):0}function Ra(e={}){if(!e.all&&Date.now()<$n)return;let t=$()||u(er);if(!t||u(it)&&u(q).some(e=>e.id===t))return;if(!e.all&&!e.seq){let e=Va(t);if(e>=0&&!io(t,e))return}let n=e.all?Math.max(e.seq||0,Ia(t)):e.seq||La(t);if(!(n<=0)){if(u(J).some(e=>e.id===t)){Fa(t,n),e.all&&za(t,n);return}u(q).some(e=>e.id===t)&&(Pa(t,n),e.all&&za(t,n))}}function za(e,t){Qn.delete(e),Qn=new Map(Qn),M(q,u(q).map(n=>n.id===e?{...n,last_seq:Math.max(n.last_seq||0,t),last_read_seq:Math.max(n.last_read_seq||0,t),unread_count:0}:n)),M(J,u(J).map(n=>n.id===e?{...n,last_seq:Math.max(n.last_seq||0,t),last_read_seq:Math.max(n.last_read_seq||0,t),unread_count:0}:n))}function Ba(e){let t=u(q).find(t=>t.id===e);return t?t.last_read_seq||0:u(J).find(t=>t.id===e)?.last_read_seq||0}function Va(e){let t=u(q).find(t=>t.id===e);if(t)return Na(e,t)>0?t.last_read_seq||0:-1;let n=u(J).find(t=>t.id===e);return n&&Na(e,n)>0?n.last_read_seq||0:-1}function Ha(e,t,n){for(let r of t){if(!ho(r,e)||r.parent_message_id||r.author?.id===u(K)?.id||r.author_id===u(K)?.id)continue;let t=r.channel_seq;if(typeof t==`number`&&t>n)return r}return null}function Ua(e,t){if(!e)return;let n=ro(e);if(Na(e,n)<=0){Qn.delete(e),Qn=new Map(Qn);return}let r=n.last_read_seq||0,i=Qn.get(e);if(i?.boundarySeq===r&&i.since||!io(e,r))return;let a=Ha(e,t,r);a&&(Qn=new Map(Qn).set(e,{boundarySeq:r,since:oo(a.created_at)}))}function Wa(e,t,n){if(!e||!n)return;let r=Qn.get(e);r?.boundarySeq===t&&r.since||(Qn=new Map(Qn).set(e,{boundarySeq:t,since:oo(n)}))}function Ga(e){let t=e.payload,n=t.channel_seq??e.seq??t.seq;return typeof n==`number`?n:Number(n)||0}function qa(e){let t=e.payload;return{channelID:e.channel_id||(typeof t.channel_id==`string`?t.channel_id:``),dmID:typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``}}async function Ya(e){try{let t=await G(`/api/channels/${e}/notification-settings`);return $a(e,t.preference),e===u(X)&&!u(Z)&&!u(Ye)&&M(Ve,t.preference),t.preference}catch{return Qa(e)||`all`}}function Xa(e){return u(K)?.id&&e?`clickclack:channel-notification:v1:${u(K).id}:${e}`:``}function Za(e){let t=Xa(e);if(!t)return null;try{let e=window.localStorage.getItem(t);return e===`all`||e===`mentions`||e===`muted`?e:null}catch{return null}}function Qa(e){return Ge.get(e)||Za(e)}function $a(e,t){Ge=new Map(Ge).set(e,t);let n=Xa(e);if(n)try{window.localStorage.setItem(n,t)}catch{}}async function eo(e,t){if(e.type!==`message.created`&&e.type!==`thread.reply_created`)return;let{channelID:n,dmID:r}=qa(e),i=Ga(e);if(e.type===`message.created`&&i>0){let e=n||r;if(i<=(qe.get(e)||0))return;qe.set(e,i)}let a=e.payload,o=typeof a.kind==`string`?a.kind:``;if(o===`agent_commentary`||o===`agent_tool`||!u(Dn)||document.visibilityState===`visible`&&t)return;if(n){let t=await Ya(n);if(!t||!u(Dn))return;let r=n===u(X)&&!u(Z);if(document.visibilityState===`visible`&&r||t===`muted`||t===`mentions`&&!e.mentioned_user_ids?.includes(u(K)?.id||``))return}let s=typeof a.message_id==`string`?a.message_id:`${e.channel_id||``}:${e.seq||Date.now()}`,c=typeof a.author_id==`string`?a.author_id:``,l=typeof a.body==`string`?a.body:`New message`;if(e.type===`thread.reply_created`&&typeof a.message_id==`string`)try{let e=await G(`/api/messages/${a.message_id}`);c=e.message.author_id,l=e.message.body}catch{}if(c&&c===u(K)?.id||!u(Dn)||document.visibilityState===`visible`&&(n&&n===u(X)||r&&r===u(Z)))return;let d=u(q).find(e=>e.id===n),f=Hs(c)?.display_name||`ClickClack`,p=d?`#${bt(d)}`:`Direct message`;if(Rt){Rt.notify({body:to(l),route:yi(n||r),tag:`clickclack:${s}`,title:`${f} in ${p}`});return}if(!(typeof Notification>`u`||Notification.permission!==`granted`))try{let e=new Notification(`${f} in ${p}`,{body:to(l),tag:`clickclack:${s}`,icon:`/favicon.svg`});e.onclick=()=>{window.focus(),e.close(),n?na(n):r&&Es(r)}}catch{}}function to(e){let t=e.replace(/!\[[^\]]*]\([^)]+\)/g,`[image]`).replace(/\[[^\]]+]\(([^)]+)\)/g,`$1`).replace(/[`*_>#|]/g,``).replace(/\s+/g,` `).trim();return t?t.length>180?`${t.slice(0,177)}...`:t:`New message`}async function no(e){let t=e.payload,n=typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``;return!n||u(J).some(e=>e.id===n)?!1:(await ws(),u(J).some(e=>e.id===n))}function ro(e){return u(q).find(t=>t.id===e)||u(J).find(t=>t.id===e)||{}}function io(e,t,n=u(Vn)){if(!e||t<0)return!1;let r=n.get(e);if(!r||r.messages.length===0)return!1;let i=t+1;return r.oldest_seq<=i&&r.newest_seq>=i}function ao(e,t,n=u(Vn)){let r=Qn.get(e);if(r?.boundarySeq===t)return r.since;if(!io(e,t,n))return``;let i=Ha(e,u(Xe),t);return i?oo(i.created_at):``}function oo(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}).format(t)}function co(){if(!u(er)||!u(zn))return;let e=u(zn).captureState();e&&Bn.set(u(er),e)}function lo(e,t){let n=e!==u(er);for(let[t,n]of ut)!n.message.status&&(n.draft.viewKey!==e||u(it)&&n.draft.topicID!==u(it))&&ut.delete(t);let r=ko(e).map(e=>e.message),i=new Map(r.map(e=>[e.id,e])),a=new Map(r.filter(e=>e.nonce).map(e=>[e.nonce,e]));Fe.seedMessages(t);let o=t.map(e=>{let t=i.get(e.id)||(e.nonce?a.get(e.nonce):void 0);return t?(!t.status&&(t.attachments||[]).every(t=>e.attachments?.some(e=>e.id===t.id))&&ut.delete(t.nonce),{...e,nonce:t.nonce,status:t.status,attachments:t.attachments?.length?t.attachments:e.attachments}):e}),s=new Set(o.map(e=>e.id)),c=new Set(o.map(e=>e.nonce).filter(Boolean)),l=r.filter(e=>!s.has(e.id)&&!(e.nonce&&c.has(e.nonce)));M(Xe,[...o,...l].sort((e,t)=>(e.channel_seq||1/0)-(t.channel_seq||1/0))),Ie.reconcile(e,u(Xe)),M(er,e),Ua(e,u(Xe)),n&&(M(mr,[]),M(_r,[]),En())}function uo(e){po(Hn.updateMessage(e))}function fo(e){po(Hn.updateAuthor(e))}function po(e){let t=$(),n=t?u(Vn).get(t):void 0;if(e)for(let t of ut.values()){let n=t.message;t.message={...e(n),status:n.status,attachments:n.attachments},t.receipt&&=e(t.receipt)}let r=e?n?.messages.map(e)||[]:n?.messages||[];n?pa(t,{...n,messages:r},`append`):lo(t,r)}function mo(e){return e?.channel_seq||0}function ho(e,t){return t?e.channel_id===t||e.direct_conversation_id===t:!1}async function go(e=()=>!0){await y(),e()&&await u(zn)?.scrollToBottom()}function _o(){return u(zn)?.isFollowing()||u(zn)?.isNearBottom(96)!==!1}async function vo(e=!1){let t=u(rr)||u(Yn)||u(me)>0,n=aa();try{if(t&&await ca(n),await go(n),!n())return;u(Yn)||Ra({all:!0}),await go(n)}catch(t){n()&&(M(Pt,{kind:`error`,text:xe(t,`Could not jump to latest messages`)}),e&&await go(n))}}function yo(e,t,n=`tmp_${e}`){let r=new Date().toISOString();return{id:n,workspace_id:t.workspaceID,channel_id:t.channelID,direct_conversation_id:t.directConversationID,topic_id:t.topicID,author_id:u(K)?.id||``,thread_root_id:n,body:t.body,body_format:`markdown`,created_at:r,author:u(K)||void 0,attachments:t.upload?[t.upload]:[],quoted_message_id:t.quotedMessageID,nonce:e,status:`pending`}}async function bo(){let e=u(Jt).trim();if(!e)return;if(u(B)&&!u(se)){M(Pt,{kind:`error`,text:`This conversation has no active recipient`});return}if(!u(X)&&!u(Z)){M(Pt,{kind:`ephemeral`,text:`Pick or create a channel to send a message.`});return}En(),M(Pt,null);let t=++Ur,n=$(),r=u(Z)?`dm`:`channel`,i=u(lr)&&u(ur)===r?u(lr):null;if(u(X)&&!u(Z)&&!u(mn)&&!i){let r=Eo(e),i=r?Do(u(At),r.command):void 0;if(r&&i){M(Jt,``),Ss(),await So(u(X),r.command,r.text,e,n,t);return}}let a={body:e,quotedMessageID:i?.id,upload:u(mn)||void 0,workspaceID:u(Y),channelID:u(X)||void 0,directConversationID:u(Z)||void 0,topicID:u(X)&&u(tt)||void 0,topicFilterID:u(it),topicFilterGeneration:st,viewKey:$()};M(Jt,``),i&&cs(),Ss(),await Go(a)}async function So(e,t,n,r,i,a){try{let r=await Oo(e,t,n);if(a!==Ur||$()!==i)return;r.text&&r.response_type!==`in_channel`&&M(Pt,{kind:`ephemeral`,text:r.text})}catch(e){if(console.warn(`slash dispatch failed`,e),a!==Ur||$()!==i)return;M(Pt,{kind:`error`,text:e instanceof be&&e.message?To(e):`${t} failed`}),u(Jt).trim()||M(Jt,r)}}function To(e){try{let t=JSON.parse(e.message);if(t&&typeof t.error==`string`&&t.error)return t.error}catch{}return e.message}function ko(e){return[...ut.values()].filter(({draft:t})=>t.viewKey===e&&(!u(it)||t.topicID===u(it)))}async function Wo(e,t,n,r){let{draft:i}=e;if(e.message=t,$()!==i.viewKey)return;let a=!1,o=u(it)===i.topicFilterID&&st===i.topicFilterGeneration;if(r()&&o&&u(it)&&i.topicID!==u(it)){Zr(``),Bn.delete(i.viewKey),u(Vn).delete(i.viewKey),r=aa();try{await ca(r)}catch{a=!0}}if($()===i.viewKey){if(u(it)&&i.topicID!==u(it)){u(Jt).trim()||M(Jt,i.body),M(Pt,{kind:`error`,text:`${n} Clear the active topic filter to recover the draft.`});return}po(),M(Pt,{kind:`error`,text:a?`${n} The unfiltered timeline could not reload.`:n}),await go(r)}}async function Go(e,t,n){let r=Dr,i=()=>Dr===r&&$()===e.viewKey,a=t??Ze(),o=`tmp_${a}`,s=n??o,c=!u(it)||e.topicID===u(it),l=!t&&$()===e.viewKey&&c,d=yo(a,e,s),f={draft:e,message:d,receipt:ut.get(a)?.receipt};ut.set(a,f),$()===e.viewKey&&c&&(po(),t||go());let p=e.directConversationID?`/api/dms/${e.directConversationID}/messages`:`/api/channels/${e.channelID}/messages`,m={body:e.body,nonce:a};e.quotedMessageID&&(m.quoted_message_id=e.quotedMessageID),e.topicID&&(m.topic_id=e.topicID),e.upload&&(m.upload_id=e.upload.id);try{let t=f.receipt||(await G(p,{method:`POST`,body:JSON.stringify(m)})).message;if(f.receipt=t,e.upload&&!t.attachments?.some(t=>t.id===e.upload?.id))try{await G(`/api/messages/${t.id}/attachments`,{method:`POST`,body:JSON.stringify({upload_id:e.upload.id})}),t={...t,attachments:[...t.attachments||[],e.upload]}}catch(n){console.warn(`attachment fallback failed`,n),await Wo(f,{...t,nonce:a,status:`failed`,attachments:[...t.attachments||[],e.upload]},`The message was sent, but its attachment failed. Retry or discard it below.`,i);return}f.receipt=t,f.message={...t,nonce:a},$()===e.viewKey?po():ut.delete(a)}catch(t){console.warn(`send failed`,t),await Wo(f,{...d,status:`failed`},e.upload?`The attachment failed, so the message was not sent. Retry or discard it below.`:`The message failed to send. Retry or discard it below.`,i);return}i()&&l&&await vo(!0)}function Ko(e){if(!e.nonce)return;let t=ut.get(e.nonce)?.draft;t&&Go(t,e.nonce,e.id)}function qo(e){if(!e.nonce)return;let t=ut.get(e.nonce);t?.receipt?t.message={...t.receipt,nonce:e.nonce}:ut.delete(e.nonce),po()}async function Jo(e,t){let n=Q.selection,r=()=>e===u(nr)&&Ie.session(e)?.generation===t.generation&&(t.surface!==`thread`||Q.selection===n);if(r()){if(Tr++,t.surface===`thread`){if(t.threadRootID&&n?.messageID!==t.threadRootID&&(M(ft,!1),Q.select(t.threadRootID),n=Q.selection,!await $o(t.threadRootID,void 0,r))||!await Q.target({messageID:t.messageID,threadSeq:t.threadSeq},r)||!r())return;Q.root?.route_id&&await Si(u(Y),Q.root.id)}else u(zn)?.scrollToMessage(t.messageID),await Si(u(Y),Q.root?.id||$());for(let e=0;e<16;e+=1){if(await y(),await new Promise(e=>requestAnimationFrame(()=>e())),!r())return;let e=document.querySelector(t.surface===`timeline`?`main.timeline`:`[aria-label="Thread pane"]`)?.querySelector(`[data-message-id="${CSS.escape(t.messageID)}"]`)?.querySelector(`textarea[aria-label="Edit message"]`);if(e){e.focus({preventScroll:!0});return}}}}function Yo(e){uo(e),Q.updateMessage(e),M(pt,u(pt).map(t=>t.id===e.id?Qe(t,e):t))}function Xo(e){!e.id||e.deleted_at||u(qr).has(e.id)||(M(Jr,e),M(Yr,``))}async function Zo(){let e=u(Jr);if(e&&!u(qr).has(e.id)){M(qr,new Set([...u(qr),e.id])),M(Yr,``);try{let t=(await G(`/api/messages/${e.id}`,{method:`DELETE`})).message;Ie.cancelMessage($(),t.id),uo(t),Q.updateMessage(t),M(pt,u(pt).filter(e=>e.id!==t.id)),u(lr)?.id===t.id&&cs(),M(Jr,null)}catch(e){M(Yr,e instanceof Error?e.message:`Could not delete message`)}finally{let t=new Set(u(qr));t.delete(e.id),M(qr,t)}}}async function Qo(e){Tr++,gs(),M(ft,!1),await $o(e.id,e)&&u(Y)&&Q.root?.route_id&&await Si(u(Y),Q.root.id)}async function $o(e,t,n=()=>!0){M(Ht,null),M(Ut,``),M(dt,null),M(pr,`thread`),Q.select(e,t);try{return await Q.open(n)}catch{return!1}}function es(e=[]){let t=Q.root;t&&(Fe.seedMessages(e),Ie.reconcile($(),[t,...Q.replies]),uo({id:t.id,thread_state:t.thread_state}))}async function ts(e){await Hn.run(()=>G(`/api/messages/${e}/thread?latest=true&limit=1`),e=>{let t={...e.root,thread_state:e.thread_state};Fe.seedMessages([t]),uo(t)})}async function ns(e,t){(u(Xe).some(t=>t.id===e)||Hn.pending)&&await Hn.run(()=>G(`/api/messages/${e}`),e=>uo(e.message),t)}function rs(e,t){let n=u(Xe).find(t=>t.id===e);if(!n)return!1;let r=new Date(t.created_at).getTime();if(Number.isFinite(r)&&ra}async function is(){(!u(B)||u(se))&&await Q.send()}function as(e,t){t===`thread`?Q.setQuote(e):(M(lr,e),M(ur,t)),M(pr,t===`thread`?`thread`:`message`)}function os(){return u(Jr)!==null||u(Vt)!==null||u(vn)||u(bn)||u(Cn)||u(Tn)}function ss(){return u(pr)===`thread`&&Q.root&&u(fr)?u(fr):u(dr)}function cs(){M(lr,null),M(ur,null)}async function ls(e){let t=e.quoted_message_id;if(!t)return;if(e.parent_message_id&&e.thread_root_id===Q.selection?.messageID){await Q.target({messageID:t});return}let n=aa();if(u(zn)?.scrollToMessage(t)??!1){await fs(t,n);return}let r=await G(`/api/messages/${t}`);n()&&ho(r.message,$())&&await bs(r.message)}async function us(){aa(),$n=Date.now()+1200,!(u(ye)&&u(zn)?.scrollToDivider(!1))&&await ds()}async function ds(){let e=$();if(!e)return;$n=Date.now()+1200;let t=Ba(e),n=Qn.get(e),r=(n?.boundarySeq===t?n.boundarySeq:t)+1;r<=0||await xs(r)}async function fs(e,t){for(let n=0;n<16;n+=1){if(await y(),await new Promise(e=>requestAnimationFrame(()=>e())),!t())return;let n=document.querySelector(`[data-message-id="${CSS.escape(e)}"]`);if(n){n.classList.add(`highlight`),window.setTimeout(()=>n.classList.remove(`highlight`),1500);return}}}async function ps(){if(!u(Y)||!u(cn).trim()){gs();return}let e=u(cn).trim();u(Ht)&&Xs(),(Q.root||u(dt))&&ec();let t=++pn,n=u(Z)&&u(B)?{workspaceID:u(Y),channelID:``,directConversationID:u(Z),label:`@${ot(u(B),u(K)?.id)}`}:u(X)&&u(F)?{workspaceID:u(Y),channelID:u(X),directConversationID:``,label:`#${bt(u(F))}`}:{workspaceID:u(Y),channelID:``,directConversationID:``,label:``};M(un,!1),fn=0;let r={query:e,scope:n,results:[],nextCursor:null,state:`loading`,error:``,loadingMore:!1,moreError:``,activeResultID:``};M(ln,r);try{let e=await G(`/api/search?${ms(r).toString()}`);if(t!==pn)return;M(ln,{...r,results:e.results,nextCursor:e.next_cursor,state:`ready`})}catch(e){if(t!==pn)return;M(ln,{...r,state:`error`,error:e instanceof be?e.message:`Search is unavailable right now.`})}}function ms(e,t=``){let n=new URLSearchParams({workspace_id:e.scope.workspaceID,q:e.query});return e.scope.directConversationID?n.set(`direct_conversation_id`,e.scope.directConversationID):e.scope.channelID&&n.set(`channel_id`,e.scope.channelID),t&&n.set(`cursor`,t),n}async function hs(){let e=u(ln);if(!e||e.state!==`ready`||!e.nextCursor||e.loadingMore)return;let t=pn;M(ln,{...e,loadingMore:!0,moreError:``});try{let n=await G(`/api/search?${ms(e,e.nextCursor).toString()}`);if(t!==pn||!u(ln))return;let r=new Set(u(ln).results.map(e=>e.id));M(ln,{...u(ln),results:[...u(ln).results,...n.results.filter(e=>!r.has(e.id))],nextCursor:n.next_cursor,loadingMore:!1})}catch(e){if(t!==pn||!u(ln))return;M(ln,{...u(ln),loadingMore:!1,moreError:e instanceof be?e.message:`Couldn’t load more results.`})}}function gs(){pn+=1,M(cn,``),M(ln,null),M(un,!1),fn=0}function _s(e){if(e.channel_name)return`#${e.channel_name}`;if(e.direct_conversation_id){let t=u(J).find(t=>t.id===e.direct_conversation_id);return t?`@${ot(t,u(K)?.id)}`:`Direct message`}return``}async function vs(e){let t=u(ln),n=e.channel_id||e.direct_conversation_id||``;if(t&&u(Y)&&n&&(Tr++,M(ln,{...t,activeResultID:e.id}),$()!==n&&(await Si(u(Y),n),await Pi(bi(u(Y)),xi(n))),$()===n)){if(e.parent_message_id){fn=document.querySelector(`.search-results-scroll`)?.scrollTop??0;let t=pn;if(M(un,!0),!await $o(e.thread_root_id,void 0,()=>t===pn&&u(un)&&u(ln)?.activeResultID===e.id))return;let n=()=>t===pn&&u(un)&&u(ln)?.activeResultID===e.id;if(!await Q.target({messageID:e.id,threadSeq:e.thread_seq},n)||!n())return;Q.root?.route_id&&await Si(u(Y),Q.root.id),await y(),n()&&document.querySelector(`.thread .thread-back`)?.focus({preventScroll:!0});return}if(await Si(u(Y),n),e.channel_seq&&e.channel_seq>0){await xs(e.channel_seq,e.id);return}await sa()}}async function ys(){if(Tr++,!u(ln)||!u(un))return;let e=$();Q.close(),M(dt,null),M(pr,`message`),M(un,!1),u(Y)&&e&&await Si(u(Y),e),await y();let t=document.querySelector(`.search-results-scroll`);t&&(t.scrollTop=fn),(u(ln).activeResultID?document.querySelector(`.search-result[data-result-id="${CSS.escape(u(ln).activeResultID)}"]`):null)?.focus({preventScroll:!0})}async function bs(e){let t=e.channel_seq||0;if(t<=0){await sa();return}await xs(t,e.id)}async function xs(e,t=``){let n=$();if(!n)return;let r=!!u(it);r&&(Zr(``),u(Vn).delete(n));let i=aa(r);t&&Bn.set(n,{atBottom:!1,anchorMessageID:t,anchorPixelOffset:0}),await oa(`around_seq=${encodeURIComponent(String(e))}&limit=100`,`around`,i),await y(),i()&&(t?(u(zn)?.scrollToMessage(t),await fs(t,i)):u(zn)?.scrollToDivider(!1))}function Ss(){gn?.abort(),gn=null,M(hn,``),M(mn,null)}async function Cs(e){let t=e.currentTarget,n=t.files?.[0],r=u(Y);if(!n||!r)return;t.value=``,gn?.abort();let i=new AbortController;gn=i,M(hn,r),M(Pt,null);let a=()=>gn===i&&!i.signal.aborted&&u(Y)===r;try{let e=await zt(n,i.signal);if(!a())return;let t=new FormData;t.set(`workspace_id`,r),t.set(`file`,n),e.width>0&&t.set(`width`,String(e.width)),e.height>0&&t.set(`height`,String(e.height)),e.durationMS>0&&t.set(`duration_ms`,String(e.durationMS));let o=await G(`/api/uploads`,{method:`POST`,body:t,signal:i.signal});a()&&M(mn,o.upload)}catch(e){a()&&M(Pt,{kind:`error`,text:xe(e,`Could not upload file`)})}finally{gn===i&&(gn=null)}}async function ws(e=u(Y)){let t=++Nr;if(!e){M(J,[]);return}let n=await G(`/api/dms?workspace_id=${e}`);t===Nr&&e===u(Y)&&(M(J,n.conversations),u(Z)&&!u(J).some(e=>e.id===u(Z))&&M(Z,``))}function Ts(e){M(J,u(J).some(t=>t.id===e.id)?u(J).map(t=>t.id===e.id?e:t):[...u(J),e])}async function Es(e){M(or,!1);let t=gi(u(Y),e);(e!==u(Z)||u(X)||window.location.pathname!==t)&&await Si(u(Y),e)}async function Ds(e){let t=e.trim();if(u($t)===`direct`||!u(Y)||!t)return;let n=u(Y),r=Tr,i=++rn,a=()=>i===rn&&r===Tr&&n===u(Y);M($t,`direct`),M(nn,``);try{let e=await G(`/api/dms`,{method:`POST`,body:JSON.stringify({workspace_id:n,member_ids:[t]})});if(n===u(Y)&&!u(J).some(t=>t.id===e.conversation.id)&&Ts(e.conversation),!a())return;M(Qt,``),M(Tn,!1),Ti(),await Si(n,e.conversation.id)}catch(e){a()&&M(nn,xe(e,`Could not start direct message`))}finally{i===rn&&M($t,null)}}function Os(){Gr&&clearTimeout(Gr),Gr=void 0,M(Wr,null)}function ks(e,t){Os(),M(Wr,{conversation:e,restoreRoute:t,title:ot(e,u(K)?.id)}),Gr=setTimeout(()=>{M(Wr,null),Gr=void 0},8e3)}async function As(){let e=u(Wr);if(e){Os();try{let t=await G(`/api/dms/${e.conversation.id}/open`,{method:`POST`});Ts(t.conversation),e.restoreRoute&&await Si(e.conversation.workspace_id,t.conversation.id)}catch(e){M(Pt,{kind:`error`,text:xe(e,`Could not restore direct message`)})}}}async function js(e){if(!e)return;let t=u(J).find(t=>t.id===e),n=u(Z)===e;if(await G(`/api/dms/${e}`,{method:`DELETE`}),M(J,u(J).filter(t=>t.id!==e)),t&&ks(t,n),n){Ti();let e=u(q)[0]?.id||``;M(Z,``),M(X,e),e&&Mi(u(Y),e),await Si(u(Y),e),await sa()}}function Ms(){if(Hr+=1,Rn?.close(),Rn=null,M(Pn,!1),!u(Y))return;let e=u(Y);Rn=Ue({workspaceID:e,onEvent:Ps,onOpen:async(t,n)=>{let r=In===e;await Ns(e,t,r,n),t()&&((!r||n)&&(qe=new Map([...u(q),...u(J)].map(e=>[e.id,e.last_seq||0]))),In=e,M(Fn,``))},onError:t=>{if(e===u(Y)){if(t instanceof Je){if(Ne()&&Ne()!==e&&Ne()!==bi(e))return;Rn?.close(),fe(`/app`,{invalidateAll:!0,replaceState:!0}).catch(si);return}if(t instanceof be&&t.status===401){si(t);return}M(Fn,xe(t,`Could not process realtime event`))}},onStatusChange:e=>{M(Pn,e)}})}async function Ns(e,t=()=>!0,n=!0,r=!0){let i=++Hr;if(!e||e!==u(Y)||!t())return;let a=Q.root?.id||``,o=u(dt)?.kind===`bot`?u(dt).id:``;if(M(mr,[]),M(_r,[]),!r){await Promise.all([Xi(e),Qi(e,!0)]);return}if(Fe.clear(),await Promise.all([mi(),Wi(!1,!1,!1),ws(e),Ji(e),Xi(e),Qi(e,!0),Ki(e)]),i===Hr&&e===u(Y)&&t()){if(u(X)&&!u(q).some(e=>e.id===u(X))&&M(X,``),u(Z)&&!u(J).some(e=>e.id===u(Z))&&M(Z,``),!u(X)&&!u(Z)){let t=Ei(e);if(t){let n=u(J).some(e=>e.id===t);M(Z,n?t:``),M(X,n?``:t),n||Mi(e,t),await Si(e,t,!0)}}if(i===Hr&&e===u(Y)&&t()&&(await sa(n),i===Hr&&e===u(Y)&&t()&&(await nc(),i===Hr&&e===u(Y)&&t()&&(a&&Q.root?.id===a&&await Q.refresh(t),o&&u(dt)?.id===o)))){let e=Hs(o);M(dt,e&&!e.deleted_at?e:null)}}}async function Ps(e,t){if((e.type===`pin.added`||e.type===`pin.removed`)&&e.channel_id===u(X)&&!u(Z)){await nc();return}if(e.type===`typing.started`||e.type===`typing.stopped`){zs(e);return}if(e.type===`agent.progress`){Bs(e);return}if(e.type===`channel.read`||e.type===`dm.read`){Ls(e);return}if(e.type===`bot_command.updated`){e.workspace_id===u(Y)&&Qi(e.workspace_id,!0).catch(t=>{e.workspace_id===u(Y)&&(M(Fn,xe(t,`Could not refresh bot commands`)),Ms())});return}if(e.type===`bot.deleted`){e.workspace_id===u(Y)&&await Fs(e);return}if(e.type===`bot.membership_removed`){e.workspace_id===u(Y)&&await Is(e);return}if((e.type===`channel.created`||e.type===`channel.updated`)&&e.workspace_id===u(Y)){await Wi(!1,!1,!1);return}if(e.type===`member.moderation_updated`&&e.workspace_id===u(Y)){let t=u(Z),n=e.payload.user_id===u(K)?.id;if(await mi(),await Ji(),await Wi(!1,n,n),n){if(await ws(),t&&(u(J).some(e=>e.id===t)?(M(Z,t),M(X,``)):M(Z,``)),!u(X)&&!u(Z)){pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},`replace`);return}await sa()}return}e.workspace_id===u(Y)&&e.payload.topic_id&&!u(ze).some(t=>t.id===e.payload.topic_id)&&await Ki(e.workspace_id),(e.type===`message.updated`||e.type===`message.deleted`)&&u(yt).has(e.payload.message_id||``)&&await nc();let n=(e.channel_id===u(X)||e.payload.direct_conversation_id===u(Z))&&!(e.type===`message.created`&&u(it)&&e.payload.topic_id!==u(it));if(n&&(e.type===`reaction.added`||e.type===`reaction.removed`)){Fe.applyEvent(e);return}if(eo(e,n),e.type===`message.created`&&!n&&(await no(e)||Rs(e)),n&&(e.type===`message.created`||e.type===`message.updated`||e.type===`message.deleted`)){let n=e.payload.nonce;if(e.type===`message.created`&&n&&ut.has(n))return;let r=_o(),i=Ga(e),a=e.type===`message.created`&&(i<=0||i>(u(Vn).get($())?.newest_seq||0));if(a&&!r?($n=Date.now()+1200,va($())):a?await Oa(t):e.type!==`message.created`&&await ns(e.payload.message_id||``,t),!t())return;e.type===`message.created`&&Rs(e,r,a)}if(await Q.handleEvent(e,t))return;let r=e.payload.root_message_id||e.payload.message_id;r&&e.type===`thread.state_updated`&&rs(r,e)&&await ts(r)}async function Fs(e){let t=e.payload.bot_user_id||``;if(!t)return;let n=e.payload.deleted_at||e.created_at,r=e.payload.former_handle||``,i=e=>e.id===t?{...e,handle:``,former_handle:r,deleted_at:n}:e;M(J,u(J).map(e=>({...e,members:e.members.map(i)}))),M(Tt,u(Tt).filter(e=>e.user.id!==t)),M(At,u(At).filter(e=>e.bot_user_id!==t)),M(jt,u(jt).filter(e=>e.bot.id!==t)),M(mr,u(mr).filter(e=>e.userID!==t)),u(ln)&&M(ln,{...u(ln),results:u(ln).results.map(e=>({...e,author:i(e.author)}))}),u(dt)?.id===t&&M(dt,null);let a=Q.selection;await Promise.all([ws(),Ji(),Xi(),Qi()]),Yi(),fo({id:t,handle:``,former_handle:r,deleted_at:n}),Q.isCurrent(a)&&await Q.refresh()}async function Is(e){let t=e.payload.bot_user_id||``;t&&(M(Tt,u(Tt).filter(e=>e.user.id!==t)),M(At,u(At).filter(e=>e.bot_user_id!==t)),M(jt,u(jt).filter(e=>e.bot.id!==t)),u(dt)?.id===t&&M(dt,null),await Promise.all([ws(e.workspace_id),Ji(e.workspace_id),Xi(e.workspace_id),Qi(e.workspace_id)]),Yi(e.workspace_id))}function Ls(e){let t=e.payload,n=typeof t.user_id==`string`?t.user_id:``;if(!n||n!==u(K)?.id)return;let r=e.seq??t.last_read_seq??t.seq,i=typeof r==`number`?r:Number(r)||0;if(e.type===`channel.read`){let n=typeof t.channel_id==`string`?t.channel_id:e.channel_id||``;if(!n)return;M(q,u(q).map(e=>{if(e.id!==n)return e;let t=Math.max(e.last_read_seq||0,i);return{...e,last_read_seq:t,unread_count:t>=(e.last_seq||0)?0:e.unread_count||0}}))}else{let e=typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``;if(!e)return;M(J,u(J).map(t=>{if(t.id!==e)return t;let n=Math.max(t.last_read_seq||0,i);return{...t,last_read_seq:n,unread_count:n>=(t.last_seq||0)?0:t.unread_count||0}}))}}function Rs(e,t,n=!1){let r=e.payload,i=typeof r.kind==`string`?r.kind:``;if(i===`agent_commentary`||i===`agent_tool`)return;let a=typeof r.author_id==`string`?r.author_id:``;if(a&&a===u(K)?.id||r.parent_message_id)return;let o=Ga(e),{channelID:s,dmID:c}=qa(e),l=s||c;if(!l)return;let d=ro(l),f=s?s===u(X)&&!u(Z):c===u(Z),p=f&&(!s||!u(it))&&(t??_o());if(o>0&&o<=(d.last_seq||0)&&!(n&&p))return;let m=o>0?o:(d.last_seq||0)+1,h=f&&!p&&(d.unread_count||0)===0;h&&Wa(l,d.last_read_seq||0,e.created_at);let g={last_seq:Math.max(d.last_seq||0,m),last_read_seq:h?Math.max(d.last_read_seq||0,m-1):d.last_read_seq||0,unread_count:p?0:(d.unread_count||0)+1};s?M(q,u(q).map(e=>e.id===l?{...e,...g}:e)):M(J,u(J).map(e=>e.id===l?{...e,...g}:e))}function zs(e){let t=e.payload,n=typeof t.user_id==`string`?t.user_id:``;if(!n||n===u(K)?.id)return;let{channelID:r,dmID:i}=qa(e);if(!(u(X)&&r===u(X)||u(Z)&&i===u(Z)))return;if(e.type===`typing.stopped`){M(mr,u(mr).filter(e=>e.userID!==n));return}let a=Hs(n),o=u(mr).filter(e=>e.userID!==n);o.push({userID:n,user:a,expiresAt:Date.now()+br}),M(mr,o),Us()}function Bs(e){let t=e.payload,{channelID:n,dmID:r}=qa(e);if(!(u(X)&&n===u(X)||u(Z)&&r===u(Z)))return;let i=u(_r);M(_r,kr(i,t,Date.now())),t.op!==`clear`&&u(_r)!==i&&Vs()}function Vs(){vr||=window.setInterval(()=>{let e=Date.now(),t=u(_r).filter(t=>t.expiresAt>e);t.length!==u(_r).length&&M(_r,t),t.length===0&&vr&&(window.clearInterval(vr),vr=void 0)},1e3)}function Hs(e){if(u(K)?.id===e)return u(K);let t=u(kt).find(t=>t.id===e);if(t)return t;let n=u(Xe).find(t=>t.author?.id===e)?.author;if(n)return n;let r=u(C).find(t=>t.author?.id===e)?.author;if(r)return r;if(Q.root?.author?.id===e)return Q.root.author;let i=u(Tt).find(t=>t.user.id===e)?.user;if(i)return i;for(let t of u(J)){let n=t.members.find(t=>t.id===e);if(n)return n}}function Us(){hr||=window.setInterval(()=>{let e=Date.now(),t=u(mr).filter(t=>t.expiresAt>e);t.length!==u(mr).length&&M(mr,t),t.length===0&&hr&&(window.clearInterval(hr),hr=void 0)},1e3)}function Ws(){u(Y)&&(u(X)||u(Z))&&wn({workspaceID:u(Y),channelID:u(X)||void 0,directConversationID:u(Z)||void 0})}function Gs(e){e&&!e.deleted_at&&(Ri(),gs(),M(Ht,null),M(Ut,``),Ti(),M(dt,e),wi(),(u(O)===`owner`||u(O)===`moderator`)&&!u(Tt).some(t=>t.user.id===e.id)&&Ji())}function Ks(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),bo())}function qs(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),is())}function Js(e,t){os()||M(Vt,{url:e,title:t})}function Ys(e){M(Wt,document.activeElement instanceof HTMLElement?document.activeElement:null),M(Ut,u(nr)),M(Ht,e),y().then(()=>{document.querySelector(`.artifact-viewer__actions > button:last-child`)?.focus()})}function Xs(){let e=u(Wt),t=u(Ht)?.id||``;M(Ht,null),M(Ut,``),M(Wt,null),y().then(()=>{if(e?.isConnected){e.focus({preventScroll:!0});return}(Q.root?document.querySelector(`.thread`):document)?.querySelector(`[data-artifact-upload-id="${CSS.escape(t)}"]`)?.focus({preventScroll:!0})})}function Zs(e,t){for(let e of qt)e.inert=!1;if(qt.clear(),e&&u(Kt)&&t)for(let e of u(Kt).children)e instanceof HTMLElement&&e!==t&&!e.inert&&(e.inert=!0,qt.add(e))}function Qs(e){if(!u(Ht)||!u(cr)||e.key!==`Tab`||!u(Gt))return;let t=Array.from(u(Gt).querySelectorAll(`a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.inert&&e.getClientRects().length>0);if(t.length===0){e.preventDefault(),u(Gt).focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&(document.activeElement===n||!u(Gt).contains(document.activeElement))?(e.preventDefault(),r.focus()):!e.shiftKey&&(document.activeElement===r||!u(Gt).contains(document.activeElement))&&(e.preventDefault(),n.focus())}function $s(e){let t=e.target;t instanceof HTMLImageElement&&t.closest(`.markdown`)&&(e.preventDefault(),Js(Ke(t),t.alt||`Image`))}function ec(){if(u(Ht)){Xs();return}if(u(ft)){M(ft,!1),wi();return}Ri(),Ie.cancel($(),`thread`),Ti(),wi()}function tc(){if(Q.root){ec();return}u(De)&&ec(),M(Pt,{kind:`ephemeral`,text:`Pick a message to open its thread.`})}async function nc(){let e=u(X),t=++wt,n=()=>t===wt&&e===u(X)&&!u(Z);if(!e||u(Z)){M(pt,[]),M(_t,``),M(mt,!1);return}M(mt,!0),M(_t,``);try{await Hn.run(()=>G(`/api/channels/${e}/pins?limit=100`),e=>{M(pt,e.messages.filter(e=>!e.deleted_at))},n)}catch(e){if(!n())return;M(_t,e instanceof Error?e.message:`Could not load pinned messages`)}finally{n()&&M(mt,!1)}}async function rc(e,t){let n=u(X);if(!n||u(Z))throw Error(`Pins are available in channels only`);t?await G(`/api/channels/${n}/pins/${e.id}`,{method:`DELETE`}):await G(`/api/channels/${n}/pins`,{method:`POST`,body:JSON.stringify({message_id:e.id})}),n===u(X)&&!u(Z)&&await nc()}function ic(){if(!u(X)||u(Z))return;let e=!u(ft);gs(),Ti(),M(ft,e),wi(),e&&nc()}async function ac(e){Tr++,M(ft,!1),await $o(e.thread_root_id,e.parent_message_id?void 0:e)&&u(Y)&&Q.root?.route_id&&window.location.pathname!==gi(u(Y),Q.root.id)&&await Si(u(Y),Q.root.id)}function oc(e){if(!(e.isComposing||e.keyCode===229)&&(Qs(e),!e.defaultPrevented)){if(e.key===`Escape`){if(e.target instanceof Element&&e.target.closest(`[data-handles-escape]`)||u(Vt))return;if(os())sc();else if(u(or)){e.preventDefault(),cc();return}else if(u(Ht)){e.preventDefault(),ec();return}else if(u(un)){e.preventDefault(),ec();return}else if(u(Oe)){e.preventDefault(),gs();return}else if(u(lr)||Q.draft?.quote){e.preventDefault(),Q.draft?.quote&&(u(pr)===`thread`||!u(lr))?Q.setQuote(null):cs();return}else{e.preventDefault(),vo();return}}if(u(or)&&e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let t=document.activeElement;if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement)&&!(t instanceof HTMLSelectElement)&&!(t instanceof HTMLElement&&t.isContentEditable)){e.preventDefault();return}}_n(e,{authRequired:u(Nn),isModalOpen:()=>os()||u(or),messageInput:u(dr),replyInput:u(fr),target:ss})}}function sc(){u(Jr)&&u(qr).has(u(Jr).id)||u(xn)||(Ri(),M(Jr,null),M(Yr,``),M(Vt,null),M(vn,!1),M(bn,!1),M(Sn,``))}function cc(){M(or,!1)}function lc(){if(u(cr)){M(or,!u(or));return}M(ar,!u(ar))}V(()=>a(),()=>{M(C,a().replies)}),V(()=>(u(hn),u(Y)),()=>{u(hn)&&u(hn)!==u(Y)&&Ss()}),V(()=>(u(Le),u(Y)),()=>{M(T,u(Le).find(e=>e.id===u(Y)))}),V(()=>u(T),()=>{M(O,u(T)?.role||``)}),V(()=>u(O),()=>{M(A,u(O)===`owner`)}),V(()=>(u(dt),u(Tt)),()=>{M(j,u(dt)?u(Tt).find(e=>e.user.id===u(dt)?.id):void 0)}),V(()=>(u(q),u(X)),()=>{M(F,u(q).find(e=>e.id===u(X)))}),V(()=>(u(F),u(T)),()=>{M(ee,!!u(F)&&Be(u(T)?.role))}),V(()=>(u(ze),u(X)),()=>{M(te,$r(u(ze),u(X)))}),V(()=>(u(te),u(it)),()=>{M(L,u(te).find(e=>e.id===u(it)))}),V(()=>(u(X),u(Z)),()=>{ra(u(X),u(Z))}),V(()=>(u(J),u(Z)),()=>{M(B,u(J).find(e=>e.id===u(Z)))}),V(()=>u(B),()=>{M(se,u(B)?.can_send??!0)}),V(()=>(u(Z),u(X)),()=>{M(nr,u(Z)||u(X)||``)}),V(()=>u(nr),()=>{Xr(u(nr))}),V(()=>u(nr),()=>{$i(u(nr))}),V(()=>(u(X),u(jt),u(B)),()=>{M(U,u(X)?u(jt):u(B)?u(jt).filter(e=>u(B)?.members?.some(t=>t.id===e.bot.id)):[])}),V(()=>(u(Z),u(J),u(X),u(q)),()=>{M(W,u(Z)?u(J).find(e=>e.id===u(Z))||{}:u(X)&&u(q).find(e=>e.id===u(X))||{})}),V(()=>(u(nr),u(W)),()=>{M(me,Na(u(nr),u(W)))}),V(()=>(u(Mn),u(q),u(J)),()=>{M(he,u(Mn)?u(q).reduce((e,t)=>e+(t.unread_count||0),0)+u(J).reduce((e,t)=>e+(t.unread_count||0),0):0)}),V(()=>u(he),()=>{Rt?.setUnreadCount(u(he))}),V(()=>(u(me),u(W)),()=>{M(ge,u(me)>0&&u(W).last_read_seq||0)}),V(()=>(u(me),u(nr),u(ge),u(Vn)),()=>{M(ye,u(me)>0&&io(u(nr),u(ge),u(Vn)))}),V(()=>(u(me),u(nr),u(ge),u(Vn)),()=>{M(Se,u(me)>0?ao(u(nr),u(ge),u(Vn)):``)}),V(()=>(u(Xe),u(On),u(kn),u(xr)),()=>{M(we,Xt(u(Xe),{hideCommentary:u(On),hideToolCalls:u(kn)},u(xr)))}),V(()=>u(_r),()=>{M(Te,u(_r).some(e=>e.lines.some(e=>!e.finalized)))}),V(()=>u(pt),()=>{M(yt,new Set(u(pt).map(e=>e.id)))}),V(()=>(u(_r),u(jt)),()=>{M(Ee,Co(u(_r),u(jt),Hs))}),V(()=>(u(Ht),u(Ut),u(nr)),()=>{u(Ht)&&u(Ut)&&u(Ut)!==u(nr)&&(M(Ht,null),M(Ut,``),M(Wt,null))}),V(()=>(u(ft),a(),u(dt),u(Ht)),()=>{M(De,u(ft)||a().selection!==null||u(dt)!==null||u(Ht)!==null)}),V(()=>(u(ln),u(un)),()=>{M(Oe,u(ln)!==null&&!u(un))}),V(()=>(u(cr),u(Ht),u(Gt)),()=>{Zs(u(cr)&&u(Ht)!==null,u(Gt))}),V(()=>(u(Xe),u(J),u(K)),()=>{M(ke,at(u(Xe),u(J),u(K)?.id||``))}),V(()=>(u(K),u(ke),u(kt),u(B)),()=>{M(Ft,ct(u(K),u(ke),u(kt),u(B)))}),V(()=>(u(K),u(Z),u(X),u(Ve)),()=>{M(Bt,u(K)?.id&&(u(Z)||u(X)&&u(Ve)!==null&&u(Ve)!==`muted`)?u(K).id:``)}),V(()=>(u(ur),u(lr),u(Xe)),()=>{u(ur)===`channel`&&u(lr)&&!u(Xe).some(e=>e.id===u(lr)?.id)&&cs()}),V(()=>(u(ur),u(lr),u(Xe)),()=>{u(ur)===`dm`&&u(lr)&&!u(Xe).some(e=>e.id===u(lr)?.id)&&cs()}),V(()=>(u(Mn),c(Ne()),c(Pe())),()=>{u(Mn)&&Ci(Ne(),Pe())}),re(),ie();var uc=s();r(`1oa2eo8`,e=>{var t=Ao();p(e,t)}),v(`keydown`,E,oc,!0),v(`pointerdown`,E,function(...e){dn?.apply(this,e)},!0);var dc=ce(uc),fc=e=>{gr(e,{})},pc=e=>{var r=Uo(),i=ce(r);let o;var s=I(i),l=e=>{{let t=H(()=>u(F)?u(Ve):null),n=H(()=>(u(B),c(ot),u(K),u(F),c(bt),b(()=>u(B)?`@${ot(u(B),u(K)?.id)}`:u(F)?`#${bt(u(F))}`:void 0))),r=H(()=>(u(B),u(F),b(()=>u(B)?void 0:u(F)?.external_url))),i=H(()=>(u(F),b(()=>!!u(F)))),a=H(()=>(u(T),b(()=>u(T)?.name)));so(e,{get channelNotifPreference(){return u(t)},get channelNotifSaving(){return u(Ye)},get pinnedOpen(){return u(ft)},get channelTitle(){return u(n)},get externalURL(){return u(r)},get pinsAvailable(){return u(i)},get channelSettingsAvailable(){return u(ee)},get connected(){return u(Pn)},get platform(){return c(Rt),b(()=>Rt.platform)},get searchQuery(){return u(cn)},get sidebarCollapsed(){return u(ar)},get mobileNavOpen(){return u(or)},get mobileNavigation(){return u(cr)},get workspaceName(){return u(a)},onOpenChannelSettings:ui,onOpenWorkspaceSettings:li,onResetSearch:gs,onSearch:()=>void ps(),onSearchQuery:e=>M(cn,e),onToggleSidebar:lc,onToggleChannelNotifications:()=>void ia(),onPinnedItems:ic})}};P(s,e=>{je&&Rt&&e(l)});var h=k(s,2),g=I(h),_=e=>{var t=m(`×`);p(e,t)},v=e=>{var t=jo();p(e,t)};P(g,e=>{u(or)?e(_):e(v,-1)}),t(h);var y=k(h,2),S=e=>{var t=Mo();n(`click`,t,cc),p(e,t)};P(y,e=>{u(or)&&e(S)});var E=k(y,2);{let e=H(()=>(u(Me),b(()=>je&&u(Me).url===`/`?`/app`:u(Me).url))),t=H(()=>(c(Mt),u(Me),b(()=>Mt(u(Me))))),n=H(()=>u($t)===`workspace`);Kr(E,{get workspaces(){return u(Le)},get homeHref(){return u(e)},get homeLabel(){return u(Me),b(()=>u(Me).label)},get homeTitle(){return u(t)},get selectedWorkspaceID(){return u(Y)},get workspaceName(){return u(Yt)},get showWorkspaceCreate(){return u(ir)},get createPending(){return u(n)},get createError(){return u(en)},hrefForWorkspace:e=>gi(e),onSelectWorkspace:e=>void Ui(e),onToggleWorkspaceCreate:zi,onWorkspaceName:e=>M(Yt,e),onCreateWorkspace:()=>void Hi()})}var R=k(E,2);{let e=H(()=>(u(T),b(()=>u(T)?.name))),t=H(()=>(u(T),c(_e),b(()=>u(T)?.icon_url?_e(u(T).icon_url):``))),n=H(()=>!je),r=H(()=>(u(Wr),b(()=>u(Wr)?.title)));vi(R,{get workspaceID(){return u(Y)},get workspaceName(){return u(e)},get workspaceIconURL(){return u(t)},get connected(){return u(Pn)},get sidebarCollapsed(){return u(ar)},get showHeader(){return u(n)},get channels(){return u(q)},get directConversations(){return u(J)},get recentPeople(){return u(ke)},get currentUser(){return u(K)},get selectedChannelID(){return u(X)},get selectedDirectID(){return u(Z)},get selectedProfile(){return u(dt)},onToggleCollapse:lc,hrefForChannel:e=>gi(u(Y),e),hrefForDirect:e=>gi(u(Y),e),onSelectChannel:e=>void na(e),onCreateChannel:Bi,onSelectDirect:e=>void Es(e),onCreateDirect:Vi,onHideDirect:e=>void js(e),get hiddenDirectTitle(){return u(r)},onUndoHideDirect:()=>void As(),onOpenProfile:Gs,onOpenSettings:ci,onOpenWorkspaceSettings:li})}var ne=k(R,2),re=I(ne),ie=e=>{{let t=H(()=>(u(T),b(()=>u(T)?.name))),n=H(()=>(u(K),b(()=>u(K)?.id))),r=H(()=>(a(),b(()=>a().root!==null)));xo(e,{get selectedDirect(){return u(B)},get selectedChannel(){return u(F)},get workspaceName(){return u(t)},get currentUserID(){return u(n)},get searchQuery(){return u(cn)},get threadOpen(){return u(r)},get pinnedOpen(){return u(ft)},get channelNotifPreference(){return u(Ve)},get channelNotifSaving(){return u(Ye)},get channelSettingsAvailable(){return u(ee)},onSearchQuery:e=>M(cn,e),onSearch:()=>void ps(),onResetSearch:gs,onToggleThread:tc,onToggleChannelNotifications:()=>void ia(),onPinnedItems:ic,onOpenChannelSettings:ui})}};P(re,e=>{je||e(ie)});var ae=k(re,2),V=e=>{var r=No(),i=I(r),a=k(I(i)),o=D(a,!0);t(i);var s=k(i,2);t(r),N(()=>d(o,(u(L),b(()=>u(L).name)))),n(`click`,s,()=>void fa(``)),p(e,r)};P(ae,e=>{u(L)&&e(V)});var ue=k(ae,2);{let e=H(()=>u(Wn)!==`idle`),t=H(()=>(a(),b(()=>a().root?.id))),n=H(()=>(u(K),b(()=>u(K)?.id))),r=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),i=H(()=>u(A)&&!u(Z));gt(ue,{get channelID(){return u(X)},get pinnedMessageIDs(){return u(yt)},onTogglePin:rc,onCopyLink:_i,get messages(){return u(we)},get selectedDirect(){return u(B)},get selectedChannel(){return u(F)},get mentionPeople(){return u(Ft)},get mentionAttentionUserID(){return u(Bt)},get restoreState(){return u(tr)},get viewKey(){return u(er)},get loading(){return u(rr)},get unreadCount(){return u(me)},get unreadBoundarySeq(){return u(ge)},get unreadBoundaryLoaded(){return u(ye)},get unreadSince(){return u(Se)},get hasOlder(){return u(Jn)},get hasNewer(){return u(Yn)},get loadingOlder(){return u(Xn)},get loadingNewer(){return u(Zn)},get prepending(){return u(e)},get selectedThreadID(){return u(t)},get currentUserID(){return u(n)},get reactionController(){return Fe},get reactionsDisabled(){return u(r)},get canDeleteAnyMessage(){return u(i)},get deletingMessageIDs(){return u(qr)},onListRef:e=>M(zn,e),onActivateMessageComposer:qi,onInlineImagePointerUp:$s,onOpenProfile:Gs,onReply:as,onOpenThread:Qo,onJumpToQuote:e=>void ls(e),onOpenImage:Js,onOpenArtifact:Ys,onLoadOlder:wa,onLoadNewer:e=>Ta(e===`wheel`),onJumpToUnread:()=>void us(),onHistorySettled:Aa,onReachedBottom:Ra,onMarkRead:e=>{Ra({all:!0,seq:e})},onRetry:Ko,onDiscard:qo,onDeleteMessage:Xo,get editController(){return Ie},get editScope(){return u(nr)},onMessageEdited:Yo,get topics(){return u(ze)},onSelectTopic:e=>void fa(e)})}var W=k(ue,2);Er(W,{get turns(){return u(_r)}});var de=k(W,2);{let e=H(()=>(u(K),b(()=>u(K)?.id)));Sr(de,{get entries(){return u(mr)},get currentUserID(){return u(e)}})}var fe=k(de,2),pe=I(fe);{let e=H(()=>(u(Te),a(),b(()=>u(Te)&&a().root===null)));xt(pe,{get active(){return u(e)},get agentNames(){return u(Ee)}})}var he=k(pe,2),ve=e=>{var t=Po(),n=D(t);N(()=>d(n,`Live updates: ${u(Fn)??``}`)),p(e,t)};P(he,e=>{u(Fn)&&e(ve)});var G=k(he,2),be=e=>{var t=Po(),n=D(t);N(()=>d(n,`Mentions unavailable: ${u(Lr)??``}`)),p(e,t)};P(G,e=>{u(Lr)&&e(be)});var xe=k(G,2),Ce=e=>{var r=Fo();let i;var a=I(r),o=D(a,!0),s=k(a,2),c=D(s,!0),l=k(s,2);t(r),N(()=>{i=w(r,1,`composer-notice`,null,i,{"composer-notice--error":u(Pt).kind===`error`}),d(o,(u(Pt),b(()=>u(Pt).kind===`ephemeral`?`Only visible to you`:`Action failed`))),d(c,(u(Pt),b(()=>u(Pt).text)))}),n(`click`,l,()=>M(Pt,null)),p(e,r)};P(xe,e=>{u(Pt)&&e(Ce)});var Ae=k(xe,2),Ne=e=>{var r=Lo(),i=k(I(r),2),a=I(i);a.value=a.__value=``;var o=k(a);f(o,1,()=>u(te),e=>e.id,(e,t)=>{var n=Io(),r=D(n,!0),i={};N(()=>{d(r,(u(t),b(()=>u(t).name))),i!==(i=(u(t),b(()=>u(t).id)))&&(n.value=(n.__value=i)??``)}),p(e,n)}),t(i);var s;x(i),t(r),N(()=>{s!==(s=u(tt))&&(i.value=(i.__value=s)??``,le(i,s))}),n(`change`,i,e=>M(tt,e.currentTarget.value)),p(e,r)};P(Ae,e=>{u(X),u(te),b(()=>u(X)&&u(te).length>0)&&e(Ne)});var Pe=k(Ae,2);{let e=H(()=>(u(B),u(se),c(ot),u(K),u(F),c(bt),b(()=>u(B)&&!u(se)?`No active recipient`:u(B)?`Message ${ot(u(B),u(K)?.id)}`:u(F)?`Message #${bt(u(F))}`:`Pick a channel to start`))),t=H(()=>!!u(B)&&!u(se)),n=H(()=>u(lr)&&u(ur)===(u(Z)?`dm`:`channel`)?u(lr):null),r=H(()=>u(X)?u(At):[]);rt(Pe,{get value(){return u(Jt)},get placeholder(){return u(e)},ariaLabel:`Message body`,submitLabel:`Send`,get disabled(){return u(t)},get pendingUpload(){return u(mn)},get replyTarget(){return u(n)},showUpload:!0,showToolbar:!0,get slashCommands(){return u(r)},get botCommands(){return u(U)},get mentionPeople(){return u(Ft)},onValue:e=>{let t=u(Jt);M(Jt,e),e.trim()&&e!==t?Ws():e.trim()||En()},onSubmit:()=>void bo(),onKeydown:Ks,onFocus:qi,onInputRef:e=>M(dr,e),onUploadFile:Cs,onRemoveUpload:Ss,onClearReply:cs})}t(fe),t(ne);var Re=k(ne,2),Be=e=>{var n=Ro();sr(I(n),{get upload(){return u(Ht)},onClose:Xs}),t(n),oe(n,e=>M(Gt,e),()=>u(Gt)),N(()=>{n.inert=u(or),z(n,`role`,u(cr)?`dialog`:`complementary`),z(n,`aria-modal`,u(cr)?`true`:void 0)}),p(e,n)};P(Re,e=>{u(Ht)&&e(Be)});var He=k(Re,2),Ue=e=>{{let t=H(()=>u(Ht)!==null),n=H(()=>u(or)||u(Ht)!==null);Gi(e,{get session(){return u(ln)},get covered(){return u(t)},get inert(){return u(n)},contextFor:_s,onClose:gs,onOpenResult:e=>void vs(e),onLoadMore:()=>void hs()})}},We=e=>{var r=Ho();let i;var o=I(r),s=e=>{Oi(e,{get messages(){return u(pt)},get loading(){return u(mt)},get error(){return u(_t)},get topics(){return u(ze)},get mentionPeople(){return u(Ft)},get mentionAttentionUserID(){return u(Bt)},onClose:ec,onOpenThread:e=>void ac(e),onOpenImage:Js,onOpenArtifact:Ys,onUnpin:e=>rc(e,!0),onSelectTopic:e=>{M(ft,!1),fa(e)}})},c=e=>{{let t=H(()=>(a(),b(()=>a().draft?.body??``))),n=H(()=>(a(),b(()=>a().draft?.quote??null))),r=H(()=>(a(),b(()=>a().draft?.error||a().error))),i=H(()=>(a(),b(()=>a().draft?.sending??!1))),o=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),s=H(()=>u(un)&&u(ln)?()=>void ys():void 0),c=H(()=>(u(K),b(()=>u(K)?.id))),l=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),d=H(()=>u(A)&&!u(Z));Ct(e,{get history(){return Q},get root(){return a(),b(()=>a().root)},get replies(){return u(C)},get threadState(){return a(),b(()=>a().state)},get replyBody(){return u(t)},get replyTarget(){return u(n)},get replyError(){return u(r)},get replySending(){return u(i)},get mentionPeople(){return u(Ft)},get mentionAttentionUserID(){return u(Bt)},get agentResponding(){return u(Te)},get respondingAgentNames(){return u(Ee)},get replyDisabled(){return u(o)},onClose:ec,get onBack(){return u(s)},onReplyBody:e=>Q.updateDraft(e),onSubmitReply:()=>void is(),onReplyKeydown:qs,onReplyFocus:()=>M(pr,`thread`),onReplyInputRef:e=>M(fr,e),get currentUserID(){return u(c)},get reactionController(){return Fe},get reactionsDisabled(){return u(l)},onSetReplyTarget:as,onClearReply:()=>Q.setQuote(null),get canDeleteAnyMessage(){return u(d)},get deletingMessageIDs(){return u(qr)},onDeleteMessage:Xo,get channelID(){return u(X)},get pinnedMessageIDs(){return u(yt)},onTogglePin:rc,onCopyLink:_i,get editController(){return Ie},get editScope(){return u(nr)},onMessageEdited:Yo,onActivateThreadComposer:()=>M(pr,`thread`),onInlineImagePointerUp:$s,onJumpToQuote:e=>void ls(e),onOpenImage:Js,onOpenArtifact:Ys})}},l=e=>{var r=Vo(),i=ce(r),o=k(I(i),2);t(i);var s=k(i,2),c=e=>{var t=zo(),r=ce(t),i=D(r,!0),o=k(r,2);N(()=>d(i,(a(),b(()=>a().error)))),n(`click`,o,()=>a().selection&&void $o(a().selection.messageID)),p(e,t)},l=e=>{var t=Bo();p(e,t)};P(s,e=>{a(),b(()=>a().error)?e(c):e(l,-1)}),n(`click`,o,ec),p(e,r)},f=e=>{{let t=H(()=>(u(T),b(()=>u(T)?.name))),n=H(()=>u($t)===`direct`);vt(e,{get profile(){return u(dt)},get currentUser(){return u(K)},get workspaceName(){return u(t)},get currentUserRole(){return u(O)},get moderation(){return u(j)},onClose:ec,onEdit:ci,get messagePending(){return u(n)},get messageError(){return u(nn)},onMessage:e=>void Ds(e),onApprove:e=>void ea(e,{role:`member`,clear_timeout:!0,blocked:!1}),onTimeout:e=>void ea(e,{timeout_minutes:60}),onBlock:e=>void ea(e,{blocked:!0}),onUnblock:e=>void ea(e,{blocked:!1,clear_timeout:!0})})}},m=e=>{Ja(e,{})};P(o,e=>{u(ft)?e(s):(a(),b(()=>a().root)?e(c,1):(a(),b(()=>a().selection)?e(l,2):u(dt)?e(f,3):e(m,-1)))}),t(r),N(()=>{i=w(r,1,`thread`,null,i,{open:u(De),covered:u(Ht)!==null}),r.inert=u(or)||u(Ht)!==null,z(r,`aria-hidden`,u(Ht)?`true`:void 0),z(r,`aria-label`,u(ft)?`Pinned messages pane`:u(dt)?`Profile pane`:`Thread pane`)}),p(e,r)};P(He,e=>{u(Oe)&&u(ln)?e(Ue):e(We,-1)}),t(i),oe(i,e=>M(Kt,e),()=>u(Kt));var Ge=k(i,2),Ke=e=>{{let t=H(()=>Rt!=null);Ka(e,{get user(){return u(K)},get workspaces(){return u(Le)},get currentWorkspaceID(){return u(Y)},get initialSection(){return u(yn)},get hideCommentary(){return u(On)},get hideToolCalls(){return u(kn)},get userAlign(){return u(An)},get otherAlign(){return u(jn)},get isDesktop(){return u(t)},onUserUpdated:fi,onHideCommentary:ii,onHideToolCalls:ai,onUserAlign:ni,onOtherAlign:ri,onBrowserNotificationsChanged:e=>M(Dn,e),onClose:sc})}};P(Ge,e=>{u(vn)&&u(K)&&e(Ke)});var qe=k(Ge,2),Je=e=>{Zi(e,{get channel(){return u(F)},get saving(){return u(xn)},get error(){return u(Sn)},onClose:sc,onArchivedChange:e=>void di(e)})};P(qe,e=>{u(bn)&&u(F)&&e(Je)});var Xe=k(qe,2),Ze=e=>{{let t=H(()=>u($t)===`channel`);Mr(e,{get channelName(){return u(Zt)},get pending(){return u(t)},get error(){return u(tn)},onChannelName:e=>M(Zt,e),onClose:sc,onCreate:()=>void ta()})}};P(Xe,e=>{u(Cn)&&e(Ze)});var Qe=k(Xe,2),et=e=>{{let t=H(()=>(u(K),b(()=>u(K)?.id))),n=H(()=>u($t)===`direct`),r=H(()=>u(nn)||u(Lr));Rr(e,{get people(){return u(Ft)},get currentUserID(){return u(t)},get memberID(){return u(Qt)},get pending(){return u(n)},get error(){return u(r)},onMemberID:e=>M(Qt,e),onClose:sc,onStart:e=>void Ds(e)})}};P(Qe,e=>{u(Tn)&&e(et)});var nt=k(Qe,2),it=e=>{{let t=H(()=>(u(qr),u(Jr),b(()=>u(qr).has(u(Jr).id))));yr(e,{get message(){return u(Jr)},get deleting(){return u(t)},get error(){return u(Yr)},onClose:sc,onConfirm:()=>void Zo()})}};P(nt,e=>{u(Jr)&&e(it)});var at=k(nt,2),st=e=>{$e(e,{get url(){return u(Vt),b(()=>u(Vt).url)},get title(){return u(Vt),b(()=>u(Vt).title)},onClose:sc})};P(at,e=>{u(Vt)&&e(st)}),N(()=>{o=w(i,1,`shell`,null,o,{"desktop-shell":je,"nav-open":u(or),"sidebar-collapsed":u(ar),"thread-open":u(De)&&!u(Oe),"search-open":u(Oe),"artifact-open":u(Ht)!==null}),z(i,`data-connected`,u(Pn)),z(i,`data-app-ready`,u(Pn)&&u(Mn)),z(h,`aria-expanded`,u(or)),ne.inert=u(or)}),n(`click`,h,()=>M(or,!u(or))),p(e,r)};P(dc,e=>{u(Nn)?e(fc):e(pc,-1)}),p(e,uc),_(),h()}W([`click`,`change`]);export{ko as n,Wo as t}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/chunks/BssaRJHK.js b/apps/api/internal/webassets/dist/_app/immutable/chunks/BssaRJHK.js deleted file mode 100644 index 64f88ca9e..000000000 --- a/apps/api/internal/webassets/dist/_app/immutable/chunks/BssaRJHK.js +++ /dev/null @@ -1,4 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DxhId6dF.js","./uBIymjUX.js"])))=>i.map(i=>d[i]); -import{t as e}from"./DK3Fl9T5.js";import{At as t,B as n,C as r,D as i,E as a,Et as o,F as s,G as c,I as l,K as u,N as d,O as f,P as p,R as m,S as h,St as g,Tt as _,V as v,X as y,Z as b,_ as x,a as S,at as C,b as w,c as T,ct as E,dt as D,f as O,ft as k,gt as A,h as j,ht as M,it as N,j as P,jt as F,k as ee,kt as te,lt as I,m as L,mt as R,n as ne,nt as re,o as ie,p as z,pt as B,r as ae,s as oe,tt as V,u as se,ut as ce,v as le,vt as H,xt as ue,yt as U,z as W}from"./D5itlxY6.js";import{c as de,n as fe,t as pe}from"./DAzn6KWz.js";import{t as me}from"./uBIymjUX.js";import"./xihTtKlq.js";import"./DD-5HdQf.js";import{a as he,c as ge,i as _e,l as ve,n as G,s as ye,t as be,u as xe}from"./DEPNME54.js";import{c as Se,d as Ce,f as we,h as Te,i as Ee,l as De,m as Oe,n as ke,p as Ae,r as je,s as Me,t as Ne,u as Pe}from"./Dqjw8vaP.js";import{a as Fe,i as K,n as Ie,t as Le}from"./Qo16U5GS.js";import{n as Re,t as ze}from"./DBpO2iwN.js";import"./Cbo1iWSZ.js";import{C as q,D as Be,E as Ve,I as He,L as Ue,R as We,S as Ge,T as Ke,_ as qe,b as Je,f as Ye,g as J,h as Xe,j as Ze,k as Qe,m as Y,p as $e,r as X,u as Z,v as Q,w as et,x as tt,y as nt}from"./BTDeUFdm.js";import{a as rt,c as it,f as at,i as ot,l as st,o as ct,p as lt,s as ut,t as dt,u as ft}from"./CCzTQXXV.js";import{i as pt,n as mt,r as ht,t as gt}from"./W96STwh2.js";import{n as _t,t as vt}from"./DlGnnCJo.js";import{n as yt,r as bt,t as xt}from"./DaoRWw_m.js";import{p as St,r as Ct}from"./CVdgRPye.js";import{r as wt,t as Tt}from"./BIhzYFGW.js";var Et={url:`/`,label:`cc`};function Dt(e){if(e.startsWith(`//`))return!1;try{if(e.startsWith(`/`)){let t=`https://clickclack.invalid`;return new URL(e,t).origin===t}let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&t.host!==``&&!t.username&&!t.password}catch{return!1}}function Ot(e){if(!e||typeof e!=`object`)return Et;let t=e,n=typeof t.url==`string`?t.url:``,r=n.trim(),i=typeof t.label==`string`?t.label.trim():``,a=/[\u0000-\u001f\u007f\\]/u.test(n);return{url:r&&!a&&Dt(r)?r:Et.url,label:i&&Array.from(i).length<=32?i:Et.label}}function kt(e){return e===Et.label}function At(e){return kt(e.label)?`ClickClack home`:`${e.label} home`}async function jt(e){try{return Ot(await e(`/api/home-link`))}catch{return Et}}var Mt=`clickclack:browser-notifications-enabled:v1:`;function Nt(e){return`${Mt}${e}`}function Pt(e){if(!e)return!1;try{return window.localStorage.getItem(Nt(e))===`enabled`}catch{return!1}}function Ft(e,t){if(!e)return!1;try{return t?window.localStorage.setItem(Nt(e),`enabled`):window.localStorage.removeItem(Nt(e)),!0}catch{return!1}}var It=typeof window>`u`?void 0:window.clickclackDesktop;function Lt(e,t){let n={width:0,height:0,durationMS:0},r=e.type.startsWith(`image/`);return t.aborted||!r&&!e.type.startsWith(`video/`)?Promise.resolve(n):new Promise(i=>{let a=URL.createObjectURL(e),o=r?new Image:document.createElement(`video`),s=r?`load`:`loadedmetadata`;function c(e=n){o.removeEventListener(s,u),o.removeEventListener(`error`,l),t.removeEventListener(`abort`,l),o.removeAttribute(`src`),o instanceof HTMLVideoElement&&o.load(),URL.revokeObjectURL(a),i(e)}function l(){c()}function u(){c(o instanceof HTMLImageElement?{width:o.naturalWidth,height:o.naturalHeight,durationMS:0}:{width:o.videoWidth,height:o.videoHeight,durationMS:Number.isFinite(o.duration)&&o.duration>0?Math.round(o.duration*1e3):0})}o instanceof HTMLVideoElement&&(o.preload=`metadata`,o.muted=!0),o.addEventListener(s,u),o.addEventListener(`error`,l),t.addEventListener(`abort`,l,{once:!0}),o.src=a})}var Rt=new Set([`agent_commentary`,`agent_tool`]),zt=18e4;function Bt(e){return e.kind!==void 0&&Rt.has(e.kind)}function Vt(e){return e.kind===void 0||e.kind===`message`}function Ht(e){return e.author?.id||e.author_id||``}function Ut(e){return`${e.channel_id?`channel:${e.channel_id}`:`direct:${e.direct_conversation_id||``}`}\u0000${Ht(e)}\u0000${e.turn_id||e.id}`}function Wt(e){let t=e.trim(),n=``,r=``,i=t.match(/^\*\*([^*]+)\*\*\s*\n+([\s\S]+)$/),a=t.match(/^\*\*([^*]+)\*\*$/);if(i)n=i[1].trim(),r=Kt(i[2]);else if(a)n=a[1].trim();else return Gt(t.replace(/\*\*/g,``).trim(),``);return Gt(n,r)}function Gt(e,t){let n=Kt(e),r=n.indexOf(` `),i,a;r===-1?(i=n,a=``):(i=n.slice(0,r),a=n.slice(r+1).trim());let o=[a,t].filter(e=>e.length>0).join(` · `);return{name:i,detail:o||void 0}}function Kt(e){return e.replace(/\s+/g,` `).trim()}function qt(e,t,n,r){let i=[];for(let e of t)if(e.kind===`agent_tool`){if(r.hideToolCalls)continue;let t=Wt(e.body);i.push({type:`tool`,id:e.id,name:t.name,detail:t.detail,full:e.body.trim()})}else{if(r.hideCommentary)continue;let t=e.body.trim();t&&i.push({type:`commentary`,id:e.id,body:t})}return i.length===0?null:{turnId:e,items:i,final:n}}function Jt(e,t,n=Date.now()){let r=new Map,i=new Map;for(let t=0;to.firstIndex;if(!r){let e=Date.parse(o.rows[o.rows.length-1].created_at);Number.isFinite(e)&&n-e>zt&&(r=!0)}a.set(t,r)}let o=[];for(let n=0;n=_n)&&(vn.active=!0,vn.lastPingAt=t,xn(e,`typing.started`)),vn.idleTimer&&window.clearTimeout(vn.idleTimer),vn.idleTimer=window.setTimeout(()=>{vn&&=(Cn(vn),null)},gn)}async function Cn(e){e.idleTimer&&window.clearTimeout(e.idleTimer),e.active&&await xn(e.scope,`typing.stopped`)}function wn(){vn&&=(Cn(vn),null)}var Tn=2e3,En=2097152;function Dn(e){let t=document.createElement(`span`);return t.textContent=e,t.innerHTML}function On(e,t,n){return!t||e.length>262144?Promise.resolve(Dn(e)):new Promise((r,i)=>{let a=new Worker(new URL(new URL(`../workers/highlight.worker-B65U9hWZ.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),o=!1,s=e=>{o||(o=!0,clearTimeout(l),n.removeEventListener(`abort`,c),a.terminate(),e())},c=()=>s(()=>i(new DOMException(`Syntax highlighting was aborted.`,`AbortError`))),l=window.setTimeout(()=>s(()=>r(Dn(e))),Tn);if(a.onmessage=t=>{let n=t.data;`error`in n?s(()=>r(Dn(e))):s(()=>r(n.html))},a.onerror=()=>s(()=>r(Dn(e))),n.addEventListener(`abort`,c,{once:!0}),n.aborted){c();return}a.postMessage({source:e,language:t,outputLimit:En})})}var kn=5e3;function An(e,t,n){return new Promise((r,i)=>{let a=new Worker(new URL(new URL(`../workers/office.worker-ChjPCl7B.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),o=!1,s=e=>{o||(o=!0,clearTimeout(l),n.removeEventListener(`abort`,c),a.terminate(),e())},c=()=>s(()=>i(new DOMException(`Office preview was aborted.`,`AbortError`))),l=window.setTimeout(()=>s(()=>i(Error(`Office preview took too long and was stopped.`))),kn);if(a.onmessage=t=>{let n=t.data;if(`error`in n){s(()=>i(Error(n.error)));return}if(n.kind!==e){s(()=>i(Error(`Office preview returned an unexpected result.`)));return}s(()=>r(n.preview))},a.onerror=()=>s(()=>i(Error(`Could not parse this Office file safely.`))),n.addEventListener(`abort`,c,{once:!0}),n.aborted){c();return}let u=t.byteOffset===0&&t.buffer instanceof ArrayBuffer&&t.byteLength===t.buffer.byteLength?t:t.slice(),d={kind:e,bytes:u};a.postMessage(d,[u.buffer])})}var jn=16777216,Mn=1e4,Nn=1e4,Pn=`This PDF page is too large to preview safely. Download the original to open it locally.`;function Fn(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<1||t<1||e>8192||t>8192||e*t>16777216)throw Error(Pn)}var In=new URL(`../assets/pdf.worker.TGcf_-kp.mjs`,import.meta.url).href,Ln=l(`
          `),Rn=l(`

          Preparing a safe preview.

          `),zn=l(``),Bn=l(`
          No preview for this file type

          You can still download the original file.

          Download original
          `),Vn=l(`
          `,1),Hn=l(` `),Un=l(` `),Wn=l(` `),Gn=l(` `),Kn=l(`

          Preview is limited to 10,000 cells, the first 1,000 rows, and the first 100 columns. Download the original to inspect omitted cells.

          `),qn=l(``),Jn=l(`
          Raw cached values; number and date formatting omitted
          `,1),Yn=l(`

          `),Xn=l(`

          `),Zn=l(`

          `),Qn=l(`

          Some slide content was omitted by preview limits.

          `),$n=l(`

          Text outline only. Visuals, layout, animations, and speaker notes are omitted.

          `,1),er=l(`
          `),tr=l(`
          `),nr=l(`
          `),rr=l(`
           
          `),ir=l(`
          `,1);function ar(e,r){o(r,!0);let a=A(null),c=U(()=>nt(r.upload)),l=A(`preview`),m=A(`idle`),h=A(``),g=A(``),v=A(``),y=A(!1),b=A(``),x=A(null),S=A(1),T=A(1),E=A(!1),O=A(``),j=null,F=!1,L=A(null),R=A(0),re=A(null),ie=A(0),B=1e4,ae=65536,V=5e3;class se extends Error{}let le=U(()=>J(u(c))),H=U(()=>q(r.upload)),ue=U(()=>(u(c)===`markdown`||u(c)===`html`)&&u(m)===`ready`&&u(y));function W(e){return`This ${u(le).toLowerCase()} is ${Ge(r.upload.byte_size)}. Preview is limited to ${Ge(e)}.`}function de(e){pe(e);let t=document.createElement(`template`);t.innerHTML=e;let n=Je.sanitize(t.content,{RETURN_DOM_FRAGMENT:!0,USE_PROFILES:{html:!0},FORBID_TAGS:[`base`,`embed`,`form`,`iframe`,`link`,`meta`,`object`,`script`,`style`],FORBID_ATTR:[`action`,`formaction`,`srcset`,`style`,`xlink:href`]});for(let e of n.querySelectorAll(`*`))for(let t of Array.from(e.attributes))e.removeAttribute(t.name);let r=document.createElement(`div`);r.append(n);let i=r.innerHTML;return he(i),`${i}`}function fe(e){pe(e);let t=Y(e);return he(t),Je.sanitize(t,{ALLOWED_TAGS:[`blockquote`,`br`,`code`,`del`,`em`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`hr`,`li`,`ol`,`p`,`pre`,`strong`,`table`,`tbody`,`td`,`th`,`thead`,`tr`,`ul`],ALLOWED_ATTR:[]})}function pe(e){if(e.length>65536)throw new se(`Structured preview exceeded the safe source limit.`);let t=0;for(let n of e)if("<[]>*_`-+.!#>|~".includes(n)&&(t+=1,t>B))throw new se(`Structured preview exceeded the safe complexity limit.`)}function he(e){if(e.length>4194304)throw new se(`Rendered preview exceeded the safe output limit.`);let t=0;for(let n of e)if(n===`<`&&++t>B*2)throw new se(`Rendered preview exceeded the safe element limit.`)}function ge(e){return`Preview data exceeded the ${Ge(e)} safety limit.`}async function _e(e,t){let n=await fetch(u(H),{credentials:`include`,signal:e});if(!n.ok)throw n.status===401||n.status===403?Error(`You no longer have access to this artifact.`):n.status===404?Error(`This artifact is no longer available.`):Error(`Could not load this artifact (${n.status}).`);let r=Number(n.headers.get(`Content-Length`));if(Number.isFinite(r)&&r>t)throw Error(ge(t));if(!n.body){let e=new Uint8Array(await n.arrayBuffer());if(e.byteLength>t)throw Error(ge(t));return e}let i=n.body.getReader(),a=[],o=0;try{for(;;){let{done:e,value:n}=await i.read();if(e)break;if(o+=n.byteLength,o>t)throw await i.cancel(),Error(ge(t));a.push(n)}}finally{i.releaseLock()}let s=new Uint8Array(o),c=0;for(let e of a)s.set(e,c),c+=e.byteLength;return s}async function ve(e,t){return new TextDecoder(`utf-8`,{fatal:!1}).decode(await _e(e,t))}async function G(e){j?.(),j=null,M(x,null),M(g,``),M(v,``),M(y,!1),M(b,``),M(S,1),M(T,1),M(O,``),F=!1,M(L,null),M(R,0),M(re,null),M(ie,0),M(l,`preview`),M(h,``);let t=Q(u(c));if(t!==void 0&&r.upload.byte_size>t){M(m,`error`),M(h,W(t),!0);return}if(u(c)===`unsupported`){M(m,`ready`);return}M(m,`loading`);try{if(u(c)===`pdf`){let n=await me(()=>import(`./DxhId6dF.js`),__vite__mapDeps([0,1]),import.meta.url);if(e.aborted)return;n.GlobalWorkerOptions.workerSrc=In;let r=new AbortController,i=()=>r.abort();e.addEventListener(`abort`,i,{once:!0});let a=null,o=0,s=new Promise((e,t)=>{o=window.setTimeout(()=>{r.abort(),a?.destroy(),t(Error(`PDF preview took too long and was stopped.`))},Mn)}),c;try{if(c=await Promise.race([_e(r.signal,t),s]),e.aborted)throw new DOMException(`Aborted`,`AbortError`);a=new n.PDFWorker,await Promise.race([a.promise,s])}catch(t){throw clearTimeout(o),e.removeEventListener(`abort`,i),t}if(e.aborted||!a){clearTimeout(o),e.removeEventListener(`abort`,i),a?.destroy();return}let l=a.port,u=e=>{let t=e.data;typeof t==`object`&&t&&`reason`in t&&typeof t.reason==`object`&&t.reason!==null&&`message`in t.reason&&t.reason.message===`Image exceeded maximum allowed size and was removed.`&&(F=!0,j?.(),M(m,`error`),M(h,`PDF page content could not be rendered completely within safety limits.`))};l.addEventListener(`message`,u);let d=null,f=!1;j=()=>{f||(f=!0,l.removeEventListener(`message`,u),d&&d.destroy(),a.destroy(),M(x,null))};let p=n.getDocument({data:c,maxImageSize:jn,canvasMaxAreaInBytes:jn*4,stopAtErrors:!0,worker:a});d=p;try{M(x,await Promise.race([p.promise,s]),!0)}finally{clearTimeout(o),e.removeEventListener(`abort`,i)}}else if(u(c)===`spreadsheet`||u(c)===`presentation`){let n=await _e(e,t);if(e.aborted)return;if(u(c)===`spreadsheet`){let t=await An(u(c),n,e);if(e.aborted)return;M(L,t,!0)}else{let t=await An(u(c),n,e);if(e.aborted)return;M(re,t,!0)}}else{if(M(g,await ve(e,t),!0),e.aborted)return;u(c)===`code`&&M(b,await On(u(g),qe(r.upload),e),!0);try{u(c)===`markdown`&&(M(v,fe(u(g)),!0),M(y,!0)),u(c)===`html`&&(M(v,de(u(g)),!0),M(y,!0))}catch(e){if(!(e instanceof se))throw e;M(v,``),M(l,`source`)}}e.aborted||M(m,`ready`)}catch(t){if(e.aborted||t instanceof Error&&t.name===`AbortError`)return;j?.(),j=null,M(m,`error`),M(h,t instanceof Error?t.message:`Could not preview this artifact.`,!0)}}C(()=>{let e=new AbortController;return G(e.signal),()=>e.abort()}),C(()=>{if(u(c)!==`pdf`||!u(x)||!u(a)||u(m)!==`ready`)return;let e=u(x),t=u(S),n=u(T),r=!1,i=null,o=null,s=null,l=0;return M(E,!0),M(O,``),(async()=>{try{if(l=window.setTimeout(()=>{r||(i?.cancel(),s?.cancel(),j?.(),M(m,`error`),M(h,`PDF page rendering took too long and was stopped.`))},Nn),o=await e.getPage(t),r||!u(a))return;let c=``,d=0;s=o.streamTextContent().getReader();try{for(;!r;){let{done:e,value:t}=await s.read();if(e)break;for(let e of t.items){if(d+=1,d>V){await s.cancel(),c=`${c}…`;break}if(!(`str`in e)||!e.str)continue;let t=`${c}${c?` `:``}${e.str}`;if(t.length>ae){await s.cancel(),c=`${t.slice(0,ae)}…`;break}c=t}if(d>V||c.endsWith(`…`))break}}finally{s.releaseLock(),s=null}if(r)return;M(O,c||`This page has no extractable text.`,!0);let f=o.getViewport({scale:n}),p=Math.min(window.devicePixelRatio||1,2),g=Math.max(1,Math.floor(f.width*p)),_=Math.max(1,Math.floor(f.height*p));Fn(g,_);let v=u(a).getContext(`2d`);if(!v)throw Error(`PDF canvas is unavailable.`);if(u(a).width=g,u(a).height=_,u(a).style.width=`${f.width}px`,u(a).style.height=`${f.height}px`,v.setTransform(p,0,0,p,0,0),i=o.render({canvasContext:v,viewport:f}),await i.promise,F)throw Error(`PDF page content could not be rendered completely within safety limits.`)}catch(e){!r&&!(e instanceof Error&&e.name===`RenderingCancelledException`)&&(j?.(),M(m,`error`),M(h,e instanceof Error?e.message:`Could not render this PDF page.`,!0))}finally{clearTimeout(l),o?.cleanup(),o=null,r||M(E,!1)}})(),()=>{r=!0,clearTimeout(l),i?.cancel(),s?.cancel()}}),ne(()=>j?.());function ye(e){let t=e.match(/^[A-Z]+/i)?.[0]?.toUpperCase()||`A`,n=0;for(let e of t)n=n*26+e.charCodeAt(0)-64;return n}function be(e){return Number(e.match(/\d+$/)?.[0]||1)}function xe(e){let t=``;for(let n=e;n>0;n=Math.floor((n-1)/26))t=String.fromCharCode(65+(n-1)%26)+t;return t}let Se=U(()=>{let e=u(L)?.sheets[u(R)];if(!e)return{columns:[],rows:[],clipped:!1};let t=Math.max(1,...e.cells.map(e=>ye(e.reference))),n=Math.max(1,...e.cells.map(e=>be(e.reference))),r=Math.min(100,t),i=Math.min(1e3,Math.floor(1e4/r),n),a=new Map(e.cells.map(e=>[e.reference.toUpperCase(),e.value])),o=Array.from({length:r},(e,t)=>xe(t+1));return{columns:o,rows:Array.from({length:i},(e,t)=>({number:t+1,values:o.map(e=>a.get(`${e}${t+1}`)||``)})),clipped:t>r||n>i}});var Ce=ir(),we=ce(Ce),Te=I(we),Ee=I(Te),De=D(Ee,!0),Oe=k(Ee,2),ke=D(Oe,!0),Ae=k(Oe,2),je=D(Ae,!0);t(Te);var Me=k(Te,2),Ne=I(Me),Pe=e=>{var r=Ln(),i=I(r);let a;var o=k(i,2);let s;t(r),N(()=>{z(r,`aria-label`,`${u(le)} view`),z(i,`aria-pressed`,u(l)===`preview`),a=w(i,1,``,null,a,{active:u(l)===`preview`}),z(o,`aria-pressed`,u(l)===`source`),s=w(o,1,``,null,s,{active:u(l)===`source`})}),n(`click`,i,()=>M(l,`preview`)),n(`click`,o,()=>M(l,`source`)),p(e,r)};P(Ne,e=>{u(ue)&&e(Pe)});var Fe=k(Ne,2),K=k(Fe,2);t(Me),t(we);var Ie=k(we,2);let Le;var Re=I(Ie),ze=e=>{var n=Rn(),r=k(I(n),2),i=D(r);te(2),t(n),N(e=>d(i,`Opening ${e??``}`),[()=>u(le).toLowerCase()]),p(e,n)},Be=e=>{var n=zn(),i=k(I(n),4),a=D(i,!0),o=k(i,2);t(n),N(()=>{d(a,u(h)),z(o,`href`,u(H)),z(o,`download`,r.upload.filename)}),p(e,n)},Ve=e=>{var n=Bn(),i=k(I(n),6);t(n),N(()=>{z(i,`href`,u(H)),z(i,`download`,r.upload.filename)}),p(e,n)},He=e=>{var r=Vn(),i=ce(r),o=I(i),s=k(o,2),c=D(s),l=k(s,2),f=k(l,4),m=k(f,2),h=D(m),g=k(m,2);t(i);var _=k(i,2);let v;var y=I(_);oe(y,e=>M(a,e),()=>u(a));var b=k(y,2),C=D(b,!0);t(_),N(e=>{o.disabled=u(S)<=1||u(E),d(c,`Page ${u(S)??``} of ${u(x).numPages??``}`),l.disabled=u(S)>=u(x).numPages||u(E),f.disabled=u(T)<=.6||u(E),d(h,`${e??``}%`),g.disabled=u(T)>=2||u(E),v=w(_,1,`artifact-viewer__pdf-stage`,null,v,{"is-rendering":u(E)}),z(_,`aria-label`,`PDF page ${u(S)} visual preview`),z(b,`aria-label`,`PDF page ${u(S)} text`),d(C,u(O))},[()=>Math.round(u(T)*100)]),n(`click`,o,()=>M(S,u(S)-1)),n(`click`,l,()=>M(S,u(S)+1)),n(`click`,f,()=>M(T,Math.max(.6,u(T)-.2),!0)),n(`click`,g,()=>M(T,Math.min(2,u(T)+.2),!0)),p(e,r)},Ue=e=>{var r=Jn(),i=ce(r),a=I(i),o=D(a),s=k(a,4),c=e=>{var t=Hn(),n=D(t);N(()=>d(n,`${u(L).hiddenSheets??``} hidden ${u(L).hiddenSheets===1?`sheet`:`sheets`} omitted`)),p(e,t)};P(s,e=>{u(L).hiddenSheets>0&&e(c)});var l=k(s,2),m=e=>{var t=Hn(),n=D(t);N(()=>d(n,`${u(L).unsupportedSheets??``} non-worksheet ${u(L).unsupportedSheets===1?`sheet`:`sheets`} omitted`)),p(e,t)};P(l,e=>{u(L).unsupportedSheets>0&&e(m)}),t(i);var h=k(i,2),g=I(h),_=I(g),v=I(_),y=k(I(v));f(y,17,()=>u(Se).columns,ee,(e,t)=>{var n=Un(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)}),t(v),t(_);var b=k(_);f(b,21,()=>u(Se).rows,ee,(e,n)=>{var r=Gn(),i=I(r),a=D(i,!0),o=k(i);f(o,17,()=>u(n).values,ee,(e,t)=>{var n=Wn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)}),t(r),N(()=>d(a,u(n).number)),p(e,r)}),t(b),t(g);var x=k(g,2),S=e=>{var t=Kn();p(e,t)};P(x,e=>{(u(Se).clipped||u(L).sheets[u(R)].truncated)&&e(S)}),t(h);var C=k(h,2);f(C,21,()=>u(L).sheets,ee,(e,t,r)=>{var i=qn();let a;var o=D(i,!0);N(()=>{z(i,`aria-selected`,u(R)===r),a=w(i,1,``,null,a,{active:u(R)===r}),d(o,u(t).name)}),n(`click`,i,()=>M(R,r,!0)),p(e,i)}),t(C),N(()=>{d(o,`${u(L).sheets.length??``} ${u(L).sheets.length===1?`sheet`:`sheets`}`),z(h,`aria-label`,`${u(L).sheets[u(R)].name} worksheet`)}),p(e,r)},We=e=>{var r=$n(),i=ce(r),a=I(i),o=k(a,2),c=D(o),l=k(o,2);t(i);var m=k(i,2),h=I(m);f(h,21,()=>u(re).slides[u(ie)].paragraphs,ee,(e,t,n)=>{var r=s(),i=ce(r),a=e=>{var n=Yn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)},o=e=>{var n=Xn(),r=D(n,!0);N(()=>d(r,u(t))),p(e,n)};P(i,e=>{n===0?e(a):e(o,-1)}),p(e,r)}),t(h);var g=k(h,4),_=e=>{var t=Zn(),n=D(t);N(()=>d(n,`${u(re).hiddenSlides??``} hidden ${u(re).hiddenSlides===1?`slide`:`slides`} omitted.`)),p(e,t)};P(g,e=>{u(re).hiddenSlides>0&&e(_)});var v=k(g,2),y=e=>{var t=Qn();p(e,t)};P(v,e=>{u(re).truncated&&e(y)}),t(m),N(()=>{a.disabled=u(ie)===0,d(c,`Slide ${u(ie)+1} of ${u(re).slides.length??``}`),l.disabled=u(ie)>=u(re).slides.length-1,z(h,`aria-label`,`Slide ${u(ie)+1}: ${u(re).slides[u(ie)].title}`)}),n(`click`,a,()=>M(ie,u(ie)-1)),n(`click`,l,()=>M(ie,u(ie)+1)),p(e,r)},Ke=e=>{var n=er();i(n,()=>u(v),!0),t(n),p(e,n)},Ye=e=>{var n=tr();i(n,()=>u(v),!0),t(n),p(e,n)},Xe=e=>{var n=nr(),r=I(n);i(r,()=>u(b),!0),t(r),t(n),p(e,n)},Ze=e=>{var n=rr(),r=I(n),i=D(r,!0);t(n),N(()=>d(i,u(g))),p(e,n)};P(Re,e=>{u(m)===`loading`?e(ze):u(m)===`error`?e(Be,1):u(c)===`unsupported`?e(Ve,2):u(c)===`pdf`&&u(x)?e(He,3):u(c)===`spreadsheet`&&u(L)?e(Ue,4):u(c)===`presentation`&&u(re)?e(We,5):u(c)===`html`&&u(l)===`preview`&&u(v)?e(Ke,6):u(c)===`markdown`&&u(l)===`preview`?e(Ye,7):u(c)===`code`?e(Xe,8):e(Ze,-1)}),t(Ie),N(e=>{d(De,u(le)),z(Oe,`title`,r.upload.filename),d(ke,r.upload.filename),d(je,e),z(Fe,`href`,u(H)),z(Fe,`download`,r.upload.filename),z(Fe,`aria-label`,`Download ${r.upload.filename}`),Le=w(Ie,1,`artifact-viewer__body`,null,Le,{"is-pdf":u(c)===`pdf`,"is-office":u(c)===`spreadsheet`||u(c)===`presentation`})},[()=>Ge(r.upload.byte_size)]),n(`click`,K,function(...e){r.onClose?.apply(this,e)}),p(e,Ce),_()}W([`click`]);var or=l(``),sr=l(`
          `),cr=l(`

          or

          `),lr=l(` `,1),ur=l(``),dr=l(``),fr=l(`

          `),pr=l(`
          ClickClack OpenClaw workspace chat

          Welcome.

          Have a sign-in token?
          `,1);function mr(e,r){o(r,!0);let i=It?.integratedTitleBar===!0,a=A(``),s=ge(),c=s.includes(`github`),l=s.includes(`password`),f=!It&&s.includes(`openclaw`),m=A(``),h=A(``),g=A(``),y=A(!1),b=A(``),x=l?c?`Sign in with your ClickClack account, or continue with GitHub.`:`Sign in with your ClickClack account.`:c?`Sign in with GitHub to join the guest room.`:f?`Sign in with OpenClaw ID to join the guest room.`:`Sign in with a token from your ClickClack administrator.`,S=c&&!l?`Any GitHub account can join.`:``;async function C(e){if(It){e.preventDefault(),M(a,`Opening GitHub in your browser…`);try{await It.signInWithGitHub(),M(a,`Finish signing in in your browser. ClickClack will complete here automatically.`)}catch{M(a,`Could not open your browser. Try again.`)}}}async function w(e,t){if(!u(y)){M(y,!0),M(b,``);try{await G(e,{method:`POST`,body:JSON.stringify(t)}),window.location.reload()}catch(e){M(b,xe(e,`Could not sign in.`),!0),M(y,!1)}}}function T(e){e.preventDefault(),w(`/api/auth/password/login`,{identifier:u(m),password:u(h)})}function E(e){e.preventDefault(),w(`/api/auth/magic/consume`,{token:u(g)})}var j=pr(),F=ce(j),ee=e=>{var t=or();N(()=>z(t,`data-platform`,It.platform)),p(e,t)};P(F,e=>{i&&It&&e(ee)});var L=k(F,2),R=I(L),ne=I(R),re=I(ne);Ye(re,{class:`mark`,size:44}),te(2),t(ne);var ie=k(ne,2),B=k(I(ie),2),ae=D(B,!0);t(ie);var oe=k(ie,2),V=e=>{var n=sr(),r=I(n),i=k(I(r),2);O(i),t(r);var a=k(r,2),o=k(I(a),2);O(o),t(a);var s=k(a,2),c=D(s,!0);t(n),N(()=>{s.disabled=u(y),d(c,u(y)?`Signing in...`:`Sign in`)}),v(`submit`,n,T),se(i,()=>u(m),e=>M(m,e)),se(o,()=>u(h),e=>M(h,e)),p(e,n)};P(oe,e=>{l&&e(V)});var le=k(oe,2),H=e=>{var t=lr(),r=ce(t),i=e=>{var t=cr();p(e,t)};P(r,e=>{l&&e(i)});var a=k(r,2);N(e=>z(a,`href`,e),[()=>he(`/api/auth/github/start`)]),n(`click`,a,C),p(e,t)};P(le,e=>{c&&e(H)});var ue=k(le,2),U=e=>{var t=ur();N(e=>z(t,`href`,e),[()=>he(`/api/auth/openclaw/start`)]),p(e,t)};P(ue,e=>{f&&e(U)});var W=k(ue,2),de=e=>{var t=dr(),n=D(t,!0);N(()=>d(n,u(b))),p(e,t)};P(W,e=>{u(b)&&e(de)});var fe=k(W,2),pe=k(I(fe),2),me=I(pe),_e=k(I(me),2);O(_e),t(me);var ve=k(me,2);t(pe),t(fe);var ye=k(fe,2),be=e=>{var t=fr(),n=D(t,!0);N(()=>d(n,u(a)||S)),p(e,t)};P(ye,e=>{(u(a)||S)&&e(be)}),t(R),t(L),N(()=>{d(ae,x),fe.open=!c&&!l&&!f,ve.disabled=u(y)}),v(`submit`,pe,E),se(_e,()=>u(g),e=>M(g,e)),p(e,j),_()}W([`click`]);var hr=l(``),gr=l(``);function _r(e,r){o(r,!0);let i=S(r,`deleting`,3,!1),a=S(r,`error`,3,``),s=U(()=>r.message.author?.display_name||`Local User`);function c(){i()||r.onClose()}var l=gr(),f=I(l),m=k(f,2),h=I(m),g=k(I(h),2);t(h);var v=k(h,2),y=k(I(v),2),b=I(y);{let e=U(()=>r.message.author?.id||r.message.author_id),t=U(()=>r.message.author?.avatar_url);dt(b,{class:`avatar`,get id(){return u(e)},get name(){return u(s)},get src(){return u(t)},size:36,loading:`eager`,fetchPriority:`auto`})}var x=k(b,2),C=I(x),w=I(C),T=D(w,!0),E=k(w,2),O=D(E,!0);t(C);var A=k(C,2),j=D(A,!0);t(x),t(y);var M=k(y,2),F=e=>{var t=hr(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(M,e=>{a()&&e(F)});var ee=k(M,2),te=I(ee),L=k(te,2),R=D(L,!0);t(ee),t(v),t(m),t(l),N(e=>{f.disabled=i(),g.disabled=i(),d(T,u(s)),z(E,`datetime`,r.message.created_at),d(O,e),d(j,r.message.body),te.disabled=i(),L.disabled=i(),d(R,i()?`Deleting...`:`Delete`)},[()=>Xe(r.message.created_at)]),n(`click`,f,c),n(`click`,g,c),n(`click`,te,c),n(`click`,L,function(...e){r.onConfirm?.apply(this,e)}),p(e,l),_()}W([`click`]);var vr=6500,yr=l(`
          `);function br(e,n){o(n,!0);let r=U(()=>n.entries.filter(e=>e.userID!==n.currentUserID));function i(e,t=`Someone`){return e?.display_name?.trim()||(e?.handle?`@${e.handle}`:t)}let a=U(()=>u(r).length===0?``:u(r).length===1?`${i(u(r)[0].user)} is typing…`:u(r).length===2?`${i(u(r)[0].user)} and ${i(u(r)[1].user)} are typing…`:u(r).length===3?`${i(u(r)[0].user)}, ${i(u(r)[1].user)}, and ${i(u(r)[2].user)} are typing…`:`Several people are typing…`);var s=yr();let c;var l=k(I(s),2),f=D(l,!0);t(s),N(()=>{c=w(s,1,`typing-indicator`,null,c,{visible:u(r).length>0}),d(f,u(a))}),p(e,s),_()}var xr=l(`
          `),Sr=l(`
          `),Cr=l(`
          `);function wr(e,n){o(n,!0);function r(e){return e.kind===`tool`&&e.toolName?!e.text||e.text===e.toolName?e.toolName:`${e.toolName}: ${e.text}`:e.text}function i(e){switch(e){case`tool`:return`⚙`;case`thinking`:case`commentary`:return`✦`;case`plan`:return`☰`;case`patch`:return`±`;case`command_output`:return`›`;case`error`:return`✕`;default:return`·`}}var a=s(),c=ce(a),l=e=>{var a=Cr();f(a,21,()=>n.turns,e=>e.key,(e,n)=>{var a=Sr();f(a,21,()=>u(n).lines,e=>e.id,(e,n)=>{var a=xr();let o;var s=I(a),c=D(s,!0),l=k(s,2),f=D(l,!0);t(a),N((e,t)=>{o=w(a,1,`agent-progress__line svelte-6vwkyv`,null,o,{"agent-progress__line--done":u(n).finalized}),z(a,`data-kind`,u(n).kind),d(c,e),d(f,t)},[()=>i(u(n).kind),()=>r(u(n))]),p(e,a)}),t(a),p(e,a)}),t(a),p(e,a)};P(c,e=>{n.turns.length>0&&e(l)}),p(e,a),_()}function Tr(e,t){return`${e}\u0000${t}`}var Er=45e3;function Dr(e,t,n){let r=typeof t.turn_id==`string`?t.turn_id:``,i=typeof t.op==`string`?t.op:``;if(!r||!i)return e;let a=typeof t.user_id==`string`?t.user_id:``,o=Tr(a,r);if(i===`clear`)return e.filter(e=>e.turnId===r?a&&e.userId?e.key!==o:!1:!0);let s=t.line,c=s&&typeof s.id==`string`?s.id:``;if(!c)return e;let l=s&&typeof s.text==`string`?s.text:``,u=s&&typeof s.title==`string`?s.title:``,d=l||u,f=s&&typeof s.tool_name==`string`?s.tool_name:typeof s?.toolName==`string`?s.toolName:void 0,p=s&&typeof s.status==`string`?s.status:void 0,m=s&&typeof s.kind==`string`?s.kind:void 0,h=e.find(e=>e.key===o),g=h?.lines.find(e=>e.id===c),_={id:c,kind:m??g?.kind??`lifecycle`,text:d||g?.text||``,toolName:f??g?.toolName,status:p??g?.status,finalized:i===`finalize`||(g?.finalized??!1)};if(!g&&!_.text&&!_.toolName)return e;let v=n+Er;if(!h)e=[...e,{key:o,turnId:r,userId:a,lines:[_],expiresAt:v}];else{let t=h.lines.some(e=>e.id===c)?h.lines.map(e=>e.id===c?_:e):[...h.lines,_];e=e.map(e=>e.key===o?{...e,lines:t,expiresAt:v}:e)}return e}var Or=l(``),kr=l(``);function Ar(e,r){o(r,!0);var i=kr(),a=I(i),s=k(a,2),c=I(s),l=k(I(c),2);t(c);var u=k(c,2),f=I(u),m=k(I(f),2);O(m),t(f);var h=k(f,2),g=e=>{var t=Or(),n=D(t,!0);N(()=>d(n,r.error)),p(e,t)};P(h,e=>{r.error&&e(g)});var y=k(h,2),b=I(y),x=k(b,2),S=D(x,!0);t(y),t(u),t(s),t(i),N(e=>{j(m,r.channelName),m.disabled=r.pending,x.disabled=e,d(S,r.pending?`Creating…`:`Create channel`)},[()=>r.pending||!r.channelName.trim()]),n(`click`,a,function(...e){r.onClose?.apply(this,e)}),n(`click`,l,function(...e){r.onClose?.apply(this,e)}),v(`submit`,u,e=>{e.preventDefault(),r.onCreate()}),n(`input`,m,e=>r.onChannelName(e.currentTarget.value)),n(`click`,b,function(...e){r.onClose?.apply(this,e)}),p(e,i),_()}W([`click`,`input`]);var jr=l(``),Mr=l(`
          No matching people yet
          `),Nr=l(`

          `),Pr=l(``),Fr=l(``);function Ir(e,r){o(r,!0);let i=U(()=>r.memberID.trim().toLowerCase().replace(/^@/,``)),a=U(()=>r.people.filter(e=>e.id!==r.currentUserID).filter(e=>!u(i)||e.display_name.toLowerCase().includes(u(i))||e.handle?.toLowerCase().includes(u(i))||e.id.toLowerCase().includes(u(i)))),s=U(()=>r.memberID.trim().startsWith(`usr_`)?r.memberID.trim():u(i)&&u(a).length===1?u(a)[0].id:``);function c(e){!r.pending&&e&&(r.onMemberID(e),r.onStart(e))}var l=Fr(),m=I(l),h=k(m,2),g=I(h),y=k(I(g),2);t(g);var b=k(g,2),x=I(b),S=k(I(x),2);O(S),t(x);var C=k(x,2),w=I(C);f(w,17,()=>u(a),e=>e.id,(e,i)=>{var a=jr(),o=I(a);dt(o,{class:`dm-avatar`,get id(){return u(i).id},get name(){return u(i).display_name},get src(){return u(i).avatar_url},size:32});var s=k(o,2),l=I(s),f=D(l,!0),m=k(l,2),h=D(m,!0);t(s),t(a),N(e=>{a.disabled=r.pending,d(f,u(i).display_name),d(h,e)},[()=>st(u(i).handle)||u(i).id]),n(`click`,a,()=>c(u(i).id)),p(e,a)});var T=k(w,2),E=e=>{var t=Mr();p(e,t)};P(T,e=>{u(a).length===0&&e(E)}),t(C);var A=k(C,2),M=e=>{var t=Nr(),n=D(t,!0);N(()=>d(n,u(a).length>1?`Choose a person from the results.`:`Choose a person or enter a user ID.`)),p(e,t)};P(A,e=>{u(i)&&!u(s)&&e(M)});var F=k(A,2),ee=e=>{var t=Pr(),n=D(t,!0);N(()=>d(n,r.error)),p(e,t)};P(F,e=>{r.error&&e(ee)});var te=k(F,2),L=I(te),R=k(L,2),ne=D(R,!0);t(te),t(b),t(h),t(l),N(()=>{j(S,r.memberID),S.disabled=r.pending,R.disabled=r.pending||!u(s),d(ne,r.pending?`Starting…`:`Start DM`)}),n(`click`,m,function(...e){r.onClose?.apply(this,e)}),n(`click`,y,function(...e){r.onClose?.apply(this,e)}),v(`submit`,b,e=>{e.preventDefault(),c(u(s))}),n(`input`,S,e=>r.onMemberID(e.currentTarget.value)),n(`click`,L,function(...e){r.onClose?.apply(this,e)}),p(e,l),_()}W([`click`,`input`]);var Lr=l(` `),Rr=l(``),zr=l(`
          `),Br=l(``),Vr=l(`

          Creating workspace…

          `),Hr=l(`
          `),Ur=l(``);function Wr(e,r){o(r,!0);let i=S(r,`homeHref`,3,`/`),a=S(r,`homeLabel`,3,`cc`),s=S(r,`homeTitle`,3,`ClickClack home`);function c(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}var l=Ur(),m=I(l);let h;var g=I(m),y=e=>{Ye(e,{size:48})},b=U(()=>kt(a())),x=e=>{var t=Lr(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(g,e=>{u(b)?e(y):e(x,-1)}),t(m);var C=k(m,4),T=I(C);f(T,17,()=>r.workspaces,e=>e.id,(e,i)=>{var a=zr();let o;var s=I(a),l=I(s),f=e=>{var t=Rr();N(e=>z(t,`src`,e),[()=>_e(u(i).icon_url)]),p(e,t)},m=e=>{var t=Lr(),n=D(t,!0);N(e=>d(n,e),[()=>lt(u(i).name)]),p(e,t)};P(l,e=>{u(i).icon_url?e(f):e(m,-1)}),t(s),t(a),N(e=>{o=w(a,1,`guild-wrap`,null,o,{active:u(i).id===r.selectedWorkspaceID}),z(s,`title`,u(i).name),z(s,`aria-label`,u(i).name),z(s,`href`,e)},[()=>r.hrefForWorkspace(u(i).id)]),n(`click`,s,e=>{c(e)&&(e.preventDefault(),r.onSelectWorkspace(u(i).id))}),p(e,a)});var E=k(T,2);t(C);var A=k(C,2),M=e=>{var i=Hr(),a=I(i);O(a);var o=k(a,2),s=e=>{var t=Br(),n=D(t,!0);N(()=>d(n,r.createError)),p(e,t)};P(o,e=>{r.createError&&e(s)});var c=k(o,2),l=e=>{var t=Vr();p(e,t)};P(c,e=>{r.createPending&&e(l)}),t(i),N(()=>{j(a,r.workspaceName),a.disabled=r.createPending}),v(`submit`,i,e=>{e.preventDefault(),r.onCreateWorkspace()}),n(`input`,a,e=>r.onWorkspaceName(e.currentTarget.value)),p(e,i)};P(A,e=>{r.showWorkspaceCreate&&e(M)}),t(l),N(e=>{h=w(m,1,`guild home`,null,h,{"home--mark":e}),z(m,`title`,s()),z(m,`aria-label`,s()),z(m,`href`,i())},[()=>kt(a())]),n(`click`,E,function(...e){r.onToggleWorkspaceCreate?.apply(this,e)}),p(e,l),_()}W([`click`,`input`]);var Gr=l(``),Kr=l(` `,1),qr=l(``),Jr=l(` `),Yr=l(``),Xr=l(`
          `),Zr=l(``),Qr=l(`Drag with a pointer, use Arrow Up and Arrow Down while focused, or open the move menu. Moves stay within the current channel section. `,1),$r=l(`
          `);function ei(e,r){o(r,!0);let i=(e,i=F,a=F,o=F,s=F,c=F)=>{let f=U(()=>i().unread_count||0),_=U(()=>a().findIndex(e=>e.id===i().id));var y=Yr();let b;var C=I(y),T=e=>{var r=Kr(),s=ce(r),c=k(s,2),l=e=>{var r=Gr(),o=I(r),s=k(o,2);t(r),oe(r,e=>M(S,e),()=>u(S)),N(e=>{z(r,`aria-label`,e),o.disabled=u(_)<=0,s.disabled=u(_)<0||u(_)>=a().length-1},[()=>`Move #${vt(i())}`]),n(`keydown`,r,e=>{e.key===`Escape`&&(e.preventDefault(),_e(!0))}),n(`click`,o,()=>ve(i().id,-1,a())),n(`click`,s,()=>ve(i().id,1,a())),p(e,r)};P(c,e=>{u(x)===i().id&&e(l)}),N(e=>{z(s,`aria-label`,e),z(s,`aria-expanded`,u(x)===i().id)},[()=>`Move #${vt(i())}`]),n(`click`,s,e=>void ge(i().id,e.currentTarget)),v(`dragstart`,s,e=>fe(e,i().id,o())),v(`dragend`,s,he),n(`keydown`,s,e=>{e.key===`ArrowUp`||e.key===`ArrowDown`?(e.preventDefault(),M(x,``),de(i().id,e.key===`ArrowUp`?-1:1,a())):e.key===`Escape`&&M(x,``)}),p(e,r)};P(C,e=>{c()&&e(T)});var E=k(C,2);let O;var A=k(I(E),2),j=D(A,!0),ee=k(A,2),te=e=>{var t=qr();p(e,t)};P(ee,e=>{i().external_managed&&e(te)});var L=k(ee,2),R=e=>{var t=Jr(),n=D(t,!0);N(()=>{z(t,`aria-label`,`${u(f)} unread`),d(n,u(f)>99?`99+`:u(f))}),p(e,t)};P(L,e=>{u(f)>0&&(i().id!==r.selectedChannelID||r.selectedDirectID)&&e(R)}),t(E),t(y),N((e,t)=>{b=w(y,1,`channel-row`,null,b,{reorderable:c(),subdued:s(),dragging:u(l)===i().id,"drop-before":u(h)===i().id&&u(g),"drop-after":u(h)===i().id&&!u(g)}),z(E,`href`,e),O=w(E,1,`nav-item channel`,null,O,{active:i().id===r.selectedChannelID&&!r.selectedDirectID,"has-unread":u(f)>0&&!(i().id===r.selectedChannelID&&!r.selectedDirectID)}),d(j,t)},[()=>r.hrefForChannel(i().id),()=>vt(i())]),v(`dragover`,y,e=>{c()&&pe(e,i().id,o())}),v(`drop`,y,e=>{e.preventDefault(),c()&&u(m)===o()&&(W(u(l),i().id,u(g),a()),he())}),n(`focusout`,y,e=>{e.currentTarget.contains(e.relatedTarget)||M(x,``)}),n(`click`,E,e=>{G(e)&&(e.preventDefault(),r.onSelectChannel(i().id))}),p(e,y)},a=(e,r=F,a=F,o=F)=>{let s=U(()=>V(r().key)),c=U(()=>H(r()));var l=Xr();let m;var h=I(l),g=k(I(h),2),_=D(g,!0),v=k(g,2),y=D(v,!0);t(h);var b=k(h,2);f(b,21,()=>u(c),e=>e.id,(e,t)=>{i(e,()=>u(t),()=>r().channels,()=>r().key,o,()=>u(s))}),t(b),t(l),N(()=>{m=w(l,1,`channel-subgroup`,null,m,{"archived-channel-group":o()}),z(h,`aria-expanded`,u(s)),z(h,`aria-controls`,a()),d(_,r().label),d(y,r().channels.length),z(b,`id`,a()),z(b,`hidden`,!u(s)&&u(c).length===0)}),n(`click`,h,()=>se(r().key)),p(e,l)},c=`archived`,l=A(``),m=A(``),h=A(``),g=A(!0),b=A(!1),x=A(``),S=A(void 0),T,O=A(``),j=A(B({})),ee=U(()=>r.channels.filter(e=>!e.archived_at)),te=U(()=>r.channels.filter(e=>!!e.archived_at)),L=U(()=>u(ee).filter(e=>!e.sidebar_section?.trim())),R=U(()=>{let e=new Map;for(let t of u(ee)){let n=t.sidebar_section?.trim();if(!n)continue;let r=e.get(n)??[];r.push(t),e.set(n,r)}return[...e.entries()].map(([e,t])=>({key:`section:${e}`,label:e,channels:t})).sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))}),ne=U(()=>r.channels.filter(e=>e.id===r.selectedChannelID&&!r.selectedDirectID||(e.unread_count||0)>0));function re(e){if(!e)return{};try{let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return{};let n=Object.entries(t);return n.length>1e3||n.some(([e,t])=>e.length>256||typeof t!=`boolean`)?{}:Object.fromEntries(n)}catch{return{}}}function ie(e){return`clickclack:sidebar-channel-groups:v1:${e}`}function ae(e){if(!e)return{};try{return re(window.localStorage.getItem(ie(e)))}catch{return{}}}function V(e){let t=u(j)[e];return typeof t==`boolean`?t:e!==c}function se(e){if(M(j,{...u(j),[e]:!V(e)},!0),r.workspaceID)try{window.localStorage.setItem(ie(r.workspaceID),JSON.stringify(u(j)))}catch{}}function le(e){e.key===ie(r.workspaceID)&&M(j,re(e.newValue),!0)}function H(e){return V(e.key)?e.channels:e.channels.filter(e=>e.id===r.selectedChannelID&&!r.selectedDirectID||(e.unread_count||0)>0)}function ue(e){M(O,``),queueMicrotask(()=>{M(O,e,!0)})}function W(e,t,n,i){if(!e||!t||e===t)return;let a=r.channels.map(e=>e.id),o=a.indexOf(e);if(o<0)return;a.splice(o,1);let s=a.indexOf(t);if(s<0)return;a.splice(s+ +!n,0,e),r.onReorder(a);let c=r.channels.find(t=>t.id===e),l=i.map(e=>e.id).filter(t=>t!==e),u=l.indexOf(t);l.splice(u+ +!n,0,e),c&&ue(`Moved #${vt(c)} to position ${l.indexOf(e)+1} of ${l.length}`)}function de(e,t,n){let r=n.findIndex(t=>t.id===e),i=r+t;r<0||i<0||i>=n.length||W(e,n[i].id,t<0,n)}function fe(e,t,n){M(b,!0),M(x,``),M(l,t,!0),M(m,n,!0),e.dataTransfer?.setData(`text/plain`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}function pe(e,t,n){if(!u(l)||u(l)===t||u(m)!==n)return;e.preventDefault();let r=e.currentTarget;M(h,t,!0),M(g,e.clientY{M(b,!1)},0)}async function ge(e,t){if(!u(b)){if(u(x)===e){M(x,``);return}T=t,M(x,e,!0),await y(),u(S)?.querySelector(`button:not(:disabled)`)?.focus()}}async function _e(e=!1){M(x,``),e&&(await y(),T?.focus())}function ve(e,t,n){de(e,t,n),_e(!0)}function G(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}C(()=>{M(j,ae(r.workspaceID),!0)}),C(()=>{r.expanded||(M(x,``),me(),M(b,!1))});var ye=$r();v(`storage`,E,le);let be;var xe=I(ye),Se=I(xe),Ce=k(Se,2);t(xe);var we=k(xe,2),Te=I(we),Ee=e=>{var t=Qr(),n=k(ce(t),2);f(n,17,()=>u(L),e=>e.id,(e,t)=>{i(e,()=>u(t),()=>u(L),()=>`unsectioned`,()=>!1,()=>!0)});var o=k(n,2);f(o,19,()=>u(R),e=>e.key,(e,t,n)=>{a(e,()=>u(t),()=>`sidebar-channel-section-${u(n)}`,()=>!1)});var s=k(o,2),l=e=>{a(e,()=>({key:c,label:`Archived`,channels:u(te)}),()=>`sidebar-archived-channels`,()=>!0)};P(s,e=>{u(te).length>0&&e(l)});var d=k(s,2),m=e=>{var t=Zr();p(e,t)};P(d,e=>{r.channels.length===0&&e(m)}),p(e,t)},De=e=>{var t=s(),n=ce(t);f(n,17,()=>u(ne),e=>e.id,(e,t)=>{{let n=U(()=>!!u(t).archived_at);i(e,()=>u(t),()=>u(ne),()=>`priority`,()=>u(n),()=>!1)}}),p(e,t)};P(Te,e=>{r.expanded?e(Ee):e(De,-1)}),t(we);var Oe=k(we,2),ke=D(Oe,!0);t(ye),N(()=>{be=w(ye,1,`nav-section`,null,be,{collapsed:!r.expanded}),z(Se,`aria-expanded`,r.expanded),z(we,`hidden`,!r.expanded&&u(ne).length===0),d(ke,u(O))}),n(`click`,Se,function(...e){r.onToggle?.apply(this,e)}),n(`click`,Ce,function(...e){r.onCreateChannel?.apply(this,e)}),p(e,ye),_()}W([`focusout`,`click`,`keydown`]);var ti=l(` `),ni=l(``),ri=l(``),ii=l(`
          `),ai=l(``),oi=l(`
          `),si=l(`
          `);function ci(e,r){o(r,!0);let i=A(``),a=U(()=>r.expanded?r.conversations:r.conversations.filter(e=>e.id===r.selectedDirectID||(e.unread_count||0)>0));function s(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}function c(e){M(i,u(i)===e?``:e,!0)}function l(){M(i,``)}var m=si();let h;var g=I(m),v=I(g),y=k(v,2);t(g);var b=k(g,2),x=I(b);f(x,17,()=>u(a),e=>e.id,(e,a)=>{let o=U(()=>ut(u(a),r.currentUserID)),f=U(()=>u(a).unread_count||0),m=U(()=>u(a).id===r.selectedDirectID);var h=ii();let g;var _=I(h);let v;var y=I(_);{let e=U(()=>u(o)?.id||u(a).id),t=U(()=>u(o)?.display_name),n=U(()=>ft(u(o))?void 0:u(o)?.avatar_url);dt(y,{class:`dm-avatar`,get id(){return u(e)},get name(){return u(t)},get src(){return u(n)},size:22})}var b=k(y,2),x=D(b,!0),S=k(b,2),C=e=>{var t=ti(),n=D(t,!0);N(()=>{z(t,`aria-label`,`${u(f)} unread`),d(n,u(f)>99?`99+`:u(f))}),p(e,t)},T=e=>{var t=ni();p(e,t)};P(S,e=>{u(f)>0&&!u(m)?e(C):e(T,-1)}),t(_);var E=k(_,2),O=k(E,2),A=e=>{var t=ri(),i=D(t);n(`click`,i,e=>{e.preventDefault(),e.stopPropagation(),l(),r.onHideDirect(u(a).id)}),p(e,t)};P(O,e=>{u(i)===u(a).id&&e(A)}),t(h),N((e,t,n)=>{g=w(h,1,`dm-row`,null,g,{active:u(m)}),z(_,`href`,e),v=w(_,1,`nav-item dm`,null,v,{active:u(m),"has-unread":u(f)>0&&!u(m)}),d(x,t),z(E,`aria-label`,n),z(E,`aria-expanded`,u(i)===u(a).id)},[()=>r.hrefForDirect(u(a).id),()=>it(u(a),r.currentUserID),()=>`Direct message actions for ${it(u(a),r.currentUserID)}`]),n(`click`,_,e=>{s(e)&&(e.preventDefault(),r.onSelectDirect(u(a).id))}),n(`click`,E,e=>{e.preventDefault(),e.stopPropagation(),c(u(a).id)}),n(`keydown`,E,e=>{e.key===`Escape`&&l()}),p(e,h)});var S=k(x,2),C=e=>{var t=ai();p(e,t)};P(S,e=>{r.expanded&&r.conversations.length===0&&e(C)});var T=k(S,2),E=e=>{var i=oi(),a=I(i),o=D(a),s=k(a,2);t(i),N(()=>d(o,`Closed ${r.hiddenDirectTitle??``}`)),n(`click`,s,function(...e){r.onUndoHideDirect?.apply(this,e)}),p(e,i)};P(T,e=>{r.expanded&&r.hiddenDirectTitle&&e(E)}),t(b),t(m),N(()=>{h=w(m,1,`nav-section`,null,h,{collapsed:!r.expanded}),z(v,`aria-expanded`,r.expanded),z(b,`hidden`,!r.expanded&&u(a).length===0)}),n(`click`,v,function(...e){r.onToggle?.apply(this,e)}),n(`click`,y,function(...e){r.onCreateDirect?.apply(this,e)}),p(e,m),_()}W([`click`,`keydown`]);var li=l(``),ui=l(`Connecting…`),di=l(`
          `),fi=l(` `),pi=l(``),mi=l(``),hi=l(``);function gi(e,r){o(r,!0);let i=S(r,`showHeader`,3,!0),a=`clickclack:sidebar-sections:v1:`,s={channels:!0,directMessages:!0,people:!0},c=A(B({...s}));function l(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.channels==`boolean`&&typeof t.directMessages==`boolean`&&typeof t.people==`boolean`}function m(e){if(!e)return{...s};try{let t=window.localStorage.getItem(`${a}${e}`);if(!t)return{...s};let n=JSON.parse(t);return l(n)?n:{...s}}catch{return{...s}}}function h(e){if(M(c,{...u(c),[e]:!u(c)[e]},!0),r.workspaceID)try{window.localStorage.setItem(`${a}${r.workspaceID}`,JSON.stringify(u(c)))}catch{}}C(()=>{M(c,m(r.workspaceID),!0)});let g=1e6,y=A(B([]));function b(e,t){return`clickclack:sidebar-channel-order:v1:${t}:${e}`}function x(e){if(!e||e.length>g)return[];try{let t=JSON.parse(e);return Array.isArray(t)&&t.length<=1e4&&t.every(e=>typeof e==`string`&&e.length<=128)?[...new Set(t)]:[]}catch{return[]}}function T(e,t){if(!e||!t)return[];try{return x(window.localStorage.getItem(b(e,t)))}catch{return[]}}function O(e){if(M(y,e,!0),r.workspaceID&&r.currentUser?.id)try{let t=b(r.workspaceID,r.currentUser.id),n=JSON.stringify(e);if(n.length>g){window.localStorage.removeItem(t);return}window.localStorage.setItem(t,n)}catch{}}function j(e){r.workspaceID&&r.currentUser?.id&&e.key===b(r.workspaceID,r.currentUser.id)&&M(y,x(e.newValue),!0)}let F=U(()=>{let e=new Map(r.channels.map(e=>[e.id,e]));return[...u(y).flatMap(t=>{let n=e.get(t);return n?(e.delete(t),[n]):[]}),...e.values()]});C(()=>{M(y,T(r.workspaceID,r.currentUser?.id||``),!0)});function ee(e){return e.button===0&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey&&!e.altKey}var L=hi();v(`storage`,E,j);var R=I(L),ne=e=>{var i=di(),a=I(i),o=I(a),s=e=>{var t=li();N(e=>z(t,`src`,e),[()=>_e(r.workspaceIconURL)]),p(e,t)};P(o,e=>{r.workspaceIconURL&&e(s)});var c=k(o,2),l=I(c),u=I(l),f=D(u,!0);te(2),t(l);var m=k(l,2),h=e=>{var t=ui();p(e,t)};P(m,e=>{r.connected||e(h)}),t(c),t(a);var g=k(a,2),_=I(g),v=I(_),y=D(v);t(_),t(g),t(i),N(()=>{d(f,r.workspaceName||`Pick a workspace`),z(_,`aria-label`,r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(_,`title`,r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(y,`d`,r.sidebarCollapsed?`m9 6 6 6-6 6`:`m15 6-6 6 6 6`)}),n(`click`,a,function(...e){r.onOpenWorkspaceSettings?.apply(this,e)}),n(`click`,_,function(...e){r.onToggleCollapse?.apply(this,e)}),p(e,i)};P(R,e=>{i()&&e(ne)});var re=k(R,2),ie=I(re);ei(ie,{get workspaceID(){return r.workspaceID},get expanded(){return u(c).channels},get channels(){return u(F)},get selectedChannelID(){return r.selectedChannelID},get selectedDirectID(){return r.selectedDirectID},get hrefForChannel(){return r.hrefForChannel},get onSelectChannel(){return r.onSelectChannel},get onCreateChannel(){return r.onCreateChannel},onToggle:()=>h(`channels`),onReorder:O});var ae=k(ie,2);{let e=U(()=>r.currentUser?.id);ci(ae,{get expanded(){return u(c).directMessages},get conversations(){return r.directConversations},get currentUserID(){return u(e)},get selectedDirectID(){return r.selectedDirectID},get hrefForDirect(){return r.hrefForDirect},get onSelectDirect(){return r.onSelectDirect},get onCreateDirect(){return r.onCreateDirect},get onHideDirect(){return r.onHideDirect},get hiddenDirectTitle(){return r.hiddenDirectTitle},get onUndoHideDirect(){return r.onUndoHideDirect},onToggle:()=>h(`directMessages`)})}var oe=k(ae,2);let V;var se=I(oe),ce=D(se),le=k(se,2),H=I(le);f(H,17,()=>r.recentPeople,e=>e.id,(e,i)=>{let a=U(()=>ct(r.directConversations,u(i).id,r.currentUser?.id));var o=fi();let s;var c=I(o);dt(c,{class:`dm-avatar`,get id(){return u(i).id},get name(){return u(i).display_name},get src(){return u(i).avatar_url},size:22});var l=k(c,2),f=D(l,!0);te(2),t(o),N(e=>{z(o,`href`,e),s=w(o,1,`nav-item dm`,null,s,{active:u(a)?.id===r.selectedDirectID||r.selectedProfile?.id===u(i).id}),d(f,u(i).display_name)},[()=>u(a)?r.hrefForDirect(u(a).id):`#`]),n(`click`,o,e=>{if(u(a)){if(!ee(e))return;e.preventDefault(),r.onSelectDirect(u(a).id)}else e.preventDefault(),r.onOpenProfile(u(i))}),p(e,o)});var ue=k(H,2),W=e=>{var t=pi();p(e,t)};P(ue,e=>{r.recentPeople.length===0&&e(W)}),t(le),t(oe),t(re);var de=k(re,2),fe=e=>{var i=mi(),a=I(i);dt(a,{class:`dm-avatar`,get id(){return r.currentUser.id},get name(){return r.currentUser.display_name},get src(){return r.currentUser.avatar_url},size:28,loading:`eager`,fetchPriority:`auto`});var o=k(a,2),s=I(o),c=D(s,!0),l=k(s,2),u=D(l,!0);t(o),te(2),t(i),N((e,t)=>{z(i,`aria-label`,e),d(c,r.currentUser.display_name),d(u,t)},[()=>`Account settings for ${r.currentUser.display_name} ${st(r.currentUser.handle)}`,()=>r.currentUser.handle?st(r.currentUser.handle):r.connected?`Active`:`Reconnecting…`]),n(`click`,i,function(...e){r.onOpenSettings?.apply(this,e)}),n(`contextmenu`,i,e=>{e.preventDefault(),r.onOpenSettings()}),p(e,i)};P(de,e=>{r.currentUser&&e(fe)}),t(L),N(()=>{V=w(oe,1,`nav-section`,null,V,{collapsed:!u(c).people}),z(ce,`aria-expanded`,u(c).people),z(le,`hidden`,!u(c).people)}),n(`click`,ce,()=>h(`people`)),p(e,L),_()}W([`click`,`contextmenu`]);var _i=l(`
          Loading...
          `),vi=l(`
          `),yi=l(`
          `),bi=l(`

          No pinned messages

          Pin important messages to keep them easily accessible.

          `),xi=l(`
          `),Si=l(`
          `),Ci=l(`
          `),wi=l(` `,1),Ti=l(`

          Pinned Messages

          `);function Ei(e,r){o(r,!0);let a=S(r,`loading`,3,!1),s=S(r,`error`,3,``),c=S(r,`topics`,19,()=>[]),l=S(r,`mentionPeople`,19,()=>[]),m=S(r,`maxPins`,3,100),g=A(B(new Set)),v=A(``);async function y(e){if(!u(g).has(e.id)){M(g,new Set(u(g)).add(e.id),!0),M(v,``);try{await r.onUnpin(e)}catch(e){M(v,e instanceof Error?e.message:`Could not unpin message`,!0)}finally{let t=new Set(u(g));t.delete(e.id),M(g,t,!0)}}}var b=Ti(),x=I(b),C=I(x),w=I(C),T=k(I(w),2),E=D(T);t(w);var O=k(w,2),j=D(O);t(C);var F=k(C,2);t(x);var ee=k(x,2),te=I(ee),L=e=>{var t=_i();p(e,t)},R=e=>{var t=vi(),n=D(t,!0);N(()=>d(n,s())),p(e,t)},ne=e=>{var a=wi(),o=ce(a),s=e=>{var t=yi(),n=D(t,!0);N(()=>d(n,u(v))),p(e,t)};P(o,e=>{u(v)&&e(s)});var m=k(o,2),_=e=>{var t=bi();p(e,t)},b=e=>{var a=Ci();f(a,21,()=>r.messages,e=>e.id,(e,a)=>{let o=U(()=>c().find(e=>e.id===u(a).topic_id));var s=Si(),m=I(s),_=I(m),v=D(_,!0),b=k(_,2),x=D(b,!0);t(m);var S=k(m,2);ht(S,{get topic(){return u(o)},get onSelect(){return r.onSelectTopic}});var C=k(S,2);i(C,()=>Y(u(a).body),!0),t(C),h(C,e=>Ue?.(e)),h(C,(e,t)=>Z?.(e,t),()=>({people:l(),attentionUserID:r.mentionAttentionUserID}));var w=k(C,2),T=e=>{var n=xi();f(n,21,()=>u(a).attachments,e=>e.id,(e,t)=>{{let n=U(()=>q(u(t)));X(e,{get upload(){return u(t)},get url(){return u(n)},get onOpenImage(){return r.onOpenImage},get onOpenArtifact(){return r.onOpenArtifact}})}}),t(n),p(e,n)};P(w,e=>{u(a).attachments?.length&&e(T)});var E=k(w,2),O=I(E),A=k(O,2);t(E),t(s),N((e,t)=>{z(s,`data-message-id`,u(a).id),d(v,u(a).author?.display_name||`Unknown`),d(x,e),A.disabled=t},[()=>Xe(u(a).created_at),()=>u(g).has(u(a).id)]),n(`click`,O,()=>r.onOpenThread(u(a))),n(`click`,A,()=>y(u(a))),p(e,s)}),t(a),p(e,a)};P(m,e=>{r.messages.length===0?e(_):e(b,-1)}),p(e,a)};P(te,e=>{a()?e(L):s()?e(R,1):e(ne,-1)}),t(ee),t(b),N(()=>{d(E,`${r.messages.length??``} / ${m()??``} pinned`),d(j,`Shared across this channel, with a maximum of ${m()??``} messages.`)}),n(`click`,F,function(...e){r.onClose?.apply(this,e)}),p(e,b),_()}W([`click`]);var Di=l(` `,1),Oi=l(`
          `),ki=l(`
          We couldn’t search messages

          `),Ai=l(`
          No messages found

          Try another word or phrase.

          `),ji=l(`deleted bot`),Mi=l(` `),Ni=l(` `),Pi=l(` `),Fi=l(` Reply in thread`),Ii=l(` `),Li=l(`
        • `),Ri=l(``),zi=l(``),Bi=l(``),Vi=l(`
            `,1),Hi=l(``);function Ui(e,r){o(r,!0);let i=S(r,`covered`,3,!1),a=S(r,`inert`,3,!1),c=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`}),l=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`}),h=new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`});function g(e,t){let n=Array.from(e),r=[],i=0;for(let e of t){let t=Math.max(i,Math.min(n.length,e.start)),a=Math.max(t,Math.min(n.length,e.end));t>i&&r.push({text:n.slice(i,t).join(``),highlighted:!1}),a>t&&r.push({text:n.slice(t,a).join(``),highlighted:!0}),i=a}return i{var t=m(`Searching messages…`);p(e,t)},L=e=>{var t=Di(),n=ce(t),i=k(n),a=e=>{var t=m();N(()=>d(t,`in ${r.session.scope.label??``}`)),p(e,t)};P(i,e=>{r.session.scope.label&&e(a)}),N(()=>d(n,`${r.session.results.length??``}${r.session.nextCursor?`+`:``} - ${r.session.results.length===1&&!r.session.nextCursor?`result`:`results`}`)),p(e,t)},R=e=>{var t=m(`Search unavailable`);p(e,t)};P(F,e=>{r.session.state===`loading`?e(te):r.session.state===`ready`?e(L,1):r.session.state===`error`&&e(R,2)}),t(M);var ne=k(M,2),re=I(ne),ie=e=>{var t=Oi();p(e,t)},B=e=>{var n=ki(),i=k(I(n),4),a=D(i,!0);t(n),N(()=>d(a,r.session.error)),p(e,n)},ae=e=>{var t=Ai();p(e,t)},oe=e=>{var i=Vi(),a=ce(i);f(a,21,()=>r.session.results,e=>e.id,(e,i)=>{let a=U(()=>r.contextFor(u(i)));var o=Li(),c=I(o);let l;var h=I(c);{let e=U(()=>ft(u(i).author)?void 0:u(i).author.avatar_url);dt(h,{class:`dm-avatar`,get id(){return u(i).author.id},get name(){return u(i).author.display_name},get src(){return u(e)},size:30})}var _=k(h,2),y=I(_),b=I(y),x=D(b,!0),S=k(b,2),C=e=>{var t=ji();p(e,t)},T=U(()=>ft(u(i).author)),E=e=>{var t=Mi(),n=D(t,!0);N(e=>d(n,e),[()=>st(at(u(i).author))]),p(e,t)},O=U(()=>at(u(i).author));P(S,e=>{u(T)?e(C):u(O)&&e(E,1)});var A=k(S,2),j=D(A,!0);t(y);var M=k(y,2);f(M,21,()=>g(u(i).snippet,u(i).highlights),ee,(e,t)=>{var n=s(),r=ce(n),i=e=>{var n=Ni(),r=D(n,!0);N(()=>d(r,u(t).text)),p(e,n)},a=e=>{var n=m();N(()=>d(n,u(t).text)),p(e,n)};P(r,e=>{u(t).highlighted?e(i):e(a,-1)}),p(e,n)}),t(M);var F=k(M,2),te=I(F),L=e=>{var t=Pi(),n=D(t,!0);N(()=>d(n,u(a))),p(e,t)};P(te,e=>{u(a)&&e(L)});var R=k(te,2),ne=e=>{var t=Fi();p(e,t)},re=e=>{var n=Ii(),r=k(I(n));t(n),N(()=>d(r,` ${u(i).reply_count??``} ${u(i).reply_count===1?`reply`:`replies`}`)),p(e,n)};P(R,e=>{u(i).parent_message_id?e(ne):u(i).reply_count>0&&e(re,1)}),t(F),t(_),t(c),t(o),N(e=>{l=w(c,1,`search-result`,null,l,{"is-active":r.session.activeResultID===u(i).id}),z(c,`data-result-id`,u(i).id),d(x,u(i).author.display_name||`Local User`),z(A,`datetime`,u(i).created_at),d(j,e)},[()=>v(u(i).created_at)]),n(`click`,c,()=>r.onOpenResult(u(i))),p(e,o)}),t(a);var o=k(a,2),c=e=>{var i=Ri(),a=I(i),o=D(a,!0),s=k(a,2);t(i),N(()=>d(o,r.session.moreError)),n(`click`,s,function(...e){r.onLoadMore?.apply(this,e)}),p(e,i)},l=e=>{var t=zi(),i=D(t,!0);N(()=>{t.disabled=r.session.loadingMore,d(i,r.session.loadingMore?`Loading more…`:`Load more results`)}),n(`click`,t,function(...e){r.onLoadMore?.apply(this,e)}),p(e,t)},h=e=>{var t=Bi();p(e,t)};P(o,e=>{r.session.moreError?e(c):r.session.nextCursor?e(l,1):e(h,-1)}),p(e,i)};P(re,e=>{r.session.state===`loading`?e(ie):r.session.state===`error`?e(B,1):r.session.results.length===0?e(ae,2):e(oe,-1)}),t(ne),t(y),N(()=>{b=w(y,1,`search-results`,null,b,{covered:i()}),y.inert=a(),z(y,`aria-hidden`,i()?`true`:void 0),d(E,`Search${r.session.scope.label?` in ${r.session.scope.label}`:``}`),d(A,`Results for “${r.session.query??``}”`)}),n(`click`,j,function(...e){r.onClose?.apply(this,e)}),p(e,y),_()}W([`click`]);var Wi=l(``),Gi=l(`
            `),Ki=l(`

            `,1),qi=l(`
            `),Ji=l(``);function Yi(e,r){o(r,!0);let i=S(r,`saving`,3,!1),a=S(r,`error`,3,``),s=A(!1),c=U(()=>!!r.channel.archived_at),l=U(()=>`#${vt(r.channel)}`);function f(){i()||r.onClose()}var m=Ji(),h=I(m),g=k(h,2),v=I(g),y=k(I(v),2);t(v);var b=k(v,2),x=I(b),C=I(x),w=D(C,!0);te(2),t(x);var T=k(x,2),E=e=>{var t=Wi(),n=D(t,!0);N(()=>d(n,a())),p(e,t)};P(T,e=>{a()&&e(E)});var O=k(T,2),j=e=>{var a=Gi(),o=I(a),s=k(o,2),c=D(s,!0);t(a),N(()=>{o.disabled=i(),s.disabled=i(),d(c,i()?`Restoring...`:`Restore channel`)}),n(`click`,o,f),n(`click`,s,()=>r.onArchivedChange(!1)),p(e,a)},F=e=>{var a=Ki(),o=ce(a),c=D(o),f=k(o,2),m=I(f),h=k(m,2),g=D(h,!0);t(f),N(()=>{d(c,`Archive ${u(l)??``}? The channel will remain available to workspace members under Archived.`),m.disabled=i(),h.disabled=i(),d(g,i()?`Archiving...`:`Archive channel`)}),n(`click`,m,()=>M(s,!1)),n(`click`,h,()=>r.onArchivedChange(!0)),p(e,a)},ee=e=>{var r=qi(),a=I(r),o=k(a,2);t(r),N(()=>{a.disabled=i(),o.disabled=i()}),n(`click`,a,f),n(`click`,o,()=>M(s,!0)),p(e,r)};P(O,e=>{u(c)?e(j):u(s)?e(F,1):e(ee,-1)}),t(b),t(g),t(m),N(()=>{h.disabled=i(),y.disabled=i(),d(w,u(l))}),n(`click`,h,f),n(`click`,y,f),p(e,m),_()}W([`click`]);var Xi=l(`

            `),Zi=l(``),Qi=l(`
            `);function $i(e,n){o(n,!0);let r=A(!1),i=A(``),s=A(!1),c=new AbortController;ne(()=>c.abort());async function l(){if(!u(r)){M(r,!0),M(i,``),M(s,!1);try{let e=await Ce({method:`PATCH`,body:JSON.stringify(n.payload()),signal:c.signal});c.signal.throwIfAborted(),n.onUserUpdated(e.user),M(i,`Saved`),n.onSaved?.()}catch(e){if(c.signal.aborted)return;M(i,xe(e,`Could not save ${n.section}`),!0),M(s,!0)}finally{M(r,!1)}}}var f=Qi(),m=I(f),h=I(m);a(h,()=>n.children),t(m);var g=k(m,2),y=I(g),b=e=>{var t=Xi();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-status`,null,n,{"is-error":u(s)}),d(r,u(i))}),p(e,t)},x=e=>{var t=Zi();p(e,t)};P(y,e=>{u(i)?e(b):e(x,-1)});var S=k(y,2),C=D(S,!0);t(g),t(f),N(()=>{m.disabled=u(r),S.disabled=u(r),d(C,u(r)?`Saving...`:`Save ${n.section}`)}),v(`submit`,f,e=>{e.preventDefault(),l()}),p(e,f),_()}var ea=l(`

            Browser notifications are not supported on this device.

            `),ta=l(`

            Browser notifications are blocked by this browser.

            `),na=l(`

            `),ra=l(`

            Show alerts when ClickClack is in the background.

            `);function ia(e,r){o(r,!0);let i=S(r,`isDesktop`,3,!1),a=A(!1),s=A(!1),c=A(`default`),l=A(``),f=A(!1);C(()=>{m(r.user.id,i())});function m(e,t){if(t){M(a,!0),M(c,`granted`),M(s,Pt(e),!0),r.onChanged?.(u(s));return}M(a,typeof Notification<`u`),M(c,u(a)?Notification.permission:`unsupported`,!0);let n=Pt(e);M(s,u(c)===`granted`&&n,!0),n&&u(c)!==`granted`&&Ft(e,!1),r.onChanged?.(u(s))}async function h(e){if(M(l,``),M(f,!1),!e){Ft(r.user.id,!1),M(s,!1),r.onChanged?.(!1),M(l,i()?`Desktop notifications disabled`:`Browser notifications disabled`,!0);return}if(i()){M(s,Ft(r.user.id,!0),!0),r.onChanged?.(u(s)),M(l,u(s)?`Desktop notifications enabled`:`Desktop notification preference could not be saved`,!0),M(f,!u(s));return}if(typeof Notification>`u`){M(a,!1),M(c,`unsupported`),M(s,!1),r.onChanged?.(!1),M(l,`Browser notifications are not supported`),M(f,!0);return}if(M(c,Notification.permission==="default"?await Notification.requestPermission():Notification.permission,!0),M(a,!0),u(c)===`granted`){M(s,Ft(r.user.id,!0),!0),r.onChanged?.(u(s)),M(l,u(s)?`Browser notifications enabled`:`Browser notification preference could not be saved`,!0),M(f,!u(s));return}Ft(r.user.id,!1),M(s,!1),r.onChanged?.(!1),M(l,u(c)===`denied`?`Browser notifications are blocked by this browser`:`Browser notifications were not enabled`,!0),M(f,!0)}var g=ra(),v=I(g),y=I(v),b=D(y,!0),x=k(y,4),T=e=>{var t=ea();p(e,t)},E=e=>{var t=ta();p(e,t)};P(x,e=>{!i()&&!u(a)?e(T):!i()&&u(c)===`denied`&&e(E,1)});var j=k(x,2),F=e=>{var t=na();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-row2__hint`,null,n,{"is-error":u(f)}),d(r,u(l))}),p(e,t)};P(j,e=>{u(l)&&e(F)}),t(v);var ee=k(v,2),te=I(ee);O(te),t(ee),t(g),N(()=>{d(b,i()?`Desktop notifications`:`Browser notifications`),z(te,`aria-label`,i()?`Desktop notifications`:`Browser notifications`),te.disabled=!u(a)||u(c)===`denied`,L(te,u(s))}),n(`change`,te,e=>void h(e.currentTarget.checked)),p(e,g),_()}W([`change`]);var aa=l(``),oa=l(`
            Preview

            Shown in messages, mentions, and your profile card.

            Used in mentions and the quick switcher. Must be unique.

            Paste a public image URL. Your initials show when empty.

            Conversation display

            Keep agent reasoning summaries out of the message timeline.

            Hide tool execution details while keeping ordinary messages visible.

            Choose which side of the timeline shows your messages.

            Choose which side of the timeline shows messages from other people and agents.

            Notifications

            `,1);function sa(e,r){o(r,!0);let i=S(r,`isDesktop`,3,!1),a=A(``),s=A(``),c=A(``),l=U(()=>u(a).trim()||r.user.display_name||`Your name`),f=U(()=>u(s).trim().replace(/^@+/,``)||r.user.handle||``);C(()=>{M(a,r.user.display_name,!0),M(s,r.user.handle??``,!0),M(c,r.user.avatar_url,!0)});function m(){M(c,``)}$i(e,{section:`profile`,get onUserUpdated(){return r.onUserUpdated},get onSaved(){return r.onSaved},payload:()=>({display_name:u(a),handle:u(s).trim().replace(/^@+/,``),avatar_url:u(c)}),children:(e,o)=>{var h=oa(),g=ce(h),_=I(g);dt(_,{get id(){return r.user.id},get name(){return u(l)},get src(){return u(c)},size:52,loading:`eager`,fetchPriority:`auto`});var v=k(_,2),y=I(v),b=D(y,!0),S=k(y,2),C=D(S,!0);t(v),te(2),t(g);var w=k(g,2),T=I(w),E=k(I(T),2),A=I(E);O(A),t(E),t(T);var j=k(T,2),F=k(I(j),2),ee=I(F),R=k(I(ee),2);O(R),t(ee),t(F),t(j);var ne=k(j,2),re=k(I(ne),2),ie=I(re);O(ie);var z=k(ie,2),B=e=>{var t=aa();n(`click`,t,m),p(e,t)};P(z,e=>{u(c)&&e(B)}),t(re),t(ne);var ae=k(ne,4),oe=k(I(ae),2),V=I(oe);O(V),t(oe),t(ae);var H=k(ae,2),ue=k(I(H),2),U=I(ue);O(U),t(ue),t(H);var W=k(H,2),de=k(I(W),2),fe=I(de),pe=I(fe);pe.value=pe.__value=`left`;var me=k(pe);me.value=me.__value=`right`,t(fe);var he;x(fe),t(de),t(W);var ge=k(W,2),_e=k(I(ge),2),ve=I(_e),G=I(ve);G.value=G.__value=`left`;var ye=k(G);ye.value=ye.__value=`right`,t(ve);var be;x(ve),t(_e),t(ge),ia(k(ge,4),{get user(){return r.user},get isDesktop(){return i()},get onChanged(){return r.onBrowserNotificationsChanged}}),t(w),N(()=>{d(b,u(l)),d(C,u(f)?`@${u(f)}`:`No handle set`),L(V,r.hideCommentary),L(U,r.hideToolCalls),he!==(he=r.userAlign)&&(fe.value=(fe.__value=he)??``,le(fe,he)),be!==(be=r.otherAlign)&&(ve.value=(ve.__value=be)??``,le(ve,be))}),se(A,()=>u(a),e=>M(a,e)),se(R,()=>u(s),e=>M(s,e)),se(ie,()=>u(c),e=>M(c,e)),n(`change`,V,e=>r.onHideCommentary(e.currentTarget.checked)),n(`change`,U,e=>r.onHideToolCalls(e.currentTarget.checked)),n(`change`,fe,e=>r.onUserAlign(e.currentTarget.value===`right`?`right`:`left`)),n(`change`,ve,e=>r.onOtherAlign(e.currentTarget.value===`right`?`right`:`left`)),p(e,h)},$$slots:{default:!0}}),_()}W([`click`,`change`]);var ca=l(`

            Desktop

            Mobile push

            Send push notifications to your phone via Pushover.

            Find this in your Pushover dashboard under "Your User Key".

            `);function la(e,n){o(n,!0);let r=S(n,`isDesktop`,3,!1),i=A(!1),a=A(``);C(()=>{M(i,n.user.notification_settings?.pushover_enabled??!1,!0),M(a,n.user.notification_settings?.pushover_user_key??``,!0)}),$i(e,{section:`notifications`,get onUserUpdated(){return n.onUserUpdated},payload:()=>({notification_settings:{pushover_enabled:u(i),pushover_user_key:u(a)}}),children:(e,o)=>{var s=ca(),c=k(I(s),2);ia(c,{get user(){return n.user},get isDesktop(){return r()},get onChanged(){return n.onBrowserNotificationsChanged}});var l=k(c,4),d=k(I(l),2),f=I(d);O(f),t(d),t(l);var m=k(l,2),h=k(I(m),2),g=I(h);O(g),t(h),t(m),t(s),T(f,()=>u(i),e=>M(i,e)),se(g,()=>u(a),e=>M(a,e)),p(e,s)},$$slots:{default:!0}}),_()}var ua=l(`

            Loading…

            `),da=l(`

            `),fa=l(`
            You don't own any bots yet. Open a workspace's Bots & agents page to mint one.
            `),pa=l(``),ma=l(`
          • `),ha=l(`

              `),ga=l(`
              `),_a=l(`

              Account

              My bots

              Bots you own across your workspaces. Tokens live with the workspace where the bot was created.

              `,1);function va(e,r){o(r,!0);let i=A(B([])),a=A(`loading`),s=A(``);ae(()=>{c()});async function c(){M(a,`loading`);try{M(i,await St(),!0),M(a,`ready`)}catch(e){M(a,`error`),M(s,Ct(e),!0)}}function l(e){r.onClose(),fe(Fe(e.workspace.route_id||e.workspace.id,`bots`))}function h(e){return e.startsWith(`@`)?e:`@${e}`}function g(e){let t=e.trim().split(/\s+/).filter(Boolean);return t.length>=2?(t[0][0]+t[1][0]).toUpperCase():e.slice(0,2).toUpperCase()}let v=U(()=>{let e=new Map;for(let t of u(i)){let n=t.workspace.id,r=e.get(n);r?r.entries.push(t):e.set(n,{workspace:t.workspace,entries:[t]})}return[...e.values()].sort((e,t)=>e.workspace.name.localeCompare(t.workspace.name))});var y=_a(),b=k(ce(y),2),x=e=>{var t=ua();p(e,t)},S=e=>{var t=da(),n=D(t,!0);N(()=>d(n,u(s))),p(e,t)},C=e=>{var t=fa();p(e,t)},w=e=>{var r=ga();f(r,21,()=>u(v),e=>e.workspace.id,(e,r)=>{var i=ha(),a=I(i),o=I(a),s=D(o,!0),c=k(o,2);t(a);var _=k(a,2);f(_,21,()=>u(r).entries,e=>e.bot.id,(e,r)=>{var i=ma(),a=I(i),o=I(a),s=e=>{var t=pa();N(()=>z(t,`src`,u(r).bot.avatar_url)),p(e,t)},c=e=>{var t=m();N(e=>d(t,e),[()=>g(u(r).bot.display_name||u(r).bot.handle||`?`)]),p(e,t)};P(o,e=>{u(r).bot.avatar_url?e(s):e(c,-1)}),t(a);var f=k(a,2),_=I(f),v=D(_,!0),y=k(_,2),b=I(y),x=D(b,!0),S=k(b,4),C=D(S);t(y),t(f);var w=k(f,2);t(i),N(e=>{d(v,u(r).bot.display_name||u(r).bot.handle),d(x,e),d(C,`${u(r).active_token_count??``} - active ${u(r).active_token_count===1?`token`:`tokens`}`)},[()=>h(u(r).bot.handle)]),n(`click`,w,()=>l(u(r))),p(e,i)}),t(_),t(i),N(()=>d(s,u(r).workspace.name)),n(`click`,c,()=>l(u(r).entries[0])),p(e,i)}),t(r),p(e,r)};P(b,e=>{u(a)===`loading`?e(x):u(a)===`error`?e(S,1):u(i).length===0?e(C,2):e(w,-1)}),p(e,y),_()}W([`click`]);function ya(e,t){return t.includes(`password`)&&e.password_enrolled===!0}function ba(e,t,n){return e?t?[...t].length<8?`New password must be at least 8 characters.`:t===n?``:`New passwords do not match.`:`Enter a new password.`:`Enter your current password.`}var xa=l(`

              `),Sa=l(``),Ca=l(`
              Change password

              Pick a new password for signing in. Your other devices are signed out.

              The password you signed in with.

              At least 8 characters. Longer is better than clever.

              Type it once more so a typo cannot lock you out.

              `);function wa(e,n){o(n,!0);let r=A(``),i=A(``),a=A(``),s=A(``),c=A(!1),l=A(!1);async function f(){if(u(l))return;let e=ba(u(r),u(i),u(a));if(e){M(s,e,!0),M(c,!0);return}M(l,!0),M(s,``),M(c,!1);try{await G(`/api/auth/password/change`,{method:`POST`,body:JSON.stringify({current_password:u(r),new_password:u(i)})}),M(r,``),M(i,``),M(a,``),M(s,`Password updated. Your other devices were signed out.`)}catch(e){M(s,xe(e,`Could not change your password`),!0),M(c,!0)}finally{M(l,!1)}}var m=Ca(),h=k(I(m),2),g=I(h),y=k(I(g),2),b=I(y);O(b),t(y),t(g);var x=k(g,2),S=k(I(x),2),C=I(S);O(C),t(S),t(x);var T=k(x,2),E=k(I(T),2),j=I(E);O(j),t(E),t(T),t(h);var F=k(h,2),ee=I(F),te=e=>{var t=xa();let n;var r=D(t,!0);N(()=>{n=w(t,1,`settings-status`,null,n,{"is-error":u(c)}),d(r,u(s))}),p(e,t)},L=e=>{var t=Sa();p(e,t)};P(ee,e=>{u(s)?e(te):e(L,-1)});var R=k(ee,2),ne=D(R,!0);t(F),t(m),N(()=>{R.disabled=u(l),d(ne,u(l)?`Updating...`:`Update password`)}),v(`submit`,m,e=>{e.preventDefault(),f()}),se(b,()=>u(r),e=>M(r,e)),se(C,()=>u(i),e=>M(i,e)),se(j,()=>u(a),e=>M(a,e)),p(e,m),_()}var Ta=l(``),Ea=l(``),Da=l(`

              Account

              Appearance

              Changes apply instantly and follow your account on every device.

              Live preview — updates as you pick

              Color mode System follows your OS setting
              Board theme Palette for boards, accents, and highlights
              Message layout How agent activity attaches to replies
              Density Compact fits more messages on screen
              `,1);function Oa(e,r){o(r,!0);let i=U(()=>r.user.display_name||r.user.handle||`You`),a=U(()=>(u(i)[0]??`Y`).toUpperCase()),s=A(B(Se())),c=A(B(Me())),l=A(B(Pe())),m=A(B(De()));C(()=>{r.user.appearance_preferences,M(s,Se(),!0),M(c,Me(),!0),M(l,Pe(),!0),M(m,De(),!0)});function h(e){M(s,e,!0),Ae(e)}function g(e){M(c,e,!0),we(e)}function v(e){M(l,e,!0),Te(e)}function y(e){M(m,e,!0),Oe(e)}function b(e,t,n,r){let i;switch(e.key){case`ArrowRight`:case`ArrowDown`:i=(n+1)%t;break;case`ArrowLeft`:case`ArrowUp`:i=(n-1+t)%t;break;case`Home`:i=0;break;case`End`:i=t-1;break;default:return}e.preventDefault(),r(i),(e.currentTarget.parentElement?.querySelectorAll(`[role="radio"]`))?.item(i).focus()}var x=Da(),S=k(ce(x),2),T=I(S),E=k(I(T),2),O=I(E),j=I(O),P=D(j,!0),F=k(j,2),ee=I(F),L=I(ee),R=D(L,!0);te(2),t(ee),te(2),t(F),t(O);var ne=k(O,4),re=I(ne),ie=D(re,!0),ae=k(re,2),oe=I(ae),V=I(oe),se=D(V,!0);te(2),t(oe),te(2),t(ae),t(ne),t(E),t(T);var le=k(T,4),H=I(le),ue=k(I(H),2);f(ue,23,()=>ke,e=>e.id,(e,t,r)=>{var i=Ta();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(s)===u(t).id}),z(i,`aria-checked`,u(s)===u(t).id),z(i,`tabindex`,u(s)===u(t).id?0:-1),d(o,u(t).label)}),n(`click`,i,()=>h(u(t).id)),n(`keydown`,i,e=>b(e,ke.length,u(r),e=>h(ke[e].id))),p(e,i)}),t(ue),t(H);var W=k(H,2),de=k(I(W),2),fe=I(de),pe=D(fe,!0),me=k(fe,2);f(me,23,()=>Ne,e=>e.id,(e,t,r)=>{var i=Ea();let a;N(()=>{a=w(i,1,`board-chip`,null,a,{"is-active":u(c)===u(t).id}),z(i,`aria-checked`,u(c)===u(t).id),z(i,`tabindex`,u(c)===u(t).id?0:-1),z(i,`data-board`,u(t).id),z(i,`aria-label`,`${u(t).label} — ${u(t).blurb}`),z(i,`title`,`${u(t).label} — ${u(t).blurb}`)}),n(`click`,i,()=>g(u(t).id)),n(`keydown`,i,e=>b(e,Ne.length,u(r),e=>g(Ne[e].id))),p(e,i)}),t(me),t(de),t(W);var he=k(W,2),ge=k(I(he),2);f(ge,23,()=>Ee,e=>e.id,(e,t,r)=>{var i=Ta();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(l)===u(t).id}),z(i,`aria-checked`,u(l)===u(t).id),z(i,`tabindex`,u(l)===u(t).id?0:-1),z(i,`title`,u(t).blurb),d(o,u(t).label)}),n(`click`,i,()=>v(u(t).id)),n(`keydown`,i,e=>b(e,Ee.length,u(r),e=>v(Ee[e].id))),p(e,i)}),t(ge),t(he);var _e=k(he,2),ve=k(I(_e),2);f(ve,23,()=>je,e=>e.id,(e,t,r)=>{var i=Ta();let a;var o=D(i,!0);N(()=>{a=w(i,1,`appearance-seg__btn`,null,a,{"is-active":u(m)===u(t).id}),z(i,`aria-checked`,u(m)===u(t).id),z(i,`tabindex`,u(m)===u(t).id?0:-1),z(i,`title`,u(t).blurb),d(o,u(t).label)}),n(`click`,i,()=>y(u(t).id)),n(`keydown`,i,e=>b(e,je.length,u(r),e=>y(je[e].id))),p(e,i)}),t(ve),t(_e),t(le),t(S),N(e=>{z(T,`data-layout`,u(l)),z(T,`data-density`,u(m)),d(P,u(a)),d(R,u(i)),d(ie,u(a)),d(se,u(i)),d(pe,e)},[()=>Ne.find(e=>e.id===u(c))?.label]),p(e,x),_()}W([`click`,`keydown`]);var ka=l(` `,1),Aa=l(` `,1),$=l(` `,1),ja=l(` `,1),Ma=l(`
            • `),Na=l(`
            • `),Pa=l(`

                `),Fa=l(`

                Loading...

                `),Ia=l(`

                `),La=l(`

                `),Ra=l(`

                Account

                Profile settings

                How you appear across ClickClack.

                Sign out

                End this session on this device.

                `,1),za=l(`

                Account

                Notifications

                Decide when and how ClickClack should reach you.

                `,1),Ba=l(``);function Va(e,r){o(r,!0);let i=S(r,`workspaces`,19,()=>[]),a=S(r,`initialSection`,3,Ie),c=S(r,`isDesktop`,3,!1),l=A(!1),m=A(``),h=A(B(Ie)),g=U(()=>ya(r.user,ge())),y=A(`loading`),b=A(``);C(()=>{M(h,a(),!0)}),C(()=>{u(h);let e=new AbortController;return T(e.signal),()=>e.abort()});async function x(){if(!u(l)){M(l,!0),M(m,``);try{await G(`/api/auth/logout`,{method:`POST`,body:JSON.stringify({})}),window.location.reload()}catch(e){M(m,xe(e,`Could not sign out. Try again.`),!0),M(l,!1)}}}async function T(e){M(y,`loading`),M(b,``);try{let t=await Ce({signal:e});e.throwIfAborted(),r.onUserUpdated(t.user),M(y,`ready`)}catch(t){if(e.aborted)return;if(t instanceof be&&(t.status===401||t.status===403)){M(y,`error`),M(b,`Sign in to manage your account`);return}M(y,`error`),M(b,t instanceof Error?t.message:`Could not load your account`,!0)}}function O(e){e.target===e.currentTarget&&r.onClose()}function j(e){if(e.key!==`Escape`)return;let t=e.target;(!t||t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&!t.isContentEditable)&&(e.preventDefault(),r.onClose())}function F(e,t){r.onClose(),fe(Fe(e.route_id||e.id,t))}var ee=Ba();v(`keydown`,E,j);var te=I(ee),L=I(te),R=k(L,2),ne=I(R),re=k(I(ne),2);f(re,21,()=>Le,e=>e.id,(e,i)=>{var a=Ma(),o=I(a);let s;var c=I(o),l=e=>{var t=ka(),n=ce(t);dt(n,{class:`settings-modal__rail-avatar`,get id(){return r.user.id},get name(){return r.user.display_name},get src(){return r.user.avatar_url},size:18});var a=k(n,2),o=D(a,!0);N(()=>d(o,r.user.display_name||u(i).label)),p(e,t)},f=e=>{var t=Aa(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)},m=e=>{var t=$(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)},g=e=>{var t=ja(),n=k(ce(t),2),r=D(n,!0);N(()=>d(r,u(i).label)),p(e,t)};P(c,e=>{u(i).id===`profile`?e(l):u(i).id===`appearance`?e(f,1):u(i).id===`notifications`?e(m,2):u(i).id===`bots`&&e(g,3)}),t(o),t(a),N(()=>{s=w(o,1,`settings-modal__rail-item`,null,s,{"is-active":u(h)===u(i).id}),z(o,`aria-current`,u(h)===u(i).id?`page`:void 0)}),n(`click`,o,()=>M(h,u(i).id,!0)),p(e,a)}),t(re),t(ne);var ie=k(ne,2);f(ie,17,i,e=>e.id,(e,r)=>{var i=Pa(),a=I(i),o=D(a),c=k(a,2);f(c,21,()=>K,e=>e.id,(e,i)=>{var a=s(),o=ce(a),c=e=>{var a=Na(),o=I(a),s=k(I(o),2),c=D(s,!0);t(o),t(a),N(()=>d(c,u(i).label)),n(`click`,o,()=>F(u(r),u(i).slug)),p(e,a)},l=U(()=>!u(i).managersOnly||Re(u(r).role));P(o,e=>{u(l)&&e(c)}),p(e,a)}),t(c),t(i),N(()=>{z(a,`title`,u(r).name),d(o,`Workspace · ${u(r).name??``}`)}),p(e,i)}),t(R);var ae=k(R,2),oe=I(ae),V=e=>{var t=Fa();p(e,t)},se=e=>{var t=Ia(),n=D(t,!0);N(()=>d(n,u(b))),p(e,t)},le=e=>{var i=Ra(),a=k(ce(i),2);sa(a,{get user(){return r.user},get hideCommentary(){return r.hideCommentary},get hideToolCalls(){return r.hideToolCalls},get userAlign(){return r.userAlign},get otherAlign(){return r.otherAlign},get isDesktop(){return c()},get onUserUpdated(){return r.onUserUpdated},get onSaved(){return r.onClose},get onHideCommentary(){return r.onHideCommentary},get onHideToolCalls(){return r.onHideToolCalls},get onUserAlign(){return r.onUserAlign},get onOtherAlign(){return r.onOtherAlign},get onBrowserNotificationsChanged(){return r.onBrowserNotificationsChanged}});var o=k(a,2),s=e=>{wa(e,{})};P(o,e=>{u(g)&&e(s)});var f=k(o,2),h=I(f),_=k(I(h),4),v=e=>{var t=La(),n=D(t,!0);N(()=>d(n,u(m))),p(e,t)};P(_,e=>{u(m)&&e(v)}),t(h);var y=k(h,2),b=I(y),S=D(b,!0);t(y),t(f),N(()=>{b.disabled=u(l),d(S,u(l)?`Signing out...`:`Sign out`)}),n(`click`,b,x),p(e,i)},H=e=>{Oa(e,{get user(){return r.user}})},ue=e=>{var t=za();la(k(ce(t),2),{get user(){return r.user},get isDesktop(){return c()},get onUserUpdated(){return r.onUserUpdated},get onBrowserNotificationsChanged(){return r.onBrowserNotificationsChanged}}),p(e,t)},W=e=>{va(e,{get onClose(){return r.onClose}})};P(oe,e=>{u(y)===`loading`?e(V):u(y)===`error`?e(se,1):u(h)===`profile`?e(le,2):u(h)===`appearance`?e(H,3):u(h)===`notifications`?e(ue,4):u(h)===`bots`&&e(W,5)}),t(ae),t(te),t(ee),n(`click`,ee,O),n(`click`,L,function(...e){r.onClose?.apply(this,e)}),p(e,ee),_()}W([`click`]);var Ha=l(`
                No thread open Hover any message and tap the bubble to keep side conversations tidy.
                `);function Ua(e){var t=Ha();p(e,t)}var Wa=l(``),Ga=l(`

                `,1),Ka=l(``),qa=l(``),Ja=l(``),Ya=l(``),Xa=l(``),Za=l(``),Qa=l(``),$a=l(`
                `),eo=l(`Connecting…`),to=l(`
                `);function no(e,r){o(r,!0);function i(e){return e===`muted`?`Channel muted - click to change`:e===`mentions`?`Notifications for @mentions only - click to change`:`All notifications enabled - click to change`}let a=S(r,`channelNotifPreference`,3,void 0),s=S(r,`channelNotifSaving`,3,!1),c=S(r,`channelSettingsAvailable`,3,!1),l=S(r,`pinsAvailable`,3,!1),f=S(r,`pinnedOpen`,3,!1),m=S(r,`onOpenChannelSettings`,3,()=>{}),h=S(r,`onToggleChannelNotifications`,3,()=>{}),g=U(()=>_t(r.externalURL));var y=to(),b=I(y),x=I(b),C=I(x),T=I(C),E=k(I(T),2);t(T),t(C);var A=k(C,2),M=D(A,!0),F=k(A,2),ee=e=>{var t=Ga(),n=k(ce(t),2),i=D(n,!0),a=k(n,2),o=e=>{var t=Wa();N(()=>z(t,`href`,u(g))),p(e,t)};P(a,e=>{u(g)&&e(o)}),N(()=>{z(n,`title`,r.channelTitle),d(i,r.channelTitle)}),p(e,t)};P(F,e=>{r.channelTitle&&e(ee)}),t(x);var L=k(x,2),R=k(I(L),2);O(R);var ne=k(R,2),re=e=>{var t=Ka();n(`click`,t,function(...e){r.onResetSearch?.apply(this,e)}),p(e,t)};P(ne,e=>{r.searchQuery&&e(re)}),te(2),t(L);var ie=k(L,2),B=e=>{var o=$a(),u=I(o),d=e=>{var r=Xa(),o=I(r),c=e=>{var t=qa();p(e,t)},l=e=>{var t=Ja();p(e,t)},u=e=>{var t=Ya();p(e,t)};P(o,e=>{a()===`muted`?e(c):a()===`mentions`?e(l,1):e(u,-1)}),t(r),N((e,t)=>{z(r,`title`,e),z(r,`aria-label`,t),z(r,`aria-busy`,s()),r.disabled=s()},[()=>i(a()),()=>i(a())]),n(`click`,r,function(...e){h()?.apply(this,e)}),p(e,r)};P(u,e=>{a()&&e(d)});var g=k(u,2),_=e=>{var t=Za();let i;N(()=>{z(t,`title`,f()?`Close pinned items`:`Pinned items`),z(t,`aria-label`,f()?`Close pinned items`:`Pinned items`),i=w(t,1,``,null,i,{active:f()})}),n(`click`,t,function(...e){r.onPinnedItems?.apply(this,e)}),p(e,t)};P(g,e=>{l()&&e(_)});var v=k(g,2),y=e=>{var t=Qa();n(`click`,t,function(...e){m()?.apply(this,e)}),p(e,t)};P(v,e=>{c()&&e(y)}),t(o),p(e,o)};P(ie,e=>{(a()||l()||c())&&e(B)});var ae=k(ie,2),oe=e=>{var t=eo();p(e,t)};P(ae,e=>{r.connected||e(oe)}),t(b),t(y),N(()=>{z(y,`data-platform`,r.platform),z(C,`aria-label`,r.mobileNavigation?r.mobileNavOpen?`Close navigation`:`Open navigation`:r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(C,`title`,r.mobileNavigation?r.mobileNavOpen?`Close navigation`:`Open navigation`:r.sidebarCollapsed?`Expand sidebar`:`Collapse sidebar`),z(E,`d`,r.mobileNavigation?r.mobileNavOpen?`m15 9-3 3 3 3`:`m9 9 3 3-3 3`:r.sidebarCollapsed?`m13 9 3 3-3 3`:`m16 9-3 3 3 3`),d(M,r.workspaceName||`ClickClack`),j(R,r.searchQuery)}),n(`click`,C,function(...e){r.onToggleSidebar?.apply(this,e)}),n(`click`,A,function(...e){r.onOpenWorkspaceSettings?.apply(this,e)}),v(`submit`,L,e=>{e.preventDefault(),r.onSearch()}),n(`input`,R,e=>r.onSearchQuery(e.currentTarget.value)),p(e,y),_()}W([`click`,`input`]);var ro=l(`

                `),io=l(``),ao=l(``),oo=l(``),so=l(``),co=l(`

                `,1),lo=l(`

                ClickClack

                `),uo=l(``),fo=l(``),po=l(``),mo=l(``),ho=l(`

                `);function go(e,r){o(r,!0);function i(e){return e===`muted`?`Channel muted - click to change`:e===`mentions`?`Notifications for @mentions only - click to change`:`All notifications enabled - click to change`}let a=S(r,`pinnedOpen`,3,!1),s=S(r,`channelNotifPreference`,3,void 0),c=S(r,`channelNotifSaving`,3,!1),l=S(r,`channelSettingsAvailable`,3,!1),f=S(r,`onOpenChannelSettings`,3,()=>{}),m=S(r,`onToggleChannelNotifications`,3,()=>{}),h=U(()=>r.selectedDirect?void 0:_t(r.selectedChannel?.external_url));var g=ho(),y=I(g),b=I(y),x=e=>{var t=ro(),n=D(t,!0);N(e=>d(n,e),[()=>`@${it(r.selectedDirect,r.currentUserID)}`]),p(e,t)},C=e=>{var a=co(),o=ce(a),l=D(o,!0),u=k(o,2),f=e=>{var r=so(),a=I(r),o=e=>{var t=io();p(e,t)},l=e=>{var t=ao();p(e,t)},u=e=>{var t=oo();p(e,t)};P(a,e=>{s()===`muted`?e(o):s()===`mentions`?e(l,1):e(u,-1)}),t(r),N((e,t)=>{z(r,`title`,e),z(r,`aria-label`,t),z(r,`aria-busy`,c()),r.disabled=c()},[()=>i(s()),()=>i(s())]),n(`click`,r,function(...e){m()?.apply(this,e)}),p(e,r)};P(u,e=>{s()&&e(f)}),N(e=>d(l,e),[()=>`#${vt(r.selectedChannel)}`]),p(e,a)},T=e=>{var t=lo();p(e,t)};P(b,e=>{r.selectedDirect?e(x):r.selectedChannel?e(C,1):e(T,-1)});var E=k(b,4),A=D(E,!0);t(y);var M=k(y,2),F=k(I(M),2);O(F);var ee=k(F,2),L=e=>{var t=uo();n(`click`,t,function(...e){r.onResetSearch?.apply(this,e)}),p(e,t)};P(ee,e=>{r.searchQuery&&e(L)}),te(2),t(M);var R=k(M,2),ne=I(R),re=e=>{var t=fo();N(()=>z(t,`href`,u(h))),p(e,t)};P(ne,e=>{u(h)&&e(re)});var ie=k(ne,2);let B;var ae=k(ie,2),oe=e=>{var t=po();let i;N(()=>{z(t,`title`,a()?`Close pinned items`:`Pinned items`),z(t,`aria-label`,a()?`Close pinned items`:`Pinned items`),i=w(t,1,``,null,i,{active:a()})}),n(`click`,t,function(...e){r.onPinnedItems?.apply(this,e)}),p(e,t)};P(ae,e=>{r.selectedChannel&&e(oe)});var V=k(ae,2),se=e=>{var t=mo();n(`click`,t,function(...e){f()?.apply(this,e)}),p(e,t)};P(V,e=>{r.selectedChannel&&l()&&e(se)}),t(R),t(g),N(()=>{d(A,r.workspaceName||`no workspace`),j(F,r.searchQuery),z(ie,`title`,r.threadOpen?`Close thread`:`Open a message thread`),z(ie,`aria-label`,r.threadOpen?`Close thread`:`Open a message thread`),B=w(ie,1,``,null,B,{active:r.threadOpen})}),v(`submit`,M,e=>{e.preventDefault(),r.onSearch()}),n(`input`,F,e=>r.onSearchQuery(e.currentTarget.value)),n(`click`,ie,function(...e){r.onToggleThread?.apply(this,e)}),p(e,g),_()}W([`click`,`input`]);function _o(e,t,n){let r=t.find(t=>t.bot.id===e)?.bot??n(e);return r?.display_name?.trim()||(r?.handle?`@${r.handle}`:``)}function vo(e,t,n){let r=new Set,i=[];for(let a of e){if(!a.lines.some(e=>!e.finalized)||a.userId&&r.has(a.userId))continue;a.userId&&r.add(a.userId);let e=_o(a.userId,t,n);e&&i.push(e)}return i}async function yo(e){return(await G(`/api/workspaces/${e}/bot-commands`)).bot_commands??[]}function bo(e){let t=e.trim().toLowerCase();return t?t.startsWith(`/`)?t:`/${t}`:``}function xo(e){let t=/^(\/\S+)\s*([\s\S]*)$/.exec(e);return t?{command:bo(t[1]),text:t[2].trim()}:null}function So(e,t){return e.find(e=>!e.revoked_at&&bo(e.command)===t)}async function Co(e,t,n){let r=new URLSearchParams;r.set(`command`,t),r.set(`text`,n);let i=await fetch(he(`/api/hooks/slash/${e}`),ye({method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/x-www-form-urlencoded`,"X-ClickClack-CSRF":`1`},body:r.toString()})),a=await i.text();if(!i.ok)throw new be(i.status,a);let o=a?JSON.parse(a):{};return{response_type:o.response_type||`in_channel`,text:(o.text||``).trim()}}var wo=e({default:()=>zo}),To=l(``),Eo=l(``),Do=l(``),Oo=l(`
                Showing topic
                `),ko=l(`

                `),Ao=l(`
                `),jo=l(``),Mo=l(``),No=l(``),Po=l(` `,1),Fo=l(`

                Loading thread…

                `),Io=l(`
                Thread
                `,1),Lo=l(``),Ro=l(`
                `,1);function zo(e,i){o(i,!1);let a=()=>g(nt,`$threadView`,l),[l,h]=ue(),C=R(),T=R(),O=R(),A=R(),j=R(),F=R(),ee=R(),te=R(),L=R(),B=R(),se=R(),U=R(),W=R(),me=R(),he=R(),ge=R(),ye=R(),Se=R(),we=R(),Te=R(),Ee=R(),De=R(),Oe=R(),ke=R(),Ae=Date.now(),je=It?.integratedTitleBar===!0,Me=R(Et),Ne=S(i,`routeWorkspaceID`,8,``),Pe=S(i,`routeTargetID`,8,``),K=R(null),Ie=new et(()=>u(K)?.id||``),Le=new Be(Jo),Re=R([]),q=R([]),Ue=R([]),Ge=R(null),qe=new Map,Je=new Map,Ye=R(!1),J=R([]),Xe=R([]),Y=R(``),X=R(``),Z=R(``),Q=new bt(()=>`${u(Y)}:${$()}`,es),nt=de(()=>({root:Q.root,selection:Q.selection,replies:Q.replies,state:Q.state,draft:Q.draft,error:Q.error})),at=R(``),st=R(``),ct=0,lt=``,ut=new Map,dt=R(null),ft=R(!1),ht=R([]),_t=R(!1),St=R(``),Ct=R(new Set),Dt=0,Ot=R([]),kt=R([]),Mt=R([]),Nt=R([]),Rt=R(null),zt=R([]),Bt=R(``),Vt=R(null),Ht=R(null),Ut=R(``),Wt=R(null),Gt=R(null),Kt=R(null),qt=new Set,Yt=R(``),Xt=R(``),Zt=R(``),Qt=R(``),$t=R(null),en=R(``),tn=R(``),on=R(``),sn=0,cn=R(``),un=R(null),dn=R(!1),fn=0,pn=0,mn=R(null),gn=R(``),_n=null,vn=R(!1),yn=R(`profile`),bn=R(!1),xn=R(!1),Cn=R(``),Tn=R(!1),En=R(!1),Dn=R(!1),On=R(!1),kn=R(!1),An=R(`left`),jn=R(`left`),Mn=R(!1),Nn=R(!1),Pn=R(!1),Fn=R(``),In=``,Ln=``,Rn=null,zn=R(null),Bn=new Map,Vn=R(new Map),Hn=new pt(()=>[u(K)?.id,u(Y),$()].join(`:`)),Un=new Set,Wn=R(`idle`),Gn=`idle`,Kn=!1,qn=!1,Jn=R(!1),Yn=R(!1),Xn=R(!1),Zn=R(!1),Qn=new Map,$n=0,er=R(``),tr=R(void 0),nr=R(``),rr=R(!0),ir=R(!1),or=R(!1),sr=R(!1),cr=R(!1),lr=R(null),ur=R(null),dr=R(null),fr=R(null),pr=R(`message`),hr=R([]),gr,yr=R([]),xr,Sr=R(Date.now()),Cr,Tr=``,Er=0,Or=0,kr=0,jr=0,Mr=0,Nr=0,Pr=0,Fr=0,Lr=null,Rr=R(``),zr=0,Br=0,Vr=0,Hr=0,Ur=0,Gr=R(null),Kr,qr=R(new Set),Jr=R(null),Yr=R(``);function Xr(e){e!==lt&&(lt=e,M(at,``),Zr(``))}function Zr(e){e!==u(st)&&(M(st,e),ct+=1)}function Qr(){return`${u(Y)}:${$()}:${u(st)}:${ct}:${Or}`}function $r(e,t){return t?e.filter(e=>!e.archived_at&&(!e.channel_id||e.channel_id===t)):[]}pe(()=>{It?.setActiveRoute(`${window.location.pathname}${window.location.search}${window.location.hash}`)}),ae(()=>{ti(),jt(e=>G(e)).then(e=>{M(Me,e)}),Cr=window.setInterval(()=>{M(Sr,Date.now())},3e4),pi(),oi();let e=window.matchMedia(`(max-width: 820px)`),t=()=>{M(sr,!1),M(cr,e.matches)};t();let n=It?.onNavigate(e=>{fe(e,{keepFocus:!0,noScroll:!0})}),r=It?.onQuickCompose(()=>ei());return e.addEventListener(`change`,t),()=>{e.removeEventListener(`change`,t),n?.(),r?.()}});function ei(){y().then(()=>{(u(pr)===`thread`?u(fr):u(dr))?.focus()})}function ti(){(e=>{M(On,e.hideCommentary),M(kn,e.hideToolCalls),M(An,e.userAlign),M(jn,e.otherAlign)})(nn()),an(u(An),u(jn))}function ni(e){M(An,e),an(u(An),u(jn)),rn(`userAlign`,e)}function ri(e){M(jn,e),an(u(An),u(jn)),rn(`otherAlign`,e)}function ii(e){M(On,e),rn(`hideCommentary`,e)}function ai(e){M(kn,e),rn(`hideToolCalls`,e)}ne(()=>{Ss(),Q.close(),Er+=1,Or+=1,Hn.clear(),Fr+=1,Lr?.abort(),Rn?.close(),Rn=null,M(Pn,!1),wn(),gr&&window.clearInterval(gr),xr&&window.clearInterval(xr),Cr&&window.clearInterval(Cr),Kr&&clearTimeout(Kr),Zs(!1,null)});async function oi(){try{let e=await Ce();M(K,e.user),pi(),await mi(),M(Mn,!0)}catch(e){si(e)}}function si(e){if(e instanceof be&&(e.status===401||e.status===403)){Rn?.close(),Rn=null,M(vn,!1),M(Nn,!0),M(Mn,!1);return}M(Rt,{kind:`error`,text:xe(e,`Could not load ClickClack`)})}function ci(){u(K)&&(M(yn,`profile`),M(vn,!0))}function li(){let e=u(T)?.route_id||u(Y)||Ne();e&&fe(Fe(e))}function ui(){u(ee)&&(M(Cn,``),M(bn,!0))}async function di(e){let t=u(F);if(t&&u(ee)&&!u(xn)){M(xn,!0),M(Cn,``);try{let n=await G(`/api/channels/${t.id}`,{method:`PATCH`,body:JSON.stringify({archived:e})});M(q,u(q).map(e=>e.id===n.channel.id?n.channel:e)),M(bn,!1)}catch(t){M(Cn,xe(t,e?`Could not archive channel`:`Could not restore channel`))}finally{M(xn,!1)}}}function fi(e){M(K,e),fo(e),Q.updateAuthor(e)}function pi(){if(It){M(Dn,Pt(u(K)?.id||``));return}let e=Pt(u(K)?.id||``);M(Dn,typeof Notification<`u`&&Notification.permission===`granted`&&e),e&&!u(Dn)&&Ft(u(K)?.id||``,!1)}async function mi(){let e=++kr,t=await G(`/api/workspaces`);e===kr&&M(Re,t.workspaces)}function hi(e=``,t=``){return`${e||``}/${t||``}`}function _i(e=u(Y),t=``){let n=bi(e);if(!n)return`/app`;let r=`/app/${encodeURIComponent(n)}`,i=xi(t);return i?`${r}/${encodeURIComponent(i)}`:r}async function vi(e){if(!e.channel_id||e.parent_message_id)throw Error(`Only channel roots have links`);let t=await G(`/api/messages/${e.id}/route`,{method:`POST`});if(!t.message.route_id)throw Error(`Message route was not allocated`);uo({id:t.message.id,route_id:t.message.route_id});let n=bi(t.message.workspace_id);if(!n)throw Error(`Workspace route is unavailable`);let r=`/app/${encodeURIComponent(n)}/${encodeURIComponent(t.message.route_id)}`;return new URL(r,`${ve()}/`).toString()}function yi(e){let t=u(q).find(t=>t.id===e)?.route_id||u(J).find(t=>t.id===e)?.route_id;return t?_i(u(Y),t):!u(Y)||!e?`/app`:`/app/${encodeURIComponent(u(Y))}/${encodeURIComponent(e)}`}function bi(e=u(Y)){return e?u(Re).find(t=>t.id===e||t.route_id===e)?.route_id||e:``}function xi(e=``){return e?u(q).find(t=>t.id===e||t.route_id===e)?.route_id||u(J).find(t=>t.id===e||t.route_id===e)?.route_id||Q.root?.id===e&&Q.root.route_id||u(Xe).find(t=>t.id===e)?.route_id||e:``}async function Si(e=u(Y),t=``,n=!1){let r=_i(e,t);window.location.pathname!==r&&await fe(r,{replaceState:n,noScroll:!0,keepFocus:!0})}function Ci(e,t){hi(e,t)!==Tr&&Pi(e,t)}function wi(){Er++,Tr=hi(bi(),xi($())),Si(u(Y),$())}function Ti(){u(dn)&&gs(),Q.close(),M(dt,null),M(ft,!1),M(pr,`message`),M(sr,!1)}function Di(e=u(Y)){return ji(e)||u(q).find(e=>e.name.toLowerCase()===`guest`)?.id||u(q)[0]?.id||u(J)[0]?.id||``}function Oi(e=u(Y)){return u(Re).find(t=>t.id===e||t.route_id===e)}function ki(e=u(Y)){let t=Oi(e),n=t?.route_id||t?.id||e;return n?`clickclack:last-channel:v1:${n}`:``}function Ai(e){try{let t=JSON.parse(e);return{id:typeof t.id==`string`?t.id:``,routeID:typeof t.routeID==`string`?t.routeID:``}}catch{return{id:e}}}function ji(e=u(Y)){let t=ki(e);if(!t)return``;let n;try{let e=window.localStorage.getItem(t);if(!e)return``;n=Ai(e)}catch{return``}let r=u(q).find(e=>e.id===n.id||e.route_id===n.routeID);if(r)return r.id;try{window.localStorage.removeItem(t)}catch{}return``}function Mi(e,t){if(!e||!t)return;let n=u(q).find(e=>e.id===t);if(!n)return;let r=ki(e);if(r)try{window.localStorage.setItem(r,JSON.stringify({id:n.id,routeID:n.route_id}))}catch{}}function Ni(e){Ln===e&&(Ln=``,Ms())}async function Pi(e=``,t=``){let n=++Er;Tr=hi(e,t),t!==Q.selection?.messageID&&t!==Q.root?.route_id&&Q.close();try{Ie.clear();let r=t.trim()?await Ii(e,t):null;if(n!==Er)return;let i=r?u(Re).find(e=>e.id===r.workspace_id):u(Re).find(t=>t.id===e||t.route_id===e)||u(Re)[0];if(!i){pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},`replace`);return}let a=u(Y)!==i.id;if(a&&(co(),Le.clear(),Hn.clear(),Ri(),M(Y,i.id),Mr+=1,zr+=1,Br+=1,Fr+=1,Lr?.abort(),M(Rr,``),M(Mt,[]),M(Nt,[]),M(Ue,[]),M(kt,[]),M(X,``),M(Z,``),Q.close(),M(dt,null),M(pr,`message`),gs(),ba(),M(rr,!0),Ln=i.id),(a||u(q).length===0)&&await Gi(!1,!1),n!==Er||((a||u(J).length===0)&&await ws(),a&&(await Promise.all([Ji(),Zi(i.id),Qi(i.id),Ki(i.id)]),Xi(i.id)),n!==Er))return;if(r){let e=await Fi(r,n);if(n!==Er)return;if(!e){Ti(),await Si(i.id,Di(),!0);return}}if(r?.canonical_path&&window.location.pathname!==r.canonical_path&&(Tr=hi(r.workspace_route_id,r.target_route_id),await fe(r.canonical_path,{replaceState:!0,noScroll:!0,keepFocus:!0}),n!==Er))return;if(r?.target_type===`channel`&&u(q).some(e=>e.id===r.target_id)){let e=r.target_id,t=!a&&u(X)===e&&!u(Z)&&u(er)===e;if(M(X,e),M(Z,``),Mi(i.id,e),Ti(),t){_a(e),Ni(i.id);return}if(Xr(e),await Promise.all([sa(),nc()]),n!==Er)return;Ni(i.id);return}if(r?.target_type===`direct`&&u(J).some(e=>e.id===r.target_id)){let e=r.target_id,t=!a&&u(Z)===e&&!u(X)&&u(er)===e;if(M(Z,e),M(X,``),Ti(),t){_a(e),Ni(i.id);return}if(Xr(e),await sa(),n!==Er)return;Ni(i.id);return}if(r?.target_type===`thread`){let e=await Li(r,n);if(n!==Er)return;e&&Ni(i.id);return}let o=Di();if(Ti(),!o){M(X,``),M(Z,``),Xr(``),await sa(),(e!==i.route_id||t)&&await Si(i.id,``,!0),Ni(i.id);return}await Si(i.id,o,!0)}catch(e){n===Er&&si(e)}}async function Fi(e,t){return e.target_type===`channel`?(u(q).some(t=>t.id===e.target_id)||await Gi(!1,!1,!1),t===Er&&u(q).some(t=>t.id===e.target_id)):e.target_type===`direct`?(u(J).some(t=>t.id===e.target_id)||(await ws(),u(J).some(t=>t.id===e.target_id)||Ts((await G(`/api/dms/${e.target_id}`)).conversation)),t===Er&&u(J).some(t=>t.id===e.target_id)):e.parent_type===`channel`&&e.parent_id?(u(q).some(t=>t.id===e.parent_id)||await Gi(!1,!1,!1),t===Er&&u(q).some(t=>t.id===e.parent_id)):e.parent_type===`direct`&&e.parent_id?(u(J).some(t=>t.id===e.parent_id)||(await ws(),u(J).some(t=>t.id===e.parent_id)||Ts((await G(`/api/dms/${e.parent_id}`)).conversation)),t===Er&&u(J).some(t=>t.id===e.parent_id)):!0}async function Ii(e,t){try{return(await G(`/api/routes/${encodeURIComponent(e)}/${encodeURIComponent(t)}`)).route}catch(e){if(e instanceof be&&(e.status===403||e.status===404))return null;throw e}}async function Li(e,t){if(e.workspace_id!==u(Y))return!1;let n=e.parent_type===`channel`&&e.parent_id||``,r=e.parent_type===`direct`&&e.parent_id||``;if(n){if(!u(q).some(e=>e.id===n))return!1;M(X,n),M(Z,``),Mi(e.workspace_id,n)}else if(r){if(!u(J).some(e=>e.id===r))return!1;M(Z,r),M(X,``)}else return!1;Hn.prune();let i=Q.root?.id===e.target_id&&u(er)===$();if(M(dt,null),M(ft,!1),M(pr,`thread`),M(sr,!1),!await $o(e.target_id,void 0,()=>t===Er))return!1;let a=Q.selection;if(n&&await nc(),!Q.isCurrent(a)||t!==Er)return!1;if(!i&&n&&Q.root&&(Q.root.thread_state?.reply_count??0)===0){let e=Q.root;return Q.close(),M(pr,`message`),await bs(e),!0}return!i&&Q.root&&await bs(Q.root),!0}function Ri(){sn++,M($t,null),M(en,``),M(tn,``),M(on,``),M(ir,!1),M(Tn,!1),M(En,!1)}function zi(){let e=!u(ir);Ri(),M(ir,e)}function Bi(){Ri(),M(Tn,!0)}function Vi(){Ri(),M(En,!0),Xi()}async function Hi(){if(u($t)===`workspace`||!u(Xt).trim())return;let e=u(Y),t=Er,n=++sn,r=()=>n===sn&&t===Er&&e===u(Y);M($t,`workspace`),M(en,``);try{let e=await G(`/api/workspaces`,{method:`POST`,body:JSON.stringify({name:u(Xt)})});if(u(Re).some(t=>t.id===e.workspace.id)||M(Re,[...u(Re),e.workspace]),!r())return;M(Xt,``),M(ir,!1),M(sr,!1),await Si(e.workspace.id)}catch(e){r()&&M(en,xe(e,`Could not create workspace`))}finally{n===sn&&M($t,null)}}async function Wi(e){M(sr,!1),await Si(e)}async function Gi(e=!0,t=!0,n=!0){let r=u(Y);if(!r)return;let i=++jr,a=await G(`/api/workspaces/${r}/channels`);i===jr&&r===u(Y)&&(M(q,a.channels),t?M(X,u(q).find(e=>e.id===u(X))?.id||u(q).find(e=>!e.archived_at)?.id||u(q)[0]?.id||``):u(X)&&!u(q).some(e=>e.id===u(X))&&M(X,``),n&&(u(dn)&&gs(),Q.close(),M(dt,null),M(pr,`message`)),e&&await sa())}async function Ki(e=u(Y)){let t=++Mr,n=$(),r=u(X),i=!1;if(!e){M(Ue,[]);return}try{let a=await G(`/api/workspaces/${e}/topics`);if(t!==Mr||e!==u(Y)||(M(Ue,a.topics),$()!==n||u(X)!==r))return;let o=new Set($r(a.topics,r).map(e=>e.id));u(at)&&!o.has(u(at))&&M(at,``),u(st)&&!o.has(u(st))&&(Zr(``),Bn.delete($()),u(Vn).delete($()),i=!0)}catch{return}if(i&&$()===n)try{await ca()}catch(e){if($()!==n||u(st))return;po(),M(Rt,{kind:`error`,text:e instanceof Error?`Topic changed, but messages could not reload: ${e.message}`:`Topic changed, but messages could not reload`})}}function qi(){M(pr,`message`),u(X)&&Ki()}async function Ji(e=u(Y)){let t=++Pr;if(!e||e!==u(Y)||u(O)!==`owner`&&u(O)!==`moderator`){t===Pr&&M(Ot,[]);return}try{let n=await G(`/api/workspaces/${e}/moderation/members`);if(t!==Pr||e!==u(Y))return;M(Ot,n.members)}catch{t===Pr&&e===u(Y)&&M(Ot,[])}}async function Xi(e=u(Y)){let t=++Fr;Lr?.abort();let n=new AbortController;if(Lr=n,M(Rr,``),!e){M(kt,[]);return}try{let r=await Tt({workspaceID:e,limit:100,signal:n.signal});if(t!==Fr||e!==u(Y))return;M(kt,r.map(e=>e.user))}catch(r){!n.signal.aborted&&t===Fr&&e===u(Y)&&(M(kt,[]),M(Rr,wt(r)))}}async function Zi(e=u(Y)){let t=++zr;if(!e){M(Mt,[]);return}try{let n=await G(`/api/workspaces/${e}/slash-commands`);if(t!==zr||e!==u(Y))return;M(Mt,n.slash_commands)}catch{t===zr&&e===u(Y)&&M(Mt,[])}}async function Qi(e=u(Y),t=!1){let n=++Br;if(!e){M(Nt,[]);return}try{let t=await yo(e);if(n!==Br||e!==u(Y))return;M(Nt,t)}catch(r){let i=n===Br&&e===u(Y);if(i&&M(Nt,[]),t&&i)throw r}}function $i(e){Ur+=1,M(Rt,null)}async function ea(e,t){if(!u(Y))return;let n=await G(`/api/workspaces/${u(Y)}/moderation/members/${e}`,{method:`PATCH`,body:JSON.stringify(t)});M(Ot,[...u(Ot).filter(t=>t.user.id!==e),n.member]),await Gi(!1,!1,!1)}async function ta(){if(u($t)===`channel`||!u(Y)||!u(Zt).trim())return;let e=u(Y),t=Er,n=++sn,r=()=>n===sn&&t===Er&&e===u(Y);M($t,`channel`),M(tn,``);try{let t=await G(`/api/workspaces/${e}/channels`,{method:`POST`,body:JSON.stringify({name:u(Zt),kind:`public`})});if(e===u(Y)&&!u(q).some(e=>e.id===t.channel.id)&&M(q,[...u(q),t.channel]),!r())return;M(Zt,``),M(Tn,!1),await Si(e,t.channel.id)}catch(e){r()&&M(tn,xe(e,`Could not create channel`))}finally{n===sn&&M($t,null)}}async function na(e){M(sr,!1),Mi(u(Y),e);let t=_i(u(Y),e);(e!==u(X)||u(Z)||window.location.pathname!==t)&&await Si(u(Y),e)}async function ra(e,t){let n=++Vr;if(M(Ge,null),e&&!t)try{let t=await G(`/api/channels/${e}/notification-settings`);if(n!==Vr||e!==u(X)||u(Z))return;$a(e,t.preference),M(Ge,t.preference)}catch{if(n===Vr&&e===u(X)&&!u(Z)){let t=Qa(e)||`all`;$a(e,t),M(Ge,t)}}}async function ia(){let e=u(X);if(!e||u(Z)||u(Ye)||!u(Ge))return;let t=++Vr,n=[`all`,`mentions`,`muted`],r=u(Ge),i=n[(n.indexOf(r)+1)%n.length];M(Ge,i),$a(e,i),M(Ye,!0);try{await G(`/api/channels/${e}/notification-settings`,{method:`PATCH`,body:JSON.stringify({preference:i})})}catch{qe.get(e)===i&&$a(e,r),t===Vr&&e===u(X)&&!u(Z)&&M(Ge,r)}finally{M(Ye,!1)}}function aa(e=!1){ba(),M(rr,e),Or+=1,Hn.prune();let t=Qr();return()=>Qr()===t}async function oa(e,t=`replace`,n=aa()){let r=$();r!==u(er)&&M(rr,!0);try{if(!r){n()&&pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},t);return}await Hn.run(()=>G(da(e)),e=>{let n=e,i=u(Vn).get(r);!n.has_newer&&i&&i.newest_seq>n.newest_seq&&(n=i.oldest_seq>n.newest_seq?i:{...n,messages:xa(n.messages,i.messages.filter(e=>mo(e)>n.newest_seq)),newest_seq:i.newest_seq,has_newer:i.has_newer}),pa(r,n,t)},n)}catch(e){if(n())throw e}finally{n()&&M(rr,!1)}}async function sa(e=!0){return e&&co(),oa(la())}async function ca(e=aa()){let t=$();if(t)return M(rr,!0),Bn.set(t,{atBottom:!0}),oa(`limit=100`,`replace`,e)}function la(){let e=ua(),t=e.unread_count||0,n=e.last_read_seq||0;return t>0?`around_seq=${encodeURIComponent(String(n+1))}&limit=100`:`limit=100`}function ua(){return u(Z)?u(J).find(e=>e.id===u(Z))||{}:u(X)&&u(q).find(e=>e.id===u(X))||{}}function da(e){let t=u(Z)?`/api/dms/${u(Z)}/messages`:`/api/channels/${u(X)}/messages`,n=new URLSearchParams(e);!u(Z)&&u(st)&&n.set(`topic_id`,u(st));let r=n.toString();return r?`${t}?${r}`:t}async function fa(e){if(!u(X)||e===u(st))return;let t=$(),n=u(st),r=u(at),i=u(Vn).get(t),a=Bn.get(t);Zr(e);let o=ct;e&&M(at,e),Bn.delete(t),u(Vn).delete(t);try{await ca()}catch(s){if($()!==t||ct!==o)return;Zr(n),u(at)===e&&M(at,r),u(Vn).delete(t);let c=ct;try{if(await ca(),$()!==t||ct!==c)return;a&&(Bn.set(t,a),M(tr,a))}catch{if($()!==t||ct!==c)return;i?(ma(t,i),lo(t,i.messages),_a(t,i)):po(),a&&(Bn.set(t,a),M(tr,a))}M(Rt,{kind:`error`,text:s instanceof Error?`Topic could not change: ${s.message}`:`Topic could not change`})}}function pa(e,t,n){let r=Uo(e).flatMap(e=>e.receipt?[e.receipt]:[]).sort((e,t)=>mo(e)-mo(t)),i=mo(t.messages.at(-1));if(!t.has_newer)for(let e of r)mo(e)===i+1&&(t={...t,messages:[...t.messages,e]},i=mo(e));r.some(e=>mo(e)>i)&&(t={...t,has_newer:!0});let a=Ca(e,t.messages,n),o=a[0]?.channel_seq||0,s=a[a.length-1]?.channel_seq||0,c=o>(t.messages[0]?.channel_seq||o),l=s<(t.messages[t.messages.length-1]?.channel_seq||s),d={messages:a,oldest_seq:o,newest_seq:s,has_older:t.has_older||c,has_newer:t.has_newer||l};ma(e,d),_a(e,d),(n!==`append`||e!==u(er))&&M(tr,Bn.get(e)),lo(e,a)}function ma(e,t){e&&(u(Vn).delete(e),u(Vn).set(e,t),ha(e),ga(e),M(Vn,new Map(u(Vn))))}function ha(e){let t=u(Vn).size+1;for(;u(Vn).size>8&&t>0;){t--;let n=u(Vn).keys().next().value;if(!n)return;if(n===e){let e=u(Vn).get(n);u(Vn).delete(n),e&&u(Vn).set(n,e);continue}u(Vn).delete(n)}}function ga(e){let t=Bn.size+1;for(;Bn.size>16&&t>0;){t--;let n=Bn.keys().next().value;if(!n)return;if(n===e){let e=Bn.get(n);Bn.delete(n),e&&Bn.set(n,e);continue}Bn.delete(n)}}function _a(e,t=u(Vn).get(e)){e===$()&&(M(Jn,t?.has_older||!1),M(Yn,t?.has_newer||!1))}function va(e){let t=u(Vn).get(e);e&&t&&(ma(e,{...t,has_newer:!0}),_a(e))}function ya(e,t){e===`older`?(M(Wn,t),M(Xn,t===`loading`)):(Gn=t,M(Zn,t===`loading`))}function ba(){Un=new Set,M(Wn,`idle`),Gn=`idle`,Kn=!1,qn=!1,M(Xn,!1),M(Zn,!1)}function xa(e,t){let n=new Map;for(let r of[...e,...t])n.set(r.id,r);return[...n.values()].sort((e,t)=>(e.channel_seq||0)-(t.channel_seq||0))}function Sa(e){let t=new Set,n=Ha(e);if(n>=0){let r=Wa(e,u(Xe),n);r&&t.add(r.id)}let r=Bn.get(e)?.anchorMessageID;r&&t.add(r);let i=Le.session(e);i&&t.add(i.messageID),Q.root&&ho(Q.root,e)&&t.add(Q.root.id),u(lr)&&ho(u(lr),e)&&t.add(u(lr).id);for(let n of u(Xe))(n.status===`pending`||n.status===`failed`)&&ho(n,e)&&t.add(n.id);return t}function Ca(e,t,n){return He(t,n,Sa(e))}function wa(){if(u(Wn)!==`idle`){Kn=!0;return}Ea()}function Ta(e=!1){if(Gn!==`idle`){e&&(qn=!0);return}Da()}async function Ea(){let e=$(),t=Qr(),n=u(Vn).get(e),r=`${t}:older`;if(u(Wn)!==`idle`){Kn=!0;return}if(!e||!n?.has_older||n.oldest_seq<=0||Un.has(r))return;Un.add(r),Kn=!1,ya(`older`,`loading`),co();let i=!1;try{await Hn.run(()=>G(da(`before_seq=${encodeURIComponent(String(n.oldest_seq))}&limit=50`)),t=>{let n=u(Vn).get(e);n&&(pa(e,{...n,messages:xa(t.messages,n.messages),has_older:t.has_older},`prepend`),i=!0,ya(`older`,`settling`))},()=>Qr()===t)}catch(e){Qr()===t&&M(Rt,{kind:`error`,text:xe(e,`Could not load older messages`)})}finally{Un.delete(r),Qr()===t&&!i&&ya(`older`,`idle`)}}async function Da(){let e=$(),t=Qr(),n=u(Vn).get(e),r=`${t}:newer`;if(Gn!==`idle`){qn=!0;return}if(!e||Un.has(r))return;if(!n||n.newest_seq<=0){await sa();return}Un.add(r),qn=!1,ya(`newer`,`loading`);let i=!1;try{await Hn.run(()=>G(da(`after_seq=${encodeURIComponent(String(n.newest_seq))}&limit=50`)),t=>{i=ka(e,t,n.newest_seq),i&&ya(`newer`,`settling`)},()=>Qr()===t)}catch(e){Qr()===t&&M(Rt,{kind:`error`,text:xe(e,`Could not load newer messages`)})}finally{Un.delete(r),Qr()===t&&!i&&ya(`newer`,`idle`)}}async function Oa(e){let t=$(),n=Qr();if(!u(Y)||!t)return;let r=u(Vn).get(t);if(!r||r.newest_seq<=0){await sa();return}await Hn.run(()=>G(da(`after_seq=${encodeURIComponent(String(r.newest_seq))}&limit=50`)),e=>{ka(t,e,r.newest_seq)},()=>e()&&Qr()===n)}function ka(e,t,n){let r=u(Vn).get(e);if(!r)return!1;let i=t.newest_seq||n,a=i>r.newest_seq?t.has_newer:in&&(n=r.channel_seq));return n}function Ma(e,t=u(Xe)){let n=0;for(let r of t)r.direct_conversation_id===e&&typeof r.channel_seq==`number`&&r.channel_seq>n&&(n=r.channel_seq);return n}function Na(e,t){return e&&t.unread_count||0}async function Pa(e,t){let n=u(q).find(t=>t.id===e);if(n&&!(t<=0||t<=(n.last_read_seq||0))){M(q,u(q).map(n=>n.id===e?(()=>{let e=Math.max(n.last_seq||0,t);return{...n,last_seq:e,unread_count:t>=e?0:n.unread_count||0,last_read_seq:t}})():n));try{await G(`/api/channels/${e}/read`,{method:`POST`,body:JSON.stringify({seq:t})})}catch{}}}async function Fa(e,t){let n=u(J).find(t=>t.id===e);if(n&&!(t<=0||t<=(n.last_read_seq||0))){M(J,u(J).map(n=>n.id===e?(()=>{let e=Math.max(n.last_seq||0,t);return{...n,last_seq:e,unread_count:t>=e?0:n.unread_count||0,last_read_seq:t}})():n));try{await G(`/api/dms/${e}/read`,{method:`POST`,body:JSON.stringify({seq:t})})}catch{}}}function Ia(e){let t=u(Vn).get(e)?.newest_seq||0,n=u(q).find(t=>t.id===e);if(n)return Math.max(n.last_seq||0,(n.last_read_seq||0)+(n.unread_count||0),ja(e),t);let r=u(J).find(t=>t.id===e);return r?Math.max(r.last_seq||0,(r.last_read_seq||0)+(r.unread_count||0),Ma(e),t):0}function La(e){let t=u(Vn).get(e);return!t||t.has_newer?0:u(q).find(t=>t.id===e)?ja(e):u(J).find(t=>t.id===e)?Ma(e):0}function Ra(e={}){if(!e.all&&Date.now()<$n)return;let t=$()||u(er);if(!t||u(st)&&u(q).some(e=>e.id===t))return;if(!e.all&&!e.seq){let e=Ha(t);if(e>=0&&!ao(t,e))return}let n=e.all?Math.max(e.seq||0,Ia(t)):e.seq||La(t);if(!(n<=0)){if(u(J).some(e=>e.id===t)){Fa(t,n),e.all&&za(t,n);return}u(q).some(e=>e.id===t)&&(Pa(t,n),e.all&&za(t,n))}}function za(e,t){Qn.delete(e),Qn=new Map(Qn),M(q,u(q).map(n=>n.id===e?{...n,last_seq:Math.max(n.last_seq||0,t),last_read_seq:Math.max(n.last_read_seq||0,t),unread_count:0}:n)),M(J,u(J).map(n=>n.id===e?{...n,last_seq:Math.max(n.last_seq||0,t),last_read_seq:Math.max(n.last_read_seq||0,t),unread_count:0}:n))}function Ba(e){let t=u(q).find(t=>t.id===e);return t?t.last_read_seq||0:u(J).find(t=>t.id===e)?.last_read_seq||0}function Ha(e){let t=u(q).find(t=>t.id===e);if(t)return Na(e,t)>0?t.last_read_seq||0:-1;let n=u(J).find(t=>t.id===e);return n&&Na(e,n)>0?n.last_read_seq||0:-1}function Wa(e,t,n){for(let r of t){if(!ho(r,e)||r.parent_message_id||r.author?.id===u(K)?.id||r.author_id===u(K)?.id)continue;let t=r.channel_seq;if(typeof t==`number`&&t>n)return r}return null}function Ga(e,t){if(!e)return;let n=io(e);if(Na(e,n)<=0){Qn.delete(e),Qn=new Map(Qn);return}let r=n.last_read_seq||0,i=Qn.get(e);if(i?.boundarySeq===r&&i.since||!ao(e,r))return;let a=Wa(e,t,r);a&&(Qn=new Map(Qn).set(e,{boundarySeq:r,since:so(a.created_at)}))}function Ka(e,t,n){if(!e||!n)return;let r=Qn.get(e);r?.boundarySeq===t&&r.since||(Qn=new Map(Qn).set(e,{boundarySeq:t,since:so(n)}))}function qa(e){let t=e.payload,n=t.channel_seq??e.seq??t.seq;return typeof n==`number`?n:Number(n)||0}function Ja(e){let t=e.payload;return{channelID:e.channel_id||(typeof t.channel_id==`string`?t.channel_id:``),dmID:typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``}}async function Ya(e){try{let t=await G(`/api/channels/${e}/notification-settings`);return $a(e,t.preference),e===u(X)&&!u(Z)&&!u(Ye)&&M(Ge,t.preference),t.preference}catch{return Qa(e)||`all`}}function Xa(e){return u(K)?.id&&e?`clickclack:channel-notification:v1:${u(K).id}:${e}`:``}function Za(e){let t=Xa(e);if(!t)return null;try{let e=window.localStorage.getItem(t);return e===`all`||e===`mentions`||e===`muted`?e:null}catch{return null}}function Qa(e){return qe.get(e)||Za(e)}function $a(e,t){qe=new Map(qe).set(e,t);let n=Xa(e);if(n)try{window.localStorage.setItem(n,t)}catch{}}async function eo(e,t){if(e.type!==`message.created`&&e.type!==`thread.reply_created`)return;let{channelID:n,dmID:r}=Ja(e),i=qa(e);if(e.type===`message.created`&&i>0){let e=n||r;if(i<=(Je.get(e)||0))return;Je.set(e,i)}let a=e.payload,o=typeof a.kind==`string`?a.kind:``;if(o===`agent_commentary`||o===`agent_tool`||!u(Dn)||document.visibilityState===`visible`&&t)return;if(n){let t=await Ya(n);if(!t||!u(Dn))return;let r=n===u(X)&&!u(Z);if(document.visibilityState===`visible`&&r||t===`muted`||t===`mentions`&&!e.mentioned_user_ids?.includes(u(K)?.id||``))return}let s=typeof a.message_id==`string`?a.message_id:`${e.channel_id||``}:${e.seq||Date.now()}`,c=typeof a.author_id==`string`?a.author_id:``,l=typeof a.body==`string`?a.body:`New message`;if(e.type===`thread.reply_created`&&typeof a.message_id==`string`)try{let e=await G(`/api/messages/${a.message_id}`);c=e.message.author_id,l=e.message.body}catch{}if(c&&c===u(K)?.id||!u(Dn)||document.visibilityState===`visible`&&(n&&n===u(X)||r&&r===u(Z)))return;let d=u(q).find(e=>e.id===n),f=Hs(c)?.display_name||`ClickClack`,p=d?`#${vt(d)}`:`Direct message`;if(It){It.notify({body:to(l),route:yi(n||r),tag:`clickclack:${s}`,title:`${f} in ${p}`});return}if(!(typeof Notification>`u`||Notification.permission!==`granted`))try{let e=new Notification(`${f} in ${p}`,{body:to(l),tag:`clickclack:${s}`,icon:`/favicon.svg`});e.onclick=()=>{window.focus(),e.close(),n?na(n):r&&Es(r)}}catch{}}function to(e){let t=e.replace(/!\[[^\]]*]\([^)]+\)/g,`[image]`).replace(/\[[^\]]+]\(([^)]+)\)/g,`$1`).replace(/[`*_>#|]/g,``).replace(/\s+/g,` `).trim();return t?t.length>180?`${t.slice(0,177)}...`:t:`New message`}async function ro(e){let t=e.payload,n=typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``;return!n||u(J).some(e=>e.id===n)?!1:(await ws(),u(J).some(e=>e.id===n))}function io(e){return u(q).find(t=>t.id===e)||u(J).find(t=>t.id===e)||{}}function ao(e,t,n=u(Vn)){if(!e||t<0)return!1;let r=n.get(e);if(!r||r.messages.length===0)return!1;let i=t+1;return r.oldest_seq<=i&&r.newest_seq>=i}function oo(e,t,n=u(Vn)){let r=Qn.get(e);if(r?.boundarySeq===t)return r.since;if(!ao(e,t,n))return``;let i=Wa(e,u(Xe),t);return i?so(i.created_at):``}function so(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`2-digit`}).format(t)}function co(){if(!u(er)||!u(zn))return;let e=u(zn).captureState();e&&Bn.set(u(er),e)}function lo(e,t){let n=e!==u(er);for(let[t,n]of ut)!n.message.status&&(n.draft.viewKey!==e||u(st)&&n.draft.topicID!==u(st))&&ut.delete(t);let r=Uo(e).map(e=>e.message),i=new Map(r.map(e=>[e.id,e])),a=new Map(r.filter(e=>e.nonce).map(e=>[e.nonce,e]));Ie.seedMessages(t);let o=t.map(e=>{let t=i.get(e.id)||(e.nonce?a.get(e.nonce):void 0);return t?(!t.status&&(t.attachments||[]).every(t=>e.attachments?.some(e=>e.id===t.id))&&ut.delete(t.nonce),{...e,nonce:t.nonce,status:t.status,attachments:t.attachments?.length?t.attachments:e.attachments}):e}),s=new Set(o.map(e=>e.id)),c=new Set(o.map(e=>e.nonce).filter(Boolean)),l=r.filter(e=>!s.has(e.id)&&!(e.nonce&&c.has(e.nonce)));M(Xe,[...o,...l].sort((e,t)=>(e.channel_seq||1/0)-(t.channel_seq||1/0))),Le.reconcile(e,u(Xe)),M(er,e),Ga(e,u(Xe)),n&&(M(hr,[]),M(yr,[]),wn())}function uo(e){po(Hn.updateMessage(e))}function fo(e){po(Hn.updateAuthor(e))}function po(e){let t=$(),n=t?u(Vn).get(t):void 0;if(e)for(let t of ut.values()){let n=t.message;t.message={...e(n),status:n.status,attachments:n.attachments},t.receipt&&=e(t.receipt)}let r=e?n?.messages.map(e)||[]:n?.messages||[];n?pa(t,{...n,messages:r},`append`):lo(t,r)}function mo(e){return e?.channel_seq||0}function ho(e,t){return t?e.channel_id===t||e.direct_conversation_id===t:!1}async function _o(e=()=>!0){await y(),e()&&await u(zn)?.scrollToBottom()}function bo(){return u(zn)?.isFollowing()||u(zn)?.isNearBottom(96)!==!1}async function wo(e=!1){let t=u(rr)||u(Yn)||u(me)>0,n=aa();try{if(t&&await ca(n),await _o(n),!n())return;u(Yn)||Ra({all:!0}),await _o(n)}catch(t){n()&&(M(Rt,{kind:`error`,text:xe(t,`Could not jump to latest messages`)}),e&&await _o(n))}}function zo(e,t,n=`tmp_${e}`){let r=new Date().toISOString();return{id:n,workspace_id:t.workspaceID,channel_id:t.channelID,direct_conversation_id:t.directConversationID,topic_id:t.topicID,author_id:u(K)?.id||``,thread_root_id:n,body:t.body,body_format:`markdown`,created_at:r,author:u(K)||void 0,attachments:t.upload?[t.upload]:[],quoted_message_id:t.quotedMessageID,nonce:e,status:`pending`}}async function Bo(){let e=u(Yt).trim();if(!e)return;if(u(B)&&!u(se)){M(Rt,{kind:`error`,text:`This conversation has no active recipient`});return}if(!u(X)&&!u(Z)){M(Rt,{kind:`ephemeral`,text:`Pick or create a channel to send a message.`});return}wn(),M(Rt,null);let t=++Ur,n=$(),r=u(Z)?`dm`:`channel`,i=u(lr)&&u(ur)===r?u(lr):null;if(u(X)&&!u(Z)&&!u(mn)&&!i){let r=xo(e),i=r?So(u(Mt),r.command):void 0;if(r&&i){M(Yt,``),Ss(),await Vo(u(X),r.command,r.text,e,n,t);return}}let a={body:e,quotedMessageID:i?.id,upload:u(mn)||void 0,workspaceID:u(Y),channelID:u(X)||void 0,directConversationID:u(Z)||void 0,topicID:u(X)&&u(at)||void 0,topicFilterID:u(st),topicFilterGeneration:ct,viewKey:$()};M(Yt,``),i&&cs(),Ss(),await Go(a)}async function Vo(e,t,n,r,i,a){try{let r=await Co(e,t,n);if(a!==Ur||$()!==i)return;r.text&&r.response_type!==`in_channel`&&M(Rt,{kind:`ephemeral`,text:r.text})}catch(e){if(console.warn(`slash dispatch failed`,e),a!==Ur||$()!==i)return;M(Rt,{kind:`error`,text:e instanceof be&&e.message?Ho(e):`${t} failed`}),u(Yt).trim()||M(Yt,r)}}function Ho(e){try{let t=JSON.parse(e.message);if(t&&typeof t.error==`string`&&t.error)return t.error}catch{}return e.message}function Uo(e){return[...ut.values()].filter(({draft:t})=>t.viewKey===e&&(!u(st)||t.topicID===u(st)))}async function Wo(e,t,n,r){let{draft:i}=e;if(e.message=t,$()!==i.viewKey)return;let a=!1,o=u(st)===i.topicFilterID&&ct===i.topicFilterGeneration;if(r()&&o&&u(st)&&i.topicID!==u(st)){Zr(``),Bn.delete(i.viewKey),u(Vn).delete(i.viewKey),r=aa();try{await ca(r)}catch{a=!0}}if($()===i.viewKey){if(u(st)&&i.topicID!==u(st)){u(Yt).trim()||M(Yt,i.body),M(Rt,{kind:`error`,text:`${n} Clear the active topic filter to recover the draft.`});return}po(),M(Rt,{kind:`error`,text:a?`${n} The unfiltered timeline could not reload.`:n}),await _o(r)}}async function Go(e,t,n){let r=Or,i=()=>Or===r&&$()===e.viewKey,a=t??Ze(),o=`tmp_${a}`,s=n??o,c=!u(st)||e.topicID===u(st),l=!t&&$()===e.viewKey&&c,d=zo(a,e,s),f={draft:e,message:d,receipt:ut.get(a)?.receipt};ut.set(a,f),$()===e.viewKey&&c&&(po(),t||_o());let p=e.directConversationID?`/api/dms/${e.directConversationID}/messages`:`/api/channels/${e.channelID}/messages`,m={body:e.body,nonce:a};e.quotedMessageID&&(m.quoted_message_id=e.quotedMessageID),e.topicID&&(m.topic_id=e.topicID),e.upload&&(m.upload_id=e.upload.id);try{let t=f.receipt||(await G(p,{method:`POST`,body:JSON.stringify(m)})).message;if(f.receipt=t,e.upload&&!t.attachments?.some(t=>t.id===e.upload?.id))try{await G(`/api/messages/${t.id}/attachments`,{method:`POST`,body:JSON.stringify({upload_id:e.upload.id})}),t={...t,attachments:[...t.attachments||[],e.upload]}}catch(n){console.warn(`attachment fallback failed`,n),await Wo(f,{...t,nonce:a,status:`failed`,attachments:[...t.attachments||[],e.upload]},`The message was sent, but its attachment failed. Retry or discard it below.`,i);return}f.receipt=t,f.message={...t,nonce:a},$()===e.viewKey?po():ut.delete(a)}catch(t){console.warn(`send failed`,t),await Wo(f,{...d,status:`failed`},e.upload?`The attachment failed, so the message was not sent. Retry or discard it below.`:`The message failed to send. Retry or discard it below.`,i);return}i()&&l&&await wo(!0)}function Ko(e){if(!e.nonce)return;let t=ut.get(e.nonce)?.draft;t&&Go(t,e.nonce,e.id)}function qo(e){if(!e.nonce)return;let t=ut.get(e.nonce);t?.receipt?t.message={...t.receipt,nonce:e.nonce}:ut.delete(e.nonce),po()}async function Jo(e,t){let n=Q.selection,r=()=>e===u(nr)&&Le.session(e)?.generation===t.generation&&(t.surface!==`thread`||Q.selection===n);if(r()){if(Er++,t.surface===`thread`){if(t.threadRootID&&n?.messageID!==t.threadRootID&&(M(ft,!1),Q.select(t.threadRootID),n=Q.selection,!await $o(t.threadRootID,void 0,r))||!await Q.target({messageID:t.messageID,threadSeq:t.threadSeq},r)||!r())return;Q.root?.route_id&&await Si(u(Y),Q.root.id)}else u(zn)?.scrollToMessage(t.messageID),await Si(u(Y),Q.root?.id||$());for(let e=0;e<16;e+=1){if(await y(),await new Promise(e=>requestAnimationFrame(()=>e())),!r())return;let e=document.querySelector(t.surface===`timeline`?`main.timeline`:`[aria-label="Thread pane"]`)?.querySelector(`[data-message-id="${CSS.escape(t.messageID)}"]`)?.querySelector(`textarea[aria-label="Edit message"]`);if(e){e.focus({preventScroll:!0});return}}}}function Yo(e){uo(e),Q.updateMessage(e),M(ht,u(ht).map(t=>t.id===e.id?Qe(t,e):t))}function Xo(e){!e.id||e.deleted_at||u(qr).has(e.id)||(M(Jr,e),M(Yr,``))}async function Zo(){let e=u(Jr);if(e&&!u(qr).has(e.id)){M(qr,new Set([...u(qr),e.id])),M(Yr,``);try{let t=(await G(`/api/messages/${e.id}`,{method:`DELETE`})).message;Le.cancelMessage($(),t.id),uo(t),Q.updateMessage(t),M(ht,u(ht).filter(e=>e.id!==t.id)),u(lr)?.id===t.id&&cs(),M(Jr,null)}catch(e){M(Yr,e instanceof Error?e.message:`Could not delete message`)}finally{let t=new Set(u(qr));t.delete(e.id),M(qr,t)}}}async function Qo(e){Er++,gs(),M(ft,!1),await $o(e.id,e)&&u(Y)&&Q.root?.route_id&&await Si(u(Y),Q.root.id)}async function $o(e,t,n=()=>!0){M(Ht,null),M(Ut,``),M(dt,null),M(pr,`thread`),Q.select(e,t);try{return await Q.open(n)}catch{return!1}}function es(e=[]){let t=Q.root;t&&(Ie.seedMessages(e),Le.reconcile($(),[t,...Q.replies]),uo({id:t.id,thread_state:t.thread_state}))}async function ts(e){await Hn.run(()=>G(`/api/messages/${e}/thread?latest=true&limit=1`),e=>{let t={...e.root,thread_state:e.thread_state};Ie.seedMessages([t]),uo(t)})}async function ns(e,t){(u(Xe).some(t=>t.id===e)||Hn.pending)&&await Hn.run(()=>G(`/api/messages/${e}`),e=>uo(e.message),t)}function rs(e,t){let n=u(Xe).find(t=>t.id===e);if(!n)return!1;let r=new Date(t.created_at).getTime();if(Number.isFinite(r)&&ra}async function is(){(!u(B)||u(se))&&await Q.send()}function as(e,t){t===`thread`?Q.setQuote(e):(M(lr,e),M(ur,t)),M(pr,t===`thread`?`thread`:`message`)}function os(){return u(Jr)!==null||u(Vt)!==null||u(vn)||u(bn)||u(Tn)||u(En)}function ss(){return u(pr)===`thread`&&Q.root&&u(fr)?u(fr):u(dr)}function cs(){M(lr,null),M(ur,null)}async function ls(e){let t=e.quoted_message_id;if(!t)return;if(e.parent_message_id&&e.thread_root_id===Q.selection?.messageID){await Q.target({messageID:t});return}let n=aa();if(u(zn)?.scrollToMessage(t)??!1){await fs(t,n);return}let r=await G(`/api/messages/${t}`);n()&&ho(r.message,$())&&await bs(r.message)}async function us(){aa(),$n=Date.now()+1200,!(u(ye)&&u(zn)?.scrollToDivider(!1))&&await ds()}async function ds(){let e=$();if(!e)return;$n=Date.now()+1200;let t=Ba(e),n=Qn.get(e),r=(n?.boundarySeq===t?n.boundarySeq:t)+1;r<=0||await xs(r)}async function fs(e,t){for(let n=0;n<16;n+=1){if(await y(),await new Promise(e=>requestAnimationFrame(()=>e())),!t())return;let n=document.querySelector(`[data-message-id="${CSS.escape(e)}"]`);if(n){n.classList.add(`highlight`),window.setTimeout(()=>n.classList.remove(`highlight`),1500);return}}}async function ps(){if(!u(Y)||!u(cn).trim()){gs();return}let e=u(cn).trim();u(Ht)&&Xs(),(Q.root||u(dt))&&ec();let t=++pn,n=u(Z)&&u(B)?{workspaceID:u(Y),channelID:``,directConversationID:u(Z),label:`@${it(u(B),u(K)?.id)}`}:u(X)&&u(F)?{workspaceID:u(Y),channelID:u(X),directConversationID:``,label:`#${vt(u(F))}`}:{workspaceID:u(Y),channelID:``,directConversationID:``,label:``};M(dn,!1),fn=0;let r={query:e,scope:n,results:[],nextCursor:null,state:`loading`,error:``,loadingMore:!1,moreError:``,activeResultID:``};M(un,r);try{let e=await G(`/api/search?${ms(r).toString()}`);if(t!==pn)return;M(un,{...r,results:e.results,nextCursor:e.next_cursor,state:`ready`})}catch(e){if(t!==pn)return;M(un,{...r,state:`error`,error:e instanceof be?e.message:`Search is unavailable right now.`})}}function ms(e,t=``){let n=new URLSearchParams({workspace_id:e.scope.workspaceID,q:e.query});return e.scope.directConversationID?n.set(`direct_conversation_id`,e.scope.directConversationID):e.scope.channelID&&n.set(`channel_id`,e.scope.channelID),t&&n.set(`cursor`,t),n}async function hs(){let e=u(un);if(!e||e.state!==`ready`||!e.nextCursor||e.loadingMore)return;let t=pn;M(un,{...e,loadingMore:!0,moreError:``});try{let n=await G(`/api/search?${ms(e,e.nextCursor).toString()}`);if(t!==pn||!u(un))return;let r=new Set(u(un).results.map(e=>e.id));M(un,{...u(un),results:[...u(un).results,...n.results.filter(e=>!r.has(e.id))],nextCursor:n.next_cursor,loadingMore:!1})}catch(e){if(t!==pn||!u(un))return;M(un,{...u(un),loadingMore:!1,moreError:e instanceof be?e.message:`Couldn’t load more results.`})}}function gs(){pn+=1,M(cn,``),M(un,null),M(dn,!1),fn=0}function _s(e){if(e.channel_name)return`#${e.channel_name}`;if(e.direct_conversation_id){let t=u(J).find(t=>t.id===e.direct_conversation_id);return t?`@${it(t,u(K)?.id)}`:`Direct message`}return``}async function vs(e){let t=u(un),n=e.channel_id||e.direct_conversation_id||``;if(t&&u(Y)&&n&&(Er++,M(un,{...t,activeResultID:e.id}),$()!==n&&(await Si(u(Y),n),await Pi(bi(u(Y)),xi(n))),$()===n)){if(e.parent_message_id){fn=document.querySelector(`.search-results-scroll`)?.scrollTop??0;let t=pn;if(M(dn,!0),!await $o(e.thread_root_id,void 0,()=>t===pn&&u(dn)&&u(un)?.activeResultID===e.id))return;let n=()=>t===pn&&u(dn)&&u(un)?.activeResultID===e.id;if(!await Q.target({messageID:e.id,threadSeq:e.thread_seq},n)||!n())return;Q.root?.route_id&&await Si(u(Y),Q.root.id),await y(),n()&&document.querySelector(`.thread .thread-back`)?.focus({preventScroll:!0});return}if(await Si(u(Y),n),e.channel_seq&&e.channel_seq>0){await xs(e.channel_seq,e.id);return}await sa()}}async function ys(){if(Er++,!u(un)||!u(dn))return;let e=$();Q.close(),M(dt,null),M(pr,`message`),M(dn,!1),u(Y)&&e&&await Si(u(Y),e),await y();let t=document.querySelector(`.search-results-scroll`);t&&(t.scrollTop=fn),(u(un).activeResultID?document.querySelector(`.search-result[data-result-id="${CSS.escape(u(un).activeResultID)}"]`):null)?.focus({preventScroll:!0})}async function bs(e){let t=e.channel_seq||0;if(t<=0){await sa();return}await xs(t,e.id)}async function xs(e,t=``){let n=$();if(!n)return;let r=!!u(st);r&&(Zr(``),u(Vn).delete(n));let i=aa(r);t&&Bn.set(n,{atBottom:!1,anchorMessageID:t,anchorPixelOffset:0}),await oa(`around_seq=${encodeURIComponent(String(e))}&limit=100`,`around`,i),await y(),i()&&(t?(u(zn)?.scrollToMessage(t),await fs(t,i)):u(zn)?.scrollToDivider(!1))}function Ss(){_n?.abort(),_n=null,M(gn,``),M(mn,null)}async function Cs(e){let t=e.currentTarget,n=t.files?.[0],r=u(Y);if(!n||!r)return;t.value=``,_n?.abort();let i=new AbortController;_n=i,M(gn,r),M(Rt,null);let a=()=>_n===i&&!i.signal.aborted&&u(Y)===r;try{let e=await Lt(n,i.signal);if(!a())return;let t=new FormData;t.set(`workspace_id`,r),t.set(`file`,n),e.width>0&&t.set(`width`,String(e.width)),e.height>0&&t.set(`height`,String(e.height)),e.durationMS>0&&t.set(`duration_ms`,String(e.durationMS));let o=await G(`/api/uploads`,{method:`POST`,body:t,signal:i.signal});a()&&M(mn,o.upload)}catch(e){a()&&M(Rt,{kind:`error`,text:xe(e,`Could not upload file`)})}finally{_n===i&&(_n=null)}}async function ws(e=u(Y)){let t=++Nr;if(!e){M(J,[]);return}let n=await G(`/api/dms?workspace_id=${e}`);t===Nr&&e===u(Y)&&(M(J,n.conversations),u(Z)&&!u(J).some(e=>e.id===u(Z))&&M(Z,``))}function Ts(e){M(J,u(J).some(t=>t.id===e.id)?u(J).map(t=>t.id===e.id?e:t):[...u(J),e])}async function Es(e){M(sr,!1);let t=_i(u(Y),e);(e!==u(Z)||u(X)||window.location.pathname!==t)&&await Si(u(Y),e)}async function Ds(e){let t=e.trim();if(u($t)===`direct`||!u(Y)||!t)return;let n=u(Y),r=Er,i=++sn,a=()=>i===sn&&r===Er&&n===u(Y);M($t,`direct`),M(on,``);try{let e=await G(`/api/dms`,{method:`POST`,body:JSON.stringify({workspace_id:n,member_ids:[t]})});if(n===u(Y)&&!u(J).some(t=>t.id===e.conversation.id)&&Ts(e.conversation),!a())return;M(Qt,``),M(En,!1),Ti(),await Si(n,e.conversation.id)}catch(e){a()&&M(on,xe(e,`Could not start direct message`))}finally{i===sn&&M($t,null)}}function Os(){Kr&&clearTimeout(Kr),Kr=void 0,M(Gr,null)}function ks(e,t){Os(),M(Gr,{conversation:e,restoreRoute:t,title:it(e,u(K)?.id)}),Kr=setTimeout(()=>{M(Gr,null),Kr=void 0},8e3)}async function As(){let e=u(Gr);if(e){Os();try{let t=await G(`/api/dms/${e.conversation.id}/open`,{method:`POST`});Ts(t.conversation),e.restoreRoute&&await Si(e.conversation.workspace_id,t.conversation.id)}catch(e){M(Rt,{kind:`error`,text:xe(e,`Could not restore direct message`)})}}}async function js(e){if(!e)return;let t=u(J).find(t=>t.id===e),n=u(Z)===e;if(await G(`/api/dms/${e}`,{method:`DELETE`}),M(J,u(J).filter(t=>t.id!==e)),t&&ks(t,n),n){Ti();let e=u(q)[0]?.id||``;M(Z,``),M(X,e),e&&Mi(u(Y),e),await Si(u(Y),e),await sa()}}function Ms(){if(Hr+=1,Rn?.close(),Rn=null,M(Pn,!1),!u(Y))return;let e=u(Y);Rn=Ve({workspaceID:e,onEvent:Ps,onOpen:async(t,n)=>{let r=In===e;await Ns(e,t,r,n),t()&&((!r||n)&&(Je=new Map([...u(q),...u(J)].map(e=>[e.id,e.last_seq||0]))),In=e,M(Fn,``))},onError:t=>{if(e===u(Y)){if(t instanceof Ke){if(Ne()&&Ne()!==e&&Ne()!==bi(e))return;Rn?.close(),fe(`/app`,{invalidateAll:!0,replaceState:!0}).catch(si);return}if(t instanceof be&&t.status===401){si(t);return}M(Fn,xe(t,`Could not process realtime event`))}},onStatusChange:e=>{M(Pn,e)}})}async function Ns(e,t=()=>!0,n=!0,r=!0){let i=++Hr;if(!e||e!==u(Y)||!t())return;let a=Q.root?.id||``,o=u(dt)?.kind===`bot`?u(dt).id:``;if(M(hr,[]),M(yr,[]),!r){await Promise.all([Zi(e),Qi(e,!0)]);return}if(Ie.clear(),await Promise.all([mi(),Gi(!1,!1,!1),ws(e),Ji(e),Zi(e),Qi(e,!0),Ki(e)]),i===Hr&&e===u(Y)&&t()){if(u(X)&&!u(q).some(e=>e.id===u(X))&&M(X,``),u(Z)&&!u(J).some(e=>e.id===u(Z))&&M(Z,``),!u(X)&&!u(Z)){let t=Di(e);if(t){let n=u(J).some(e=>e.id===t);M(Z,n?t:``),M(X,n?``:t),n||Mi(e,t),await Si(e,t,!0)}}if(i===Hr&&e===u(Y)&&t()&&(await sa(n),i===Hr&&e===u(Y)&&t()&&(await nc(),i===Hr&&e===u(Y)&&t()&&(a&&Q.root?.id===a&&await Q.refresh(t),o&&u(dt)?.id===o)))){let e=Hs(o);M(dt,e&&!e.deleted_at?e:null)}}}async function Ps(e,t){if((e.type===`pin.added`||e.type===`pin.removed`)&&e.channel_id===u(X)&&!u(Z)){await nc();return}if(e.type===`typing.started`||e.type===`typing.stopped`){zs(e);return}if(e.type===`agent.progress`){Bs(e);return}if(e.type===`channel.read`||e.type===`dm.read`){Ls(e);return}if(e.type===`bot_command.updated`){e.workspace_id===u(Y)&&Qi(e.workspace_id,!0).catch(t=>{e.workspace_id===u(Y)&&(M(Fn,xe(t,`Could not refresh bot commands`)),Ms())});return}if(e.type===`bot.deleted`){e.workspace_id===u(Y)&&await Fs(e);return}if(e.type===`bot.membership_removed`){e.workspace_id===u(Y)&&await Is(e);return}if((e.type===`channel.created`||e.type===`channel.updated`)&&e.workspace_id===u(Y)){await Gi(!1,!1,!1);return}if(e.type===`member.moderation_updated`&&e.workspace_id===u(Y)){let t=u(Z),n=e.payload.user_id===u(K)?.id;if(await mi(),await Ji(),await Gi(!1,n,n),n){if(await ws(),t&&(u(J).some(e=>e.id===t)?(M(Z,t),M(X,``)):M(Z,``)),!u(X)&&!u(Z)){pa(``,{messages:[],oldest_seq:0,newest_seq:0,has_older:!1,has_newer:!1},`replace`);return}await sa()}return}e.workspace_id===u(Y)&&e.payload.topic_id&&!u(Ue).some(t=>t.id===e.payload.topic_id)&&await Ki(e.workspace_id),(e.type===`message.updated`||e.type===`message.deleted`)&&u(Ct).has(e.payload.message_id||``)&&await nc();let n=(e.channel_id===u(X)||e.payload.direct_conversation_id===u(Z))&&!(e.type===`message.created`&&u(st)&&e.payload.topic_id!==u(st));if(n&&(e.type===`reaction.added`||e.type===`reaction.removed`)){Ie.applyEvent(e);return}if(eo(e,n),e.type===`message.created`&&!n&&(await ro(e)||Rs(e)),n&&(e.type===`message.created`||e.type===`message.updated`||e.type===`message.deleted`)){let n=e.payload.nonce;if(e.type===`message.created`&&n&&ut.has(n))return;let r=bo(),i=qa(e),a=e.type===`message.created`&&(i<=0||i>(u(Vn).get($())?.newest_seq||0));if(a&&!r?($n=Date.now()+1200,va($())):a?await Oa(t):e.type!==`message.created`&&await ns(e.payload.message_id||``,t),!t())return;e.type===`message.created`&&Rs(e,r,a)}if(await Q.handleEvent(e,t))return;let r=e.payload.root_message_id||e.payload.message_id;r&&e.type===`thread.state_updated`&&rs(r,e)&&await ts(r)}async function Fs(e){let t=e.payload.bot_user_id||``;if(!t)return;let n=e.payload.deleted_at||e.created_at,r=e.payload.former_handle||``,i=e=>e.id===t?{...e,handle:``,former_handle:r,deleted_at:n}:e;M(J,u(J).map(e=>({...e,members:e.members.map(i)}))),M(Ot,u(Ot).filter(e=>e.user.id!==t)),M(Mt,u(Mt).filter(e=>e.bot_user_id!==t)),M(Nt,u(Nt).filter(e=>e.bot.id!==t)),M(hr,u(hr).filter(e=>e.userID!==t)),u(un)&&M(un,{...u(un),results:u(un).results.map(e=>({...e,author:i(e.author)}))}),u(dt)?.id===t&&M(dt,null);let a=Q.selection;await Promise.all([ws(),Ji(),Zi(),Qi()]),Xi(),fo({id:t,handle:``,former_handle:r,deleted_at:n}),Q.isCurrent(a)&&await Q.refresh()}async function Is(e){let t=e.payload.bot_user_id||``;t&&(M(Ot,u(Ot).filter(e=>e.user.id!==t)),M(Mt,u(Mt).filter(e=>e.bot_user_id!==t)),M(Nt,u(Nt).filter(e=>e.bot.id!==t)),u(dt)?.id===t&&M(dt,null),await Promise.all([ws(e.workspace_id),Ji(e.workspace_id),Zi(e.workspace_id),Qi(e.workspace_id)]),Xi(e.workspace_id))}function Ls(e){let t=e.payload,n=typeof t.user_id==`string`?t.user_id:``;if(!n||n!==u(K)?.id)return;let r=e.seq??t.last_read_seq??t.seq,i=typeof r==`number`?r:Number(r)||0;if(e.type===`channel.read`){let n=typeof t.channel_id==`string`?t.channel_id:e.channel_id||``;if(!n)return;M(q,u(q).map(e=>{if(e.id!==n)return e;let t=Math.max(e.last_read_seq||0,i);return{...e,last_read_seq:t,unread_count:t>=(e.last_seq||0)?0:e.unread_count||0}}))}else{let e=typeof t.direct_conversation_id==`string`?t.direct_conversation_id:``;if(!e)return;M(J,u(J).map(t=>{if(t.id!==e)return t;let n=Math.max(t.last_read_seq||0,i);return{...t,last_read_seq:n,unread_count:n>=(t.last_seq||0)?0:t.unread_count||0}}))}}function Rs(e,t,n=!1){let r=e.payload,i=typeof r.kind==`string`?r.kind:``;if(i===`agent_commentary`||i===`agent_tool`)return;let a=typeof r.author_id==`string`?r.author_id:``;if(a&&a===u(K)?.id||r.parent_message_id)return;let o=qa(e),{channelID:s,dmID:c}=Ja(e),l=s||c;if(!l)return;let d=io(l),f=s?s===u(X)&&!u(Z):c===u(Z),p=f&&(!s||!u(st))&&(t??bo());if(o>0&&o<=(d.last_seq||0)&&!(n&&p))return;let m=o>0?o:(d.last_seq||0)+1,h=f&&!p&&(d.unread_count||0)===0;h&&Ka(l,d.last_read_seq||0,e.created_at);let g={last_seq:Math.max(d.last_seq||0,m),last_read_seq:h?Math.max(d.last_read_seq||0,m-1):d.last_read_seq||0,unread_count:p?0:(d.unread_count||0)+1};s?M(q,u(q).map(e=>e.id===l?{...e,...g}:e)):M(J,u(J).map(e=>e.id===l?{...e,...g}:e))}function zs(e){let t=e.payload,n=typeof t.user_id==`string`?t.user_id:``;if(!n||n===u(K)?.id)return;let{channelID:r,dmID:i}=Ja(e);if(!(u(X)&&r===u(X)||u(Z)&&i===u(Z)))return;if(e.type===`typing.stopped`){M(hr,u(hr).filter(e=>e.userID!==n));return}let a=Hs(n),o=u(hr).filter(e=>e.userID!==n);o.push({userID:n,user:a,expiresAt:Date.now()+vr}),M(hr,o),Us()}function Bs(e){let t=e.payload,{channelID:n,dmID:r}=Ja(e);if(!(u(X)&&n===u(X)||u(Z)&&r===u(Z)))return;let i=u(yr);M(yr,Dr(i,t,Date.now())),t.op!==`clear`&&u(yr)!==i&&Vs()}function Vs(){xr||=window.setInterval(()=>{let e=Date.now(),t=u(yr).filter(t=>t.expiresAt>e);t.length!==u(yr).length&&M(yr,t),t.length===0&&xr&&(window.clearInterval(xr),xr=void 0)},1e3)}function Hs(e){if(u(K)?.id===e)return u(K);let t=u(kt).find(t=>t.id===e);if(t)return t;let n=u(Xe).find(t=>t.author?.id===e)?.author;if(n)return n;let r=u(C).find(t=>t.author?.id===e)?.author;if(r)return r;if(Q.root?.author?.id===e)return Q.root.author;let i=u(Ot).find(t=>t.user.id===e)?.user;if(i)return i;for(let t of u(J)){let n=t.members.find(t=>t.id===e);if(n)return n}}function Us(){gr||=window.setInterval(()=>{let e=Date.now(),t=u(hr).filter(t=>t.expiresAt>e);t.length!==u(hr).length&&M(hr,t),t.length===0&&gr&&(window.clearInterval(gr),gr=void 0)},1e3)}function Ws(){u(Y)&&(u(X)||u(Z))&&Sn({workspaceID:u(Y),channelID:u(X)||void 0,directConversationID:u(Z)||void 0})}function Gs(e){e&&!e.deleted_at&&(Ri(),gs(),M(Ht,null),M(Ut,``),Ti(),M(dt,e),wi(),(u(O)===`owner`||u(O)===`moderator`)&&!u(Ot).some(t=>t.user.id===e.id)&&Ji())}function Ks(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Bo())}function qs(e){e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),is())}function Js(e,t){os()||M(Vt,{url:e,title:t})}function Ys(e){M(Wt,document.activeElement instanceof HTMLElement?document.activeElement:null),M(Ut,u(nr)),M(Ht,e),y().then(()=>{document.querySelector(`.artifact-viewer__actions > button:last-child`)?.focus()})}function Xs(){let e=u(Wt),t=u(Ht)?.id||``;M(Ht,null),M(Ut,``),M(Wt,null),y().then(()=>{if(e?.isConnected){e.focus({preventScroll:!0});return}(Q.root?document.querySelector(`.thread`):document)?.querySelector(`[data-artifact-upload-id="${CSS.escape(t)}"]`)?.focus({preventScroll:!0})})}function Zs(e,t){for(let e of qt)e.inert=!1;if(qt.clear(),e&&u(Kt)&&t)for(let e of u(Kt).children)e instanceof HTMLElement&&e!==t&&!e.inert&&(e.inert=!0,qt.add(e))}function Qs(e){if(!u(Ht)||!u(cr)||e.key!==`Tab`||!u(Gt))return;let t=Array.from(u(Gt).querySelectorAll(`a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.inert&&e.getClientRects().length>0);if(t.length===0){e.preventDefault(),u(Gt).focus();return}let n=t[0],r=t[t.length-1];e.shiftKey&&(document.activeElement===n||!u(Gt).contains(document.activeElement))?(e.preventDefault(),r.focus()):!e.shiftKey&&(document.activeElement===r||!u(Gt).contains(document.activeElement))&&(e.preventDefault(),n.focus())}function $s(e){let t=e.target;t instanceof HTMLImageElement&&t.closest(`.markdown`)&&(e.preventDefault(),Js(We(t),t.alt||`Image`))}function ec(){if(u(Ht)){Xs();return}if(u(ft)){M(ft,!1),wi();return}Ri(),Le.cancel($(),`thread`),Ti(),wi()}function tc(){if(Q.root){ec();return}u(De)&&ec(),M(Rt,{kind:`ephemeral`,text:`Pick a message to open its thread.`})}async function nc(){let e=u(X),t=++Dt,n=()=>t===Dt&&e===u(X)&&!u(Z);if(!e||u(Z)){M(ht,[]),M(St,``),M(_t,!1);return}M(_t,!0),M(St,``);try{await Hn.run(()=>G(`/api/channels/${e}/pins?limit=100`),e=>{M(ht,e.messages.filter(e=>!e.deleted_at))},n)}catch(e){if(!n())return;M(St,e instanceof Error?e.message:`Could not load pinned messages`)}finally{n()&&M(_t,!1)}}async function rc(e,t){let n=u(X);if(!n||u(Z))throw Error(`Pins are available in channels only`);t?await G(`/api/channels/${n}/pins/${e.id}`,{method:`DELETE`}):await G(`/api/channels/${n}/pins`,{method:`POST`,body:JSON.stringify({message_id:e.id})}),n===u(X)&&!u(Z)&&await nc()}function ic(){if(!u(X)||u(Z))return;let e=!u(ft);gs(),Ti(),M(ft,e),wi(),e&&nc()}async function ac(e){Er++,M(ft,!1),await $o(e.thread_root_id,e.parent_message_id?void 0:e)&&u(Y)&&Q.root?.route_id&&window.location.pathname!==_i(u(Y),Q.root.id)&&await Si(u(Y),Q.root.id)}function oc(e){if(!(e.isComposing||e.keyCode===229)&&(Qs(e),!e.defaultPrevented)){if(e.key===`Escape`){if(e.target instanceof Element&&e.target.closest(`[data-handles-escape]`)||u(Vt))return;if(os())sc();else if(u(sr)){e.preventDefault(),cc();return}else if(u(Ht)){e.preventDefault(),ec();return}else if(u(dn)){e.preventDefault(),ec();return}else if(u(Oe)){e.preventDefault(),gs();return}else if(u(lr)||Q.draft?.quote){e.preventDefault(),Q.draft?.quote&&(u(pr)===`thread`||!u(lr))?Q.setQuote(null):cs();return}else{e.preventDefault(),wo();return}}if(u(sr)&&e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey){let t=document.activeElement;if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement)&&!(t instanceof HTMLSelectElement)&&!(t instanceof HTMLElement&&t.isContentEditable)){e.preventDefault();return}}hn(e,{authRequired:u(Nn),isModalOpen:()=>os()||u(sr),messageInput:u(dr),replyInput:u(fr),target:ss})}}function sc(){u(Jr)&&u(qr).has(u(Jr).id)||u(xn)||(Ri(),M(Jr,null),M(Yr,``),M(Vt,null),M(vn,!1),M(bn,!1),M(Cn,``))}function cc(){M(sr,!1)}function lc(){if(u(cr)){M(sr,!u(sr));return}M(or,!u(or))}V(()=>a(),()=>{M(C,a().replies)}),V(()=>(u(gn),u(Y)),()=>{u(gn)&&u(gn)!==u(Y)&&Ss()}),V(()=>(u(Re),u(Y)),()=>{M(T,u(Re).find(e=>e.id===u(Y)))}),V(()=>u(T),()=>{M(O,u(T)?.role||``)}),V(()=>u(O),()=>{M(A,u(O)===`owner`)}),V(()=>(u(dt),u(Ot)),()=>{M(j,u(dt)?u(Ot).find(e=>e.user.id===u(dt)?.id):void 0)}),V(()=>(u(q),u(X)),()=>{M(F,u(q).find(e=>e.id===u(X)))}),V(()=>(u(F),u(T)),()=>{M(ee,!!u(F)&&ze(u(T)?.role))}),V(()=>(u(Ue),u(X)),()=>{M(te,$r(u(Ue),u(X)))}),V(()=>(u(te),u(st)),()=>{M(L,u(te).find(e=>e.id===u(st)))}),V(()=>(u(X),u(Z)),()=>{ra(u(X),u(Z))}),V(()=>(u(J),u(Z)),()=>{M(B,u(J).find(e=>e.id===u(Z)))}),V(()=>u(B),()=>{M(se,u(B)?.can_send??!0)}),V(()=>(u(Z),u(X)),()=>{M(nr,u(Z)||u(X)||``)}),V(()=>u(nr),()=>{Xr(u(nr))}),V(()=>u(nr),()=>{$i(u(nr))}),V(()=>(u(X),u(Nt),u(B)),()=>{M(U,u(X)?u(Nt):u(B)?u(Nt).filter(e=>u(B)?.members?.some(t=>t.id===e.bot.id)):[])}),V(()=>(u(Z),u(J),u(X),u(q)),()=>{M(W,u(Z)?u(J).find(e=>e.id===u(Z))||{}:u(X)&&u(q).find(e=>e.id===u(X))||{})}),V(()=>(u(nr),u(W)),()=>{M(me,Na(u(nr),u(W)))}),V(()=>(u(Mn),u(q),u(J)),()=>{M(he,u(Mn)?u(q).reduce((e,t)=>e+(t.unread_count||0),0)+u(J).reduce((e,t)=>e+(t.unread_count||0),0):0)}),V(()=>u(he),()=>{It?.setUnreadCount(u(he))}),V(()=>(u(me),u(W)),()=>{M(ge,u(me)>0&&u(W).last_read_seq||0)}),V(()=>(u(me),u(nr),u(ge),u(Vn)),()=>{M(ye,u(me)>0&&ao(u(nr),u(ge),u(Vn)))}),V(()=>(u(me),u(nr),u(ge),u(Vn)),()=>{M(Se,u(me)>0?oo(u(nr),u(ge),u(Vn)):``)}),V(()=>(u(Xe),u(On),u(kn),u(Sr)),()=>{M(we,Jt(u(Xe),{hideCommentary:u(On),hideToolCalls:u(kn)},u(Sr)))}),V(()=>u(yr),()=>{M(Te,u(yr).some(e=>e.lines.some(e=>!e.finalized)))}),V(()=>u(ht),()=>{M(Ct,new Set(u(ht).map(e=>e.id)))}),V(()=>(u(yr),u(Nt)),()=>{M(Ee,vo(u(yr),u(Nt),Hs))}),V(()=>(u(Ht),u(Ut),u(nr)),()=>{u(Ht)&&u(Ut)&&u(Ut)!==u(nr)&&(M(Ht,null),M(Ut,``),M(Wt,null))}),V(()=>(u(ft),a(),u(dt),u(Ht)),()=>{M(De,u(ft)||a().selection!==null||u(dt)!==null||u(Ht)!==null)}),V(()=>(u(un),u(dn)),()=>{M(Oe,u(un)!==null&&!u(dn))}),V(()=>(u(cr),u(Ht),u(Gt)),()=>{Zs(u(cr)&&u(Ht)!==null,u(Gt))}),V(()=>(u(Xe),u(J),u(K)),()=>{M(ke,rt(u(Xe),u(J),u(K)?.id||``))}),V(()=>(u(K),u(ke),u(kt),u(B)),()=>{M(zt,ot(u(K),u(ke),u(kt),u(B)))}),V(()=>(u(K),u(Z),u(X),u(Ge)),()=>{M(Bt,u(K)?.id&&(u(Z)||u(X)&&u(Ge)!==null&&u(Ge)!==`muted`)?u(K).id:``)}),V(()=>(u(ur),u(lr),u(Xe)),()=>{u(ur)===`channel`&&u(lr)&&!u(Xe).some(e=>e.id===u(lr)?.id)&&cs()}),V(()=>(u(ur),u(lr),u(Xe)),()=>{u(ur)===`dm`&&u(lr)&&!u(Xe).some(e=>e.id===u(lr)?.id)&&cs()}),V(()=>(u(Mn),c(Ne()),c(Pe())),()=>{u(Mn)&&Ci(Ne(),Pe())}),re(),ie();var uc=s();r(`1oa2eo8`,e=>{var t=To();p(e,t)}),v(`keydown`,E,oc,!0),v(`pointerdown`,E,function(...e){ln?.apply(this,e)},!0);var dc=ce(uc),fc=e=>{mr(e,{})},pc=e=>{var r=Ro(),i=ce(r);let o;var s=I(i),l=e=>{{let t=H(()=>u(F)?u(Ge):null),n=H(()=>(u(B),c(it),u(K),u(F),c(vt),b(()=>u(B)?`@${it(u(B),u(K)?.id)}`:u(F)?`#${vt(u(F))}`:void 0))),r=H(()=>(u(B),u(F),b(()=>u(B)?void 0:u(F)?.external_url))),i=H(()=>(u(F),b(()=>!!u(F)))),a=H(()=>(u(T),b(()=>u(T)?.name)));no(e,{get channelNotifPreference(){return u(t)},get channelNotifSaving(){return u(Ye)},get pinnedOpen(){return u(ft)},get channelTitle(){return u(n)},get externalURL(){return u(r)},get pinsAvailable(){return u(i)},get channelSettingsAvailable(){return u(ee)},get connected(){return u(Pn)},get platform(){return c(It),b(()=>It.platform)},get searchQuery(){return u(cn)},get sidebarCollapsed(){return u(or)},get mobileNavOpen(){return u(sr)},get mobileNavigation(){return u(cr)},get workspaceName(){return u(a)},onOpenChannelSettings:ui,onOpenWorkspaceSettings:li,onResetSearch:gs,onSearch:()=>void ps(),onSearchQuery:e=>M(cn,e),onToggleSidebar:lc,onToggleChannelNotifications:()=>void ia(),onPinnedItems:ic})}};P(s,e=>{je&&It&&e(l)});var h=k(s,2),g=I(h),_=e=>{var t=m(`×`);p(e,t)},v=e=>{var t=Eo();p(e,t)};P(g,e=>{u(sr)?e(_):e(v,-1)}),t(h);var y=k(h,2),S=e=>{var t=Do();n(`click`,t,cc),p(e,t)};P(y,e=>{u(sr)&&e(S)});var E=k(y,2);{let e=H(()=>(u(Me),b(()=>je&&u(Me).url===`/`?`/app`:u(Me).url))),t=H(()=>(c(At),u(Me),b(()=>At(u(Me))))),n=H(()=>u($t)===`workspace`);Wr(E,{get workspaces(){return u(Re)},get homeHref(){return u(e)},get homeLabel(){return u(Me),b(()=>u(Me).label)},get homeTitle(){return u(t)},get selectedWorkspaceID(){return u(Y)},get workspaceName(){return u(Xt)},get showWorkspaceCreate(){return u(ir)},get createPending(){return u(n)},get createError(){return u(en)},hrefForWorkspace:e=>_i(e),onSelectWorkspace:e=>void Wi(e),onToggleWorkspaceCreate:zi,onWorkspaceName:e=>M(Xt,e),onCreateWorkspace:()=>void Hi()})}var R=k(E,2);{let e=H(()=>(u(T),b(()=>u(T)?.name))),t=H(()=>(u(T),c(_e),b(()=>u(T)?.icon_url?_e(u(T).icon_url):``))),n=H(()=>!je),r=H(()=>(u(Gr),b(()=>u(Gr)?.title)));gi(R,{get workspaceID(){return u(Y)},get workspaceName(){return u(e)},get workspaceIconURL(){return u(t)},get connected(){return u(Pn)},get sidebarCollapsed(){return u(or)},get showHeader(){return u(n)},get channels(){return u(q)},get directConversations(){return u(J)},get recentPeople(){return u(ke)},get currentUser(){return u(K)},get selectedChannelID(){return u(X)},get selectedDirectID(){return u(Z)},get selectedProfile(){return u(dt)},onToggleCollapse:lc,hrefForChannel:e=>_i(u(Y),e),hrefForDirect:e=>_i(u(Y),e),onSelectChannel:e=>void na(e),onCreateChannel:Bi,onSelectDirect:e=>void Es(e),onCreateDirect:Vi,onHideDirect:e=>void js(e),get hiddenDirectTitle(){return u(r)},onUndoHideDirect:()=>void As(),onOpenProfile:Gs,onOpenSettings:ci,onOpenWorkspaceSettings:li})}var ne=k(R,2),re=I(ne),ie=e=>{{let t=H(()=>(u(T),b(()=>u(T)?.name))),n=H(()=>(u(K),b(()=>u(K)?.id))),r=H(()=>(a(),b(()=>a().root!==null)));go(e,{get selectedDirect(){return u(B)},get selectedChannel(){return u(F)},get workspaceName(){return u(t)},get currentUserID(){return u(n)},get searchQuery(){return u(cn)},get threadOpen(){return u(r)},get pinnedOpen(){return u(ft)},get channelNotifPreference(){return u(Ge)},get channelNotifSaving(){return u(Ye)},get channelSettingsAvailable(){return u(ee)},onSearchQuery:e=>M(cn,e),onSearch:()=>void ps(),onResetSearch:gs,onToggleThread:tc,onToggleChannelNotifications:()=>void ia(),onPinnedItems:ic,onOpenChannelSettings:ui})}};P(re,e=>{je||e(ie)});var ae=k(re,2),V=e=>{var r=Oo(),i=I(r),a=k(I(i)),o=D(a,!0);t(i);var s=k(i,2);t(r),N(()=>d(o,(u(L),b(()=>u(L).name)))),n(`click`,s,()=>void fa(``)),p(e,r)};P(ae,e=>{u(L)&&e(V)});var ue=k(ae,2);{let e=H(()=>u(Wn)!==`idle`),t=H(()=>(a(),b(()=>a().root?.id))),n=H(()=>(u(K),b(()=>u(K)?.id))),r=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),i=H(()=>u(A)&&!u(Z));mt(ue,{get channelID(){return u(X)},get pinnedMessageIDs(){return u(Ct)},onTogglePin:rc,onCopyLink:vi,get messages(){return u(we)},get selectedDirect(){return u(B)},get selectedChannel(){return u(F)},get mentionPeople(){return u(zt)},get mentionAttentionUserID(){return u(Bt)},get restoreState(){return u(tr)},get viewKey(){return u(er)},get loading(){return u(rr)},get unreadCount(){return u(me)},get unreadBoundarySeq(){return u(ge)},get unreadBoundaryLoaded(){return u(ye)},get unreadSince(){return u(Se)},get hasOlder(){return u(Jn)},get hasNewer(){return u(Yn)},get loadingOlder(){return u(Xn)},get loadingNewer(){return u(Zn)},get prepending(){return u(e)},get selectedThreadID(){return u(t)},get currentUserID(){return u(n)},get reactionController(){return Ie},get reactionsDisabled(){return u(r)},get canDeleteAnyMessage(){return u(i)},get deletingMessageIDs(){return u(qr)},onListRef:e=>M(zn,e),onActivateMessageComposer:qi,onInlineImagePointerUp:$s,onOpenProfile:Gs,onReply:as,onOpenThread:Qo,onJumpToQuote:e=>void ls(e),onOpenImage:Js,onOpenArtifact:Ys,onLoadOlder:wa,onLoadNewer:e=>Ta(e===`wheel`),onJumpToUnread:()=>void us(),onHistorySettled:Aa,onReachedBottom:Ra,onMarkRead:e=>{Ra({all:!0,seq:e})},onRetry:Ko,onDiscard:qo,onDeleteMessage:Xo,get editController(){return Le},get editScope(){return u(nr)},onMessageEdited:Yo,get topics(){return u(Ue)},onSelectTopic:e=>void fa(e)})}var W=k(ue,2);wr(W,{get turns(){return u(yr)}});var de=k(W,2);{let e=H(()=>(u(K),b(()=>u(K)?.id)));br(de,{get entries(){return u(hr)},get currentUserID(){return u(e)}})}var fe=k(de,2),pe=I(fe);{let e=H(()=>(u(Te),a(),b(()=>u(Te)&&a().root===null)));yt(pe,{get active(){return u(e)},get agentNames(){return u(Ee)}})}var he=k(pe,2),ve=e=>{var t=ko(),n=D(t);N(()=>d(n,`Live updates: ${u(Fn)??``}`)),p(e,t)};P(he,e=>{u(Fn)&&e(ve)});var G=k(he,2),be=e=>{var t=ko(),n=D(t);N(()=>d(n,`Mentions unavailable: ${u(Rr)??``}`)),p(e,t)};P(G,e=>{u(Rr)&&e(be)});var xe=k(G,2),Ce=e=>{var r=Ao();let i;var a=I(r),o=D(a,!0),s=k(a,2),c=D(s,!0),l=k(s,2);t(r),N(()=>{i=w(r,1,`composer-notice`,null,i,{"composer-notice--error":u(Rt).kind===`error`}),d(o,(u(Rt),b(()=>u(Rt).kind===`ephemeral`?`Only visible to you`:`Action failed`))),d(c,(u(Rt),b(()=>u(Rt).text)))}),n(`click`,l,()=>M(Rt,null)),p(e,r)};P(xe,e=>{u(Rt)&&e(Ce)});var Ae=k(xe,2),Ne=e=>{var r=Mo(),i=k(I(r),2),a=I(i);a.value=a.__value=``;var o=k(a);f(o,1,()=>u(te),e=>e.id,(e,t)=>{var n=jo(),r=D(n,!0),i={};N(()=>{d(r,(u(t),b(()=>u(t).name))),i!==(i=(u(t),b(()=>u(t).id)))&&(n.value=(n.__value=i)??``)}),p(e,n)}),t(i);var s;x(i),t(r),N(()=>{s!==(s=u(at))&&(i.value=(i.__value=s)??``,le(i,s))}),n(`change`,i,e=>M(at,e.currentTarget.value)),p(e,r)};P(Ae,e=>{u(X),u(te),b(()=>u(X)&&u(te).length>0)&&e(Ne)});var Pe=k(Ae,2);{let e=H(()=>(u(B),u(se),c(it),u(K),u(F),c(vt),b(()=>u(B)&&!u(se)?`No active recipient`:u(B)?`Message ${it(u(B),u(K)?.id)}`:u(F)?`Message #${vt(u(F))}`:`Pick a channel to start`))),t=H(()=>!!u(B)&&!u(se)),n=H(()=>u(lr)&&u(ur)===(u(Z)?`dm`:`channel`)?u(lr):null),r=H(()=>u(X)?u(Mt):[]);tt(Pe,{get value(){return u(Yt)},get placeholder(){return u(e)},ariaLabel:`Message body`,submitLabel:`Send`,get disabled(){return u(t)},get pendingUpload(){return u(mn)},get replyTarget(){return u(n)},showUpload:!0,showToolbar:!0,get slashCommands(){return u(r)},get botCommands(){return u(U)},get mentionPeople(){return u(zt)},onValue:e=>{let t=u(Yt);M(Yt,e),e.trim()&&e!==t?Ws():e.trim()||wn()},onSubmit:()=>void Bo(),onKeydown:Ks,onFocus:qi,onInputRef:e=>M(dr,e),onUploadFile:Cs,onRemoveUpload:Ss,onClearReply:cs})}t(fe),t(ne);var Fe=k(ne,2),ze=e=>{var n=No();ar(I(n),{get upload(){return u(Ht)},onClose:Xs}),t(n),oe(n,e=>M(Gt,e),()=>u(Gt)),N(()=>{n.inert=u(sr),z(n,`role`,u(cr)?`dialog`:`complementary`),z(n,`aria-modal`,u(cr)?`true`:void 0)}),p(e,n)};P(Fe,e=>{u(Ht)&&e(ze)});var Be=k(Fe,2),Ve=e=>{{let t=H(()=>u(Ht)!==null),n=H(()=>u(sr)||u(Ht)!==null);Ui(e,{get session(){return u(un)},get covered(){return u(t)},get inert(){return u(n)},contextFor:_s,onClose:gs,onOpenResult:e=>void vs(e),onLoadMore:()=>void hs()})}},He=e=>{var r=Lo();let i;var o=I(r),s=e=>{Ei(e,{get messages(){return u(ht)},get loading(){return u(_t)},get error(){return u(St)},get topics(){return u(Ue)},get mentionPeople(){return u(zt)},get mentionAttentionUserID(){return u(Bt)},onClose:ec,onOpenThread:e=>void ac(e),onOpenImage:Js,onOpenArtifact:Ys,onUnpin:e=>rc(e,!0),onSelectTopic:e=>{M(ft,!1),fa(e)}})},c=e=>{{let t=H(()=>(a(),b(()=>a().draft?.body??``))),n=H(()=>(a(),b(()=>a().draft?.quote??null))),r=H(()=>(a(),b(()=>a().draft?.error||a().error))),i=H(()=>(a(),b(()=>a().draft?.sending??!1))),o=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),s=H(()=>u(dn)&&u(un)?()=>void ys():void 0),c=H(()=>(u(K),b(()=>u(K)?.id))),l=H(()=>(u(B),u(se),b(()=>!(!u(B)||u(se))))),d=H(()=>u(A)&&!u(Z));xt(e,{get history(){return Q},get root(){return a(),b(()=>a().root)},get replies(){return u(C)},get threadState(){return a(),b(()=>a().state)},get replyBody(){return u(t)},get replyTarget(){return u(n)},get replyError(){return u(r)},get replySending(){return u(i)},get mentionPeople(){return u(zt)},get mentionAttentionUserID(){return u(Bt)},get agentResponding(){return u(Te)},get respondingAgentNames(){return u(Ee)},get replyDisabled(){return u(o)},onClose:ec,get onBack(){return u(s)},onReplyBody:e=>Q.updateDraft(e),onSubmitReply:()=>void is(),onReplyKeydown:qs,onReplyFocus:()=>M(pr,`thread`),onReplyInputRef:e=>M(fr,e),get currentUserID(){return u(c)},get reactionController(){return Ie},get reactionsDisabled(){return u(l)},onSetReplyTarget:as,onClearReply:()=>Q.setQuote(null),get canDeleteAnyMessage(){return u(d)},get deletingMessageIDs(){return u(qr)},onDeleteMessage:Xo,get channelID(){return u(X)},get pinnedMessageIDs(){return u(Ct)},onTogglePin:rc,onCopyLink:vi,get editController(){return Le},get editScope(){return u(nr)},onMessageEdited:Yo,onActivateThreadComposer:()=>M(pr,`thread`),onInlineImagePointerUp:$s,onJumpToQuote:e=>void ls(e),onOpenImage:Js,onOpenArtifact:Ys})}},l=e=>{var r=Io(),i=ce(r),o=k(I(i),2);t(i);var s=k(i,2),c=e=>{var t=Po(),r=ce(t),i=D(r,!0),o=k(r,2);N(()=>d(i,(a(),b(()=>a().error)))),n(`click`,o,()=>a().selection&&void $o(a().selection.messageID)),p(e,t)},l=e=>{var t=Fo();p(e,t)};P(s,e=>{a(),b(()=>a().error)?e(c):e(l,-1)}),n(`click`,o,ec),p(e,r)},f=e=>{{let t=H(()=>(u(T),b(()=>u(T)?.name))),n=H(()=>u($t)===`direct`);gt(e,{get profile(){return u(dt)},get currentUser(){return u(K)},get workspaceName(){return u(t)},get currentUserRole(){return u(O)},get moderation(){return u(j)},onClose:ec,onEdit:ci,get messagePending(){return u(n)},get messageError(){return u(on)},onMessage:e=>void Ds(e),onApprove:e=>void ea(e,{role:`member`,clear_timeout:!0,blocked:!1}),onTimeout:e=>void ea(e,{timeout_minutes:60}),onBlock:e=>void ea(e,{blocked:!0}),onUnblock:e=>void ea(e,{blocked:!1,clear_timeout:!0})})}},m=e=>{Ua(e,{})};P(o,e=>{u(ft)?e(s):(a(),b(()=>a().root)?e(c,1):(a(),b(()=>a().selection)?e(l,2):u(dt)?e(f,3):e(m,-1)))}),t(r),N(()=>{i=w(r,1,`thread`,null,i,{open:u(De),covered:u(Ht)!==null}),r.inert=u(sr)||u(Ht)!==null,z(r,`aria-hidden`,u(Ht)?`true`:void 0),z(r,`aria-label`,u(ft)?`Pinned messages pane`:u(dt)?`Profile pane`:`Thread pane`)}),p(e,r)};P(Be,e=>{u(Oe)&&u(un)?e(Ve):e(He,-1)}),t(i),oe(i,e=>M(Kt,e),()=>u(Kt));var We=k(i,2),Ke=e=>{{let t=H(()=>It!=null);Va(e,{get user(){return u(K)},get workspaces(){return u(Re)},get initialSection(){return u(yn)},get hideCommentary(){return u(On)},get hideToolCalls(){return u(kn)},get userAlign(){return u(An)},get otherAlign(){return u(jn)},get isDesktop(){return u(t)},onUserUpdated:fi,onHideCommentary:ii,onHideToolCalls:ai,onUserAlign:ni,onOtherAlign:ri,onBrowserNotificationsChanged:e=>M(Dn,e),onClose:sc})}};P(We,e=>{u(vn)&&u(K)&&e(Ke)});var qe=k(We,2),Je=e=>{Yi(e,{get channel(){return u(F)},get saving(){return u(xn)},get error(){return u(Cn)},onClose:sc,onArchivedChange:e=>void di(e)})};P(qe,e=>{u(bn)&&u(F)&&e(Je)});var Xe=k(qe,2),Ze=e=>{{let t=H(()=>u($t)===`channel`);Ar(e,{get channelName(){return u(Zt)},get pending(){return u(t)},get error(){return u(tn)},onChannelName:e=>M(Zt,e),onClose:sc,onCreate:()=>void ta()})}};P(Xe,e=>{u(Tn)&&e(Ze)});var Qe=k(Xe,2),et=e=>{{let t=H(()=>(u(K),b(()=>u(K)?.id))),n=H(()=>u($t)===`direct`),r=H(()=>u(on)||u(Rr));Ir(e,{get people(){return u(zt)},get currentUserID(){return u(t)},get memberID(){return u(Qt)},get pending(){return u(n)},get error(){return u(r)},onMemberID:e=>M(Qt,e),onClose:sc,onStart:e=>void Ds(e)})}};P(Qe,e=>{u(En)&&e(et)});var nt=k(Qe,2),rt=e=>{{let t=H(()=>(u(qr),u(Jr),b(()=>u(qr).has(u(Jr).id))));_r(e,{get message(){return u(Jr)},get deleting(){return u(t)},get error(){return u(Yr)},onClose:sc,onConfirm:()=>void Zo()})}};P(nt,e=>{u(Jr)&&e(rt)});var ot=k(nt,2),st=e=>{$e(e,{get url(){return u(Vt),b(()=>u(Vt).url)},get title(){return u(Vt),b(()=>u(Vt).title)},onClose:sc})};P(ot,e=>{u(Vt)&&e(st)}),N(()=>{o=w(i,1,`shell`,null,o,{"desktop-shell":je,"nav-open":u(sr),"sidebar-collapsed":u(or),"thread-open":u(De)&&!u(Oe),"search-open":u(Oe),"artifact-open":u(Ht)!==null}),z(i,`data-connected`,u(Pn)),z(i,`data-app-ready`,u(Pn)&&u(Mn)),z(h,`aria-expanded`,u(sr)),ne.inert=u(sr)}),n(`click`,h,()=>M(sr,!u(sr))),p(e,r)};P(dc,e=>{u(Nn)?e(fc):e(pc,-1)}),p(e,uc),_(),h()}W([`click`,`change`]);export{wo as n,zo as t}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/entry/app.B0zzvMsN.js b/apps/api/internal/webassets/dist/_app/immutable/entry/app.AsIXIPke.js similarity index 84% rename from apps/api/internal/webassets/dist/_app/immutable/entry/app.B0zzvMsN.js rename to apps/api/internal/webassets/dist/_app/immutable/entry/app.AsIXIPke.js index 69e8de1dc..b1a8168fb 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/entry/app.B0zzvMsN.js +++ b/apps/api/internal/webassets/dist/_app/immutable/entry/app.AsIXIPke.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.DQ4BRnNh.js","../chunks/DK3Fl9T5.js","../chunks/D5itlxY6.js","../chunks/DAzn6KWz.js","../chunks/Dt-HX3Vu.js","../chunks/xihTtKlq.js","../chunks/DD-5HdQf.js","../chunks/Dqjw8vaP.js","../chunks/DEPNME54.js","../assets/0.C7M1Y4Cy.css","../nodes/1.vKcy_xta.js","../chunks/BaUeYfz1.js","../nodes/2.DWB8J1zf.js","../chunks/Qo16U5GS.js","../chunks/DBpO2iwN.js","../nodes/3.CmrxTbkM.js","../chunks/uBIymjUX.js","../chunks/Cbo1iWSZ.js","../nodes/4.DCXgR56v.js","../chunks/BssaRJHK.js","../chunks/BTDeUFdm.js","../chunks/CCzTQXXV.js","../assets/QuoteBlock.Bmfc9wvU.css","../chunks/W96STwh2.js","../chunks/DlGnnCJo.js","../chunks/C0IGmcs2.js","../chunks/DaoRWw_m.js","../assets/ThreadPanel.DFXp9CyT.css","../chunks/CVdgRPye.js","../chunks/BIhzYFGW.js","../assets/ChatApp.BrxGlI__.css","../nodes/5.Bgjh3W4T.js","../nodes/6.D1H8DGKr.js","../nodes/7.CXr_mFW4.js","../chunks/CkTB2XUz.js","../nodes/8.BpryY0OA.js","../nodes/9.BSSyUS41.js","../nodes/10.cjUbnoHT.js","../nodes/11.DBz8aivf.js","../nodes/12.Hh37mWN8.js","../assets/12.CzRaoRZI.css","../nodes/13.Dnc1ydkj.js","../assets/13.CMVv15Ug.css"])))=>i.map(i=>d[i]); -import{At as e,Et as t,F as n,I as r,K as i,N as a,P as o,R as s,T as c,Tt as l,X as u,a as d,at as f,ft as p,gt as m,ht as h,i as g,it as _,j as v,lt as y,ot as b,r as x,s as S,ut as C,yt as w}from"../chunks/D5itlxY6.js";import{t as T}from"../chunks/uBIymjUX.js";import"../chunks/xihTtKlq.js";var E={},D=r(`
                `),O=r(` `,1);function k(r,g){t(g,!0);let T=d(g,`components`,23,()=>[]),E=d(g,`data_0`,3,null),k=d(g,`data_1`,3,null),A=d(g,`data_2`,3,null);b(()=>g.stores.page.set(g.page)),f(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),k(),A(),g.stores.page.notify()});let j=m(!1),M=m(!1),N=m(null);x(()=>{let e=g.stores.page.subscribe(()=>{i(j)&&(h(M,!0),u().then(()=>{h(N,document.title||`untitled page`,!0)}))});return h(j,!0),e});let P=w(()=>g.constructors[2]);var F=O(),I=C(F),L=e=>{let t=w(()=>g.constructors[0]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=n(),a=C(r),s=e=>{let t=w(()=>g.constructors[1]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=n(),a=C(r);c(a,()=>i(P),(e,t)=>{S(t(e,{get data(){return A()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),o(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),o(e,r)},l=e=>{let t=w(()=>g.constructors[1]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),o(e,r)};v(a,e=>{g.constructors[2]?e(s):e(l,-1)}),o(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),o(e,r)},R=e=>{let t=w(()=>g.constructors[0]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),o(e,r)};v(I,e=>{g.constructors[1]?e(L):e(R,-1)});var z=p(I,2),B=t=>{var n=D(),r=y(n),c=e=>{var t=s();_(()=>a(t,i(N))),o(e,t)};v(r,e=>{i(M)&&e(c)}),e(n),o(t,n)};v(z,e=>{i(j)&&e(B)}),o(r,F),l()}var A=g(k),j=[()=>T(()=>import(`../nodes/0.DQ4BRnNh.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url),()=>T(()=>import(`../nodes/1.vKcy_xta.js`),__vite__mapDeps([10,2,1,5,11,3,4]),import.meta.url),()=>T(()=>import(`../nodes/2.DWB8J1zf.js`),__vite__mapDeps([12,1,2,3,4,5,6,8,11,13,14]),import.meta.url),()=>T(()=>import(`../nodes/3.CmrxTbkM.js`),__vite__mapDeps([15,1,2,16,5,17]),import.meta.url),()=>T(()=>import(`../nodes/4.DCXgR56v.js`),__vite__mapDeps([18,2,1,5,17,19,3,4,16,6,8,7,13,14,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/5.Bgjh3W4T.js`),__vite__mapDeps([31,2,1,5,19,3,4,16,6,8,7,13,14,17,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/6.D1H8DGKr.js`),__vite__mapDeps([32,1,4,13]),import.meta.url),()=>T(()=>import(`../nodes/7.CXr_mFW4.js`),__vite__mapDeps([33,1,2,5,8,7,14,28,34]),import.meta.url),()=>T(()=>import(`../nodes/8.BpryY0OA.js`),__vite__mapDeps([35,1,2,5,8,7,14,24,25,28,29,34]),import.meta.url),()=>T(()=>import(`../nodes/9.BSSyUS41.js`),__vite__mapDeps([36,1,2,5,21,8,25,29]),import.meta.url),()=>T(()=>import(`../nodes/10.cjUbnoHT.js`),__vite__mapDeps([37,1,2,3,4,5,6,8,14,29]),import.meta.url),()=>T(()=>import(`../nodes/11.DBz8aivf.js`),__vite__mapDeps([38,2,1,5,19,3,4,16,6,8,7,13,14,17,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/12.Hh37mWN8.js`),__vite__mapDeps([39,1,2,5,8,7,20,21,22,23,24,25,29,40]),import.meta.url),()=>T(()=>import(`../nodes/13.Dnc1ydkj.js`),__vite__mapDeps([41,1,2,5,8,7,20,21,22,24,26,27,29,42]),import.meta.url)],M=[],N={"/":[3],"/app":[4],"/app/[workspaceID]":[5],"/app/[workspaceID]/(settings)/settings":[6,[2]],"/app/[workspaceID]/(settings)/settings/bots":[7,[2]],"/app/[workspaceID]/(settings)/settings/integrations":[8,[2]],"/app/[workspaceID]/(settings)/settings/members":[9,[2]],"/app/[workspaceID]/(settings)/settings/overview":[10,[2]],"/app/[workspaceID]/[targetID]":[11],"/embed/channel/[workspaceID]/[channelID]":[12],"/embed/thread/[workspaceID]/[messageID]":[13]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t),z=()=>T(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{R as decode,F as decoders,N as dictionary,I as encoders,z as get_error_template,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BH6o2SZv.js","../chunks/DK3Fl9T5.js","../chunks/D5itlxY6.js","../chunks/DAzn6KWz.js","../chunks/Dt-HX3Vu.js","../chunks/xihTtKlq.js","../chunks/DD-5HdQf.js","../chunks/Dqjw8vaP.js","../chunks/DEPNME54.js","../assets/0.BWktymRB.css","../nodes/1.vKcy_xta.js","../chunks/BaUeYfz1.js","../nodes/2.BYejzzrM.js","../chunks/B4px22Nd.js","../chunks/DBpO2iwN.js","../nodes/3.CgfaV_Gs.js","../chunks/uBIymjUX.js","../chunks/Cbo1iWSZ.js","../nodes/4.DEx-qtfQ.js","../chunks/BIvy8mRH.js","../chunks/BTDeUFdm.js","../chunks/CCzTQXXV.js","../assets/QuoteBlock.Bmfc9wvU.css","../chunks/W96STwh2.js","../chunks/DlGnnCJo.js","../chunks/C0IGmcs2.js","../chunks/DaoRWw_m.js","../assets/ThreadPanel.DFXp9CyT.css","../chunks/CVdgRPye.js","../chunks/BIhzYFGW.js","../assets/ChatApp.BrxGlI__.css","../nodes/5.DavmdShP.js","../nodes/6.wekSS-ZX.js","../nodes/7.CXr_mFW4.js","../chunks/CkTB2XUz.js","../nodes/8.BpryY0OA.js","../nodes/9.BSSyUS41.js","../nodes/10.cjUbnoHT.js","../nodes/11.Cn1NzgMl.js","../nodes/12.Hh37mWN8.js","../assets/12.CzRaoRZI.css","../nodes/13.Dnc1ydkj.js","../assets/13.CMVv15Ug.css"])))=>i.map(i=>d[i]); +import{At as e,Et as t,F as n,I as r,K as i,N as a,P as o,R as s,T as c,Tt as l,X as u,a as d,at as f,ft as p,gt as m,ht as h,i as g,it as _,j as v,lt as y,ot as b,r as x,s as S,ut as C,yt as w}from"../chunks/D5itlxY6.js";import{t as T}from"../chunks/uBIymjUX.js";import"../chunks/xihTtKlq.js";var E={},D=r(`
                `),O=r(` `,1);function k(r,g){t(g,!0);let T=d(g,`components`,23,()=>[]),E=d(g,`data_0`,3,null),k=d(g,`data_1`,3,null),A=d(g,`data_2`,3,null);b(()=>g.stores.page.set(g.page)),f(()=>{g.stores,g.page,g.constructors,T(),g.form,E(),k(),A(),g.stores.page.notify()});let j=m(!1),M=m(!1),N=m(null);x(()=>{let e=g.stores.page.subscribe(()=>{i(j)&&(h(M,!0),u().then(()=>{h(N,document.title||`untitled page`,!0)}))});return h(j,!0),e});let P=w(()=>g.constructors[2]);var F=O(),I=C(F),L=e=>{let t=w(()=>g.constructors[0]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=n(),a=C(r),s=e=>{let t=w(()=>g.constructors[1]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params},children:(e,t)=>{var r=n(),a=C(r);c(a,()=>i(P),(e,t)=>{S(t(e,{get data(){return A()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[2]=e,()=>T()?.[2])}),o(e,r)},$$slots:{default:!0}}),e=>T()[1]=e,()=>T()?.[1])}),o(e,r)},l=e=>{let t=w(()=>g.constructors[1]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return k()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[1]=e,()=>T()?.[1])}),o(e,r)};v(a,e=>{g.constructors[2]?e(s):e(l,-1)}),o(e,r)},$$slots:{default:!0}}),e=>T()[0]=e,()=>T()?.[0])}),o(e,r)},R=e=>{let t=w(()=>g.constructors[0]);var r=n(),a=C(r);c(a,()=>i(t),(e,t)=>{S(t(e,{get data(){return E()},get form(){return g.form},get params(){return g.page.params}}),e=>T()[0]=e,()=>T()?.[0])}),o(e,r)};v(I,e=>{g.constructors[1]?e(L):e(R,-1)});var z=p(I,2),B=t=>{var n=D(),r=y(n),c=e=>{var t=s();_(()=>a(t,i(N))),o(e,t)};v(r,e=>{i(M)&&e(c)}),e(n),o(t,n)};v(z,e=>{i(j)&&e(B)}),o(r,F),l()}var A=g(k),j=[()=>T(()=>import(`../nodes/0.BH6o2SZv.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]),import.meta.url),()=>T(()=>import(`../nodes/1.vKcy_xta.js`),__vite__mapDeps([10,2,1,5,11,3,4]),import.meta.url),()=>T(()=>import(`../nodes/2.BYejzzrM.js`),__vite__mapDeps([12,1,2,3,4,5,6,8,11,13,14]),import.meta.url),()=>T(()=>import(`../nodes/3.CgfaV_Gs.js`),__vite__mapDeps([15,1,2,16,5,17]),import.meta.url),()=>T(()=>import(`../nodes/4.DEx-qtfQ.js`),__vite__mapDeps([18,2,1,5,17,19,3,4,16,6,8,7,13,14,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/5.DavmdShP.js`),__vite__mapDeps([31,2,1,5,19,3,4,16,6,8,7,13,14,17,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/6.wekSS-ZX.js`),__vite__mapDeps([32,1,4,13]),import.meta.url),()=>T(()=>import(`../nodes/7.CXr_mFW4.js`),__vite__mapDeps([33,1,2,5,8,7,14,28,34]),import.meta.url),()=>T(()=>import(`../nodes/8.BpryY0OA.js`),__vite__mapDeps([35,1,2,5,8,7,14,24,25,28,29,34]),import.meta.url),()=>T(()=>import(`../nodes/9.BSSyUS41.js`),__vite__mapDeps([36,1,2,5,21,8,25,29]),import.meta.url),()=>T(()=>import(`../nodes/10.cjUbnoHT.js`),__vite__mapDeps([37,1,2,3,4,5,6,8,14,29]),import.meta.url),()=>T(()=>import(`../nodes/11.Cn1NzgMl.js`),__vite__mapDeps([38,2,1,5,19,3,4,16,6,8,7,13,14,17,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url),()=>T(()=>import(`../nodes/12.Hh37mWN8.js`),__vite__mapDeps([39,1,2,5,8,7,20,21,22,23,24,25,29,40]),import.meta.url),()=>T(()=>import(`../nodes/13.Dnc1ydkj.js`),__vite__mapDeps([41,1,2,5,8,7,20,21,22,24,26,27,29,42]),import.meta.url)],M=[],N={"/":[3],"/app":[4],"/app/[workspaceID]":[5],"/app/[workspaceID]/(settings)/settings":[6,[2]],"/app/[workspaceID]/(settings)/settings/bots":[7,[2]],"/app/[workspaceID]/(settings)/settings/integrations":[8,[2]],"/app/[workspaceID]/(settings)/settings/members":[9,[2]],"/app/[workspaceID]/(settings)/settings/overview":[10,[2]],"/app/[workspaceID]/[targetID]":[11],"/embed/channel/[workspaceID]/[channelID]":[12],"/embed/thread/[workspaceID]/[messageID]":[13]},P={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},F=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.decode])),I=Object.fromEntries(Object.entries(P.transport).map(([e,t])=>[e,t.encode])),L=!1,R=(e,t)=>F[e](t),z=()=>T(()=>import(`../chunks/Bjy-W4x2.js`).then(e=>e.default),[],import.meta.url);export{R as decode,F as decoders,N as dictionary,I as encoders,z as get_error_template,L as hash,P as hooks,E as matchers,j as nodes,A as root,M as server_loads}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/0.DQ4BRnNh.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/0.BH6o2SZv.js similarity index 100% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/0.DQ4BRnNh.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/0.BH6o2SZv.js diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/11.DBz8aivf.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/11.Cn1NzgMl.js similarity index 77% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/11.DBz8aivf.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/11.Cn1NzgMl.js index 5774ad010..2fc741807 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/11.DBz8aivf.js +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/11.Cn1NzgMl.js @@ -1 +1 @@ -import{Et as e,Tt as t}from"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import{t as n}from"../chunks/BssaRJHK.js";function r(r,i){e(i,!0),n(r,{get routeWorkspaceID(){return i.params.workspaceID},get routeTargetID(){return i.params.targetID}}),t()}export{r as component}; \ No newline at end of file +import{Et as e,Tt as t}from"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import{t as n}from"../chunks/BIvy8mRH.js";function r(r,i){e(i,!0),n(r,{get routeWorkspaceID(){return i.params.workspaceID},get routeTargetID(){return i.params.targetID}}),t()}export{r as component}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/2.DWB8J1zf.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/2.BYejzzrM.js similarity index 93% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/2.DWB8J1zf.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/2.BYejzzrM.js index c1ec22ca0..f07ce13d3 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/2.DWB8J1zf.js +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/2.BYejzzrM.js @@ -1 +1 @@ -import{t as e}from"../chunks/DK3Fl9T5.js";import{A as t,At as n,B as r,E as i,Et as a,F as o,I as s,K as c,L as l,N as u,O as d,P as f,Tt as p,V as m,b as h,ct as g,dt as _,ft as v,it as y,j as b,jt as x,k as S,lt as C,p as w,ut as T,yt as E,z as D}from"../chunks/D5itlxY6.js";import{n as O}from"../chunks/DAzn6KWz.js";import"../chunks/xihTtKlq.js";import"../chunks/DD-5HdQf.js";import{n as k,t as A}from"../chunks/DEPNME54.js";import{t as j}from"../chunks/BaUeYfz1.js";import{a as M,i as N}from"../chunks/Qo16U5GS.js";import{n as P}from"../chunks/DBpO2iwN.js";var F=e({load:()=>I,prerender:()=>!1,ssr:()=>!1});async function I({params:e}){let t=e.workspaceID,n=[],r=``;try{n=(await k(`/api/workspaces`)).workspaces}catch(e){r=e instanceof A||e instanceof Error?e.message:`Could not load workspace`}return{workspaceID:t,workspace:n.find(e=>e.id===t||e.route_id===t),workspaces:n,loadError:r}}var L=l(``),R=s(`
              • `),z=s(`
                `),B=s(`
                `);function V(e,s){a(s,!0);let l=E(()=>s.data.workspaceID),D=E(()=>s.data.workspace),k=E(()=>c(D)?.role),A=E(()=>N.filter(e=>!e.managersOnly||P(c(k)))),F=E(()=>j.url.pathname.split(`/`).filter(Boolean)[3]??``);function I(){O(`/app/${c(l)}`)}function V(e){O(M(c(l),e))}function H(e){if(e.key!==`Escape`)return;let t=e.target;(!t||t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&!t.isContentEditable)&&(e.preventDefault(),I())}var U=B();m(`keydown`,g,H);var W=C(U),G=C(W),K=v(C(G),2),q=C(K),J=v(C(q)),Y=_(J,!0);n(q);var X=v(q,2);d(X,21,()=>c(A),e=>e.id,(e,t)=>{var i=R(),a=C(i);let o;var s=C(a),l=C(s);d(l,21,()=>c(t).icon,S,(e,t)=>{var n=L();y(()=>w(n,`d`,c(t))),f(e,n)}),n(l),n(s);var p=v(s,2),m=_(p,!0);n(a),n(i),y(()=>{o=h(a,1,`ws-settings__rail-item`,null,o,{"is-active":c(F)===c(t).slug}),w(a,`aria-current`,c(F)===c(t).slug?`page`:void 0),u(m,c(t).label)}),r(`click`,a,()=>V(c(t).slug)),f(e,i)}),n(X),n(K),n(G);var Z=v(G,2),Q=C(Z),$=C(Q),ee=e=>{var t=z(),n=_(t,!0);y(()=>u(n,s.data.loadError)),f(e,t)},te=e=>{var n=o(),r=T(n);t(r,()=>c(l),e=>{var t=o(),n=T(t);i(n,()=>s.children??x),f(e,t)}),f(e,n)};b($,e=>{s.data.loadError?e(ee):e(te,-1)}),n(Q),n(Z),n(W);var ne=v(W,2);n(U),y(()=>u(Y,c(D)?.name??`—`)),r(`click`,ne,I),f(e,U),p()}D([`click`]);export{V as component,F as universal}; \ No newline at end of file +import{t as e}from"../chunks/DK3Fl9T5.js";import{A as t,At as n,B as r,E as i,Et as a,F as o,I as s,K as c,L as l,N as u,O as d,P as f,Tt as p,V as m,b as h,ct as g,dt as _,ft as v,it as y,j as b,jt as x,k as S,lt as C,p as w,ut as T,yt as E,z as D}from"../chunks/D5itlxY6.js";import{n as O}from"../chunks/DAzn6KWz.js";import"../chunks/xihTtKlq.js";import"../chunks/DD-5HdQf.js";import{n as k,t as A}from"../chunks/DEPNME54.js";import{t as j}from"../chunks/BaUeYfz1.js";import{i as M,s as N}from"../chunks/B4px22Nd.js";import{n as P}from"../chunks/DBpO2iwN.js";var F=e({load:()=>I,prerender:()=>!1,ssr:()=>!1});async function I({params:e}){let t=e.workspaceID,n=[],r=``;try{n=(await k(`/api/workspaces`)).workspaces}catch(e){r=e instanceof A||e instanceof Error?e.message:`Could not load workspace`}return{workspaceID:t,workspace:n.find(e=>e.id===t||e.route_id===t),workspaces:n,loadError:r}}var L=l(``),R=s(`
              • `),z=s(`
                `),B=s(`
                `);function V(e,s){a(s,!0);let l=E(()=>s.data.workspaceID),D=E(()=>s.data.workspace),k=E(()=>c(D)?.role),A=E(()=>M.filter(e=>!e.managersOnly||P(c(k)))),F=E(()=>j.url.pathname.split(`/`).filter(Boolean)[3]??``);function I(){O(`/app/${c(l)}`)}function V(e){O(N(c(l),e))}function H(e){if(e.key!==`Escape`)return;let t=e.target;(!t||t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&!t.isContentEditable)&&(e.preventDefault(),I())}var U=B();m(`keydown`,g,H);var W=C(U),G=C(W),K=v(C(G),2),q=C(K),J=v(C(q)),Y=_(J,!0);n(q);var X=v(q,2);d(X,21,()=>c(A),e=>e.id,(e,t)=>{var i=R(),a=C(i);let o;var s=C(a),l=C(s);d(l,21,()=>c(t).icon,S,(e,t)=>{var n=L();y(()=>w(n,`d`,c(t))),f(e,n)}),n(l),n(s);var p=v(s,2),m=_(p,!0);n(a),n(i),y(()=>{o=h(a,1,`ws-settings__rail-item`,null,o,{"is-active":c(F)===c(t).slug}),w(a,`aria-current`,c(F)===c(t).slug?`page`:void 0),u(m,c(t).label)}),r(`click`,a,()=>V(c(t).slug)),f(e,i)}),n(X),n(K),n(G);var Z=v(G,2),Q=C(Z),$=C(Q),ee=e=>{var t=z(),n=_(t,!0);y(()=>u(n,s.data.loadError)),f(e,t)},te=e=>{var n=o(),r=T(n);t(r,()=>c(l),e=>{var t=o(),n=T(t);i(n,()=>s.children??x),f(e,t)}),f(e,n)};b($,e=>{s.data.loadError?e(ee):e(te,-1)}),n(Q),n(Z),n(W);var ne=v(W,2);n(U),y(()=>u(Y,c(D)?.name??`—`)),r(`click`,ne,I),f(e,U),p()}D([`click`]);export{V as component,F as universal}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/3.CmrxTbkM.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/3.CgfaV_Gs.js similarity index 86% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/3.CmrxTbkM.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/3.CgfaV_Gs.js index 61b229fe5..1639bd3a7 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/3.CmrxTbkM.js +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/3.CgfaV_Gs.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/BssaRJHK.js","../chunks/DK3Fl9T5.js","../chunks/D5itlxY6.js","../chunks/DAzn6KWz.js","../chunks/Dt-HX3Vu.js","../chunks/uBIymjUX.js","../chunks/xihTtKlq.js","../chunks/DD-5HdQf.js","../chunks/DEPNME54.js","../chunks/Dqjw8vaP.js","../chunks/Qo16U5GS.js","../chunks/DBpO2iwN.js","../chunks/Cbo1iWSZ.js","../chunks/BTDeUFdm.js","../chunks/CCzTQXXV.js","../assets/QuoteBlock.Bmfc9wvU.css","../chunks/W96STwh2.js","../chunks/DlGnnCJo.js","../chunks/C0IGmcs2.js","../chunks/DaoRWw_m.js","../assets/ThreadPanel.DFXp9CyT.css","../chunks/CVdgRPye.js","../chunks/BIhzYFGW.js","../assets/ChatApp.BrxGlI__.css","../chunks/BDmwRgA7.js","../assets/ProductSite.BGg6Zt1K.css"])))=>i.map(i=>d[i]); -import{t as e}from"../chunks/DK3Fl9T5.js";import{F as t,K as n,M as r,P as i,ut as a,vt as o}from"../chunks/D5itlxY6.js";import{t as s}from"../chunks/uBIymjUX.js";import"../chunks/xihTtKlq.js";import"../chunks/Cbo1iWSZ.js";var c=e({prerender:()=>!0});function l(e){let c=window.location.hostname.startsWith(`app.`)?s(()=>import(`../chunks/BssaRJHK.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url):s(()=>import(`../chunks/BDmwRgA7.js`),__vite__mapDeps([24,2,1,6,12,25]),import.meta.url);var l=t(),u=a(l);r(u,()=>c,null,(e,t)=>{let r=o(()=>n(t).default);n(r)(e,{})}),i(e,l)}export{l as component,c as universal}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/BIvy8mRH.js","../chunks/DK3Fl9T5.js","../chunks/D5itlxY6.js","../chunks/DAzn6KWz.js","../chunks/Dt-HX3Vu.js","../chunks/uBIymjUX.js","../chunks/xihTtKlq.js","../chunks/DD-5HdQf.js","../chunks/DEPNME54.js","../chunks/Dqjw8vaP.js","../chunks/B4px22Nd.js","../chunks/DBpO2iwN.js","../chunks/Cbo1iWSZ.js","../chunks/BTDeUFdm.js","../chunks/CCzTQXXV.js","../assets/QuoteBlock.Bmfc9wvU.css","../chunks/W96STwh2.js","../chunks/DlGnnCJo.js","../chunks/C0IGmcs2.js","../chunks/DaoRWw_m.js","../assets/ThreadPanel.DFXp9CyT.css","../chunks/CVdgRPye.js","../chunks/BIhzYFGW.js","../assets/ChatApp.BrxGlI__.css","../chunks/BDmwRgA7.js","../assets/ProductSite.BGg6Zt1K.css"])))=>i.map(i=>d[i]); +import{t as e}from"../chunks/DK3Fl9T5.js";import{F as t,K as n,M as r,P as i,ut as a,vt as o}from"../chunks/D5itlxY6.js";import{t as s}from"../chunks/uBIymjUX.js";import"../chunks/xihTtKlq.js";import"../chunks/Cbo1iWSZ.js";var c=e({prerender:()=>!0});function l(e){let c=window.location.hostname.startsWith(`app.`)?s(()=>import(`../chunks/BIvy8mRH.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url):s(()=>import(`../chunks/BDmwRgA7.js`),__vite__mapDeps([24,2,1,6,12,25]),import.meta.url);var l=t(),u=a(l);r(u,()=>c,null,(e,t)=>{let r=o(()=>n(t).default);n(r)(e,{})}),i(e,l)}export{l as component,c as universal}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/4.DCXgR56v.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/4.DEx-qtfQ.js similarity index 63% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/4.DCXgR56v.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/4.DEx-qtfQ.js index ccf1d569a..78cd74b03 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/4.DCXgR56v.js +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/4.DEx-qtfQ.js @@ -1 +1 @@ -import"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import"../chunks/Cbo1iWSZ.js";import{t as e}from"../chunks/BssaRJHK.js";function t(t){e(t,{})}export{t as component}; \ No newline at end of file +import"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import"../chunks/Cbo1iWSZ.js";import{t as e}from"../chunks/BIvy8mRH.js";function t(t){e(t,{})}export{t as component}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/5.Bgjh3W4T.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/5.DavmdShP.js similarity index 72% rename from apps/api/internal/webassets/dist/_app/immutable/nodes/5.Bgjh3W4T.js rename to apps/api/internal/webassets/dist/_app/immutable/nodes/5.DavmdShP.js index cb1e05237..56688ba41 100644 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/5.Bgjh3W4T.js +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/5.DavmdShP.js @@ -1 +1 @@ -import{Et as e,Tt as t}from"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import{t as n}from"../chunks/BssaRJHK.js";function r(r,i){e(i,!0),n(r,{get routeWorkspaceID(){return i.params.workspaceID}}),t()}export{r as component}; \ No newline at end of file +import{Et as e,Tt as t}from"../chunks/D5itlxY6.js";import"../chunks/xihTtKlq.js";import{t as n}from"../chunks/BIvy8mRH.js";function r(r,i){e(i,!0),n(r,{get routeWorkspaceID(){return i.params.workspaceID}}),t()}export{r as component}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/6.D1H8DGKr.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/6.D1H8DGKr.js deleted file mode 100644 index e217f0c62..000000000 --- a/apps/api/internal/webassets/dist/_app/immutable/nodes/6.D1H8DGKr.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"../chunks/DK3Fl9T5.js";import{r as t}from"../chunks/Dt-HX3Vu.js";import{a as n,r}from"../chunks/Qo16U5GS.js";function i(e,n){throw new t(e,n.toString())}var a=e({load:()=>o,prerender:()=>!1,ssr:()=>!1});function o({params:e}){throw i(307,n(e.workspaceID,r))}export{a as universal}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/_app/immutable/nodes/6.wekSS-ZX.js b/apps/api/internal/webassets/dist/_app/immutable/nodes/6.wekSS-ZX.js new file mode 100644 index 000000000..6bb20d6b2 --- /dev/null +++ b/apps/api/internal/webassets/dist/_app/immutable/nodes/6.wekSS-ZX.js @@ -0,0 +1 @@ +import{t as e}from"../chunks/DK3Fl9T5.js";import{r as t}from"../chunks/Dt-HX3Vu.js";import{r as n,s as r}from"../chunks/B4px22Nd.js";function i(e,n){throw new t(e,n.toString())}var a=e({load:()=>o,prerender:()=>!1,ssr:()=>!1});function o({params:e}){throw i(307,r(e.workspaceID,n))}export{a as universal}; \ No newline at end of file diff --git a/apps/api/internal/webassets/dist/index.html b/apps/api/internal/webassets/dist/index.html index b9d4c447f..d078a7284 100644 --- a/apps/api/internal/webassets/dist/index.html +++ b/apps/api/internal/webassets/dist/index.html @@ -103,17 +103,17 @@ - + - + - + - + @@ -128,7 +128,7 @@ Promise.all([ import("./_app/immutable/entry/start.By1vhz9u.js"), - import("./_app/immutable/entry/app.B0zzvMsN.js") + import("./_app/immutable/entry/app.AsIXIPke.js") ]).then(([kit, app]) => { kit.start(app, element); }); diff --git a/apps/web/src/ChatApp.svelte b/apps/web/src/ChatApp.svelte index b9fab39e8..b4d305af2 100644 --- a/apps/web/src/ChatApp.svelte +++ b/apps/web/src/ChatApp.svelte @@ -474,6 +474,9 @@ function openProfileSettings() { if (!user) return; + // At phone widths the profile card lives inside the navigation drawer, and + // a drawer left open renders underneath the modal's own rail. + mobileNavOpen = false; settingsModalSection = "profile"; settingsModalOpen = true; } @@ -4238,6 +4241,7 @@ workspace.id === pickedWorkspaceID) ?? + defaultSettingsWorkspace(workspaces, currentWorkspaceID), + ); + let signingOut = $state(false); let signOutError = $state(""); let activeSection = $state(DEFAULT_ACCOUNT_SETTINGS_SECTION); @@ -202,19 +215,38 @@
                - {#each workspaces as workspace (workspace.id)} + {#if railWorkspace}
                -

                - Workspace · {workspace.name} -

                + {#if workspaces.length > 1} +

                Workspace

                + + + {:else} +

                + Workspace · {railWorkspace.name} +

                + {/if}
                - {/each} + {/if}
                diff --git a/apps/web/src/lib/settings.test.ts b/apps/web/src/lib/settings.test.ts new file mode 100644 index 000000000..b76522f56 --- /dev/null +++ b/apps/web/src/lib/settings.test.ts @@ -0,0 +1,60 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { defaultSettingsWorkspace, isSettingsWorkspaceCurrent } from "./settings.ts"; +import type { Workspace } from "./types"; + +const workspace = (id: string, overrides: Partial = {}): Workspace => + ({ + id, + route_id: `route-${id}`, + name: id, + slug: id, + icon_url: "", + created_at: "2026-01-01T00:00:00Z", + role: "member", + ...overrides, + }) as Workspace; + +test("defaultSettingsWorkspace picks the workspace matched by id", () => { + const workspaces = [workspace("W1"), workspace("W2"), workspace("W3")]; + assert.equal(defaultSettingsWorkspace(workspaces, "W2")?.id, "W2"); +}); + +test("defaultSettingsWorkspace picks the workspace matched by route_id", () => { + const workspaces = [workspace("W1"), workspace("W2", { route_id: "acme" }), workspace("W3")]; + assert.equal(defaultSettingsWorkspace(workspaces, "acme")?.id, "W2"); +}); + +test("defaultSettingsWorkspace falls back to the first workspace when nothing matches", () => { + const workspaces = [workspace("W1"), workspace("W2")]; + for (const id of ["missing", "", undefined, null]) { + assert.equal(defaultSettingsWorkspace(workspaces, id)?.id, "W1"); + } +}); + +test("defaultSettingsWorkspace returns null for an empty list", () => { + assert.equal(defaultSettingsWorkspace([], "W1"), null); + assert.equal(defaultSettingsWorkspace([], undefined), null); +}); + +test("defaultSettingsWorkspace does not mutate the workspaces it was given", () => { + const workspaces = [workspace("W1"), workspace("W2")]; + defaultSettingsWorkspace(workspaces, "W2"); + assert.deepEqual( + workspaces.map((entry) => entry.id), + ["W1", "W2"], + ); +}); + +test("isSettingsWorkspaceCurrent matches on either id", () => { + const entry = workspace("W2", { route_id: "acme" }); + assert.equal(isSettingsWorkspaceCurrent(entry, "W2"), true); + assert.equal(isSettingsWorkspaceCurrent(entry, "acme"), true); +}); + +test("isSettingsWorkspaceCurrent marks nothing current without an id to match", () => { + const entry = workspace("W2"); + for (const id of ["W1", "", undefined, null]) { + assert.equal(isSettingsWorkspaceCurrent(entry, id), false); + } +}); diff --git a/apps/web/src/lib/settings.ts b/apps/web/src/lib/settings.ts index f8349e60d..0de48405d 100644 --- a/apps/web/src/lib/settings.ts +++ b/apps/web/src/lib/settings.ts @@ -7,6 +7,8 @@ // 2. Workspace settings (members, bots, integrations, etc.) live at the // real route /app/{workspaceID}/settings and have their own shell. +import type { Workspace } from "./types"; + export type AccountSettingsSectionId = "profile" | "appearance" | "notifications" | "bots"; export type AccountSettingsSection = { @@ -97,6 +99,27 @@ export const WORKSPACE_SETTINGS_SECTIONS: WorkspaceSettingsSection[] = [ export const DEFAULT_WORKSPACE_SETTINGS_SECTION: WorkspaceSettingsSectionId = "overview"; +// Settings may be opened using either an internal workspace ID or a route ID. +export function isSettingsWorkspaceCurrent( + workspace: Workspace, + currentWorkspaceID?: string | null, +): boolean { + if (!currentWorkspaceID) return false; + return workspace.id === currentWorkspaceID || workspace.route_id === currentWorkspaceID; +} + +// Falls back to the first workspace so the rail still names what it is showing +// when the current workspace is unknown or is not in the list. +export function defaultSettingsWorkspace( + workspaces: readonly Workspace[], + currentWorkspaceID?: string | null, +): Workspace | null { + const current = workspaces.find((workspace) => + isSettingsWorkspaceCurrent(workspace, currentWorkspaceID), + ); + return current ?? workspaces[0] ?? null; +} + export function workspaceSettingsPath(workspaceID: string, slug?: string): string { const base = `/app/${workspaceID}/settings`; return slug ? `${base}/${slug}` : base; diff --git a/apps/web/src/styles/settings.css b/apps/web/src/styles/settings.css index 5fd439c6b..c7a54feed 100644 --- a/apps/web/src/styles/settings.css +++ b/apps/web/src/styles/settings.css @@ -102,6 +102,38 @@ margin: 0; } +/* Picks which workspace the rail's sections below belong to. Same palette as + the modal's own form controls (.settings-modal__content .settings-input), + narrowed to the rail's width. */ +.settings-modal__rail-select { + width: 100%; + height: 32px; + margin: 2px 0 6px; + padding: 0 8px; + background: var(--bg); + border: 1px solid var(--line); + border-radius: var(--radius-sm); + color: var(--text); + font: inherit; + font-size: 13.5px; + cursor: pointer; + transition: + border-color 0.12s ease, + box-shadow 0.12s ease, + background 0.12s ease; +} + +.settings-modal__rail-select:hover { + border-color: var(--line-strong); +} + +.settings-modal__rail-select:focus { + outline: 0; + border-color: var(--accent); + background: var(--panel); + box-shadow: 0 0 0 3px var(--accent-soft); +} + .settings-modal__rail ul { list-style: none; margin: 0; diff --git a/docs/features/profiles.md b/docs/features/profiles.md index 70e758e0c..7ec606b9b 100644 --- a/docs/features/profiles.md +++ b/docs/features/profiles.md @@ -50,6 +50,13 @@ except the author. The current user's profile control sits at the bottom of the channel sidebar. Click or right-click it to open account settings and edit display name, handle, avatar URL, conversation display preferences, and notification settings. +The account settings rail shows one Workspace group. When the account belongs +to more than one workspace, a selector under the heading chooses which one the +group's sections apply to; it opens on the workspace the user is standing in, +whose name carries a "(current)" marker in the list, so a workspace section +opens that workspace rather than whichever one the API listed first. With a +single workspace the heading names it and there is no selector. Opening account +settings on a phone closes the navigation drawer. Profile and notification saves update only their respective sections. Saving one section preserves changes to another section made in another tab or device. diff --git a/tests/e2e/settings-current-workspace.spec.ts b/tests/e2e/settings-current-workspace.spec.ts new file mode 100644 index 000000000..d6c8e3297 --- /dev/null +++ b/tests/e2e/settings-current-workspace.spec.ts @@ -0,0 +1,145 @@ +import { expect, test, type Page } from "@playwright/test"; +import { randomUUID } from "node:crypto"; +import type { Workspace } from "../../apps/web/src/lib/types"; +import { waitForAppReady } from "./app-ready"; + +// Every spec shares one server and one bootstrap account, so the live workspace +// list grows as other files create workspaces. Create the ones this proof needs +// for real, then pin the listing to exactly those so the selector is the thing +// under test rather than whatever the account happens to own. +async function pinnedWorkspaces(page: Page, count: number): Promise { + const created: Workspace[] = []; + for (let index = 0; index < count; index += 1) { + const response = await page.request.post("/api/workspaces", { + data: { name: `Rail pick ${index} ${randomUUID().slice(0, 8)}` }, + }); + expect(response.ok()).toBe(true); + created.push((await response.json()).workspace); + } + await page.route("**/api/workspaces", async (route) => { + if (route.request().method() !== "GET") return route.continue(); + const response = await route.fetch(); + const body = await response.json(); + const listed = new Map( + (body.workspaces as Workspace[]).map((workspace) => [workspace.id, workspace]), + ); + const workspaces = created.map((workspace) => listed.get(workspace.id) ?? workspace); + await route.fulfill({ response, json: { ...body, workspaces } }); + }); + return created; +} + +async function openAccountSettings(page: Page) { + await page.getByRole("button", { name: /Account settings for/ }).click(); + const modal = page.getByRole("dialog", { name: "Account settings" }); + await expect(modal.getByRole("heading", { name: "Profile settings" })).toBeVisible(); + return modal; +} + +function workspacePicker(modal: ReturnType) { + return modal.getByRole("combobox", { name: "Workspace" }); +} + +function currentPathRoot(page: Page) { + return new URL(page.url()).pathname.split("/").slice(0, 3).join("/"); +} + +// Regression: the rail rendered a group per workspace in listing order with no +// idea which one the user was standing in, so the first Integrations belonged +// to a different workspace and closing its settings page stranded the user +// there. +test("the settings rail opens on the workspace the user is standing in", async ({ + page, +}, testInfo) => { + const workspaces = await pinnedWorkspaces(page, 3); + const current = workspaces[1]; + await page.goto(`/app/${current.route_id}`); + await waitForAppReady(page); + + let modal = await openAccountSettings(page); + await page.screenshot({ + path: testInfo.outputPath("workspace-settings-rail.png"), + animations: "disabled", + }); + await modal.getByRole("button", { name: "Integrations" }).first().click(); + await expect(page).toHaveURL(`/app/${current.route_id}/settings/integrations`); + await page.getByRole("button", { name: "Close workspace settings" }).click(); + await expect.poll(() => currentPathRoot(page)).toBe(`/app/${current.route_id}`); + + modal = await openAccountSettings(page); + const picker = workspacePicker(modal); + await expect(picker).toHaveValue(current.id); + // Preselected, and the current workspace is marked in the list itself. + await expect(picker.locator("option")).toHaveCount(3); + await expect(picker.locator(`option[value="${current.id}"]`)).toHaveText( + `${current.name} (current)`, + ); + await expect(picker.locator("option", { hasText: "(current)" })).toHaveCount(1); + // One workspace group, not one per workspace, and no "other workspaces" rail. + await expect( + modal.locator(".settings-modal__rail-heading", { hasText: "Workspace" }), + ).toHaveCount(1); + await expect(modal.getByText("Other workspaces", { exact: true })).toHaveCount(0); + await expect(modal.getByRole("button", { name: "Integrations" })).toHaveCount(1); +}); + +test("picking another workspace points the sections at it", async ({ page }) => { + const workspaces = await pinnedWorkspaces(page, 3); + const current = workspaces[1]; + const other = workspaces[2]; + await page.goto(`/app/${current.route_id}`); + await waitForAppReady(page); + + const modal = await openAccountSettings(page); + const picker = workspacePicker(modal); + await picker.selectOption(other.id); + await expect(picker).toHaveValue(other.id); + // The rows still belong to exactly one workspace, now the picked one. + await expect(modal.getByRole("button", { name: "Integrations" })).toHaveCount(1); + + await modal.getByRole("button", { name: "Integrations" }).click(); + await expect(page).toHaveURL(`/app/${other.route_id}/settings/integrations`); +}); + +test("a lone workspace is named in the heading and needs no selector", async ({ page }) => { + const [only] = await pinnedWorkspaces(page, 1); + await page.goto(`/app/${only.route_id}`); + await waitForAppReady(page); + + const modal = await openAccountSettings(page); + await expect(workspacePicker(modal)).toHaveCount(0); + await expect( + modal.locator(".settings-modal__rail-heading", { hasText: "Workspace ·" }), + ).toContainText(only.name); + await expect(modal.getByRole("button", { name: "Integrations" })).toHaveCount(1); +}); + +test.describe("phone width", () => { + test.use({ viewport: { width: 390, height: 844 } }); + + // Regression: the profile card lives inside the navigation drawer at this + // width, and opening the modal left the drawer open underneath it, so the + // modal rail and the channel list collided on screen. + test("opening account settings closes the navigation drawer", async ({ page }, testInfo) => { + const workspaces = await pinnedWorkspaces(page, 3); + const current = workspaces[1]; + await page.goto(`/app/${current.route_id}`); + await waitForAppReady(page); + + const navToggle = page.getByRole("button", { name: "Toggle navigation" }); + await navToggle.click(); + await expect(page.locator(".shell")).toHaveClass(/nav-open/); + + const modal = await openAccountSettings(page); + await page.screenshot({ + path: testInfo.outputPath("workspace-settings-phone.png"), + animations: "disabled", + }); + await expect(page.locator(".shell")).not.toHaveClass(/nav-open/); + await expect(navToggle).toHaveAttribute("aria-expanded", "false"); + + await expect(workspacePicker(modal)).toHaveValue(current.id); + await modal.getByRole("button", { name: "Integrations" }).click(); + await expect(page).toHaveURL(`/app/${current.route_id}/settings/integrations`); + }); +});